@automattic/vip 2.36.0-dev.0 → 2.36.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/dist/bin/vip-app-list.js +1 -8
- package/dist/bin/vip-app.js +3 -10
- package/dist/bin/vip-backup-db.js +1 -9
- package/dist/bin/vip-backup.js +0 -8
- package/dist/bin/vip-cache-purge-url.js +6 -16
- package/dist/bin/vip-cache.js +0 -8
- package/dist/bin/vip-config-envvar-delete.js +2 -11
- package/dist/bin/vip-config-envvar-get-all.js +1 -10
- package/dist/bin/vip-config-envvar-get.js +1 -10
- package/dist/bin/vip-config-envvar-list.js +1 -10
- package/dist/bin/vip-config-envvar-set.js +3 -12
- package/dist/bin/vip-config-envvar.js +0 -8
- package/dist/bin/vip-config-software-get.js +3 -12
- package/dist/bin/vip-config-software-update.js +6 -13
- package/dist/bin/vip-config-software.js +0 -8
- package/dist/bin/vip-config.js +0 -8
- package/dist/bin/vip-dev-env-create.js +6 -13
- package/dist/bin/vip-dev-env-destroy.js +3 -10
- package/dist/bin/vip-dev-env-exec.js +2 -6
- package/dist/bin/vip-dev-env-import-media.js +2 -10
- package/dist/bin/vip-dev-env-import-sql.js +3 -11
- package/dist/bin/vip-dev-env-import.js +0 -8
- package/dist/bin/vip-dev-env-info.js +4 -11
- package/dist/bin/vip-dev-env-list.js +3 -11
- package/dist/bin/vip-dev-env-logs.js +3 -10
- package/dist/bin/vip-dev-env-shell.js +3 -10
- package/dist/bin/vip-dev-env-start.js +6 -13
- package/dist/bin/vip-dev-env-stop.js +4 -11
- package/dist/bin/vip-dev-env-sync-sql.js +4 -12
- package/dist/bin/vip-dev-env-sync.js +0 -8
- package/dist/bin/vip-dev-env-update.js +5 -12
- package/dist/bin/vip-dev-env.js +0 -8
- package/dist/bin/vip-export-sql.js +1 -9
- package/dist/bin/vip-export.js +0 -8
- package/dist/bin/vip-import-media-abort.js +7 -13
- package/dist/bin/vip-import-media-status.js +4 -11
- package/dist/bin/vip-import-media.js +5 -11
- package/dist/bin/vip-import-sql-status.js +5 -12
- package/dist/bin/vip-import-sql.js +46 -48
- package/dist/bin/vip-import-validate-files.js +3 -10
- package/dist/bin/vip-import-validate-sql.js +2 -10
- package/dist/bin/vip-import.js +0 -8
- package/dist/bin/vip-logout.js +0 -8
- package/dist/bin/vip-logs.js +10 -22
- package/dist/bin/vip-search-replace.js +2 -9
- package/dist/bin/vip-slowlogs.js +6 -16
- package/dist/bin/vip-sync.js +0 -7
- package/dist/bin/vip-validate-preflight.js +13 -24
- package/dist/bin/vip-validate.js +0 -8
- package/dist/bin/vip-whoami.js +4 -14
- package/dist/bin/vip-wp.js +8 -17
- package/dist/bin/vip.js +11 -19
- package/dist/commands/backup-db.js +15 -31
- package/dist/commands/dev-env-import-sql.js +23 -12
- package/dist/commands/dev-env-sync-sql.js +34 -35
- package/dist/commands/export-sql.js +27 -39
- package/dist/lib/analytics/clients/pendo.js +1 -11
- package/dist/lib/analytics/clients/tracks.js +2 -12
- package/dist/lib/analytics/index.js +1 -11
- package/dist/lib/api/app.js +3 -14
- package/dist/lib/api/cache-purge.js +3 -17
- package/dist/lib/api/feature-flags.js +1 -11
- package/dist/lib/api/http.js +4 -14
- package/dist/lib/api/user.js +1 -13
- package/dist/lib/api.js +8 -23
- package/dist/lib/app-logs/app-logs.js +4 -18
- package/dist/lib/app-slowlogs/app-slowlogs.js +4 -18
- package/dist/lib/app.js +1 -11
- package/dist/lib/backup-storage-availability/backup-storage-availability.js +8 -11
- package/dist/lib/backup-storage-availability/docker-machine-not-found-error.js +1 -3
- package/dist/lib/cli/apiConfig.js +6 -20
- package/dist/lib/cli/command.js +26 -33
- package/dist/lib/cli/config.js +4 -11
- package/dist/lib/cli/envAlias.js +1 -7
- package/dist/lib/cli/exit.js +1 -13
- package/dist/lib/cli/format.js +4 -13
- package/dist/lib/cli/progress.js +2 -13
- package/dist/lib/cli/prompt.js +1 -11
- package/dist/lib/client-file-uploader.js +22 -24
- package/dist/lib/config/software.js +11 -25
- package/dist/lib/constants/dev-environment.js +35 -33
- package/dist/lib/constants/file-size.js +5 -11
- package/dist/lib/constants/vipgo.js +10 -21
- package/dist/lib/dev-environment/dev-environment-cli.js +46 -49
- package/dist/lib/dev-environment/dev-environment-configuration-file.js +14 -26
- package/dist/lib/dev-environment/dev-environment-core.js +30 -43
- package/dist/lib/dev-environment/dev-environment-lando.js +19 -30
- package/dist/lib/dev-environment/docker-utils.js +1 -6
- package/dist/lib/env.js +2 -13
- package/dist/lib/envvar/api-delete.js +1 -11
- package/dist/lib/envvar/api-get-all.js +2 -13
- package/dist/lib/envvar/api-get.js +2 -12
- package/dist/lib/envvar/api-list.js +3 -14
- package/dist/lib/envvar/api-set.js +1 -11
- package/dist/lib/envvar/api.js +8 -46
- package/dist/lib/envvar/input.js +2 -14
- package/dist/lib/envvar/logging.js +3 -13
- package/dist/lib/envvar/read-file.js +1 -13
- package/dist/lib/http/proxy-agent.js +3 -12
- package/dist/lib/keychain/insecure.js +1 -11
- package/dist/lib/keychain/secure.js +1 -11
- package/dist/lib/keychain.js +3 -14
- package/dist/lib/logout.js +2 -7
- package/dist/lib/media-import/media-file-import.js +4 -12
- package/dist/lib/media-import/progress.js +2 -12
- package/dist/lib/media-import/status.js +15 -30
- package/dist/lib/read-file.js +3 -15
- package/dist/lib/search-and-replace.js +9 -21
- package/dist/lib/site-import/db-file-import.js +6 -18
- package/dist/lib/site-import/status.js +19 -36
- package/dist/lib/token.js +5 -16
- package/dist/lib/tracker.js +5 -15
- package/dist/lib/user-error.js +1 -3
- package/dist/lib/utils.js +4 -15
- package/dist/lib/validations/is-multi-site-sql-dump.js +1 -3
- package/dist/lib/validations/is-multi-site.js +6 -17
- package/dist/lib/validations/is-multisite-domain-mapped.js +9 -21
- package/dist/lib/validations/line-by-line.js +5 -15
- package/dist/lib/validations/site-type.js +4 -15
- package/dist/lib/validations/sql.js +33 -15
- package/dist/lib/validations/utils.js +1 -3
- package/dist/lib/vip-import-validate-files.js +2 -9
- package/helpers/check-version.js +1 -0
- package/helpers/prepublishOnly.js +2 -1
- package/npm-shrinkwrap.json +2586 -2999
- package/package.json +30 -34
- package/dist/bin/vip-phpmyadmin.js +0 -53
- package/dist/commands/phpmyadmin.js +0 -91
package/dist/lib/tracker.js
CHANGED
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.aliasUser = aliasUser;
|
|
7
5
|
exports.makeCommandTracker = makeCommandTracker;
|
|
8
6
|
exports.trackEvent = trackEvent;
|
|
9
7
|
exports.trackEventWithEnv = trackEventWithEnv;
|
|
10
8
|
var _debug = _interopRequireDefault(require("debug"));
|
|
11
|
-
var _index = _interopRequireDefault(require("./analytics/index"));
|
|
12
|
-
var _tracks = _interopRequireDefault(require("./analytics/clients/tracks"));
|
|
13
9
|
var _pendo = _interopRequireDefault(require("./analytics/clients/pendo"));
|
|
14
|
-
var
|
|
15
|
-
var
|
|
10
|
+
var _tracks = _interopRequireDefault(require("./analytics/clients/tracks"));
|
|
11
|
+
var _index = _interopRequireDefault(require("./analytics/index"));
|
|
16
12
|
var _env = _interopRequireDefault(require("./env"));
|
|
13
|
+
var _config = _interopRequireDefault(require("../lib/cli/config"));
|
|
14
|
+
var _token = _interopRequireDefault(require("../lib/token"));
|
|
17
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
-
/**
|
|
19
|
-
* External dependencies
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Internal dependencies
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
16
|
const debug = (0, _debug.default)('@automattic/vip:analytics');
|
|
27
17
|
let analytics = null;
|
|
28
18
|
async function init() {
|
package/dist/lib/user-error.js
CHANGED
package/dist/lib/utils.js
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.getAbsolutePath = getAbsolutePath;
|
|
7
5
|
exports.makeTempDir = makeTempDir;
|
|
8
6
|
exports.pollUntil = pollUntil;
|
|
7
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
9
8
|
var _fs = _interopRequireDefault(require("fs"));
|
|
10
|
-
var _path = _interopRequireDefault(require("path"));
|
|
11
|
-
var _os = _interopRequireDefault(require("os"));
|
|
12
9
|
var _promises = require("node:timers/promises");
|
|
13
|
-
var
|
|
10
|
+
var _os = _interopRequireDefault(require("os"));
|
|
11
|
+
var _path = _interopRequireDefault(require("path"));
|
|
14
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
// @format
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* External dependencies
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Internal dependencies
|
|
23
|
-
*/
|
|
24
13
|
const debug = (0, _debug.default)('@automattic/vip:lib:utils');
|
|
25
14
|
|
|
26
15
|
/**
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.sqlDumpLineIsMultiSite = sqlDumpLineIsMultiSite;
|
|
7
5
|
const SQL_CREATE_TABLE_IS_MULTISITE_REGEX = /^CREATE TABLE `?(wp_\d+_[a-z0-9_]*|wp_blogs)/i;
|
|
8
6
|
const SQL_CONTAINS_MULTISITE_WP_USERS_REGEX = /`spam` tinyint\(2\)|`deleted` tinyint\(2\)/i;
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.isMultiSiteInSiteMeta = isMultiSiteInSiteMeta;
|
|
7
5
|
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
8
6
|
var _api = _interopRequireDefault(require("../../lib/api"));
|
|
9
|
-
var _tracker = require("../../lib/tracker");
|
|
10
7
|
var exit = _interopRequireWildcard(require("../../lib/cli/exit"));
|
|
11
|
-
|
|
12
|
-
function
|
|
8
|
+
var _tracker = require("../../lib/tracker");
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
/**
|
|
15
|
-
* External dependencies
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Internal dependencies
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
12
|
const isMultiSite = new WeakMap();
|
|
23
13
|
async function isMultiSiteInSiteMeta(appId, envId) {
|
|
24
|
-
var _res$data$app;
|
|
25
14
|
const args = {
|
|
26
15
|
0: appId,
|
|
27
16
|
1: envId
|
|
@@ -67,9 +56,9 @@ async function isMultiSiteInSiteMeta(appId, envId) {
|
|
|
67
56
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
68
57
|
exit.withError(`StartImport call failed: ${GraphQlError}`);
|
|
69
58
|
}
|
|
70
|
-
if (Array.isArray(
|
|
59
|
+
if (Array.isArray(res.data.app?.environments)) {
|
|
71
60
|
const environments = res.data.app.environments;
|
|
72
|
-
if (!
|
|
61
|
+
if (!environments?.length) {
|
|
73
62
|
isMultiSite.set(args, false);
|
|
74
63
|
return false;
|
|
75
64
|
}
|
|
@@ -1,26 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.getPrimaryDomainFromSQL = exports.getPrimaryDomain = void 0;
|
|
7
5
|
exports.isMultisitePrimaryDomainMapped = isMultisitePrimaryDomainMapped;
|
|
8
6
|
exports.maybeSearchReplacePrimaryDomain = void 0;
|
|
9
7
|
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
10
8
|
var _api = _interopRequireDefault(require("../../lib/api"));
|
|
11
|
-
var _tracker = require("../../lib/tracker");
|
|
12
9
|
var exit = _interopRequireWildcard(require("../../lib/cli/exit"));
|
|
13
|
-
|
|
14
|
-
function
|
|
10
|
+
var _tracker = require("../../lib/tracker");
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
/**
|
|
17
|
-
* External dependencies
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Internal dependencies
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
14
|
/**
|
|
25
15
|
* Extracts the domain for site with ID 1 from an INSERT INTO `wp_site` SQL statement
|
|
26
16
|
*
|
|
@@ -28,12 +18,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
28
18
|
* @return {string} The domain
|
|
29
19
|
*/
|
|
30
20
|
const getPrimaryDomainFromSQL = statements => {
|
|
31
|
-
var _statements$;
|
|
32
21
|
if (!statements.length) {
|
|
33
22
|
return '';
|
|
34
23
|
}
|
|
35
24
|
const SQL_WP_SITE_DOMAINS_REGEX = /\(1,'(.*?)'/s;
|
|
36
|
-
const matches =
|
|
25
|
+
const matches = statements[0]?.join('').replace(/\s/g, '').match(SQL_WP_SITE_DOMAINS_REGEX);
|
|
37
26
|
return matches ? matches[1] : '';
|
|
38
27
|
};
|
|
39
28
|
|
|
@@ -50,7 +39,7 @@ const maybeSearchReplacePrimaryDomain = function (domain, searchReplace) {
|
|
|
50
39
|
const pairs = Array.isArray(searchReplace) ? searchReplace : [searchReplace];
|
|
51
40
|
const domainReplacements = pairs.map(pair => pair.split(','));
|
|
52
41
|
const primaryDomainReplacement = domainReplacements.find(pair => pair[0] === domain);
|
|
53
|
-
return
|
|
42
|
+
return primaryDomainReplacement?.[1] ?? domain;
|
|
54
43
|
}
|
|
55
44
|
return domain;
|
|
56
45
|
};
|
|
@@ -78,7 +67,6 @@ const getPrimaryDomain = function (statements, searchReplace) {
|
|
|
78
67
|
*/
|
|
79
68
|
exports.getPrimaryDomain = getPrimaryDomain;
|
|
80
69
|
async function isMultisitePrimaryDomainMapped(appId, envId, primaryDomain) {
|
|
81
|
-
var _res$data$app, _environments$;
|
|
82
70
|
const track = _tracker.trackEventWithEnv.bind(null, appId, envId);
|
|
83
71
|
const api = await (0, _api.default)();
|
|
84
72
|
let res;
|
|
@@ -115,13 +103,13 @@ async function isMultisitePrimaryDomainMapped(appId, envId, primaryDomain) {
|
|
|
115
103
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
116
104
|
exit.withError(`StartImport call failed: ${GraphQlError}`);
|
|
117
105
|
}
|
|
118
|
-
if (!Array.isArray(
|
|
106
|
+
if (!Array.isArray(res.data.app?.environments)) {
|
|
119
107
|
return false;
|
|
120
108
|
}
|
|
121
109
|
const environments = res.data.app.environments;
|
|
122
|
-
if (!
|
|
110
|
+
if (!environments?.length) {
|
|
123
111
|
return false;
|
|
124
112
|
}
|
|
125
|
-
const mappedDomains =
|
|
113
|
+
const mappedDomains = environments[0]?.domains?.nodes?.map(domain => domain?.name) ?? [];
|
|
126
114
|
return mappedDomains.includes(primaryDomain);
|
|
127
115
|
}
|
|
@@ -1,26 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.fileLineValidations = fileLineValidations;
|
|
7
5
|
exports.getReadInterface = getReadInterface;
|
|
8
|
-
var
|
|
6
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
9
7
|
var _nodeFs = require("node:fs");
|
|
10
8
|
var _promises = require("node:fs/promises");
|
|
11
|
-
var
|
|
9
|
+
var _nodeReadline = require("node:readline");
|
|
12
10
|
var exit = _interopRequireWildcard(require("../../lib/cli/exit"));
|
|
13
|
-
function _getRequireWildcardCache(
|
|
14
|
-
function _interopRequireWildcard(
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
/**
|
|
17
|
-
* External dependencies
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Internal dependencies
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
14
|
const debug = (0, _debug.default)('vip:validations:line-by-line');
|
|
25
15
|
async function getReadInterface(filename) {
|
|
26
16
|
let fd;
|
|
@@ -1,29 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.siteTypeValidations = void 0;
|
|
7
5
|
var _debug = _interopRequireDefault(require("debug"));
|
|
8
6
|
var _tracker = require("../../lib/tracker");
|
|
9
|
-
var _isMultiSiteSqlDump = require("../../lib/validations/is-multi-site-sql-dump");
|
|
10
7
|
var _isMultiSite = require("../../lib/validations/is-multi-site");
|
|
8
|
+
var _isMultiSiteSqlDump = require("../../lib/validations/is-multi-site-sql-dump");
|
|
11
9
|
var _isMultisiteDomainMapped = require("../../lib/validations/is-multisite-domain-mapped");
|
|
12
10
|
var _utils = require("../../lib/validations/utils");
|
|
13
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
/**
|
|
15
|
-
* External dependencies
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Internal dependencies
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
12
|
const debug = (0, _debug.default)('vip:vip-import-sql');
|
|
23
13
|
let isMultiSiteSqlDump = false;
|
|
24
14
|
let wpSiteInsertStatement;
|
|
25
15
|
const getWpSiteInsertStatement = (0, _utils.getMultilineStatement)(/INSERT INTO `wp_site`/s);
|
|
26
|
-
const siteTypeValidations = {
|
|
16
|
+
const siteTypeValidations = exports.siteTypeValidations = {
|
|
27
17
|
execute: line => {
|
|
28
18
|
const lineIsMultiSite = (0, _isMultiSiteSqlDump.sqlDumpLineIsMultiSite)(line);
|
|
29
19
|
wpSiteInsertStatement = getWpSiteInsertStatement(line);
|
|
@@ -74,5 +64,4 @@ const siteTypeValidations = {
|
|
|
74
64
|
}
|
|
75
65
|
}
|
|
76
66
|
}
|
|
77
|
-
};
|
|
78
|
-
exports.siteTypeValidations = siteTypeValidations;
|
|
67
|
+
};
|
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.validate = exports.staticSqlValidations = exports.getTableNames = void 0;
|
|
5
|
+
exports.validateFilename = validateFilename;
|
|
6
|
+
exports.validateImportFileExtension = void 0;
|
|
7
7
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
8
9
|
var _singleLineLog = require("single-line-log");
|
|
9
10
|
var exit = _interopRequireWildcard(require("../../lib/cli/exit"));
|
|
11
|
+
var _clientFileUploader = require("../../lib/client-file-uploader");
|
|
10
12
|
var _tracker = require("../../lib/tracker");
|
|
11
13
|
var _lineByLine = require("../../lib/validations/line-by-line");
|
|
12
|
-
function _getRequireWildcardCache(
|
|
13
|
-
function _interopRequireWildcard(
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
/**
|
|
16
|
-
* External dependencies
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Internal dependencies
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
17
|
let problemsFound = 0;
|
|
24
18
|
let lineNum = 1;
|
|
25
19
|
const tableNames = [];
|
|
@@ -32,6 +26,27 @@ function formatWarning(message) {
|
|
|
32
26
|
function formatRecommendation(message) {
|
|
33
27
|
return `${_chalk.default.yellow('Recommendation:')} ${message}`;
|
|
34
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Check if a file has a valid extension
|
|
31
|
+
*
|
|
32
|
+
* @param {string} filename The file extension
|
|
33
|
+
* @returns {boolean} True if the extension is valid
|
|
34
|
+
*/
|
|
35
|
+
const validateImportFileExtension = filename => {
|
|
36
|
+
const ext = _path.default.extname(filename).toLowerCase();
|
|
37
|
+
if (!['.sql', '.gz'].includes(ext)) {
|
|
38
|
+
exit.withError('Invalid file extension. Please provide a .sql or .gz file.');
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.validateImportFileExtension = validateImportFileExtension;
|
|
42
|
+
function validateFilename(filename) {
|
|
43
|
+
const re = /^[a-z0-9\-_.]+$/i;
|
|
44
|
+
|
|
45
|
+
// Exits if filename contains anything outside a-z A-Z - _ .
|
|
46
|
+
if (!re.test(filename)) {
|
|
47
|
+
exit.withError('Error: The characters used in the name of a file for import are limited to [0-9,a-z,A-Z,-,_,.]');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
35
50
|
const generalCheckFormatter = check => {
|
|
36
51
|
const errors = [];
|
|
37
52
|
const infos = [];
|
|
@@ -424,14 +439,17 @@ const postLineExecutionProcessing = async ({
|
|
|
424
439
|
extraCheckParams: {}
|
|
425
440
|
});
|
|
426
441
|
};
|
|
427
|
-
const staticSqlValidations = {
|
|
442
|
+
const staticSqlValidations = exports.staticSqlValidations = {
|
|
428
443
|
execute: perLineValidations,
|
|
429
444
|
postLineExecutionProcessing
|
|
430
445
|
};
|
|
431
446
|
|
|
432
447
|
// For standalone SQL validations
|
|
433
|
-
exports.staticSqlValidations = staticSqlValidations;
|
|
434
448
|
const validate = async (filename, options = DEFAULT_VALIDATION_OPTIONS) => {
|
|
449
|
+
const fileMeta = await (0, _clientFileUploader.getFileMeta)(filename);
|
|
450
|
+
if (fileMeta.isCompressed) {
|
|
451
|
+
exit.withError('Compressed files cannot be validated. Please extract the archive and re-run the command, providing the path to the extracted SQL file.');
|
|
452
|
+
}
|
|
435
453
|
const readInterface = await (0, _lineByLine.getReadInterface)(filename);
|
|
436
454
|
options.isImport = false;
|
|
437
455
|
readInterface.on('line', line => {
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
3
|
+
exports.__esModule = true;
|
|
6
4
|
exports.summaryLogs = exports.logErrorsForInvalidFilenames = exports.logErrorsForInvalidFileTypes = exports.logErrorsForIntermediateImages = exports.isFileSanitized = exports.folderStructureValidation = exports.findNestedDirectories = exports.doesImageHaveExistingSource = exports.acceptedExtensions = void 0;
|
|
7
5
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
6
|
var _fs = _interopRequireDefault(require("fs"));
|
|
9
7
|
var _path = _interopRequireDefault(require("path"));
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
/**
|
|
12
|
-
* External dependencies
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
9
|
// Accepted media file extensions
|
|
16
|
-
const acceptedExtensions = ['jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp', 'svg', 'tiff', 'tif', 'ico', 'asf', 'asx', 'wmv', 'wmx', 'wm', 'avi', 'divx', 'mov', 'qt', 'mpeg', 'mpg', 'mpe', 'mp4', 'm4v', 'ogv', 'webm', 'mkv', '3gp', '3gpp', '3g2', '3gp2', 'txt', 'asc', 'c', 'cc', 'h', 'srt', 'csv', 'tsv', 'ics', 'rtx', 'css', 'vtt', 'dfxp', 'mp3', 'm4a', 'm4b', 'ra', 'ram', 'wav', 'ogg', 'oga', 'mid', 'midi', 'wma', 'wax', 'mka', 'rtf', 'js', 'pdf', 'class', 'psd', 'xcf', 'doc', 'pot', 'pps', 'ppt', 'wri', 'xla', 'xls', 'xlt', 'xlw', 'mdb', 'mpp', 'docx', 'docm', 'dotx', 'dotm', 'xlsx', 'xlsm', 'xlsb', 'xltx', 'xltm', 'xlam', 'pptx', 'pptm', 'ppsx', 'ppsm', 'potx', 'potm', 'ppam', 'sldx', 'sldm', 'onetoc', ' onetoc2', 'onetmp', 'onepkg', 'oxps', 'xps', 'odt', 'odp', 'ods', 'odg', 'odc', 'odb', 'odf', 'webp', 'wp', 'wpd', 'key', 'numbers', 'pages'];
|
|
10
|
+
const acceptedExtensions = exports.acceptedExtensions = ['jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp', 'svg', 'tiff', 'tif', 'ico', 'asf', 'asx', 'wmv', 'wmx', 'wm', 'avi', 'divx', 'mov', 'qt', 'mpeg', 'mpg', 'mpe', 'mp4', 'm4v', 'ogv', 'webm', 'mkv', '3gp', '3gpp', '3g2', '3gp2', 'txt', 'asc', 'c', 'cc', 'h', 'srt', 'csv', 'tsv', 'ics', 'rtx', 'css', 'vtt', 'dfxp', 'mp3', 'm4a', 'm4b', 'ra', 'ram', 'wav', 'ogg', 'oga', 'mid', 'midi', 'wma', 'wax', 'mka', 'rtf', 'js', 'pdf', 'class', 'psd', 'xcf', 'doc', 'pot', 'pps', 'ppt', 'wri', 'xla', 'xls', 'xlt', 'xlw', 'mdb', 'mpp', 'docx', 'docm', 'dotx', 'dotm', 'xlsx', 'xlsm', 'xlsb', 'xltx', 'xltm', 'xlam', 'pptx', 'pptm', 'ppsx', 'ppsm', 'potx', 'potm', 'ppam', 'sldx', 'sldm', 'onetoc', ' onetoc2', 'onetmp', 'onepkg', 'oxps', 'xps', 'odt', 'odp', 'ods', 'odg', 'odc', 'odb', 'odf', 'webp', 'wp', 'wpd', 'key', 'numbers', 'pages'];
|
|
17
11
|
|
|
18
12
|
/**
|
|
19
13
|
* Character validation global variables
|
|
@@ -23,7 +17,6 @@ const acceptedExtensions = ['jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp', 'svg', 't
|
|
|
23
17
|
|
|
24
18
|
// Accepted characters in filenames
|
|
25
19
|
// eslint-disable-next-line max-len
|
|
26
|
-
exports.acceptedExtensions = acceptedExtensions;
|
|
27
20
|
const acceptedCharacters = ['Non-English characters', '(', ')', '[', ']', '~', '&', '#', '%', '=', '’', `'`, '×', '@', '`', '?', '*', '!', '"', '\\', '<', '>', ':', ';', ',', '/', '$', '|', '`', '{', '}', 'spaces'];
|
|
28
21
|
const acceptedCharactersSet = new Set(acceptedCharacters); // Prevent duplicates with a Set
|
|
29
22
|
|
package/helpers/check-version.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
const { minVersion, satisfies, valid } = require( 'semver' );
|
|
2
1
|
const { exec } = require( 'node:child_process' );
|
|
3
2
|
const { EOL } = require( 'node:os' );
|
|
3
|
+
const { minVersion, satisfies, valid } = require( 'semver' );
|
|
4
|
+
|
|
4
5
|
const packageJSON = require( '../package.json' );
|
|
5
6
|
|
|
6
7
|
const config = {
|