Roman created CB-9062:
-------------------------
Summary: Plugman fails to add owner to the plugin
Key: CB-9062
URL: https://issues.apache.org/jira/browse/CB-9062
Project: Apache Cordova
Issue Type: Bug
Components: Plugman
Affects Versions: 3.6.3
Reporter: Roman
I am the owner of the `com.paypal.cordova.mobilesdk` and when trying to
execute
{code}plugman owner add <username> com.paypal.cordova.mobilesdk {code}
the following error occurs, tried with node 10 and 12. and plugman version
0.23.0 and 0.23.1
{code}
render_error function raised error: (new TypeError("tempbody['dist-tags'] is
undefined", "updates.package", 12))
stacktrace: ([object Object],[object Object])@updates.package:12
runUpdate(function (doc, req) {require("monkeypatch").patch(Object, Date,
Array, String);var tempbody = JSON.parse(req.body);if (tempbody._npmVersion)
{if (tempbody._npmVersion != "1.3.4") {return error("This version of plugman
publish is broken, please update plugman with npm install -g
plugman@latest.");}} else {var latest = tempbody['dist-tags'].latest;if
(latest) {if (tempbody.versions[latest]._npmVersion != "1.3.4") {return
error("This version of plugman publish is broken, please update plugman with
npm install -g plugman@latest.");}}}var semver = require("semver");var valid =
require("valid");
function error(reason) {return [{_id: "error: forbidden", forbidden: reason},
JSON.stringify({forbidden: reason})];}
function ok(doc, message) {delete doc.mtime;delete doc.ctime;var time =
doc.time = doc.time || {};time.modified = (new Date).toISOString();time.created
= time.created || time.modified;for (var v in doc.versions) {var ver =
doc.versions[v];delete ver.ctime;delete ver.mtime;time[v] = time[v] || (new
Date).toISOString();}return [doc, JSON.stringify({ok: message})];}
if (doc) {if (req.query.version) {var parsed = semver.valid(req.query.version,
true);if (!parsed) {var tag = req.query.version, ver = JSON.parse(req.body);if
(!semver.valid(ver)) {return error("setting tag " + tag + " to invalid version:
" + req.body);}doc['dist-tags'][tag] = semver.clean(ver, true);return ok(doc,
"updated tag");}var ver = req.query.version;if (!semver.valid(ver, true))
{return error("invalid version: " + ver);}if (ver in doc.versions ||
semver.clean(ver) in doc.versions) {if (!req.query.rev || req.query.rev !==
doc._rev) {return error("cannot modify existing version");}}var body =
JSON.parse(req.body);if (!valid.name(body.name)) {return error("Invalid name: "
+ JSON.stringify(body.name));}body.version = semver.clean(body.version,
true);ver = semver.clean(ver, true);if (body.version !== ver) {return
error("version in doc doesn't match version in request: " +
JSON.stringify(body.version) + " !== " + JSON.stringify(ver));}body._id =
body.name + "@" + body.version;if (body.description) {doc.description =
body.description;}if (body.author) {doc.author = body.author;}if
(body.repository) {doc.repository = body.repository;}body.maintainers =
doc.maintainers;if (body.publishConfig && typeof body.publishConfig ===
"object") {Object.keys(body.publishConfig).filter(function (k) {return
k.match(/^_/);}).forEach(function (k) {delete body.publishConfig[k];});}var tag
= req.query.tag || body.publishConfig && body.publishConfig.tag || body.tag ||
"latest";if (!req.query.pre) {doc['dist-tags'][tag] = body.version;}if
(!doc['dist-tags'].latest) {doc['dist-tags'].latest =
body.version;}doc.versions[ver] = body;doc.time = doc.time || {};doc.time[ver]
= (new Date).toISOString();return ok(doc, "added version");}var newdoc =
JSON.parse(req.body), changed = false;if (doc._rev && doc._rev !== newdoc._rev)
{return error("must supply latest _rev to update existing package");}for (var i
in newdoc) {if (typeof newdoc[i] === "string" || i === "maintainers") {doc[i] =
newdoc[i];}}if (newdoc.versions) {doc.versions = newdoc.versions;}if
(newdoc['dist-tags']) {doc['dist-tags'] = newdoc['dist-tags'];}if
(newdoc.users) {if (!doc.users) {doc.users = {};}doc.users[req.userCtx.name] =
newdoc.users[req.userCtx.name];}return ok(doc, "updated package metadata");}
else {doc = JSON.parse(req.body);if (!doc._id) {doc._id = doc.name;}if
(!doc.versions) {doc.versions = {};}var latest;for (var v in doc.versions) {if
(!semver.valid(v, true)) {return error("Invalid version: " +
JSON.stringify(v));}var p = doc.versions[v];if (p.version !== v) {return
error("Version mismatch: " + JSON.stringify(v) + " !== " +
JSON.stringify(p.version));}if (!valid.name(p.name)) {return error("Invalid
name: " + JSON.stringify(p.name));}latest = semver.clean(v, true);}if
(!doc['dist-tags']) {doc['dist-tags'] = {};}if (latest)
{doc['dist-tags'].latest = latest;}return ok(doc, "created new
entry");}},[object Object],[object
Array])@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:961
(function (doc, req) {require("monkeypatch").patch(Object, Date, Array,
String);var tempbody = JSON.parse(req.body);if (tempbody._npmVersion) {if
(tempbody._npmVersion != "1.3.4") {return error("This version of plugman
publish is broken, please update plugman with npm install -g
plugman@latest.");}} else {var latest = tempbody['dist-tags'].latest;if
(latest) {if (tempbody.versions[latest]._npmVersion != "1.3.4") {return
error("This version of plugman publish is broken, please update plugman with
npm install -g plugman@latest.");}}}var semver = require("semver");var valid =
require("valid");
function error(reason) {return [{_id: "error: forbidden", forbidden: reason},
JSON.stringify({forbidden: reason})];}
function ok(doc, message) {delete doc.mtime;delete doc.ctime;var time =
doc.time = doc.time || {};time.modified = (new Date).toISOString();time.created
= time.created || time.modified;for (var v in doc.versions) {var ver =
doc.versions[v];delete ver.ctime;delete ver.mtime;time[v] = time[v] || (new
Date).toISOString();}return [doc, JSON.stringify({ok: message})];}
if (doc) {if (req.query.version) {var parsed = semver.valid(req.query.version,
true);if (!parsed) {var tag = req.query.version, ver = JSON.parse(req.body);if
(!semver.valid(ver)) {return error("setting tag " + tag + " to invalid version:
" + req.body);}doc['dist-tags'][tag] = semver.clean(ver, true);return ok(doc,
"updated tag");}var ver = req.query.version;if (!semver.valid(ver, true))
{return error("invalid version: " + ver);}if (ver in doc.versions ||
semver.clean(ver) in doc.versions) {if (!req.query.rev || req.query.rev !==
doc._rev) {return error("cannot modify existing version");}}var body =
JSON.parse(req.body);if (!valid.name(body.name)) {return error("Invalid name: "
+ JSON.stringify(body.name));}body.version = semver.clean(body.version,
true);ver = semver.clean(ver, true);if (body.version !== ver) {return
error("version in doc doesn't match version in request: " +
JSON.stringify(body.version) + " !== " + JSON.stringify(ver));}body._id =
body.name + "@" + body.version;if (body.description) {doc.description =
body.description;}if (body.author) {doc.author = body.author;}if
(body.repository) {doc.repository = body.repository;}body.maintainers =
doc.maintainers;if (body.publishConfig && typeof body.publishConfig ===
"object") {Object.keys(body.publishConfig).filter(function (k) {return
k.match(/^_/);}).forEach(function (k) {delete body.publishConfig[k];});}var tag
= req.query.tag || body.publishConfig && body.publishConfig.tag || body.tag ||
"latest";if (!req.query.pre) {doc['dist-tags'][tag] = body.version;}if
(!doc['dist-tags'].latest) {doc['dist-tags'].latest =
body.version;}doc.versions[ver] = body;doc.time = doc.time || {};doc.time[ver]
= (new Date).toISOString();return ok(doc, "added version");}var newdoc =
JSON.parse(req.body), changed = false;if (doc._rev && doc._rev !== newdoc._rev)
{return error("must supply latest _rev to update existing package");}for (var i
in newdoc) {if (typeof newdoc[i] === "string" || i === "maintainers") {doc[i] =
newdoc[i];}}if (newdoc.versions) {doc.versions = newdoc.versions;}if
(newdoc['dist-tags']) {doc['dist-tags'] = newdoc['dist-tags'];}if
(newdoc.users) {if (!doc.users) {doc.users = {};}doc.users[req.userCtx.name] =
newdoc.users[req.userCtx.name];}return ok(doc, "updated package metadata");}
else {doc = JSON.parse(req.body);if (!doc._id) {doc._id = doc.name;}if
(!doc.versions) {doc.versions = {};}var latest;for (var v in doc.versions) {if
(!semver.valid(v, true)) {return error("Invalid version: " +
JSON.stringify(v));}var p = doc.versions[v];if (p.version !== v) {return
error("Version mismatch: " + JSON.stringify(v) + " !== " +
JSON.stringify(p.version));}if (!valid.name(p.name)) {return error("Invalid
name: " + JSON.stringify(p.name));}latest = semver.clean(v, true);}if
(!doc['dist-tags']) {doc['dist-tags'] = {};}if (latest)
{doc['dist-tags'].latest = latest;}return ok(doc, "created new
entry");}},[object Object],[object
Array])@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1031
("_design/app",[object Array],[object
Array])@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1505
()@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1550
@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1561
@:0
: com.paypal.cordova.mobilesdk/-rev/23-1c12c8007517f5366cdf895200065307 Error:
render_error function raised error: (new TypeError("tempbody['dist-tags'] is
undefined", "updates.package", 12))
stacktrace: ([object Object],[object Object])@updates.package:12
runUpdate(function (doc, req) {require("monkeypatch").patch(Object, Date,
Array, String);var tempbody = JSON.parse(req.body);if (tempbody._npmVersion)
{if (tempbody._npmVersion != "1.3.4") {return error("This version of plugman
publish is broken, please update plugman with npm install -g
plugman@latest.");}} else {var latest = tempbody['dist-tags'].latest;if
(latest) {if (tempbody.versions[latest]._npmVersion != "1.3.4") {return
error("This version of plugman publish is broken, please update plugman with
npm install -g plugman@latest.");}}}var semver = require("semver");var valid =
require("valid");
function error(reason) {return [{_id: "error: forbidden", forbidden: reason},
JSON.stringify({forbidden: reason})];}
function ok(doc, message) {delete doc.mtime;delete doc.ctime;var time =
doc.time = doc.time || {};time.modified = (new Date).toISOString();time.created
= time.created || time.modified;for (var v in doc.versions) {var ver =
doc.versions[v];delete ver.ctime;delete ver.mtime;time[v] = time[v] || (new
Date).toISOString();}return [doc, JSON.stringify({ok: message})];}
if (doc) {if (req.query.version) {var parsed = semver.valid(req.query.version,
true);if (!parsed) {var tag = req.query.version, ver = JSON.parse(req.body);if
(!semver.valid(ver)) {return error("setting tag " + tag + " to invalid version:
" + req.body);}doc['dist-tags'][tag] = semver.clean(ver, true);return ok(doc,
"updated tag");}var ver = req.query.version;if (!semver.valid(ver, true))
{return error("invalid version: " + ver);}if (ver in doc.versions ||
semver.clean(ver) in doc.versions) {if (!req.query.rev || req.query.rev !==
doc._rev) {return error("cannot modify existing version");}}var body =
JSON.parse(req.body);if (!valid.name(body.name)) {return error("Invalid name: "
+ JSON.stringify(body.name));}body.version = semver.clean(body.version,
true);ver = semver.clean(ver, true);if (body.version !== ver) {return
error("version in doc doesn't match version in request: " +
JSON.stringify(body.version) + " !== " + JSON.stringify(ver));}body._id =
body.name + "@" + body.version;if (body.description) {doc.description =
body.description;}if (body.author) {doc.author = body.author;}if
(body.repository) {doc.repository = body.repository;}body.maintainers =
doc.maintainers;if (body.publishConfig && typeof body.publishConfig ===
"object") {Object.keys(body.publishConfig).filter(function (k) {return
k.match(/^_/);}).forEach(function (k) {delete body.publishConfig[k];});}var tag
= req.query.tag || body.publishConfig && body.publishConfig.tag || body.tag ||
"latest";if (!req.query.pre) {doc['dist-tags'][tag] = body.version;}if
(!doc['dist-tags'].latest) {doc['dist-tags'].latest =
body.version;}doc.versions[ver] = body;doc.time = doc.time || {};doc.time[ver]
= (new Date).toISOString();return ok(doc, "added version");}var newdoc =
JSON.parse(req.body), changed = false;if (doc._rev && doc._rev !== newdoc._rev)
{return error("must supply latest _rev to update existing package");}for (var i
in newdoc) {if (typeof newdoc[i] === "string" || i === "maintainers") {doc[i] =
newdoc[i];}}if (newdoc.versions) {doc.versions = newdoc.versions;}if
(newdoc['dist-tags']) {doc['dist-tags'] = newdoc['dist-tags'];}if
(newdoc.users) {if (!doc.users) {doc.users = {};}doc.users[req.userCtx.name] =
newdoc.users[req.userCtx.name];}return ok(doc, "updated package metadata");}
else {doc = JSON.parse(req.body);if (!doc._id) {doc._id = doc.name;}if
(!doc.versions) {doc.versions = {};}var latest;for (var v in doc.versions) {if
(!semver.valid(v, true)) {return error("Invalid version: " +
JSON.stringify(v));}var p = doc.versions[v];if (p.version !== v) {return
error("Version mismatch: " + JSON.stringify(v) + " !== " +
JSON.stringify(p.version));}if (!valid.name(p.name)) {return error("Invalid
name: " + JSON.stringify(p.name));}latest = semver.clean(v, true);}if
(!doc['dist-tags']) {doc['dist-tags'] = {};}if (latest)
{doc['dist-tags'].latest = latest;}return ok(doc, "created new
entry");}},[object Object],[object
Array])@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:961
(function (doc, req) {require("monkeypatch").patch(Object, Date, Array,
String);var tempbody = JSON.parse(req.body);if (tempbody._npmVersion) {if
(tempbody._npmVersion != "1.3.4") {return error("This version of plugman
publish is broken, please update plugman with npm install -g
plugman@latest.");}} else {var latest = tempbody['dist-tags'].latest;if
(latest) {if (tempbody.versions[latest]._npmVersion != "1.3.4") {return
error("This version of plugman publish is broken, please update plugman with
npm install -g plugman@latest.");}}}var semver = require("semver");var valid =
require("valid");
function error(reason) {return [{_id: "error: forbidden", forbidden: reason},
JSON.stringify({forbidden: reason})];}
function ok(doc, message) {delete doc.mtime;delete doc.ctime;var time =
doc.time = doc.time || {};time.modified = (new Date).toISOString();time.created
= time.created || time.modified;for (var v in doc.versions) {var ver =
doc.versions[v];delete ver.ctime;delete ver.mtime;time[v] = time[v] || (new
Date).toISOString();}return [doc, JSON.stringify({ok: message})];}
if (doc) {if (req.query.version) {var parsed = semver.valid(req.query.version,
true);if (!parsed) {var tag = req.query.version, ver = JSON.parse(req.body);if
(!semver.valid(ver)) {return error("setting tag " + tag + " to invalid version:
" + req.body);}doc['dist-tags'][tag] = semver.clean(ver, true);return ok(doc,
"updated tag");}var ver = req.query.version;if (!semver.valid(ver, true))
{return error("invalid version: " + ver);}if (ver in doc.versions ||
semver.clean(ver) in doc.versions) {if (!req.query.rev || req.query.rev !==
doc._rev) {return error("cannot modify existing version");}}var body =
JSON.parse(req.body);if (!valid.name(body.name)) {return error("Invalid name: "
+ JSON.stringify(body.name));}body.version = semver.clean(body.version,
true);ver = semver.clean(ver, true);if (body.version !== ver) {return
error("version in doc doesn't match version in request: " +
JSON.stringify(body.version) + " !== " + JSON.stringify(ver));}body._id =
body.name + "@" + body.version;if (body.description) {doc.description =
body.description;}if (body.author) {doc.author = body.author;}if
(body.repository) {doc.repository = body.repository;}body.maintainers =
doc.maintainers;if (body.publishConfig && typeof body.publishConfig ===
"object") {Object.keys(body.publishConfig).filter(function (k) {return
k.match(/^_/);}).forEach(function (k) {delete body.publishConfig[k];});}var tag
= req.query.tag || body.publishConfig && body.publishConfig.tag || body.tag ||
"latest";if (!req.query.pre) {doc['dist-tags'][tag] = body.version;}if
(!doc['dist-tags'].latest) {doc['dist-tags'].latest =
body.version;}doc.versions[ver] = body;doc.time = doc.time || {};doc.time[ver]
= (new Date).toISOString();return ok(doc, "added version");}var newdoc =
JSON.parse(req.body), changed = false;if (doc._rev && doc._rev !== newdoc._rev)
{return error("must supply latest _rev to update existing package");}for (var i
in newdoc) {if (typeof newdoc[i] === "string" || i === "maintainers") {doc[i] =
newdoc[i];}}if (newdoc.versions) {doc.versions = newdoc.versions;}if
(newdoc['dist-tags']) {doc['dist-tags'] = newdoc['dist-tags'];}if
(newdoc.users) {if (!doc.users) {doc.users = {};}doc.users[req.userCtx.name] =
newdoc.users[req.userCtx.name];}return ok(doc, "updated package metadata");}
else {doc = JSON.parse(req.body);if (!doc._id) {doc._id = doc.name;}if
(!doc.versions) {doc.versions = {};}var latest;for (var v in doc.versions) {if
(!semver.valid(v, true)) {return error("Invalid version: " +
JSON.stringify(v));}var p = doc.versions[v];if (p.version !== v) {return
error("Version mismatch: " + JSON.stringify(v) + " !== " +
JSON.stringify(p.version));}if (!valid.name(p.name)) {return error("Invalid
name: " + JSON.stringify(p.name));}latest = semver.clean(v, true);}if
(!doc['dist-tags']) {doc['dist-tags'] = {};}if (latest)
{doc['dist-tags'].latest = latest;}return ok(doc, "created new
entry");}},[object Object],[object
Array])@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1031
("_design/app",[object Array],[object
Array])@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1505
()@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1550
@/home/ubuntu/hosting/installs/hosting_v1.3.0r1/share/couchdb/server/main.js:1561
@:0
: com.paypal.cordova.mobilesdk/-rev/23-1c12c8007517f5366cdf895200065307
at RegClient.<anonymous>
(/usr/local/lib/node_modules/plugman/node_modules/npm/node_modules/npm-registry-client/lib/request.js:272:14)
at Request.self.callback
(/usr/local/lib/node_modules/plugman/node_modules/npm/node_modules/request/index.js:148:22)
at Request.emit (events.js:110:17)
at Request.<anonymous>
(/usr/local/lib/node_modules/plugman/node_modules/npm/node_modules/request/index.js:876:14)
at Request.emit (events.js:129:20)
at IncomingMessage.<anonymous>
(/usr/local/lib/node_modules/plugman/node_modules/npm/node_modules/request/index.js:827:12)
at IncomingMessage.emit (events.js:129:20)
at _stream_readable.js:908:16
at process._tickCallback (node.js:355:11)
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]