From 6002d3159d13f6051ab08f0206e1ef424e13daf7 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Tue, 16 Jul 2019 15:10:47 -0700 Subject: [PATCH] Switch from webstore-upload to chrome-webstore-upload. --- package-lock.json | 157 +++++++++++++++++++++++++++++++--------------- package.json | 7 ++- tools/webstore.js | 33 +++++----- 3 files changed, 127 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e2698b6d..e6d121c4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,12 +72,6 @@ "tweetnacl": "0.14.5" } }, - "bluebird": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -88,12 +82,27 @@ "concat-map": "0.0.1" } }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "chrome-webstore-upload": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/chrome-webstore-upload/-/chrome-webstore-upload-0.2.2.tgz", + "integrity": "sha512-4lqjRnG9MbqWpWgaQDORUB8jcTwEpWGGFWwTiVy00MMrYshV085uwqtHDNNLtHrnnB5U+rwtVV/sHAocm+CVNQ==", + "dev": true, + "requires": { + "got": "6.7.1" + } + }, "cli": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", @@ -140,6 +149,15 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "1.0.1" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -204,6 +222,12 @@ "domelementtype": "1.3.1" } }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -285,6 +309,12 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -308,6 +338,25 @@ "path-is-absolute": "1.0.1" } }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -370,6 +419,24 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -533,6 +600,12 @@ "lodash._reinterpolate": "3.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, "markdown-it": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-9.0.0.tgz", @@ -605,12 +678,6 @@ "wrappy": "1.0.2" } }, - "open": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz", - "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=", - "dev": true - }, "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", @@ -629,6 +696,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -647,12 +720,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -699,17 +766,6 @@ "uuid": "3.3.2" } }, - "request-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-2.0.1.tgz", - "integrity": "sha1-rL1HtyXjk3Lt4xdM8pw42ezysw0=", - "dev": true, - "requires": { - "bluebird": "2.11.0", - "lodash": "4.17.14", - "request": "2.88.0" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -769,6 +825,12 @@ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", "dev": true }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -808,6 +870,12 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -817,6 +885,15 @@ "punycode": "2.1.1" } }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "1.0.4" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -840,28 +917,6 @@ "extsprintf": "1.3.0" } }, - "webstore-upload": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/webstore-upload/-/webstore-upload-0.0.8.tgz", - "integrity": "sha512-yrxHVw5u5IFiu6SiBMWiiHRYpeK3b5WJEPdvdxExfb2P+5T78/d1N5+BR83aHPvrSkcesYFgGuxARlIN+QCyjw==", - "dev": true, - "requires": { - "glob": "7.1.4", - "lodash": "2.4.2", - "open": "0.0.5", - "q": "1.5.1", - "request": "2.88.0", - "request-promise": "2.0.1" - }, - "dependencies": { - "lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true - } - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 1b3102e2a..36ae622d6 100644 --- a/package.json +++ b/package.json @@ -93,6 +93,7 @@ } }, "devDependencies": { + "chrome-webstore-upload": "^0.2.2", "coffeescript": "=1.12.7", "esprima": "^4.0.1", "font-awesome": "=4.7.0", @@ -101,8 +102,7 @@ "lodash.template": "^4.5.0", "markdown-it": "^9.0.0", "markdown-it-anchor": "^5.2.4", - "request": "^2.88.0", - "webstore-upload": "0.0.8" + "request": "^2.88.0" }, "repository": { "type": "git", @@ -121,5 +121,6 @@ "readmeFilename": "README.md", "engines": { "node": ">=0.10" - } + }, + "dependencies": {} } diff --git a/tools/webstore.js b/tools/webstore.js index 39d5fb7f1..0f3474f6b 100644 --- a/tools/webstore.js +++ b/tools/webstore.js @@ -1,11 +1,18 @@ var fs = require('fs'); var child_process = require('child_process'); -var webstore_upload = require('webstore-upload'); var request = require('request'); var pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); var v = JSON.parse(child_process.execSync('git show stable:version.json').toString()); var secrets = JSON.parse(fs.readFileSync(`../${pkg.meta.path}.keys/chrome-store.json`, 'utf8')); +var refresh = JSON.parse(fs.readFileSync(`../${pkg.meta.path}.keys/refresh-token.json`, 'utf8')); + +var webStore = require('chrome-webstore-upload')({ + extensionId: pkg.meta.chromeStoreID, + clientId: secrets.installed.client_id, + clientSecret: secrets.installed.client_secret, + refreshToken: refresh.refresh_token +}); request(`https://chrome.google.com/webstore/detail/${pkg.meta.chromeStoreID}`, function (error, response, body) { @@ -14,21 +21,15 @@ request(`https://chrome.google.com/webstore/detail/${pkg.meta.chromeStoreID}`, f return; } - webstore_upload({ - accounts: { - default: { - publish: true, - client_id: secrets.installed.client_id, - client_secret: secrets.installed.client_secret, - } - }, - extensions: { - extension: { - appID: pkg.meta.chromeStoreID, - zip: `dist/builds/${pkg.name}.zip` - } - } - }, 'default').catch(function() { + var myZipFile = fs.createReadStream(`dist/builds/${pkg.name}.zip`); + var token; + webStore.fetchToken().then(t => { + token = t; + return webStore.uploadExisting(myZipFile, token); + }).then(() => + webStore.publish() + ).catch(res => { + console.error(res); process.exit(1); });