@automattic/vip 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +7 -2
- package/README.md +27 -0
- package/config/{config.json → config.publish.json} +0 -0
- package/dist/bin/vip-dev-env-create.js +1 -0
- package/dist/bin/vip-dev-env-destroy.js +1 -0
- package/dist/bin/vip-dev-env-exec.js +1 -0
- package/dist/bin/vip-dev-env-import-media.js +1 -0
- package/dist/bin/vip-dev-env-import-sql.js +1 -0
- package/dist/bin/vip-dev-env-info.js +1 -0
- package/dist/bin/vip-dev-env-list.js +1 -0
- package/dist/bin/vip-dev-env-start.js +4 -3
- package/dist/bin/vip-dev-env-stop.js +7 -1
- package/dist/bin/vip-dev-env-update.js +1 -0
- package/dist/bin/vip-import-sql.js +7 -1
- package/dist/bin/vip-wp.js +2 -2
- package/dist/bin/vip.js +1 -1
- package/dist/lib/analytics/clients/pendo.js +92 -0
- package/dist/lib/analytics/clients/stub.js +1 -1
- package/dist/lib/analytics/clients/tracks.js +0 -5
- package/dist/lib/analytics/index.js +21 -4
- package/dist/lib/api.js +2 -2
- package/dist/lib/cli/config.js +30 -0
- package/dist/lib/dev-environment/dev-environment-cli.js +25 -2
- package/dist/lib/dev-environment/dev-environment-lando.js +17 -0
- package/dist/lib/http/proxy-agent.js +94 -0
- package/dist/lib/rollbar.js +1 -1
- package/dist/lib/tracker.js +13 -4
- package/npm-shrinkwrap.json +319 -133
- package/package/dist/bin/vip-app-list.js +73 -0
- package/package/dist/bin/vip-app.js +76 -0
- package/package/dist/bin/vip-config-envvar-delete.js +97 -0
- package/package/dist/bin/vip-config-envvar-get-all.js +94 -0
- package/package/dist/bin/vip-config-envvar-get.js +79 -0
- package/package/dist/bin/vip-config-envvar-list.js +91 -0
- package/package/dist/bin/vip-config-envvar-set.js +123 -0
- package/package/dist/bin/vip-config-envvar.js +23 -0
- package/package/dist/bin/vip-config.js +20 -0
- package/package/dist/bin/vip-dev-env-create.js +105 -0
- package/package/dist/bin/vip-dev-env-destroy.js +56 -0
- package/package/dist/bin/vip-dev-env-exec.js +67 -0
- package/package/dist/bin/vip-dev-env-import-media.js +51 -0
- package/package/dist/bin/vip-dev-env-import-sql.js +83 -0
- package/package/dist/bin/vip-dev-env-import.js +32 -0
- package/package/dist/bin/vip-dev-env-info.js +61 -0
- package/package/dist/bin/vip-dev-env-list.js +46 -0
- package/package/dist/bin/vip-dev-env-start.js +77 -0
- package/package/dist/bin/vip-dev-env-stop.js +52 -0
- package/package/dist/bin/vip-dev-env-update.js +89 -0
- package/package/dist/bin/vip-dev-env.js +23 -0
- package/package/dist/bin/vip-import-media-abort.js +132 -0
- package/package/dist/bin/vip-import-media-status.js +84 -0
- package/package/dist/bin/vip-import-media.js +168 -0
- package/package/dist/bin/vip-import-sql-status.js +83 -0
- package/package/dist/bin/vip-import-sql.js +580 -0
- package/package/dist/bin/vip-import-validate-files.js +191 -0
- package/package/dist/bin/vip-import-validate-sql.js +34 -0
- package/package/dist/bin/vip-import.js +20 -0
- package/package/dist/bin/vip-logs.js +232 -0
- package/package/dist/bin/vip-search-replace.js +71 -0
- package/package/dist/bin/vip-sync.js +191 -0
- package/package/dist/bin/vip-whoami.js +67 -0
- package/package/dist/bin/vip-wp.js +555 -0
- package/package/dist/bin/vip.js +149 -0
- package/package/dist/lib/analytics/clients/client.js +1 -0
- package/package/dist/lib/analytics/clients/pendo.js +92 -0
- package/package/dist/lib/analytics/clients/stub.js +19 -0
- package/package/dist/lib/analytics/clients/tracks.js +128 -0
- package/package/dist/lib/analytics/index.js +45 -0
- package/package/dist/lib/api/app.js +70 -0
- package/package/dist/lib/api/feature-flags.js +39 -0
- package/package/dist/lib/api/user.js +58 -0
- package/package/dist/lib/api.js +136 -0
- package/package/dist/lib/app-logs/app-logs.js +70 -0
- package/package/dist/lib/cli/apiConfig.js +90 -0
- package/package/dist/lib/cli/command.js +606 -0
- package/package/dist/lib/cli/envAlias.js +60 -0
- package/package/dist/lib/cli/exit.js +33 -0
- package/package/dist/lib/cli/format.js +213 -0
- package/package/dist/lib/cli/pager.js +52 -0
- package/package/dist/lib/cli/progress.js +208 -0
- package/package/dist/lib/cli/prompt.js +37 -0
- package/package/dist/lib/cli/repo.js +77 -0
- package/package/dist/lib/client-file-uploader.js +602 -0
- package/package/dist/lib/constants/dev-environment.js +42 -0
- package/package/dist/lib/constants/file-size.js +14 -0
- package/package/dist/lib/dev-environment/dev-environment-cli.js +508 -0
- package/package/dist/lib/dev-environment/dev-environment-core.js +620 -0
- package/package/dist/lib/dev-environment/dev-environment-lando.js +330 -0
- package/package/dist/lib/dev-environment/types.js +1 -0
- package/package/dist/lib/env.js +36 -0
- package/package/dist/lib/envvar/api-delete.js +56 -0
- package/package/dist/lib/envvar/api-get-all.js +59 -0
- package/package/dist/lib/envvar/api-get.js +24 -0
- package/package/dist/lib/envvar/api-list.js +60 -0
- package/package/dist/lib/envvar/api-set.js +58 -0
- package/package/dist/lib/envvar/api.js +104 -0
- package/package/dist/lib/envvar/input.js +55 -0
- package/package/dist/lib/envvar/logging.js +33 -0
- package/package/dist/lib/envvar/read-file.js +43 -0
- package/{dist → package/dist}/lib/http/socks-proxy-agent.js +0 -0
- package/package/dist/lib/keychain/browser.js +35 -0
- package/package/dist/lib/keychain/insecure.js +63 -0
- package/package/dist/lib/keychain/keychain.js +1 -0
- package/package/dist/lib/keychain/secure.js +36 -0
- package/package/dist/lib/keychain.js +36 -0
- package/package/dist/lib/media-import/media-file-import.js +34 -0
- package/package/dist/lib/media-import/progress.js +86 -0
- package/package/dist/lib/media-import/status.js +335 -0
- package/package/dist/lib/rollbar.js +35 -0
- package/package/dist/lib/search-and-replace.js +203 -0
- package/package/dist/lib/site-import/db-file-import.js +46 -0
- package/package/dist/lib/site-import/status.js +444 -0
- package/package/dist/lib/token.js +132 -0
- package/package/dist/lib/tracker.js +96 -0
- package/package/dist/lib/validations/is-multi-site-sql-dump.js +59 -0
- package/package/dist/lib/validations/is-multi-site.js +99 -0
- package/package/dist/lib/validations/line-by-line.js +92 -0
- package/package/dist/lib/validations/site-type.js +66 -0
- package/package/dist/lib/validations/sql.js +371 -0
- package/package/dist/lib/vip-import-validate-files.js +548 -0
- package/package/vip.iml +11 -0
- package/package.json +12 -9
- package/helpers/prepare-config.js +0 -19
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validateName = validateName;
|
|
7
|
+
exports.validateNameWithMessage = validateNameWithMessage;
|
|
8
|
+
Object.defineProperty(exports, "deleteEnvVar", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () {
|
|
11
|
+
return _apiDelete.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "getEnvVar", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _apiGet.default;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "getEnvVars", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () {
|
|
23
|
+
return _apiGetAll.default;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(exports, "listEnvVars", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () {
|
|
29
|
+
return _apiList.default;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "setEnvVar", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _apiSet.default;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
exports.appQuery = void 0;
|
|
39
|
+
|
|
40
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
41
|
+
|
|
42
|
+
var _logging = require("./logging");
|
|
43
|
+
|
|
44
|
+
var _apiDelete = _interopRequireDefault(require("./api-delete"));
|
|
45
|
+
|
|
46
|
+
var _apiGet = _interopRequireDefault(require("./api-get"));
|
|
47
|
+
|
|
48
|
+
var _apiGetAll = _interopRequireDefault(require("./api-get-all"));
|
|
49
|
+
|
|
50
|
+
var _apiList = _interopRequireDefault(require("./api-list"));
|
|
51
|
+
|
|
52
|
+
var _apiSet = _interopRequireDefault(require("./api-set"));
|
|
53
|
+
|
|
54
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @format
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* External dependencies
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Internal dependencies
|
|
67
|
+
*/
|
|
68
|
+
// Reexport for convenience
|
|
69
|
+
// The subquery for environments lets users choose any environment, including production.
|
|
70
|
+
const appQuery = `
|
|
71
|
+
id
|
|
72
|
+
name
|
|
73
|
+
environments {
|
|
74
|
+
id
|
|
75
|
+
appId
|
|
76
|
+
name
|
|
77
|
+
primaryDomain {
|
|
78
|
+
name
|
|
79
|
+
}
|
|
80
|
+
type
|
|
81
|
+
}
|
|
82
|
+
organization {
|
|
83
|
+
id
|
|
84
|
+
name
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
exports.appQuery = appQuery;
|
|
88
|
+
|
|
89
|
+
function validateName(name) {
|
|
90
|
+
const sanitizedName = name.trim().toUpperCase().replace(/[^A-Z0-9_]/g, '');
|
|
91
|
+
return name === sanitizedName && /^[A-Z]/.test(sanitizedName);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function validateNameWithMessage(name) {
|
|
95
|
+
(0, _logging.debug)(`Validating environment variable name ${JSON.stringify(name)}`);
|
|
96
|
+
|
|
97
|
+
if (!validateName(name)) {
|
|
98
|
+
const message = ['Environment variable name must consist of A-Z, 0-9, or _,', 'and must start with an uppercase letter.'].join('\n');
|
|
99
|
+
console.log(_chalk.default.bold.red(message));
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cancel = cancel;
|
|
7
|
+
exports.confirm = confirm;
|
|
8
|
+
exports.promptForValue = promptForValue;
|
|
9
|
+
|
|
10
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
11
|
+
|
|
12
|
+
var _enquirer = require("enquirer");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @format
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* External dependencies
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Internal dependencies
|
|
27
|
+
*/
|
|
28
|
+
function cancel() {
|
|
29
|
+
console.log(_chalk.default.yellow('Command cancelled by user.'));
|
|
30
|
+
process.exit();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function confirm(message) {
|
|
34
|
+
return new _enquirer.BooleanPrompt({
|
|
35
|
+
message
|
|
36
|
+
}).run().catch(() => false);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async function promptForValue(message, mustMatch) {
|
|
40
|
+
var _response$str;
|
|
41
|
+
|
|
42
|
+
const response = await (0, _enquirer.prompt)({
|
|
43
|
+
message,
|
|
44
|
+
name: 'str',
|
|
45
|
+
type: 'input',
|
|
46
|
+
validate: input => {
|
|
47
|
+
if (mustMatch && input !== mustMatch) {
|
|
48
|
+
return `Please type ${mustMatch} to proceed or ESC to cancel`;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return ((_response$str = response.str) === null || _response$str === void 0 ? void 0 : _response$str.trim()) || '';
|
|
55
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getEnvContext = getEnvContext;
|
|
7
|
+
exports.debug = void 0;
|
|
8
|
+
|
|
9
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
10
|
+
|
|
11
|
+
var _command = require("../cli/command");
|
|
12
|
+
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @format
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* External dependencies
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Internal dependencies
|
|
26
|
+
*/
|
|
27
|
+
// Shared debugger.
|
|
28
|
+
const debug = (0, _debug.default)('@automattic/vip:bin:config:envvar');
|
|
29
|
+
exports.debug = debug;
|
|
30
|
+
|
|
31
|
+
function getEnvContext(app, env) {
|
|
32
|
+
return `@${app.id}.${(0, _command.getEnvIdentifier)(env)}`;
|
|
33
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.readVariableFromFile = readVariableFromFile;
|
|
7
|
+
|
|
8
|
+
var _fs = require("fs");
|
|
9
|
+
|
|
10
|
+
var exit = _interopRequireWildcard(require("../cli/exit"));
|
|
11
|
+
|
|
12
|
+
var _logging = require("./logging");
|
|
13
|
+
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @format
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* External dependencies
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Internal dependencies
|
|
29
|
+
*/
|
|
30
|
+
async function readVariableFromFile(path) {
|
|
31
|
+
(0, _logging.debug)(`Loading variable value from file ${JSON.stringify(path)}`);
|
|
32
|
+
const data = await _fs.promises.readFile(path, 'binary').catch(({
|
|
33
|
+
message
|
|
34
|
+
}) => {
|
|
35
|
+
// Provide friendly version of common error.
|
|
36
|
+
if (message.startsWith('ENOENT: no such file or directory')) {
|
|
37
|
+
exit.withError(`Could not load file ${JSON.stringify(path)}.`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
exit.withError(message);
|
|
41
|
+
});
|
|
42
|
+
return Buffer.from(data).toString().trim();
|
|
43
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
class Secure {
|
|
12
|
+
getPassword(service) {
|
|
13
|
+
return new Promise(resolve => {
|
|
14
|
+
const password = window.localStorage.getItem(service);
|
|
15
|
+
return resolve(password);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
setPassword(service, password) {
|
|
20
|
+
return new Promise(resolve => {
|
|
21
|
+
const set = !!window.localStorage.setItem(service, password);
|
|
22
|
+
return resolve(set);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
deletePassword(service) {
|
|
27
|
+
return new Promise(resolve => {
|
|
28
|
+
const del = !!window.localStorage.removeItem(service);
|
|
29
|
+
return resolve(del);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
exports.default = Secure;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* External dependencies
|
|
10
|
+
*/
|
|
11
|
+
const Configstore = require('configstore');
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Insecure {
|
|
18
|
+
constructor(file) {
|
|
19
|
+
this.file = file;
|
|
20
|
+
this.configstore = new Configstore(this.file);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getPassword(service) {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
let password = null;
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
password = this.configstore.get(service);
|
|
29
|
+
} catch (err) {
|
|
30
|
+
return reject(err);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return resolve(password);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
setPassword(service, password) {
|
|
38
|
+
return new Promise((resolve, reject) => {
|
|
39
|
+
try {
|
|
40
|
+
this.configstore.set(service, password);
|
|
41
|
+
} catch (err) {
|
|
42
|
+
return reject(err);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
resolve(true);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
deletePassword(service) {
|
|
50
|
+
return new Promise((resolve, reject) => {
|
|
51
|
+
try {
|
|
52
|
+
this.configstore.delete(service);
|
|
53
|
+
} catch (err) {
|
|
54
|
+
return reject(err);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
resolve(true);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
exports.default = Insecure;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _keytar = _interopRequireDefault(require("keytar"));
|
|
9
|
+
|
|
10
|
+
var _keychain = _interopRequireDefault(require("./keychain"));
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* External dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Internal dependencies
|
|
20
|
+
*/
|
|
21
|
+
class Secure {
|
|
22
|
+
getPassword(service) {
|
|
23
|
+
return _keytar.default.getPassword(service, service);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
setPassword(service, password) {
|
|
27
|
+
return _keytar.default.setPassword(service, service, password);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
deletePassword(service) {
|
|
31
|
+
return _keytar.default.deletePassword(service, service);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.default = Secure;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _insecure = _interopRequireDefault(require("./keychain/insecure"));
|
|
4
|
+
|
|
5
|
+
var _browser = _interopRequireDefault(require("./keychain/browser"));
|
|
6
|
+
|
|
7
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* External dependencies
|
|
11
|
+
*/
|
|
12
|
+
const debug = require('debug')('@automattic/vip:keychain');
|
|
13
|
+
/**
|
|
14
|
+
* Internal dependencies
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
let exportValue = {};
|
|
19
|
+
|
|
20
|
+
if (typeof window === 'undefined' || typeof window.localStorage === 'undefined') {
|
|
21
|
+
// node
|
|
22
|
+
try {
|
|
23
|
+
// Try using Secure keychain ("keytar") first
|
|
24
|
+
const Secure = require("./keychain/secure");
|
|
25
|
+
|
|
26
|
+
exportValue = new Secure();
|
|
27
|
+
} catch (error) {
|
|
28
|
+
debug('Cannot use Secure keychain; falling back to Insecure keychain (Details: %o)', error); // Fallback to Insecure keychain if we can't
|
|
29
|
+
|
|
30
|
+
exportValue = new _insecure.default('vip-go-cli');
|
|
31
|
+
}
|
|
32
|
+
} else {
|
|
33
|
+
exportValue = new _browser.default();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = exportValue;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.currentUserCanImportForApp = currentUserCanImportForApp;
|
|
7
|
+
exports.isSupportedApp = exports.SUPPORTED_MEDIA_FILE_IMPORT_SITE_TYPES = exports.MEDIA_IMPORT_FILE_SIZE_LIMIT = void 0;
|
|
8
|
+
|
|
9
|
+
var _fileSize = require("../constants/file-size");
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @format
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Internal dependencies
|
|
18
|
+
*/
|
|
19
|
+
const MEDIA_IMPORT_FILE_SIZE_LIMIT = 30 * _fileSize.GB_IN_BYTES;
|
|
20
|
+
exports.MEDIA_IMPORT_FILE_SIZE_LIMIT = MEDIA_IMPORT_FILE_SIZE_LIMIT;
|
|
21
|
+
|
|
22
|
+
function currentUserCanImportForApp(app) {
|
|
23
|
+
// TODO: implement
|
|
24
|
+
return !!app;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const SUPPORTED_MEDIA_FILE_IMPORT_SITE_TYPES = ['WordPress'];
|
|
28
|
+
exports.SUPPORTED_MEDIA_FILE_IMPORT_SITE_TYPES = SUPPORTED_MEDIA_FILE_IMPORT_SITE_TYPES;
|
|
29
|
+
|
|
30
|
+
const isSupportedApp = ({
|
|
31
|
+
type
|
|
32
|
+
}) => SUPPORTED_MEDIA_FILE_IMPORT_SITE_TYPES.includes(type);
|
|
33
|
+
|
|
34
|
+
exports.isSupportedApp = isSupportedApp;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MediaImportProgressTracker = void 0;
|
|
7
|
+
|
|
8
|
+
var _singleLineLog = require("single-line-log");
|
|
9
|
+
|
|
10
|
+
var _status = require("./status");
|
|
11
|
+
|
|
12
|
+
var _format = require("../cli/format");
|
|
13
|
+
|
|
14
|
+
/** @format */
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* External dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Internal dependencies
|
|
22
|
+
*/
|
|
23
|
+
const PRINT_INTERVAL = process.env.DEBUG ? 5000 : 200; // How often the report is printed. Mainly affects the "spinner" animation.
|
|
24
|
+
|
|
25
|
+
class MediaImportProgressTracker {
|
|
26
|
+
// Spinnerz go brrrr
|
|
27
|
+
// This gets printed before the step status
|
|
28
|
+
// This gets printed after the step status
|
|
29
|
+
constructor(status) {
|
|
30
|
+
this.runningSprite = new _format.RunningSprite();
|
|
31
|
+
this.hasFailure = false;
|
|
32
|
+
this.status = Object.assign({}, status);
|
|
33
|
+
this.prefix = '';
|
|
34
|
+
this.suffix = '';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
setStatus(status) {
|
|
38
|
+
if ('FAILED' === status.status) {
|
|
39
|
+
this.hasFailure = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
this.status = Object.assign({}, status);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
startPrinting(prePrintCallback = () => {}) {
|
|
46
|
+
this.printInterval = setInterval(() => {
|
|
47
|
+
prePrintCallback();
|
|
48
|
+
this.print();
|
|
49
|
+
}, PRINT_INTERVAL);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
stopPrinting() {
|
|
53
|
+
if (this.printInterval) {
|
|
54
|
+
clearInterval(this.printInterval);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
print({
|
|
59
|
+
clearAfter = false
|
|
60
|
+
} = {}) {
|
|
61
|
+
if (!this.hasPrinted) {
|
|
62
|
+
this.hasPrinted = true;
|
|
63
|
+
|
|
64
|
+
_singleLineLog.stdout.clear();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const statusIcon = (0, _status.getGlyphForStatus)(this.status.status, this.runningSprite);
|
|
68
|
+
let logs;
|
|
69
|
+
|
|
70
|
+
if (this.status.filesProcessed && this.status.filesTotal) {
|
|
71
|
+
const progressPercentage = Math.floor(this.status.filesProcessed / this.status.filesTotal * 100);
|
|
72
|
+
logs = `Imported Files: ${this.status.filesProcessed}/${this.status.filesTotal} - ${progressPercentage}% ${statusIcon}`;
|
|
73
|
+
} // Output the logs
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
(0, _singleLineLog.stdout)(`${this.prefix || ''}${logs || ''}${this.suffix || ''}`);
|
|
77
|
+
|
|
78
|
+
if (clearAfter) {
|
|
79
|
+
// Break out of the "Single log line" buffer
|
|
80
|
+
_singleLineLog.stdout.clear();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
exports.MediaImportProgressTracker = MediaImportProgressTracker;
|