@pristine-ts/cli 1.0.440 → 2.0.2

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 (220) hide show
  1. package/dist/bin/pristine.cjs +7 -0
  2. package/dist/lib/cjs/bin.js +15 -1
  3. package/dist/lib/cjs/bin.js.map +1 -1
  4. package/dist/lib/cjs/bootstrap/app-module-loader.js +321 -0
  5. package/dist/lib/cjs/bootstrap/app-module-loader.js.map +1 -0
  6. package/dist/lib/cjs/bootstrap/bootstrap.js +31 -0
  7. package/dist/lib/cjs/bootstrap/bootstrap.js.map +1 -0
  8. package/dist/lib/cjs/bootstrap/build-manifest-checker.js +67 -0
  9. package/dist/lib/cjs/bootstrap/build-manifest-checker.js.map +1 -0
  10. package/dist/lib/cjs/bootstrap/build-manifest-reader.js +44 -0
  11. package/dist/lib/cjs/bootstrap/build-manifest-reader.js.map +1 -0
  12. package/dist/lib/cjs/bootstrap/build-manifest-staleness.enum.js +23 -0
  13. package/dist/lib/cjs/bootstrap/build-manifest-staleness.enum.js.map +1 -0
  14. package/dist/lib/cjs/bootstrap/build-manifest-writer.js +55 -0
  15. package/dist/lib/cjs/bootstrap/build-manifest-writer.js.map +1 -0
  16. package/dist/lib/cjs/bootstrap/build-manifest.js +31 -0
  17. package/dist/lib/cjs/bootstrap/build-manifest.js.map +1 -0
  18. package/dist/lib/cjs/bootstrap/build-runner.js +44 -0
  19. package/dist/lib/cjs/bootstrap/build-runner.js.map +1 -0
  20. package/dist/lib/cjs/bootstrap/build-staleness-prompt.js +90 -0
  21. package/dist/lib/cjs/bootstrap/build-staleness-prompt.js.map +1 -0
  22. package/dist/lib/cjs/bootstrap/dynamic-importer.js +43 -0
  23. package/dist/lib/cjs/bootstrap/dynamic-importer.js.map +1 -0
  24. package/dist/lib/cjs/bootstrap/init-prompt.js +127 -0
  25. package/dist/lib/cjs/bootstrap/init-prompt.js.map +1 -0
  26. package/dist/lib/cjs/bootstrap/loaded-app-module.js +29 -0
  27. package/dist/lib/cjs/bootstrap/loaded-app-module.js.map +1 -0
  28. package/dist/lib/cjs/bootstrap/loaded-plugin.js +22 -0
  29. package/dist/lib/cjs/bootstrap/loaded-plugin.js.map +1 -0
  30. package/dist/lib/cjs/bootstrap/plugin-loader.js +149 -0
  31. package/dist/lib/cjs/bootstrap/plugin-loader.js.map +1 -0
  32. package/dist/lib/cjs/bootstrap/source-hasher.js +41 -0
  33. package/dist/lib/cjs/bootstrap/source-hasher.js.map +1 -0
  34. package/dist/lib/cjs/cli.js +94 -111
  35. package/dist/lib/cjs/cli.js.map +1 -1
  36. package/dist/lib/cjs/cli.module.js +9 -1
  37. package/dist/lib/cjs/cli.module.js.map +1 -1
  38. package/dist/lib/cjs/commands/build-alias.command.js +50 -0
  39. package/dist/lib/cjs/commands/build-alias.command.js.map +1 -0
  40. package/dist/lib/cjs/commands/build.command.js +173 -0
  41. package/dist/lib/cjs/commands/build.command.js.map +1 -0
  42. package/dist/lib/cjs/commands/commands.js +15 -0
  43. package/dist/lib/cjs/commands/commands.js.map +1 -1
  44. package/dist/lib/cjs/commands/config-print.command.js +75 -0
  45. package/dist/lib/cjs/commands/config-print.command.js.map +1 -0
  46. package/dist/lib/cjs/commands/help-alias.command.js +52 -0
  47. package/dist/lib/cjs/commands/help-alias.command.js.map +1 -0
  48. package/dist/lib/cjs/commands/help.command.js +44 -10
  49. package/dist/lib/cjs/commands/help.command.js.map +1 -1
  50. package/dist/lib/cjs/commands/info-alias.command.js +50 -0
  51. package/dist/lib/cjs/commands/info-alias.command.js.map +1 -0
  52. package/dist/lib/cjs/commands/info.command.js +162 -0
  53. package/dist/lib/cjs/commands/info.command.js.map +1 -0
  54. package/dist/lib/cjs/commands/init-alias.command.js +51 -0
  55. package/dist/lib/cjs/commands/init-alias.command.js.map +1 -0
  56. package/dist/lib/cjs/commands/init.command-options.js +53 -0
  57. package/dist/lib/cjs/commands/init.command-options.js.map +1 -0
  58. package/dist/lib/cjs/commands/init.command.js +249 -0
  59. package/dist/lib/cjs/commands/init.command.js.map +1 -0
  60. package/dist/lib/cjs/commands/list-alias.command.js +50 -0
  61. package/dist/lib/cjs/commands/list-alias.command.js.map +1 -0
  62. package/dist/lib/cjs/commands/list.command.js +7 -1
  63. package/dist/lib/cjs/commands/list.command.js.map +1 -1
  64. package/dist/lib/cjs/commands/start-alias.command.js +51 -0
  65. package/dist/lib/cjs/commands/start-alias.command.js.map +1 -0
  66. package/dist/lib/cjs/commands/start.command-options.js +34 -0
  67. package/dist/lib/cjs/commands/start.command-options.js.map +1 -0
  68. package/dist/lib/cjs/commands/start.command.js +169 -0
  69. package/dist/lib/cjs/commands/start.command.js.map +1 -0
  70. package/dist/lib/cjs/commands/verify-alias.command.js +50 -0
  71. package/dist/lib/cjs/commands/verify-alias.command.js.map +1 -0
  72. package/dist/lib/cjs/commands/verify.command.js +71 -0
  73. package/dist/lib/cjs/commands/verify.command.js.map +1 -0
  74. package/dist/lib/cjs/config/config-loader.js +136 -0
  75. package/dist/lib/cjs/config/config-loader.js.map +1 -0
  76. package/dist/lib/cjs/config/config-provenance.enum.js +15 -0
  77. package/dist/lib/cjs/config/config-provenance.enum.js.map +1 -0
  78. package/dist/lib/cjs/config/config.js +22 -0
  79. package/dist/lib/cjs/config/config.js.map +1 -0
  80. package/dist/lib/cjs/config/define-config.js +18 -0
  81. package/dist/lib/cjs/config/define-config.js.map +1 -0
  82. package/dist/lib/cjs/config/pristine-config.interface.js +3 -0
  83. package/dist/lib/cjs/config/pristine-config.interface.js.map +1 -0
  84. package/dist/lib/cjs/config/resolved-pristine-config.js +25 -0
  85. package/dist/lib/cjs/config/resolved-pristine-config.js.map +1 -0
  86. package/dist/lib/cjs/event-handlers/cli.event-handler.js +69 -48
  87. package/dist/lib/cjs/event-handlers/cli.event-handler.js.map +1 -1
  88. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  89. package/dist/lib/esm/bin.js +15 -1
  90. package/dist/lib/esm/bin.js.map +1 -1
  91. package/dist/lib/esm/bootstrap/app-module-loader.js +315 -0
  92. package/dist/lib/esm/bootstrap/app-module-loader.js.map +1 -0
  93. package/dist/lib/esm/bootstrap/bootstrap.js +15 -0
  94. package/dist/lib/esm/bootstrap/bootstrap.js.map +1 -0
  95. package/dist/lib/esm/bootstrap/build-manifest-checker.js +61 -0
  96. package/dist/lib/esm/bootstrap/build-manifest-checker.js.map +1 -0
  97. package/dist/lib/esm/bootstrap/build-manifest-reader.js +38 -0
  98. package/dist/lib/esm/bootstrap/build-manifest-reader.js.map +1 -0
  99. package/dist/lib/esm/bootstrap/build-manifest-staleness.enum.js +20 -0
  100. package/dist/lib/esm/bootstrap/build-manifest-staleness.enum.js.map +1 -0
  101. package/dist/lib/esm/bootstrap/build-manifest-writer.js +49 -0
  102. package/dist/lib/esm/bootstrap/build-manifest-writer.js.map +1 -0
  103. package/dist/lib/esm/bootstrap/build-manifest.js +27 -0
  104. package/dist/lib/esm/bootstrap/build-manifest.js.map +1 -0
  105. package/dist/lib/esm/bootstrap/build-runner.js +41 -0
  106. package/dist/lib/esm/bootstrap/build-runner.js.map +1 -0
  107. package/dist/lib/esm/bootstrap/build-staleness-prompt.js +87 -0
  108. package/dist/lib/esm/bootstrap/build-staleness-prompt.js.map +1 -0
  109. package/dist/lib/esm/bootstrap/dynamic-importer.js +40 -0
  110. package/dist/lib/esm/bootstrap/dynamic-importer.js.map +1 -0
  111. package/dist/lib/esm/bootstrap/init-prompt.js +124 -0
  112. package/dist/lib/esm/bootstrap/init-prompt.js.map +1 -0
  113. package/dist/lib/esm/bootstrap/loaded-app-module.js +25 -0
  114. package/dist/lib/esm/bootstrap/loaded-app-module.js.map +1 -0
  115. package/dist/lib/esm/bootstrap/loaded-plugin.js +18 -0
  116. package/dist/lib/esm/bootstrap/loaded-plugin.js.map +1 -0
  117. package/dist/lib/esm/bootstrap/plugin-loader.js +143 -0
  118. package/dist/lib/esm/bootstrap/plugin-loader.js.map +1 -0
  119. package/dist/lib/esm/bootstrap/source-hasher.js +35 -0
  120. package/dist/lib/esm/bootstrap/source-hasher.js.map +1 -0
  121. package/dist/lib/esm/cli.js +109 -0
  122. package/dist/lib/esm/cli.js.map +1 -0
  123. package/dist/lib/esm/cli.module.js +7 -0
  124. package/dist/lib/esm/cli.module.js.map +1 -1
  125. package/dist/lib/esm/commands/build-alias.command.js +47 -0
  126. package/dist/lib/esm/commands/build-alias.command.js.map +1 -0
  127. package/dist/lib/esm/commands/build.command.js +167 -0
  128. package/dist/lib/esm/commands/build.command.js.map +1 -0
  129. package/dist/lib/esm/commands/commands.js +15 -0
  130. package/dist/lib/esm/commands/commands.js.map +1 -1
  131. package/dist/lib/esm/commands/config-print.command.js +69 -0
  132. package/dist/lib/esm/commands/config-print.command.js.map +1 -0
  133. package/dist/lib/esm/commands/help-alias.command.js +49 -0
  134. package/dist/lib/esm/commands/help-alias.command.js.map +1 -0
  135. package/dist/lib/esm/commands/help.command.js +44 -10
  136. package/dist/lib/esm/commands/help.command.js.map +1 -1
  137. package/dist/lib/esm/commands/info-alias.command.js +47 -0
  138. package/dist/lib/esm/commands/info-alias.command.js.map +1 -0
  139. package/dist/lib/esm/commands/info.command.js +156 -0
  140. package/dist/lib/esm/commands/info.command.js.map +1 -0
  141. package/dist/lib/esm/commands/init-alias.command.js +48 -0
  142. package/dist/lib/esm/commands/init-alias.command.js.map +1 -0
  143. package/dist/lib/esm/commands/init.command-options.js +49 -0
  144. package/dist/lib/esm/commands/init.command-options.js.map +1 -0
  145. package/dist/lib/esm/commands/init.command.js +243 -0
  146. package/dist/lib/esm/commands/init.command.js.map +1 -0
  147. package/dist/lib/esm/commands/list-alias.command.js +47 -0
  148. package/dist/lib/esm/commands/list-alias.command.js.map +1 -0
  149. package/dist/lib/esm/commands/list.command.js +8 -2
  150. package/dist/lib/esm/commands/list.command.js.map +1 -1
  151. package/dist/lib/esm/commands/start-alias.command.js +48 -0
  152. package/dist/lib/esm/commands/start-alias.command.js.map +1 -0
  153. package/dist/lib/esm/commands/start.command-options.js +30 -0
  154. package/dist/lib/esm/commands/start.command-options.js.map +1 -0
  155. package/dist/lib/esm/commands/start.command.js +166 -0
  156. package/dist/lib/esm/commands/start.command.js.map +1 -0
  157. package/dist/lib/esm/commands/verify-alias.command.js +47 -0
  158. package/dist/lib/esm/commands/verify-alias.command.js.map +1 -0
  159. package/dist/lib/esm/commands/verify.command.js +68 -0
  160. package/dist/lib/esm/commands/verify.command.js.map +1 -0
  161. package/dist/lib/esm/config/config-loader.js +130 -0
  162. package/dist/lib/esm/config/config-loader.js.map +1 -0
  163. package/dist/lib/esm/config/config-provenance.enum.js +12 -0
  164. package/dist/lib/esm/config/config-provenance.enum.js.map +1 -0
  165. package/dist/lib/esm/config/config.js +6 -0
  166. package/dist/lib/esm/config/config.js.map +1 -0
  167. package/dist/lib/esm/config/define-config.js +14 -0
  168. package/dist/lib/esm/config/define-config.js.map +1 -0
  169. package/dist/lib/esm/config/pristine-config.interface.js +2 -0
  170. package/dist/lib/esm/config/pristine-config.interface.js.map +1 -0
  171. package/dist/lib/esm/config/resolved-pristine-config.js +21 -0
  172. package/dist/lib/esm/config/resolved-pristine-config.js.map +1 -0
  173. package/dist/lib/esm/event-handlers/cli.event-handler.js +69 -48
  174. package/dist/lib/esm/event-handlers/cli.event-handler.js.map +1 -1
  175. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -0
  176. package/dist/types/bootstrap/app-module-loader.d.ts +83 -0
  177. package/dist/types/bootstrap/bootstrap.d.ts +14 -0
  178. package/dist/types/bootstrap/build-manifest-checker.d.ts +19 -0
  179. package/dist/types/bootstrap/build-manifest-reader.d.ts +14 -0
  180. package/dist/types/bootstrap/build-manifest-staleness.enum.d.ts +18 -0
  181. package/dist/types/bootstrap/build-manifest-writer.d.ts +19 -0
  182. package/dist/types/bootstrap/build-manifest.d.ts +29 -0
  183. package/dist/types/bootstrap/build-runner.d.ts +16 -0
  184. package/dist/types/bootstrap/build-staleness-prompt.d.ts +27 -0
  185. package/dist/types/bootstrap/dynamic-importer.d.ts +13 -0
  186. package/dist/types/bootstrap/init-prompt.d.ts +38 -0
  187. package/dist/types/bootstrap/loaded-app-module.d.ts +40 -0
  188. package/dist/types/bootstrap/loaded-plugin.d.ts +20 -0
  189. package/dist/types/bootstrap/plugin-loader.d.ts +35 -0
  190. package/dist/types/bootstrap/source-hasher.d.ts +15 -0
  191. package/dist/types/cli.d.ts +12 -0
  192. package/dist/types/cli.module.d.ts +3 -0
  193. package/dist/types/commands/build-alias.command.d.ts +15 -0
  194. package/dist/types/commands/build.command.d.ts +47 -0
  195. package/dist/types/commands/commands.d.ts +15 -0
  196. package/dist/types/commands/config-print.command.d.ts +18 -0
  197. package/dist/types/commands/help-alias.command.d.ts +17 -0
  198. package/dist/types/commands/help.command.d.ts +19 -1
  199. package/dist/types/commands/info-alias.command.d.ts +15 -0
  200. package/dist/types/commands/info.command.d.ts +41 -0
  201. package/dist/types/commands/init-alias.command.d.ts +16 -0
  202. package/dist/types/commands/init.command-options.d.ts +22 -0
  203. package/dist/types/commands/init.command.d.ts +60 -0
  204. package/dist/types/commands/list-alias.command.d.ts +15 -0
  205. package/dist/types/commands/list.command.d.ts +6 -0
  206. package/dist/types/commands/start-alias.command.d.ts +16 -0
  207. package/dist/types/commands/start.command-options.d.ts +11 -0
  208. package/dist/types/commands/start.command.d.ts +47 -0
  209. package/dist/types/commands/verify-alias.command.d.ts +15 -0
  210. package/dist/types/commands/verify.command.d.ts +24 -0
  211. package/dist/types/config/config-loader.d.ts +40 -0
  212. package/dist/types/config/config-provenance.enum.d.ts +10 -0
  213. package/dist/types/config/config.d.ts +5 -0
  214. package/dist/types/config/define-config.d.ts +14 -0
  215. package/dist/types/config/pristine-config.interface.d.ts +67 -0
  216. package/dist/types/config/resolved-pristine-config.d.ts +28 -0
  217. package/dist/types/event-handlers/cli.event-handler.d.ts +30 -3
  218. package/dist/types/interfaces/command.interface.d.ts +31 -3
  219. package/package.json +16 -13
  220. package/readme.md +1023 -17
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -41,90 +8,106 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
41
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
42
9
  });
43
10
  };
44
- var __importDefault = (this && this.__importDefault) || function (mod) {
45
- return (mod && mod.__esModule) ? mod : { "default": mod };
46
- };
47
11
  Object.defineProperty(exports, "__esModule", { value: true });
48
12
  exports.bootstrap = void 0;
49
13
  const core_1 = require("@pristine-ts/core");
50
- const fs_1 = __importDefault(require("fs"));
51
- const logging_1 = require("@pristine-ts/logging");
52
- const file_1 = require("@pristine-ts/file");
53
- const getLocalAppModuleCJSPath = () => __awaiter(void 0, void 0, void 0, function* () {
54
- return new Promise((resolve, reject) => {
55
- const packageJson = process.cwd() + "/package.json";
56
- fs_1.default.stat(packageJson, (err, stats) => __awaiter(void 0, void 0, void 0, function* () {
57
- if (err || stats.isFile() === false) {
58
- const message = "Cannot find the package.json at '" + packageJson + "'. Make sure that you execute this script directly from the parent of your 'package.json'";
59
- //console.error(message);
60
- //console.error(err);
61
- return resolve(undefined);
62
- }
63
- const { pristine } = yield Promise.resolve(`${packageJson}`).then(s => __importStar(require(s)));
64
- if (pristine === undefined) {
65
- const message = "There needs to be a section 'pristine' in your package.json file located at: '" + packageJson + "'";
66
- //console.error(message);
67
- return resolve(undefined);
68
- }
69
- if (pristine.appModule === undefined) {
70
- const message = "There should be a section 'appModule' under 'pristine' in your package.json file located at: '" + packageJson + "'";
71
- //console.error(message);
72
- return resolve(undefined);
73
- }
74
- if (pristine.appModule.cjsPath === undefined) {
75
- const message = "There should be a property 'cjsPath' under 'pristine.appModule' in your package.json file located at: '" + packageJson + "'";
76
- //console.error(message);
77
- return resolve(undefined);
78
- }
79
- return resolve(process.cwd() + "/" + pristine.appModule.cjsPath);
80
- }));
81
- });
82
- });
14
+ const common_1 = require("@pristine-ts/common");
15
+ const app_module_loader_1 = require("./bootstrap/app-module-loader");
16
+ const build_manifest_checker_1 = require("./bootstrap/build-manifest-checker");
17
+ const build_manifest_reader_1 = require("./bootstrap/build-manifest-reader");
18
+ const build_runner_1 = require("./bootstrap/build-runner");
19
+ const build_staleness_prompt_1 = require("./bootstrap/build-staleness-prompt");
20
+ const dynamic_importer_1 = require("./bootstrap/dynamic-importer");
21
+ const plugin_loader_1 = require("./bootstrap/plugin-loader");
22
+ const source_hasher_1 = require("./bootstrap/source-hasher");
23
+ const config_loader_1 = require("./config/config-loader");
24
+ const cli_module_1 = require("./cli.module");
25
+ /**
26
+ * Boots the CLI: discovers the consumer's AppModule, starts the kernel, and dispatches
27
+ * `process.argv` to whichever command matches. Exported so `bin.ts` can call it explicitly
28
+ * the auto-invoke at module load was removed so library consumers importing this file for
29
+ * its types or `bootstrap` reference do not accidentally trigger an entire kernel boot.
30
+ *
31
+ * The bootstrap-layer collaborators (loaders, discoverers, cache, prompt) are instantiated
32
+ * by hand here rather than resolved through DI. The kernel container does not exist yet at
33
+ * this point, so DI is not available — manually wiring the (small, stable) class graph is the
34
+ * least surprising option. Once the kernel is up, the kernel itself is registered into its
35
+ * own container so commands can inject it.
36
+ */
83
37
  const bootstrap = () => __awaiter(void 0, void 0, void 0, function* () {
84
- let localAppModule;
85
- let isLoggingModulePresent = false;
86
- const cjsPath = yield getLocalAppModuleCJSPath();
87
- if (cjsPath !== undefined) {
88
- localAppModule = (yield Promise.resolve(`${cjsPath}`).then(s => __importStar(require(s)))).AppModule;
89
- isLoggingModulePresent = localAppModule.importModules.find((module) => module.keyname === logging_1.LoggingModuleKeyname) !== undefined;
90
- }
91
- else { // Try the automatic Module creation.
92
- // Loop over the `node_modules/@pristine-ts/*/dist/lib/cjs/*.module.js` folders and find all the module files that are loaded.
93
- const directoryManager = new file_1.DirectoryManager(new file_1.FileManager());
94
- const moduleFiles = yield directoryManager.list(process.cwd() + "/node_modules/@pristine-ts", {
95
- matchType: file_1.MatchTypeEnum.Path,
96
- match: /.*\/cjs\/.*\.module\.js$/,
97
- types: file_1.TypesEnum.File,
98
- resultType: file_1.DirectoryListResultEnum.FilePath,
99
- recurse: true,
100
- });
101
- const modules = [];
102
- for (const moduleFile of moduleFiles) {
103
- const module = yield Promise.resolve(`${moduleFile}`).then(s => __importStar(require(s)));
104
- for (const key in module) {
105
- if (key === "LoggingModule") {
106
- isLoggingModulePresent = true;
107
- }
108
- if (key.endsWith("Module")) {
109
- modules.push(module[key]);
110
- }
111
- }
112
- }
113
- localAppModule = {
114
- keyname: "__auto_generated_app.module__",
115
- importModules: modules,
116
- importServices: [],
117
- };
118
- }
119
- const configuration = {};
120
- if (isLoggingModulePresent) {
121
- configuration[logging_1.LoggingModuleKeyname + ".consoleLoggerOutputMode"] = logging_1.OutputModeEnum.Simple;
122
- configuration[logging_1.LoggingModuleKeyname + ".logSeverityLevelConfiguration"] = logging_1.SeverityEnum.Error;
123
- }
38
+ const appModuleLoader = buildAppModuleLoader();
39
+ const { appModule, configuration } = yield appModuleLoader.load();
124
40
  const kernel = new core_1.Kernel();
125
- yield kernel.start(localAppModule, configuration);
41
+ // Wrap the user's AppModule with CliModule so the CLI's own commands (`build`,
42
+ // `start`, `verify`, `init`, `help`, `list`, `info`, custom commands) are always
43
+ // registered when the bin is the entry point — regardless of whether the user's
44
+ // AppModule already imports CliModule. The kernel dedupes modules by keyname during
45
+ // start, so wrapping when CliModule is already in the graph is a no-op; we don't
46
+ // bother walking the graph to detect that case.
47
+ yield kernel.start(wrapWithCliModule(appModule), configuration);
48
+ // Make the running kernel resolvable from within commands so things like `pristine start`
49
+ // and the alias commands can register signal handlers and resolve their delegates.
50
+ kernel.container.registerInstance(core_1.Kernel, kernel);
51
+ warnOnCommandCollisions(kernel);
126
52
  yield kernel.handle(process.argv, { keyname: core_1.ExecutionContextKeynameEnum.Cli, context: null });
127
53
  });
128
54
  exports.bootstrap = bootstrap;
129
- (0, exports.bootstrap)();
55
+ /**
56
+ * Hand-wired graph of the bootstrap-layer classes. The kernel container does not exist yet,
57
+ * so we cannot resolve via DI — but the class graph here is shallow and stable, so manual
58
+ * wiring stays readable. Each class is `@injectable()` so DI resolution would also work if
59
+ * we ever moved this into a kernel-pre-boot container.
60
+ */
61
+ /**
62
+ * Builds a synthetic outer AppModule that imports both the user's AppModule and CliModule.
63
+ * The wrap is unconditional — the kernel dedupes module imports by keyname, so adding
64
+ * CliModule on top of a graph that already contains it is a no-op rather than an error
65
+ * or duplicate registration. Cheaper than walking the user's import tree to detect the
66
+ * already-present case.
67
+ */
68
+ const wrapWithCliModule = (appModule) => {
69
+ var _a;
70
+ return {
71
+ keyname: `${appModule.keyname}.with-cli`,
72
+ importModules: [appModule, cli_module_1.CliModule],
73
+ importServices: (_a = appModule.importServices) !== null && _a !== void 0 ? _a : [],
74
+ };
75
+ };
76
+ const buildAppModuleLoader = () => {
77
+ const dynamicImporter = new dynamic_importer_1.DynamicImporter();
78
+ const configLoader = new config_loader_1.ConfigLoader(dynamicImporter);
79
+ const pluginLoader = new plugin_loader_1.PluginLoader(dynamicImporter);
80
+ const sourceHasher = new source_hasher_1.SourceHasher();
81
+ const buildManifestReader = new build_manifest_reader_1.BuildManifestReader();
82
+ const buildManifestChecker = new build_manifest_checker_1.BuildManifestChecker(sourceHasher);
83
+ const buildStalenessPrompt = new build_staleness_prompt_1.BuildStalenessPrompt(dynamicImporter);
84
+ const buildRunner = new build_runner_1.BuildRunner();
85
+ return new app_module_loader_1.AppModuleLoader(configLoader, pluginLoader, dynamicImporter, buildManifestReader, buildManifestChecker, buildStalenessPrompt, buildRunner);
86
+ };
87
+ /**
88
+ * Walks every registered Command-tagged service and warns to stderr if multiple share a
89
+ * `name`. The CLI's event dispatcher picks whichever match it sees first — without this
90
+ * warning, a plugin silently shadowing a built-in command (or two plugins shadowing each
91
+ * other) would be invisible until someone debugged "why is my command not running?". Warning
92
+ * rather than throwing keeps the bin runnable; users decide whether to fix the conflict.
93
+ */
94
+ const warnOnCommandCollisions = (kernel) => {
95
+ var _a;
96
+ let commands;
97
+ try {
98
+ commands = kernel.container.resolveAll(common_1.ServiceDefinitionTagEnum.Command);
99
+ }
100
+ catch (_b) {
101
+ return;
102
+ }
103
+ const byName = new Map();
104
+ for (const command of commands) {
105
+ byName.set(command.name, ((_a = byName.get(command.name)) !== null && _a !== void 0 ? _a : 0) + 1);
106
+ }
107
+ for (const [name, count] of byName.entries()) {
108
+ if (count > 1) {
109
+ process.stderr.write(`[pristine] WARNING: command '${name}' is registered ${count} times. Only the first match will be dispatched.\n`);
110
+ }
111
+ }
112
+ };
130
113
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAsE;AACtE,gDAAiF;AAEjF,qEAA8D;AAC9D,+EAAwE;AACxE,6EAAsE;AACtE,2DAAqD;AACrD,+EAAwE;AACxE,mEAA6D;AAC7D,6DAAuD;AACvD,6DAAuD;AACvD,0DAAoD;AACpD,6CAAuC;AAEvC;;;;;;;;;;;GAWG;AACI,MAAM,SAAS,GAAG,GAAwB,EAAE;IACjD,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAC/C,MAAM,EAAC,SAAS,EAAE,aAAa,EAAC,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;IAEhE,MAAM,MAAM,GAAG,IAAI,aAAM,EAAE,CAAC;IAC5B,+EAA+E;IAC/E,iFAAiF;IACjF,gFAAgF;IAChF,oFAAoF;IACpF,iFAAiF;IACjF,gDAAgD;IAChD,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;IAEhE,0FAA0F;IAC1F,mFAAmF;IACnF,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAM,EAAE,MAAM,CAAC,CAAC;IAElD,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAC,OAAO,EAAE,kCAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;AAC/F,CAAC,CAAA,CAAA;AApBY,QAAA,SAAS,aAoBrB;AAED;;;;;GAKG;AACH;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,CAAC,SAA6B,EAAsB,EAAE;;IAC9E,OAAO;QACL,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,WAAW;QACxC,aAAa,EAAE,CAAC,SAAS,EAAE,sBAAS,CAAC;QACrC,cAAc,EAAE,MAAA,SAAS,CAAC,cAAc,mCAAI,EAAE;KAC/C,CAAC;AACJ,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,GAAoB,EAAE;IACjD,MAAM,eAAe,GAAG,IAAI,kCAAe,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;IACxC,MAAM,mBAAmB,GAAG,IAAI,2CAAmB,EAAE,CAAC;IACtD,MAAM,oBAAoB,GAAG,IAAI,6CAAoB,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,oBAAoB,GAAG,IAAI,6CAAoB,CAAC,eAAe,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAC;IACtC,OAAO,IAAI,mCAAe,CACxB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,CACZ,CAAC;AACJ,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAQ,EAAE;;IACvD,IAAI,QAAiC,CAAC;IACtC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAwB,iCAAwB,CAAC,OAAO,CAAC,CAAC;IAClG,CAAC;IAAC,WAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAA,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC,IAAI,mBAAmB,KAAK,oDAAoD,CACjH,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -14,13 +14,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.CliModule = void 0;
17
+ exports.CliModule = exports.bootstrap = void 0;
18
18
  const cli_module_keyname_1 = require("./cli.module.keyname");
19
19
  const core_1 = require("@pristine-ts/core");
20
20
  const validation_1 = require("@pristine-ts/validation");
21
21
  const logging_1 = require("@pristine-ts/logging");
22
22
  const data_mapping_1 = require("@pristine-ts/data-mapping");
23
+ __exportStar(require("./bootstrap/bootstrap"), exports);
23
24
  __exportStar(require("./commands/commands"), exports);
25
+ __exportStar(require("./config/config"), exports);
24
26
  __exportStar(require("./enums/enums"), exports);
25
27
  __exportStar(require("./errors/errors"), exports);
26
28
  __exportStar(require("./event-handlers/event-handlers"), exports);
@@ -30,6 +32,12 @@ __exportStar(require("./managers/managers"), exports);
30
32
  __exportStar(require("./mappers/mappers"), exports);
31
33
  __exportStar(require("./options/options"), exports);
32
34
  __exportStar(require("./types/types"), exports);
35
+ // Re-export the bootstrap entrypoint so `bin.ts` (and any other downstream entry script)
36
+ // can invoke `require('@pristine-ts/cli').bootstrap()` to load the same physical CLI
37
+ // classes the consumer's AppModule references — avoiding cross-realm decorator metadata
38
+ // mismatches that occur when bin and consumer end up with separate copies.
39
+ var cli_1 = require("./cli");
40
+ Object.defineProperty(exports, "bootstrap", { enumerable: true, get: function () { return cli_1.bootstrap; } });
33
41
  exports.CliModule = {
34
42
  keyname: cli_module_keyname_1.CliModuleKeyname,
35
43
  configurationDefinitions: [],
@@ -1 +1 @@
1
- {"version":3,"file":"cli.module.js","sourceRoot":"","sources":["../../../src/cli.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6DAAsD;AACtD,4CAA6C;AAC7C,wDAAyD;AACzD,kDAAmD;AACnD,4DAA2D;AAE3D,sDAAoC;AACpC,gDAA8B;AAC9B,kDAAgC;AAChC,kEAAgD;AAChD,kEAAgD;AAChD,0DAAwC;AACxC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,gDAA8B;AAEjB,QAAA,SAAS,GAAoB;IACxC,OAAO,EAAE,qCAAgB;IACzB,wBAAwB,EAAE,EAAE;IAC5B,aAAa,EAAE;QACb,iBAAU;QACV,gCAAiB;QACjB,uBAAa;QACb,6BAAgB;KACjB;CACF,CAAA"}
1
+ {"version":3,"file":"cli.module.js","sourceRoot":"","sources":["../../../src/cli.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6DAAsD;AACtD,4CAA6C;AAC7C,wDAAyD;AACzD,kDAAmD;AACnD,4DAA2D;AAE3D,wDAAsC;AACtC,sDAAoC;AACpC,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC;AAChC,kEAAgD;AAChD,kEAAgD;AAChD,0DAAwC;AACxC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,gDAA8B;AAE9B,yFAAyF;AACzF,qFAAqF;AACrF,wFAAwF;AACxF,2EAA2E;AAC3E,6BAAgC;AAAxB,gGAAA,SAAS,OAAA;AAEJ,QAAA,SAAS,GAAoB;IACxC,OAAO,EAAE,qCAAgB;IACzB,wBAAwB,EAAE,EAAE;IAC5B,aAAa,EAAE;QACb,iBAAU;QACV,gCAAiB;QACjB,uBAAa;QACb,6BAAgB;KACjB;CACF,CAAA"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.BuildAliasCommand = void 0;
22
+ const common_1 = require("@pristine-ts/common");
23
+ const tsyringe_1 = require("tsyringe");
24
+ const cli_module_keyname_1 = require("../cli.module.keyname");
25
+ const build_command_1 = require("./build.command");
26
+ /**
27
+ * Top-level alias for the framework-reserved `p:build` command. Injects the delegate
28
+ * directly via standard DI.
29
+ */
30
+ let BuildAliasCommand = class BuildAliasCommand {
31
+ constructor(delegate) {
32
+ this.delegate = delegate;
33
+ this.optionsType = null;
34
+ this.name = "build";
35
+ this.description = "Alias for p:build.";
36
+ }
37
+ run(args) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ return this.delegate.run(args);
40
+ });
41
+ }
42
+ };
43
+ exports.BuildAliasCommand = BuildAliasCommand;
44
+ exports.BuildAliasCommand = BuildAliasCommand = __decorate([
45
+ (0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
46
+ (0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
47
+ (0, tsyringe_1.injectable)(),
48
+ __metadata("design:paramtypes", [build_command_1.BuildCommand])
49
+ ], BuildAliasCommand);
50
+ //# sourceMappingURL=build-alias.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-alias.command.js","sourceRoot":"","sources":["../../../../src/commands/build-alias.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,gDAAgF;AAChF,uCAAoC;AAGpC,8DAAuD;AACvD,mDAA6C;AAE7C;;;GAGG;AAII,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAK5B,YAA6B,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;QAJnD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,OAAO,CAAC;QACf,gBAAW,GAAG,oBAAoB,CAAC;IAGnC,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;CACF,CAAA;AAXY,8CAAiB;4BAAjB,iBAAiB;IAH7B,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;qCAM4B,4BAAY;GALxC,iBAAiB,CAW7B"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.BuildCommand = void 0;
25
+ const fs_1 = __importDefault(require("fs"));
26
+ const path_1 = __importDefault(require("path"));
27
+ const common_1 = require("@pristine-ts/common");
28
+ const tsyringe_1 = require("tsyringe");
29
+ const console_manager_1 = require("../managers/console.manager");
30
+ const shell_manager_1 = require("../managers/shell.manager");
31
+ const exit_code_enum_1 = require("../enums/exit-code.enum");
32
+ const cli_module_keyname_1 = require("../cli.module.keyname");
33
+ const config_loader_1 = require("../config/config-loader");
34
+ const build_manifest_writer_1 = require("../bootstrap/build-manifest-writer");
35
+ /**
36
+ * Compiles the consumer's TypeScript project. Reads `build.{outDir,tsconfig,format,clean}`
37
+ * and `appModule.{sourcePath,outputPath}` from `pristine.config.ts`. After a successful
38
+ * compile, writes a build manifest at `<projectRoot>/.pristine/build-manifest.json` so
39
+ * downstream commands (`pristine start`, `pristine verify`) can detect when the build is
40
+ * stale (source edited, output deleted, paths reconfigured).
41
+ *
42
+ * The manifest is only written when both `appModule.sourcePath` and `appModule.outputPath`
43
+ * are configured. Without both, there's nothing to fingerprint and downstream commands fall
44
+ * through to the next layer of the loader cascade.
45
+ *
46
+ * Defaults (when not configured):
47
+ * - tsconfig: "tsconfig.json"
48
+ * - format: "esm" (single tsc invocation)
49
+ * - format: "cjs" (looks for tsconfig.cjs.json automatically)
50
+ * - format: "both" (runs both invocations sequentially)
51
+ * - outDir: not set; tsc writes to whatever the tsconfig declares
52
+ * - clean: false (set true to wipe outDir before building)
53
+ */
54
+ let BuildCommand = class BuildCommand {
55
+ constructor(consoleManager, shellManager, configLoader, buildManifestWriter) {
56
+ this.consoleManager = consoleManager;
57
+ this.shellManager = shellManager;
58
+ this.configLoader = configLoader;
59
+ this.buildManifestWriter = buildManifestWriter;
60
+ this.optionsType = null;
61
+ this.name = "p:build";
62
+ this.description = "Compile the project's TypeScript using tsc.";
63
+ this.defaultTsconfig = "tsconfig.json";
64
+ this.defaultFormat = "esm";
65
+ }
66
+ run(args) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ var _a, _b, _c, _d;
69
+ const projectRoot = process.cwd();
70
+ const resolvedConfig = yield this.configLoader.load({ startDir: projectRoot });
71
+ const buildConfig = (_a = resolvedConfig.config.build) !== null && _a !== void 0 ? _a : {};
72
+ const tsconfig = (_b = buildConfig.tsconfig) !== null && _b !== void 0 ? _b : this.defaultTsconfig;
73
+ const format = (_c = buildConfig.format) !== null && _c !== void 0 ? _c : this.defaultFormat;
74
+ const clean = (_d = buildConfig.clean) !== null && _d !== void 0 ? _d : false;
75
+ const outDir = buildConfig.outDir;
76
+ if (clean && outDir !== undefined) {
77
+ const absOut = path_1.default.resolve(projectRoot, outDir);
78
+ if (fs_1.default.existsSync(absOut)) {
79
+ this.consoleManager.writeInfo(`Cleaning ${outDir}/`);
80
+ fs_1.default.rmSync(absOut, { recursive: true, force: true });
81
+ }
82
+ }
83
+ const invocations = this.resolveTscInvocations(projectRoot, tsconfig, format);
84
+ if (invocations.length === 0) {
85
+ this.consoleManager.writeError(`No tsconfig found. Looked for: ${this.expectedTsconfigsForFormat(tsconfig, format).join(", ")}`);
86
+ return exit_code_enum_1.ExitCodeEnum.Error;
87
+ }
88
+ for (const tsconfigPath of invocations) {
89
+ const relTsconfig = path_1.default.relative(projectRoot, tsconfigPath);
90
+ this.consoleManager.writeInfo(`Compiling with ${relTsconfig}`);
91
+ try {
92
+ // The shell command runs in the current process's CWD, which is already projectRoot.
93
+ // Don't pass `directory` here — ShellManager's PathManager resolution would double
94
+ // the absolute path back onto itself producing /private/tmp/.../private/tmp/...
95
+ yield this.shellManager.execute(`npx tsc -p ${relTsconfig}`, {
96
+ streamStdout: true,
97
+ outputDuration: false,
98
+ outputTimeBeforeExecutingCommand: false,
99
+ });
100
+ }
101
+ catch (error) {
102
+ this.consoleManager.writeError(`tsc failed for ${relTsconfig}`);
103
+ return exit_code_enum_1.ExitCodeEnum.Error;
104
+ }
105
+ }
106
+ this.writeManifestIfConfigured(projectRoot, resolvedConfig.config.appModule);
107
+ this.consoleManager.writeSuccess(`Build complete (${invocations.length} tsconfig${invocations.length > 1 ? "s" : ""}).`);
108
+ return exit_code_enum_1.ExitCodeEnum.Success;
109
+ });
110
+ }
111
+ writeManifestIfConfigured(projectRoot, appModule) {
112
+ if ((appModule === null || appModule === void 0 ? void 0 : appModule.sourcePath) === undefined || (appModule === null || appModule === void 0 ? void 0 : appModule.outputPath) === undefined) {
113
+ // No `appModule` block in the config — nothing to fingerprint. The manifest layer
114
+ // is a no-op until the user runs `pristine init`.
115
+ return;
116
+ }
117
+ const absoluteSource = path_1.default.resolve(projectRoot, appModule.sourcePath);
118
+ const absoluteOutput = path_1.default.resolve(projectRoot, appModule.outputPath);
119
+ if (fs_1.default.existsSync(absoluteSource) === false) {
120
+ this.consoleManager.writeWarning(`Build succeeded but appModule.sourcePath '${appModule.sourcePath}' does not exist; skipping manifest.`);
121
+ return;
122
+ }
123
+ if (fs_1.default.existsSync(absoluteOutput) === false) {
124
+ this.consoleManager.writeWarning(`Build succeeded but appModule.outputPath '${appModule.outputPath}' was not produced; skipping manifest. ` +
125
+ `Check your tsconfig outDir / file layout.`);
126
+ return;
127
+ }
128
+ const manifest = this.buildManifestWriter.write(projectRoot, appModule.sourcePath, appModule.outputPath);
129
+ this.consoleManager.writeInfo(`Manifest written: .pristine/build-manifest.json (built at ${manifest.builtAt})`);
130
+ }
131
+ /**
132
+ * For `format: "both"`, we run two passes: the primary tsconfig (assumed ESM-ish), then
133
+ * the `.cjs.json` sibling. For `cjs`/`esm`, we run only the matching one. Returns the
134
+ * absolute tsconfig paths in the order they should run.
135
+ * @private
136
+ */
137
+ resolveTscInvocations(projectRoot, primary, format) {
138
+ const primaryAbs = path_1.default.resolve(projectRoot, primary);
139
+ if (format === "esm") {
140
+ return fs_1.default.existsSync(primaryAbs) ? [primaryAbs] : [];
141
+ }
142
+ const cjsAbs = primaryAbs.replace(/\.json$/, ".cjs.json");
143
+ if (format === "cjs") {
144
+ return fs_1.default.existsSync(cjsAbs) ? [cjsAbs] : (fs_1.default.existsSync(primaryAbs) ? [primaryAbs] : []);
145
+ }
146
+ // both
147
+ const result = [];
148
+ if (fs_1.default.existsSync(primaryAbs))
149
+ result.push(primaryAbs);
150
+ if (fs_1.default.existsSync(cjsAbs))
151
+ result.push(cjsAbs);
152
+ return result;
153
+ }
154
+ expectedTsconfigsForFormat(primary, format) {
155
+ if (format === "esm")
156
+ return [primary];
157
+ const cjs = primary.replace(/\.json$/, ".cjs.json");
158
+ if (format === "cjs")
159
+ return [cjs, primary];
160
+ return [primary, cjs];
161
+ }
162
+ };
163
+ exports.BuildCommand = BuildCommand;
164
+ exports.BuildCommand = BuildCommand = __decorate([
165
+ (0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
166
+ (0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
167
+ (0, tsyringe_1.injectable)(),
168
+ __metadata("design:paramtypes", [console_manager_1.ConsoleManager,
169
+ shell_manager_1.ShellManager,
170
+ config_loader_1.ConfigLoader,
171
+ build_manifest_writer_1.BuildManifestWriter])
172
+ ], BuildCommand);
173
+ //# sourceMappingURL=build.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../../../src/commands/build.command.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./build-alias.command"), exports);
18
+ __exportStar(require("./build.command"), exports);
19
+ __exportStar(require("./config-print.command"), exports);
20
+ __exportStar(require("./help-alias.command"), exports);
17
21
  __exportStar(require("./help.command"), exports);
22
+ __exportStar(require("./info-alias.command"), exports);
23
+ __exportStar(require("./info.command"), exports);
24
+ __exportStar(require("./init-alias.command"), exports);
25
+ __exportStar(require("./init.command"), exports);
26
+ __exportStar(require("./init.command-options"), exports);
27
+ __exportStar(require("./list-alias.command"), exports);
18
28
  __exportStar(require("./list.command"), exports);
29
+ __exportStar(require("./start-alias.command"), exports);
30
+ __exportStar(require("./start.command"), exports);
31
+ __exportStar(require("./start.command-options"), exports);
32
+ __exportStar(require("./verify-alias.command"), exports);
33
+ __exportStar(require("./verify.command"), exports);
19
34
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/commands/commands.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,iDAA+B"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/commands/commands.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,kDAAgC;AAChC,yDAAuC;AACvC,uDAAqC;AACrC,iDAA+B;AAC/B,uDAAqC;AACrC,iDAA+B;AAC/B,uDAAqC;AACrC,iDAA+B;AAC/B,yDAAuC;AACvC,uDAAqC;AACrC,iDAA+B;AAC/B,wDAAsC;AACtC,kDAAgC;AAChC,0DAAwC;AACxC,yDAAuC;AACvC,mDAAiC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ConfigPrintCommand = void 0;
25
+ const path_1 = __importDefault(require("path"));
26
+ const common_1 = require("@pristine-ts/common");
27
+ const tsyringe_1 = require("tsyringe");
28
+ const console_manager_1 = require("../managers/console.manager");
29
+ const exit_code_enum_1 = require("../enums/exit-code.enum");
30
+ const cli_module_keyname_1 = require("../cli.module.keyname");
31
+ const config_loader_1 = require("../config/config-loader");
32
+ /**
33
+ * Prints the resolved Pristine configuration plus where it was loaded from. Useful for
34
+ * debugging discovery — when `pristine` is doing something unexpected, the first question is
35
+ * always "which config file did it actually pick up?"
36
+ */
37
+ let ConfigPrintCommand = class ConfigPrintCommand {
38
+ constructor(consoleManager, configLoader) {
39
+ this.consoleManager = consoleManager;
40
+ this.configLoader = configLoader;
41
+ this.optionsType = null;
42
+ this.name = "p:config:print";
43
+ this.description = "Print the resolved Pristine configuration plus where it was loaded from.";
44
+ }
45
+ run(args) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const resolved = yield this.configLoader.load({ startDir: process.cwd() });
48
+ if (resolved.configFilePath !== undefined) {
49
+ this.consoleManager.writeInfo(`Config file: ${path_1.default.relative(process.cwd(), resolved.configFilePath)}`);
50
+ }
51
+ else {
52
+ this.consoleManager.writeInfo("No config file found — running with defaults.");
53
+ }
54
+ this.consoleManager.writeLine("");
55
+ this.consoleManager.writeLine(JSON.stringify(resolved.config, null, 2));
56
+ if (Object.keys(resolved.provenance).length > 0) {
57
+ this.consoleManager.writeLine("");
58
+ this.consoleManager.writeInfo("Provenance:");
59
+ for (const [field, source] of Object.entries(resolved.provenance)) {
60
+ this.consoleManager.writeLine(` ${field}: ${source}`);
61
+ }
62
+ }
63
+ return exit_code_enum_1.ExitCodeEnum.Success;
64
+ });
65
+ }
66
+ };
67
+ exports.ConfigPrintCommand = ConfigPrintCommand;
68
+ exports.ConfigPrintCommand = ConfigPrintCommand = __decorate([
69
+ (0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
70
+ (0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
71
+ (0, tsyringe_1.injectable)(),
72
+ __metadata("design:paramtypes", [console_manager_1.ConsoleManager,
73
+ config_loader_1.ConfigLoader])
74
+ ], ConfigPrintCommand);
75
+ //# sourceMappingURL=config-print.command.js.map