@ms-cloudpack/cli 0.45.2 → 0.46.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 (143) hide show
  1. package/lib/commands/bundle/execute.d.ts +4 -0
  2. package/lib/commands/bundle/execute.d.ts.map +1 -0
  3. package/lib/commands/bundle/execute.js +30 -0
  4. package/lib/commands/bundle/execute.js.map +1 -0
  5. package/lib/commands/bundle/index.d.ts.map +1 -1
  6. package/lib/commands/bundle/index.js +4 -2
  7. package/lib/commands/bundle/index.js.map +1 -1
  8. package/lib/commands/init/bundleAndGetImports.d.ts +2 -2
  9. package/lib/commands/init/bundleAndGetImports.d.ts.map +1 -1
  10. package/lib/commands/init/bundleAndGetImports.js +3 -1
  11. package/lib/commands/init/bundleAndGetImports.js.map +1 -1
  12. package/lib/commands/init/execute.d.ts +5 -0
  13. package/lib/commands/init/execute.d.ts.map +1 -0
  14. package/lib/commands/init/execute.js +14 -0
  15. package/lib/commands/init/execute.js.map +1 -0
  16. package/lib/commands/init/index.d.ts.map +1 -1
  17. package/lib/commands/init/index.js +4 -2
  18. package/lib/commands/init/index.js.map +1 -1
  19. package/lib/commands/init/init.d.ts +12 -5
  20. package/lib/commands/init/init.d.ts.map +1 -1
  21. package/lib/commands/init/init.js +81 -101
  22. package/lib/commands/init/init.js.map +1 -1
  23. package/lib/commands/start/appServer/getDefaultHtmlResponse.d.ts +1 -2
  24. package/lib/commands/start/appServer/getDefaultHtmlResponse.d.ts.map +1 -1
  25. package/lib/commands/start/appServer/getDefaultHtmlResponse.js.map +1 -1
  26. package/lib/commands/start/appServer/getHtmlResponse.d.ts +1 -2
  27. package/lib/commands/start/appServer/getHtmlResponse.d.ts.map +1 -1
  28. package/lib/commands/start/appServer/getHtmlResponse.js.map +1 -1
  29. package/lib/commands/start/index.d.ts.map +1 -1
  30. package/lib/commands/start/index.js +4 -2
  31. package/lib/commands/start/index.js.map +1 -1
  32. package/lib/commands/start/start.d.ts +2 -2
  33. package/lib/commands/start/start.d.ts.map +1 -1
  34. package/lib/commands/start/start.js +92 -115
  35. package/lib/commands/start/start.js.map +1 -1
  36. package/lib/commands/start/startBundleServer.js +4 -4
  37. package/lib/commands/start/startBundleServer.js.map +1 -1
  38. package/lib/commands/sync/index.d.ts.map +1 -1
  39. package/lib/commands/sync/index.js +4 -5
  40. package/lib/commands/sync/index.js.map +1 -1
  41. package/lib/commands/sync/sync.d.ts +2 -2
  42. package/lib/commands/sync/sync.d.ts.map +1 -1
  43. package/lib/commands/sync/sync.js +26 -40
  44. package/lib/commands/sync/sync.js.map +1 -1
  45. package/lib/common/AutoDisposableList.d.ts +7 -0
  46. package/lib/common/AutoDisposableList.d.ts.map +1 -0
  47. package/lib/common/AutoDisposableList.js +17 -0
  48. package/lib/common/AutoDisposableList.js.map +1 -0
  49. package/lib/common/createCommandActionFunction.d.ts +14 -0
  50. package/lib/common/createCommandActionFunction.d.ts.map +1 -0
  51. package/lib/common/createCommandActionFunction.js +66 -0
  52. package/lib/common/createCommandActionFunction.js.map +1 -0
  53. package/lib/common/createExitFunction.d.ts +12 -0
  54. package/lib/common/createExitFunction.d.ts.map +1 -0
  55. package/lib/common/createExitFunction.js +17 -0
  56. package/lib/common/createExitFunction.js.map +1 -0
  57. package/lib/common/createInitializeFunction.d.ts +10 -0
  58. package/lib/common/createInitializeFunction.d.ts.map +1 -0
  59. package/lib/common/createInitializeFunction.js +21 -0
  60. package/lib/common/createInitializeFunction.js.map +1 -0
  61. package/lib/index.d.ts +1 -1
  62. package/lib/index.d.ts.map +1 -1
  63. package/lib/index.js +6 -5
  64. package/lib/index.js.map +1 -1
  65. package/lib/initTelemetry.d.ts +1 -9
  66. package/lib/initTelemetry.d.ts.map +1 -1
  67. package/lib/initTelemetry.js +4 -18
  68. package/lib/initTelemetry.js.map +1 -1
  69. package/lib/performance/markers.d.ts +0 -4
  70. package/lib/performance/markers.d.ts.map +1 -1
  71. package/lib/performance/markers.js +0 -4
  72. package/lib/performance/markers.js.map +1 -1
  73. package/lib/setupReporting.d.ts +7 -2
  74. package/lib/setupReporting.d.ts.map +1 -1
  75. package/lib/setupReporting.js +3 -2
  76. package/lib/setupReporting.js.map +1 -1
  77. package/lib/tasks/bundleTaskWorker.d.ts.map +1 -1
  78. package/lib/tasks/bundleTaskWorker.js +6 -2
  79. package/lib/tasks/bundleTaskWorker.js.map +1 -1
  80. package/lib/types/AutoDispose.d.ts +3 -0
  81. package/lib/types/AutoDispose.d.ts.map +1 -0
  82. package/lib/types/AutoDispose.js +2 -0
  83. package/lib/types/AutoDispose.js.map +1 -0
  84. package/lib/types/CommandAction.d.ts +21 -0
  85. package/lib/types/CommandAction.d.ts.map +1 -0
  86. package/lib/types/CommandAction.js +2 -0
  87. package/lib/types/CommandAction.js.map +1 -0
  88. package/lib/types/CommandContext.d.ts +10 -0
  89. package/lib/types/CommandContext.d.ts.map +1 -0
  90. package/lib/types/CommandContext.js +2 -0
  91. package/lib/types/CommandContext.js.map +1 -0
  92. package/lib/types/CommandFunction.d.ts +2 -2
  93. package/lib/types/CommandFunction.d.ts.map +1 -1
  94. package/lib/types/CommandFunction.js.map +1 -1
  95. package/lib/types/CreateCommandActionOptions.d.ts +7 -0
  96. package/lib/types/CreateCommandActionOptions.d.ts.map +1 -0
  97. package/lib/types/CreateCommandActionOptions.js +2 -0
  98. package/lib/types/CreateCommandActionOptions.js.map +1 -0
  99. package/lib/types/Disposable.d.ts +4 -0
  100. package/lib/types/Disposable.d.ts.map +1 -0
  101. package/lib/types/Disposable.js +2 -0
  102. package/lib/types/Disposable.js.map +1 -0
  103. package/package.json +8 -11
  104. package/lib/commands/bundle/bundle.d.ts +0 -4
  105. package/lib/commands/bundle/bundle.d.ts.map +0 -1
  106. package/lib/commands/bundle/bundle.js +0 -28
  107. package/lib/commands/bundle/bundle.js.map +0 -1
  108. package/lib/common/createPartialApiContext.d.ts +0 -4
  109. package/lib/common/createPartialApiContext.d.ts.map +0 -1
  110. package/lib/common/createPartialApiContext.js +0 -102
  111. package/lib/common/createPartialApiContext.js.map +0 -1
  112. package/lib/common/createSession.d.ts +0 -13
  113. package/lib/common/createSession.d.ts.map +0 -1
  114. package/lib/common/createSession.js +0 -62
  115. package/lib/common/createSession.js.map +0 -1
  116. package/lib/tasks/resolveDependenciesTask.d.ts +0 -16
  117. package/lib/tasks/resolveDependenciesTask.d.ts.map +0 -1
  118. package/lib/tasks/resolveDependenciesTask.js +0 -69
  119. package/lib/tasks/resolveDependenciesTask.js.map +0 -1
  120. package/lib/types/CreateHtmlFunction.d.ts +0 -7
  121. package/lib/types/CreateHtmlFunction.d.ts.map +0 -1
  122. package/lib/types/CreateHtmlFunction.js +0 -2
  123. package/lib/types/CreateHtmlFunction.js.map +0 -1
  124. package/lib/types/CreateHtmlOptions.d.ts +0 -21
  125. package/lib/types/CreateHtmlOptions.d.ts.map +0 -1
  126. package/lib/types/CreateHtmlOptions.js +0 -2
  127. package/lib/types/CreateHtmlOptions.js.map +0 -1
  128. package/lib/types/CreateHtmlResult.d.ts +0 -15
  129. package/lib/types/CreateHtmlResult.d.ts.map +0 -1
  130. package/lib/types/CreateHtmlResult.js +0 -2
  131. package/lib/types/CreateHtmlResult.js.map +0 -1
  132. package/lib/types/CreateHtmlScript.d.ts +0 -8
  133. package/lib/types/CreateHtmlScript.d.ts.map +0 -1
  134. package/lib/types/CreateHtmlScript.js +0 -2
  135. package/lib/types/CreateHtmlScript.js.map +0 -1
  136. package/lib/types/TaskContext.d.ts +0 -8
  137. package/lib/types/TaskContext.d.ts.map +0 -1
  138. package/lib/types/TaskContext.js +0 -2
  139. package/lib/types/TaskContext.js.map +0 -1
  140. package/lib/types/Watcher.d.ts +0 -5
  141. package/lib/types/Watcher.d.ts.map +0 -1
  142. package/lib/types/Watcher.js +0 -2
  143. package/lib/types/Watcher.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ import type { CommandAction } from '../../types/CommandAction.js';
2
+ import type { BundleOptions } from './types/BundleOptions.js';
3
+ export declare const execute: CommandAction<BundleOptions>;
4
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAK9D,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,aAAa,CAuChD,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { createPartialApiContext, ensurePackageBundled } from '@ms-cloudpack/api-server/apis';
2
+ import path from 'path';
3
+ export const execute = async ({ options, cwd, reporter, initialize, exit, autoDispose, }) => {
4
+ const { config, telemetryClient } = await initialize(cwd);
5
+ const packagePath = cwd;
6
+ const { bundler: bundlerType, outdir = 'dist/browser-esm', disableSourceMaps } = options;
7
+ const [ctx] = autoDispose(await createPartialApiContext({
8
+ appPath: packagePath,
9
+ config,
10
+ reporter,
11
+ telemetryClient,
12
+ items: ['packages', 'watcher', 'session', 'taskRunner', 'bus'],
13
+ }));
14
+ const definition = await ctx.packages.get(packagePath);
15
+ const { result } = await ensurePackageBundled({
16
+ input: {
17
+ name: definition?.name ?? '<unknown>',
18
+ version: definition?.version ?? '0.0.0',
19
+ outputPath: path.resolve(packagePath, outdir),
20
+ bundlerType,
21
+ disableSourceMaps,
22
+ },
23
+ ctx,
24
+ });
25
+ await exit({
26
+ exitCode: result?.errors?.length === 0 ? 0 : 1,
27
+ });
28
+ };
29
+ // cspell:ignore outdir
30
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/commands/bundle/execute.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,OAAO,GAAiC,KAAK,EAAE,EAC1D,OAAO,EACP,GAAG,EACH,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,GAAG,CAAC;IAExB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAEzF,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CACvB,MAAM,uBAAuB,CAAC;QAC5B,OAAO,EAAE,WAAW;QACpB,MAAM;QACN,QAAQ;QACR,eAAe;QACf,KAAK,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;KAC/D,CAAC,CACH,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEvD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC;QAC5C,KAAK,EAAE;YACL,IAAI,EAAE,UAAU,EAAE,IAAI,IAAI,WAAW;YACrC,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,OAAO;YACvC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;YAC7C,WAAW;YACX,iBAAiB;SAClB;QACD,GAAG;KACJ,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC;QACT,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,uBAAuB","sourcesContent":["import type { CommandAction } from '../../types/CommandAction.js';\nimport type { BundleOptions } from './types/BundleOptions.js';\n\nimport { createPartialApiContext, ensurePackageBundled } from '@ms-cloudpack/api-server/apis';\nimport path from 'path';\n\nexport const execute: CommandAction<BundleOptions> = async ({\n options,\n cwd,\n reporter,\n initialize,\n exit,\n autoDispose,\n}) => {\n const { config, telemetryClient } = await initialize(cwd);\n const packagePath = cwd;\n\n const { bundler: bundlerType, outdir = 'dist/browser-esm', disableSourceMaps } = options;\n\n const [ctx] = autoDispose(\n await createPartialApiContext({\n appPath: packagePath,\n config,\n reporter,\n telemetryClient,\n items: ['packages', 'watcher', 'session', 'taskRunner', 'bus'],\n }),\n );\n\n const definition = await ctx.packages.get(packagePath);\n\n const { result } = await ensurePackageBundled({\n input: {\n name: definition?.name ?? '<unknown>',\n version: definition?.version ?? '0.0.0',\n outputPath: path.resolve(packagePath, outdir),\n bundlerType,\n disableSourceMaps,\n },\n ctx,\n });\n\n await exit({\n exitCode: result?.errors?.length === 0 ? 0 : 1,\n });\n};\n\n// cspell:ignore outdir\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,eAAO,MAAM,IAAI,EAAE,eAOlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,eAAO,MAAM,IAAI,EAAE,eAWlB,CAAC"}
@@ -1,9 +1,11 @@
1
- export const init = (command, context) => {
1
+ export const init = (command, createAction) => {
2
2
  command
3
3
  .command('bundle')
4
4
  .option('--bundler <name>', 'Forces use of a specific bundler.')
5
5
  .option('--outdir <path>', 'Path to drop the bundle output, relative to current path.')
6
6
  .description('Bundles a package.')
7
- .action(async (bundleOptions) => (await import('./bundle.js')).bundle(bundleOptions, context));
7
+ .action(createAction(() => ({
8
+ execute: import('./execute.js'),
9
+ })));
8
10
  };
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,IAAI,GAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACxD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;SAC/D,MAAM,CAAC,iBAAiB,EAAE,2DAA2D,CAAC;SACtF,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,aAA4B,EAAE,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AAClH,CAAC,CAAC","sourcesContent":["import type { BundleOptions } from './types/BundleOptions.js';\nimport type { CommandFunction } from '../../types/CommandFunction.js';\n\nexport const init: CommandFunction = (command, context) => {\n command\n .command('bundle')\n .option('--bundler <name>', 'Forces use of a specific bundler.')\n .option('--outdir <path>', 'Path to drop the bundle output, relative to current path.')\n .description('Bundles a package.')\n .action(async (bundleOptions: BundleOptions) => (await import('./bundle.js')).bundle(bundleOptions, context));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;IAC7D,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;SAC/D,MAAM,CAAC,iBAAiB,EAAE,2DAA2D,CAAC;SACtF,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CACL,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC;KAChC,CAAC,CAAC,CACJ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type { CommandFunction } from '../../types/CommandFunction.js';\n\nexport const init: CommandFunction = (command, createAction) => {\n command\n .command('bundle')\n .option('--bundler <name>', 'Forces use of a specific bundler.')\n .option('--outdir <path>', 'Path to drop the bundle output, relative to current path.')\n .description('Bundles a package.')\n .action(\n createAction(() => ({\n execute: import('./execute.js'),\n })),\n );\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { PackageJson, PackageDefinitionsCache, BundleMessage } from '@ms-cloudpack/bundler-types';
2
2
  import { type TaskReporter } from '@ms-cloudpack/task-reporter';
3
3
  import type { CloudpackConfig } from '@ms-cloudpack/config';
4
- import { type EnsurePackageBundledContext } from '@ms-cloudpack/api-server/apis';
4
+ import { ensurePackageBundled } from '@ms-cloudpack/api-server/apis';
5
5
  /**
6
6
  * Bundle the package and return the imports it depends on.
7
7
  */
@@ -11,7 +11,7 @@ export declare function bundleAndGetImports(options: {
11
11
  reporter: TaskReporter;
12
12
  packagePath: string;
13
13
  definition: PackageJson;
14
- ctx: EnsurePackageBundledContext;
14
+ ctx: Parameters<typeof ensurePackageBundled>[0]['ctx'];
15
15
  }): Promise<{
16
16
  warnings: BundleMessage[];
17
17
  errors: BundleMessage[];
@@ -1 +1 @@
1
- {"version":3,"file":"bundleAndGetImports.d.ts","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAwB,KAAK,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAEvG;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;IACxB,GAAG,EAAE,2BAA2B,CAAC;CAClC,GAAG,OAAO,CAAC;IACV,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8DAA8D;IAC9D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACnC,CAAC,CA6DD"}
1
+ {"version":3,"file":"bundleAndGetImports.d.ts","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;IACxB,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACxD,GAAG,OAAO,CAAC;IACV,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8DAA8D;IAC9D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACnC,CAAC,CA+DD"}
@@ -8,7 +8,9 @@ import { ensurePackageBundled } from '@ms-cloudpack/api-server/apis';
8
8
  */
9
9
  export async function bundleAndGetImports(options) {
10
10
  const { packagePath, definition, packages, reporter, ctx } = options;
11
- const { outputLocation, isExternal } = await getBundleDetails({ packagePath }, { packages });
11
+ const { session } = ctx;
12
+ const { resolveMap } = session;
13
+ const { outputLocation, isExternal } = await getBundleDetails({ packagePath }, { packages, resolveMap });
12
14
  const outputPath = outputLocation.path;
13
15
  if (!isExternal && !definition.exports) {
14
16
  console.debug(`${path.join(packagePath, 'package.json')} does not have an "exports" field.`);
@@ -1 +1 @@
1
- {"version":3,"file":"bundleAndGetImports.js","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAqB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAoC,MAAM,+BAA+B,CAAC;AAEvG;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAOzC;IAMC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACrE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;IAEvC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,oCAAoC,CAAC,CAAC;KAC9F;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAErC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,eAAe,WAAW,oCAAoC,CAAC,CAAC;KACjF;IAED,qBAAqB;IACrB,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,GAAG,EAAuB;YACvC,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,oDAAoD,IAAI,CAAC,IAAI,CACjE,WAAW,EACX,cAAc,CACf,oFAAoF;iBACtF;aACF;SACF,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC;QAC5C,KAAK,EAAE;YACL,IAAI;YACJ,OAAO;SACR;QACD,GAAG;KACJ,CAAC,CAAC;IAEH,yCAAyC;IACzC,IAAI,OAA6C,CAAC;IAElD,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7E,OAAO,GAAG,IAAI,GAAG,CACf,MAAM,CAAC,OAAO,CACZ,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAC/G,CACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;QAChC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;QAC5B,OAAO,EAAE,OAAO,IAAI,IAAI,GAAG,EAAuB;KACnD,CAAC;AACJ,CAAC","sourcesContent":["import path from 'path';\nimport { getEntriesMapFromPackage } from '@ms-cloudpack/bundler';\nimport { getBundleDetails, findImports } from '@ms-cloudpack/api-server';\nimport type { PackageJson, PackageDefinitionsCache, BundleMessage } from '@ms-cloudpack/bundler-types';\nimport { type TaskReporter, formatPackageName } from '@ms-cloudpack/task-reporter';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\nimport { ensurePackageBundled, type EnsurePackageBundledContext } from '@ms-cloudpack/api-server/apis';\n\n/**\n * Bundle the package and return the imports it depends on.\n */\nexport async function bundleAndGetImports(options: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n reporter: TaskReporter;\n packagePath: string;\n definition: PackageJson;\n ctx: EnsurePackageBundledContext;\n}): Promise<{\n warnings: BundleMessage[];\n errors: BundleMessage[];\n /** Map from package name to set of required relative paths */\n imports: Map<string, Set<string>>;\n}> {\n const { packagePath, definition, packages, reporter, ctx } = options;\n const { outputLocation, isExternal } = await getBundleDetails({ packagePath }, { packages });\n const outputPath = outputLocation.path;\n\n if (!isExternal && !definition.exports) {\n console.debug(`${path.join(packagePath, 'package.json')} does not have an \"exports\" field.`);\n }\n\n const { name, version } = definition;\n\n if (!name || !version) {\n throw new Error(`Package at \"${packagePath}\" does not have a name or version.`);\n }\n\n // Determine entries.\n const entriesMap = await getEntriesMapFromPackage({ inputPath: packagePath }, { packages });\n\n if (!Object.keys(entriesMap).length) {\n return {\n imports: new Map<string, Set<string>>(),\n errors: [],\n warnings: [\n {\n text: `No valid entry points were found when evaluating ${path.join(\n packagePath,\n 'package.json',\n )}. Check that has an exports, main, or module entry and the referenced files exist.`,\n },\n ],\n };\n }\n\n const { result } = await ensurePackageBundled({\n input: {\n name,\n version,\n },\n ctx,\n });\n\n // For each outputFile, find all imports.\n let imports: Map<string, Set<string>> | undefined;\n\n await reporter.runTask(`Evaluate ${formatPackageName(definition)}`, async () => {\n imports = new Map(\n Object.entries(\n (await findImports(result?.outputFiles?.map((file) => path.resolve(outputPath, file.outputPath)) || [])) || {},\n ),\n );\n\n return {\n status: 'complete',\n };\n });\n\n return {\n warnings: result?.warnings || [],\n errors: result?.errors || [],\n imports: imports || new Map<string, Set<string>>(),\n };\n}\n"]}
1
+ {"version":3,"file":"bundleAndGetImports.js","sourceRoot":"","sources":["../../../src/commands/init/bundleAndGetImports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAqB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAOzC;IAMC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACzG,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;IAEvC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,oCAAoC,CAAC,CAAC;KAC9F;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAErC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,eAAe,WAAW,oCAAoC,CAAC,CAAC;KACjF;IAED,qBAAqB;IACrB,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,GAAG,EAAuB;YACvC,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,oDAAoD,IAAI,CAAC,IAAI,CACjE,WAAW,EACX,cAAc,CACf,oFAAoF;iBACtF;aACF;SACF,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC;QAC5C,KAAK,EAAE;YACL,IAAI;YACJ,OAAO;SACR;QACD,GAAG;KACJ,CAAC,CAAC;IAEH,yCAAyC;IACzC,IAAI,OAA6C,CAAC;IAElD,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7E,OAAO,GAAG,IAAI,GAAG,CACf,MAAM,CAAC,OAAO,CACZ,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAC/G,CACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;QAChC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;QAC5B,OAAO,EAAE,OAAO,IAAI,IAAI,GAAG,EAAuB;KACnD,CAAC;AACJ,CAAC","sourcesContent":["import path from 'path';\nimport { getEntriesMapFromPackage } from '@ms-cloudpack/bundler';\nimport { getBundleDetails, findImports } from '@ms-cloudpack/api-server';\nimport type { PackageJson, PackageDefinitionsCache, BundleMessage } from '@ms-cloudpack/bundler-types';\nimport { type TaskReporter, formatPackageName } from '@ms-cloudpack/task-reporter';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\nimport { ensurePackageBundled } from '@ms-cloudpack/api-server/apis';\n\n/**\n * Bundle the package and return the imports it depends on.\n */\nexport async function bundleAndGetImports(options: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n reporter: TaskReporter;\n packagePath: string;\n definition: PackageJson;\n ctx: Parameters<typeof ensurePackageBundled>[0]['ctx'];\n}): Promise<{\n warnings: BundleMessage[];\n errors: BundleMessage[];\n /** Map from package name to set of required relative paths */\n imports: Map<string, Set<string>>;\n}> {\n const { packagePath, definition, packages, reporter, ctx } = options;\n const { session } = ctx;\n const { resolveMap } = session;\n const { outputLocation, isExternal } = await getBundleDetails({ packagePath }, { packages, resolveMap });\n const outputPath = outputLocation.path;\n\n if (!isExternal && !definition.exports) {\n console.debug(`${path.join(packagePath, 'package.json')} does not have an \"exports\" field.`);\n }\n\n const { name, version } = definition;\n\n if (!name || !version) {\n throw new Error(`Package at \"${packagePath}\" does not have a name or version.`);\n }\n\n // Determine entries.\n const entriesMap = await getEntriesMapFromPackage({ inputPath: packagePath }, { packages });\n\n if (!Object.keys(entriesMap).length) {\n return {\n imports: new Map<string, Set<string>>(),\n errors: [],\n warnings: [\n {\n text: `No valid entry points were found when evaluating ${path.join(\n packagePath,\n 'package.json',\n )}. Check that has an exports, main, or module entry and the referenced files exist.`,\n },\n ],\n };\n }\n\n const { result } = await ensurePackageBundled({\n input: {\n name,\n version,\n },\n ctx,\n });\n\n // For each outputFile, find all imports.\n let imports: Map<string, Set<string>> | undefined;\n\n await reporter.runTask(`Evaluate ${formatPackageName(definition)}`, async () => {\n imports = new Map(\n Object.entries(\n (await findImports(result?.outputFiles?.map((file) => path.resolve(outputPath, file.outputPath)) || [])) || {},\n ),\n );\n\n return {\n status: 'complete',\n };\n });\n\n return {\n warnings: result?.warnings || [],\n errors: result?.errors || [],\n imports: imports || new Map<string, Set<string>>(),\n };\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import type { InitOptions } from './types/InitOptions.js';
2
+ import type { CommandAction } from '../../types/CommandAction.js';
3
+ /** Given the path, updates the Cloudpack config with overrides and project settings. */
4
+ export declare const execute: CommandAction<InitOptions>;
5
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/init/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAIlE,wFAAwF;AACxF,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,WAAW,CAmB9C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { init } from './init.js';
2
+ import { formatInitSummary } from './formatInitSummary.js';
3
+ /** Given the path, updates the Cloudpack config with overrides and project settings. */
4
+ export const execute = async ({ options, cwd, initialize, reporter, exit, autoDispose, }) => {
5
+ const { config, telemetryClient } = await initialize(cwd);
6
+ const summary = await init({ options, appPath: cwd, config, reporter, autoDispose, telemetryClient });
7
+ const message = formatInitSummary(summary, options);
8
+ const hasErrors = summary.totalErrors > 0;
9
+ await exit({
10
+ exitCode: hasErrors ? 1 : 0,
11
+ message,
12
+ });
13
+ };
14
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/commands/init/execute.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAA+B,KAAK,EAAE,EACxD,OAAO,EACP,GAAG,EACH,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IAEtG,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;IAE1C,MAAM,IAAI,CAAC;QACT,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { InitOptions } from './types/InitOptions.js';\nimport type { CommandAction } from '../../types/CommandAction.js';\nimport { init } from './init.js';\nimport { formatInitSummary } from './formatInitSummary.js';\n\n/** Given the path, updates the Cloudpack config with overrides and project settings. */\nexport const execute: CommandAction<InitOptions> = async ({\n options,\n cwd,\n initialize,\n reporter,\n exit,\n autoDispose,\n}) => {\n const { config, telemetryClient } = await initialize(cwd);\n\n const summary = await init({ options, appPath: cwd, config, reporter, autoDispose, telemetryClient });\n\n const message = formatInitSummary(summary, options);\n const hasErrors = summary.totalErrors > 0;\n\n await exit({\n exitCode: hasErrors ? 1 : 0,\n message,\n });\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,+BAA+B;AAC/B,eAAO,MAAM,IAAI,EAAE,eASlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,+BAA+B;AAC/B,eAAO,MAAM,IAAI,EAAE,eAalB,CAAC"}
@@ -1,10 +1,12 @@
1
1
  /** Defines the "init" verb. */
2
- export const init = (command, context) => {
2
+ export const init = (command, createAction) => {
3
3
  command
4
4
  .command('init')
5
5
  .description('Initializes a given app project and defines the necessary configuration overrides to make an existing app compatible with Cloudpack.')
6
6
  .option('--reset', 'Ignores existing overrides when determining all entries.')
7
7
  .option('--check', 'Fails if any package exports are missing.')
8
- .action(async (options) => (await import('./init.js')).init(options, context));
8
+ .action(createAction(() => ({
9
+ execute: import('./execute.js'),
10
+ })));
9
11
  };
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAGA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACxD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sIAAsI,CACvI;SACA,MAAM,CAAC,SAAS,EAAE,0DAA0D,CAAC;SAC7E,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC","sourcesContent":["import type { InitOptions } from './types/InitOptions.js';\nimport type { CommandFunction } from '../../types/CommandFunction.js';\n\n/** Defines the \"init\" verb. */\nexport const init: CommandFunction = (command, context) => {\n command\n .command('init')\n .description(\n 'Initializes a given app project and defines the necessary configuration overrides to make an existing app compatible with Cloudpack.',\n )\n .option('--reset', 'Ignores existing overrides when determining all entries.')\n .option('--check', 'Fails if any package exports are missing.')\n .action(async (options: InitOptions) => (await import('./init.js')).init(options, context));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAEA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;IAC7D,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sIAAsI,CACvI;SACA,MAAM,CAAC,SAAS,EAAE,0DAA0D,CAAC;SAC7E,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;SAC9D,MAAM,CACL,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC;KAChC,CAAC,CAAC,CACJ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type { CommandFunction } from '../../types/CommandFunction.js';\n\n/** Defines the \"init\" verb. */\nexport const init: CommandFunction = (command, createAction) => {\n command\n .command('init')\n .description(\n 'Initializes a given app project and defines the necessary configuration overrides to make an existing app compatible with Cloudpack.',\n )\n .option('--reset', 'Ignores existing overrides when determining all entries.')\n .option('--check', 'Fails if any package exports are missing.')\n .action(\n createAction(() => ({\n execute: import('./execute.js'),\n })),\n );\n};\n"]}
@@ -1,11 +1,18 @@
1
- import type { TaskContext } from '../../types/TaskContext.js';
2
1
  import type { InitOptions } from './types/InitOptions.js';
3
2
  import type { InitSummary } from './types/InitSummary.js';
4
- /** Given the path, updates the Cloudpack config with overrides and project settings. */
5
- export declare function init(options: InitOptions, context: TaskContext): Promise<void>;
3
+ import { type CloudpackConfig } from '@ms-cloudpack/config';
4
+ import type { TaskReporter } from '@ms-cloudpack/task-reporter';
5
+ import type { AutoDispose } from '../../types/AutoDispose.js';
6
+ import type { TelemetryClient } from '@ms-cloudpack/telemetry';
6
7
  /**
7
8
  * Actual init operation (minus the completion logging).
8
- * Exported for testing only.
9
9
  */
10
- export declare function initInternal(options: InitOptions, context: TaskContext): Promise<InitSummary>;
10
+ export declare function init(parameters: {
11
+ options: InitOptions;
12
+ appPath: string;
13
+ config: CloudpackConfig;
14
+ autoDispose: AutoDispose;
15
+ reporter: TaskReporter;
16
+ telemetryClient: TelemetryClient;
17
+ }): Promise<InitSummary>;
11
18
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAW1D,wFAAwF;AACxF,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+GnG"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIlF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;GAEG;AACH,wBAAsB,IAAI,CAAC,UAAU,EAAE;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;CAClC,GAAG,OAAO,CAAC,WAAW,CAAC,CAoHvB"}
@@ -1,122 +1,102 @@
1
- import { createPartialApiContext } from '../../common/createPartialApiContext.js';
1
+ import { createPartialApiContext } from '@ms-cloudpack/api-server/apis';
2
2
  import { writeGeneratedConfig } from '@ms-cloudpack/config';
3
- import { rootSpan, stopTelemetry } from '../../initTelemetry.js';
4
- import { setupReporting } from '../../setupReporting.js';
5
3
  import { bundleAndGetImports } from './bundleAndGetImports.js';
6
4
  import { InitSummaryData } from './InitSummaryData.js';
7
5
  import { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';
8
- import { formatInitSummary } from './formatInitSummary.js';
9
- /** Given the path, updates the Cloudpack config with overrides and project settings. */
10
- export async function init(options, context) {
11
- const { reporter } = context;
12
- let hasErrors = false;
13
- await setupReporting(context);
14
- try {
15
- const summary = await initInternal(options, context);
16
- reporter.complete(formatInitSummary(summary, options));
17
- hasErrors = summary.totalErrors > 0;
18
- }
19
- catch (error) {
20
- reporter.complete(`Unexpected error: ${error.stack || error}`);
21
- hasErrors = true;
22
- }
23
- await stopTelemetry();
24
- process.exit(hasErrors ? 1 : 0);
25
- }
26
6
  /**
27
7
  * Actual init operation (minus the completion logging).
28
- * Exported for testing only.
29
8
  */
30
- export async function initInternal(options, context) {
31
- const { appPath, reporter } = context;
9
+ export async function init(parameters) {
10
+ const { options, appPath, config, reporter, autoDispose, telemetryClient } = parameters;
32
11
  const summaryData = new InitSummaryData();
33
- const ctx = await createPartialApiContext(context, ['bus', 'taskRunner', 'watcher', 'packages', 'session']);
12
+ const [ctx] = autoDispose(await createPartialApiContext({
13
+ appPath,
14
+ config,
15
+ reporter,
16
+ telemetryClient,
17
+ items: ['bus', 'taskRunner', 'watcher', 'packages', 'session'],
18
+ }));
34
19
  const { packages, session } = ctx;
35
- const { resolveMap, config } = session;
36
- try {
37
- if (options.check && options.reset) {
38
- throw Error('Cannot use --check and --reset together.');
20
+ const { resolveMap } = session;
21
+ if (options.check && options.reset) {
22
+ throw Error('Cannot use --check and --reset together.');
23
+ }
24
+ // If --reset is specified we ignore generated config.
25
+ if (options.reset) {
26
+ config.generated = {};
27
+ }
28
+ const generatedConfig = config.generated;
29
+ generatedConfig.packageSettings ??= [];
30
+ const packagePathsToEvaluate = new Set([appPath]);
31
+ const evaluatedPackages = new Set();
32
+ let totalChangeCount = 0;
33
+ while (packagePathsToEvaluate.size) {
34
+ const packagePath = packagePathsToEvaluate.values().next().value;
35
+ packagePathsToEvaluate.delete(packagePath);
36
+ // Skip already-visited packages.
37
+ if (!packagePath || evaluatedPackages.has(packagePath)) {
38
+ continue;
39
39
  }
40
- // If --reset is specified we ignore generated config.
41
- if (options.reset) {
42
- config.generated = {};
40
+ evaluatedPackages.add(packagePath);
41
+ const definition = await packages.get(packagePath, { refresh: true });
42
+ if (!definition) {
43
+ // This is very weird and probably won't happen.
44
+ console.error(`Skipping ${packagePath} evaluation because the package.json was not found or not readable.`);
45
+ continue;
43
46
  }
44
- const generatedConfig = config.generated;
45
- generatedConfig.packageSettings ??= [];
46
- const packagePathsToEvaluate = new Set([appPath]);
47
- const evaluatedPackages = new Set();
48
- let totalChangeCount = 0;
49
- while (packagePathsToEvaluate.size) {
50
- const packagePath = packagePathsToEvaluate.values().next().value;
51
- packagePathsToEvaluate.delete(packagePath);
52
- // Skip already-visited packages.
53
- if (!packagePath || evaluatedPackages.has(packagePath)) {
54
- continue;
55
- }
56
- evaluatedPackages.add(packagePath);
57
- const definition = await packages.get(packagePath, { refresh: true });
58
- if (!definition) {
59
- // This is very weird and probably won't happen.
60
- console.error(`Skipping ${packagePath} evaluation because the package.json was not found or not readable.`);
61
- continue;
62
- }
63
- // Bundle the package and find the imports it depends on.
64
- const { errors, warnings, imports } = await bundleAndGetImports({
65
- packagePath,
47
+ // Bundle the package and find the imports it depends on.
48
+ const { errors, warnings, imports } = await bundleAndGetImports({
49
+ packagePath,
50
+ definition,
51
+ packages,
52
+ reporter,
53
+ config,
54
+ ctx,
55
+ });
56
+ // Record the results for the summary.
57
+ const resultIdentifier = {
58
+ name: definition.name || '',
59
+ version: definition.version || '',
60
+ path: packagePath,
61
+ };
62
+ summaryData.recordResult({
63
+ ...resultIdentifier,
64
+ errors,
65
+ warnings,
66
+ });
67
+ // If no errors came from the bundle attempt, move on to evaluating the imports.
68
+ if (errors.length === 0) {
69
+ // Given the package imports, find the missing exports maps and update packageOverrides.
70
+ const { changes, errors: evalErrors } = await evaluateImportsForOverrides({
66
71
  definition,
72
+ packagePath,
67
73
  packages,
68
- reporter,
69
- config,
70
- ctx,
74
+ packagePathsToEvaluate,
75
+ evaluatedPackages,
76
+ imports,
77
+ generatedConfig,
78
+ resolveMap,
71
79
  });
72
- // Record the results for the summary.
73
- const resultIdentifier = {
74
- name: definition.name || '',
75
- version: definition.version || '',
76
- path: packagePath,
77
- };
78
- summaryData.recordResult({
79
- ...resultIdentifier,
80
- errors,
81
- warnings,
82
- });
83
- // If no errors came from the bundle attempt, move on to evaluating the imports.
84
- if (errors.length === 0) {
85
- // Given the package imports, find the missing exports maps and update packageOverrides.
86
- const { changes, errors: evalErrors } = await evaluateImportsForOverrides({
87
- definition,
88
- packagePath,
89
- packages,
90
- packagePathsToEvaluate,
91
- evaluatedPackages,
92
- imports,
93
- generatedConfig,
94
- resolveMap,
80
+ if (evalErrors.length) {
81
+ summaryData.recordResult({
82
+ ...resultIdentifier,
83
+ errors: evalErrors.map((text) => ({ text })),
95
84
  });
96
- if (evalErrors.length) {
97
- summaryData.recordResult({
98
- ...resultIdentifier,
99
- errors: evalErrors.map((text) => ({ text })),
100
- });
101
- }
102
- else {
103
- summaryData.recordGeneratedChanges(changes);
104
- }
105
- if (options.check && (changes.length || evalErrors.length)) {
106
- rootSpan?.addEvent('INIT_CHECK_FAILED', {
107
- reason: changes.length ? 'Config needs to be updated.' : evalErrors,
108
- });
109
- return summaryData.summarize();
110
- }
111
- totalChangeCount += changes.length;
112
85
  }
113
- }
114
- if (totalChangeCount && generatedConfig.packageSettings?.length) {
115
- await writeGeneratedConfig(generatedConfig, appPath);
86
+ else {
87
+ summaryData.recordGeneratedChanges(changes);
88
+ }
89
+ if (options.check && (changes.length || evalErrors.length)) {
90
+ telemetryClient.rootSpan.addEvent('INIT_CHECK_FAILED', {
91
+ reason: changes.length ? 'Config needs to be updated.' : evalErrors,
92
+ });
93
+ return summaryData.summarize();
94
+ }
95
+ totalChangeCount += changes.length;
116
96
  }
117
97
  }
118
- finally {
119
- await ctx.dispose?.();
98
+ if (totalChangeCount && generatedConfig.packageSettings?.length) {
99
+ await writeGeneratedConfig(generatedConfig, appPath);
120
100
  }
121
101
  return summaryData.summarize();
122
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TaskContext } from '../../types/TaskContext.js';\nimport type { InitOptions } from './types/InitOptions.js';\nimport type { InitSummary } from './types/InitSummary.js';\n\nimport { createPartialApiContext } from '../../common/createPartialApiContext.js';\nimport { writeGeneratedConfig } from '@ms-cloudpack/config';\nimport { rootSpan, stopTelemetry } from '../../initTelemetry.js';\nimport { setupReporting } from '../../setupReporting.js';\nimport { bundleAndGetImports } from './bundleAndGetImports.js';\nimport { InitSummaryData } from './InitSummaryData.js';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\nimport { formatInitSummary } from './formatInitSummary.js';\n\n/** Given the path, updates the Cloudpack config with overrides and project settings. */\nexport async function init(options: InitOptions, context: TaskContext): Promise<void> {\n const { reporter } = context;\n let hasErrors = false;\n\n await setupReporting(context);\n\n try {\n const summary = await initInternal(options, context);\n\n reporter.complete(formatInitSummary(summary, options));\n hasErrors = summary.totalErrors > 0;\n } catch (error) {\n reporter.complete(`Unexpected error: ${(error as Error).stack || error}`);\n hasErrors = true;\n }\n\n await stopTelemetry();\n\n process.exit(hasErrors ? 1 : 0);\n}\n\n/**\n * Actual init operation (minus the completion logging).\n * Exported for testing only.\n */\nexport async function initInternal(options: InitOptions, context: TaskContext): Promise<InitSummary> {\n const { appPath, reporter } = context;\n const summaryData = new InitSummaryData();\n const ctx = await createPartialApiContext(context, ['bus', 'taskRunner', 'watcher', 'packages', 'session']);\n const { packages, session } = ctx;\n const { resolveMap, config } = session;\n\n try {\n if (options.check && options.reset) {\n throw Error('Cannot use --check and --reset together.');\n }\n\n // If --reset is specified we ignore generated config.\n if (options.reset) {\n config.generated = {};\n }\n\n const generatedConfig = config.generated;\n\n generatedConfig.packageSettings ??= [];\n\n const packagePathsToEvaluate = new Set<string>([appPath]);\n const evaluatedPackages = new Set<string>();\n let totalChangeCount = 0;\n\n while (packagePathsToEvaluate.size) {\n const packagePath = packagePathsToEvaluate.values().next().value as string;\n\n packagePathsToEvaluate.delete(packagePath);\n\n // Skip already-visited packages.\n if (!packagePath || evaluatedPackages.has(packagePath)) {\n continue;\n }\n\n evaluatedPackages.add(packagePath);\n\n const definition = await packages.get(packagePath, { refresh: true });\n\n if (!definition) {\n // This is very weird and probably won't happen.\n console.error(`Skipping ${packagePath} evaluation because the package.json was not found or not readable.`);\n continue;\n }\n\n // Bundle the package and find the imports it depends on.\n const { errors, warnings, imports } = await bundleAndGetImports({\n packagePath,\n definition,\n packages,\n reporter,\n config,\n ctx,\n });\n\n // Record the results for the summary.\n const resultIdentifier = {\n name: definition.name || '',\n version: definition.version || '',\n path: packagePath,\n };\n\n summaryData.recordResult({\n ...resultIdentifier,\n errors,\n warnings,\n });\n\n // If no errors came from the bundle attempt, move on to evaluating the imports.\n if (errors.length === 0) {\n // Given the package imports, find the missing exports maps and update packageOverrides.\n const { changes, errors: evalErrors } = await evaluateImportsForOverrides({\n definition,\n packagePath,\n packages,\n packagePathsToEvaluate,\n evaluatedPackages,\n imports,\n generatedConfig,\n resolveMap,\n });\n\n if (evalErrors.length) {\n summaryData.recordResult({\n ...resultIdentifier,\n errors: evalErrors.map((text) => ({ text })),\n });\n } else {\n summaryData.recordGeneratedChanges(changes);\n }\n\n if (options.check && (changes.length || evalErrors.length)) {\n rootSpan?.addEvent('INIT_CHECK_FAILED', {\n reason: changes.length ? 'Config needs to be updated.' : evalErrors,\n });\n\n return summaryData.summarize();\n }\n\n totalChangeCount += changes.length;\n }\n }\n\n if (totalChangeCount && generatedConfig.packageSettings?.length) {\n await writeGeneratedConfig(generatedConfig, appPath);\n }\n } finally {\n await ctx.dispose?.();\n }\n\n return summaryData.summarize();\n}\n"]}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InitOptions } from './types/InitOptions.js';\nimport type { InitSummary } from './types/InitSummary.js';\n\nimport { createPartialApiContext } from '@ms-cloudpack/api-server/apis';\nimport { writeGeneratedConfig, type CloudpackConfig } from '@ms-cloudpack/config';\nimport { bundleAndGetImports } from './bundleAndGetImports.js';\nimport { InitSummaryData } from './InitSummaryData.js';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\nimport type { TaskReporter } from '@ms-cloudpack/task-reporter';\nimport type { AutoDispose } from '../../types/AutoDispose.js';\nimport type { TelemetryClient } from '@ms-cloudpack/telemetry';\n\n/**\n * Actual init operation (minus the completion logging).\n */\nexport async function init(parameters: {\n options: InitOptions;\n appPath: string;\n config: CloudpackConfig;\n autoDispose: AutoDispose;\n reporter: TaskReporter;\n telemetryClient: TelemetryClient;\n}): Promise<InitSummary> {\n const { options, appPath, config, reporter, autoDispose, telemetryClient } = parameters;\n const summaryData = new InitSummaryData();\n const [ctx] = autoDispose(\n await createPartialApiContext({\n appPath,\n config,\n reporter,\n telemetryClient,\n items: ['bus', 'taskRunner', 'watcher', 'packages', 'session'],\n }),\n );\n\n const { packages, session } = ctx;\n const { resolveMap } = session;\n\n if (options.check && options.reset) {\n throw Error('Cannot use --check and --reset together.');\n }\n\n // If --reset is specified we ignore generated config.\n if (options.reset) {\n config.generated = {};\n }\n\n const generatedConfig = config.generated;\n\n generatedConfig.packageSettings ??= [];\n\n const packagePathsToEvaluate = new Set<string>([appPath]);\n const evaluatedPackages = new Set<string>();\n let totalChangeCount = 0;\n\n while (packagePathsToEvaluate.size) {\n const packagePath = packagePathsToEvaluate.values().next().value as string;\n\n packagePathsToEvaluate.delete(packagePath);\n\n // Skip already-visited packages.\n if (!packagePath || evaluatedPackages.has(packagePath)) {\n continue;\n }\n\n evaluatedPackages.add(packagePath);\n\n const definition = await packages.get(packagePath, { refresh: true });\n\n if (!definition) {\n // This is very weird and probably won't happen.\n console.error(`Skipping ${packagePath} evaluation because the package.json was not found or not readable.`);\n continue;\n }\n\n // Bundle the package and find the imports it depends on.\n const { errors, warnings, imports } = await bundleAndGetImports({\n packagePath,\n definition,\n packages,\n reporter,\n config,\n ctx,\n });\n\n // Record the results for the summary.\n const resultIdentifier = {\n name: definition.name || '',\n version: definition.version || '',\n path: packagePath,\n };\n\n summaryData.recordResult({\n ...resultIdentifier,\n errors,\n warnings,\n });\n\n // If no errors came from the bundle attempt, move on to evaluating the imports.\n if (errors.length === 0) {\n // Given the package imports, find the missing exports maps and update packageOverrides.\n const { changes, errors: evalErrors } = await evaluateImportsForOverrides({\n definition,\n packagePath,\n packages,\n packagePathsToEvaluate,\n evaluatedPackages,\n imports,\n generatedConfig,\n resolveMap,\n });\n\n if (evalErrors.length) {\n summaryData.recordResult({\n ...resultIdentifier,\n errors: evalErrors.map((text) => ({ text })),\n });\n } else {\n summaryData.recordGeneratedChanges(changes);\n }\n\n if (options.check && (changes.length || evalErrors.length)) {\n telemetryClient.rootSpan.addEvent('INIT_CHECK_FAILED', {\n reason: changes.length ? 'Config needs to be updated.' : evalErrors,\n });\n\n return summaryData.summarize();\n }\n\n totalChangeCount += changes.length;\n }\n }\n\n if (totalChangeCount && generatedConfig.packageSettings?.length) {\n await writeGeneratedConfig(generatedConfig, appPath);\n }\n\n return summaryData.summarize();\n}\n"]}
@@ -1,5 +1,4 @@
1
- import type { CreateHtmlResult } from '../../../types/CreateHtmlResult.js';
2
- import type { CreateHtmlOptions } from '../../../types/CreateHtmlOptions.js';
1
+ import type { CreateHtmlResult, CreateHtmlOptions } from '@ms-cloudpack/api-server';
3
2
  /**
4
3
  * Return the default HTML response.
5
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultHtmlResponse.d.ts","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getDefaultHtmlResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAAG,gBAAgB,CAc1F"}
1
+ {"version":3,"file":"getDefaultHtmlResponse.d.ts","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getDefaultHtmlResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEpF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAAG,gBAAgB,CAc1F"}
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultHtmlResponse.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getDefaultHtmlResponse.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAE,UAAU,EAAqB;IACtE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IAE5B,OAAO;QACL,iBAAiB;QACjB,kBAAkB;QAClB,QAAQ;QACR,YAAY,IAAI,UAAU;QAC1B,SAAS;QACT,QAAQ;QACR,uBAAuB;QACvB,SAAS;QACT,SAAS;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC","sourcesContent":["import type { CreateHtmlResult } from '../../../types/CreateHtmlResult.js';\nimport type { CreateHtmlOptions } from '../../../types/CreateHtmlOptions.js';\n\n/**\n * Return the default HTML response.\n */\nexport function getDefaultHtmlResponse({ definition }: CreateHtmlOptions): CreateHtmlResult {\n const { name } = definition;\n\n return [\n `<!DOCTYPE html>`,\n `<html lang=\"en\">`,\n `<head>`,\n ` <title>${name}</title>`,\n `</head>`,\n `<body>`,\n `<div id=\"root\"></div>`,\n `</body>`,\n `</html>`,\n ].join('\\n');\n}\n"]}
1
+ {"version":3,"file":"getDefaultHtmlResponse.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getDefaultHtmlResponse.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAE,UAAU,EAAqB;IACtE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IAE5B,OAAO;QACL,iBAAiB;QACjB,kBAAkB;QAClB,QAAQ;QACR,YAAY,IAAI,UAAU;QAC1B,SAAS;QACT,QAAQ;QACR,uBAAuB;QACvB,SAAS;QACT,SAAS;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC","sourcesContent":["import type { CreateHtmlResult, CreateHtmlOptions } from '@ms-cloudpack/api-server';\n\n/**\n * Return the default HTML response.\n */\nexport function getDefaultHtmlResponse({ definition }: CreateHtmlOptions): CreateHtmlResult {\n const { name } = definition;\n\n return [\n `<!DOCTYPE html>`,\n `<html lang=\"en\">`,\n `<head>`,\n ` <title>${name}</title>`,\n `</head>`,\n `<body>`,\n `<div id=\"root\"></div>`,\n `</body>`,\n `</html>`,\n ].join('\\n');\n}\n"]}
@@ -1,5 +1,4 @@
1
- import type { CreateHtmlResult, CustomHtmlResult } from '../../../types/CreateHtmlResult.js';
2
- import type { CreateHtmlOptions } from '../../../types/CreateHtmlOptions.js';
1
+ import type { CreateHtmlResult, CustomHtmlResult, CreateHtmlOptions } from '@ms-cloudpack/api-server';
3
2
  /**
4
3
  * Get the HTML response for the given route. If the route has a custom render script, use that.
5
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"getHtmlResponse.d.ts","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getHtmlResponse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAU7E;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAyF/D"}
1
+ {"version":3,"file":"getHtmlResponse.d.ts","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getHtmlResponse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAUlC;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAyF/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"getHtmlResponse.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getHtmlResponse.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { pathToFileURL } from 'url';\nimport type { CreateHtmlScript } from '../../../types/CreateHtmlScript.js';\nimport type { CreateHtmlFunction } from '../../../types/CreateHtmlFunction.js';\nimport type { CreateHtmlResult, CustomHtmlResult } from '../../../types/CreateHtmlResult.js';\nimport type { CreateHtmlOptions } from '../../../types/CreateHtmlOptions.js';\nimport { getDefaultHtmlResponse } from './getDefaultHtmlResponse.js';\nimport { JSDOM } from 'jsdom';\nimport fsPromises from 'fs/promises';\n\nfunction isCustomHtmlResult(result: CreateHtmlResult): result is CustomHtmlResult {\n const customResult = result as CustomHtmlResult;\n return (customResult.type === 'static-html' || customResult.type === 'js') && !!customResult.content;\n}\n\n/**\n * Get the HTML response for the given route. If the route has a custom render script, use that.\n */\nexport async function getHtmlResponse(\n options: CreateHtmlOptions,\n): Promise<Exclude<CreateHtmlResult, string | CustomHtmlResult>> {\n const { route, session, overlayScript, entryScript, inlineScripts } = options;\n let createHtml: CreateHtmlFunction = getDefaultHtmlResponse;\n\n if (route.renderScript) {\n const renderScriptPath = path.resolve(session.appPath, route.renderScript);\n let cacheBreakerQueryParam = `?t=${Date.now()}`;\n\n try {\n const { mtime } = await fsPromises.stat(path.resolve(session.appPath, route.renderScript));\n\n cacheBreakerQueryParam = `?t=${mtime.getTime()}`;\n } catch {\n /* no-op */\n }\n\n if (isHtml(renderScriptPath)) {\n createHtml = readStaticHtml;\n } else {\n // Get the html factory function from a script default export.\n const renderScriptUrl = pathToFileURL(renderScriptPath).toString();\n\n // Note: because there isn't a way to purge the require cache, we need to add a cache breaker query param to the\n // script path to ensure we get the latest version of the script. This could be improved by using the git hash of\n // the file if it exists, or a hash of the content, or even the timestamp of the file.\n try {\n createHtml = ((await import(renderScriptUrl + cacheBreakerQueryParam)) as CreateHtmlScript).default;\n } catch (e) {\n console.error(`Error importing render script at \"${renderScriptUrl}\":`, e);\n }\n }\n\n if (!createHtml) {\n console.error(`The render script at \"${renderScriptPath}\" does not export a default function.`);\n }\n }\n\n let html = '';\n let resultType = 'html';\n let statusCode = 200;\n\n const htmlResult = await createHtml(options);\n\n if (typeof htmlResult === 'string') {\n html = htmlResult;\n } else if (isCustomHtmlResult(htmlResult)) {\n html = htmlResult.content;\n resultType = htmlResult.type;\n } else {\n html = htmlResult.html;\n statusCode = htmlResult.statusCode;\n }\n\n if (resultType === 'html') {\n try {\n const htmlDocument = new JSDOM(html);\n const { document } = htmlDocument.window;\n\n // inject the import map.\n if (entryScript || overlayScript) {\n const script = document.createElement('script');\n script.type = 'importmap';\n script.innerHTML = JSON.stringify(session.getImportMap(), null, 2);\n document.head.prepend(script);\n }\n\n for (const inlineScript of inlineScripts) {\n const script = document.createElement('script');\n script.type = 'module';\n script.innerHTML = inlineScript;\n document.head.appendChild(script);\n }\n\n // inject the overlay script.\n addScript(document.head, overlayScript);\n\n // inject the entry script.\n addScript(document.head, entryScript);\n\n html = htmlDocument.serialize();\n } catch (e) {\n console.error(`Error parsing html response for rendering route \"${route.match}\"`, e);\n }\n }\n\n return {\n html,\n statusCode,\n };\n}\n\n/**\n * Helper function to add a script to the document.\n */\nfunction addScript(parentElement: HTMLElement, url: string | undefined) {\n if (url) {\n const script = parentElement.ownerDocument.createElement('script');\n\n script.type = 'module';\n script.src = url;\n parentElement.appendChild(script);\n }\n}\n\nfunction isHtml(scriptPath: string): boolean {\n // path has an .htm or .html extension; case insensitive.\n return scriptPath.toLowerCase().match(/\\.htm(l)?$/) !== null;\n}\n\nasync function readStaticHtml(options: CreateHtmlOptions): Promise<string> {\n const { route } = options;\n let html = '';\n\n if (route.renderScript) {\n const htmlPath = path.resolve(options.session.appPath, route.renderScript);\n\n try {\n html = (await fsPromises.readFile(htmlPath, 'utf8')) || '';\n } catch (e) {\n console.error(`Error reading HTML file at \"${htmlPath}\".`, e);\n }\n }\n\n return html;\n}\n"]}
1
+ {"version":3,"file":"getHtmlResponse.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getHtmlResponse.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { pathToFileURL } from 'url';\nimport type {\n CreateHtmlScript,\n CreateHtmlFunction,\n CreateHtmlResult,\n CustomHtmlResult,\n CreateHtmlOptions,\n} from '@ms-cloudpack/api-server';\nimport { getDefaultHtmlResponse } from './getDefaultHtmlResponse.js';\nimport { JSDOM } from 'jsdom';\nimport fsPromises from 'fs/promises';\n\nfunction isCustomHtmlResult(result: CreateHtmlResult): result is CustomHtmlResult {\n const customResult = result as CustomHtmlResult;\n return (customResult.type === 'static-html' || customResult.type === 'js') && !!customResult.content;\n}\n\n/**\n * Get the HTML response for the given route. If the route has a custom render script, use that.\n */\nexport async function getHtmlResponse(\n options: CreateHtmlOptions,\n): Promise<Exclude<CreateHtmlResult, string | CustomHtmlResult>> {\n const { route, session, overlayScript, entryScript, inlineScripts } = options;\n let createHtml: CreateHtmlFunction = getDefaultHtmlResponse;\n\n if (route.renderScript) {\n const renderScriptPath = path.resolve(session.appPath, route.renderScript);\n let cacheBreakerQueryParam = `?t=${Date.now()}`;\n\n try {\n const { mtime } = await fsPromises.stat(path.resolve(session.appPath, route.renderScript));\n\n cacheBreakerQueryParam = `?t=${mtime.getTime()}`;\n } catch {\n /* no-op */\n }\n\n if (isHtml(renderScriptPath)) {\n createHtml = readStaticHtml;\n } else {\n // Get the html factory function from a script default export.\n const renderScriptUrl = pathToFileURL(renderScriptPath).toString();\n\n // Note: because there isn't a way to purge the require cache, we need to add a cache breaker query param to the\n // script path to ensure we get the latest version of the script. This could be improved by using the git hash of\n // the file if it exists, or a hash of the content, or even the timestamp of the file.\n try {\n createHtml = ((await import(renderScriptUrl + cacheBreakerQueryParam)) as CreateHtmlScript).default;\n } catch (e) {\n console.error(`Error importing render script at \"${renderScriptUrl}\":`, e);\n }\n }\n\n if (!createHtml) {\n console.error(`The render script at \"${renderScriptPath}\" does not export a default function.`);\n }\n }\n\n let html = '';\n let resultType = 'html';\n let statusCode = 200;\n\n const htmlResult = await createHtml(options);\n\n if (typeof htmlResult === 'string') {\n html = htmlResult;\n } else if (isCustomHtmlResult(htmlResult)) {\n html = htmlResult.content;\n resultType = htmlResult.type;\n } else {\n html = htmlResult.html;\n statusCode = htmlResult.statusCode;\n }\n\n if (resultType === 'html') {\n try {\n const htmlDocument = new JSDOM(html);\n const { document } = htmlDocument.window;\n\n // inject the import map.\n if (entryScript || overlayScript) {\n const script = document.createElement('script');\n script.type = 'importmap';\n script.innerHTML = JSON.stringify(session.getImportMap(), null, 2);\n document.head.prepend(script);\n }\n\n for (const inlineScript of inlineScripts) {\n const script = document.createElement('script');\n script.type = 'module';\n script.innerHTML = inlineScript;\n document.head.appendChild(script);\n }\n\n // inject the overlay script.\n addScript(document.head, overlayScript);\n\n // inject the entry script.\n addScript(document.head, entryScript);\n\n html = htmlDocument.serialize();\n } catch (e) {\n console.error(`Error parsing html response for rendering route \"${route.match}\"`, e);\n }\n }\n\n return {\n html,\n statusCode,\n };\n}\n\n/**\n * Helper function to add a script to the document.\n */\nfunction addScript(parentElement: HTMLElement, url: string | undefined) {\n if (url) {\n const script = parentElement.ownerDocument.createElement('script');\n\n script.type = 'module';\n script.src = url;\n parentElement.appendChild(script);\n }\n}\n\nfunction isHtml(scriptPath: string): boolean {\n // path has an .htm or .html extension; case insensitive.\n return scriptPath.toLowerCase().match(/\\.htm(l)?$/) !== null;\n}\n\nasync function readStaticHtml(options: CreateHtmlOptions): Promise<string> {\n const { route } = options;\n let html = '';\n\n if (route.renderScript) {\n const htmlPath = path.resolve(options.session.appPath, route.renderScript);\n\n try {\n html = (await fsPromises.readFile(htmlPath, 'utf8')) || '';\n } catch (e) {\n console.error(`Error reading HTML file at \"${htmlPath}\".`, e);\n }\n }\n\n return html;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/start/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE,eAAO,MAAM,IAAI,EAAE,eAQlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/start/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE,eAAO,MAAM,IAAI,EAAE,eAYlB,CAAC"}
@@ -1,11 +1,13 @@
1
1
  /* Defines the "start" verb. */
2
- export const init = (command, context) => {
2
+ export const init = (command, createAction) => {
3
3
  command
4
4
  .command('start')
5
5
  .description('Starts a web inner-loop from the current package folder.')
6
6
  .option('--log-resolve-map', 'Logs the resolve map to "resolve-map.json" for diagnostics.')
7
7
  .option('--features <featureName> [featureNames...]', 'Enable experimental features.')
8
8
  .option('--app <appPackageName>', 'Run Cloudpack targeting a specific app.')
9
- .action(async (options) => (await import('./start.js')).start(options, context));
9
+ .action(createAction(() => ({
10
+ execute: import('./start.js'),
11
+ })));
10
12
  };
11
13
  //# sourceMappingURL=index.js.map