@automattic/vip 2.21.0 → 2.23.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/CHANGELOG.md +23 -0
- package/assets/dev-env.lando.template.yml.ejs +1 -1
- package/automattic-vip-2.23.0.tgz +0 -0
- package/dist/bin/vip-app-list.js +0 -12
- package/dist/bin/vip-app.js +6 -13
- package/dist/bin/vip-cache-purge-url.js +4 -19
- package/dist/bin/vip-cache.js +0 -2
- package/dist/bin/vip-config-envvar-delete.js +4 -19
- package/dist/bin/vip-config-envvar-get-all.js +6 -19
- package/dist/bin/vip-config-envvar-get.js +4 -15
- package/dist/bin/vip-config-envvar-list.js +8 -20
- package/dist/bin/vip-config-envvar-set.js +4 -23
- package/dist/bin/vip-config-envvar.js +0 -2
- package/dist/bin/vip-config-software-get.js +0 -17
- package/dist/bin/vip-config-software-update.js +6 -22
- package/dist/bin/vip-config-software.js +0 -2
- package/dist/bin/vip-config.js +0 -2
- package/dist/bin/vip-dev-env-create.js +0 -18
- package/dist/bin/vip-dev-env-destroy.js +0 -9
- package/dist/bin/vip-dev-env-exec.js +0 -12
- package/dist/bin/vip-dev-env-import-media.js +0 -7
- package/dist/bin/vip-dev-env-import-sql.js +2 -17
- package/dist/bin/vip-dev-env-import.js +0 -3
- package/dist/bin/vip-dev-env-info.js +0 -10
- package/dist/bin/vip-dev-env-list.js +0 -7
- package/dist/bin/vip-dev-env-start.js +4 -14
- package/dist/bin/vip-dev-env-stop.js +0 -9
- package/dist/bin/vip-dev-env-update.js +0 -11
- package/dist/bin/vip-dev-env.js +0 -2
- package/dist/bin/vip-import-media-abort.js +0 -18
- package/dist/bin/vip-import-media-status.js +0 -12
- package/dist/bin/vip-import-media.js +6 -23
- package/dist/bin/vip-import-sql-status.js +0 -12
- package/dist/bin/vip-import-sql.js +40 -103
- package/dist/bin/vip-import-validate-files.js +21 -42
- package/dist/bin/vip-import-validate-sql.js +0 -8
- package/dist/bin/vip-import.js +0 -3
- package/dist/bin/vip-logs.js +20 -50
- package/dist/bin/vip-search-replace.js +8 -14
- package/dist/bin/vip-sync.js +2 -25
- package/dist/bin/vip-validate-preflight.js +427 -0
- package/dist/bin/vip-validate.js +19 -0
- package/dist/bin/vip-whoami.js +2 -14
- package/dist/bin/vip-wp.js +39 -89
- package/dist/bin/vip.js +5 -35
- package/dist/lib/analytics/clients/pendo.js +9 -18
- package/dist/lib/analytics/clients/stub.js +1 -3
- package/dist/lib/analytics/clients/tracks.js +11 -20
- package/dist/lib/analytics/index.js +4 -11
- package/dist/lib/api/app.js +1 -11
- package/dist/lib/api/cache-purge.js +4 -7
- package/dist/lib/api/feature-flags.js +1 -4
- package/dist/lib/api/http.js +9 -15
- package/dist/lib/api/user.js +1 -7
- package/dist/lib/api.js +17 -19
- package/dist/lib/app-logs/app-logs.js +2 -9
- package/dist/lib/app.js +2 -5
- package/dist/lib/cli/apiConfig.js +4 -19
- package/dist/lib/cli/command.js +43 -133
- package/dist/lib/cli/config.js +1 -5
- package/dist/lib/cli/envAlias.js +14 -15
- package/dist/lib/cli/exit.js +4 -6
- package/dist/lib/cli/format.js +8 -50
- package/dist/lib/cli/progress.js +13 -42
- package/dist/lib/cli/prompt.js +1 -5
- package/dist/lib/cli/repo.js +7 -20
- package/dist/lib/client-file-uploader.js +44 -97
- package/dist/lib/config/software.js +2 -52
- package/dist/lib/constants/dev-environment.js +1 -2
- package/dist/lib/constants/file-size.js +1 -1
- package/dist/lib/constants/vipgo.js +1 -1
- package/dist/lib/dev-environment/dev-environment-cli.js +68 -155
- package/dist/lib/dev-environment/dev-environment-core.js +73 -194
- package/dist/lib/dev-environment/dev-environment-lando.js +16 -71
- package/dist/lib/env.js +1 -4
- package/dist/lib/envvar/api-delete.js +1 -4
- package/dist/lib/envvar/api-get-all.js +1 -4
- package/dist/lib/envvar/api-get.js +1 -2
- package/dist/lib/envvar/api-list.js +3 -4
- package/dist/lib/envvar/api-set.js +1 -4
- package/dist/lib/envvar/api.js +5 -16
- package/dist/lib/envvar/input.js +1 -8
- package/dist/lib/envvar/logging.js +2 -6
- package/dist/lib/envvar/read-file.js +1 -3
- package/dist/lib/http/proxy-agent.js +17 -22
- package/dist/lib/keychain/browser.js +1 -4
- package/dist/lib/keychain/insecure.js +1 -10
- package/dist/lib/keychain/secure.js +1 -8
- package/dist/lib/keychain.js +4 -8
- package/dist/lib/logout.js +0 -6
- package/dist/lib/media-import/media-file-import.js +3 -7
- package/dist/lib/media-import/progress.js +6 -17
- package/dist/lib/media-import/status.js +14 -65
- package/dist/lib/read-file.js +1 -6
- package/dist/lib/rollbar.js +1 -7
- package/dist/lib/search-and-replace.js +9 -41
- package/dist/lib/site-import/db-file-import.js +3 -9
- package/dist/lib/site-import/status.js +17 -74
- package/dist/lib/token.js +1 -33
- package/dist/lib/tracker.js +4 -20
- package/dist/lib/user-error.js +0 -2
- package/dist/lib/validations/is-multi-site-sql-dump.js +4 -12
- package/dist/lib/validations/is-multi-site.js +5 -21
- package/dist/lib/validations/is-multisite-domain-mapped.js +5 -31
- package/dist/lib/validations/line-by-line.js +4 -16
- package/dist/lib/validations/site-type.js +10 -19
- package/dist/lib/validations/sql.js +11 -76
- package/dist/lib/validations/utils.js +1 -6
- package/dist/lib/vip-import-validate-files.js +82 -109
- package/npm-shrinkwrap.json +2407 -1800
- package/package.json +18 -15
|
@@ -3,22 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
6
|
+
exports.triggerUpdate = exports.promptForUpdate = exports.getUpdateResult = exports.formatSoftwareSettings = exports.appQueryFragments = exports.appQuery = void 0;
|
|
8
7
|
var _enquirer = require("enquirer");
|
|
9
|
-
|
|
10
8
|
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
11
|
-
|
|
12
9
|
var _debug = _interopRequireDefault(require("debug"));
|
|
13
|
-
|
|
14
10
|
var _app = require("../app");
|
|
15
|
-
|
|
16
11
|
var _api = _interopRequireDefault(require("../api"));
|
|
17
|
-
|
|
18
12
|
var _userError = _interopRequireDefault(require("../user-error"));
|
|
19
|
-
|
|
20
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
14
|
/**
|
|
23
15
|
* External dependencies
|
|
24
16
|
*/
|
|
@@ -26,6 +18,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
26
18
|
/**
|
|
27
19
|
* Internal dependencies
|
|
28
20
|
*/
|
|
21
|
+
|
|
29
22
|
const UPDATE_PROGRESS_POLL_INTERVAL = 5;
|
|
30
23
|
const debug = (0, _debug.default)('@automattic/vip:bin:config-software');
|
|
31
24
|
const appQuery = `
|
|
@@ -140,7 +133,6 @@ const COMPONENT_NAMES = {
|
|
|
140
133
|
nodejs: 'Node.js'
|
|
141
134
|
};
|
|
142
135
|
const MANAGED_OPTION_KEY = 'managed_latest';
|
|
143
|
-
|
|
144
136
|
const _optionsForVersion = softwareSettings => {
|
|
145
137
|
const {
|
|
146
138
|
options,
|
|
@@ -154,7 +146,6 @@ const _optionsForVersion = softwareSettings => {
|
|
|
154
146
|
test: [],
|
|
155
147
|
deprecated: []
|
|
156
148
|
};
|
|
157
|
-
|
|
158
149
|
for (const option of options) {
|
|
159
150
|
if (option.deprecated) {
|
|
160
151
|
versionChoices.deprecated.push({
|
|
@@ -173,19 +164,16 @@ const _optionsForVersion = softwareSettings => {
|
|
|
173
164
|
});
|
|
174
165
|
}
|
|
175
166
|
}
|
|
176
|
-
|
|
177
167
|
if (slug === 'wordpress') {
|
|
178
168
|
versionChoices.managed.push({
|
|
179
169
|
message: 'Managed updates',
|
|
180
170
|
value: MANAGED_OPTION_KEY
|
|
181
171
|
});
|
|
182
172
|
}
|
|
183
|
-
|
|
184
173
|
const allOptions = [...versionChoices.managed, ...versionChoices.supported, ...versionChoices.test, ...versionChoices.deprecated];
|
|
185
174
|
return allOptions.map(option => {
|
|
186
175
|
const isActivePinned = option.value === MANAGED_OPTION_KEY && !pinned;
|
|
187
176
|
const isActiveVersion = option.value === current.version && pinned;
|
|
188
|
-
|
|
189
177
|
if (isActivePinned || isActiveVersion) {
|
|
190
178
|
return {
|
|
191
179
|
message: `Active: ${option.message}`,
|
|
@@ -193,36 +181,28 @@ const _optionsForVersion = softwareSettings => {
|
|
|
193
181
|
disabled: true
|
|
194
182
|
};
|
|
195
183
|
}
|
|
196
|
-
|
|
197
184
|
return option;
|
|
198
185
|
});
|
|
199
186
|
};
|
|
200
|
-
|
|
201
187
|
const _processComponent = async (appTypeId, userProvidedComponent) => {
|
|
202
188
|
const validComponents = [];
|
|
203
|
-
|
|
204
189
|
if ((0, _app.isAppWordPress)(appTypeId)) {
|
|
205
190
|
validComponents.push('wordpress', 'php', 'muplugins');
|
|
206
191
|
} else if ((0, _app.isAppNodejs)(appTypeId)) {
|
|
207
192
|
validComponents.push('nodejs');
|
|
208
193
|
}
|
|
209
|
-
|
|
210
194
|
if (userProvidedComponent) {
|
|
211
195
|
if (!validComponents.includes(userProvidedComponent)) {
|
|
212
196
|
throw new _userError.default(`Component ${userProvidedComponent} is not supported. Use one of: ${validComponents.join(',')}`);
|
|
213
197
|
}
|
|
214
|
-
|
|
215
198
|
return userProvidedComponent;
|
|
216
199
|
}
|
|
217
|
-
|
|
218
200
|
if (validComponents.length === 0) {
|
|
219
201
|
throw new _userError.default('No components are supported for this application');
|
|
220
202
|
}
|
|
221
|
-
|
|
222
203
|
if (validComponents.length === 1) {
|
|
223
204
|
return validComponents[0];
|
|
224
205
|
}
|
|
225
|
-
|
|
226
206
|
const choices = validComponents.map(item => ({
|
|
227
207
|
message: COMPONENT_NAMES[item],
|
|
228
208
|
value: item
|
|
@@ -235,20 +215,15 @@ const _processComponent = async (appTypeId, userProvidedComponent) => {
|
|
|
235
215
|
throw new _userError.default('Command cancelled by user.');
|
|
236
216
|
});
|
|
237
217
|
};
|
|
238
|
-
|
|
239
218
|
const _processComponentVersion = async (softwareSettings, component, userProvidedVersion) => {
|
|
240
219
|
const versionChoices = _optionsForVersion(softwareSettings[component]);
|
|
241
|
-
|
|
242
220
|
if (userProvidedVersion) {
|
|
243
221
|
const validValues = versionChoices.map(item => item.value);
|
|
244
|
-
|
|
245
222
|
if (!validValues.includes(userProvidedVersion)) {
|
|
246
223
|
throw new _userError.default(`Version ${userProvidedVersion} is not supported for ${COMPONENT_NAMES[component]}. Use one of: ${validValues.join(',')}`);
|
|
247
224
|
}
|
|
248
|
-
|
|
249
225
|
return userProvidedVersion;
|
|
250
226
|
}
|
|
251
|
-
|
|
252
227
|
const versionSelect = new _enquirer.Select({
|
|
253
228
|
message: `Version for ${COMPONENT_NAMES[component]} to upgrade to`,
|
|
254
229
|
choices: versionChoices
|
|
@@ -257,7 +232,6 @@ const _processComponentVersion = async (softwareSettings, component, userProvide
|
|
|
257
232
|
throw new _userError.default('Command cancelled by user.');
|
|
258
233
|
});
|
|
259
234
|
};
|
|
260
|
-
|
|
261
235
|
const promptForUpdate = async (appTypeId, opts, softwareSettings) => {
|
|
262
236
|
const component = await _processComponent(appTypeId, opts.component);
|
|
263
237
|
const version = await _processComponentVersion(softwareSettings, component, opts.version);
|
|
@@ -266,19 +240,15 @@ const promptForUpdate = async (appTypeId, opts, softwareSettings) => {
|
|
|
266
240
|
}).run().catch(() => {
|
|
267
241
|
throw new _userError.default('Command cancelled by user.');
|
|
268
242
|
}));
|
|
269
|
-
|
|
270
243
|
if (confirm) {
|
|
271
244
|
return {
|
|
272
245
|
component,
|
|
273
246
|
version
|
|
274
247
|
};
|
|
275
248
|
}
|
|
276
|
-
|
|
277
249
|
throw new _userError.default('Update canceled');
|
|
278
250
|
};
|
|
279
|
-
|
|
280
251
|
exports.promptForUpdate = promptForUpdate;
|
|
281
|
-
|
|
282
252
|
const triggerUpdate = async variables => {
|
|
283
253
|
debug('Triggering update', variables);
|
|
284
254
|
const api = await (0, _api.default)();
|
|
@@ -287,12 +257,9 @@ const triggerUpdate = async variables => {
|
|
|
287
257
|
variables
|
|
288
258
|
});
|
|
289
259
|
};
|
|
290
|
-
|
|
291
260
|
exports.triggerUpdate = triggerUpdate;
|
|
292
|
-
|
|
293
261
|
const _getLatestJob = async (appId, envId) => {
|
|
294
262
|
var _result$data, _result$data$app;
|
|
295
|
-
|
|
296
263
|
const api = await (0, _api.default)();
|
|
297
264
|
const result = await api.query({
|
|
298
265
|
query: updateJobQuery,
|
|
@@ -303,43 +270,34 @@ const _getLatestJob = async (appId, envId) => {
|
|
|
303
270
|
fetchPolicy: 'network-only'
|
|
304
271
|
});
|
|
305
272
|
const jobs = (result === null || result === void 0 ? void 0 : (_result$data = result.data) === null || _result$data === void 0 ? void 0 : (_result$data$app = _result$data.app) === null || _result$data$app === void 0 ? void 0 : _result$data$app.environments[0].jobs) || [];
|
|
306
|
-
|
|
307
273
|
if (jobs.length) {
|
|
308
274
|
return jobs.reduce((prev, current) => prev.createdAt > current.createdAt ? prev : current);
|
|
309
275
|
}
|
|
310
|
-
|
|
311
276
|
return null;
|
|
312
277
|
};
|
|
313
|
-
|
|
314
278
|
const _getCompletedJob = async (appId, envId) => {
|
|
315
279
|
const latestJob = await _getLatestJob(appId, envId);
|
|
316
280
|
debug('Latest job result:', latestJob);
|
|
317
|
-
|
|
318
281
|
if (!latestJob || !latestJob.inProgressLock) {
|
|
319
282
|
return latestJob;
|
|
320
283
|
}
|
|
321
|
-
|
|
322
284
|
debug(`Sleep for ${UPDATE_PROGRESS_POLL_INTERVAL} seconds`);
|
|
323
285
|
await new Promise(resolve => setTimeout(resolve, UPDATE_PROGRESS_POLL_INTERVAL * 1000));
|
|
324
286
|
return _getCompletedJob(appId, envId);
|
|
325
287
|
};
|
|
326
|
-
|
|
327
288
|
const getUpdateResult = async (appId, envId) => {
|
|
328
289
|
var _completedJob$progres, _completedJob$progres2, _completedJob$progres3;
|
|
329
|
-
|
|
330
290
|
debug('Getting update result', {
|
|
331
291
|
appId,
|
|
332
292
|
envId
|
|
333
293
|
});
|
|
334
294
|
const completedJob = await _getCompletedJob(appId, envId);
|
|
335
295
|
const success = !completedJob || (completedJob === null || completedJob === void 0 ? void 0 : (_completedJob$progres = completedJob.progress) === null || _completedJob$progres === void 0 ? void 0 : _completedJob$progres.status) === 'success';
|
|
336
|
-
|
|
337
296
|
if (success) {
|
|
338
297
|
return {
|
|
339
298
|
ok: true
|
|
340
299
|
};
|
|
341
300
|
}
|
|
342
|
-
|
|
343
301
|
const failedStep = completedJob === null || completedJob === void 0 ? void 0 : (_completedJob$progres2 = completedJob.progress) === null || _completedJob$progres2 === void 0 ? void 0 : (_completedJob$progres3 = _completedJob$progres2.steps) === null || _completedJob$progres3 === void 0 ? void 0 : _completedJob$progres3.find(step => step.status === 'failed');
|
|
344
302
|
const error = failedStep ? `Failed during step: ${failedStep.name}` : 'Software update failed';
|
|
345
303
|
return {
|
|
@@ -347,31 +305,23 @@ const getUpdateResult = async (appId, envId) => {
|
|
|
347
305
|
errorMessage: error
|
|
348
306
|
};
|
|
349
307
|
};
|
|
350
|
-
|
|
351
308
|
exports.getUpdateResult = getUpdateResult;
|
|
352
|
-
|
|
353
309
|
const formatSoftwareSettings = (softwareSetting, includes, format) => {
|
|
354
310
|
let version = softwareSetting.current.version;
|
|
355
|
-
|
|
356
311
|
if (softwareSetting.slug === 'wordpress' && !softwareSetting.pinned) {
|
|
357
312
|
version += ' (managed updates)';
|
|
358
313
|
}
|
|
359
|
-
|
|
360
314
|
const result = {
|
|
361
315
|
name: softwareSetting.name,
|
|
362
316
|
slug: softwareSetting.slug,
|
|
363
317
|
version
|
|
364
318
|
};
|
|
365
|
-
|
|
366
319
|
if (includes.includes('available_versions')) {
|
|
367
320
|
result.available_versions = _optionsForVersion(softwareSetting).map(option => option.value);
|
|
368
|
-
|
|
369
321
|
if (format !== 'json') {
|
|
370
322
|
result.available_versions = result.available_versions.join(',');
|
|
371
323
|
}
|
|
372
324
|
}
|
|
373
|
-
|
|
374
325
|
return result;
|
|
375
326
|
};
|
|
376
|
-
|
|
377
327
|
exports.formatSoftwareSettings = formatSoftwareSettings;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.DEV_ENVIRONMENT_WORDPRESS_VERSION_TTL = exports.DEV_ENVIRONMENT_WORDPRESS_VERSIONS_URI = exports.DEV_ENVIRONMENT_WORDPRESS_CACHE_KEY = exports.DEV_ENVIRONMENT_SUBCOMMAND = exports.DEV_ENVIRONMENT_RAW_GITHUB_HOST = exports.DEV_ENVIRONMENT_PROMPT_INTRO = exports.DEV_ENVIRONMENT_PHP_VERSIONS = exports.DEV_ENVIRONMENT_NOT_FOUND = exports.DEV_ENVIRONMENT_FULL_COMMAND = exports.DEV_ENVIRONMENT_DEFAULTS = exports.DEV_ENVIRONMENT_COMPONENTS = void 0;
|
|
7
7
|
const DEV_ENVIRONMENT_SUBCOMMAND = 'dev-env';
|
|
8
8
|
exports.DEV_ENVIRONMENT_SUBCOMMAND = DEV_ENVIRONMENT_SUBCOMMAND;
|
|
9
9
|
const DEV_ENVIRONMENT_FULL_COMMAND = `vip ${DEV_ENVIRONMENT_SUBCOMMAND}`;
|
|
@@ -28,7 +28,6 @@ exports.DEV_ENVIRONMENT_WORDPRESS_VERSIONS_URI = DEV_ENVIRONMENT_WORDPRESS_VERSI
|
|
|
28
28
|
const DEV_ENVIRONMENT_WORDPRESS_CACHE_KEY = 'wordpress-versions.json';
|
|
29
29
|
exports.DEV_ENVIRONMENT_WORDPRESS_CACHE_KEY = DEV_ENVIRONMENT_WORDPRESS_CACHE_KEY;
|
|
30
30
|
const DEV_ENVIRONMENT_WORDPRESS_VERSION_TTL = 86400; // once per day
|
|
31
|
-
|
|
32
31
|
exports.DEV_ENVIRONMENT_WORDPRESS_VERSION_TTL = DEV_ENVIRONMENT_WORDPRESS_VERSION_TTL;
|
|
33
32
|
const DEV_ENVIRONMENT_PHP_VERSIONS = {
|
|
34
33
|
// eslint-disable-next-line quote-props
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TB_IN_BYTES = exports.
|
|
6
|
+
exports.TB_IN_BYTES = exports.MB_IN_BYTES = exports.KB_IN_BYTES = exports.GB_IN_BYTES = void 0;
|
|
7
7
|
const KB_IN_BYTES = 1024;
|
|
8
8
|
exports.KB_IN_BYTES = KB_IN_BYTES;
|
|
9
9
|
const MB_IN_BYTES = 1024 * KB_IN_BYTES;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.WORDPRESS_SITE_TYPE_IDS = exports.WORDPRESS_NON_PROD_APPLICATION_TYPE_ID = exports.WORDPRESS_APPLICATION_TYPE_ID = exports.NODEJS_SITE_TYPE_IDS = exports.NODEJS_REDIS_APPLICATION_TYPE_ID = exports.NODEJS_MYSQL_REDIS_APPLICATION_TYPE_ID = exports.NODEJS_MYSQL_APPLICATION_TYPE_ID = exports.NODEJS_APPLICATION_TYPE_ID = void 0;
|
|
7
7
|
const WORDPRESS_APPLICATION_TYPE_ID = 2;
|
|
8
8
|
exports.WORDPRESS_APPLICATION_TYPE_ID = WORDPRESS_APPLICATION_TYPE_ID;
|
|
9
9
|
const WORDPRESS_NON_PROD_APPLICATION_TYPE_ID = 6;
|