@ms-cloudpack/cli 0.33.4 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/lib/commands/init/evaluateImportsForOverrides.d.ts +1 -1
  2. package/lib/commands/init/evaluateImportsForOverrides.js.map +1 -1
  3. package/lib/commands/init/init.js +6 -8
  4. package/lib/commands/init/init.js.map +1 -1
  5. package/lib/commands/init/patchAllInternalPackageExports.d.ts +1 -1
  6. package/lib/commands/init/patchAllInternalPackageExports.js.map +1 -1
  7. package/lib/commands/init/patchPackageExports.d.ts +1 -1
  8. package/lib/commands/init/patchPackageExports.js.map +1 -1
  9. package/lib/commands/init/preparePackageOverride.d.ts +1 -1
  10. package/lib/commands/init/preparePackageOverride.js.map +1 -1
  11. package/lib/commands/start/createBundleTask.js +1 -0
  12. package/lib/commands/start/createBundleTask.js.map +1 -1
  13. package/lib/commands/start/createSession.js +1 -0
  14. package/lib/commands/start/createSession.js.map +1 -1
  15. package/lib/common/findPackageOverride.d.ts +1 -1
  16. package/lib/common/findPackageOverride.js.map +1 -1
  17. package/lib/index.d.ts +1 -1
  18. package/lib/index.js +2 -3
  19. package/lib/index.js.map +1 -1
  20. package/lib/initTelemetry.js +2 -2
  21. package/lib/initTelemetry.js.map +1 -1
  22. package/lib/tasks/getFileSizeSync.js +1 -0
  23. package/lib/tasks/getFileSizeSync.js.map +1 -1
  24. package/lib/types.d.ts +0 -6
  25. package/lib/types.js.map +1 -1
  26. package/package.json +7 -7
  27. package/lib/commands/init/evaluateImportsForOverrides.test.d.ts +0 -1
  28. package/lib/commands/init/evaluateImportsForOverrides.test.js +0 -67
  29. package/lib/commands/init/evaluateImportsForOverrides.test.js.map +0 -1
  30. package/lib/commands/init/findImports.test.d.ts +0 -1
  31. package/lib/commands/init/findImports.test.js +0 -35
  32. package/lib/commands/init/findImports.test.js.map +0 -1
  33. package/lib/commands/init/init.test.d.ts +0 -1
  34. package/lib/commands/init/init.test.js +0 -215
  35. package/lib/commands/init/init.test.js.map +0 -1
  36. package/lib/commands/start/createSession.test.d.ts +0 -1
  37. package/lib/commands/start/createSession.test.js +0 -87
  38. package/lib/commands/start/createSession.test.js.map +0 -1
  39. package/lib/commands/start/parseRequestInfo.test.d.ts +0 -1
  40. package/lib/commands/start/parseRequestInfo.test.js +0 -117
  41. package/lib/commands/start/parseRequestInfo.test.js.map +0 -1
  42. package/lib/getVersion.d.ts +0 -1
  43. package/lib/getVersion.js +0 -15
  44. package/lib/getVersion.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import type { PackageJson, PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
2
2
  import type { ResolveMap } from '@ms-cloudpack/package-utilities';
3
- import type { PackageOverride } from '../../types.js';
3
+ import type { PackageOverride } from '@ms-cloudpack/config';
4
4
  /**
5
5
  * Evaluate the imports depended on by a package to determine if missing exports map paths need to be added.
6
6
  * If so, updates package overrides to the given packageOverrides array.
@@ -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;IACpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,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,MAAM,YAAY,GAAG,YAAY,WAAW,iBAAiB,cAAc,2DAA2D,cAAc,+BAA+B,WAAW,GAAG,CAAC;YAClM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1B,SAAS;SACV;QAED,kCAAkC;QAClC,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,YAAY,GAAG,YAAY,WAAW,iBAAiB,cAAc,SAAS,YAAY,CAAC,IAAI,0CAA0C,CAAC;YAChJ,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1B,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,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,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACjC,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<{ changeCount: number; errors: string[] }> {\n const { packages, imports, definition, packageOverrides, packagePathsToEvaluate, evaluatedPackages, resolveMap } =\n options;\n const displayName = `${definition.name}@${definition.version}`;\n let changeCount = 0;\n const errors: string[] = [];\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 const errorMessage = `Package \"${displayName}\" depends on \"${dependencyName}\" but it was not found in the resolve map. Ensure that \"${dependencyName}\" listed in dependencies of ${displayName}.`;\n console.error(errorMessage);\n errors.push(errorMessage);\n\n continue;\n }\n\n // Load the dependency definition.\n const dependencyDefinition = await packages.get(resolveEntry.path);\n\n if (!dependencyDefinition) {\n const errorMessage = `Package \"${displayName}\" depends on \"${dependencyName}\" at \"${resolveEntry.path}\" but its definition couldn't be loaded.`;\n console.error(errorMessage);\n errors.push(errorMessage);\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 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, errors };\n}\n"]}
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;IACpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,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,MAAM,YAAY,GAAG,YAAY,WAAW,iBAAiB,cAAc,2DAA2D,cAAc,+BAA+B,WAAW,GAAG,CAAC;YAClM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1B,SAAS;SACV;QAED,kCAAkC;QAClC,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,YAAY,GAAG,YAAY,WAAW,iBAAiB,cAAc,SAAS,YAAY,CAAC,IAAI,0CAA0C,CAAC;YAChJ,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1B,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,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,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACjC,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 '@ms-cloudpack/config';\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<{ changeCount: number; errors: string[] }> {\n const { packages, imports, definition, packageOverrides, packagePathsToEvaluate, evaluatedPackages, resolveMap } =\n options;\n const displayName = `${definition.name}@${definition.version}`;\n let changeCount = 0;\n const errors: string[] = [];\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 const errorMessage = `Package \"${displayName}\" depends on \"${dependencyName}\" but it was not found in the resolve map. Ensure that \"${dependencyName}\" listed in dependencies of ${displayName}.`;\n console.error(errorMessage);\n errors.push(errorMessage);\n\n continue;\n }\n\n // Load the dependency definition.\n const dependencyDefinition = await packages.get(resolveEntry.path);\n\n if (!dependencyDefinition) {\n const errorMessage = `Package \"${displayName}\" depends on \"${dependencyName}\" at \"${resolveEntry.path}\" but its definition couldn't be loaded.`;\n console.error(errorMessage);\n errors.push(errorMessage);\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 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, errors };\n}\n"]}
@@ -1,11 +1,11 @@
1
+ import { generatedConfigFileName, readConfig, writeGeneratedConfig } from '@ms-cloudpack/config';
1
2
  import { PackageDefinitions } from '@ms-cloudpack/package-utilities';
2
3
  import { createPackageOverrideTransform } from '../../common/createPackageOverrideTransform.js';
3
- import { configFileName, readConfig, writeConfig } from '@ms-cloudpack/config';
4
+ import { rootSpan } from '../../initTelemetry.js';
4
5
  import { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';
5
6
  import { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';
6
7
  import { getImportsFromBundle } from './getImportsFromBundle.js';
7
8
  import { patchAllInternalPackageExports } from './patchAllInternalPackageExports.js';
8
- import { rootSpan } from '../../initTelemetry.js';
9
9
  /** Given the path, updates the Cloudpack config with overrides and project settings. */
10
10
  export async function init(options) {
11
11
  if (options.check && options.fix) {
@@ -75,12 +75,10 @@ export async function init(options) {
75
75
  }
76
76
  if (changeCount) {
77
77
  // Log the results to a file.
78
- console.log(`Writing results to ${configFileName}...`);
79
- const updatedConfig = {
80
- ...config,
81
- ...(packageOverrides.length ? { packageOverrides } : {}),
82
- };
83
- await writeConfig(updatedConfig, appPath);
78
+ console.log(`Writing updates to "${generatedConfigFileName}". If you're in a git repo, this file should be committed with your project.`);
79
+ if (packageOverrides.length) {
80
+ await writeGeneratedConfig({ packageOverrides }, appPath);
81
+ }
84
82
  }
85
83
  return {
86
84
  changeCount,
@@ -1 +1 @@
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 '@ms-cloudpack/config';\nimport { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';\nimport type { PackageOverride } from '../../types.js';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\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 const result = await evaluateImportsForOverrides({\n definition,\n packages,\n packagePath,\n packagePathsToEvaluate,\n evaluatedPackages,\n imports,\n packageOverrides,\n resolveMap,\n });\n\n if (options.check && (result.changeCount || result.errors.length)) {\n rootSpan?.addEvent('INIT_CHECK_FAILED', {\n reason: result.changeCount ? 'Config needs to be updated.' : result.errors,\n });\n throw Error(\n result.changeCount\n ? 'Run \"cloudpack init --reset\" to update the config.'\n : result.errors.map((e) => e).join('\\n'),\n );\n }\n\n changeCount += result.changeCount;\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
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PackageOverride } from '@ms-cloudpack/config';\nimport { generatedConfigFileName, readConfig, writeGeneratedConfig } from '@ms-cloudpack/config';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport { PackageDefinitions } from '@ms-cloudpack/package-utilities';\nimport { createPackageOverrideTransform } from '../../common/createPackageOverrideTransform.js';\nimport { rootSpan } from '../../initTelemetry.js';\nimport { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\nimport { getImportsFromBundle } from './getImportsFromBundle.js';\nimport { patchAllInternalPackageExports } from './patchAllInternalPackageExports.js';\nimport type { InitOptions } from './types.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 const result = await evaluateImportsForOverrides({\n definition,\n packages,\n packagePath,\n packagePathsToEvaluate,\n evaluatedPackages,\n imports,\n packageOverrides,\n resolveMap,\n });\n\n if (options.check && (result.changeCount || result.errors.length)) {\n rootSpan?.addEvent('INIT_CHECK_FAILED', {\n reason: result.changeCount ? 'Config needs to be updated.' : result.errors,\n });\n throw Error(\n result.changeCount\n ? 'Run \"cloudpack init --reset\" to update the config.'\n : result.errors.map((e) => e).join('\\n'),\n );\n }\n\n changeCount += result.changeCount;\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(\n `Writing updates to \"${generatedConfigFileName}\". If you're in a git repo, this file should be committed with your project.`,\n );\n\n if (packageOverrides.length) {\n await writeGeneratedConfig({ packageOverrides }, appPath);\n }\n }\n\n return {\n changeCount,\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { ResolveMap } from '@ms-cloudpack/package-utilities';
2
- import type { PackageOverride } from '../../types.js';
2
+ import type { PackageOverride } from '@ms-cloudpack/config';
3
3
  /**
4
4
  * Update internal package.json definitions with required exports map entries. Used when the init "fix" option
5
5
  * is provided.
@@ -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","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
+ {"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 '@ms-cloudpack/config';\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,5 +1,5 @@
1
1
  import type { ResolveMapEntry } from '@ms-cloudpack/package-utilities';
2
- import type { PackageOverride } from '../../types.js';
2
+ import type { PackageOverride } from '@ms-cloudpack/config';
3
3
  /**
4
4
  * Update a single package.json definition with the required exports map entries.
5
5
  */
@@ -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","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
+ {"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 '@ms-cloudpack/config';\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,4 +1,4 @@
1
- import type { PackageOverride } from '../../types.js';
1
+ import type { PackageOverride } from '@ms-cloudpack/config';
2
2
  import type { PackageJson, PackageJsonExports } from '@ms-cloudpack/bundler-types';
3
3
  /**
4
4
  * Returns an existing package override, or if missing, creates one and returns that.
@@ -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,OAKtC;IACC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAEhF,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,EAAE,IAAI,oBAAoB,CAAC,OAAO,EAAE;YAEtD,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 dependencyDefinition: PackageJson;\n exports: PackageJsonExports;\n isInternal: boolean;\n packageOverrides: PackageOverride[];\n}): PackageOverride & { overrides: { exports: PackageJsonExports } } {\n const { dependencyDefinition, exports, isInternal, packageOverrides } = options;\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: `^${dependencyDefinition.version}`,\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
+ {"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,OAKtC;IACC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAEhF,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,EAAE,IAAI,oBAAoB,CAAC,OAAO,EAAE;YAEtD,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 '@ms-cloudpack/config';\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 dependencyDefinition: PackageJson;\n exports: PackageJsonExports;\n isInternal: boolean;\n packageOverrides: PackageOverride[];\n}): PackageOverride & { overrides: { exports: PackageJsonExports } } {\n const { dependencyDefinition, exports, isInternal, packageOverrides } = options;\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: `^${dependencyDefinition.version}`,\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"]}
@@ -19,6 +19,7 @@ export function createBundleTask(bundleRequest, options) {
19
19
  clear: () => {
20
20
  bundleRequest.result?.dispose?.();
21
21
  bundleRequest.result = undefined;
22
+ // eslint-disable-next-line no-restricted-syntax -- this function can't be async
22
23
  fs.rmSync(outputPath, { recursive: true, force: true });
23
24
  },
24
25
  onDispose: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"createBundleTask.js","sourceRoot":"","sources":["../../../src/commands/start/createBundleTask.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAA4B,EAAE,OAA2B;IACxF,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAExF,OAAO;QACL,IAAI,EAAE,UAAU,WAAW,IAAI,OAAO,EAAE;QACxC,EAAE;QACF,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;QACvC,KAAK,EAAE,CAAC,UAAU;QAClB,KAAK,CAAC,OAAO;YACX,MAAM,UAAU,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;YAE7C,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YAClC,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC;YACjC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;QACpC,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAW,aAAa,CAAC,MAAM,EAAE,MAAsB;QACvE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,EAAE;YACF,IAAI,EAAE,UAAU,WAAW,IAAI,OAAO,EAAE;YACxC,SAAS,EAAE,WAAW,IAAI,EAAE;YAC5B,UAAU;SACX,CAAC;QACF,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE,CAChC,CAAC;YACC,EAAE;YACF,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;YAClC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;SAChB,CAAA;KAC3B,CAAC;AACJ,CAAC","sourcesContent":["import type { BundleRequest, BundleTaskOptions } from '../../types.js';\nimport type { Task, TaskEndDescription, TaskError } from '@ms-cloudpack/api-server';\nimport path from 'path';\nimport fs from 'fs';\nimport { bundleTask } from '../../tasks/bundleTask.js';\n\n/**\n * Creates a bundle task tracked in the task runner of the api server. This allows active tasks to be tracked\n * remotely (e.g. in the browser) and allows the user to cancel tasks.\n */\nexport function createBundleTask(bundleRequest: BundleRequest, options?: BundleTaskOptions): Task<BundleRequest> {\n const { id, packageName, version, outputPath, packagePath, isExternal } = bundleRequest;\n\n return {\n name: `Bundle ${packageName}@${version}`,\n id,\n dir: `${path.join(packagePath, 'src')}`,\n watch: !isExternal,\n async execute(): Promise<BundleRequest> {\n await bundleTask({ bundleRequest, options });\n\n return bundleRequest;\n },\n clear: () => {\n bundleRequest.result?.dispose?.();\n bundleRequest.result = undefined;\n fs.rmSync(outputPath, { recursive: true, force: true });\n },\n onDispose: () => {\n bundleRequest.result?.dispose?.();\n },\n getErrors: () => (<unknown>bundleRequest.result?.errors) as TaskError[],\n getStartDescription: () => ({\n id,\n name: `Bundle ${packageName}@${version}`,\n inputPath: packagePath || '',\n outputPath,\n }),\n getEndDescription: (taskResult) =>\n ({\n id,\n errors: taskResult?.result?.errors,\n warnings: taskResult?.result?.warnings,\n } as TaskEndDescription),\n };\n}\n"]}
1
+ {"version":3,"file":"createBundleTask.js","sourceRoot":"","sources":["../../../src/commands/start/createBundleTask.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAA4B,EAAE,OAA2B;IACxF,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAExF,OAAO;QACL,IAAI,EAAE,UAAU,WAAW,IAAI,OAAO,EAAE;QACxC,EAAE;QACF,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;QACvC,KAAK,EAAE,CAAC,UAAU;QAClB,KAAK,CAAC,OAAO;YACX,MAAM,UAAU,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;YAE7C,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YAClC,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC;YACjC,gFAAgF;YAChF,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;QACpC,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAW,aAAa,CAAC,MAAM,EAAE,MAAsB;QACvE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,EAAE;YACF,IAAI,EAAE,UAAU,WAAW,IAAI,OAAO,EAAE;YACxC,SAAS,EAAE,WAAW,IAAI,EAAE;YAC5B,UAAU;SACX,CAAC;QACF,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE,CAChC,CAAC;YACC,EAAE;YACF,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;YAClC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;SAChB,CAAA;KAC3B,CAAC;AACJ,CAAC","sourcesContent":["import type { BundleRequest, BundleTaskOptions } from '../../types.js';\nimport type { Task, TaskEndDescription, TaskError } from '@ms-cloudpack/api-server';\nimport path from 'path';\nimport fs from 'fs';\nimport { bundleTask } from '../../tasks/bundleTask.js';\n\n/**\n * Creates a bundle task tracked in the task runner of the api server. This allows active tasks to be tracked\n * remotely (e.g. in the browser) and allows the user to cancel tasks.\n */\nexport function createBundleTask(bundleRequest: BundleRequest, options?: BundleTaskOptions): Task<BundleRequest> {\n const { id, packageName, version, outputPath, packagePath, isExternal } = bundleRequest;\n\n return {\n name: `Bundle ${packageName}@${version}`,\n id,\n dir: `${path.join(packagePath, 'src')}`,\n watch: !isExternal,\n async execute(): Promise<BundleRequest> {\n await bundleTask({ bundleRequest, options });\n\n return bundleRequest;\n },\n clear: () => {\n bundleRequest.result?.dispose?.();\n bundleRequest.result = undefined;\n // eslint-disable-next-line no-restricted-syntax -- this function can't be async\n fs.rmSync(outputPath, { recursive: true, force: true });\n },\n onDispose: () => {\n bundleRequest.result?.dispose?.();\n },\n getErrors: () => (<unknown>bundleRequest.result?.errors) as TaskError[],\n getStartDescription: () => ({\n id,\n name: `Bundle ${packageName}@${version}`,\n inputPath: packagePath || '',\n outputPath,\n }),\n getEndDescription: (taskResult) =>\n ({\n id,\n errors: taskResult?.result?.errors,\n warnings: taskResult?.result?.warnings,\n } as TaskEndDescription),\n };\n}\n"]}
@@ -49,6 +49,7 @@ export async function createSession(options) {
49
49
  targetVersions[inputPath] || (targetVersions[inputPath] = 0);
50
50
  targetVersions[inputPath]++;
51
51
  importMap = undefined;
52
+ // eslint-disable-next-line no-restricted-syntax -- this function can't be async
52
53
  fs.writeFileSync(targetVersionsPath, JSON.stringify(targetVersions, null, 2));
53
54
  },
54
55
  getImportMap: () => importMap,
@@ -1 +1 @@
1
- {"version":3,"file":"createSession.js","sourceRoot":"","sources":["../../../src/commands/start/createSession.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 as uuid } from 'uuid';\nimport type { Session } from '@ms-cloudpack/api-server';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\nimport { resolve, type ImportMap } from '@ms-cloudpack/package-utilities';\nimport fs from 'fs';\nimport fsExtra from 'fs-extra';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { getLocalCachePath } from '../../common/getCachePath.js';\nimport { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';\n\nconst dashboardPackageName = '@ms-cloudpack/overlay';\nconst dashboardPackagePath = (await resolve(dashboardPackageName, path.dirname(fileURLToPath(import.meta.url)))) || '';\n\nexport interface SessionOptions {\n appPath: string;\n config: CloudpackConfig;\n}\n\nexport async function createSession(options: SessionOptions): Promise<Session> {\n const { appPath, config } = options;\n const projectName = path.basename(appPath);\n const id = uuid();\n const resolveMap = await resolveDependenciesTask({\n appPath,\n additionalPaths: [dashboardPackagePath],\n });\n\n if (!resolveMap) {\n throw new Error('Could not resolve dependencies.');\n }\n\n let importMap: ImportMap | undefined = undefined;\n let sessionVersion = 0;\n\n await fsExtra.ensureDir(getLocalCachePath(appPath));\n const targetVersionsPath = path.join(getLocalCachePath(appPath), 'targetVersions.json');\n const fileExists = await fsExtra.pathExists(targetVersionsPath);\n if (!fileExists) {\n await fsExtra.writeJson(targetVersionsPath, {}, { spaces: 2 });\n }\n const targetVersions = (await fsExtra.readJSON(targetVersionsPath)) as Record<string, number>;\n\n return {\n id,\n appPath,\n config,\n projectName,\n type: 'web-app',\n mode: 'library',\n resolveMap,\n sequence: 0,\n targetVersions,\n getSessionVersion: () => sessionVersion,\n incrementSessionVersion: (version?: number) => {\n if (version === undefined || version > sessionVersion) {\n sessionVersion = version ?? sessionVersion + 1;\n importMap = undefined;\n }\n },\n incrementTargetVersion: (inputPath: string) => {\n targetVersions[inputPath] ||= 0;\n targetVersions[inputPath]++;\n importMap = undefined;\n fs.writeFileSync(targetVersionsPath, JSON.stringify(targetVersions, null, 2));\n },\n getImportMap: () => importMap,\n setImportMap: (newImportMap: ImportMap) => {\n importMap = newImportMap;\n return importMap;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"createSession.js","sourceRoot":"","sources":["../../../src/commands/start/createSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAkB,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AACrD,MAAM,oBAAoB,GAAG,CAAC,MAAM,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAOvH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAuB;IACzD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC;QAC/C,OAAO;QACP,eAAe,EAAE,CAAC,oBAAoB,CAAC;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACpD;IAED,IAAI,SAAS,GAA0B,SAAS,CAAC;IACjD,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,MAAM,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACxF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;KAChE;IACD,MAAM,cAAc,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA2B,CAAC;IAE9F,OAAO;QACL,EAAE;QACF,OAAO;QACP,MAAM;QACN,WAAW;QACX,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,UAAU;QACV,QAAQ,EAAE,CAAC;QACX,cAAc;QACd,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;QACvC,uBAAuB,EAAE,CAAC,OAAgB,EAAE,EAAE;YAC5C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,cAAc,EAAE;gBACrD,cAAc,GAAG,OAAO,IAAI,cAAc,GAAG,CAAC,CAAC;gBAC/C,SAAS,GAAG,SAAS,CAAC;aACvB;QACH,CAAC;QACD,sBAAsB,EAAE,CAAC,SAAiB,EAAE,EAAE;YAC5C,cAAc,CAAC,SAAS,MAAxB,cAAc,CAAC,SAAS,IAAM,CAAC,EAAC;YAChC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,SAAS,GAAG,SAAS,CAAC;YACtB,gFAAgF;YAChF,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;QAC7B,YAAY,EAAE,CAAC,YAAuB,EAAE,EAAE;YACxC,SAAS,GAAG,YAAY,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { v4 as uuid } from 'uuid';\nimport type { Session } from '@ms-cloudpack/api-server';\nimport type { CloudpackConfig } from '@ms-cloudpack/config';\nimport { resolve, type ImportMap } from '@ms-cloudpack/package-utilities';\nimport fs from 'fs';\nimport fsExtra from 'fs-extra';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { getLocalCachePath } from '../../common/getCachePath.js';\nimport { resolveDependenciesTask } from '../../tasks/resolveDependenciesTask.js';\n\nconst dashboardPackageName = '@ms-cloudpack/overlay';\nconst dashboardPackagePath = (await resolve(dashboardPackageName, path.dirname(fileURLToPath(import.meta.url)))) || '';\n\nexport interface SessionOptions {\n appPath: string;\n config: CloudpackConfig;\n}\n\nexport async function createSession(options: SessionOptions): Promise<Session> {\n const { appPath, config } = options;\n const projectName = path.basename(appPath);\n const id = uuid();\n const resolveMap = await resolveDependenciesTask({\n appPath,\n additionalPaths: [dashboardPackagePath],\n });\n\n if (!resolveMap) {\n throw new Error('Could not resolve dependencies.');\n }\n\n let importMap: ImportMap | undefined = undefined;\n let sessionVersion = 0;\n\n await fsExtra.ensureDir(getLocalCachePath(appPath));\n const targetVersionsPath = path.join(getLocalCachePath(appPath), 'targetVersions.json');\n const fileExists = await fsExtra.pathExists(targetVersionsPath);\n if (!fileExists) {\n await fsExtra.writeJson(targetVersionsPath, {}, { spaces: 2 });\n }\n const targetVersions = (await fsExtra.readJSON(targetVersionsPath)) as Record<string, number>;\n\n return {\n id,\n appPath,\n config,\n projectName,\n type: 'web-app',\n mode: 'library',\n resolveMap,\n sequence: 0,\n targetVersions,\n getSessionVersion: () => sessionVersion,\n incrementSessionVersion: (version?: number) => {\n if (version === undefined || version > sessionVersion) {\n sessionVersion = version ?? sessionVersion + 1;\n importMap = undefined;\n }\n },\n incrementTargetVersion: (inputPath: string) => {\n targetVersions[inputPath] ||= 0;\n targetVersions[inputPath]++;\n importMap = undefined;\n // eslint-disable-next-line no-restricted-syntax -- this function can't be async\n fs.writeFileSync(targetVersionsPath, JSON.stringify(targetVersions, null, 2));\n },\n getImportMap: () => importMap,\n setImportMap: (newImportMap: ImportMap) => {\n importMap = newImportMap;\n return importMap;\n },\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { PackageOverride } from '../types.js';
1
+ import type { PackageOverride } from '@ms-cloudpack/config';
2
2
  /**
3
3
  * Given a set of package overrides, finds the overrides for the given package name and version.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"findPackageOverride.js","sourceRoot":"","sources":["../../src/common/findPackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,gBAAmC,EACnC,WAAmB,EACnB,cAAsB;IAEtB,OAAO,gBAAgB,CAAC,IAAI,CAC1B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC7G,CAAC;AACJ,CAAC","sourcesContent":["import semver from 'semver';\nimport type { PackageOverride } from '../types.js';\n\n/**\n * Given a set of package overrides, finds the overrides for the given package name and version.\n */\nexport function findPackageOverride(\n packageOverrides: PackageOverride[],\n packageName: string,\n packageVersion: string,\n): PackageOverride | undefined {\n return packageOverrides.find(\n (override) => override.name === packageName && semver.satisfies(packageVersion, override.versionRequirement),\n );\n}\n"]}
1
+ {"version":3,"file":"findPackageOverride.js","sourceRoot":"","sources":["../../src/common/findPackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,gBAAmC,EACnC,WAAmB,EACnB,cAAsB;IAEtB,OAAO,gBAAgB,CAAC,IAAI,CAC1B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC7G,CAAC;AACJ,CAAC","sourcesContent":["import semver from 'semver';\nimport type { PackageOverride } from '@ms-cloudpack/config';\n\n/**\n * Given a set of package overrides, finds the overrides for the given package name and version.\n */\nexport function findPackageOverride(\n packageOverrides: PackageOverride[],\n packageName: string,\n packageVersion: string,\n): PackageOverride | undefined {\n return packageOverrides.find(\n (override) => override.name === packageName && semver.satisfies(packageVersion, override.versionRequirement),\n );\n}\n"]}
package/lib/index.d.ts CHANGED
@@ -5,4 +5,4 @@
5
5
  export declare function main(): Promise<void>;
6
6
  export type { ApiServer, DevServer, SessionStats, Task, TaskDescription, TaskEndDescription, TaskError, TaskOptions, TaskStartDescription, } from '@ms-cloudpack/api-server';
7
7
  export type { CloudpackConfig, Route, TelemetryConfig } from '@ms-cloudpack/config';
8
- export type { BundleRequest, BundleServer, BundleTaskOptions, CreateHtmlFunction, CreateHtmlOptions, CreateHtmlResult, CreateHtmlScript, PackageOverride, Watcher, } from './types.js';
8
+ export type { BundleRequest, BundleServer, BundleTaskOptions, CreateHtmlFunction, CreateHtmlOptions, CreateHtmlResult, CreateHtmlScript, Watcher, } from './types.js';
package/lib/index.js CHANGED
@@ -1,10 +1,9 @@
1
- import { PackageDefinitions } from '@ms-cloudpack/package-utilities';
1
+ import { PackageDefinitions, getVersion } from '@ms-cloudpack/package-utilities';
2
2
  import { bold, debugLoggingConfig, defaultLoggingConfig, gradient, verboseLoggingConfig, } from '@ms-cloudpack/task-reporter';
3
3
  import { Command } from 'commander';
4
4
  import glob from 'glob';
5
5
  import path from 'path';
6
6
  import { fileURLToPath, pathToFileURL } from 'url';
7
- import { getVersion } from './getVersion.js';
8
7
  import { initTelemetry, setSharedTelemetryAttributes } from './initTelemetry.js';
9
8
  import { PerfMarkerCliEntry } from './performance/markers.js';
10
9
  import { setReporterOptions } from './reporter.js';
@@ -21,7 +20,7 @@ export async function main() {
21
20
  setReporterOptions({
22
21
  plainTextMode,
23
22
  });
24
- const version = getVersion();
23
+ const version = getVersion(import.meta.url);
25
24
  // the name "Cloudpack" preceed by an emoji representing sun behind cloud
26
25
  const productName = gradient(`Cloudpack`);
27
26
  const useDebugLogging = process.argv.includes('--debug') || process.argv.includes('-d');
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { PackageDefinitions } from '@ms-cloudpack/package-utilities';\nimport {\n bold,\n debugLoggingConfig,\n defaultLoggingConfig,\n gradient,\n verboseLoggingConfig,\n} from '@ms-cloudpack/task-reporter';\nimport { Command } from 'commander';\nimport glob from 'glob';\nimport path from 'path';\nimport { fileURLToPath, pathToFileURL } from 'url';\nimport { getVersion } from './getVersion.js';\nimport { initTelemetry, setSharedTelemetryAttributes } from './initTelemetry.js';\nimport { PerfMarkerCliEntry } from './performance/markers.js';\nimport { setReporterOptions } from './reporter.js';\n\nconst currentPath = path.dirname(fileURLToPath(import.meta.url));\n\n/**\n * Entry point for the cloudpack CLI. Resolves all commands defined\n * within the \"./commands\" folder.\n */\nexport async function main() {\n performance.mark(PerfMarkerCliEntry);\n\n const program = new Command();\n const plainTextMode = process.argv.includes('--no-color') || process.argv.includes('-n');\n\n // Initialize the color setting as soon as possible.\n setReporterOptions({\n plainTextMode,\n });\n\n const version = getVersion();\n // the name \"Cloudpack\" preceed by an emoji representing sun behind cloud\n const productName = gradient(`Cloudpack`);\n const useDebugLogging = process.argv.includes('--debug') || process.argv.includes('-d');\n const verb = process.argv[2];\n const useVerboseLogging = process.argv.includes('--verbose') || process.argv.includes('-v') || verb === 'bundle';\n\n program.name(productName).version(version).usage('<command> [options]');\n\n setReporterOptions({\n productName,\n version,\n description: `Running \"${bold(process.argv.slice(2).join(' '))}\"`,\n ...defaultLoggingConfig,\n ...(useVerboseLogging && verboseLoggingConfig),\n ...(useDebugLogging && debugLoggingConfig),\n });\n\n await initTelemetry({\n useDebugLogging,\n useVerboseLogging,\n });\n\n // Make sure the package has a valid definition.\n const appPath = process.cwd();\n const definition = await PackageDefinitions.getInstance().get(appPath);\n\n if (!definition) {\n throw new Error(`There was no package.json located at \"${appPath}\".`);\n }\n\n setSharedTelemetryAttributes({\n verb,\n arguments: process.argv.slice(3).join(' '),\n environment: process.env.CI || process.env.TF_BUILD ? 'ci' : 'local',\n appName: definition.name || '<unkown>',\n });\n\n const commands = glob.sync('commands/*/index.js', { cwd: currentPath });\n\n for (const commandPath of commands) {\n const command = (await import(pathToFileURL(path.resolve(currentPath, commandPath)).toString())) as {\n init: (cmd: Command) => void;\n };\n\n command.init(program);\n }\n\n program.option('-v, --verbose', 'Show additional details about the running tasks. (default: false)');\n program.option('-d, --debug', 'Show debug information (superset of --verbose). (default: false)');\n program.option('-n, --no-color', 'Disable colors in the output. (default: false)');\n\n program.parse(process.argv);\n\n if (program.args.length === 0) {\n program.help();\n }\n}\n\nexport type {\n ApiServer,\n DevServer,\n SessionStats,\n Task,\n TaskDescription,\n TaskEndDescription,\n TaskError,\n TaskOptions,\n TaskStartDescription,\n} from '@ms-cloudpack/api-server';\nexport type { CloudpackConfig, Route, TelemetryConfig } from '@ms-cloudpack/config';\nexport type {\n BundleRequest,\n BundleServer,\n BundleTaskOptions,\n CreateHtmlFunction,\n CreateHtmlOptions,\n CreateHtmlResult,\n CreateHtmlScript,\n PackageOverride,\n Watcher,\n} from './types.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { PackageDefinitions, getVersion } from '@ms-cloudpack/package-utilities';\nimport {\n bold,\n debugLoggingConfig,\n defaultLoggingConfig,\n gradient,\n verboseLoggingConfig,\n} from '@ms-cloudpack/task-reporter';\nimport { Command } from 'commander';\nimport glob from 'glob';\nimport path from 'path';\nimport { fileURLToPath, pathToFileURL } from 'url';\nimport { initTelemetry, setSharedTelemetryAttributes } from './initTelemetry.js';\nimport { PerfMarkerCliEntry } from './performance/markers.js';\nimport { setReporterOptions } from './reporter.js';\n\nconst currentPath = path.dirname(fileURLToPath(import.meta.url));\n\n/**\n * Entry point for the cloudpack CLI. Resolves all commands defined\n * within the \"./commands\" folder.\n */\nexport async function main() {\n performance.mark(PerfMarkerCliEntry);\n\n const program = new Command();\n const plainTextMode = process.argv.includes('--no-color') || process.argv.includes('-n');\n\n // Initialize the color setting as soon as possible.\n setReporterOptions({\n plainTextMode,\n });\n\n const version = getVersion(import.meta.url);\n // the name \"Cloudpack\" preceed by an emoji representing sun behind cloud\n const productName = gradient(`Cloudpack`);\n const useDebugLogging = process.argv.includes('--debug') || process.argv.includes('-d');\n const verb = process.argv[2];\n const useVerboseLogging = process.argv.includes('--verbose') || process.argv.includes('-v') || verb === 'bundle';\n\n program.name(productName).version(version).usage('<command> [options]');\n\n setReporterOptions({\n productName,\n version,\n description: `Running \"${bold(process.argv.slice(2).join(' '))}\"`,\n ...defaultLoggingConfig,\n ...(useVerboseLogging && verboseLoggingConfig),\n ...(useDebugLogging && debugLoggingConfig),\n });\n\n await initTelemetry({\n useDebugLogging,\n useVerboseLogging,\n });\n\n // Make sure the package has a valid definition.\n const appPath = process.cwd();\n const definition = await PackageDefinitions.getInstance().get(appPath);\n\n if (!definition) {\n throw new Error(`There was no package.json located at \"${appPath}\".`);\n }\n\n setSharedTelemetryAttributes({\n verb,\n arguments: process.argv.slice(3).join(' '),\n environment: process.env.CI || process.env.TF_BUILD ? 'ci' : 'local',\n appName: definition.name || '<unkown>',\n });\n\n const commands = glob.sync('commands/*/index.js', { cwd: currentPath });\n\n for (const commandPath of commands) {\n const command = (await import(pathToFileURL(path.resolve(currentPath, commandPath)).toString())) as {\n init: (cmd: Command) => void;\n };\n\n command.init(program);\n }\n\n program.option('-v, --verbose', 'Show additional details about the running tasks. (default: false)');\n program.option('-d, --debug', 'Show debug information (superset of --verbose). (default: false)');\n program.option('-n, --no-color', 'Disable colors in the output. (default: false)');\n\n program.parse(process.argv);\n\n if (program.args.length === 0) {\n program.help();\n }\n}\n\nexport type {\n ApiServer,\n DevServer,\n SessionStats,\n Task,\n TaskDescription,\n TaskEndDescription,\n TaskError,\n TaskOptions,\n TaskStartDescription,\n} from '@ms-cloudpack/api-server';\nexport type { CloudpackConfig, Route, TelemetryConfig } from '@ms-cloudpack/config';\nexport type {\n BundleRequest,\n BundleServer,\n BundleTaskOptions,\n CreateHtmlFunction,\n CreateHtmlOptions,\n CreateHtmlResult,\n CreateHtmlScript,\n Watcher,\n} from './types.js';\n"]}
@@ -1,5 +1,5 @@
1
1
  import { readConfig } from '@ms-cloudpack/config';
2
- import { getVersion } from './getVersion.js';
2
+ import { getVersion } from '@ms-cloudpack/package-utilities';
3
3
  import { createTelemetryClient } from '@ms-cloudpack/telemetry';
4
4
  import { registerPerformanceObservers } from './performance/registerPerformanceObservers.js';
5
5
  let telemetryClient;
@@ -14,7 +14,7 @@ export async function initTelemetry(options) {
14
14
  const instrumentationKey = (await readConfig()).telemetry?.instrumentationKey || process.env.CLOUDPACK_TELEMETRY_INSTRUMENTATION_KEY;
15
15
  const logLevel = options.useVerboseLogging ? 'verbose' : options.useDebugLogging ? 'debug' : undefined;
16
16
  telemetryClient = await createTelemetryClient({
17
- productVersion: getVersion(),
17
+ productVersion: getVersion(import.meta.url),
18
18
  instrumentationKey,
19
19
  logLevel,
20
20
  serviceNamespace: 'cloudpack',
@@ -1 +1 @@
1
- {"version":3,"file":"initTelemetry.js","sourceRoot":"","sources":["../src/initTelemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAmC,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAO7F,IAAI,eAA4C,CAAC;AACjD,MAAM,CAAC,IAAI,QAA0B,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,kBAAkB,GACtB,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAE5G,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvG,eAAe,GAAG,MAAM,qBAAqB,CAAC;QAC5C,cAAc,EAAE,UAAU,EAAE;QAC5B,kBAAkB;QAClB,QAAQ;QACR,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,iGAAiG;IACjG,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,QAAQ,EAAE;QACZ,qFAAqF;QACrF,4BAA4B,CAAC,QAAQ,CAAC,CAAC;KACxC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,UAAkC;IAC7E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACrD,eAAe,EAAE,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACrD;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAW,EAAE,KAAa;IACpE,eAAe,EAAE,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,eAAe,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC","sourcesContent":["import { readConfig } from '@ms-cloudpack/config';\nimport { getVersion } from './getVersion.js';\nimport { type Span, type TelemetryClient, createTelemetryClient } from '@ms-cloudpack/telemetry';\nimport { registerPerformanceObservers } from './performance/registerPerformanceObservers.js';\n\nexport interface TelemetryInitOptions {\n useDebugLogging: boolean;\n useVerboseLogging: boolean;\n}\n\nlet telemetryClient: TelemetryClient | undefined;\nexport let rootSpan: Span | undefined;\n\n/**\n * Initialize the telemetry client, create the root span, register performance observers.\n * Telemetry will not be sent if no instrumentation key is found.\n * @param options - options to initialize telemetry\n * @returns\n */\nexport async function initTelemetry(options: TelemetryInitOptions) {\n const instrumentationKey =\n (await readConfig()).telemetry?.instrumentationKey || process.env.CLOUDPACK_TELEMETRY_INSTRUMENTATION_KEY;\n\n const logLevel = options.useVerboseLogging ? 'verbose' : options.useDebugLogging ? 'debug' : undefined;\n\n telemetryClient = await createTelemetryClient({\n productVersion: getVersion(),\n instrumentationKey,\n logLevel,\n serviceNamespace: 'cloudpack',\n serviceName: 'cli',\n });\n\n // This is the root span for the CLI. It will be used to track the duration of the CLI execution.\n rootSpan = telemetryClient.getTracer()?.startSpan('CLI');\n\n if (rootSpan) {\n // Register performance observers to track performance metrics as events of CLI span.\n registerPerformanceObservers(rootSpan);\n }\n}\n\n/**\n * Adds shared attributes to all spans.\n * No-op if telemetry is not initialized.\n * @param attributes - key-value pair\n */\nexport function setSharedTelemetryAttributes(attributes: Record<string, string>) {\n for (const [key, value] of Object.entries(attributes)) {\n telemetryClient?.setSharedSpanAttribute(key, value);\n }\n}\n\n/**\n * Adds a shared attribute to all spans.\n * No-op if telemetry is not initialized.\n * @param key - key of the attribute\n * @param value - value of the attribute\n */\nexport function setSharedTelemetryAttribute(key: string, value: string) {\n telemetryClient?.setSharedSpanAttribute(key, value);\n}\n\n/**\n * Ends rootSpan and flushes all telemetry.\n * No-op if telemetry is not initialized.\n * @returns a promise that resolves when telemetry is flushed and shutdown.\n */\nexport function stopTelemetry() {\n rootSpan?.end();\n return telemetryClient?.shutdown();\n}\n"]}
1
+ {"version":3,"file":"initTelemetry.js","sourceRoot":"","sources":["../src/initTelemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAmC,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAO7F,IAAI,eAA4C,CAAC;AACjD,MAAM,CAAC,IAAI,QAA0B,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,kBAAkB,GACtB,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAE5G,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvG,eAAe,GAAG,MAAM,qBAAqB,CAAC;QAC5C,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,kBAAkB;QAClB,QAAQ;QACR,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,iGAAiG;IACjG,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,QAAQ,EAAE;QACZ,qFAAqF;QACrF,4BAA4B,CAAC,QAAQ,CAAC,CAAC;KACxC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,UAAkC;IAC7E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACrD,eAAe,EAAE,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACrD;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAW,EAAE,KAAa;IACpE,eAAe,EAAE,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,eAAe,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC","sourcesContent":["import { readConfig } from '@ms-cloudpack/config';\nimport { getVersion } from '@ms-cloudpack/package-utilities';\nimport { type Span, type TelemetryClient, createTelemetryClient } from '@ms-cloudpack/telemetry';\nimport { registerPerformanceObservers } from './performance/registerPerformanceObservers.js';\n\nexport interface TelemetryInitOptions {\n useDebugLogging: boolean;\n useVerboseLogging: boolean;\n}\n\nlet telemetryClient: TelemetryClient | undefined;\nexport let rootSpan: Span | undefined;\n\n/**\n * Initialize the telemetry client, create the root span, register performance observers.\n * Telemetry will not be sent if no instrumentation key is found.\n * @param options - options to initialize telemetry\n * @returns\n */\nexport async function initTelemetry(options: TelemetryInitOptions) {\n const instrumentationKey =\n (await readConfig()).telemetry?.instrumentationKey || process.env.CLOUDPACK_TELEMETRY_INSTRUMENTATION_KEY;\n\n const logLevel = options.useVerboseLogging ? 'verbose' : options.useDebugLogging ? 'debug' : undefined;\n\n telemetryClient = await createTelemetryClient({\n productVersion: getVersion(import.meta.url),\n instrumentationKey,\n logLevel,\n serviceNamespace: 'cloudpack',\n serviceName: 'cli',\n });\n\n // This is the root span for the CLI. It will be used to track the duration of the CLI execution.\n rootSpan = telemetryClient.getTracer()?.startSpan('CLI');\n\n if (rootSpan) {\n // Register performance observers to track performance metrics as events of CLI span.\n registerPerformanceObservers(rootSpan);\n }\n}\n\n/**\n * Adds shared attributes to all spans.\n * No-op if telemetry is not initialized.\n * @param attributes - key-value pair\n */\nexport function setSharedTelemetryAttributes(attributes: Record<string, string>) {\n for (const [key, value] of Object.entries(attributes)) {\n telemetryClient?.setSharedSpanAttribute(key, value);\n }\n}\n\n/**\n * Adds a shared attribute to all spans.\n * No-op if telemetry is not initialized.\n * @param key - key of the attribute\n * @param value - value of the attribute\n */\nexport function setSharedTelemetryAttribute(key: string, value: string) {\n telemetryClient?.setSharedSpanAttribute(key, value);\n}\n\n/**\n * Ends rootSpan and flushes all telemetry.\n * No-op if telemetry is not initialized.\n * @returns a promise that resolves when telemetry is flushed and shutdown.\n */\nexport function stopTelemetry() {\n rootSpan?.end();\n return telemetryClient?.shutdown();\n}\n"]}
@@ -3,6 +3,7 @@ import fs from 'fs';
3
3
  * Given a file path, returns a human-readable file size description.
4
4
  */
5
5
  export function getFileSizeSync(filePath) {
6
+ // eslint-disable-next-line no-restricted-syntax
6
7
  const { size } = fs.statSync(filePath);
7
8
  if (size > 1024 * 1024) {
8
9
  return `${(size / 1024 / 1024).toFixed(2)} MB`;
@@ -1 +1 @@
1
- {"version":3,"file":"getFileSizeSync.js","sourceRoot":"","sources":["../../src/tasks/getFileSizeSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE;QACtB,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;KAChD;IAED,IAAI,IAAI,GAAG,IAAI,EAAE;QACf,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;KACzC;IAED,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACpD,CAAC","sourcesContent":["import fs from 'fs';\n\n/**\n * Given a file path, returns a human-readable file size description.\n */\nexport function getFileSizeSync(filePath: string): string {\n const { size } = fs.statSync(filePath);\n\n if (size > 1024 * 1024) {\n return `${(size / 1024 / 1024).toFixed(2)} MB`;\n }\n\n if (size > 1024) {\n return `${(size / 1024).toFixed(2)} KB`;\n }\n\n return `${size} ${size === 1 ? 'byte' : 'bytes'}`;\n}\n"]}
1
+ {"version":3,"file":"getFileSizeSync.js","sourceRoot":"","sources":["../../src/tasks/getFileSizeSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,gDAAgD;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE;QACtB,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;KAChD;IAED,IAAI,IAAI,GAAG,IAAI,EAAE;QACf,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;KACzC;IAED,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACpD,CAAC","sourcesContent":["import fs from 'fs';\n\n/**\n * Given a file path, returns a human-readable file size description.\n */\nexport function getFileSizeSync(filePath: string): string {\n // eslint-disable-next-line no-restricted-syntax\n const { size } = fs.statSync(filePath);\n\n if (size > 1024 * 1024) {\n return `${(size / 1024 / 1024).toFixed(2)} MB`;\n }\n\n if (size > 1024) {\n return `${(size / 1024).toFixed(2)} KB`;\n }\n\n return `${size} ${size === 1 ? 'byte' : 'bytes'}`;\n}\n"]}
package/lib/types.d.ts CHANGED
@@ -27,12 +27,6 @@ export interface BundleServer {
27
27
  port: number;
28
28
  close: () => Promise<void>;
29
29
  }
30
- export interface PackageOverride {
31
- name: string;
32
- versionRequirement: string;
33
- isInternal?: boolean;
34
- overrides: PackageJson;
35
- }
36
30
  export interface Watcher {
37
31
  watch: (bundleRequest: BundleRequest) => void;
38
32
  }
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ImportMap } from '@ms-cloudpack/package-utilities';\nimport type { BundleResult, PackageJson, PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { Route } from '@ms-cloudpack/config';\nimport type { Session } from '@ms-cloudpack/api-server';\n\n/**\n * Tracks a given bundle request and its result.\n */\nexport interface BundleRequest {\n id: string;\n packageName: string;\n version: string;\n packagePath: string;\n outputPath: string;\n isExternal: boolean;\n bundlerType?: string;\n result?: BundleResult;\n resultFromCache?: boolean;\n isRebuildRequired?: boolean;\n disableSourceMaps?: boolean;\n packages?: PackageDefinitionsCache;\n}\n\nexport interface BundleTaskOptions {\n force?: boolean;\n}\n\nexport interface BundleServer {\n url: string;\n port: number;\n close: () => Promise<void>;\n}\n\nexport interface PackageOverride {\n name: string;\n versionRequirement: string;\n isInternal?: boolean;\n overrides: PackageJson;\n}\n\nexport interface Watcher {\n watch: (bundleRequest: BundleRequest) => void;\n}\n\n/**\n * The input options for a createHtml custom server render function.\n */\nexport type CreateHtmlOptions = {\n session: Session;\n route: Route;\n baseUrl: string;\n definition: PackageJson;\n importMap: ImportMap;\n overlayScript: string | undefined;\n entryScript: string | undefined;\n inlineScripts: string[];\n};\n\n/**\n * The expected result of the createHtml custom server render function.\n */\nexport type CreateHtmlResult =\n | string\n | {\n html: string;\n statusCode: number;\n };\n\n/**\n * A custom server render function that can be used to override the default HTML response.\n */\nexport type CreateHtmlFunction = (options: CreateHtmlOptions) => Promise<CreateHtmlResult> | CreateHtmlResult;\n\n/**\n * The expected shape of the createHtml custom server render function script.\n */\nexport type CreateHtmlScript = { default: CreateHtmlFunction };\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ImportMap } from '@ms-cloudpack/package-utilities';\nimport type { BundleResult, PackageJson, PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { Route } from '@ms-cloudpack/config';\nimport type { Session } from '@ms-cloudpack/api-server';\n\n/**\n * Tracks a given bundle request and its result.\n */\nexport interface BundleRequest {\n id: string;\n packageName: string;\n version: string;\n packagePath: string;\n outputPath: string;\n isExternal: boolean;\n bundlerType?: string;\n result?: BundleResult;\n resultFromCache?: boolean;\n isRebuildRequired?: boolean;\n disableSourceMaps?: boolean;\n packages?: PackageDefinitionsCache;\n}\n\nexport interface BundleTaskOptions {\n force?: boolean;\n}\n\nexport interface BundleServer {\n url: string;\n port: number;\n close: () => Promise<void>;\n}\n\nexport interface Watcher {\n watch: (bundleRequest: BundleRequest) => void;\n}\n\n/**\n * The input options for a createHtml custom server render function.\n */\nexport type CreateHtmlOptions = {\n session: Session;\n route: Route;\n baseUrl: string;\n definition: PackageJson;\n importMap: ImportMap;\n overlayScript: string | undefined;\n entryScript: string | undefined;\n inlineScripts: string[];\n};\n\n/**\n * The expected result of the createHtml custom server render function.\n */\nexport type CreateHtmlResult =\n | string\n | {\n html: string;\n statusCode: number;\n };\n\n/**\n * A custom server render function that can be used to override the default HTML response.\n */\nexport type CreateHtmlFunction = (options: CreateHtmlOptions) => Promise<CreateHtmlResult> | CreateHtmlResult;\n\n/**\n * The expected shape of the createHtml custom server render function script.\n */\nexport type CreateHtmlScript = { default: CreateHtmlFunction };\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/cli",
3
- "version": "0.33.4",
3
+ "version": "0.34.0",
4
4
  "description": "The Cloudpack command line interface - a tool for managing fast inner and outer looping in web apps.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,15 +16,15 @@
16
16
  "cloudpack": "./bin/cloudpack.js"
17
17
  },
18
18
  "dependencies": {
19
- "@ms-cloudpack/api-server": "^0.3.2",
20
- "@ms-cloudpack/bundler": "^0.11.22",
21
- "@ms-cloudpack/config": "^0.3.2",
22
- "@ms-cloudpack/create-express-app": "^1.3.2",
19
+ "@ms-cloudpack/api-server": "^0.4.0",
20
+ "@ms-cloudpack/bundler": "^0.11.24",
21
+ "@ms-cloudpack/config": "^0.4.0",
22
+ "@ms-cloudpack/create-express-app": "^1.3.3",
23
23
  "@ms-cloudpack/data-bus": "^0.1.1",
24
24
  "@ms-cloudpack/json-utilities": "^0.0.6",
25
25
  "@ms-cloudpack/overlay": "^0.13.2",
26
- "@ms-cloudpack/package-utilities": "^2.3.13",
27
- "@ms-cloudpack/path-utilities": "^2.2.0",
26
+ "@ms-cloudpack/package-utilities": "^2.4.0",
27
+ "@ms-cloudpack/path-utilities": "^2.2.1",
28
28
  "@ms-cloudpack/path-string-parsing": "^1.0.1",
29
29
  "@ms-cloudpack/task-reporter": "^0.3.0",
30
30
  "@ms-cloudpack/telemetry": "^0.2.2",
@@ -1,67 +0,0 @@
1
- import { afterAll, afterEach, beforeAll, describe, expect, it, jest } from '@jest/globals';
2
- import { PackageDefinitions } from '@ms-cloudpack/package-utilities';
3
- import { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';
4
- describe('evaluateImportsForOverrides', () => {
5
- beforeAll(() => {
6
- jest.spyOn(console, 'error').mockImplementation(() => {
7
- // Disabling console.error to keep jest logs clean.
8
- // This will also be used in the assertions to ensure that the errors are logged.
9
- });
10
- });
11
- afterAll(() => {
12
- console.error.mockRestore();
13
- });
14
- afterEach(() => {
15
- console.error.mockClear();
16
- });
17
- it('should error out when dependency was not found in the resolve map', async () => {
18
- const imports = new Map();
19
- imports.set('exampleDependencyName', new Set(['exampleImportPath']));
20
- const result = await evaluateImportsForOverrides({
21
- definition: {
22
- name: 'test',
23
- version: '1.0.0',
24
- },
25
- evaluatedPackages: new Set(),
26
- imports,
27
- packageOverrides: [],
28
- packagePathsToEvaluate: new Set(),
29
- packages: new PackageDefinitions(),
30
- resolveMap: {},
31
- packagePath: '',
32
- });
33
- expect(console.error).toHaveBeenCalledTimes(1);
34
- expect(result.changeCount).toBe(0);
35
- expect(result.errors.length).toEqual(1);
36
- });
37
- it('should error out when definition of a dependency could not be loaded', async () => {
38
- const imports = new Map();
39
- imports.set('a', new Set(['b']));
40
- const result = await evaluateImportsForOverrides({
41
- definition: {
42
- name: 'test',
43
- version: '1.0.0',
44
- },
45
- evaluatedPackages: new Set(),
46
- imports,
47
- packageOverrides: [],
48
- packagePathsToEvaluate: new Set(),
49
- packages: new PackageDefinitions(),
50
- resolveMap: {
51
- a: {
52
- version: '1.0.0',
53
- name: 'a',
54
- requiredBy: {
55
- test: '1.0.0',
56
- },
57
- path: 'path',
58
- },
59
- },
60
- packagePath: '',
61
- });
62
- expect(result.changeCount).toBe(0);
63
- expect(result.errors.length).toEqual(1);
64
- expect(console.error).toHaveBeenCalledTimes(1);
65
- });
66
- });
67
- //# sourceMappingURL=evaluateImportsForOverrides.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluateImportsForOverrides.test.js","sourceRoot":"","sources":["../../../src/commands/init/evaluateImportsForOverrides.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { afterAll, afterEach, beforeAll, describe, expect, it, jest } from '@jest/globals';\nimport { PackageDefinitions } from '@ms-cloudpack/package-utilities';\nimport { evaluateImportsForOverrides } from './evaluateImportsForOverrides.js';\n\ntype MockErrorFn = jest.MockedFunction<typeof console.error>;\n\ndescribe('evaluateImportsForOverrides', () => {\n beforeAll(() => {\n jest.spyOn(console, 'error').mockImplementation(() => {\n // Disabling console.error to keep jest logs clean.\n // This will also be used in the assertions to ensure that the errors are logged.\n });\n });\n\n afterAll(() => {\n (console.error as MockErrorFn).mockRestore();\n });\n\n afterEach(() => {\n (console.error as MockErrorFn).mockClear();\n });\n\n it('should error out when dependency was not found in the resolve map', async () => {\n const imports = new Map<string, Set<string>>();\n imports.set('exampleDependencyName', new Set<string>(['exampleImportPath']));\n\n const result = await evaluateImportsForOverrides({\n definition: {\n name: 'test',\n version: '1.0.0',\n },\n evaluatedPackages: new Set<string>(),\n imports,\n packageOverrides: [],\n packagePathsToEvaluate: new Set<string>(),\n packages: new PackageDefinitions(),\n resolveMap: {},\n packagePath: '',\n });\n\n expect(console.error).toHaveBeenCalledTimes(1);\n expect(result.changeCount).toBe(0);\n expect(result.errors.length).toEqual(1);\n });\n\n it('should error out when definition of a dependency could not be loaded', async () => {\n const imports = new Map<string, Set<string>>();\n imports.set('a', new Set<string>(['b']));\n\n const result = await evaluateImportsForOverrides({\n definition: {\n name: 'test',\n version: '1.0.0',\n },\n evaluatedPackages: new Set<string>(),\n imports,\n packageOverrides: [],\n packagePathsToEvaluate: new Set<string>(),\n packages: new PackageDefinitions(),\n resolveMap: {\n a: {\n version: '1.0.0',\n name: 'a',\n requiredBy: {\n test: '1.0.0',\n },\n path: 'path',\n },\n },\n packagePath: '',\n });\n\n expect(result.changeCount).toBe(0);\n expect(result.errors.length).toEqual(1);\n expect(console.error).toHaveBeenCalledTimes(1);\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,35 +0,0 @@
1
- import { findImports } from './findImports.js';
2
- import { describe, it, expect } from '@jest/globals';
3
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
4
- import path from 'path';
5
- describe('findImports', () => {
6
- it('can find the imports in a bundle', async () => {
7
- const testFiles = {
8
- './lib/entry1.js': 'import { foo } from "./foo.js";',
9
- './lib/foo.js': 'export { a, b, c, foo } from "react/lib/foo";',
10
- './lib/entry2.js': 'import react from "react";',
11
- };
12
- const testPath = await createTestFileStructure(testFiles);
13
- const filePaths = Object.keys(testFiles).map((filePath) => path.join(testPath, filePath));
14
- const result = await findImports(filePaths);
15
- console.log(result);
16
- expect(result).toEqual({
17
- react: new Set(['./lib/foo', '.']),
18
- });
19
- });
20
- it('can walk to files up a level', async () => {
21
- const testFiles = {
22
- './lib/entry1.js': 'import { foo } from "../chunk/foo.js";',
23
- './chunk/foo.js': 'export { a, b, c, foo } from "react/lib/foo";',
24
- './lib/entry2.js': 'import react from "react";',
25
- };
26
- const testPath = await createTestFileStructure(testFiles);
27
- const filePaths = Object.keys(testFiles).map((filePath) => path.join(testPath, filePath));
28
- const result = await findImports(filePaths);
29
- console.log(result);
30
- expect(result).toEqual({
31
- react: new Set(['./lib/foo', '.']),
32
- });
33
- });
34
- });
35
- //# sourceMappingURL=findImports.test.js.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- export {};
@@ -1,215 +0,0 @@
1
- import { afterEach, describe, it, expect, beforeAll } from '@jest/globals';
2
- import { init } from './init.js';
3
- import fsPromises from 'fs/promises';
4
- import path from 'path';
5
- import { isFile } from '@ms-cloudpack/path-utilities';
6
- import { readJson } from '@ms-cloudpack/json-utilities';
7
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
8
- import { noLoggingConfig } from '@ms-cloudpack/task-reporter';
9
- import { reporter } from '../../reporter.js';
10
- import { getConfigPath, readConfig } from '@ms-cloudpack/config';
11
- describe('init', () => {
12
- let testPath;
13
- beforeAll(() => {
14
- reporter.setOptions(noLoggingConfig);
15
- });
16
- afterEach(async () => {
17
- if (testPath) {
18
- await fsPromises.rm(testPath, { recursive: true });
19
- testPath = undefined;
20
- }
21
- });
22
- it('can make no changes to a package that has no config and needs no changes', async () => {
23
- testPath = await createTestFileStructure({
24
- 'package.json': {
25
- name: 'test-package',
26
- version: '1.0.0',
27
- main: 'lib/index.js',
28
- dependencies: {
29
- foo: '1.0.0',
30
- },
31
- },
32
- 'src/index.ts': 'import foo from "foo"; console.log(foo);',
33
- 'node_modules/foo/package.json': {
34
- name: 'foo',
35
- version: '1.0.0',
36
- main: 'lib/index.js',
37
- },
38
- 'node_modules/foo/lib/index.js': 'export default "foo";',
39
- });
40
- await init({ cwd: testPath });
41
- expect(await isFile(getConfigPath(testPath))).toBe(false);
42
- });
43
- it('can create a config when a package needs to have an exports map defined', async () => {
44
- testPath = await createTestFileStructure({
45
- 'package.json': {
46
- name: 'test-package',
47
- version: '1.0.0',
48
- main: 'lib/index.js',
49
- dependencies: {
50
- foo: '1.0.0',
51
- },
52
- },
53
- 'src/index.ts': 'import foo from "foo/lib/bar"; console.log(foo);',
54
- 'node_modules/foo/package.json': {
55
- name: 'foo',
56
- version: '1.0.0',
57
- main: 'lib/index.js',
58
- },
59
- 'node_modules/foo/lib/index.js': 'export default "index";',
60
- 'node_modules/foo/lib/bar.js': 'export default "foo";',
61
- });
62
- expect(await init({ cwd: testPath })).toEqual({ changeCount: 1 });
63
- const configPath = getConfigPath(testPath);
64
- expect(await isFile(configPath)).toBe(true);
65
- expect(await readJson(configPath)).toMatchInlineSnapshot(`
66
- {
67
- "packageOverrides": [
68
- {
69
- "name": "foo",
70
- "overrides": {
71
- "exports": {
72
- ".": {
73
- "default": "./lib/index.js",
74
- },
75
- "./lib/bar": {
76
- "default": "./lib/bar.js",
77
- },
78
- },
79
- },
80
- "versionRequirement": "^1.0.0",
81
- },
82
- ],
83
- }
84
- `);
85
- });
86
- it('can modify inner-repo packages if the fix option is specified and a package needs an override', async () => {
87
- testPath = await createTestFileStructure({
88
- 'app/package.json': {
89
- name: 'test-package',
90
- version: '1.0.0',
91
- main: 'lib/index.js',
92
- dependencies: {
93
- library: '1.0.0',
94
- },
95
- },
96
- 'app/src/index.ts': 'import foo from "library/lib/bar"; console.log(foo);',
97
- 'library/package.json': {
98
- name: 'library',
99
- version: '1.0.0',
100
- main: 'lib/index.js',
101
- },
102
- 'library/lib/index.js': 'export default "index";',
103
- 'library/lib/bar.js': 'export default "bar";',
104
- }, { links: { 'app/node_modules/library': 'library' } });
105
- await init({ cwd: path.join(testPath, 'app'), fix: true });
106
- // There are no overrides required in this scenario; everything is fixed locally, so no
107
- // config file should be created.
108
- expect(await isFile(getConfigPath(testPath))).toBe(false);
109
- // Both the app and the library should have been fixed to have the correct exports map.
110
- // The app package shouldn't require an exports map; no changes expected.
111
- const appDefinition = (await readJson(path.join(testPath, 'app/package.json')));
112
- expect(appDefinition.exports).toBeUndefined();
113
- // The library exports should have the main entry hoisted ("."), as well as the "./lib/bar" import that the app
114
- // depends on. There should be no source/typings as the library only has a js file and no src/*.ts
115
- // files.
116
- const libraryDefinition = (await readJson(path.join(testPath, 'library/package.json')));
117
- expect(libraryDefinition.exports).toMatchInlineSnapshot(`
118
- {
119
- ".": {
120
- "default": "./lib/index.js",
121
- },
122
- "./lib/bar": {
123
- "default": "./lib/bar.js",
124
- },
125
- }
126
- `);
127
- });
128
- it('can avoids modifying external packages if the fix option is specified and a package needs an override', async () => {
129
- testPath = await createTestFileStructure({
130
- 'package.json': {
131
- name: 'test-package',
132
- version: '1.0.0',
133
- main: 'lib/index.js',
134
- dependencies: {
135
- library: '1.0.0',
136
- },
137
- },
138
- 'src/index.ts': 'import foo from "library/lib/bar"; console.log(foo);',
139
- 'node_modules/library/package.json': {
140
- name: 'library',
141
- version: '1.0.0',
142
- main: 'lib/index.js',
143
- },
144
- 'node_modules/library/lib/index.js': 'export default "index";',
145
- 'node_modules/library/lib/bar.js': 'export default "bar";',
146
- });
147
- await init({ cwd: testPath, fix: true });
148
- // An override config would be created for this scenario.
149
- const config = await readConfig(testPath);
150
- expect(config).toMatchInlineSnapshot(`
151
- {
152
- "packageOverrides": [
153
- {
154
- "name": "library",
155
- "overrides": {
156
- "exports": {
157
- ".": {
158
- "default": "./lib/index.js",
159
- },
160
- "./lib/bar": {
161
- "default": "./lib/bar.js",
162
- },
163
- },
164
- },
165
- "versionRequirement": "^1.0.0",
166
- },
167
- ],
168
- }
169
- `);
170
- // The library package shouldn't be modified.
171
- const libraryDefinition = (await readJson(path.join(testPath, 'node_modules/library/package.json')));
172
- expect(libraryDefinition.exports).toBeUndefined();
173
- });
174
- it('can update an existing exports map when fix is provided', async () => {
175
- testPath = await createTestFileStructure({
176
- 'app/package.json': {
177
- name: 'test-package',
178
- version: '1.0.0',
179
- main: 'lib/index.js',
180
- dependencies: {
181
- library: '1.0.0',
182
- },
183
- },
184
- 'app/src/index.ts': 'import bar from "library/lib/bar"; console.log(bar);',
185
- 'library/package.json': {
186
- name: 'library',
187
- version: '1.0.0',
188
- exports: {
189
- '.': {
190
- default: './lib/index.js',
191
- },
192
- },
193
- },
194
- 'library/lib/index.js': 'export default "index";',
195
- 'library/lib/bar.js': 'export default "bar";',
196
- }, { links: { 'app/node_modules/library': 'library' } });
197
- await init({ cwd: path.join(testPath, 'app'), fix: true });
198
- expect(await isFile(getConfigPath(testPath))).toBe(false);
199
- expect(await readJson(path.join(testPath, 'library/package.json'))).toMatchInlineSnapshot(`
200
- {
201
- "exports": {
202
- ".": {
203
- "default": "./lib/index.js",
204
- },
205
- "./lib/bar": {
206
- "default": "./lib/bar.js",
207
- },
208
- },
209
- "name": "library",
210
- "version": "1.0.0",
211
- }
212
- `);
213
- });
214
- });
215
- //# sourceMappingURL=init.test.js.map
@@ -1 +0,0 @@
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 fsPromises from 'fs/promises';\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 '@ms-cloudpack/config';\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 fsPromises.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 +0,0 @@
1
- export {};
@@ -1,87 +0,0 @@
1
- import { describe, it, expect, beforeAll, beforeEach, afterEach } from '@jest/globals';
2
- import fsPromises from 'fs/promises';
3
- import { createSession } from './createSession.js';
4
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
5
- import { createImportMap } from '@ms-cloudpack/package-utilities';
6
- import { reporter, noLoggingConfig } from '../../reporter.js';
7
- let tempFolderPath;
8
- describe('createSession', () => {
9
- beforeAll(() => {
10
- reporter.setOptions(noLoggingConfig);
11
- });
12
- beforeEach(async () => {
13
- tempFolderPath = await createTestFileStructure({
14
- 'package.json': {
15
- name: 'test-project-1',
16
- version: '0.0.1',
17
- type: 'module',
18
- exports: {
19
- '.': './lib/index.js',
20
- },
21
- dependencies: {
22
- b: '^1.0.0',
23
- },
24
- },
25
- 'src/index.ts': `import { b } from 'b'; export const a = 'a' + b();`,
26
- 'node_modules/b/package.json': {
27
- name: 'b',
28
- version: '1.0.0',
29
- main: 'index.js',
30
- },
31
- 'node_modules/b/index.js': `export const b = () => 'b';`,
32
- });
33
- });
34
- afterEach(async () => {
35
- await fsPromises.rm(tempFolderPath, { recursive: true });
36
- });
37
- it('can set and get import map', async () => {
38
- const session = await createSession({ appPath: tempFolderPath, config: {} });
39
- expect(session.getImportMap()).toBeUndefined();
40
- const importMap = await createImportMap(session.resolveMap, 'http://localhost/', {
41
- sessionVersion: session.getSessionVersion(),
42
- targetVersions: session.targetVersions,
43
- });
44
- session.setImportMap(await createImportMap(session.resolveMap, 'http://localhost/', {
45
- sessionVersion: session.getSessionVersion(),
46
- targetVersions: session.targetVersions,
47
- }));
48
- expect(session.getImportMap()).toEqual(importMap);
49
- console.log(session.resolveMap);
50
- });
51
- it('can get and increment session version', async () => {
52
- const session = await createSession({ appPath: tempFolderPath, config: {} });
53
- expect(session.getSessionVersion()).toBe(0);
54
- session.setImportMap(await createImportMap(session.resolveMap, 'http://localhost/', {
55
- sessionVersion: session.getSessionVersion(),
56
- targetVersions: session.targetVersions,
57
- }));
58
- session.incrementSessionVersion();
59
- expect(session.getSessionVersion()).toBe(1);
60
- expect(session.getImportMap()).toBeUndefined();
61
- session.setImportMap(await createImportMap(session.resolveMap, 'http://localhost/', {
62
- sessionVersion: session.getSessionVersion(),
63
- targetVersions: session.targetVersions,
64
- }));
65
- session.incrementSessionVersion(30);
66
- expect(session.getSessionVersion()).toBe(30);
67
- expect(session.getImportMap()).toBeUndefined();
68
- session.setImportMap(await createImportMap(session.resolveMap, 'http://localhost/', {
69
- sessionVersion: session.getSessionVersion(),
70
- targetVersions: session.targetVersions,
71
- }));
72
- session.incrementSessionVersion(5);
73
- expect(session.getSessionVersion()).toBe(30);
74
- expect(session.getImportMap()).not.toBeUndefined();
75
- });
76
- it('can increment target versions', async () => {
77
- const session = await createSession({ appPath: tempFolderPath, config: {} });
78
- session.setImportMap(await createImportMap(session.resolveMap, 'http://localhost/', {
79
- sessionVersion: session.getSessionVersion(),
80
- targetVersions: session.targetVersions,
81
- }));
82
- session.incrementTargetVersion(tempFolderPath);
83
- expect(session.targetVersions).toEqual({ [tempFolderPath]: 1 });
84
- expect(session.getImportMap()).toBeUndefined();
85
- });
86
- });
87
- //# sourceMappingURL=createSession.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSession.test.js","sourceRoot":"","sources":["../../../src/commands/start/createSession.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect, beforeAll, beforeEach, afterEach } from '@jest/globals';\nimport fsPromises from 'fs/promises';\nimport { createSession } from './createSession.js';\nimport { createTestFileStructure } from '@ms-cloudpack/test-utilities';\nimport { createImportMap } from '@ms-cloudpack/package-utilities';\nimport { reporter, noLoggingConfig } from '../../reporter.js';\n\nlet tempFolderPath: string;\n\ndescribe('createSession', () => {\n beforeAll(() => {\n reporter.setOptions(noLoggingConfig);\n });\n\n beforeEach(async () => {\n tempFolderPath = 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 b: '^1.0.0',\n },\n },\n 'src/index.ts': `import { b } from 'b'; export const a = 'a' + b();`,\n 'node_modules/b/package.json': {\n name: 'b',\n version: '1.0.0',\n main: 'index.js',\n },\n 'node_modules/b/index.js': `export const b = () => 'b';`,\n });\n });\n\n afterEach(async () => {\n await fsPromises.rm(tempFolderPath, { recursive: true });\n });\n\n it('can set and get import map', async () => {\n const session = await createSession({ appPath: tempFolderPath, config: {} });\n expect(session.getImportMap()).toBeUndefined();\n const importMap = await createImportMap(session.resolveMap, 'http://localhost/', {\n sessionVersion: session.getSessionVersion(),\n targetVersions: session.targetVersions,\n });\n session.setImportMap(\n await createImportMap(session.resolveMap, 'http://localhost/', {\n sessionVersion: session.getSessionVersion(),\n targetVersions: session.targetVersions,\n }),\n );\n expect(session.getImportMap()).toEqual(importMap);\n console.log(session.resolveMap);\n });\n\n it('can get and increment session version', async () => {\n const session = await createSession({ appPath: tempFolderPath, config: {} });\n expect(session.getSessionVersion()).toBe(0);\n\n session.setImportMap(\n await createImportMap(session.resolveMap, 'http://localhost/', {\n sessionVersion: session.getSessionVersion(),\n targetVersions: session.targetVersions,\n }),\n );\n session.incrementSessionVersion();\n expect(session.getSessionVersion()).toBe(1);\n expect(session.getImportMap()).toBeUndefined();\n\n session.setImportMap(\n await createImportMap(session.resolveMap, 'http://localhost/', {\n sessionVersion: session.getSessionVersion(),\n targetVersions: session.targetVersions,\n }),\n );\n session.incrementSessionVersion(30);\n expect(session.getSessionVersion()).toBe(30);\n expect(session.getImportMap()).toBeUndefined();\n\n session.setImportMap(\n await createImportMap(session.resolveMap, 'http://localhost/', {\n sessionVersion: session.getSessionVersion(),\n targetVersions: session.targetVersions,\n }),\n );\n session.incrementSessionVersion(5);\n expect(session.getSessionVersion()).toBe(30);\n expect(session.getImportMap()).not.toBeUndefined();\n });\n\n it('can increment target versions', async () => {\n const session = await createSession({ appPath: tempFolderPath, config: {} });\n session.setImportMap(\n await createImportMap(session.resolveMap, 'http://localhost/', {\n sessionVersion: session.getSessionVersion(),\n targetVersions: session.targetVersions,\n }),\n );\n session.incrementTargetVersion(tempFolderPath);\n expect(session.targetVersions).toEqual({ [tempFolderPath]: 1 });\n expect(session.getImportMap()).toBeUndefined();\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,117 +0,0 @@
1
- import { describe, it, expect } from '@jest/globals';
2
- import { parseRequestInfo } from './parseRequestInfo.js';
3
- describe('parseRequestInfo', () => {
4
- it('parses just a package', () => {
5
- expect(parseRequestInfo('/package')).toEqual({
6
- packageName: 'package',
7
- version: '',
8
- bundled: false,
9
- filePath: '',
10
- });
11
- });
12
- it('parses just a package and type', () => {
13
- expect(parseRequestInfo('/package/bundled')).toEqual({
14
- packageName: 'package',
15
- version: '',
16
- bundled: true,
17
- filePath: '',
18
- });
19
- });
20
- it('parses just a package and version', () => {
21
- expect(parseRequestInfo('/package@version')).toEqual({
22
- packageName: 'package',
23
- version: 'version',
24
- bundled: false,
25
- filePath: '',
26
- });
27
- });
28
- it('parses just a package and refresh version', () => {
29
- expect(parseRequestInfo('/package/v3')).toEqual({
30
- packageName: 'package',
31
- version: '',
32
- bundled: false,
33
- filePath: '',
34
- });
35
- });
36
- it('parses just a package, version, and type', () => {
37
- expect(parseRequestInfo('/package@version/bundled')).toEqual({
38
- packageName: 'package',
39
- version: 'version',
40
- bundled: true,
41
- filePath: '',
42
- });
43
- });
44
- it('parses just a package, version, type, refesh, and target version', () => {
45
- expect(parseRequestInfo('/package@version/v3.2/bundled')).toEqual({
46
- packageName: 'package',
47
- version: 'version',
48
- bundled: true,
49
- filePath: '',
50
- });
51
- });
52
- it('parses a package with a scope', () => {
53
- expect(parseRequestInfo('/@scope/package')).toEqual({
54
- packageName: '@scope/package',
55
- version: '',
56
- bundled: false,
57
- filePath: '',
58
- });
59
- });
60
- it('parses a package with a scope and type', () => {
61
- expect(parseRequestInfo('/@scope/package/bundled')).toEqual({
62
- packageName: '@scope/package',
63
- version: '',
64
- bundled: true,
65
- filePath: '',
66
- });
67
- });
68
- it('parses a package with a scope and version', () => {
69
- expect(parseRequestInfo('/@scope/package@version')).toEqual({
70
- packageName: '@scope/package',
71
- version: 'version',
72
- bundled: false,
73
- filePath: '',
74
- });
75
- });
76
- it('parses a package with a scope, target and refresh version', () => {
77
- expect(parseRequestInfo('/@scope/package/v3.2')).toEqual({
78
- packageName: '@scope/package',
79
- version: '',
80
- bundled: false,
81
- filePath: '',
82
- });
83
- });
84
- it('parses a package with a scope, version, and type', () => {
85
- expect(parseRequestInfo('/@scope/package@version/bundled')).toEqual({
86
- packageName: '@scope/package',
87
- version: 'version',
88
- bundled: true,
89
- filePath: '',
90
- });
91
- });
92
- it('parses a package with a scope, version, and path', () => {
93
- expect(parseRequestInfo('/@scope/package@version/path')).toEqual({
94
- packageName: '@scope/package',
95
- version: 'version',
96
- bundled: false,
97
- filePath: '/path',
98
- });
99
- });
100
- it('parses a package with a scope, version, path, refresh, and target version', () => {
101
- expect(parseRequestInfo('/@scope/package@version/v3.2/path')).toEqual({
102
- packageName: '@scope/package',
103
- version: 'version',
104
- bundled: false,
105
- filePath: '/path',
106
- });
107
- });
108
- it('parses a package with a scope, version, type, refresh, target version, and path with a dot', () => {
109
- expect(parseRequestInfo('/@scope/package@version/v3.2/bundled/path/to/file.js?force')).toEqual({
110
- packageName: '@scope/package',
111
- version: 'version',
112
- bundled: true,
113
- filePath: '/path/to/file.js',
114
- });
115
- });
116
- });
117
- //# sourceMappingURL=parseRequestInfo.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseRequestInfo.test.js","sourceRoot":"","sources":["../../../src/commands/start/parseRequestInfo.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect } from '@jest/globals';\nimport { parseRequestInfo } from './parseRequestInfo.js';\n\ndescribe('parseRequestInfo', () => {\n it('parses just a package', () => {\n expect(parseRequestInfo('/package')).toEqual({\n packageName: 'package',\n version: '',\n bundled: false,\n filePath: '',\n });\n });\n\n it('parses just a package and type', () => {\n expect(parseRequestInfo('/package/bundled')).toEqual({\n packageName: 'package',\n version: '',\n bundled: true,\n filePath: '',\n });\n });\n\n it('parses just a package and version', () => {\n expect(parseRequestInfo('/package@version')).toEqual({\n packageName: 'package',\n version: 'version',\n bundled: false,\n filePath: '',\n });\n });\n\n it('parses just a package and refresh version', () => {\n expect(parseRequestInfo('/package/v3')).toEqual({\n packageName: 'package',\n version: '',\n bundled: false,\n filePath: '',\n });\n });\n\n it('parses just a package, version, and type', () => {\n expect(parseRequestInfo('/package@version/bundled')).toEqual({\n packageName: 'package',\n version: 'version',\n bundled: true,\n filePath: '',\n });\n });\n\n it('parses just a package, version, type, refesh, and target version', () => {\n expect(parseRequestInfo('/package@version/v3.2/bundled')).toEqual({\n packageName: 'package',\n version: 'version',\n bundled: true,\n filePath: '',\n });\n });\n\n it('parses a package with a scope', () => {\n expect(parseRequestInfo('/@scope/package')).toEqual({\n packageName: '@scope/package',\n version: '',\n bundled: false,\n filePath: '',\n });\n });\n\n it('parses a package with a scope and type', () => {\n expect(parseRequestInfo('/@scope/package/bundled')).toEqual({\n packageName: '@scope/package',\n version: '',\n bundled: true,\n filePath: '',\n });\n });\n\n it('parses a package with a scope and version', () => {\n expect(parseRequestInfo('/@scope/package@version')).toEqual({\n packageName: '@scope/package',\n version: 'version',\n bundled: false,\n filePath: '',\n });\n });\n\n it('parses a package with a scope, target and refresh version', () => {\n expect(parseRequestInfo('/@scope/package/v3.2')).toEqual({\n packageName: '@scope/package',\n version: '',\n bundled: false,\n filePath: '',\n });\n });\n\n it('parses a package with a scope, version, and type', () => {\n expect(parseRequestInfo('/@scope/package@version/bundled')).toEqual({\n packageName: '@scope/package',\n version: 'version',\n bundled: true,\n filePath: '',\n });\n });\n\n it('parses a package with a scope, version, and path', () => {\n expect(parseRequestInfo('/@scope/package@version/path')).toEqual({\n packageName: '@scope/package',\n version: 'version',\n bundled: false,\n filePath: '/path',\n });\n });\n\n it('parses a package with a scope, version, path, refresh, and target version', () => {\n expect(parseRequestInfo('/@scope/package@version/v3.2/path')).toEqual({\n packageName: '@scope/package',\n version: 'version',\n bundled: false,\n filePath: '/path',\n });\n });\n\n it('parses a package with a scope, version, type, refresh, target version, and path with a dot', () => {\n expect(parseRequestInfo('/@scope/package@version/v3.2/bundled/path/to/file.js?force')).toEqual({\n packageName: '@scope/package',\n version: 'version',\n bundled: true,\n filePath: '/path/to/file.js',\n });\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export declare function getVersion(): string;
package/lib/getVersion.js DELETED
@@ -1,15 +0,0 @@
1
- import path from 'path';
2
- import { fileURLToPath } from 'url';
3
- import { findPackageRoot } from '@ms-cloudpack/path-utilities';
4
- import { isExternalPackage } from '@ms-cloudpack/package-utilities';
5
- import { readJsonSync } from '@ms-cloudpack/json-utilities';
6
- export function getVersion() {
7
- const packagePath = findPackageRoot(path.dirname(fileURLToPath(import.meta.url)));
8
- let version = '0.0.0-local';
9
- if (packagePath && isExternalPackage(packagePath)) {
10
- const packageJSONpath = path.join(packagePath, 'package.json');
11
- version = readJsonSync(packageJSONpath).version || version;
12
- }
13
- return version;
14
- }
15
- //# sourceMappingURL=getVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getVersion.js","sourceRoot":"","sources":["../src/getVersion.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,GAAG,aAAa,CAAC;IAE5B,IAAI,WAAW,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE;QACjD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE/D,OAAO,GAAI,YAAY,CAAC,eAAe,CAAiB,CAAC,OAAO,IAAI,OAAO,CAAC;KAC7E;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import path from 'path';\nimport { fileURLToPath } from 'url';\nimport { findPackageRoot } from '@ms-cloudpack/path-utilities';\nimport { isExternalPackage } from '@ms-cloudpack/package-utilities';\nimport { readJsonSync } from '@ms-cloudpack/json-utilities';\nimport type { PackageJson } from '@ms-cloudpack/bundler-types';\n\nexport function getVersion(): string {\n const packagePath = findPackageRoot(path.dirname(fileURLToPath(import.meta.url)));\n let version = '0.0.0-local';\n\n if (packagePath && isExternalPackage(packagePath)) {\n const packageJSONpath = path.join(packagePath, 'package.json');\n\n version = (readJsonSync(packageJSONpath) as PackageJson).version || version;\n }\n\n return version;\n}\n"]}