@commercetools-frontend/application-cli 7.2.0 → 7.3.1

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.
@@ -17,11 +17,10 @@ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instan
17
17
  var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
18
18
  var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
19
19
  var _flatMapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/flat-map');
20
- var storageBucketsConfig = require('../../dist/storage-buckets-config-c9659859.cjs.dev.js');
20
+ var storageBucketsConfig = require('../../dist/storage-buckets-config-671f0490.cjs.dev.js');
21
21
  var fs = require('node:fs');
22
22
  var path$1 = require('node:path');
23
- var listr2 = require('listr2');
24
- var execa = require('execa');
23
+ var tinyexec = require('tinyexec');
25
24
  var findRoot = require('@manypkg/find-root');
26
25
  var path = require('path');
27
26
  var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
@@ -51,10 +50,28 @@ var jsonschema = require('jsonschema');
51
50
  require('@babel/runtime-corejs3/core-js-stable/instance/bind');
52
51
  require('cosmiconfig');
53
52
  require('ts-deepmerge');
54
- require('lodash');
53
+ require('lodash/merge');
55
54
 
56
55
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
57
56
 
57
+ function _interopNamespace(e) {
58
+ if (e && e.__esModule) return e;
59
+ var n = Object.create(null);
60
+ if (e) {
61
+ Object.keys(e).forEach(function (k) {
62
+ if (k !== 'default') {
63
+ var d = Object.getOwnPropertyDescriptor(e, k);
64
+ Object.defineProperty(n, k, d.get ? d : {
65
+ enumerable: true,
66
+ get: function () { return e[k]; }
67
+ });
68
+ }
69
+ });
70
+ }
71
+ n["default"] = e;
72
+ return Object.freeze(n);
73
+ }
74
+
58
75
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
59
76
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
60
77
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
@@ -69,7 +86,6 @@ var _Set__default = /*#__PURE__*/_interopDefault(_Set);
69
86
  var _flatMapInstanceProperty__default = /*#__PURE__*/_interopDefault(_flatMapInstanceProperty);
70
87
  var fs__default = /*#__PURE__*/_interopDefault(fs);
71
88
  var path__default$1 = /*#__PURE__*/_interopDefault(path$1);
72
- var execa__default = /*#__PURE__*/_interopDefault(execa);
73
89
  var path__default = /*#__PURE__*/_interopDefault(path);
74
90
  var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
75
91
  var dotenv__default = /*#__PURE__*/_interopDefault(dotenv);
@@ -736,10 +752,8 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
736
752
  cloudEnvironment = _ref3.cloudEnvironment;
737
753
  const cloudEnvironmentDeploymentPath = path__default$1["default"].join(paths.deploymentsPath, storageProvider.getTag(), cloudEnvironment);
738
754
  // Ensure the folder exists
739
- const createDeploymentsFolderResult = await execa__default["default"]('mkdir', ['-p', cloudEnvironmentDeploymentPath], {
740
- encoding: 'utf8'
741
- });
742
- if (createDeploymentsFolderResult.failed) {
755
+ const createDeploymentsFolderResult = await tinyexec.x('mkdir', ['-p', cloudEnvironmentDeploymentPath]);
756
+ if (createDeploymentsFolderResult.exitCode !== 0) {
743
757
  throw new Error(createDeploymentsFolderResult.stderr);
744
758
  }
745
759
 
@@ -777,13 +791,12 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
777
791
  }
778
792
 
779
793
  // Compile the application using the loaded environment values
780
- const compileResult = await execa__default["default"]('mc-scripts', ['compile-html'], {
781
- encoding: 'utf8',
782
- preferLocal: true,
783
- extendEnv: true,
784
- env: environmentVariablesForCompilation
794
+ const compileResult = await tinyexec.x('mc-scripts', ['compile-html'], {
795
+ nodeOptions: {
796
+ env: _objectSpread$2(_objectSpread$2({}, process.env), environmentVariablesForCompilation)
797
+ }
785
798
  });
786
- if (compileResult.failed) {
799
+ if (compileResult.exitCode !== 0) {
787
800
  throw new Error(compileResult.stderr);
788
801
  }
789
802
  const applicationIndexUploadScriptContent = uploadScriptsGenerator.getApplicationIndexUploadScript({
@@ -805,13 +818,16 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
805
818
  });
806
819
 
807
820
  // Move the compiled `index.html` to the deployments folder of the related cloud environment.
808
- const moveResult = await execa__default["default"]('mv', [path__default$1["default"].join(paths.publicAssetsPath, 'index.html'), path__default$1["default"].join(cloudEnvironmentDeploymentPath, cliFlags.applicationIndexOutFile)]);
809
- if (moveResult.failed) {
821
+ const moveResult = await tinyexec.x('mv', [path__default$1["default"].join(paths.publicAssetsPath, 'index.html'), path__default$1["default"].join(cloudEnvironmentDeploymentPath, cliFlags.applicationIndexOutFile)]);
822
+ if (moveResult.exitCode !== 0) {
810
823
  throw new Error(moveResult.stderr);
811
824
  }
812
825
  }
813
826
  async function command$4(cliFlags, cwd) {
814
827
  var _context;
828
+ // Dynamic import for ESM-only listr2 v10+
829
+ const _await$import = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('listr2')); }),
830
+ Listr = _await$import.Listr;
815
831
  const storageBucketConfig = await storageBucketsConfig.loadStorageBucketsConfig();
816
832
  const applicationDirectory = getApplicationDirectory(cwd);
817
833
  let assetsPath;
@@ -828,7 +844,7 @@ async function command$4(cliFlags, cwd) {
828
844
  assetsPath
829
845
  };
830
846
  const defaultStorageProviders = [storageBucketsConfig.storageProviders.gs.tag];
831
- const taskList = new listr2.Listr(_mapInstanceProperty__default["default"](_context = _Object$entries__default["default"](storageBucketConfig)).call(_context, _ref4 => {
847
+ const taskList = new Listr(_mapInstanceProperty__default["default"](_context = _Object$entries__default["default"](storageBucketConfig)).call(_context, _ref4 => {
832
848
  let _ref5 = _slicedToArray(_ref4, 2),
833
849
  bucketRegion = _ref5[0],
834
850
  bucketEnvironmentConfigs = _ref5[1];
@@ -1050,10 +1066,10 @@ async function command$2(cliFlags) {
1050
1066
  */
1051
1067
  const git = {
1052
1068
  // https://git-scm.com/docs/git-merge-base
1053
- base: (baseBranch, headRevision) => `git merge-base ${baseBranch} ${headRevision}`,
1069
+ base: (baseBranch, headRevision) => ['git', ['merge-base', baseBranch, headRevision]],
1054
1070
  // https://git-scm.com/docs/git-diff
1055
- changedFiles: (mergeRevision, headRevision) => `git diff --name-only ${mergeRevision} ${headRevision}`,
1056
- commitMessage: headRevision => `git log --format=oneline -n 1 ${headRevision}`
1071
+ changedFiles: (mergeRevision, headRevision) => ['git', ['diff', '--name-only', mergeRevision, headRevision]],
1072
+ commitMessage: headRevision => ['git', ['log', '--format=oneline', '-n', '1', headRevision]]
1057
1073
  };
1058
1074
  const helpers = {
1059
1075
  async writeOutDotEnvFile(cliFlags, cwd, matchingTriggers) {
@@ -1082,11 +1098,11 @@ const helpers = {
1082
1098
  }
1083
1099
  },
1084
1100
  async getChangedFiles(cliFlags) {
1085
- var _context2, _context3;
1086
- const baseCmdResult = await execa.command(git.base(cliFlags.baseBranch, cliFlags.headRevision));
1087
- const mergeRevision = baseCmdResult.stdout;
1088
- const changedFilesCmdResult = await execa.command(git.changedFiles(mergeRevision, cliFlags.headRevision));
1089
- const changedFiles = _filterInstanceProperty__default["default"](_context2 = _mapInstanceProperty__default["default"](_context3 = changedFilesCmdResult.stdout.split('\n')).call(_context3, filePath => _trimInstanceProperty__default["default"](filePath).call(filePath))).call(_context2, filePath => filePath.length > 0);
1101
+ var _context2, _context3, _context4;
1102
+ const baseCmdResult = await tinyexec.x(...git.base(cliFlags.baseBranch, cliFlags.headRevision));
1103
+ const mergeRevision = _trimInstanceProperty__default["default"](_context2 = baseCmdResult.stdout).call(_context2);
1104
+ const changedFilesCmdResult = await tinyexec.x(...git.changedFiles(mergeRevision, cliFlags.headRevision));
1105
+ const changedFiles = _filterInstanceProperty__default["default"](_context3 = _mapInstanceProperty__default["default"](_context4 = changedFilesCmdResult.stdout.split('\n')).call(_context4, filePath => _trimInstanceProperty__default["default"](filePath).call(filePath))).call(_context3, filePath => filePath.length > 0);
1090
1106
  return changedFiles;
1091
1107
  },
1092
1108
  async matchTriggersAgainstChangedFiles(cliFlags, config, changedFiles) {
@@ -1159,7 +1175,7 @@ async function command$1(cliFlags, config, cwd) {
1159
1175
 
1160
1176
  // Read the trigger file to match the changed files against.
1161
1177
  const matchedTriggers = await helpers.matchTriggersAgainstChangedFiles(cliFlags, config, changedFiles);
1162
- const commitMessageCmdResult = await execa.command(git.commitMessage(cliFlags.headRevision));
1178
+ const commitMessageCmdResult = await tinyexec.x(...git.commitMessage(cliFlags.headRevision));
1163
1179
  const commitMessage = commitMessageCmdResult.stdout;
1164
1180
  const hasCommitMessageTrigger = commitMessage && _includesInstanceProperty__default["default"](commitMessage).call(commitMessage, '[ci all]');
1165
1181
  const doesSharedTriggerMatch = _someInstanceProperty__default["default"](triggersContainingSharedFiles).call(triggersContainingSharedFiles, triggerContainingSharedFiles => matchedTriggers[triggerContainingSharedFiles.name] === 1);
@@ -1299,7 +1315,7 @@ async function command(cliFlags) {
1299
1315
 
1300
1316
  var pkgJson = {
1301
1317
  name: "@commercetools-frontend/application-cli",
1302
- version: "7.2.0",
1318
+ version: "7.3.1",
1303
1319
  description: "Internal CLI to manage Merchant Center application deployments across various environments.",
1304
1320
  keywords: [
1305
1321
  "commercetools",
@@ -1324,27 +1340,26 @@ var pkgJson = {
1324
1340
  dependencies: {
1325
1341
  "@babel/core": "^7.22.11",
1326
1342
  "@babel/runtime-corejs3": "^7.21.0",
1327
- "@commercetools-frontend/application-config": "25.1.0",
1328
- "@commercetools-frontend/constants": "25.1.0",
1329
- "@commercetools-frontend/l10n": "25.1.0",
1330
- "@manypkg/find-root": "2.2.3",
1331
- commander: "^13.1.0",
1343
+ "@commercetools-frontend/application-config": "26.0.2",
1344
+ "@commercetools-frontend/constants": "26.0.2",
1345
+ "@commercetools-frontend/l10n": "26.0.2",
1346
+ "@manypkg/find-root": "3.1.0",
1347
+ commander: "^14.0.0",
1332
1348
  cosmiconfig: "9.0.0",
1333
- dotenv: "17.2.3",
1334
- execa: "5.1.1",
1349
+ dotenv: "17.3.1",
1335
1350
  jsonschema: "^1.4.1",
1336
- listr2: "8.3.3",
1337
- lodash: "4.17.21",
1351
+ listr2: "10.1.0",
1352
+ lodash: "4.17.23",
1338
1353
  micromatch: "4.0.8",
1339
- "node-fetch": "2.7.0",
1354
+ tinyexec: "1.0.2",
1340
1355
  "ts-deepmerge": "7.0.3"
1341
1356
  },
1342
1357
  devDependencies: {
1343
- "@tsconfig/node24": "24.0.0",
1358
+ "@tsconfig/node24": "24.0.4",
1344
1359
  "@types/lodash": "^4.14.198",
1345
- "@types/micromatch": "4.0.9",
1346
- "@types/node": "24.10.6",
1347
- typescript: "5.7.2"
1360
+ "@types/micromatch": "4.0.10",
1361
+ "@types/node": "24.10.13",
1362
+ typescript: "5.9.3"
1348
1363
  },
1349
1364
  engines: {
1350
1365
  node: ">=21",
@@ -17,11 +17,10 @@ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instan
17
17
  var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
18
18
  var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
19
19
  var _flatMapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/flat-map');
20
- var storageBucketsConfig = require('../../dist/storage-buckets-config-09739a58.cjs.prod.js');
20
+ var storageBucketsConfig = require('../../dist/storage-buckets-config-8f8af1af.cjs.prod.js');
21
21
  var fs = require('node:fs');
22
22
  var path$1 = require('node:path');
23
- var listr2 = require('listr2');
24
- var execa = require('execa');
23
+ var tinyexec = require('tinyexec');
25
24
  var findRoot = require('@manypkg/find-root');
26
25
  var path = require('path');
27
26
  var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
@@ -51,10 +50,28 @@ var jsonschema = require('jsonschema');
51
50
  require('@babel/runtime-corejs3/core-js-stable/instance/bind');
52
51
  require('cosmiconfig');
53
52
  require('ts-deepmerge');
54
- require('lodash');
53
+ require('lodash/merge');
55
54
 
56
55
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
57
56
 
57
+ function _interopNamespace(e) {
58
+ if (e && e.__esModule) return e;
59
+ var n = Object.create(null);
60
+ if (e) {
61
+ Object.keys(e).forEach(function (k) {
62
+ if (k !== 'default') {
63
+ var d = Object.getOwnPropertyDescriptor(e, k);
64
+ Object.defineProperty(n, k, d.get ? d : {
65
+ enumerable: true,
66
+ get: function () { return e[k]; }
67
+ });
68
+ }
69
+ });
70
+ }
71
+ n["default"] = e;
72
+ return Object.freeze(n);
73
+ }
74
+
58
75
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
59
76
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
60
77
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
@@ -69,7 +86,6 @@ var _Set__default = /*#__PURE__*/_interopDefault(_Set);
69
86
  var _flatMapInstanceProperty__default = /*#__PURE__*/_interopDefault(_flatMapInstanceProperty);
70
87
  var fs__default = /*#__PURE__*/_interopDefault(fs);
71
88
  var path__default$1 = /*#__PURE__*/_interopDefault(path$1);
72
- var execa__default = /*#__PURE__*/_interopDefault(execa);
73
89
  var path__default = /*#__PURE__*/_interopDefault(path);
74
90
  var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
75
91
  var dotenv__default = /*#__PURE__*/_interopDefault(dotenv);
@@ -736,10 +752,8 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
736
752
  cloudEnvironment = _ref3.cloudEnvironment;
737
753
  const cloudEnvironmentDeploymentPath = path__default$1["default"].join(paths.deploymentsPath, storageProvider.getTag(), cloudEnvironment);
738
754
  // Ensure the folder exists
739
- const createDeploymentsFolderResult = await execa__default["default"]('mkdir', ['-p', cloudEnvironmentDeploymentPath], {
740
- encoding: 'utf8'
741
- });
742
- if (createDeploymentsFolderResult.failed) {
755
+ const createDeploymentsFolderResult = await tinyexec.x('mkdir', ['-p', cloudEnvironmentDeploymentPath]);
756
+ if (createDeploymentsFolderResult.exitCode !== 0) {
743
757
  throw new Error(createDeploymentsFolderResult.stderr);
744
758
  }
745
759
 
@@ -777,13 +791,12 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
777
791
  }
778
792
 
779
793
  // Compile the application using the loaded environment values
780
- const compileResult = await execa__default["default"]('mc-scripts', ['compile-html'], {
781
- encoding: 'utf8',
782
- preferLocal: true,
783
- extendEnv: true,
784
- env: environmentVariablesForCompilation
794
+ const compileResult = await tinyexec.x('mc-scripts', ['compile-html'], {
795
+ nodeOptions: {
796
+ env: _objectSpread$2(_objectSpread$2({}, process.env), environmentVariablesForCompilation)
797
+ }
785
798
  });
786
- if (compileResult.failed) {
799
+ if (compileResult.exitCode !== 0) {
787
800
  throw new Error(compileResult.stderr);
788
801
  }
789
802
  const applicationIndexUploadScriptContent = uploadScriptsGenerator.getApplicationIndexUploadScript({
@@ -805,13 +818,16 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
805
818
  });
806
819
 
807
820
  // Move the compiled `index.html` to the deployments folder of the related cloud environment.
808
- const moveResult = await execa__default["default"]('mv', [path__default$1["default"].join(paths.publicAssetsPath, 'index.html'), path__default$1["default"].join(cloudEnvironmentDeploymentPath, cliFlags.applicationIndexOutFile)]);
809
- if (moveResult.failed) {
821
+ const moveResult = await tinyexec.x('mv', [path__default$1["default"].join(paths.publicAssetsPath, 'index.html'), path__default$1["default"].join(cloudEnvironmentDeploymentPath, cliFlags.applicationIndexOutFile)]);
822
+ if (moveResult.exitCode !== 0) {
810
823
  throw new Error(moveResult.stderr);
811
824
  }
812
825
  }
813
826
  async function command$4(cliFlags, cwd) {
814
827
  var _context;
828
+ // Dynamic import for ESM-only listr2 v10+
829
+ const _await$import = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('listr2')); }),
830
+ Listr = _await$import.Listr;
815
831
  const storageBucketConfig = await storageBucketsConfig.loadStorageBucketsConfig();
816
832
  const applicationDirectory = getApplicationDirectory(cwd);
817
833
  let assetsPath;
@@ -828,7 +844,7 @@ async function command$4(cliFlags, cwd) {
828
844
  assetsPath
829
845
  };
830
846
  const defaultStorageProviders = [storageBucketsConfig.storageProviders.gs.tag];
831
- const taskList = new listr2.Listr(_mapInstanceProperty__default["default"](_context = _Object$entries__default["default"](storageBucketConfig)).call(_context, _ref4 => {
847
+ const taskList = new Listr(_mapInstanceProperty__default["default"](_context = _Object$entries__default["default"](storageBucketConfig)).call(_context, _ref4 => {
832
848
  let _ref5 = _slicedToArray(_ref4, 2),
833
849
  bucketRegion = _ref5[0],
834
850
  bucketEnvironmentConfigs = _ref5[1];
@@ -1050,10 +1066,10 @@ async function command$2(cliFlags) {
1050
1066
  */
1051
1067
  const git = {
1052
1068
  // https://git-scm.com/docs/git-merge-base
1053
- base: (baseBranch, headRevision) => `git merge-base ${baseBranch} ${headRevision}`,
1069
+ base: (baseBranch, headRevision) => ['git', ['merge-base', baseBranch, headRevision]],
1054
1070
  // https://git-scm.com/docs/git-diff
1055
- changedFiles: (mergeRevision, headRevision) => `git diff --name-only ${mergeRevision} ${headRevision}`,
1056
- commitMessage: headRevision => `git log --format=oneline -n 1 ${headRevision}`
1071
+ changedFiles: (mergeRevision, headRevision) => ['git', ['diff', '--name-only', mergeRevision, headRevision]],
1072
+ commitMessage: headRevision => ['git', ['log', '--format=oneline', '-n', '1', headRevision]]
1057
1073
  };
1058
1074
  const helpers = {
1059
1075
  async writeOutDotEnvFile(cliFlags, cwd, matchingTriggers) {
@@ -1082,11 +1098,11 @@ const helpers = {
1082
1098
  }
1083
1099
  },
1084
1100
  async getChangedFiles(cliFlags) {
1085
- var _context2, _context3;
1086
- const baseCmdResult = await execa.command(git.base(cliFlags.baseBranch, cliFlags.headRevision));
1087
- const mergeRevision = baseCmdResult.stdout;
1088
- const changedFilesCmdResult = await execa.command(git.changedFiles(mergeRevision, cliFlags.headRevision));
1089
- const changedFiles = _filterInstanceProperty__default["default"](_context2 = _mapInstanceProperty__default["default"](_context3 = changedFilesCmdResult.stdout.split('\n')).call(_context3, filePath => _trimInstanceProperty__default["default"](filePath).call(filePath))).call(_context2, filePath => filePath.length > 0);
1101
+ var _context2, _context3, _context4;
1102
+ const baseCmdResult = await tinyexec.x(...git.base(cliFlags.baseBranch, cliFlags.headRevision));
1103
+ const mergeRevision = _trimInstanceProperty__default["default"](_context2 = baseCmdResult.stdout).call(_context2);
1104
+ const changedFilesCmdResult = await tinyexec.x(...git.changedFiles(mergeRevision, cliFlags.headRevision));
1105
+ const changedFiles = _filterInstanceProperty__default["default"](_context3 = _mapInstanceProperty__default["default"](_context4 = changedFilesCmdResult.stdout.split('\n')).call(_context4, filePath => _trimInstanceProperty__default["default"](filePath).call(filePath))).call(_context3, filePath => filePath.length > 0);
1090
1106
  return changedFiles;
1091
1107
  },
1092
1108
  async matchTriggersAgainstChangedFiles(cliFlags, config, changedFiles) {
@@ -1159,7 +1175,7 @@ async function command$1(cliFlags, config, cwd) {
1159
1175
 
1160
1176
  // Read the trigger file to match the changed files against.
1161
1177
  const matchedTriggers = await helpers.matchTriggersAgainstChangedFiles(cliFlags, config, changedFiles);
1162
- const commitMessageCmdResult = await execa.command(git.commitMessage(cliFlags.headRevision));
1178
+ const commitMessageCmdResult = await tinyexec.x(...git.commitMessage(cliFlags.headRevision));
1163
1179
  const commitMessage = commitMessageCmdResult.stdout;
1164
1180
  const hasCommitMessageTrigger = commitMessage && _includesInstanceProperty__default["default"](commitMessage).call(commitMessage, '[ci all]');
1165
1181
  const doesSharedTriggerMatch = _someInstanceProperty__default["default"](triggersContainingSharedFiles).call(triggersContainingSharedFiles, triggerContainingSharedFiles => matchedTriggers[triggerContainingSharedFiles.name] === 1);
@@ -1299,7 +1315,7 @@ async function command(cliFlags) {
1299
1315
 
1300
1316
  var pkgJson = {
1301
1317
  name: "@commercetools-frontend/application-cli",
1302
- version: "7.2.0",
1318
+ version: "7.3.1",
1303
1319
  description: "Internal CLI to manage Merchant Center application deployments across various environments.",
1304
1320
  keywords: [
1305
1321
  "commercetools",
@@ -1324,27 +1340,26 @@ var pkgJson = {
1324
1340
  dependencies: {
1325
1341
  "@babel/core": "^7.22.11",
1326
1342
  "@babel/runtime-corejs3": "^7.21.0",
1327
- "@commercetools-frontend/application-config": "25.1.0",
1328
- "@commercetools-frontend/constants": "25.1.0",
1329
- "@commercetools-frontend/l10n": "25.1.0",
1330
- "@manypkg/find-root": "2.2.3",
1331
- commander: "^13.1.0",
1343
+ "@commercetools-frontend/application-config": "26.0.2",
1344
+ "@commercetools-frontend/constants": "26.0.2",
1345
+ "@commercetools-frontend/l10n": "26.0.2",
1346
+ "@manypkg/find-root": "3.1.0",
1347
+ commander: "^14.0.0",
1332
1348
  cosmiconfig: "9.0.0",
1333
- dotenv: "17.2.3",
1334
- execa: "5.1.1",
1349
+ dotenv: "17.3.1",
1335
1350
  jsonschema: "^1.4.1",
1336
- listr2: "8.3.3",
1337
- lodash: "4.17.21",
1351
+ listr2: "10.1.0",
1352
+ lodash: "4.17.23",
1338
1353
  micromatch: "4.0.8",
1339
- "node-fetch": "2.7.0",
1354
+ tinyexec: "1.0.2",
1340
1355
  "ts-deepmerge": "7.0.3"
1341
1356
  },
1342
1357
  devDependencies: {
1343
- "@tsconfig/node24": "24.0.0",
1358
+ "@tsconfig/node24": "24.0.4",
1344
1359
  "@types/lodash": "^4.14.198",
1345
- "@types/micromatch": "4.0.9",
1346
- "@types/node": "24.10.6",
1347
- typescript: "5.7.2"
1360
+ "@types/micromatch": "4.0.10",
1361
+ "@types/node": "24.10.13",
1362
+ typescript: "5.9.3"
1348
1363
  },
1349
1364
  engines: {
1350
1365
  node: ">=21",
@@ -13,11 +13,10 @@ import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance
13
13
  import _Object$entries from '@babel/runtime-corejs3/core-js-stable/object/entries';
14
14
  import _Set from '@babel/runtime-corejs3/core-js-stable/set';
15
15
  import _flatMapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/flat-map';
16
- import { s as storageProviders, l as loadStorageBucketsConfig, c as clusterContexts, a as loadConfig } from '../../dist/storage-buckets-config-89e84e61.esm.js';
16
+ import { s as storageProviders, l as loadStorageBucketsConfig, c as clusterContexts, a as loadConfig } from '../../dist/storage-buckets-config-f96ed8c4.esm.js';
17
17
  import fs from 'node:fs';
18
18
  import path$1 from 'node:path';
19
- import { Listr } from 'listr2';
20
- import execa, { command as command$5 } from 'execa';
19
+ import { x } from 'tinyexec';
21
20
  import { findRootSync } from '@manypkg/find-root';
22
21
  import path from 'path';
23
22
  import _possibleConstructorReturn from '@babel/runtime-corejs3/helpers/esm/possibleConstructorReturn';
@@ -47,7 +46,7 @@ import { Validator } from 'jsonschema';
47
46
  import '@babel/runtime-corejs3/core-js-stable/instance/bind';
48
47
  import 'cosmiconfig';
49
48
  import 'ts-deepmerge';
50
- import 'lodash';
49
+ import 'lodash/merge';
51
50
 
52
51
  function getApplicationDirectory(cwd) {
53
52
  return fs.realpathSync(cwd);
@@ -700,10 +699,8 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
700
699
  cloudEnvironment = _ref3.cloudEnvironment;
701
700
  const cloudEnvironmentDeploymentPath = path$1.join(paths.deploymentsPath, storageProvider.getTag(), cloudEnvironment);
702
701
  // Ensure the folder exists
703
- const createDeploymentsFolderResult = await execa('mkdir', ['-p', cloudEnvironmentDeploymentPath], {
704
- encoding: 'utf8'
705
- });
706
- if (createDeploymentsFolderResult.failed) {
702
+ const createDeploymentsFolderResult = await x('mkdir', ['-p', cloudEnvironmentDeploymentPath]);
703
+ if (createDeploymentsFolderResult.exitCode !== 0) {
707
704
  throw new Error(createDeploymentsFolderResult.stderr);
708
705
  }
709
706
 
@@ -741,13 +738,12 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
741
738
  }
742
739
 
743
740
  // Compile the application using the loaded environment values
744
- const compileResult = await execa('mc-scripts', ['compile-html'], {
745
- encoding: 'utf8',
746
- preferLocal: true,
747
- extendEnv: true,
748
- env: environmentVariablesForCompilation
741
+ const compileResult = await x('mc-scripts', ['compile-html'], {
742
+ nodeOptions: {
743
+ env: _objectSpread$2(_objectSpread$2({}, process.env), environmentVariablesForCompilation)
744
+ }
749
745
  });
750
- if (compileResult.failed) {
746
+ if (compileResult.exitCode !== 0) {
751
747
  throw new Error(compileResult.stderr);
752
748
  }
753
749
  const applicationIndexUploadScriptContent = uploadScriptsGenerator.getApplicationIndexUploadScript({
@@ -769,13 +765,16 @@ async function compileEnvironmentApplicationIndexes(_ref3) {
769
765
  });
770
766
 
771
767
  // Move the compiled `index.html` to the deployments folder of the related cloud environment.
772
- const moveResult = await execa('mv', [path$1.join(paths.publicAssetsPath, 'index.html'), path$1.join(cloudEnvironmentDeploymentPath, cliFlags.applicationIndexOutFile)]);
773
- if (moveResult.failed) {
768
+ const moveResult = await x('mv', [path$1.join(paths.publicAssetsPath, 'index.html'), path$1.join(cloudEnvironmentDeploymentPath, cliFlags.applicationIndexOutFile)]);
769
+ if (moveResult.exitCode !== 0) {
774
770
  throw new Error(moveResult.stderr);
775
771
  }
776
772
  }
777
773
  async function command$4(cliFlags, cwd) {
778
774
  var _context;
775
+ // Dynamic import for ESM-only listr2 v10+
776
+ const _await$import = await import('listr2'),
777
+ Listr = _await$import.Listr;
779
778
  const storageBucketConfig = await loadStorageBucketsConfig();
780
779
  const applicationDirectory = getApplicationDirectory(cwd);
781
780
  let assetsPath;
@@ -1014,10 +1013,10 @@ async function command$2(cliFlags) {
1014
1013
  */
1015
1014
  const git = {
1016
1015
  // https://git-scm.com/docs/git-merge-base
1017
- base: (baseBranch, headRevision) => `git merge-base ${baseBranch} ${headRevision}`,
1016
+ base: (baseBranch, headRevision) => ['git', ['merge-base', baseBranch, headRevision]],
1018
1017
  // https://git-scm.com/docs/git-diff
1019
- changedFiles: (mergeRevision, headRevision) => `git diff --name-only ${mergeRevision} ${headRevision}`,
1020
- commitMessage: headRevision => `git log --format=oneline -n 1 ${headRevision}`
1018
+ changedFiles: (mergeRevision, headRevision) => ['git', ['diff', '--name-only', mergeRevision, headRevision]],
1019
+ commitMessage: headRevision => ['git', ['log', '--format=oneline', '-n', '1', headRevision]]
1021
1020
  };
1022
1021
  const helpers = {
1023
1022
  async writeOutDotEnvFile(cliFlags, cwd, matchingTriggers) {
@@ -1046,11 +1045,11 @@ const helpers = {
1046
1045
  }
1047
1046
  },
1048
1047
  async getChangedFiles(cliFlags) {
1049
- var _context2, _context3;
1050
- const baseCmdResult = await command$5(git.base(cliFlags.baseBranch, cliFlags.headRevision));
1051
- const mergeRevision = baseCmdResult.stdout;
1052
- const changedFilesCmdResult = await command$5(git.changedFiles(mergeRevision, cliFlags.headRevision));
1053
- const changedFiles = _filterInstanceProperty(_context2 = _mapInstanceProperty(_context3 = changedFilesCmdResult.stdout.split('\n')).call(_context3, filePath => _trimInstanceProperty(filePath).call(filePath))).call(_context2, filePath => filePath.length > 0);
1048
+ var _context2, _context3, _context4;
1049
+ const baseCmdResult = await x(...git.base(cliFlags.baseBranch, cliFlags.headRevision));
1050
+ const mergeRevision = _trimInstanceProperty(_context2 = baseCmdResult.stdout).call(_context2);
1051
+ const changedFilesCmdResult = await x(...git.changedFiles(mergeRevision, cliFlags.headRevision));
1052
+ const changedFiles = _filterInstanceProperty(_context3 = _mapInstanceProperty(_context4 = changedFilesCmdResult.stdout.split('\n')).call(_context4, filePath => _trimInstanceProperty(filePath).call(filePath))).call(_context3, filePath => filePath.length > 0);
1054
1053
  return changedFiles;
1055
1054
  },
1056
1055
  async matchTriggersAgainstChangedFiles(cliFlags, config, changedFiles) {
@@ -1123,7 +1122,7 @@ async function command$1(cliFlags, config, cwd) {
1123
1122
 
1124
1123
  // Read the trigger file to match the changed files against.
1125
1124
  const matchedTriggers = await helpers.matchTriggersAgainstChangedFiles(cliFlags, config, changedFiles);
1126
- const commitMessageCmdResult = await command$5(git.commitMessage(cliFlags.headRevision));
1125
+ const commitMessageCmdResult = await x(...git.commitMessage(cliFlags.headRevision));
1127
1126
  const commitMessage = commitMessageCmdResult.stdout;
1128
1127
  const hasCommitMessageTrigger = commitMessage && _includesInstanceProperty(commitMessage).call(commitMessage, '[ci all]');
1129
1128
  const doesSharedTriggerMatch = _someInstanceProperty(triggersContainingSharedFiles).call(triggersContainingSharedFiles, triggerContainingSharedFiles => matchedTriggers[triggerContainingSharedFiles.name] === 1);
@@ -1263,7 +1262,7 @@ async function command(cliFlags) {
1263
1262
 
1264
1263
  var pkgJson = {
1265
1264
  name: "@commercetools-frontend/application-cli",
1266
- version: "7.2.0",
1265
+ version: "7.3.1",
1267
1266
  description: "Internal CLI to manage Merchant Center application deployments across various environments.",
1268
1267
  keywords: [
1269
1268
  "commercetools",
@@ -1288,27 +1287,26 @@ var pkgJson = {
1288
1287
  dependencies: {
1289
1288
  "@babel/core": "^7.22.11",
1290
1289
  "@babel/runtime-corejs3": "^7.21.0",
1291
- "@commercetools-frontend/application-config": "25.1.0",
1292
- "@commercetools-frontend/constants": "25.1.0",
1293
- "@commercetools-frontend/l10n": "25.1.0",
1294
- "@manypkg/find-root": "2.2.3",
1295
- commander: "^13.1.0",
1290
+ "@commercetools-frontend/application-config": "26.0.2",
1291
+ "@commercetools-frontend/constants": "26.0.2",
1292
+ "@commercetools-frontend/l10n": "26.0.2",
1293
+ "@manypkg/find-root": "3.1.0",
1294
+ commander: "^14.0.0",
1296
1295
  cosmiconfig: "9.0.0",
1297
- dotenv: "17.2.3",
1298
- execa: "5.1.1",
1296
+ dotenv: "17.3.1",
1299
1297
  jsonschema: "^1.4.1",
1300
- listr2: "8.3.3",
1301
- lodash: "4.17.21",
1298
+ listr2: "10.1.0",
1299
+ lodash: "4.17.23",
1302
1300
  micromatch: "4.0.8",
1303
- "node-fetch": "2.7.0",
1301
+ tinyexec: "1.0.2",
1304
1302
  "ts-deepmerge": "7.0.3"
1305
1303
  },
1306
1304
  devDependencies: {
1307
- "@tsconfig/node24": "24.0.0",
1305
+ "@tsconfig/node24": "24.0.4",
1308
1306
  "@types/lodash": "^4.14.198",
1309
- "@types/micromatch": "4.0.9",
1310
- "@types/node": "24.10.6",
1311
- typescript: "5.7.2"
1307
+ "@types/micromatch": "4.0.10",
1308
+ "@types/node": "24.10.13",
1309
+ typescript: "5.9.3"
1312
1310
  },
1313
1311
  engines: {
1314
1312
  node: ">=21",
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var storageBucketsConfig = require('./storage-buckets-config-c9659859.cjs.dev.js');
5
+ var storageBucketsConfig = require('./storage-buckets-config-671f0490.cjs.dev.js');
6
6
  require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
7
7
  require('@babel/runtime-corejs3/core-js-stable/object/keys');
8
8
  require('@babel/runtime-corejs3/core-js-stable/instance/filter');
9
9
  require('@babel/runtime-corejs3/core-js-stable/instance/bind');
10
10
  require('cosmiconfig');
11
11
  require('ts-deepmerge');
12
- require('lodash');
12
+ require('lodash/merge');
13
13
 
14
14
 
15
15
 
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var storageBucketsConfig = require('./storage-buckets-config-09739a58.cjs.prod.js');
5
+ var storageBucketsConfig = require('./storage-buckets-config-8f8af1af.cjs.prod.js');
6
6
  require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
7
7
  require('@babel/runtime-corejs3/core-js-stable/object/keys');
8
8
  require('@babel/runtime-corejs3/core-js-stable/instance/filter');
9
9
  require('@babel/runtime-corejs3/core-js-stable/instance/bind');
10
10
  require('cosmiconfig');
11
11
  require('ts-deepmerge');
12
- require('lodash');
12
+ require('lodash/merge');
13
13
 
14
14
 
15
15
 
@@ -1,8 +1,8 @@
1
- export { b as bucketEnvironments, e as bucketRegions, c as clusterContexts, d as defineStorageBucketsConfig, s as storageProviders } from './storage-buckets-config-89e84e61.esm.js';
1
+ export { b as bucketEnvironments, e as bucketRegions, c as clusterContexts, d as defineStorageBucketsConfig, s as storageProviders } from './storage-buckets-config-f96ed8c4.esm.js';
2
2
  import '@babel/runtime-corejs3/core-js-stable/instance/for-each';
3
3
  import '@babel/runtime-corejs3/core-js-stable/object/keys';
4
4
  import '@babel/runtime-corejs3/core-js-stable/instance/filter';
5
5
  import '@babel/runtime-corejs3/core-js-stable/instance/bind';
6
6
  import 'cosmiconfig';
7
7
  import 'ts-deepmerge';
8
- import 'lodash';
8
+ import 'lodash/merge';
@@ -6,7 +6,7 @@ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/ins
6
6
  var _bindInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/bind');
7
7
  var cosmiconfig = require('cosmiconfig');
8
8
  var tsDeepmerge = require('ts-deepmerge');
9
- var lodash = require('lodash');
9
+ var lodashMerge = require('lodash/merge');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
12
12
 
@@ -14,7 +14,7 @@ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachIns
14
14
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
15
15
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
16
16
  var _bindInstanceProperty__default = /*#__PURE__*/_interopDefault(_bindInstanceProperty);
17
- var lodash__default = /*#__PURE__*/_interopDefault(lodash);
17
+ var lodashMerge__default = /*#__PURE__*/_interopDefault(lodashMerge);
18
18
 
19
19
  const clusterContexts = {
20
20
  'ctp_staging_aws_eu-central-1_v1': 'ctp_staging_aws_eu-central-1_v1',
@@ -62,6 +62,7 @@ const storageProviders = {
62
62
  [bucketEnvironments['ctp-aws-production-us']]: 'https://mc-storage.us-east-2.aws.commercetools.com'
63
63
  },
64
64
  bucket: {
65
+ [bucketRegions.previews]: 'commercetools-mc-storage-aws-eu-staging-merchant-center',
65
66
  [bucketRegions.europe]: 'commercetools-mc-storage-aws-eu-prod-merchant-center',
66
67
  [bucketRegions.northAmerica]: 'commercetools-mc-storage-aws-us-prod-merchant-center'
67
68
  }
@@ -78,7 +79,8 @@ const defaultConfig = {
78
79
  bucketEnvironment: bucketEnvironments['ctp-gcp-testing-performance-eu']
79
80
  }, {
80
81
  cloudEnvironment: clusterContexts['ctp_staging_aws_eu-central-1_v1'],
81
- bucketEnvironment: bucketEnvironments['ctp-aws-staging-eu']
82
+ bucketEnvironment: bucketEnvironments['ctp-aws-staging-eu'],
83
+ storageProviders: ['gs', 's3']
82
84
  }],
83
85
  [bucketRegions.europe]: [{
84
86
  cloudEnvironment: clusterContexts['ctp_production_aws_eu-central-1_v1'],
@@ -142,7 +144,7 @@ async function loadConfig(moduleName, defaultConfig) {
142
144
  });
143
145
  try {
144
146
  const cosmiconfigResult = await configExplorer.search();
145
- const mergedConfig = lodash__default["default"].merge(defaultConfig, cosmiconfigResult?.config);
147
+ const mergedConfig = lodashMerge__default["default"](defaultConfig, cosmiconfigResult?.config);
146
148
  console.log(`ℹ️ Merged and loaded cosmiconfig file for '${moduleName}'.`);
147
149
  return mergedConfig;
148
150
  } catch (e) {
@@ -6,7 +6,7 @@ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/ins
6
6
  var _bindInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/bind');
7
7
  var cosmiconfig = require('cosmiconfig');
8
8
  var tsDeepmerge = require('ts-deepmerge');
9
- var lodash = require('lodash');
9
+ var lodashMerge = require('lodash/merge');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
12
12
 
@@ -14,7 +14,7 @@ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachIns
14
14
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
15
15
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
16
16
  var _bindInstanceProperty__default = /*#__PURE__*/_interopDefault(_bindInstanceProperty);
17
- var lodash__default = /*#__PURE__*/_interopDefault(lodash);
17
+ var lodashMerge__default = /*#__PURE__*/_interopDefault(lodashMerge);
18
18
 
19
19
  const clusterContexts = {
20
20
  'ctp_staging_aws_eu-central-1_v1': 'ctp_staging_aws_eu-central-1_v1',
@@ -62,6 +62,7 @@ const storageProviders = {
62
62
  [bucketEnvironments['ctp-aws-production-us']]: 'https://mc-storage.us-east-2.aws.commercetools.com'
63
63
  },
64
64
  bucket: {
65
+ [bucketRegions.previews]: 'commercetools-mc-storage-aws-eu-staging-merchant-center',
65
66
  [bucketRegions.europe]: 'commercetools-mc-storage-aws-eu-prod-merchant-center',
66
67
  [bucketRegions.northAmerica]: 'commercetools-mc-storage-aws-us-prod-merchant-center'
67
68
  }
@@ -78,7 +79,8 @@ const defaultConfig = {
78
79
  bucketEnvironment: bucketEnvironments['ctp-gcp-testing-performance-eu']
79
80
  }, {
80
81
  cloudEnvironment: clusterContexts['ctp_staging_aws_eu-central-1_v1'],
81
- bucketEnvironment: bucketEnvironments['ctp-aws-staging-eu']
82
+ bucketEnvironment: bucketEnvironments['ctp-aws-staging-eu'],
83
+ storageProviders: ['gs', 's3']
82
84
  }],
83
85
  [bucketRegions.europe]: [{
84
86
  cloudEnvironment: clusterContexts['ctp_production_aws_eu-central-1_v1'],
@@ -142,7 +144,7 @@ async function loadConfig(moduleName, defaultConfig) {
142
144
  });
143
145
  try {
144
146
  const cosmiconfigResult = await configExplorer.search();
145
- const mergedConfig = lodash__default["default"].merge(defaultConfig, cosmiconfigResult?.config);
147
+ const mergedConfig = lodashMerge__default["default"](defaultConfig, cosmiconfigResult?.config);
146
148
  console.log(`ℹ️ Merged and loaded cosmiconfig file for '${moduleName}'.`);
147
149
  return mergedConfig;
148
150
  } catch (e) {
@@ -4,7 +4,7 @@ import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/insta
4
4
  import _bindInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/bind';
5
5
  import { cosmiconfig } from 'cosmiconfig';
6
6
  import { merge } from 'ts-deepmerge';
7
- import lodash from 'lodash';
7
+ import lodashMerge from 'lodash/merge';
8
8
 
9
9
  const clusterContexts = {
10
10
  'ctp_staging_aws_eu-central-1_v1': 'ctp_staging_aws_eu-central-1_v1',
@@ -52,6 +52,7 @@ const storageProviders = {
52
52
  [bucketEnvironments['ctp-aws-production-us']]: 'https://mc-storage.us-east-2.aws.commercetools.com'
53
53
  },
54
54
  bucket: {
55
+ [bucketRegions.previews]: 'commercetools-mc-storage-aws-eu-staging-merchant-center',
55
56
  [bucketRegions.europe]: 'commercetools-mc-storage-aws-eu-prod-merchant-center',
56
57
  [bucketRegions.northAmerica]: 'commercetools-mc-storage-aws-us-prod-merchant-center'
57
58
  }
@@ -68,7 +69,8 @@ const defaultConfig = {
68
69
  bucketEnvironment: bucketEnvironments['ctp-gcp-testing-performance-eu']
69
70
  }, {
70
71
  cloudEnvironment: clusterContexts['ctp_staging_aws_eu-central-1_v1'],
71
- bucketEnvironment: bucketEnvironments['ctp-aws-staging-eu']
72
+ bucketEnvironment: bucketEnvironments['ctp-aws-staging-eu'],
73
+ storageProviders: ['gs', 's3']
72
74
  }],
73
75
  [bucketRegions.europe]: [{
74
76
  cloudEnvironment: clusterContexts['ctp_production_aws_eu-central-1_v1'],
@@ -132,7 +134,7 @@ async function loadConfig(moduleName, defaultConfig) {
132
134
  });
133
135
  try {
134
136
  const cosmiconfigResult = await configExplorer.search();
135
- const mergedConfig = lodash.merge(defaultConfig, cosmiconfigResult?.config);
137
+ const mergedConfig = lodashMerge(defaultConfig, cosmiconfigResult?.config);
136
138
  console.log(`ℹ️ Merged and loaded cosmiconfig file for '${moduleName}'.`);
137
139
  return mergedConfig;
138
140
  } catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercetools-frontend/application-cli",
3
- "version": "7.2.0",
3
+ "version": "7.3.1",
4
4
  "description": "Internal CLI to manage Merchant Center application deployments across various environments.",
5
5
  "keywords": [
6
6
  "commercetools",
@@ -22,27 +22,26 @@
22
22
  "dependencies": {
23
23
  "@babel/core": "^7.22.11",
24
24
  "@babel/runtime-corejs3": "^7.21.0",
25
- "@commercetools-frontend/application-config": "25.1.0",
26
- "@commercetools-frontend/constants": "25.1.0",
27
- "@commercetools-frontend/l10n": "25.1.0",
28
- "@manypkg/find-root": "2.2.3",
29
- "commander": "^13.1.0",
25
+ "@commercetools-frontend/application-config": "26.0.2",
26
+ "@commercetools-frontend/constants": "26.0.2",
27
+ "@commercetools-frontend/l10n": "26.0.2",
28
+ "@manypkg/find-root": "3.1.0",
29
+ "commander": "^14.0.0",
30
30
  "cosmiconfig": "9.0.0",
31
- "dotenv": "17.2.3",
32
- "execa": "5.1.1",
31
+ "dotenv": "17.3.1",
33
32
  "jsonschema": "^1.4.1",
34
- "listr2": "8.3.3",
35
- "lodash": "4.17.21",
33
+ "listr2": "10.1.0",
34
+ "lodash": "4.17.23",
36
35
  "micromatch": "4.0.8",
37
- "node-fetch": "2.7.0",
36
+ "tinyexec": "1.0.2",
38
37
  "ts-deepmerge": "7.0.3"
39
38
  },
40
39
  "devDependencies": {
41
- "@tsconfig/node24": "24.0.0",
40
+ "@tsconfig/node24": "24.0.4",
42
41
  "@types/lodash": "^4.14.198",
43
- "@types/micromatch": "4.0.9",
44
- "@types/node": "24.10.6",
45
- "typescript": "5.7.2"
42
+ "@types/micromatch": "4.0.10",
43
+ "@types/node": "24.10.13",
44
+ "typescript": "5.9.3"
46
45
  },
47
46
  "engines": {
48
47
  "node": ">=21",