@ms-cloudpack/cli 0.31.0 → 0.31.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 (72) hide show
  1. package/lib/cloudpack.js.map +1 -1
  2. package/lib/commands/bundle/bundle.js.map +1 -1
  3. package/lib/commands/bundle/index.js.map +1 -1
  4. package/lib/commands/bundle/types.js.map +1 -1
  5. package/lib/commands/dashboard/index.js.map +1 -1
  6. package/lib/commands/init/evaluateImportsForOverrides.js.map +1 -1
  7. package/lib/commands/init/findImports.js.map +1 -1
  8. package/lib/commands/init/findImports.test.js.map +1 -1
  9. package/lib/commands/init/getImportsFromBundle.js.map +1 -1
  10. package/lib/commands/init/index.js.map +1 -1
  11. package/lib/commands/init/init.js.map +1 -1
  12. package/lib/commands/init/init.test.js.map +1 -1
  13. package/lib/commands/init/patchAllInternalPackageExports.js.map +1 -1
  14. package/lib/commands/init/patchPackageExports.js.map +1 -1
  15. package/lib/commands/init/preparePackageOverride.js.map +1 -1
  16. package/lib/commands/init/types.js.map +1 -1
  17. package/lib/commands/start/TaskRunner.js.map +1 -1
  18. package/lib/commands/start/addOverride.js.map +1 -1
  19. package/lib/commands/start/addOverride.test.js.map +1 -1
  20. package/lib/commands/start/appServer/createRoutes.js +2 -1
  21. package/lib/commands/start/appServer/createRoutes.js.map +1 -1
  22. package/lib/commands/start/appServer/error.js.map +1 -1
  23. package/lib/commands/start/appServer/exitIfPortUnavailable.js.map +1 -1
  24. package/lib/commands/start/appServer/getDefaultHtmlResponse.js.map +1 -1
  25. package/lib/commands/start/appServer/getHtmlResponse.js +1 -3
  26. package/lib/commands/start/appServer/getHtmlResponse.js.map +1 -1
  27. package/lib/commands/start/appServer/handleSessionVersion.js.map +1 -1
  28. package/lib/commands/start/appServer/inlineScripts/errorHandler.inline.d.ts +10 -0
  29. package/lib/commands/start/appServer/inlineScripts/errorHandler.inline.js +18 -0
  30. package/lib/commands/start/appServer/inlineScripts/errorHandler.inline.js.map +1 -0
  31. package/lib/commands/start/appServer/inlineScripts/getInlineScripts.d.ts +1 -0
  32. package/lib/commands/start/appServer/inlineScripts/getInlineScripts.js +15 -0
  33. package/lib/commands/start/appServer/inlineScripts/getInlineScripts.js.map +1 -0
  34. package/lib/commands/start/appServer/log.js.map +1 -1
  35. package/lib/commands/start/appServer/setHeaders.js.map +1 -1
  36. package/lib/commands/start/appServer/startAppServer.js.map +1 -1
  37. package/lib/commands/start/createBundleTask.js.map +1 -1
  38. package/lib/commands/start/createSession.js.map +1 -1
  39. package/lib/commands/start/createSession.test.js.map +1 -1
  40. package/lib/commands/start/index.js.map +1 -1
  41. package/lib/commands/start/openBrowser.js.map +1 -1
  42. package/lib/commands/start/parseRequestInfo.js.map +1 -1
  43. package/lib/commands/start/parseRequestInfo.test.js.map +1 -1
  44. package/lib/commands/start/start.js.map +1 -1
  45. package/lib/commands/start/startApiServer.js.map +1 -1
  46. package/lib/commands/start/startBundleServer.js.map +1 -1
  47. package/lib/commands/start/startWatcher.js.map +1 -1
  48. package/lib/commands/start/taskRunner.test.js.map +1 -1
  49. package/lib/commands/start/types.js.map +1 -1
  50. package/lib/commands/start/validateOverride.js.map +1 -1
  51. package/lib/commands/start/validateOverride.test.js.map +1 -1
  52. package/lib/common/config.js.map +1 -1
  53. package/lib/common/configTemplate.js.map +1 -1
  54. package/lib/common/createPackageOverrideTransform.js.map +1 -1
  55. package/lib/common/findPackageOverride.js.map +1 -1
  56. package/lib/common/getBundleDetails.js.map +1 -1
  57. package/lib/common/getCachePath.js.map +1 -1
  58. package/lib/common/prepareOutputPath.js.map +1 -1
  59. package/lib/getVersion.js.map +1 -1
  60. package/lib/index.js.map +1 -1
  61. package/lib/initTelemetry.js.map +1 -1
  62. package/lib/performance/markers.js.map +1 -1
  63. package/lib/performance/registerPerformanceObservers.js.map +1 -1
  64. package/lib/reporter.js.map +1 -1
  65. package/lib/tasks/bundleTask.js.map +1 -1
  66. package/lib/tasks/formatBundleErrors.js.map +1 -1
  67. package/lib/tasks/resolveDependenciesTask.js.map +1 -1
  68. package/lib/types.js.map +1 -1
  69. package/package.json +4 -4
  70. package/lib/commands/start/appServer/inlineScripts.d.ts +0 -1
  71. package/lib/commands/start/appServer/inlineScripts.js +0 -12
  72. package/lib/commands/start/appServer/inlineScripts.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cloudpack.js","sourceRoot":"","sources":["../src/cloudpack.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAE,GAAa,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cloudpack.js","sourceRoot":"","sources":["../src/cloudpack.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAE,GAAa,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport { main } from './index.js';\n\nmain().catch((err) => {\n console.error((err as Error)?.stack || err);\n process.exit(1);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../src/commands/bundle/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAuB;IAClD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,aAAa,GAAkB;QACnC,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,IAAI;QACjB,OAAO;QACP,WAAW;QACX,UAAU;QACV,UAAU,EAAE,IAAI;QAChB,WAAW;KACZ,CAAC;IAEF,MAAM,UAAU,CAAC;QACf,aAAa;QACb,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACzB,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../src/commands/bundle/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAuB;IAClD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,aAAa,GAAkB;QACnC,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,IAAI;QACjB,OAAO;QACP,WAAW;QACX,UAAU;QACV,UAAU,EAAE,IAAI;QAChB,WAAW;KACZ,CAAC;IAEF,MAAM,UAAU,CAAC;QACf,aAAa;QACb,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACzB,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC","sourcesContent":["import { bundleTask } from '../../tasks/bundleTask.js';\nimport path from 'path';\nimport type { BundleOptions } from './types.js';\nimport { PackageDefinitions } from '@ms-cloudpack/package-utilities';\nimport { reporter } from '../../reporter.js';\nimport type { BundleRequest } from '../../types.js';\n\nexport async function bundle(options?: BundleOptions) {\n const { bundler: bundlerType, outdir = 'dist/browser-esm' } = options || {};\n const packagePath = process.cwd();\n const definition = await PackageDefinitions.getInstance().get(packagePath);\n const { name = 'unknown', version = '0.0.0' } = definition || {};\n const outputPath = path.resolve(packagePath, outdir);\n const bundleRequest: BundleRequest = {\n id: 'bundle',\n packageName: name,\n version,\n packagePath,\n outputPath,\n isExternal: true,\n bundlerType,\n };\n\n await bundleTask({\n bundleRequest,\n options: { force: true },\n });\n\n reporter.complete();\n process.exit(bundleRequest.result?.errors?.length === 0 ? 0 : 1);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,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,CAAC,OAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,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,CAAC,OAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC","sourcesContent":["import type { Command } from 'commander';\nimport { bundle } from './bundle.js';\nimport type { BundleOptions } from './types.js';\n\nexport function init(command: Command) {\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((options: BundleOptions) => bundle(options));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/bundle/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/bundle/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface BundleOptions {\n /**\n * Forces use of a specific bundler. 'ori' | 'rollup' | 'auto'. Defaults to \"auto\".\n */\n bundler?: string;\n\n /**\n * Path to drop the bundle output, relative to current path. Defaults to \"dist\".\n */\n outdir?: string;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dashboard/index.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dashboard/index.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC9D,CAAC","sourcesContent":["import type { Command } from 'commander';\n\nexport function init(command: Command) {\n command\n .command('dashboard')\n .description('Shows the dashboard.')\n .action(() => console.log('i am showing the dashboard.'));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluateImportsForOverrides.js","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAKrE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OASjD;IACC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAC9G,OAAO,CAAC;IACV,MAAM,WAAW,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;IAC/D,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,oEAAoE;IACpE,KAAK,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;QACvE,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;QAElG,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,YAAY,WAAW,iBAAiB,cAAc,4CAA4C,CAAC,CAAC;YAClH,SAAS;SACV;QAED,kCAAkC;QAClC,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAI,CAAC,oBAAoB,EAAE;YACzB,OAAO,CAAC,KAAK,CACX,YAAY,WAAW,iBAAiB,cAAc,SAAS,YAAY,CAAC,IAAI,0CAA0C,EAC1H,SAAS,CACV,CAAC;YACF,SAAS;SACV;QAED,oEAAoE;QACpE,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE9C,mIAAmI;QACnI,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEpD,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE;YACxD,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE;gBAC3C,sBAAsB,CAAC;oBACrB,gBAAgB;oBAChB,UAAU;oBACV,oBAAoB;oBACpB,OAAO;oBACP,UAAU,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC;iBAClD,CAAC,CAAC;gBAEH,MAAM,kBAAkB,CAAC;oBACvB,OAAO;oBACP,QAAQ;oBACR,WAAW,EAAE,YAAY,CAAC,IAAI;oBAC9B,UAAU,EAAE,oBAAoB;iBACjC,CAAC,CAAC;gBAEH,yEAAyE;gBACzE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAEjB,WAAW,EAAE,CAAC;gBAEd,4FAA4F;gBAC5F,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC9C,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC7C;SACF;KACF;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"evaluateImportsForOverrides.js","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAKrE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OASjD;IACC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAC9G,OAAO,CAAC;IACV,MAAM,WAAW,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;IAC/D,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,oEAAoE;IACpE,KAAK,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;QACvE,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;QAElG,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,YAAY,WAAW,iBAAiB,cAAc,4CAA4C,CAAC,CAAC;YAClH,SAAS;SACV;QAED,kCAAkC;QAClC,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAI,CAAC,oBAAoB,EAAE;YACzB,OAAO,CAAC,KAAK,CACX,YAAY,WAAW,iBAAiB,cAAc,SAAS,YAAY,CAAC,IAAI,0CAA0C,EAC1H,SAAS,CACV,CAAC;YACF,SAAS;SACV;QAED,oEAAoE;QACpE,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE9C,mIAAmI;QACnI,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEpD,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE;YACxD,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE;gBAC3C,sBAAsB,CAAC;oBACrB,gBAAgB;oBAChB,UAAU;oBACV,oBAAoB;oBACpB,OAAO;oBACP,UAAU,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC;iBAClD,CAAC,CAAC;gBAEH,MAAM,kBAAkB,CAAC;oBACvB,OAAO;oBACP,QAAQ;oBACR,WAAW,EAAE,YAAY,CAAC,IAAI;oBAC9B,UAAU,EAAE,oBAAoB;iBACjC,CAAC,CAAC;gBAEH,yEAAyE;gBACzE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAEjB,WAAW,EAAE,CAAC;gBAEd,4FAA4F;gBAC5F,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC9C,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC7C;SACF;KACF;IAED,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["import {\n flattenExportsMap,\n addExportsMapEntry,\n getExportsMap,\n findResolveMapEntry,\n isExternalPackage,\n} from '@ms-cloudpack/package-utilities';\nimport { preparePackageOverride } from './preparePackageOverride.js';\nimport type { PackageJson, PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport type { PackageOverride } from '../../types.js';\n\n/**\n * Evaluate the imports depended on by a package to determine if missing exports map paths need to be added.\n * If so, updates package overrides to the given packageOverrides array.\n */\nexport async function evaluateImportsForOverrides(options: {\n packages: PackageDefinitionsCache;\n packagePath: string;\n imports: Map<string, Set<string>>;\n definition: PackageJson;\n packageOverrides: PackageOverride[];\n packagePathsToEvaluate: Set<string>;\n evaluatedPackages: Set<string>;\n resolveMap: ResolveMap;\n}): Promise<number> {\n const { packages, imports, definition, packageOverrides, packagePathsToEvaluate, evaluatedPackages, resolveMap } =\n options;\n const displayName = `${definition.name}@${definition.version}`;\n let changeCount = 0;\n\n // Iterate through imports and find their path from the resolve map.\n for (const [dependencyName, dependencyImportPaths] of imports.entries()) {\n const resolveEntry = findResolveMapEntry({ definition, packageName: dependencyName, resolveMap });\n\n if (!resolveEntry) {\n console.error(`Package \"${displayName}\" depends on \"${dependencyName}\" but it was not found in the resolve map.`);\n continue;\n }\n\n // Load the dependency definition.\n const dependencyDefinition = await packages.get(resolveEntry.path);\n\n if (!dependencyDefinition) {\n console.error(\n `Package \"${displayName}\" depends on \"${dependencyName}\" at \"${resolveEntry.path}\" but its definition couldn't be loaded.`,\n undefined,\n );\n continue;\n }\n\n // Make sure to add the package to the list of packages to evaluate.\n packagePathsToEvaluate.add(resolveEntry.path);\n\n // Get the flattened bundle-able exports map for this dependency and iterate through our import paths to ensure nothing is missing.\n const exports = await getExportsMap(resolveEntry.path, { packages });\n const flattenedExports = flattenExportsMap(exports);\n\n for (const dependencyImportPath of dependencyImportPaths) {\n if (!flattenedExports[dependencyImportPath]) {\n preparePackageOverride({\n packageOverrides,\n definition,\n dependencyDefinition,\n exports,\n isInternal: !isExternalPackage(resolveEntry.path),\n });\n\n await addExportsMapEntry({\n exports,\n packages,\n packagePath: resolveEntry.path,\n importPath: dependencyImportPath,\n });\n\n // Clear cache when we've mutated an override. Transforms need to re-run.\n packages.clear();\n\n changeCount++;\n\n // Since we've found a missing exports, we need to re-enqueue the dependency for evaluation.\n packagePathsToEvaluate.add(resolveEntry.path);\n evaluatedPackages.delete(resolveEntry.path);\n }\n }\n }\n\n return changeCount;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"findImports.js","sourceRoot":"","sources":["../../../src/commands/init/findImports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAA2B,MAAM,mCAAmC,CAAC;AAE/F,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAmB;;IACnD,MAAM,eAAe,GAAgC,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,YAAY,GAAa,CAAC,GAAG,SAAS,CAAC,CAAC;IAE9C,OAAO,YAAY,CAAC,MAAM,EAAE;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QAEtC,IAAI,QAAQ,EAAE;YACZ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,uFAAuF;gBACvF,sEAAsE;gBACtE,EAAE;gBACF,yDAAyD;gBACzD,EAAE;gBACF,0DAA0D;gBAC1D,4EAA4E;gBAC5E,0EAA0E;gBAC1E,2EAA2E;gBAC3E,gEAAgE;gBAChE,EAAE;gBACF,0EAA0E;gBAC1E,6EAA6E;gBAC7E,yEAAyE;gBACzE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CACX,4DAA4D,QAAQ,gBAAgB,MAAM,CAAC,KAAK,CAC9F,CAAC,CAAC,CAAC,EACH,CAAC,CAAC,CAAC,CACJ,EAAE,CACJ,CAAC;oBACF,OAAO,SAAS,CAAC;iBAClB;gBAED,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAyB,CAAC;YAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,IAAI,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;oBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBAElG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;wBAChC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC9B;iBACF;qBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;oBAC5B,eAAe,MAAC,KAAK,CAAC,WAAW,MAAjC,eAAe,OAAwB,IAAI,GAAG,EAAE,EAAC;oBACjD,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;iBACjE;aACF;SACF;KACF;IAED,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"findImports.js","sourceRoot":"","sources":["../../../src/commands/init/findImports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAA2B,MAAM,mCAAmC,CAAC;AAE/F,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAmB;;IACnD,MAAM,eAAe,GAAgC,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,YAAY,GAAa,CAAC,GAAG,SAAS,CAAC,CAAC;IAE9C,OAAO,YAAY,CAAC,MAAM,EAAE;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QAEtC,IAAI,QAAQ,EAAE;YACZ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,uFAAuF;gBACvF,sEAAsE;gBACtE,EAAE;gBACF,yDAAyD;gBACzD,EAAE;gBACF,0DAA0D;gBAC1D,4EAA4E;gBAC5E,0EAA0E;gBAC1E,2EAA2E;gBAC3E,gEAAgE;gBAChE,EAAE;gBACF,0EAA0E;gBAC1E,6EAA6E;gBAC7E,yEAAyE;gBACzE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CACX,4DAA4D,QAAQ,gBAAgB,MAAM,CAAC,KAAK,CAC9F,CAAC,CAAC,CAAC,EACH,CAAC,CAAC,CAAC,CACJ,EAAE,CACJ,CAAC;oBACF,OAAO,SAAS,CAAC;iBAClB;gBAED,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAyB,CAAC;YAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,IAAI,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;oBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBAElG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;wBAChC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC9B;iBACF;qBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;oBAC5B,eAAe,MAAC,KAAK,CAAC,WAAW,MAAjC,eAAe,OAAwB,IAAI,GAAG,EAAE,EAAC;oBACjD,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;iBACjE;aACF;SACF;KACF;IAED,OAAO,eAAe,CAAC;AACzB,CAAC","sourcesContent":["import { parse } from 'es-module-lexer';\nimport fs from 'fs';\nimport path from 'path';\nimport { parseImportString, type ImportStringResult } from '@ms-cloudpack/path-string-parsing';\n\nconst { readFile } = fs.promises;\n\n/**\n * Returns a dictionary where key is the package name and value is a set of required paths.\n * Eg. { '@fluentui/react': new Set([ '.', './lib/Button' ]) }\n */\nexport async function findImports(filePaths: string[]): Promise<Record<string, Set<string>>> {\n const requiredExports: Record<string, Set<string>> = {};\n const visitedPaths = new Set(filePaths);\n const pathsToParse: string[] = [...filePaths];\n\n while (pathsToParse.length) {\n const filePath = pathsToParse.shift();\n\n if (filePath) {\n const source = await readFile(filePath, 'utf-8');\n const [rawImports] = parse(source);\n const imports = Array.from(new Set(rawImports))\n .map((i) => {\n // The es-module-lexer returns entries where the \"n\" property equals the import source.\n // This includes the package name and path. For example, in this case:\n //\n // import { Button } from '@fluentui/react/lib/Button';\n //\n // The \"n\" property would be \"@fluentui/react/lib/Button\".\n // The \"s\" and \"e\" properties represent the start/end character positions of\n // the import source. The \"ss\" and \"se\" properties represent the start/end\n // character positions of the import specifier starting with \"import\". This\n // may be useful for determining if the import is sync or async.\n //\n // Currently when the import source is a backtick string, the \"n\" property\n // is undefined. This is a bug in es-module-lexer. We may need to handle this\n // at the javascript layer and expand it into multiple potential imports.\n if (!i.n) {\n console.debug(\n `Found an import that didn't parse correctly:\\nFilename:\\n${filePath}\\n\\nImport:\\n${source.slice(\n i.s,\n i.e,\n )}`,\n );\n return undefined;\n }\n\n return parseImportString(i.n);\n })\n .filter(Boolean) as ImportStringResult[];\n\n for (const entry of imports) {\n if (entry.packageName?.startsWith('.')) {\n const localPath = path.resolve(path.dirname(filePath), entry.packageName, entry.importPath || '');\n\n if (!visitedPaths.has(localPath)) {\n visitedPaths.add(localPath);\n pathsToParse.push(localPath);\n }\n } else if (entry.packageName) {\n requiredExports[entry.packageName] ||= new Set();\n requiredExports[entry.packageName].add(entry.importPath || '.');\n }\n }\n }\n }\n\n return requiredExports;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"findImports.test.js","sourceRoot":"","sources":["../../../src/commands/init/findImports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,SAAS,GAAG;YAChB,iBAAiB,EAAE,iCAAiC;YACpD,cAAc,EAAE,+CAA+C;YAC/D,iBAAiB,EAAE,4BAA4B;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,SAAS,GAAG;YAChB,iBAAiB,EAAE,wCAAwC;YAC3D,gBAAgB,EAAE,+CAA+C;YACjE,iBAAiB,EAAE,4BAA4B;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"findImports.test.js","sourceRoot":"","sources":["../../../src/commands/init/findImports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,SAAS,GAAG;YAChB,iBAAiB,EAAE,iCAAiC;YACpD,cAAc,EAAE,+CAA+C;YAC/D,iBAAiB,EAAE,4BAA4B;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,SAAS,GAAG;YAChB,iBAAiB,EAAE,wCAAwC;YAC3D,gBAAgB,EAAE,+CAA+C;YACjE,iBAAiB,EAAE,4BAA4B;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { findImports } from './findImports.js';\nimport { describe, it, expect } from '@jest/globals';\nimport { createTestFileStructure } from '@ms-cloudpack/test-utilities';\nimport path from 'path';\n\ndescribe('findImports', () => {\n it('can find the imports in a bundle', async () => {\n const testFiles = {\n './lib/entry1.js': 'import { foo } from \"./foo.js\";',\n './lib/foo.js': 'export { a, b, c, foo } from \"react/lib/foo\";',\n './lib/entry2.js': 'import react from \"react\";',\n };\n const testPath = await createTestFileStructure(testFiles);\n const filePaths = Object.keys(testFiles).map((filePath) => path.join(testPath, filePath));\n const result = await findImports(filePaths);\n console.log(result);\n expect(result).toEqual({\n react: new Set(['./lib/foo', '.']),\n });\n });\n\n it('can walk to files up a level', async () => {\n const testFiles = {\n './lib/entry1.js': 'import { foo } from \"../chunk/foo.js\";',\n './chunk/foo.js': 'export { a, b, c, foo } from \"react/lib/foo\";',\n './lib/entry2.js': 'import react from \"react\";',\n };\n const testPath = await createTestFileStructure(testFiles);\n const filePaths = Object.keys(testFiles).map((filePath) => path.join(testPath, filePath));\n const result = await findImports(filePaths);\n console.log(result);\n expect(result).toEqual({\n react: new Set(['./lib/foo', '.']),\n });\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getImportsFromBundle.js","sourceRoot":"","sources":["../../../src/commands/init/getImportsFromBundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getImportsFromBundle.js","sourceRoot":"","sources":["../../../src/commands/init/getImportsFromBundle.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { getEntriesMapFromPackage } from '@ms-cloudpack/bundler';\nimport { getBundleDetails } from '../../common/getBundleDetails.js';\nimport { findImports } from './findImports.js';\nimport { prepareOutputPath } from '../../common/prepareOutputPath.js';\nimport type { PackageJson, PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport { reporter } from '../../reporter.js';\nimport type { BundleRequest } from '../../types.js';\nimport { bundleTask } from '../../tasks/bundleTask.js';\nimport { bulletedList, formatPackageName } from '@ms-cloudpack/task-reporter';\n\n/**\n * Bundle the package and return the imports it depends on.\n */\nexport async function getImportsFromBundle(options: {\n packages: PackageDefinitionsCache;\n packagePath: string;\n definition: PackageJson;\n}): Promise<Map<string, Set<string>> | undefined> {\n const { packagePath, definition, packages } = options;\n const { outputPath, isExternal } = await getBundleDetails(packagePath);\n\n if (!isExternal && !definition.exports) {\n console.warn(`Package ${path.join(packagePath, 'package.json')} does not have an \"exports\" field.`);\n }\n\n // Ensure outputPath exists and is empty.\n await prepareOutputPath(outputPath);\n\n // Determine entries.\n const entriesMap = await getEntriesMapFromPackage({\n inputPath: packagePath,\n packages,\n });\n\n if (!Object.keys(entriesMap).length) {\n console.warn(`Package ${path.join(packagePath, 'package.json')} does not have any entries.`);\n return;\n }\n\n const bundleRequest: BundleRequest = {\n id: packagePath,\n packageName: definition.name || '',\n version: definition.version || '',\n packagePath,\n outputPath,\n isExternal,\n packages,\n };\n\n await bundleTask({ bundleRequest, options: { force: true } });\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(\n bundleRequest.result?.outputFiles?.map((file) => path.resolve(outputPath, file.outputPath)) || [],\n )) || {},\n ),\n );\n\n const importCount = imports.size;\n\n return {\n status: 'complete',\n message: importCount ? `Found ${importCount} imported package(s)` : undefined,\n details: importCount ? `${bulletedList(getImportsList(imports))}` : undefined,\n };\n });\n\n return imports;\n}\n\nfunction getImportsList(imports: Map<string, Set<string>>): string[] {\n return Array.from(imports.keys()).reduce((list, packageName) => {\n return list.concat(\n Array.from(imports.get(packageName) || []).map(\n (importPath) => `${packageName}${importPath === '.' ? '' : `/${importPath}`}`,\n ),\n );\n }, [] as string[]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,8BAA8B;AAC9B,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sIAAsI,CACvI;SACA,MAAM,CAAC,OAAO,EAAE,8DAA8D,CAAC;SAC/E,MAAM,CAAC,SAAS,EAAE,0DAA0D,CAAC;SAC7E,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,cAAkC,CAAC;QACvC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI;YACF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5C,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAE;gBACxB,SAAS,GAAG,IAAI,CAAC;gBACjB,cAAc,GAAG,oBAAoB,CAAC;aACvC;iBAAM;gBACL,cAAc,GAAG,WAAW;oBAC1B,CAAC,CAAC,YAAY,cAAc,UAAU,WAAW,aAAa;oBAC9D,CAAC,CAAC,qCAAqC,CAAC;aAC3C;SACF;QAAC,OAAO,KAAK,EAAE;YACd,SAAS,GAAG,IAAI,CAAC;YACjB,cAAc,GAAG,qBAAsB,KAAe,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;SAC/E;QAED,MAAM,aAAa,EAAE,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAEpE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,8BAA8B;AAC9B,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sIAAsI,CACvI;SACA,MAAM,CAAC,OAAO,EAAE,8DAA8D,CAAC;SAC/E,MAAM,CAAC,SAAS,EAAE,0DAA0D,CAAC;SAC7E,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,cAAkC,CAAC;QACvC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI;YACF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5C,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAE;gBACxB,SAAS,GAAG,IAAI,CAAC;gBACjB,cAAc,GAAG,oBAAoB,CAAC;aACvC;iBAAM;gBACL,cAAc,GAAG,WAAW;oBAC1B,CAAC,CAAC,YAAY,cAAc,UAAU,WAAW,aAAa;oBAC9D,CAAC,CAAC,qCAAqC,CAAC;aAC3C;SACF;QAAC,OAAO,KAAK,EAAE;YACd,SAAS,GAAG,IAAI,CAAC;YACjB,cAAc,GAAG,qBAAsB,KAAe,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;SAC/E;QAED,MAAM,aAAa,EAAE,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAEpE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import type { Command } from 'commander';\nimport type { InitOptions } from './types.js';\nimport { reporter } from '../../reporter.js';\nimport { red } from '@ms-cloudpack/task-reporter';\nimport { configFileName } from '../../common/config.js';\nimport { stopTelemetry } from '../../initTelemetry.js';\n\n/* Defines the \"init\" verb. */\nexport function init(command: Command) {\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('--fix', 'Applies fixes to all identified issues in internal packages.')\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) => {\n const { init } = await import('./init.js');\n\n let completeReason: string | undefined;\n let hasErrors = false;\n try {\n const { changeCount } = await init(options);\n\n if (reporter.hasErrors()) {\n hasErrors = true;\n completeReason = 'Some tasks failed.';\n } else {\n completeReason = changeCount\n ? `Updated \"${configFileName}\" with ${changeCount} change(s).`\n : 'Looks good, no changes required. :)';\n }\n } catch (error) {\n hasErrors = true;\n completeReason = `Unexpected error: ${(error as Error).message || '<Error>'}`;\n }\n\n await stopTelemetry();\n reporter.complete(hasErrors ? red(completeReason) : completeReason);\n\n process.exit(hasErrors ? 1 : 0);\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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","sourcesContent":["import { PackageDefinitions, type ResolveMap } from '@ms-cloudpack/package-utilities';\nimport { createPackageOverrideTransform } from '../../common/createPackageOverrideTransform.js';\nimport { configFileName, readConfig, writeConfig } from '../../common/config.js';\nimport { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';\nimport type { CloudpackConfig, PackageOverride } from '../../types.js';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\nimport { getImportsFromBundle } from './getImportsFromBundle.js';\nimport { patchAllInternalPackageExports } from './patchAllInternalPackageExports.js';\nimport type { InitOptions } from './types.js';\nimport { rootSpan } from '../../initTelemetry.js';\n\n/** Given the path, updates the Cloudpack config with overrides and project settings. */\nexport async function init(options: InitOptions): Promise<{ changeCount: number }> {\n if (options.check && options.fix) {\n throw Error('Cannot use --check and --fix together.');\n }\n\n if (options.check && options.reset) {\n throw Error('Cannot use --check and --reset together.');\n }\n\n const appPath = options.cwd || process.cwd();\n const config = await readConfig(appPath);\n const packageOverrides: PackageOverride[] = (!options.reset && config.packageOverrides) || [];\n const packages = new PackageDefinitions();\n\n packages.registerTransform(createPackageOverrideTransform({ packageOverrides }));\n\n // Try to resolve dependencies.\n const resolveMap = (await resolveDependenciesTask({ appPath, packages })) as ResolveMap;\n\n if (!resolveMap) {\n throw new Error(\"Couldn't resolve dependencies.\");\n }\n\n const packagePathsToEvaluate = new Set<string>([appPath]);\n const evaluatedPackages = new Set<string>();\n let changeCount = 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 continue;\n }\n\n // Bundle the package and find the imports it depends on.\n const imports = await getImportsFromBundle({\n packagePath,\n definition,\n packages,\n });\n\n if (!imports) {\n console.info(`Skipping ${packagePath} evaluation due to no imports returned.`);\n continue;\n }\n\n // Given the package imports, find the missing exports maps and update packageOverrides.\n changeCount += await evaluateImportsForOverrides({\n definition,\n packages,\n packagePath,\n packagePathsToEvaluate,\n evaluatedPackages,\n imports,\n packageOverrides,\n resolveMap,\n });\n\n if (options.check && changeCount > 0) {\n rootSpan?.addEvent('INIT_CHECK_FAILED');\n\n throw Error('Run \"cloudpack init --reset\" to update the config.');\n }\n }\n\n if (options.fix) {\n await patchAllInternalPackageExports({ resolveMap, packageOverrides });\n }\n\n if (changeCount) {\n // Log the results to a file.\n console.log(`Writing results to ${configFileName}...`);\n\n const updatedConfig: CloudpackConfig = {\n ...config,\n ...(packageOverrides.length ? { packageOverrides } : {}),\n };\n await writeConfig(updatedConfig, appPath);\n }\n\n return {\n changeCount,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../../src/commands/init/init.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../../src/commands/init/init.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { afterEach, describe, it, expect, beforeAll } from '@jest/globals';\nimport { init } from './init.js';\nimport fs from 'fs';\nimport path from 'path';\nimport { isFile } from '@ms-cloudpack/path-utilities';\nimport { readJson } from '@ms-cloudpack/json-utilities';\nimport type { PackageJson } from '@ms-cloudpack/bundler-types';\nimport { createTestFileStructure } from '@ms-cloudpack/test-utilities';\nimport { noLoggingConfig } from '@ms-cloudpack/task-reporter';\nimport { reporter } from '../../reporter.js';\nimport { getConfigPath, readConfig } from '../../common/config.js';\n\nconst { rm } = fs.promises;\n\ndescribe('init', () => {\n let testPath: string | undefined;\n\n beforeAll(() => {\n reporter.setOptions(noLoggingConfig);\n });\n\n afterEach(async () => {\n if (testPath) {\n await rm(testPath, { recursive: true });\n testPath = undefined;\n }\n });\n\n it('can make no changes to a package that has no config and needs no changes', async () => {\n testPath = await createTestFileStructure({\n 'package.json': {\n name: 'test-package',\n version: '1.0.0',\n main: 'lib/index.js',\n dependencies: {\n foo: '1.0.0',\n },\n },\n 'src/index.ts': 'import foo from \"foo\"; console.log(foo);',\n 'node_modules/foo/package.json': {\n name: 'foo',\n version: '1.0.0',\n main: 'lib/index.js',\n },\n 'node_modules/foo/lib/index.js': 'export default \"foo\";',\n });\n\n await init({ cwd: testPath });\n\n expect(await isFile(getConfigPath(testPath))).toBe(false);\n });\n\n it('can create a config when a package needs to have an exports map defined', async () => {\n testPath = await createTestFileStructure({\n 'package.json': {\n name: 'test-package',\n version: '1.0.0',\n main: 'lib/index.js',\n dependencies: {\n foo: '1.0.0',\n },\n },\n 'src/index.ts': 'import foo from \"foo/lib/bar\"; console.log(foo);',\n 'node_modules/foo/package.json': {\n name: 'foo',\n version: '1.0.0',\n main: 'lib/index.js',\n },\n 'node_modules/foo/lib/index.js': 'export default \"index\";',\n 'node_modules/foo/lib/bar.js': 'export default \"foo\";',\n });\n\n expect(await init({ cwd: testPath })).toEqual({ changeCount: 1 });\n\n const configPath = getConfigPath(testPath);\n expect(await isFile(configPath)).toBe(true);\n expect(await readJson(configPath)).toMatchInlineSnapshot(`\n {\n \"packageOverrides\": [\n {\n \"name\": \"foo\",\n \"overrides\": {\n \"exports\": {\n \".\": {\n \"default\": \"./lib/index.js\",\n },\n \"./lib/bar\": {\n \"default\": \"./lib/bar.js\",\n },\n },\n },\n \"versionRequirement\": \"1.0.0\",\n },\n ],\n }\n `);\n });\n\n it('can modify inner-repo packages if the fix option is specified and a package needs an override', async () => {\n testPath = await createTestFileStructure(\n {\n 'app/package.json': {\n name: 'test-package',\n version: '1.0.0',\n main: 'lib/index.js',\n dependencies: {\n library: '1.0.0',\n },\n },\n 'app/src/index.ts': 'import foo from \"library/lib/bar\"; console.log(foo);',\n 'library/package.json': {\n name: 'library',\n version: '1.0.0',\n main: 'lib/index.js',\n },\n 'library/lib/index.js': 'export default \"index\";',\n 'library/lib/bar.js': 'export default \"bar\";',\n },\n { links: { 'app/node_modules/library': 'library' } },\n );\n\n await init({ cwd: path.join(testPath, 'app'), fix: true });\n\n // There are no overrides required in this scenario; everything is fixed locally, so no\n // config file should be created.\n expect(await isFile(getConfigPath(testPath))).toBe(false);\n\n // Both the app and the library should have been fixed to have the correct exports map.\n\n // The app package shouldn't require an exports map; no changes expected.\n const appDefinition = (await readJson(path.join(testPath, 'app/package.json'))) as PackageJson;\n expect(appDefinition.exports).toBeUndefined();\n\n // The library exports should have the main entry hoisted (\".\"), as well as the \"./lib/bar\" import that the app\n // depends on. There should be no source/typings as the library only has a js file and no src/*.ts\n // files.\n const libraryDefinition = (await readJson(path.join(testPath, 'library/package.json'))) as PackageJson;\n expect(libraryDefinition.exports).toMatchInlineSnapshot(`\n {\n \".\": {\n \"default\": \"./lib/index.js\",\n },\n \"./lib/bar\": {\n \"default\": \"./lib/bar.js\",\n },\n }\n `);\n });\n\n it('can avoids modifying external packages if the fix option is specified and a package needs an override', async () => {\n testPath = await createTestFileStructure({\n 'package.json': {\n name: 'test-package',\n version: '1.0.0',\n main: 'lib/index.js',\n dependencies: {\n library: '1.0.0',\n },\n },\n 'src/index.ts': 'import foo from \"library/lib/bar\"; console.log(foo);',\n 'node_modules/library/package.json': {\n name: 'library',\n version: '1.0.0',\n main: 'lib/index.js',\n },\n 'node_modules/library/lib/index.js': 'export default \"index\";',\n 'node_modules/library/lib/bar.js': 'export default \"bar\";',\n });\n\n await init({ cwd: testPath, fix: true });\n\n // An override config would be created for this scenario.\n const config = await readConfig(testPath);\n expect(config).toMatchInlineSnapshot(`\n {\n \"packageOverrides\": [\n {\n \"name\": \"library\",\n \"overrides\": {\n \"exports\": {\n \".\": {\n \"default\": \"./lib/index.js\",\n },\n \"./lib/bar\": {\n \"default\": \"./lib/bar.js\",\n },\n },\n },\n \"versionRequirement\": \"1.0.0\",\n },\n ],\n }\n `);\n\n // The library package shouldn't be modified.\n const libraryDefinition = (await readJson(path.join(testPath, 'node_modules/library/package.json'))) as PackageJson;\n expect(libraryDefinition.exports).toBeUndefined();\n });\n\n it('can update an existing exports map when fix is provided', async () => {\n testPath = await createTestFileStructure(\n {\n 'app/package.json': {\n name: 'test-package',\n version: '1.0.0',\n main: 'lib/index.js',\n dependencies: {\n library: '1.0.0',\n },\n },\n 'app/src/index.ts': 'import bar from \"library/lib/bar\"; console.log(bar);',\n 'library/package.json': {\n name: 'library',\n version: '1.0.0',\n exports: {\n '.': {\n default: './lib/index.js',\n },\n },\n },\n 'library/lib/index.js': 'export default \"index\";',\n 'library/lib/bar.js': 'export default \"bar\";',\n },\n { links: { 'app/node_modules/library': 'library' } },\n );\n\n await init({ cwd: path.join(testPath, 'app'), fix: true });\n\n expect(await isFile(getConfigPath(testPath))).toBe(false);\n expect(await readJson(path.join(testPath, 'library/package.json'))).toMatchInlineSnapshot(`\n {\n \"exports\": {\n \".\": {\n \"default\": \"./lib/index.js\",\n },\n \"./lib/bar\": {\n \"default\": \"./lib/bar.js\",\n },\n },\n \"name\": \"library\",\n \"version\": \"1.0.0\",\n }\n `);\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"patchAllInternalPackageExports.js","sourceRoot":"","sources":["../../../src/commands/init/patchAllInternalPackageExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,OAGpD;IACC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAEjD,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAE5C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAChD,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE1D,IAAI,QAAQ,CAAC,cAAc,EAAE;YAC3B,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAClE,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC1E;SACF;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"patchAllInternalPackageExports.js","sourceRoot":"","sources":["../../../src/commands/init/patchAllInternalPackageExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,OAGpD;IACC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAEjD,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAE5C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAChD,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE1D,IAAI,QAAQ,CAAC,cAAc,EAAE;YAC3B,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAClE,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC1E;SACF;KACF;AACH,CAAC","sourcesContent":["import { patchPackageExports } from './patchPackageExports.js';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport type { PackageOverride } from '../../types.js';\n\n/**\n * Update internal package.json definitions with required exports map entries. Used when the init \"fix\" option\n * is provided.\n */\nexport async function patchAllInternalPackageExports(options: {\n resolveMap: ResolveMap;\n packageOverrides: PackageOverride[];\n}) {\n const { resolveMap, packageOverrides } = options;\n\n console.info('Patching package exports...');\n\n for (const mapEntry of Object.values(resolveMap)) {\n await patchPackageExports({ mapEntry, packageOverrides });\n\n if (mapEntry.scopedVersions) {\n for (const scopedVersion of Object.values(mapEntry.scopedVersions)) {\n await patchPackageExports({ mapEntry: scopedVersion, packageOverrides });\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"patchPackageExports.js","sourceRoot":"","sources":["../../../src/commands/init/patchPackageExports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAK1E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA2E;IACnH,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE/C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAEhE,2BAA2B;QAC3B,MAAM,UAAU,GAA4B,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE3E,IAAI,UAAU,EAAE;YACd,uBAAuB;YACvB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExF,IAAI,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;gBAChC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;gBAChD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;gBAEtE,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE;SACF;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"patchPackageExports.js","sourceRoot":"","sources":["../../../src/commands/init/patchPackageExports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAK1E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA2E;IACnH,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE/C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAEhE,2BAA2B;QAC3B,MAAM,UAAU,GAA4B,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE3E,IAAI,UAAU,EAAE;YACd,uBAAuB;YACvB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExF,IAAI,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;gBAChC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;gBAChD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;gBAEtE,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;aAChE;SACF;KACF;AACH,CAAC","sourcesContent":["import path from 'path';\nimport { isExternalPackage } from '@ms-cloudpack/package-utilities';\nimport { writeJson, readJson } from '@ms-cloudpack/json-utilities';\nimport { findPackageOverride } from '../../common/findPackageOverride.js';\nimport type { ResolveMapEntry } from '@ms-cloudpack/package-utilities';\nimport type { PackageOverride } from '../../types.js';\nimport type { PackageJson } from '@ms-cloudpack/bundler-types';\n\n/**\n * Update a single package.json definition with the required exports map entries.\n */\nexport async function patchPackageExports(options: { mapEntry: ResolveMapEntry; packageOverrides: PackageOverride[] }) {\n const { mapEntry, packageOverrides } = options;\n\n if (!isExternalPackage(mapEntry.path)) {\n const definitionPath = path.join(mapEntry.path, 'package.json');\n\n // Read the raw definition.\n const definition: PackageJson | undefined = await readJson(definitionPath);\n\n if (definition) {\n // Remove the override.\n const override = findPackageOverride(packageOverrides, mapEntry.name, mapEntry.version);\n\n if (override?.overrides?.exports) {\n definition.exports = override.overrides.exports;\n await writeJson(path.join(mapEntry.path, 'package.json'), definition);\n\n packageOverrides.splice(packageOverrides.indexOf(override), 1);\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"preparePackageOverride.js","sourceRoot":"","sources":["../../../src/commands/init/preparePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E;;GAEG;AAEH,MAAM,UAAU,sBAAsB,CAAC,OAMtC;IACC,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC5F,MAAM,kBAAkB,GACtB,UAAU,CAAC,YAAY,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1D,UAAU,CAAC,gBAAgB,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9D,GAAG,CAAC;IAEN,IAAI,aAAa,GAAG,mBAAmB,CACrC,gBAAgB,EAChB,oBAAoB,CAAC,IAAI,IAAI,EAAE,EAC/B,oBAAoB,CAAC,OAAO,IAAI,EAAE,CACnC,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,GAAG;YACd,IAAI,EAAE,oBAAoB,CAAC,IAAI,IAAI,EAAE;YACrC,kBAAkB;YAElB,SAAS,EAAE;gBACT,OAAO;aACR;SACF,CAAC;QAEF,IAAI,UAAU,EAAE;YACd,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;SACjC;QAED,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,OAAO,aAAiF,CAAC;AAC3F,CAAC"}
1
+ {"version":3,"file":"preparePackageOverride.js","sourceRoot":"","sources":["../../../src/commands/init/preparePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E;;GAEG;AAEH,MAAM,UAAU,sBAAsB,CAAC,OAMtC;IACC,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC5F,MAAM,kBAAkB,GACtB,UAAU,CAAC,YAAY,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1D,UAAU,CAAC,gBAAgB,EAAE,CAAC,oBAAoB,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9D,GAAG,CAAC;IAEN,IAAI,aAAa,GAAG,mBAAmB,CACrC,gBAAgB,EAChB,oBAAoB,CAAC,IAAI,IAAI,EAAE,EAC/B,oBAAoB,CAAC,OAAO,IAAI,EAAE,CACnC,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,GAAG;YACd,IAAI,EAAE,oBAAoB,CAAC,IAAI,IAAI,EAAE;YACrC,kBAAkB;YAElB,SAAS,EAAE;gBACT,OAAO;aACR;SACF,CAAC;QAEF,IAAI,UAAU,EAAE;YACd,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;SACjC;QAED,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,OAAO,aAAiF,CAAC;AAC3F,CAAC","sourcesContent":["import { findPackageOverride } from '../../common/findPackageOverride.js';\nimport type { PackageOverride } from '../../types.js';\nimport type { PackageJson, PackageJsonExports } from '@ms-cloudpack/bundler-types';\n\n/**\n * Returns an existing package override, or if missing, creates one and returns that.\n */\n\nexport function preparePackageOverride(options: {\n definition: PackageJson;\n dependencyDefinition: PackageJson;\n exports: PackageJsonExports;\n isInternal: boolean;\n packageOverrides: PackageOverride[];\n}): PackageOverride & { overrides: { exports: PackageJsonExports } } {\n const { definition, dependencyDefinition, exports, isInternal, packageOverrides } = options;\n const versionRequirement =\n definition.dependencies?.[dependencyDefinition.name || ''] ||\n definition.peerDependencies?.[dependencyDefinition.name || ''] ||\n '*';\n\n let entryOverride = findPackageOverride(\n packageOverrides,\n dependencyDefinition.name || '',\n dependencyDefinition.version || '',\n );\n\n if (!entryOverride) {\n entryOverride = {\n name: dependencyDefinition.name || '',\n versionRequirement,\n\n overrides: {\n exports,\n },\n };\n\n if (isInternal) {\n entryOverride.isInternal = true;\n }\n\n packageOverrides.push(entryOverride);\n }\n\n return entryOverride as PackageOverride & { overrides: { exports: PackageJsonExports } };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/init/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/init/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Defines the options for the \"init\" command.\n */\nexport interface InitOptions {\n /**\n * Whether to apply fixes to all identified issues in internal packages.\n */\n fix?: boolean;\n\n /**\n * Whether to ignore existing overrides when determining all entries.\n */\n reset?: boolean;\n\n /**\n * Current working directory.\n */\n cwd?: string;\n\n /**\n * Whether to fail on missing exports.\n */\n check?: boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../../src/commands/start/TaskRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../../../src/commands/start/TaskRunner.ts"],"names":[],"mappings":"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","sourcesContent":["import PQueue from 'p-queue';\nimport type { Task, TaskOptions } from '../../types.js';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst log = (...messages: unknown[]) => {\n // console.log(`TaskRunner:`, ...messages);\n};\n\n/**\n * TaskRunner class manages the state of Tasks.\n * This class is to be called by the api server.\n */\nexport class TaskRunner {\n private _queue: PQueue;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _pendingTasks: Map<string, Promise<any>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _completedTasks: Map<string, any>;\n private _requiresRerun: Set<string>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _prevTasks: Map<string, Task<any>>;\n\n constructor() {\n this._queue = new PQueue({ concurrency: 10 });\n this._pendingTasks = new Map();\n this._completedTasks = new Map();\n this._requiresRerun = new Set();\n this._prevTasks = new Map();\n }\n\n /**\n * The add method enqueues a Task and returns its Promise.\n * If a Task with the same id has already been processed,\n * it returns either the result or the promise.\n * Rerun flag forces the Task to be run again.\n */\n add<TReturn>(task: Task<TReturn>, options?: TaskOptions): Promise<TReturn> {\n const { name, id, execute } = task;\n const { rerun, watch } = options || {};\n\n watch?.();\n\n if (!this._prevTasks.get(id)) {\n this._prevTasks.set(id, task);\n }\n\n // Check if we are already completed the task with that id.\n const action = this._completedTasks.get(id) as TReturn | undefined;\n if (action !== undefined && !rerun) {\n log(`Previous action found, returning: \"${name}:${id}\"`);\n return Promise.resolve(action);\n }\n\n // Check if we are already running the task with that id.\n const pending = this._pendingTasks.get(id) as Promise<TReturn> | undefined;\n if (pending !== undefined) {\n if (rerun) {\n this._requiresRerun.add(id);\n }\n log(`Previous action found, waiting: \"${name}:${id}\"`);\n return pending;\n }\n\n const resultPromise = (async () => {\n let taskResult: TReturn | undefined;\n let taskError: unknown;\n let completed = false;\n\n do {\n // Delete from rerun list (if present).\n this._requiresRerun.delete(id);\n try {\n // TODO: possibly remove cast once this issue is resolved\n // https://github.com/sindresorhus/p-queue/issues/175\n taskResult = (await this._queue.add(execute)) as TReturn | undefined;\n completed = true;\n } catch (err) {\n // Save the error--it will be thrown later if a rerun was not requested.\n taskError = err;\n }\n } while (this._requiresRerun.has(id));\n\n log(`Task finished: \"${name}:${id}\"`);\n\n // Delete from pending list.\n this._pendingTasks.delete(id);\n\n if (completed) {\n // Update finished Tasks.\n this._completedTasks.set(id, taskResult);\n // Resolve the promise.\n return taskResult as TReturn;\n }\n\n // If the task never completed successfully, throw the error from earlier.\n throw taskError;\n })();\n\n this._pendingTasks.set(id, resultPromise);\n this._completedTasks.delete(id);\n\n return resultPromise;\n }\n\n /**\n * The reset method removes a task from the TaskRunner\n * and then adds it again through a previous execute function.\n *\n * This is useful for when a task needs to be forcibly rerun.\n *\n * It is intented to be used by the api server\n * to rerun a task when it is stuck or it failed.\n */\n reset<TReturn>(id: string): Promise<TReturn> {\n this.remove(id);\n const prevTask = this._prevTasks.get(id);\n if (prevTask === undefined) {\n throw new Error(`Task not found: ${id}`);\n }\n return <Promise<TReturn>>this.add(prevTask, { rerun: true });\n }\n\n /**\n * The remove method disposes a task if available\n * and then removes it from the TaskRunner.\n *\n * This is useful when the state of a task needs to be cleared.\n *\n * It is intented to be used by the api server\n * to clear the TaskRunner's state before reloading the page.\n */\n remove(id: string): void {\n this._prevTasks\n .get(id)\n ?.dispose?.()\n .catch(() => {\n log(`Error disposing task: ${id}`);\n });\n this._prevTasks.get(id)?.clear?.();\n this._requiresRerun.delete(id);\n this._pendingTasks.delete(id);\n this._completedTasks.delete(id);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../../src/commands/start/addOverride.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAChC,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,GAMT;IACC,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,QAAQ,EAAE;QACZ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,mCAAmC,WAAW,iBAAiB,CAAC,CAAC;QAC/E,OAAO;KACR;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAA2C,CAAC;IAE5F,MAAM,kBAAkB,CAAC;QACvB,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,WAAW;QACjB,kBAAkB,EAAE,KAAK,CAAC,OAAO;QACjC,SAAS,EAAE;YACT,OAAO;SACR;KACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D,kCAAkC;IAClC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;QACrC,eAAe,CAAC,gBAAgB,GAAG,CAAC,eAAe,CAAC,CAAC;KACtD;SAAM;QACL,oCAAoC;QACpC,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAC5D,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAChH,CAAC;QAEF,IAAI,gBAAgB,EAAE;YACpB,4BAA4B;YAC5B,gBAAgB,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;SACxD;aAAM;YACL,oBAAoB;YACpB,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACxD;KACF;IAED,gBAAgB;IAChB,MAAM,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,sBAAsB,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAoB;QAChC,gBAAgB,EAAE,CAAC,eAAe,CAAC;KACpC,CAAC;IAEF,gCAAgC;IAChC,kBAAkB,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/F,CAAC"}
1
+ {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../../src/commands/start/addOverride.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAChC,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,GAMT;IACC,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,QAAQ,EAAE;QACZ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,mCAAmC,WAAW,iBAAiB,CAAC,CAAC;QAC/E,OAAO;KACR;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAA2C,CAAC;IAE5F,MAAM,kBAAkB,CAAC;QACvB,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,WAAW;QACjB,kBAAkB,EAAE,KAAK,CAAC,OAAO;QACjC,SAAS,EAAE;YACT,OAAO;SACR;KACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D,kCAAkC;IAClC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;QACrC,eAAe,CAAC,gBAAgB,GAAG,CAAC,eAAe,CAAC,CAAC;KACtD;SAAM;QACL,oCAAoC;QACpC,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAC5D,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAChH,CAAC;QAEF,IAAI,gBAAgB,EAAE;YACpB,4BAA4B;YAC5B,gBAAgB,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;SACxD;aAAM;YACL,oBAAoB;YACpB,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACxD;KACF;IAED,gBAAgB;IAChB,MAAM,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,sBAAsB,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAoB;QAChC,gBAAgB,EAAE,CAAC,eAAe,CAAC;KACpC,CAAC;IAEF,gCAAgC;IAChC,kBAAkB,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/F,CAAC","sourcesContent":["import semver from 'semver';\nimport { createPackageOverrideTransform } from '../../common/createPackageOverrideTransform.js';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n getExportsMap,\n PackageDefinitions,\n} from '@ms-cloudpack/package-utilities';\nimport type { CloudpackConfig, Session, PackageOverride } from '../../types.js';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { parseRequestInfo } from './parseRequestInfo.js';\nimport { readConfig, writeConfig } from '../../common/config.js';\n\nexport async function addOverride({\n session,\n packageName,\n importPath,\n filename,\n}: {\n session: Session;\n packageName: string;\n importPath: string;\n filename?: string;\n}) {\n let definition = undefined;\n\n if (filename) {\n const requestPath = slash(new URL(filename).pathname);\n const { packageName: name, version } = parseRequestInfo(requestPath);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (entry === undefined) {\n console.error(`Could not find entry of package ${packageName} in resolve map`);\n return;\n }\n\n const exports = (await getExportsMap(entry.path)) as Record<string, Record<string, string>>;\n\n await addExportsMapEntry({\n exports,\n packagePath: entry.path,\n importPath,\n });\n\n const packageOverride: PackageOverride = {\n name: packageName,\n versionRequirement: entry.version,\n overrides: {\n exports,\n },\n };\n\n // Parse config if it exists.\n const cloudpackConfig = await readConfig(session.appPath);\n\n // Add package override to config.\n if (!cloudpackConfig.packageOverrides) {\n cloudpackConfig.packageOverrides = [packageOverride];\n } else {\n // Check if override already exists.\n const existingOverride = cloudpackConfig.packageOverrides.find(\n (o) =>\n o.name === packageOverride.name && semver.satisfies(packageOverride.versionRequirement, o.versionRequirement),\n );\n\n if (existingOverride) {\n // Update existing override.\n existingOverride.overrides = packageOverride.overrides;\n } else {\n // Add new override.\n cloudpackConfig.packageOverrides.push(packageOverride);\n }\n }\n\n // Write config.\n await writeConfig(cloudpackConfig, session.appPath);\n console.debug(`Added override for ${packageName} to cloudpack config`);\n\n const override: CloudpackConfig = {\n packageOverrides: [packageOverride],\n };\n\n // Initialize package overrides.\n PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(override));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"addOverride.test.js","sourceRoot":"","sources":["../../../src/commands/start/addOverride.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addOverride.test.js","sourceRoot":"","sources":["../../../src/commands/start/addOverride.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect, beforeEach, afterEach, beforeAll } from '@jest/globals';\nimport path from 'path';\nimport { createResolveMap, PackageDefinitions } from '@ms-cloudpack/package-utilities';\nimport { createTestFileStructure } from '@ms-cloudpack/test-utilities';\nimport type { Session } from '../../types.js';\nimport { addOverride } from './addOverride.js';\nimport fs from 'fs';\nimport { reporter, noLoggingConfig } from '../../reporter.js';\nimport { readConfig } from '../../common/config.js';\n\nconst { rm } = fs.promises;\n\ndescribe('addOverride', () => {\n let testPath: string | undefined;\n\n beforeAll(() => {\n reporter.setOptions(noLoggingConfig);\n });\n\n beforeEach(() => {\n PackageDefinitions.getInstance().clear();\n PackageDefinitions.getInstance().clearTransforms();\n });\n\n afterEach(async () => {\n if (testPath) {\n await rm(testPath, { recursive: true });\n testPath = undefined;\n }\n });\n\n it('can add override for file without filename', async () => {\n testPath = await createTestFileStructure({\n 'package.json': {\n name: 'test-project-1',\n version: '0.0.1',\n type: 'module',\n exports: {\n '.': './lib/index.js',\n },\n dependencies: {\n a: '^1.0.0',\n },\n },\n 'node_modules/a/package.json': {\n name: 'a',\n version: '1.0.0',\n main: 'index.js',\n },\n 'node_modules/a/index.js': `export const a = () => 'a';`,\n 'node_modules/a/other/path/file.js': `export const other = () => 'other';`,\n });\n\n await addOverride({\n session: {\n appPath: testPath,\n resolveMap: await createResolveMap({ appPath: testPath }),\n } as Session,\n packageName: 'a',\n importPath: 'other/path/file',\n });\n\n const result = await readConfig(testPath);\n\n expect(result.packageOverrides).toEqual([\n {\n name: 'a',\n versionRequirement: '1.0.0',\n overrides: {\n exports: {\n '.': {\n default: './index.js',\n },\n './other/path/file': {\n default: './other/path/file.js',\n },\n },\n },\n },\n ]);\n\n expect(await PackageDefinitions.getInstance().get(path.join(testPath, 'node_modules/a/'))).toEqual({\n exports: {\n '.': {\n default: './index.js',\n },\n './other/path/file': {\n default: './other/path/file.js',\n },\n },\n main: 'index.js',\n name: 'a',\n version: '1.0.0',\n });\n });\n\n it('can add override for scoped version with filename', async () => {\n testPath = await createTestFileStructure({\n 'package.json': {\n name: 'test-project-2',\n version: '0.0.1',\n type: 'module',\n exports: {\n '.': './lib/index.js',\n },\n dependencies: {\n a: '1.0.0',\n b: '1.0.0',\n c: '1.0.0',\n },\n },\n 'node_modules/a/package.json': {\n name: 'a',\n version: '1.0.0',\n main: 'index.js',\n dependencies: {\n c: '2.0.0',\n },\n },\n 'node_modules/a/node_modules/c/package.json': {\n name: 'c',\n version: '2.0.0',\n main: 'index.js',\n },\n 'node_modules/a/node_modules/c/index.js': `export const c = () => 'c';`,\n 'node_modules/a/node_modules/c/other/path/file.js': `export const other = () => 'other';`,\n 'node_modules/b/package.json': {\n name: 'b',\n version: '1.0.0',\n main: 'index.js',\n dependencies: {\n c: '3.0.0',\n },\n },\n 'node_modules/b/node_modules/c/package.json': {\n name: 'c',\n version: '3.0.0',\n main: 'index.js',\n },\n 'node_modules/c/package.json': {\n name: 'c',\n version: '1.0.0',\n main: 'index.js',\n },\n });\n\n await addOverride({\n session: {\n appPath: testPath,\n resolveMap: await createResolveMap({ appPath: testPath }),\n } as Session,\n packageName: 'c',\n importPath: 'other/path/file',\n filename: 'http://localhost/a@1.0.0/index.js',\n });\n\n const result = await readConfig(testPath);\n\n expect(result).toEqual({\n packageOverrides: [\n {\n name: 'c',\n versionRequirement: '2.0.0',\n overrides: {\n exports: {\n '.': {\n default: './index.js',\n },\n './other/path/file': {\n default: './other/path/file.js',\n },\n },\n },\n },\n ],\n });\n\n expect(await PackageDefinitions.getInstance().get(path.join(testPath, 'node_modules/a/node_modules/c'))).toEqual({\n exports: {\n '.': {\n default: './index.js',\n },\n './other/path/file': {\n default: './other/path/file.js',\n },\n },\n main: 'index.js',\n name: 'c',\n version: '2.0.0',\n });\n });\n\n it('can not add override when the file does not exist', async () => {\n testPath = await createTestFileStructure({\n 'package.json': {\n name: 'test-project-3',\n version: '0.0.1',\n type: 'module',\n exports: {\n '.': './lib/index.js',\n },\n dependencies: {\n a: '^1.0.0',\n },\n },\n 'node_modules/a/package.json': {\n name: 'a',\n version: '1.0.0',\n main: 'index.js',\n },\n });\n\n await addOverride({\n session: {\n appPath: testPath,\n resolveMap: await createResolveMap({ appPath: testPath }),\n } as Session,\n packageName: 'a',\n importPath: 'other/path/file',\n });\n\n const result = await readConfig(testPath);\n\n expect(result.packageOverrides).toEqual([\n {\n name: 'a',\n versionRequirement: '1.0.0',\n overrides: {\n exports: {},\n },\n },\n ]);\n\n expect(await PackageDefinitions.getInstance().get(path.join(testPath, 'node_modules/a/'))).toEqual({\n main: 'index.js',\n name: 'a',\n version: '1.0.0',\n exports: {},\n });\n });\n\n it('can not add override when the package is not a dependency', async () => {\n testPath = await createTestFileStructure({\n 'package.json': {\n name: 'test-project-4',\n version: '0.0.1',\n type: 'module',\n exports: {\n '.': './lib/index.js',\n },\n },\n 'node_modules/a/package.json': {\n name: 'a',\n version: '1.0.0',\n main: 'index.js',\n },\n 'node_modules/a/other/path/file.js': `export const other = () => 'other';`,\n });\n\n await addOverride({\n session: {\n appPath: testPath,\n resolveMap: await createResolveMap({ appPath: testPath }),\n } as Session,\n packageName: 'a',\n importPath: 'other/path/file',\n });\n\n const result = await readConfig(testPath);\n\n expect(result).toStrictEqual({});\n expect(await PackageDefinitions.getInstance().get(path.join(testPath, 'node_modules/a/'))).toEqual({\n main: 'index.js',\n name: 'a',\n version: '1.0.0',\n });\n });\n});\n"]}
@@ -4,8 +4,8 @@ import { slash } from '@ms-cloudpack/path-string-parsing';
4
4
  import path from 'path';
5
5
  import { error } from './error.js';
6
6
  import { getHtmlResponse } from './getHtmlResponse.js';
7
+ import { getInlineScripts } from './inlineScripts/getInlineScripts.js';
7
8
  import { handleSessionVersion } from './handleSessionVersion.js';
8
- import { inlineScripts } from './inlineScripts.js';
9
9
  import { log } from './log.js';
10
10
  import { setHeaders } from './setHeaders.js';
11
11
  /**
@@ -46,6 +46,7 @@ export function createRoutes({ app, url, session, definition, bundleServer, apiS
46
46
  // that can only accept changing the scripts. We should consider moving to a model where an initial script
47
47
  // fetch loads the import map and sets Cloudpack settings in local storage rather than headers/cookies.
48
48
  setHeaders({ res, session, apiServer });
49
+ const inlineScripts = await getInlineScripts();
49
50
  const { html, statusCode } = await getHtmlResponse({
50
51
  route,
51
52
  baseUrl: url,
@@ -1 +1 @@
1
- {"version":3,"file":"createRoutes.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/createRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createRoutes.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/createRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PackageJson } from '@ms-cloudpack/bundler-types';\nimport type { Express, Request, Response } from '@ms-cloudpack/create-express-app';\nimport { express } from '@ms-cloudpack/create-express-app';\nimport { createImportMap } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport path from 'path';\nimport type { ApiServer, BundleServer, CloudpackConfig, Session } from '../../../types.js';\nimport { error } from './error.js';\nimport { getHtmlResponse } from './getHtmlResponse.js';\nimport { getInlineScripts } from './inlineScripts/getInlineScripts.js';\nimport { handleSessionVersion } from './handleSessionVersion.js';\nimport { log } from './log.js';\nimport { setHeaders } from './setHeaders.js';\n\n/**\n * Creates the routes for the express app, considering how the config is defined.\n */\nexport function createRoutes({\n app,\n url,\n session,\n definition,\n bundleServer,\n apiServer,\n config,\n}: {\n app: Express;\n url: string;\n session: Session;\n definition: PackageJson;\n bundleServer: BundleServer;\n apiServer: ApiServer;\n config: CloudpackConfig;\n}) {\n const routes = [...(config.devServer?.routes || [])];\n const hasDefaultRoute = routes.some((route) => route.match === '*' || route.match === '/');\n\n if (!hasDefaultRoute) {\n routes.push({\n match: '*',\n exportEntry: '.',\n });\n }\n\n for (const route of routes) {\n if (route.staticPath) {\n app.use(route.match, express.static(path.resolve(session.appPath, route.staticPath)));\n } else {\n app.get(route.match, (req: Request, res: Response) => {\n (async () => {\n // Build the import map if it hasn't been built yet for this session version.\n const sessionVersion = handleSessionVersion(session, req);\n const importMap =\n session.getImportMap() ||\n session.setImportMap(\n await createImportMap(session.resolveMap, bundleServer.url, {\n sessionVersion,\n targetVersions: session.targetVersions,\n }),\n );\n\n // Parse the request path, extension, grab the overlay script path.\n const requestPath = slash(req.path.substring(1));\n const requestExt = path.extname(requestPath);\n const overlayScript = importMap.imports['@ms-cloudpack/overlay'];\n const entryScript =\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n route.exportEntry && importMap.imports[slash(path.join(definition.name!, route.exportEntry))];\n\n // Set the apppropriate Cloudpack headers/cookies in the response.\n // TODO: setting the headers here prohibits cases where the page rendering is owned by existing server code\n // that can only accept changing the scripts. We should consider moving to a model where an initial script\n // fetch loads the import map and sets Cloudpack settings in local storage rather than headers/cookies.\n setHeaders({ res, session, apiServer });\n\n const inlineScripts = await getInlineScripts();\n const { html, statusCode } = await getHtmlResponse({\n route,\n baseUrl: url,\n importMap,\n overlayScript,\n entryScript,\n session,\n definition,\n inlineScripts,\n });\n\n // Send the result.\n res.status(statusCode).send(html).end();\n\n log(`App server: Request: ${requestPath}, ext: ${requestExt}`);\n })().catch((err) => {\n error((err as Error)?.stack || err);\n res.status(500).send(`Error loading app: ${err}`);\n });\n });\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/error.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,GAAG,QAAmB;IAC1C,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/error.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,GAAG,QAAmB;IAC1C,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["export function error(...messages: unknown[]) {\n console.error(`AppServer:`, ...messages);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"exitIfPortUnavailable.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/exitIfPortUnavailable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,WAAmB,EAAE,KAAwB;IAC/F,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,8BAA8B,EAAE;QAC1E,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAC/D,CAAC,CAAC,iKAAiK;YACnK,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CACH,8BAA8B,WAAW,0DAA0D,SAAS,CAAC,IAAI,CAC/G,IAAI,CACL,uCAAuC,EACxC,mBAAmB,CACpB,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC"}
1
+ {"version":3,"file":"exitIfPortUnavailable.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/exitIfPortUnavailable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,WAAmB,EAAE,KAAwB;IAC/F,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,8BAA8B,EAAE;QAC1E,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAC/D,CAAC,CAAC,iKAAiK;YACnK,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CACH,8BAA8B,WAAW,0DAA0D,SAAS,CAAC,IAAI,CAC/G,IAAI,CACL,uCAAuC,EACxC,mBAAmB,CACpB,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC","sourcesContent":["import { error } from './error.js';\n\n/**\n * Report the error and exit if the port is already in use.\n */\nexport function exitIfPortUnavailable(err: unknown, projectName: string, ports: number | number[]) {\n const portRange = typeof ports === 'number' ? [ports] : ports;\n if (err instanceof Error && err.message === 'Specified port not available') {\n const portNeedsPrivileges = portRange.some((port) => port < 1024)\n ? '\\nNote: for Mac/Linux/WSL users, you may need to run Cloudpack with elevated privileges to use port numbers less than 1024. Try running `sudo cloudpack start`.'\n : '';\n error(\n `Cloudpack could not start \"${projectName}\" because no port from the allowed list was available: ${portRange.join(\n ', ',\n )}. Close other programs and try again.`,\n portNeedsPrivileges,\n );\n\n process.exit(1);\n }\n}\n"]}
@@ -1 +1 @@
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"}
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 { CreateHtmlOptions, CreateHtmlResult } from '../../../types.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"]}
@@ -2,7 +2,6 @@ import path from 'path';
2
2
  import { pathToFileURL } from 'url';
3
3
  import { getDefaultHtmlResponse } from './getDefaultHtmlResponse.js';
4
4
  import { JSDOM } from 'jsdom';
5
- import { inlineScripts } from './inlineScripts.js';
6
5
  import fs from 'fs';
7
6
  import { error } from './error.js';
8
7
  const { stat, readFile } = fs.promises;
@@ -10,7 +9,7 @@ const { stat, readFile } = fs.promises;
10
9
  * Get the HTML response for the given route. If the route has a custom render script, use that.
11
10
  */
12
11
  export async function getHtmlResponse(options) {
13
- const { route, session, overlayScript, entryScript } = options;
12
+ const { route, session, overlayScript, entryScript, inlineScripts } = options;
14
13
  let createHtml = getDefaultHtmlResponse;
15
14
  if (route.renderScript) {
16
15
  const renderScriptPath = path.resolve(session.appPath, route.renderScript);
@@ -55,7 +54,6 @@ export async function getHtmlResponse(options) {
55
54
  script.innerHTML = JSON.stringify(session.getImportMap(), null, 2);
56
55
  document.head.prepend(script);
57
56
  }
58
- // inject inline scripts.
59
57
  for (const inlineScript of inlineScripts) {
60
58
  const script = document.createElement('script');
61
59
  script.type = 'module';
@@ -1 +1 @@
1
- {"version":3,"file":"getHtmlResponse.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/getHtmlResponse.ts"],"names":[],"mappings":"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"}
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 { CreateHtmlOptions, CreateHtmlResult, CreateHtmlFunction, CreateHtmlScript } from '../../../types.js';\nimport { getDefaultHtmlResponse } from './getDefaultHtmlResponse.js';\nimport { JSDOM } from 'jsdom';\nimport fs from 'fs';\nimport { error } from './error.js';\n\nconst { stat, readFile } = fs.promises;\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(options: CreateHtmlOptions): Promise<Exclude<CreateHtmlResult, string>> {\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 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 error(`Error importing render script at \"${renderScriptUrl}\":`, e);\n }\n }\n\n if (!createHtml) {\n error(`The render script at \"${renderScriptPath}\" does not export a default function.`);\n }\n }\n\n const htmlResult = await createHtml(options);\n let html = typeof htmlResult === 'string' ? htmlResult : htmlResult.html;\n const statusCode = typeof htmlResult === 'string' ? 200 : htmlResult.statusCode || 200;\n\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 error(`Error parsing html response for rendering route \"${route.match}\"`, e);\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(path: string): boolean {\n // path has an .htm or .html extension; case insensitive.\n return path.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 readFile(htmlPath, 'utf8')) || '';\n } catch (e) {\n error(`Error reading HTML file at \"${htmlPath}\".`, e);\n }\n }\n\n return html;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleSessionVersion.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/handleSessionVersion.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,GAAY;IACjE,MAAM,kBAAkB,GAAG,MAAM,CAC/B,GAAG,CAAC,OAAO,CAAC,MAAM;QAChB,EAAE,KAAK,CAAC,WAAW,GAAG,4BAA4B,OAAO,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC;QAC7F,EAAE,GAAG,EAAE,IAAI,GAAG,CACjB,CAAC;IACF,OAAO,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAEpD,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"handleSessionVersion.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/handleSessionVersion.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,GAAY;IACjE,MAAM,kBAAkB,GAAG,MAAM,CAC/B,GAAG,CAAC,OAAO,CAAC,MAAM;QAChB,EAAE,KAAK,CAAC,WAAW,GAAG,4BAA4B,OAAO,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC;QAC7F,EAAE,GAAG,EAAE,IAAI,GAAG,CACjB,CAAC;IACF,OAAO,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAEpD,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACrC,CAAC","sourcesContent":["import type { Request } from '@ms-cloudpack/create-express-app';\nimport type { Session } from '../../../types.js';\n\n/**\n * Get the latest refresh version either from the cookie in request or from the session.\n * Update the session with the latest refresh version.\n */\nexport function handleSessionVersion(session: Session, req: Request) {\n const lastSessionVersion = Number(\n req.headers.cookie\n ?.match('(^|;)\\\\s*' + `cloudpack-sessionVersion-${session.projectName}` + '\\\\s*=\\\\s*([^;]+)')\n ?.pop() || '0',\n );\n session.incrementSessionVersion(lastSessionVersion);\n\n return session.getSessionVersion();\n}\n"]}
@@ -0,0 +1,10 @@
1
+ declare global {
2
+ interface Window {
3
+ __pageErrors: {
4
+ uncaughtErrors: ErrorEvent[];
5
+ uncaughtRejections: PromiseRejectionEvent[];
6
+ unregister: () => void;
7
+ };
8
+ }
9
+ }
10
+ export {};
@@ -0,0 +1,18 @@
1
+ const pageErrors = (window.__pageErrors = {
2
+ uncaughtErrors: [],
3
+ uncaughtRejections: [],
4
+ unregister: () => {
5
+ window.removeEventListener('error', handleError);
6
+ window.removeEventListener('unhandledrejection', handleRejection);
7
+ },
8
+ });
9
+ function handleError(event) {
10
+ pageErrors.uncaughtErrors.push(event);
11
+ }
12
+ function handleRejection(event) {
13
+ pageErrors.uncaughtRejections.push(event);
14
+ }
15
+ window.addEventListener('error', handleError);
16
+ window.addEventListener('unhandledrejection', handleRejection);
17
+ export {};
18
+ //# sourceMappingURL=errorHandler.inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.inline.js","sourceRoot":"","sources":["../../../../../src/commands/start/appServer/inlineScripts/errorHandler.inline.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG;IACxC,cAAc,EAAE,EAAkB;IAClC,kBAAkB,EAAE,EAA6B;IACjD,UAAU,EAAE,GAAG,EAAE;QACf,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,KAAiB;IACpC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,KAA4B;IACnD,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC9C,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC","sourcesContent":["declare global {\n interface Window {\n __pageErrors: {\n uncaughtErrors: ErrorEvent[];\n uncaughtRejections: PromiseRejectionEvent[];\n unregister: () => void;\n };\n }\n}\n\nconst pageErrors = (window.__pageErrors = {\n uncaughtErrors: [] as ErrorEvent[],\n uncaughtRejections: [] as PromiseRejectionEvent[],\n unregister: () => {\n window.removeEventListener('error', handleError);\n window.removeEventListener('unhandledrejection', handleRejection);\n },\n});\n\nfunction handleError(event: ErrorEvent) {\n pageErrors.uncaughtErrors.push(event);\n}\n\nfunction handleRejection(event: PromiseRejectionEvent) {\n pageErrors.uncaughtRejections.push(event);\n}\n\nwindow.addEventListener('error', handleError);\nwindow.addEventListener('unhandledrejection', handleRejection);\n"]}
@@ -0,0 +1 @@
1
+ export declare function getInlineScripts(): Promise<string[]>;
@@ -0,0 +1,15 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const { readFile } = fs.promises;
5
+ const currentPath = fileURLToPath(path.dirname(import.meta.url));
6
+ let inlineScripts;
7
+ // List of files that we will load on demand.
8
+ const inlineScriptFiles = ['errorHandler.inline.js'];
9
+ export async function getInlineScripts() {
10
+ if (!inlineScripts) {
11
+ inlineScripts = await Promise.all(inlineScriptFiles.map((filename) => readFile(path.resolve(currentPath, filename), 'utf-8')));
12
+ }
13
+ return inlineScripts;
14
+ }
15
+ //# sourceMappingURL=getInlineScripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInlineScripts.js","sourceRoot":"","sources":["../../../../../src/commands/start/appServer/inlineScripts/getInlineScripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AACjC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE,IAAI,aAAmC,CAAC;AAExC,6CAA6C;AAC7C,MAAM,iBAAiB,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,aAAa,EAAE;QAClB,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAC5F,CAAC;KACH;IAED,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst { readFile } = fs.promises;\nconst currentPath = fileURLToPath(path.dirname(import.meta.url));\n\nlet inlineScripts: string[] | undefined;\n\n// List of files that we will load on demand.\nconst inlineScriptFiles = ['errorHandler.inline.js'];\n\nexport async function getInlineScripts() {\n if (!inlineScripts) {\n inlineScripts = await Promise.all(\n inlineScriptFiles.map((filename) => readFile(path.resolve(currentPath, filename), 'utf-8')),\n );\n }\n\n return inlineScripts;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/log.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IAC5C,0CAA0C;AAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/log.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,QAAmB,EAAE,EAAE;IAC5C,0CAA0C;AAC5C,CAAC,CAAC","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const log = (...messages: unknown[]) => {\n // console.log(`AppServer:`, ...messages);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"setHeaders.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/setHeaders.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAA6D;IAC/G,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAE/C,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,GAAG,CAAC,MAAM,CAAC,4BAA4B,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,GAAG,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC3F,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"setHeaders.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/setHeaders.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAA6D;IAC/G,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAE/C,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,GAAG,CAAC,MAAM,CAAC,4BAA4B,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,GAAG,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC3F,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC","sourcesContent":["import type { Response } from '@ms-cloudpack/create-express-app';\nimport type { ApiServer, Session } from '../../../types.js';\n\n/**\n * Set the Cloudpack headers and cookies in the response.\n */\nexport function setHeaders({ res, session, apiServer }: { res: Response; session: Session; apiServer: ApiServer }) {\n res.header('Content-Type', 'text/html');\n res.header('Cache-Control', 'no-cache');\n res.header('Access-Control-Allow-Origin', '*');\n\n res.cookie('cloudpack-session-id', session.id);\n res.cookie('cloudpack-session-sequence', session.sequence);\n res.cookie(`cloudpack-sessionVersion-${session.projectName}`, session.getSessionVersion());\n res.cookie('cloudpack-api-url', apiServer.url);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/startAppServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,MAAM,GAAG,EAAqB,GAO/B;IACC,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,MAAM,IAAK,EAAsB,CAAC;IAE7D,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE1D,mEAAmE;IACnE,+EAA+E;IAC/E,oEAAoE;IAEpE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAErD,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAClD,SAAS,EAAE,KAAK;YAChB,oBAAoB;YACpB,QAAQ,EAAE,SAAS,EAAE,MAAM;YAC3B,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK;YACnC,cAAc;YACd,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC1B,YAAY,CAAC;gBACX,GAAG;gBACH,GAAG;gBACH,OAAO;gBACP,UAAU;gBACV,YAAY;gBACZ,SAAS;gBACT,MAAM;aACP,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,OAAO;YACL,KAAK;YACL,IAAI;YACJ,GAAG;SACJ,CAAC;KACH;IAAC,OAAO,GAAY,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,GAAG,CAAC;KACX;AACH,CAAC"}
1
+ {"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/startAppServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,MAAM,GAAG,EAAqB,GAO/B;IACC,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,MAAM,IAAK,EAAsB,CAAC;IAE7D,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE1D,mEAAmE;IACnE,+EAA+E;IAC/E,oEAAoE;IAEpE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAErD,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAClD,SAAS,EAAE,KAAK;YAChB,oBAAoB;YACpB,QAAQ,EAAE,SAAS,EAAE,MAAM;YAC3B,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK;YACnC,cAAc;YACd,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC1B,YAAY,CAAC;gBACX,GAAG;gBACH,GAAG;gBACH,OAAO;gBACP,UAAU;gBACV,YAAY;gBACZ,SAAS;gBACT,MAAM;aACP,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,OAAO;YACL,KAAK;YACL,IAAI;YACJ,GAAG;SACJ,CAAC;KACH;IAAC,OAAO,GAAY,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,GAAG,CAAC;KACX;AACH,CAAC","sourcesContent":["import { createExpressApp } from '@ms-cloudpack/create-express-app';\nimport type { ApiServer, BundleServer, CloudpackConfig, Session } from '../../../types.js';\nimport type { PackageJson } from '@ms-cloudpack/bundler-types';\nimport { createRoutes } from './createRoutes.js';\nimport { exitIfPortUnavailable } from './exitIfPortUnavailable.js';\nimport { reporter } from '../../../reporter.js';\nimport { cyan } from '@ms-cloudpack/task-reporter';\n\n/**\n * The app server hosts the appropriate routes for the web app, primarily returning html content\n * which loads resources from the bundle server.\n *\n * Separating the app server from the bundle service keeps the routes separate - the app server\n * can support whichever routes the app needs, while the bundle server can provide package\n * assets in various forms using its own routing.\n */\nexport async function startAppServer({\n session,\n bundleServer,\n apiServer,\n definition,\n config = {} as CloudpackConfig,\n}: {\n session: Session;\n definition: PackageJson;\n bundleServer: BundleServer;\n apiServer: ApiServer;\n config: CloudpackConfig;\n}) {\n const { devServer = {} } = config || ({} as CloudpackConfig);\n\n // Read the port from the config file or default to array of ports.\n const requireSpecifiedPort = devServer?.port !== undefined;\n const ports = devServer?.port ?? [5000, 5001, 5002, 5003];\n\n // Directory to serve as plain static assets. Defaults to \"public\".\n // Can be overridden by setting the 'publicDir' option in the cloudpack config.\n // const publicDir = path.resolve(devServer.publicPath ?? 'public');\n\n const task = reporter.addTask('Starting app server');\n\n try {\n const { close, port, url } = await createExpressApp({\n portRange: ports,\n requireSpecifiedPort,\n hostname: devServer?.domain,\n sslOptions: config.devServer?.https,\n // publicDir,\n setupCallback: (app, url) =>\n createRoutes({\n app,\n url,\n session,\n definition,\n bundleServer,\n apiServer,\n config,\n }),\n });\n\n task.complete({ message: `Available @ ${cyan(url)}`, forceShow: true });\n\n return {\n close,\n port,\n url,\n };\n } catch (err: unknown) {\n task.complete({ status: 'fail', message: 'Failed to start app server', forceShow: true });\n exitIfPortUnavailable(err, session.projectName, ports);\n\n throw err;\n }\n}\n"]}