just-scripts 2.4.2 → 2.6.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.
Files changed (75) hide show
  1. package/CHANGELOG.json +85 -2
  2. package/CHANGELOG.md +27 -2
  3. package/lib/index.d.ts +1 -1
  4. package/lib/index.d.ts.map +1 -1
  5. package/lib/index.js +4 -3
  6. package/lib/index.js.map +1 -1
  7. package/lib/interfaces/PackageJson.d.ts +16 -0
  8. package/lib/interfaces/PackageJson.d.ts.map +1 -0
  9. package/lib/interfaces/PackageJson.js +3 -0
  10. package/lib/interfaces/PackageJson.js.map +1 -0
  11. package/lib/tasks/eslintTask.d.ts.map +1 -1
  12. package/lib/tasks/eslintTask.js +6 -7
  13. package/lib/tasks/eslintTask.js.map +1 -1
  14. package/lib/tasks/jestTask.d.ts +8 -0
  15. package/lib/tasks/jestTask.d.ts.map +1 -1
  16. package/lib/tasks/jestTask.js +10 -11
  17. package/lib/tasks/jestTask.js.map +1 -1
  18. package/lib/tasks/nodeExecTask.d.ts +22 -8
  19. package/lib/tasks/nodeExecTask.d.ts.map +1 -1
  20. package/lib/tasks/nodeExecTask.js +17 -11
  21. package/lib/tasks/nodeExecTask.js.map +1 -1
  22. package/lib/tasks/prettierTask.d.ts +1 -0
  23. package/lib/tasks/prettierTask.d.ts.map +1 -1
  24. package/lib/tasks/prettierTask.js +9 -23
  25. package/lib/tasks/prettierTask.js.map +1 -1
  26. package/lib/tasks/tscTask.d.ts.map +1 -1
  27. package/lib/tasks/tscTask.js +21 -39
  28. package/lib/tasks/tscTask.js.map +1 -1
  29. package/lib/tasks/tslintTask.d.ts.map +1 -1
  30. package/lib/tasks/tslintTask.js +7 -8
  31. package/lib/tasks/tslintTask.js.map +1 -1
  32. package/lib/tasks/webpackCliInitTask.js +2 -1
  33. package/lib/tasks/webpackCliInitTask.js.map +1 -1
  34. package/lib/tasks/webpackCliTask.js +3 -3
  35. package/lib/tasks/webpackCliTask.js.map +1 -1
  36. package/lib/tasks/webpackDevServerTask.d.ts.map +1 -1
  37. package/lib/tasks/webpackDevServerTask.js +3 -3
  38. package/lib/tasks/webpackDevServerTask.js.map +1 -1
  39. package/lib/utils/exec.d.ts +37 -0
  40. package/lib/utils/exec.d.ts.map +1 -0
  41. package/lib/utils/exec.js +107 -0
  42. package/lib/utils/exec.js.map +1 -0
  43. package/lib/utils/index.d.ts +5 -0
  44. package/lib/utils/index.d.ts.map +1 -0
  45. package/lib/utils/index.js +19 -0
  46. package/lib/utils/index.js.map +1 -0
  47. package/lib/utils/mergePackageJson.d.ts +20 -0
  48. package/lib/utils/mergePackageJson.d.ts.map +1 -0
  49. package/lib/utils/mergePackageJson.js +61 -0
  50. package/lib/utils/mergePackageJson.js.map +1 -0
  51. package/lib/utils/paths.d.ts +13 -0
  52. package/lib/utils/paths.d.ts.map +1 -0
  53. package/lib/utils/paths.js +26 -0
  54. package/lib/utils/paths.js.map +1 -0
  55. package/lib/utils/readPackageJson.d.ts +8 -0
  56. package/lib/utils/readPackageJson.d.ts.map +1 -0
  57. package/lib/utils/readPackageJson.js +19 -0
  58. package/lib/utils/readPackageJson.js.map +1 -0
  59. package/package.json +4 -3
  60. package/src/index.ts +1 -1
  61. package/src/interfaces/PackageJson.ts +16 -0
  62. package/src/tasks/eslintTask.ts +7 -6
  63. package/src/tasks/jestTask.ts +18 -9
  64. package/src/tasks/nodeExecTask.ts +34 -18
  65. package/src/tasks/prettierTask.ts +9 -26
  66. package/src/tasks/tscTask.ts +21 -44
  67. package/src/tasks/tslintTask.ts +8 -7
  68. package/src/tasks/webpackCliInitTask.ts +1 -1
  69. package/src/tasks/webpackCliTask.ts +2 -2
  70. package/src/tasks/webpackDevServerTask.ts +3 -3
  71. package/src/utils/exec.ts +112 -0
  72. package/src/utils/index.ts +4 -0
  73. package/src/utils/mergePackageJson.ts +64 -0
  74. package/src/utils/paths.ts +26 -0
  75. package/src/utils/readPackageJson.ts +16 -0
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tscWatchTask = exports.tscTask = void 0;
4
4
  const just_task_1 = require("just-task");
5
- const just_scripts_utils_1 = require("just-scripts-utils");
5
+ const utils_1 = require("../utils");
6
6
  const fs = require("fs");
7
7
  /**
8
8
  * Returns a task that runs the TSC CLI.
@@ -18,9 +18,8 @@ function tscTask(options = {}) {
18
18
  if (isValidProject(options)) {
19
19
  just_task_1.logger.info(`Running ${tscCmd} with ${options.project || options.build}`);
20
20
  const args = argsFromOptions(tscCmd, options);
21
- const cmd = (0, just_scripts_utils_1.encodeArgs)([process.execPath, ...args]).join(' ');
22
- just_task_1.logger.info(`Executing: ${cmd}`);
23
- return (0, just_scripts_utils_1.exec)(cmd);
21
+ (0, utils_1.logNodeCommand)(args);
22
+ return (0, utils_1.spawn)(process.execPath, args, { stdio: 'inherit' });
24
23
  }
25
24
  return Promise.resolve();
26
25
  };
@@ -30,21 +29,7 @@ exports.tscTask = tscTask;
30
29
  * Returns a task that runs the TSC CLI in watch mode.
31
30
  */
32
31
  function tscWatchTask(options = {}) {
33
- const tscCmd = (0, just_task_1.resolve)('typescript/lib/tsc.js');
34
- if (!tscCmd) {
35
- throw new Error('cannot find tsc');
36
- }
37
- return function tscWatch() {
38
- options = { ...options, ...getProjectOrBuildOptions(options) };
39
- if (isValidProject(options)) {
40
- just_task_1.logger.info(`Running ${tscCmd} with ${options.project || options.build} in watch mode`);
41
- const args = argsFromOptions(tscCmd, options);
42
- const cmd = [...args, '--watch'];
43
- just_task_1.logger.info((0, just_scripts_utils_1.encodeArgs)(cmd).join(' '));
44
- return (0, just_scripts_utils_1.spawn)(process.execPath, cmd, { stdio: 'inherit' });
45
- }
46
- return Promise.resolve();
47
- };
32
+ return tscTask({ ...options, watch: true });
48
33
  }
49
34
  exports.tscWatchTask = tscWatchTask;
50
35
  /**
@@ -68,30 +53,27 @@ function isValidProject(options) {
68
53
  return ((typeof options.project === 'string' && fs.existsSync(options.project)) ||
69
54
  (typeof options.build === 'string' && fs.existsSync(options.build)) ||
70
55
  (Array.isArray(options.build) &&
71
- options.build.reduce((currentIsValid, buildPath) => {
72
- return currentIsValid && typeof buildPath === 'string' && fs.existsSync(buildPath);
73
- }, true)));
56
+ options.build.every(buildPath => typeof buildPath === 'string' && fs.existsSync(buildPath))));
74
57
  }
75
58
  /**
76
59
  * Returns an array of CLI arguments for TSC given the `options`.
77
60
  */
78
61
  function argsFromOptions(tscCmd, options) {
79
- const { nodeArgs, ...rest } = options;
80
- return [
81
- ...(nodeArgs ? nodeArgs : []),
82
- ...Object.keys(rest).reduce((currentArgs, option) => {
83
- const optionValue = options[option];
84
- if (typeof optionValue === 'string') {
85
- return currentArgs.concat(['--' + option, optionValue]);
86
- }
87
- else if (typeof optionValue === 'boolean' && optionValue) {
88
- return currentArgs.concat(['--' + option]);
89
- }
90
- else if (Array.isArray(optionValue)) {
91
- return currentArgs.concat(['--' + option, ...optionValue]);
92
- }
93
- return currentArgs;
94
- }, [tscCmd]),
95
- ];
62
+ const { nodeArgs, build, ...rest } = options;
63
+ const args = [...(nodeArgs || []), tscCmd];
64
+ // --build must be the first arg if specified
65
+ const argEntries = [...(build !== undefined ? [['build', build]] : []), ...Object.entries(rest)];
66
+ for (const [option, optionValue] of argEntries) {
67
+ if (typeof optionValue === 'string') {
68
+ args.push('--' + option, optionValue);
69
+ }
70
+ else if (typeof optionValue === 'boolean' && optionValue) {
71
+ args.push('--' + option);
72
+ }
73
+ else if (Array.isArray(optionValue)) {
74
+ args.push('--' + option, ...optionValue);
75
+ }
76
+ }
77
+ return args;
96
78
  }
97
79
  //# sourceMappingURL=tscTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tscTask.js","sourceRoot":"","sources":["../../src/tasks/tscTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tscTask.js","sourceRoot":"","sources":["../../src/tasks/tscTask.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tslintTask.d.ts","sourceRoot":"","sources":["../../src/tasks/tslintTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,YAAY,EAAE,MAAM,WAAW,CAAC;AAKtE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,YAAY,CA6BxE"}
1
+ {"version":3,"file":"tslintTask.d.ts","sourceRoot":"","sources":["../../src/tasks/tslintTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,YAAY,EAAE,MAAM,WAAW,CAAC;AAKtE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,YAAY,CA8BxE"}
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tslintTask = void 0;
4
4
  const just_task_1 = require("just-task");
5
- const just_scripts_utils_1 = require("just-scripts-utils");
6
5
  const path = require("path");
7
6
  const fs = require("fs");
7
+ const utils_1 = require("../utils");
8
8
  function tslintTask(options = {}) {
9
9
  const projectFile = options.project || (0, just_task_1.resolveCwd)('./tsconfig.json');
10
- return function tslint() {
10
+ return async function tslint() {
11
11
  const tslintCmd = (0, just_task_1.resolve)('tslint/lib/tslintCli.js');
12
12
  if (projectFile && tslintCmd && fs.existsSync(projectFile)) {
13
13
  just_task_1.logger.info(`Running tslint`);
@@ -22,13 +22,12 @@ function tslintTask(options = {}) {
22
22
  if (options.fix) {
23
23
  args.push('--fix');
24
24
  }
25
- const cmd = (0, just_scripts_utils_1.encodeArgs)([process.execPath, tslintCmd, ...args]).join(' ');
26
- just_task_1.logger.info(cmd);
27
- return (0, just_scripts_utils_1.exec)(cmd, { stdout: process.stdout, stderr: process.stderr });
28
- }
29
- else {
30
- return Promise.resolve();
25
+ const allArgs = [tslintCmd, ...args];
26
+ (0, utils_1.logNodeCommand)(allArgs);
27
+ return (0, utils_1.spawn)(process.execPath, allArgs, { stdio: 'inherit' });
31
28
  }
29
+ // undertaker apparently requires returning a promise, async function, or function that calls done()
30
+ return Promise.resolve();
32
31
  };
33
32
  }
34
33
  exports.tslintTask = tslintTask;
@@ -1 +1 @@
1
- {"version":3,"file":"tslintTask.js","sourceRoot":"","sources":["../../src/tasks/tslintTask.ts"],"names":[],"mappings":";;;AAAA,yCAAsE;AACtE,2DAAsD;AACtD,6BAA6B;AAC7B,yBAAyB;AAQzB,SAAgB,UAAU,CAAC,UAA6B,EAAE;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,IAAA,sBAAU,EAAC,iBAAiB,CAAC,CAAC;IAErE,OAAO,SAAS,MAAM;QACpB,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,yBAAyB,CAAC,CAAC;QAErD,IAAI,WAAW,IAAI,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC1D,kBAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE9B,MAAM,IAAI,GAAG;gBACX,WAAW;gBACX,WAAW;gBACX,IAAI;gBACJ,SAAS;gBACT,IAAI;gBACJ,IAAI,CAAC,OAAO,CAAC,IAAA,mBAAO,EAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC;YAEF,IAAI,OAAO,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACpB;YAED,MAAM,GAAG,GAAG,IAAA,+BAAU,EAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzE,kBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,IAAA,yBAAI,EAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;SACtE;aAAM;YACL,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;IACH,CAAC,CAAC;AACJ,CAAC;AA7BD,gCA6BC"}
1
+ {"version":3,"file":"tslintTask.js","sourceRoot":"","sources":["../../src/tasks/tslintTask.ts"],"names":[],"mappings":";;;AAAA,yCAAsE;AACtE,6BAA6B;AAC7B,yBAAyB;AACzB,oCAAiD;AAQjD,SAAgB,UAAU,CAAC,UAA6B,EAAE;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,IAAA,sBAAU,EAAC,iBAAiB,CAAC,CAAC;IAErE,OAAO,KAAK,UAAU,MAAM;QAC1B,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,yBAAyB,CAAC,CAAC;QAErD,IAAI,WAAW,IAAI,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC1D,kBAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE9B,MAAM,IAAI,GAAG;gBACX,WAAW;gBACX,WAAW;gBACX,IAAI;gBACJ,SAAS;gBACT,IAAI;gBACJ,IAAI,CAAC,OAAO,CAAC,IAAA,mBAAO,EAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC;YAEF,IAAI,OAAO,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACpB;YAED,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YACrC,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC;YACxB,OAAO,IAAA,aAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SAC/D;QAED,oGAAoG;QACpG,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AA9BD,gCA8BC"}
@@ -11,7 +11,8 @@ const tryRequire_1 = require("../tryRequire");
11
11
  */
12
12
  function webpackCliInitTask(customScaffold, auto = false) {
13
13
  return function webpackCli() {
14
- const init = (0, tryRequire_1.tryRequire)('@webpack-cli/init').default;
14
+ var _a;
15
+ const init = (_a = (0, tryRequire_1.tryRequire)('@webpack-cli/init')) === null || _a === void 0 ? void 0 : _a.default;
15
16
  if (!init) {
16
17
  just_task_1.logger.warn('webpack-cli init requires three dependencies: @webpack-cli/init (preferred - as a devDependency)');
17
18
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"webpackCliInitTask.js","sourceRoot":"","sources":["../../src/tasks/webpackCliInitTask.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AACjD,8CAA2C;AAE3C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,cAAuB,EAAE,IAAI,GAAG,KAAK;IACtE,OAAO,SAAS,UAAU;QACxB,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE;YACT,kBAAM,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;YAChH,OAAO;SACR;QACD,kBAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YACzC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;iBAClC;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,gCAAiC,KAAa,CAAC,MAAM,YAAY,CAAC;iBACzE;aACF;iBAAM;gBACL,IAAI;oBACF,IAAI,EAAE,CAAC;iBACR;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,gCAAiC,KAAa,CAAC,MAAM,YAAY,CAAC;iBACzE;aACF;SACF;aAAM;YACL,kBAAM,CAAC,IAAI,CAAC,wBAAwB,cAAc,EAAE,CAAC,CAAC;YACtD,IAAI;gBACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;aAClC;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,gCAAiC,KAAa,CAAC,MAAM,YAAY,CAAC;aACzE;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AA/BD,gDA+BC"}
1
+ {"version":3,"file":"webpackCliInitTask.js","sourceRoot":"","sources":["../../src/tasks/webpackCliInitTask.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AACjD,8CAA2C;AAE3C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,cAAuB,EAAE,IAAI,GAAG,KAAK;IACtE,OAAO,SAAS,UAAU;;QACxB,MAAM,IAAI,GAAG,MAAA,IAAA,uBAAU,EAAC,mBAAmB,CAAC,0CAAE,OAAO,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE;YACT,kBAAM,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;YAChH,OAAO;SACR;QACD,kBAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YACzC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;iBAClC;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,gCAAiC,KAAa,CAAC,MAAM,YAAY,CAAC;iBACzE;aACF;iBAAM;gBACL,IAAI;oBACF,IAAI,EAAE,CAAC;iBACR;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,gCAAiC,KAAa,CAAC,MAAM,YAAY,CAAC;iBACzE;aACF;SACF;aAAM;YACL,kBAAM,CAAC,IAAI,CAAC,wBAAwB,cAAc,EAAE,CAAC,CAAC;YACtD,IAAI;gBACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;aAClC;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,gCAAiC,KAAa,CAAC,MAAM,YAAY,CAAC;aACzE;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AA/BD,gDA+BC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.webpackCliTask = void 0;
4
4
  const just_task_1 = require("just-task");
5
- const just_scripts_utils_1 = require("just-scripts-utils");
5
+ const utils_1 = require("../utils");
6
6
  const getTsNodeEnv_1 = require("../typescript/getTsNodeEnv");
7
7
  const findWebpackConfig_1 = require("../webpack/findWebpackConfig");
8
8
  /**
@@ -34,8 +34,8 @@ function webpackCliTask(options = {}) {
34
34
  configPath = options.webpackCliArgs[configIndex + 1];
35
35
  }
36
36
  }
37
- just_task_1.logger.info(`webpack-cli arguments: ${process.execPath} ${args.join(' ')}`);
38
- return (0, just_scripts_utils_1.spawn)(process.execPath, args, { stdio: 'inherit', env: options.env });
37
+ (0, utils_1.logNodeCommand)(args);
38
+ return (0, utils_1.spawn)(process.execPath, args, { stdio: 'inherit', env: options.env });
39
39
  };
40
40
  }
41
41
  exports.webpackCliTask = webpackCliTask;
@@ -1 +1 @@
1
- {"version":3,"file":"webpackCliTask.js","sourceRoot":"","sources":["../../src/tasks/webpackCliTask.ts"],"names":[],"mappings":";;;AAAA,yCAA0D;AAC1D,2DAA2C;AAC3C,6DAA0D;AAC1D,oEAAiE;AA8BjE;;GAEG;AACH,SAAgB,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,aAAa,GAAG,IAAA,mBAAO,EAAC,wBAAwB,CAAC,CAAC;IAExD,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,OAAO,SAAS,UAAU;QACxB,kBAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG;YACX,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,aAAa;YACb,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC;QAEF,IAAI,UAAU,GAAG,IAAA,qCAAiB,EAAC,mBAAmB,CAAC,CAAC;QAExD,IAAI,UAAU,EAAE;YACd,OAAO,CAAC,GAAG,GAAG;gBACZ,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAA,2BAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;aACzF,CAAC;SACH;QAED,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/D,MAAM,mBAAmB,GAAG,WAAW,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC;YAChG,IAAI,mBAAmB,EAAE;gBACvB,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;aACtD;SACF;QAED,kBAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE5E,OAAO,IAAA,0BAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AArCD,wCAqCC"}
1
+ {"version":3,"file":"webpackCliTask.js","sourceRoot":"","sources":["../../src/tasks/webpackCliTask.ts"],"names":[],"mappings":";;;AAAA,yCAA0D;AAC1D,oCAAiD;AACjD,6DAA0D;AAC1D,oEAAiE;AA8BjE;;GAEG;AACH,SAAgB,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,aAAa,GAAG,IAAA,mBAAO,EAAC,wBAAwB,CAAC,CAAC;IAExD,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,OAAO,SAAS,UAAU;QACxB,kBAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG;YACX,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,aAAa;YACb,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC;QAEF,IAAI,UAAU,GAAG,IAAA,qCAAiB,EAAC,mBAAmB,CAAC,CAAC;QAExD,IAAI,UAAU,EAAE;YACd,OAAO,CAAC,GAAG,GAAG;gBACZ,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAA,2BAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;aACzF,CAAC;SACH;QAED,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/D,MAAM,mBAAmB,GAAG,WAAW,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC;YAChG,IAAI,mBAAmB,EAAE;gBACvB,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;aACtD;SACF;QAED,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;QAErB,OAAO,IAAA,aAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AArCD,wCAqCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"webpackDevServerTask.d.ts","sourceRoot":"","sources":["../../src/tasks/webpackDevServerTask.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAA+B,YAAY,EAAE,MAAM,WAAW,CAAC;AAGtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB,EAAE,aAAa;IACvF;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;IAEpC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,GAAG,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC,GAAG,YAAY,CAiD5F"}
1
+ {"version":3,"file":"webpackDevServerTask.d.ts","sourceRoot":"","sources":["../../src/tasks/webpackDevServerTask.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAuB,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB,EAAE,aAAa;IACvF;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;IAEpC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,GAAG,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC,GAAG,YAAY,CAiD5F"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.webpackDevServerTask = void 0;
4
- const just_scripts_utils_1 = require("just-scripts-utils");
4
+ const utils_1 = require("../utils");
5
5
  const just_task_1 = require("just-task");
6
6
  const fs = require("fs");
7
7
  const path = require("path");
@@ -42,8 +42,8 @@ function webpackDevServerTask(options = {}) {
42
42
  if (options.webpackCliArgs) {
43
43
  args = [...args, ...options.webpackCliArgs];
44
44
  }
45
- just_task_1.logger.info(process.execPath, (0, just_scripts_utils_1.encodeArgs)(args).join(' '));
46
- return (0, just_scripts_utils_1.spawn)(process.execPath, args, { stdio: 'inherit', env: options.env });
45
+ (0, utils_1.logNodeCommand)(args);
46
+ return (0, utils_1.spawn)(process.execPath, args, { stdio: 'inherit', env: options.env });
47
47
  };
48
48
  }
49
49
  exports.webpackDevServerTask = webpackDevServerTask;
@@ -1 +1 @@
1
- {"version":3,"file":"webpackDevServerTask.js","sourceRoot":"","sources":["../../src/tasks/webpackDevServerTask.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,yCAAsE;AACtE,yBAAyB;AACzB,6BAA6B;AAE7B,6DAA0D;AAC1D,oEAAiE;AACjE,iCAAiC;AAwCjC,SAAgB,oBAAoB,CAAC,UAAuC,EAAE;IAC5E,MAAM,UAAU,GACd,OAAO,IAAI,OAAO,CAAC,MAAM;QACvB,CAAC,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,IAAA,qCAAiB,EAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;IAExE,kGAAkG;IAClG,MAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,0BAA0B,CAAC,CAAC;IAE3D,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;KAChG;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,eAAe;QAClC,CAAC,CAAC,oEAAoE;YACpE,CAAC,IAAA,mBAAO,EAAC,wBAAwB,CAAE,EAAE,OAAO,CAAC;QAC/C,CAAC,CAAC,oEAAoE;YACpE,CAAC,IAAA,mBAAO,EAAC,8CAA8C,CAAE,CAAC,CAAC;IAE/D,OAAO,SAAS,gBAAgB;QAC9B,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC;QAE1D,IAAI,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC3C,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,GAAG;gBACZ,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAA,2BAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;aACzF,CAAC;SACH;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrB;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1C;QAED,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;SAC7C;QAED,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAA,+BAAU,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,IAAA,0BAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AAjDD,oDAiDC"}
1
+ {"version":3,"file":"webpackDevServerTask.js","sourceRoot":"","sources":["../../src/tasks/webpackDevServerTask.ts"],"names":[],"mappings":";;;AAEA,oCAAiD;AACjD,yCAA8D;AAC9D,yBAAyB;AACzB,6BAA6B;AAE7B,6DAA0D;AAC1D,oEAAiE;AACjE,iCAAiC;AAwCjC,SAAgB,oBAAoB,CAAC,UAAuC,EAAE;IAC5E,MAAM,UAAU,GACd,OAAO,IAAI,OAAO,CAAC,MAAM;QACvB,CAAC,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,IAAA,qCAAiB,EAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;IAExE,kGAAkG;IAClG,MAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,0BAA0B,CAAC,CAAC;IAE3D,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;KAChG;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,eAAe;QAClC,CAAC,CAAC,oEAAoE;YACpE,CAAC,IAAA,mBAAO,EAAC,wBAAwB,CAAE,EAAE,OAAO,CAAC;QAC/C,CAAC,CAAC,oEAAoE;YACpE,CAAC,IAAA,mBAAO,EAAC,8CAA8C,CAAE,CAAC,CAAC;IAE/D,OAAO,SAAS,gBAAgB;QAC9B,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC;QAE1D,IAAI,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC3C,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,GAAG;gBACZ,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAA,2BAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;aACzF,CAAC;SACH;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrB;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1C;QAED,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;SAC7C;QAED,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;QACrB,OAAO,IAAA,aAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AAjDD,oDAiDC"}
@@ -0,0 +1,37 @@
1
+ /// <reference types="node" />
2
+ import * as cp from 'child_process';
3
+ /**
4
+ * @deprecated This prevents issues from spaces in args, but does NOT escape shell metacharacters.
5
+ * For full escaping, consider a library such as `shell-quote` instead. (Note that `spawn` and tasks
6
+ * from this package now use `cross-spawn` which escapes spaces internally.)
7
+ */
8
+ export declare function encodeArgs(cmdArgs: string[]): string[];
9
+ /**
10
+ * Log `Running: <process.execPath> <...args>`
11
+ */
12
+ export declare function logNodeCommand(...args: (string | string[])[]): void;
13
+ /**
14
+ * Execute a command in a new process. Uses `cross-spawn` to avoid issues with spaces in arguments,
15
+ * but does not do any additional escaping. (For further enhancements, consider using the `execa`
16
+ * library instead.)
17
+ *
18
+ * **WARNING: If the `shell` option is enabled, do not pass unsanitized user input to this function.
19
+ * Any input containing shell metacharacters may be used to trigger arbitrary command execution.**
20
+ *
21
+ * @param cmd Command to execute
22
+ * @param args Args for the command. Quoting spaces is handled internally by `cross-spawn`.
23
+ * @param opts Normal spawn options plus stdout/stderr for piping output. (To inherit stdio from the
24
+ * parent process, just use `stdio: 'inherit'` instead.)
25
+ *
26
+ * @returns Promise which will settle when the command completes. If the promise is rejected, the error will
27
+ * include the child process's exit code (`error.code`) or signal (`error.signal`) if relevant.
28
+ * The returned promise also has a `child` property with the spawned `ChildProcess` instance.
29
+ *
30
+ * @deprecated This function is not recommended for use outside the `just-scripts` package.
31
+ * Instead, consider a more mature, purpose-specific library such as `execa` or `nano-spawn`.
32
+ */
33
+ export declare function spawn(cmd: string, args?: ReadonlyArray<string>, opts?: cp.SpawnOptions & {
34
+ stdout?: NodeJS.WritableStream;
35
+ stderr?: NodeJS.WritableStream;
36
+ }): Promise<void>;
37
+ //# sourceMappingURL=exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAMpC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEtD;AAyBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAEnE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,KAAK,CACnB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,aAAa,CAAC,MAAM,CAAM,EAChC,IAAI,GAAE,EAAE,CAAC,YAAY,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;CAAO,GAC9F,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.spawn = exports.logNodeCommand = exports.encodeArgs = void 0;
4
+ const cross_spawn_1 = require("cross-spawn");
5
+ const just_task_1 = require("just-task");
6
+ // `exec` and `execSync` were removed due to security issues (keeping filename for history)
7
+ /**
8
+ * @deprecated This prevents issues from spaces in args, but does NOT escape shell metacharacters.
9
+ * For full escaping, consider a library such as `shell-quote` instead. (Note that `spawn` and tasks
10
+ * from this package now use `cross-spawn` which escapes spaces internally.)
11
+ */
12
+ function encodeArgs(cmdArgs) {
13
+ return quoteSpaces(cmdArgs);
14
+ }
15
+ exports.encodeArgs = encodeArgs;
16
+ /**
17
+ * Quote arguments containing spaces. Note that this does NOT do any other escaping!
18
+ * For more complete escaping, consider a library such as `shell-quote`, or use safer APIs which
19
+ * don't require escaping. (Note that `spawn` from this package now uses `cross-spawn` which
20
+ * escapes spaces internally.)
21
+ */
22
+ function quoteSpaces(cmdArgs) {
23
+ // Taken from https://github.com/xxorax/node-shell-escape/blob/master/shell-escape.js
24
+ // However, we needed to use double quotes because that's the norm in more platforms
25
+ if (!cmdArgs) {
26
+ return cmdArgs;
27
+ }
28
+ return cmdArgs.map(arg => {
29
+ if (/[^\w/:=-]/.test(arg)) {
30
+ arg = `"${arg.replace(/"/g, '"\\"')}"`;
31
+ arg = arg.replace(/^(?:"")+/g, '').replace(/\\"""/g, '\\"');
32
+ }
33
+ return arg;
34
+ });
35
+ }
36
+ /**
37
+ * Log `Running: <process.execPath> <...args>`
38
+ */
39
+ function logNodeCommand(...args) {
40
+ just_task_1.logger.info(`Running: ${process.execPath} ${quoteSpaces(args.flat()).join(' ')}`);
41
+ }
42
+ exports.logNodeCommand = logNodeCommand;
43
+ /**
44
+ * Execute a command in a new process. Uses `cross-spawn` to avoid issues with spaces in arguments,
45
+ * but does not do any additional escaping. (For further enhancements, consider using the `execa`
46
+ * library instead.)
47
+ *
48
+ * **WARNING: If the `shell` option is enabled, do not pass unsanitized user input to this function.
49
+ * Any input containing shell metacharacters may be used to trigger arbitrary command execution.**
50
+ *
51
+ * @param cmd Command to execute
52
+ * @param args Args for the command. Quoting spaces is handled internally by `cross-spawn`.
53
+ * @param opts Normal spawn options plus stdout/stderr for piping output. (To inherit stdio from the
54
+ * parent process, just use `stdio: 'inherit'` instead.)
55
+ *
56
+ * @returns Promise which will settle when the command completes. If the promise is rejected, the error will
57
+ * include the child process's exit code (`error.code`) or signal (`error.signal`) if relevant.
58
+ * The returned promise also has a `child` property with the spawned `ChildProcess` instance.
59
+ *
60
+ * @deprecated This function is not recommended for use outside the `just-scripts` package.
61
+ * Instead, consider a more mature, purpose-specific library such as `execa` or `nano-spawn`.
62
+ */
63
+ function spawn(cmd, args = [], opts = {}) {
64
+ return new Promise((resolve, reject) => {
65
+ var _a, _b;
66
+ let child;
67
+ try {
68
+ child = (0, cross_spawn_1.spawn)(cmd, args, opts);
69
+ }
70
+ catch (error) {
71
+ reject(error);
72
+ return;
73
+ }
74
+ const onExit = (code, signal) => {
75
+ child.off('error', onError);
76
+ if (code) {
77
+ const error = new Error('Command failed: ' + [cmd, ...args].join(' '));
78
+ error.code = code;
79
+ reject(error);
80
+ }
81
+ else if (signal) {
82
+ const error = new Error(`Command terminated by signal ${signal}: ` + [cmd, ...args].join(' '));
83
+ error.signal = signal;
84
+ reject(error);
85
+ }
86
+ else {
87
+ resolve();
88
+ }
89
+ };
90
+ // Some error circumstances may fire 'error' rather than 'exit'
91
+ // https://nodejs.org/docs/latest/api/child_process.html#event-error
92
+ const onError = (error) => {
93
+ reject(error);
94
+ child.off('exit', onExit);
95
+ };
96
+ child.on('exit', onExit);
97
+ child.on('error', onError);
98
+ if (opts.stdout) {
99
+ (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.pipe(opts.stdout);
100
+ }
101
+ if (opts.stderr) {
102
+ (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.pipe(opts.stderr);
103
+ }
104
+ });
105
+ }
106
+ exports.spawn = spawn;
107
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './exec';
2
+ export { mergePackageJson } from './mergePackageJson';
3
+ export * from './paths';
4
+ export * from './readPackageJson';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.mergePackageJson = void 0;
14
+ __exportStar(require("./exec"), exports);
15
+ var mergePackageJson_1 = require("./mergePackageJson");
16
+ Object.defineProperty(exports, "mergePackageJson", { enumerable: true, get: function () { return mergePackageJson_1.mergePackageJson; } });
17
+ __exportStar(require("./paths"), exports);
18
+ __exportStar(require("./readPackageJson"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yCAAuB;AACvB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,0CAAwB;AACxB,oDAAkC"}
@@ -0,0 +1,20 @@
1
+ import { PackageJson } from '../interfaces/PackageJson';
2
+ /**
3
+ * Merges an incoming package.json with an original semantically. It can only handle merging
4
+ * dependencies and devDependencies for ranges that look like "^x.y.z" or "~x.y.z" or "x.y.z".
5
+ *
6
+ * @param original Original package.json contents.
7
+ * @param incoming Incoming package.json contents.
8
+ * @returns Returns a new package.json object if any changes were needed, or returns `original`
9
+ * if not. (You can tell if changes were made by checking the object identity.)
10
+ */
11
+ export declare function mergePackageJson(original: PackageJson, incoming: PackageJson): PackageJson;
12
+ /**
13
+ * Exported for testing only. Determines whether a dep should be updated.
14
+ * Returns false if either version includes semver elements we don't understand
15
+ * (any characters besides number and ~ ^).
16
+ * @param originalVersion The original dep version (default 0.0.0)
17
+ * @param incomingVersion The incoming dep version
18
+ */
19
+ export declare function _shouldUpdateDep(originalVersion: string | undefined, incomingVersion: string): boolean;
20
+ //# sourceMappingURL=mergePackageJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergePackageJson.d.ts","sourceRoot":"","sources":["../../src/utils/mergePackageJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,CA4B1F;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CActG"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._shouldUpdateDep = exports.mergePackageJson = void 0;
4
+ const semver = require("semver");
5
+ /**
6
+ * Merges an incoming package.json with an original semantically. It can only handle merging
7
+ * dependencies and devDependencies for ranges that look like "^x.y.z" or "~x.y.z" or "x.y.z".
8
+ *
9
+ * @param original Original package.json contents.
10
+ * @param incoming Incoming package.json contents.
11
+ * @returns Returns a new package.json object if any changes were needed, or returns `original`
12
+ * if not. (You can tell if changes were made by checking the object identity.)
13
+ */
14
+ function mergePackageJson(original, incoming) {
15
+ if (!original.just) {
16
+ return original;
17
+ }
18
+ // deep copy the deps and devDeps
19
+ const newPackageJson = {
20
+ ...original,
21
+ dependencies: { ...(original.dependencies || {}) },
22
+ devDependencies: { ...(original.devDependencies || {}) },
23
+ };
24
+ const depTypes = ['dependencies', 'devDependencies'];
25
+ let packageJsonModified = false;
26
+ depTypes.forEach(depType => {
27
+ const incomingDeps = incoming[depType] || {};
28
+ const originalDeps = original[depType] || {};
29
+ Object.keys(incomingDeps).forEach(dep => {
30
+ // TODO: should this handle deleting deps that exist in originalDeps but not incomingDeps?
31
+ if (_shouldUpdateDep(originalDeps[dep], incomingDeps[dep])) {
32
+ newPackageJson[depType][dep] = incomingDeps[dep];
33
+ packageJsonModified = true;
34
+ }
35
+ });
36
+ });
37
+ return packageJsonModified ? newPackageJson : original;
38
+ }
39
+ exports.mergePackageJson = mergePackageJson;
40
+ /**
41
+ * Exported for testing only. Determines whether a dep should be updated.
42
+ * Returns false if either version includes semver elements we don't understand
43
+ * (any characters besides number and ~ ^).
44
+ * @param originalVersion The original dep version (default 0.0.0)
45
+ * @param incomingVersion The incoming dep version
46
+ */
47
+ function _shouldUpdateDep(originalVersion, incomingVersion) {
48
+ const strippedOriginalVersion = (originalVersion || '0.0.0').replace(/^[~^]/, '');
49
+ const strippedIncomingVersion = incomingVersion.replace(/^[~^]/, '');
50
+ // semver.valid only returns true for a valid SINGLE version, not any type of range
51
+ if (!semver.valid(strippedOriginalVersion) || !semver.valid(strippedIncomingVersion)) {
52
+ // The original and/or incoming versions (with ~ and ^ removed) can't be understood as a single
53
+ // semver version. They might be valid ranges of some other form (like with x or ||), but we
54
+ // don't currently handle those. Do nothing.
55
+ return false;
56
+ }
57
+ // Modify the version if the range is comparable and is greater
58
+ return semver.gt(strippedIncomingVersion, strippedOriginalVersion);
59
+ }
60
+ exports._shouldUpdateDep = _shouldUpdateDep;
61
+ //# sourceMappingURL=mergePackageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergePackageJson.js","sourceRoot":"","sources":["../../src/utils/mergePackageJson.ts"],"names":[],"mappings":";;;AACA,iCAAkC;AAElC;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAAC,QAAqB,EAAE,QAAqB;IAC3E,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAClB,OAAO,QAAQ,CAAC;KACjB;IAED,iCAAiC;IACjC,MAAM,cAAc,GAAgB;QAClC,GAAG,QAAQ;QACX,YAAY,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QAClD,eAAe,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE;KACzD,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACrD,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAE7C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtC,0FAA0F;YAC1F,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC1D,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACjD,mBAAmB,GAAG,IAAI,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzD,CAAC;AA5BD,4CA4BC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,eAAmC,EAAE,eAAuB;IAC3F,MAAM,uBAAuB,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,uBAAuB,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAErE,mFAAmF;IACnF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;QACpF,+FAA+F;QAC/F,4FAA4F;QAC5F,4CAA4C;QAC5C,OAAO,KAAK,CAAC;KACd;IAED,+DAA+D;IAC/D,OAAO,MAAM,CAAC,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;AACrE,CAAC;AAdD,4CAcC"}
@@ -0,0 +1,13 @@
1
+ export declare const paths: {
2
+ /**
3
+ * Location where the generated project will go. Defaults to `process.cwd()`.
4
+ */
5
+ projectPath: string;
6
+ /**
7
+ * Gets a directory path under `${os.tmpdir()}/just-stack` for temporarily storing files.
8
+ * @param segments Names of extra directory segments to include.
9
+ * @returns The directory path.
10
+ */
11
+ tempPath(...segments: string[]): string;
12
+ };
13
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK;IAChB;;OAEG;;IASH;;;;OAIG;0BACmB,MAAM,EAAE,GAAG,MAAM;CAGxC,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.paths = void 0;
4
+ const path = require("path");
5
+ const os = require("os");
6
+ let projectPath = '';
7
+ exports.paths = {
8
+ /**
9
+ * Location where the generated project will go. Defaults to `process.cwd()`.
10
+ */
11
+ get projectPath() {
12
+ return projectPath || process.cwd();
13
+ },
14
+ set projectPath(value) {
15
+ projectPath = value;
16
+ },
17
+ /**
18
+ * Gets a directory path under `${os.tmpdir()}/just-stack` for temporarily storing files.
19
+ * @param segments Names of extra directory segments to include.
20
+ * @returns The directory path.
21
+ */
22
+ tempPath(...segments) {
23
+ return path.resolve(os.tmpdir(), 'just-stack', ...segments);
24
+ },
25
+ };
26
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,yBAAyB;AAEzB,IAAI,WAAW,GAAG,EAAE,CAAC;AAER,QAAA,KAAK,GAAG;IACnB;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,WAAW,CAAC,KAAa;QAC3B,WAAW,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,GAAG,QAAkB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { PackageJson } from '../interfaces/PackageJson';
2
+ /**
3
+ * Reads and parses the package.json file from the given folder.
4
+ * @param folderPath The folder path to look for a package.json in.
5
+ * @returns The parsed file contents, or undefined if the file doesn't exist.
6
+ */
7
+ export declare function readPackageJson(folderPath: string): PackageJson | undefined;
8
+ //# sourceMappingURL=readPackageJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readPackageJson.d.ts","sourceRoot":"","sources":["../../src/utils/readPackageJson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAM3E"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readPackageJson = void 0;
4
+ const path = require("path");
5
+ const fse = require("fs-extra");
6
+ /**
7
+ * Reads and parses the package.json file from the given folder.
8
+ * @param folderPath The folder path to look for a package.json in.
9
+ * @returns The parsed file contents, or undefined if the file doesn't exist.
10
+ */
11
+ function readPackageJson(folderPath) {
12
+ const packageJsonPath = path.join(folderPath, 'package.json');
13
+ if (fse.existsSync(packageJsonPath)) {
14
+ return fse.readJsonSync(packageJsonPath, { throws: false }) || undefined;
15
+ }
16
+ return undefined;
17
+ }
18
+ exports.readPackageJson = readPackageJson;
19
+ //# sourceMappingURL=readPackageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readPackageJson.js","sourceRoot":"","sources":["../../src/utils/readPackageJson.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAE7B,gCAAiC;AAEjC;;;;GAIG;AACH,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;QACnC,OAAO,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,CAAC;KAC1E;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,0CAMC"}