@automattic/vip 3.21.3-dev.0 → 3.22.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.
@@ -18,6 +18,7 @@ var _prompt = require("../lib/cli/prompt");
18
18
  var _proxyAgent = require("../lib/http/proxy-agent");
19
19
  var _token = _interopRequireDefault(require("../lib/token"));
20
20
  var _tracker = require("../lib/tracker");
21
+ var _helpers = require("../lib/wp/helpers");
21
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
24
  const debug = (0, _debug.default)('@automattic/vip:wp');
@@ -390,6 +391,8 @@ const examples = [{
390
391
  subShellSettings.prompt = _chalk.default.bold.yellowBright(`${promptIdentifier}:`) + _chalk.default.blue('~') + '$ ';
391
392
  subShellSettings.historySize = 200;
392
393
  }
394
+ const commandState = (0, _helpers.initState)();
395
+ let seenWP = false;
393
396
  const subShellRl = _readline.default.createInterface(subShellSettings);
394
397
  subShellRl.on('line', async line => {
395
398
  if (commandRunning) {
@@ -403,22 +406,39 @@ const examples = [{
403
406
  }
404
407
 
405
408
  // Check for exit, like SSH (handles both `exit` and `exit;`)
406
- if (line.startsWith('exit')) {
409
+ if (!seenWP && line.startsWith('exit')) {
407
410
  subShellRl.close();
408
411
  process.exit();
409
412
  }
410
- const startsWithWp = line.trim().startsWith('wp ');
411
- const empty = 0 === line.length;
412
413
  const userCmdCancelled = line === cancelCommandChar;
413
- if ((empty || !startsWithWp) && !userCmdCancelled) {
414
+ if (userCmdCancelled) {
415
+ seenWP = false;
416
+ (0, _helpers.resetState)(commandState);
417
+ subShellRl.prompt();
418
+ return;
419
+ }
420
+ if (!seenWP && line.trimStart().startsWith('wp ')) {
421
+ seenWP = true;
422
+ (0, _helpers.resetState)(commandState);
423
+ }
424
+ if (seenWP) {
425
+ (0, _helpers.stateMachine)(commandState, line);
426
+ if (!commandState.done) {
427
+ return;
428
+ }
429
+ } else {
430
+ (0, _helpers.resetState)(commandState);
414
431
  console.log(_chalk.default.red('Error:'), 'invalid command, please pass a valid WP-CLI command.');
415
432
  subShellRl.prompt();
416
433
  return;
417
434
  }
418
435
  subShellRl.pause();
419
436
  let result;
437
+ const wpCliCmd = commandState.command.replace(/^wp\s+/, '');
438
+ seenWP = false;
439
+ (0, _helpers.resetState)(commandState);
420
440
  try {
421
- result = await getTokenForCommand(appId, envId, line.replace('wp ', ''));
441
+ result = await getTokenForCommand(appId, envId, wpCliCmd);
422
442
  } catch (error) {
423
443
  // If this was a GraphQL error, print that to the message to the line
424
444
  if (error.graphQLErrors) {
@@ -29,6 +29,10 @@ const DEV_ENVIRONMENT_PHP_VERSIONS = exports.DEV_ENVIRONMENT_PHP_VERSIONS = {
29
29
  8.4: {
30
30
  image: 'ghcr.io/automattic/vip-container-images/php-fpm:8.4',
31
31
  label: '8.4'
32
+ },
33
+ 8.5: {
34
+ image: 'ghcr.io/automattic/vip-container-images/php-fpm:8.5',
35
+ label: '8.5 (experimental)'
32
36
  }
33
37
  };
34
38
  const DEV_ENVIRONMENT_DEFAULTS = exports.DEV_ENVIRONMENT_DEFAULTS = {
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.initState = initState;
5
+ exports.resetState = resetState;
6
+ exports.stateMachine = stateMachine;
7
+ /**
8
+ * DFA parser for WP-CLI commands.
9
+ *
10
+ * This file implements a small deterministic finite automaton (DFA) that
11
+ * accumulates a full WP-CLI command across one or more physical input lines.
12
+ * It preserves quoted multiline values and does not perform shell-like
13
+ * unescaping. Call `stateMachine(state, line)` repeatedly with the same
14
+ * `CmdState` until `state.done === true`; the reconstructed command will be
15
+ * available in `state.command`.
16
+ *
17
+ * Quick example:
18
+ *
19
+ * ```ts
20
+ * const state = initState();
21
+ * stateMachine(state, 'wp option set mykey "first line');
22
+ * // still inside double quotes -> state.done === false
23
+ * stateMachine(state, 'second line"');
24
+ * // quotes closed and trailing newline finalizes -> state.done === true
25
+ * console.log(state.command);
26
+ * // => wp option set mykey "first line\nsecond line"
27
+ * ```
28
+ *
29
+ * Key points:
30
+ * - Newline outside quotes ends the command; newlines inside quotes are kept.
31
+ * - Backslashes are preserved literally; they are NOT shell escapes.
32
+ * - A backslash followed by a newline is NOT treated as a continuation.
33
+ */
34
+
35
+ function resetState(state) {
36
+ state.state = 'S0';
37
+ state.command = '';
38
+ state.done = false;
39
+ }
40
+ function initState() {
41
+ const state = {};
42
+ resetState(state);
43
+ return state;
44
+ }
45
+
46
+ /**
47
+ * State machine table for parsing WP-CLI commands. This is a matrix of next-states keyed by current state (row) and character class (column).
48
+ *
49
+ * ```mermaid
50
+ * stateDiagram
51
+ * direction LR
52
+ * [*] --> S0: "wp "
53
+ * S0 --> S1: backslash
54
+ * S0 --> S2: double-quote
55
+ * S0 --> S4: single-quote
56
+ * S0 --> [*]: newline
57
+ * S0 --> S0: [other]
58
+ * S1 --> [*]: newline
59
+ * S1 --> S0: [other]
60
+ * S2 --> S3: backslash
61
+ * S2 --> S0: double-quote
62
+ * S2 --> S2: [other]
63
+ * S3 --> S2: [any]
64
+ * S4 --> S0: single-quote
65
+ * S4 --> S4: [other]
66
+ * ```
67
+ */
68
+ const stateTable = {
69
+ /* \ " ' \n other */
70
+ S0: ['S1', 'S2', 'S4', 'FF', 'S0'],
71
+ S1: ['S0', 'S0', 'S0', 'FF', 'S0'],
72
+ S2: ['S3', 'S0', 'S2', 'S2', 'S2'],
73
+ S3: ['S2', 'S2', 'S2', 'S2', 'S2'],
74
+ S4: ['S4', 'S4', 'S0', 'S4', 'S4'],
75
+ FF: ['FF', 'FF', 'FF', 'FF', 'FF']
76
+ };
77
+ const charMap = {
78
+ '\\': 0,
79
+ '"': 1,
80
+ "'": 2,
81
+ '\n': 3,
82
+ other: 4
83
+ };
84
+ const stateToAction = {
85
+ S0: 'continue',
86
+ S1: 'continue',
87
+ S2: 'continue',
88
+ S3: 'continue',
89
+ S4: 'continue',
90
+ FF: 'done'
91
+ };
92
+
93
+ /**
94
+ * Parses a line of WP-CLI command input using a state machine.
95
+ *
96
+ * Supports quoted strings, allowing for multiline commands.
97
+ * The state machine transitions are defined by the `stateTable` above.
98
+ * Multiline input is handled by appending a newline to the input.
99
+ *
100
+ * Due to the limitations of the internal command runner infrastructure,
101
+ * the syntax is NOT shell-like:
102
+ * - escape sequences are not interpreted (e.g., `\n` is treated as two characters, not a newline)
103
+ * - backslash preceding a newline is not treated as a line continuation
104
+ *
105
+ * @param state The mutable command state object tracking parsing progress.
106
+ * @param line The input line to parse (will be treated as a single line, with a newline appended).
107
+ */
108
+ function stateMachine(state, line) {
109
+ line += '\n';
110
+ for (const char of line) {
111
+ const charType = charMap[char] ?? charMap.other;
112
+ state.state = stateTable[state.state][charType];
113
+ switch (stateToAction[state.state]) {
114
+ case 'done':
115
+ state.done = true;
116
+ return;
117
+ case 'continue':
118
+ state.command += char;
119
+ continue;
120
+ }
121
+ }
122
+ }
@@ -0,0 +1,31 @@
1
+ digraph state_diagram {
2
+ rankdir=LR;
3
+
4
+ start [shape=doublecircle, label="S"];
5
+ S0 [shape=circle, label="S0"];
6
+ S1 [shape=circle, label="S1"];
7
+ S2 [shape=circle, label="S2"];
8
+ S3 [shape=circle, label="S3"];
9
+ S4 [shape=circle, label="S4"];
10
+ end [shape=doublecircle, label="F"];
11
+
12
+ start -> S0 [label="wp "];
13
+
14
+ S0 -> S1 [label="backslash"];
15
+ S0 -> S2 [label="double-quote"];
16
+ S0 -> end [label="newline"];
17
+ S0 -> S4 [label="single-quote"];
18
+ S0 -> S0 [label="[other]"];
19
+
20
+ S1 -> end [label="newline"];
21
+ S1 -> S0 [label="[other]"];
22
+
23
+ S2 -> S3 [label="backslash"];
24
+ S2 -> S0 [label="double-quote"];
25
+ S2 -> S2 [label="[other]"];
26
+
27
+ S3 -> S2 [label="[any]"];
28
+
29
+ S4 -> S0 [label="single-quote"];
30
+ S4 -> S4 [label="[other]"];
31
+ }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@automattic/vip",
3
- "version": "3.21.3-dev.0",
3
+ "version": "3.22.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@automattic/vip",
9
- "version": "3.21.3-dev.0",
9
+ "version": "3.22.0",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
@@ -32,7 +32,7 @@
32
32
  "lando": "github:automattic/lando-cli#63669a4a2e16ab9a9683aaa3bcc5bcb2b775d831",
33
33
  "node-fetch": "^3.3.2",
34
34
  "node-stream-zip": "1.15.0",
35
- "open": "^10.0.0",
35
+ "open": "^11.0.0",
36
36
  "proxy-from-env": "^1.1.0",
37
37
  "semver": "7.7.3",
38
38
  "shelljs": "^0.10.0",
@@ -2581,9 +2581,9 @@
2581
2581
  }
2582
2582
  },
2583
2583
  "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
2584
- "version": "3.14.1",
2585
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
2586
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
2584
+ "version": "3.14.2",
2585
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
2586
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
2587
2587
  "dev": true,
2588
2588
  "license": "MIT",
2589
2589
  "dependencies": {
@@ -3057,9 +3057,9 @@
3057
3057
  "license": "MIT"
3058
3058
  },
3059
3059
  "node_modules/@jest/reporters/node_modules/glob": {
3060
- "version": "10.4.5",
3061
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
3062
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
3060
+ "version": "10.5.0",
3061
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
3062
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
3063
3063
  "dev": true,
3064
3064
  "license": "ISC",
3065
3065
  "dependencies": {
@@ -3916,9 +3916,9 @@
3916
3916
  }
3917
3917
  },
3918
3918
  "node_modules/@types/dockerode": {
3919
- "version": "3.3.45",
3920
- "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.45.tgz",
3921
- "integrity": "sha512-iYpZF+xr5QLpIICejLdUF2r5gh8IXY1Gw3WLmt41dUbS3Vn/3hVgL+6lJBVbmrhYBWfbWPPstdr6+A0s95DTWA==",
3919
+ "version": "3.3.47",
3920
+ "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.47.tgz",
3921
+ "integrity": "sha512-ShM1mz7rCjdssXt7Xz0u1/R2BJC7piWa3SJpUBiVjCf2A3XNn4cP6pUVaD8bLanpPVVn4IKzJuw3dOvkJ8IbYw==",
3922
3922
  "dev": true,
3923
3923
  "license": "MIT",
3924
3924
  "dependencies": {
@@ -4025,15 +4025,15 @@
4025
4025
  }
4026
4026
  },
4027
4027
  "node_modules/@types/shelljs/node_modules/glob": {
4028
- "version": "11.0.3",
4029
- "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
4030
- "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
4028
+ "version": "11.1.0",
4029
+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
4030
+ "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
4031
4031
  "dev": true,
4032
- "license": "ISC",
4032
+ "license": "BlueOak-1.0.0",
4033
4033
  "dependencies": {
4034
4034
  "foreground-child": "^3.3.1",
4035
4035
  "jackspeak": "^4.1.1",
4036
- "minimatch": "^10.0.3",
4036
+ "minimatch": "^10.1.1",
4037
4037
  "minipass": "^7.1.2",
4038
4038
  "package-json-from-dist": "^1.0.0",
4039
4039
  "path-scurry": "^2.0.0"
@@ -4075,11 +4075,11 @@
4075
4075
  }
4076
4076
  },
4077
4077
  "node_modules/@types/shelljs/node_modules/minimatch": {
4078
- "version": "10.0.3",
4079
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
4080
- "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
4078
+ "version": "10.1.1",
4079
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
4080
+ "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
4081
4081
  "dev": true,
4082
- "license": "ISC",
4082
+ "license": "BlueOak-1.0.0",
4083
4083
  "dependencies": {
4084
4084
  "@isaacs/brace-expansion": "^5.0.0"
4085
4085
  },
@@ -5518,6 +5518,7 @@
5518
5518
  "version": "4.1.0",
5519
5519
  "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
5520
5520
  "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
5521
+ "license": "MIT",
5521
5522
  "dependencies": {
5522
5523
  "run-applescript": "^7.0.0"
5523
5524
  },
@@ -6039,9 +6040,10 @@
6039
6040
  }
6040
6041
  },
6041
6042
  "node_modules/default-browser": {
6042
- "version": "5.2.1",
6043
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz",
6044
- "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==",
6043
+ "version": "5.4.0",
6044
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz",
6045
+ "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==",
6046
+ "license": "MIT",
6045
6047
  "dependencies": {
6046
6048
  "bundle-name": "^4.1.0",
6047
6049
  "default-browser-id": "^5.0.0"
@@ -6054,9 +6056,10 @@
6054
6056
  }
6055
6057
  },
6056
6058
  "node_modules/default-browser-id": {
6057
- "version": "5.0.0",
6058
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz",
6059
- "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==",
6059
+ "version": "5.0.1",
6060
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
6061
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
6062
+ "license": "MIT",
6060
6063
  "engines": {
6061
6064
  "node": ">=18"
6062
6065
  },
@@ -8552,6 +8555,18 @@
8552
8555
  "url": "https://github.com/sponsors/sindresorhus"
8553
8556
  }
8554
8557
  },
8558
+ "node_modules/is-in-ssh": {
8559
+ "version": "1.0.0",
8560
+ "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz",
8561
+ "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==",
8562
+ "license": "MIT",
8563
+ "engines": {
8564
+ "node": ">=20"
8565
+ },
8566
+ "funding": {
8567
+ "url": "https://github.com/sponsors/sindresorhus"
8568
+ }
8569
+ },
8555
8570
  "node_modules/is-inside-container": {
8556
8571
  "version": "1.0.0",
8557
8572
  "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
@@ -9402,9 +9417,9 @@
9402
9417
  "license": "MIT"
9403
9418
  },
9404
9419
  "node_modules/jest-config/node_modules/glob": {
9405
- "version": "10.4.5",
9406
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
9407
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
9420
+ "version": "10.5.0",
9421
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
9422
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
9408
9423
  "dev": true,
9409
9424
  "license": "ISC",
9410
9425
  "dependencies": {
@@ -10335,9 +10350,9 @@
10335
10350
  "license": "MIT"
10336
10351
  },
10337
10352
  "node_modules/jest-runtime/node_modules/glob": {
10338
- "version": "10.4.5",
10339
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
10340
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
10353
+ "version": "10.5.0",
10354
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
10355
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
10341
10356
  "dev": true,
10342
10357
  "license": "ISC",
10343
10358
  "dependencies": {
@@ -11135,9 +11150,9 @@
11135
11150
  "license": "MIT"
11136
11151
  },
11137
11152
  "node_modules/lando/node_modules/glob": {
11138
- "version": "10.4.5",
11139
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
11140
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
11153
+ "version": "10.5.0",
11154
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
11155
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
11141
11156
  "license": "ISC",
11142
11157
  "dependencies": {
11143
11158
  "foreground-child": "^3.1.0",
@@ -11835,18 +11850,20 @@
11835
11850
  }
11836
11851
  },
11837
11852
  "node_modules/open": {
11838
- "version": "10.2.0",
11839
- "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
11840
- "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
11853
+ "version": "11.0.0",
11854
+ "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz",
11855
+ "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==",
11841
11856
  "license": "MIT",
11842
11857
  "dependencies": {
11843
- "default-browser": "^5.2.1",
11858
+ "default-browser": "^5.4.0",
11844
11859
  "define-lazy-prop": "^3.0.0",
11860
+ "is-in-ssh": "^1.0.0",
11845
11861
  "is-inside-container": "^1.0.0",
11846
- "wsl-utils": "^0.1.0"
11862
+ "powershell-utils": "^0.1.0",
11863
+ "wsl-utils": "^0.3.0"
11847
11864
  },
11848
11865
  "engines": {
11849
- "node": ">=18"
11866
+ "node": ">=20"
11850
11867
  },
11851
11868
  "funding": {
11852
11869
  "url": "https://github.com/sponsors/sindresorhus"
@@ -12096,6 +12113,18 @@
12096
12113
  "node": ">=8"
12097
12114
  }
12098
12115
  },
12116
+ "node_modules/powershell-utils": {
12117
+ "version": "0.1.0",
12118
+ "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz",
12119
+ "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==",
12120
+ "license": "MIT",
12121
+ "engines": {
12122
+ "node": ">=20"
12123
+ },
12124
+ "funding": {
12125
+ "url": "https://github.com/sponsors/sindresorhus"
12126
+ }
12127
+ },
12099
12128
  "node_modules/prebuild-install": {
12100
12129
  "version": "7.1.1",
12101
12130
  "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
@@ -12572,9 +12601,10 @@
12572
12601
  }
12573
12602
  },
12574
12603
  "node_modules/run-applescript": {
12575
- "version": "7.0.0",
12576
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz",
12577
- "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==",
12604
+ "version": "7.1.0",
12605
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
12606
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
12607
+ "license": "MIT",
12578
12608
  "engines": {
12579
12609
  "node": ">=18"
12580
12610
  },
@@ -14293,15 +14323,16 @@
14293
14323
  }
14294
14324
  },
14295
14325
  "node_modules/wsl-utils": {
14296
- "version": "0.1.0",
14297
- "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
14298
- "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
14326
+ "version": "0.3.0",
14327
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.0.tgz",
14328
+ "integrity": "sha512-3sFIGLiaDP7rTO4xh3g+b3AzhYDIUGGywE/WsmqzJWDxus5aJXVnPTNC/6L+r2WzrwXqVOdD262OaO+cEyPMSQ==",
14299
14329
  "license": "MIT",
14300
14330
  "dependencies": {
14301
- "is-wsl": "^3.1.0"
14331
+ "is-wsl": "^3.1.0",
14332
+ "powershell-utils": "^0.1.0"
14302
14333
  },
14303
14334
  "engines": {
14304
- "node": ">=18"
14335
+ "node": ">=20"
14305
14336
  },
14306
14337
  "funding": {
14307
14338
  "url": "https://github.com/sponsors/sindresorhus"
@@ -16037,9 +16068,9 @@
16037
16068
  "dev": true
16038
16069
  },
16039
16070
  "js-yaml": {
16040
- "version": "3.14.1",
16041
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
16042
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
16071
+ "version": "3.14.2",
16072
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
16073
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
16043
16074
  "dev": true,
16044
16075
  "requires": {
16045
16076
  "argparse": "^1.0.7",
@@ -16369,9 +16400,9 @@
16369
16400
  "dev": true
16370
16401
  },
16371
16402
  "glob": {
16372
- "version": "10.4.5",
16373
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
16374
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
16403
+ "version": "10.5.0",
16404
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
16405
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
16375
16406
  "dev": true,
16376
16407
  "requires": {
16377
16408
  "foreground-child": "^3.1.0",
@@ -17044,9 +17075,9 @@
17044
17075
  }
17045
17076
  },
17046
17077
  "@types/dockerode": {
17047
- "version": "3.3.45",
17048
- "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.45.tgz",
17049
- "integrity": "sha512-iYpZF+xr5QLpIICejLdUF2r5gh8IXY1Gw3WLmt41dUbS3Vn/3hVgL+6lJBVbmrhYBWfbWPPstdr6+A0s95DTWA==",
17078
+ "version": "3.3.47",
17079
+ "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.47.tgz",
17080
+ "integrity": "sha512-ShM1mz7rCjdssXt7Xz0u1/R2BJC7piWa3SJpUBiVjCf2A3XNn4cP6pUVaD8bLanpPVVn4IKzJuw3dOvkJ8IbYw==",
17050
17081
  "dev": true,
17051
17082
  "requires": {
17052
17083
  "@types/docker-modem": "*",
@@ -17146,14 +17177,14 @@
17146
17177
  },
17147
17178
  "dependencies": {
17148
17179
  "glob": {
17149
- "version": "11.0.3",
17150
- "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
17151
- "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
17180
+ "version": "11.1.0",
17181
+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
17182
+ "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
17152
17183
  "dev": true,
17153
17184
  "requires": {
17154
17185
  "foreground-child": "^3.3.1",
17155
17186
  "jackspeak": "^4.1.1",
17156
- "minimatch": "^10.0.3",
17187
+ "minimatch": "^10.1.1",
17157
17188
  "minipass": "^7.1.2",
17158
17189
  "package-json-from-dist": "^1.0.0",
17159
17190
  "path-scurry": "^2.0.0"
@@ -17175,9 +17206,9 @@
17175
17206
  "dev": true
17176
17207
  },
17177
17208
  "minimatch": {
17178
- "version": "10.0.3",
17179
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
17180
- "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
17209
+ "version": "10.1.1",
17210
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
17211
+ "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
17181
17212
  "dev": true,
17182
17213
  "requires": {
17183
17214
  "@isaacs/brace-expansion": "^5.0.0"
@@ -18493,18 +18524,18 @@
18493
18524
  "dev": true
18494
18525
  },
18495
18526
  "default-browser": {
18496
- "version": "5.2.1",
18497
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz",
18498
- "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==",
18527
+ "version": "5.4.0",
18528
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz",
18529
+ "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==",
18499
18530
  "requires": {
18500
18531
  "bundle-name": "^4.1.0",
18501
18532
  "default-browser-id": "^5.0.0"
18502
18533
  }
18503
18534
  },
18504
18535
  "default-browser-id": {
18505
- "version": "5.0.0",
18506
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz",
18507
- "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA=="
18536
+ "version": "5.0.1",
18537
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
18538
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q=="
18508
18539
  },
18509
18540
  "define-data-property": {
18510
18541
  "version": "1.1.1",
@@ -20236,6 +20267,11 @@
20236
20267
  "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-1.0.0.tgz",
20237
20268
  "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg=="
20238
20269
  },
20270
+ "is-in-ssh": {
20271
+ "version": "1.0.0",
20272
+ "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz",
20273
+ "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw=="
20274
+ },
20239
20275
  "is-inside-container": {
20240
20276
  "version": "1.0.0",
20241
20277
  "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
@@ -20793,9 +20829,9 @@
20793
20829
  "dev": true
20794
20830
  },
20795
20831
  "glob": {
20796
- "version": "10.4.5",
20797
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
20798
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
20832
+ "version": "10.5.0",
20833
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
20834
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
20799
20835
  "dev": true,
20800
20836
  "requires": {
20801
20837
  "foreground-child": "^3.1.0",
@@ -21446,9 +21482,9 @@
21446
21482
  "dev": true
21447
21483
  },
21448
21484
  "glob": {
21449
- "version": "10.4.5",
21450
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
21451
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
21485
+ "version": "10.5.0",
21486
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
21487
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
21452
21488
  "dev": true,
21453
21489
  "requires": {
21454
21490
  "foreground-child": "^3.1.0",
@@ -22004,9 +22040,9 @@
22004
22040
  "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw=="
22005
22041
  },
22006
22042
  "glob": {
22007
- "version": "10.4.5",
22008
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
22009
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
22043
+ "version": "10.5.0",
22044
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
22045
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
22010
22046
  "requires": {
22011
22047
  "foreground-child": "^3.1.0",
22012
22048
  "jackspeak": "^3.1.2",
@@ -22510,14 +22546,16 @@
22510
22546
  }
22511
22547
  },
22512
22548
  "open": {
22513
- "version": "10.2.0",
22514
- "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
22515
- "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
22549
+ "version": "11.0.0",
22550
+ "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz",
22551
+ "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==",
22516
22552
  "requires": {
22517
- "default-browser": "^5.2.1",
22553
+ "default-browser": "^5.4.0",
22518
22554
  "define-lazy-prop": "^3.0.0",
22555
+ "is-in-ssh": "^1.0.0",
22519
22556
  "is-inside-container": "^1.0.0",
22520
- "wsl-utils": "^0.1.0"
22557
+ "powershell-utils": "^0.1.0",
22558
+ "wsl-utils": "^0.3.0"
22521
22559
  }
22522
22560
  },
22523
22561
  "optimism": {
@@ -22691,6 +22729,11 @@
22691
22729
  "find-up": "^4.0.0"
22692
22730
  }
22693
22731
  },
22732
+ "powershell-utils": {
22733
+ "version": "0.1.0",
22734
+ "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz",
22735
+ "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A=="
22736
+ },
22694
22737
  "prebuild-install": {
22695
22738
  "version": "7.1.1",
22696
22739
  "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
@@ -23020,9 +23063,9 @@
23020
23063
  "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
23021
23064
  },
23022
23065
  "run-applescript": {
23023
- "version": "7.0.0",
23024
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz",
23025
- "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A=="
23066
+ "version": "7.1.0",
23067
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
23068
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="
23026
23069
  },
23027
23070
  "run-parallel": {
23028
23071
  "version": "1.2.0",
@@ -24227,11 +24270,12 @@
24227
24270
  "requires": {}
24228
24271
  },
24229
24272
  "wsl-utils": {
24230
- "version": "0.1.0",
24231
- "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
24232
- "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
24273
+ "version": "0.3.0",
24274
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.0.tgz",
24275
+ "integrity": "sha512-3sFIGLiaDP7rTO4xh3g+b3AzhYDIUGGywE/WsmqzJWDxus5aJXVnPTNC/6L+r2WzrwXqVOdD262OaO+cEyPMSQ==",
24233
24276
  "requires": {
24234
- "is-wsl": "^3.1.0"
24277
+ "is-wsl": "^3.1.0",
24278
+ "powershell-utils": "^0.1.0"
24235
24279
  }
24236
24280
  },
24237
24281
  "xdg-basedir": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automattic/vip",
3
- "version": "3.21.3-dev.0",
3
+ "version": "3.22.0",
4
4
  "description": "The VIP Javascript library & CLI",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -161,7 +161,7 @@
161
161
  "lando": "github:automattic/lando-cli#63669a4a2e16ab9a9683aaa3bcc5bcb2b775d831",
162
162
  "node-fetch": "^3.3.2",
163
163
  "node-stream-zip": "1.15.0",
164
- "open": "^10.0.0",
164
+ "open": "^11.0.0",
165
165
  "proxy-from-env": "^1.1.0",
166
166
  "semver": "7.7.3",
167
167
  "shelljs": "^0.10.0",