@ms-cloudpack/api-server 0.17.0 → 0.18.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 (64) hide show
  1. package/lib/apis/ensurePackageBundled.d.ts +23 -0
  2. package/lib/apis/ensurePackageBundled.d.ts.map +1 -1
  3. package/lib/apis/ensurePackageBundled.js +6 -4
  4. package/lib/apis/ensurePackageBundled.js.map +1 -1
  5. package/lib/apis/index.d.ts +1 -0
  6. package/lib/apis/index.d.ts.map +1 -1
  7. package/lib/apis/index.js.map +1 -1
  8. package/lib/apis.d.ts +1 -0
  9. package/lib/apis.d.ts.map +1 -1
  10. package/lib/apis.js.map +1 -1
  11. package/lib/common/createSession.d.ts.map +1 -1
  12. package/lib/common/createSession.js +2 -1
  13. package/lib/common/createSession.js.map +1 -1
  14. package/lib/index.d.ts +1 -1
  15. package/lib/index.d.ts.map +1 -1
  16. package/lib/index.js +1 -1
  17. package/lib/index.js.map +1 -1
  18. package/lib/trpc/createAppRouter.d.ts +6 -0
  19. package/lib/trpc/createAppRouter.d.ts.map +1 -1
  20. package/lib/trpc/createCloudpackServer.d.ts +3 -0
  21. package/lib/trpc/createCloudpackServer.d.ts.map +1 -1
  22. package/lib/types/BundleRequest.d.ts +1 -1
  23. package/lib/types/BundleRequest.d.ts.map +1 -1
  24. package/lib/types/BundleRequest.js.map +1 -1
  25. package/lib/utilities/addOverride.d.ts.map +1 -1
  26. package/lib/utilities/addOverride.js +4 -2
  27. package/lib/utilities/addOverride.js.map +1 -1
  28. package/lib/utilities/bundleTask.js +21 -9
  29. package/lib/utilities/bundleTask.js.map +1 -1
  30. package/lib/utilities/findImports.d.ts +2 -2
  31. package/lib/utilities/findImports.d.ts.map +1 -1
  32. package/lib/utilities/findImports.js +6 -6
  33. package/lib/utilities/findImports.js.map +1 -1
  34. package/lib/utilities/getPackageHashEntries.d.ts +8 -7
  35. package/lib/utilities/getPackageHashEntries.d.ts.map +1 -1
  36. package/lib/utilities/getPackageHashEntries.js +5 -6
  37. package/lib/utilities/getPackageHashEntries.js.map +1 -1
  38. package/lib/utilities/getPackagePath.d.ts +22 -2
  39. package/lib/utilities/getPackagePath.d.ts.map +1 -1
  40. package/lib/utilities/getPackagePath.js +4 -3
  41. package/lib/utilities/getPackagePath.js.map +1 -1
  42. package/lib/utilities/hashPackage.d.ts.map +1 -1
  43. package/lib/utilities/hashPackage.js +18 -15
  44. package/lib/utilities/hashPackage.js.map +1 -1
  45. package/lib/utilities/parseRequestInfo.d.ts +7 -0
  46. package/lib/utilities/parseRequestInfo.d.ts.map +1 -0
  47. package/lib/utilities/parseRequestInfo.js +14 -0
  48. package/lib/utilities/parseRequestInfo.js.map +1 -0
  49. package/lib/utilities/validateBundleRequestResult.d.ts +1 -1
  50. package/lib/utilities/validateBundleRequestResult.d.ts.map +1 -1
  51. package/lib/utilities/validateBundleRequestResult.js +2 -7
  52. package/lib/utilities/validateBundleRequestResult.js.map +1 -1
  53. package/lib/utilities/validateOverride.d.ts.map +1 -1
  54. package/lib/utilities/validateOverride.js +4 -2
  55. package/lib/utilities/validateOverride.js.map +1 -1
  56. package/package.json +7 -7
  57. package/lib/utilities/calculateHashOfInlinedDependencies.d.ts +0 -9
  58. package/lib/utilities/calculateHashOfInlinedDependencies.d.ts.map +0 -1
  59. package/lib/utilities/calculateHashOfInlinedDependencies.js +0 -18
  60. package/lib/utilities/calculateHashOfInlinedDependencies.js.map +0 -1
  61. package/lib/utilities/parseRequestUrl.d.ts +0 -23
  62. package/lib/utilities/parseRequestUrl.d.ts.map +0 -1
  63. package/lib/utilities/parseRequestUrl.js +0 -48
  64. package/lib/utilities/parseRequestUrl.js.map +0 -1
@@ -9,7 +9,7 @@ import { formatBundleErrors } from './formatBundleErrors.js';
9
9
  import { getFileSizeSync } from './getFileSizeSync.js';
10
10
  import { hashPackage } from './hashPackage.js';
11
11
  import { getPackageSettings } from '@ms-cloudpack/config';
12
- import { validateBundleRequestResult } from './validateBundleRequestResult.js';
12
+ import { isCachedResultValid } from './validateBundleRequestResult.js';
13
13
  export async function bundleTask(params) {
14
14
  const { bundleRequest, options = {}, reporter, resolveMap } = params;
15
15
  const { packageName, version } = bundleRequest;
@@ -90,7 +90,7 @@ async function bundle(bundleRequest, resolveMap, force) {
90
90
  ? await hashPackage({ packagePath }, { packages, resolveMap })
91
91
  : undefined;
92
92
  // if the cached result is valid, use it.
93
- if (validateBundleRequestResult({ bundleRequest, hash })) {
93
+ if (!force && isCachedResultValid({ bundleRequest, hash })) {
94
94
  console.debug(`Using cached result for ${bundleRequest.packageName}@${bundleRequest.version}`);
95
95
  bundleRequest.resultFromCache = true;
96
96
  }
@@ -100,18 +100,30 @@ async function bundle(bundleRequest, resolveMap, force) {
100
100
  await prepareOutputPath(outputPath);
101
101
  bundleRequest.result = await bundleInternal(bundleOptions);
102
102
  bundleRequest.result.hash = hash;
103
- if (enableFindImports) {
104
- // Find imports that are in the output files and set dependencies.
105
- const outputFilePaths = bundleRequest.result.outputFiles?.map((f) => f.outputPath);
106
- const imports = outputFilePaths && (await findImports(outputFilePaths));
107
- bundleRequest.result.dependencies = imports && Object.keys(imports);
108
- }
109
103
  // Write the result to disk.
110
104
  if (isExternal || enableCacheInternalPackages) {
111
- bundleRequest.result.rawInput = bundleRequest.result.rawOutput = undefined;
105
+ const result = { ...bundleRequest.result };
106
+ // Clear the rawInput/output properties.
107
+ result.rawInput = result.rawOutput = undefined;
112
108
  await writeJson(path.join(outputPath, 'result.json'), bundleRequest.result);
113
109
  }
114
110
  }
111
+ if (enableFindImports && !bundleRequest.result?.errors?.length && bundleRequest.result?.outputFiles?.length) {
112
+ const importsPath = path.join(outputPath, 'imports.json');
113
+ let imports = await readJson(importsPath);
114
+ // If we couldn't rehydrate imports from cache, compute them.
115
+ if (!imports) {
116
+ const scriptPaths = bundleRequest.result.outputFiles.map((f) => path.resolve(outputPath, f.outputPath));
117
+ imports = await findImports(scriptPaths);
118
+ // Write to cache for future use. (Ignore the promise result.)
119
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
120
+ writeJson(importsPath, imports);
121
+ }
122
+ bundleRequest.result.imports = imports;
123
+ // Find imports that are in the output files and set dependencies.
124
+ const outputFilePaths = bundleRequest.result.outputFiles?.map((f) => path.resolve(outputPath, f.outputPath));
125
+ bundleRequest.result.imports = outputFilePaths && (await findImports(outputFilePaths));
126
+ }
115
127
  return bundleRequest;
116
128
  }
117
129
  //# sourceMappingURL=bundleTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"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","sourcesContent":["import { bundle as bundleInternal, getEntriesMapFromPackage, getExternalsFromPackage } from '@ms-cloudpack/bundler';\nimport { readJson, writeJson } from '@ms-cloudpack/json-utilities';\nimport { safeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport {\n bulletedList,\n formatPackageName,\n type TaskReporter,\n type TaskReporterTaskResult,\n} from '@ms-cloudpack/task-reporter';\nimport path from 'path';\nimport { findImports } from './findImports.js';\nimport { prepareOutputPath } from '../common/prepareOutputPath.js';\nimport type { BundleTaskOptions } from '../types/BundleTaskOptions.js';\nimport type { BundleRequest } from '../types/BundleRequest.js';\nimport { formatBundleErrors } from './formatBundleErrors.js';\nimport { getFileSizeSync } from './getFileSizeSync.js';\nimport { hashPackage } from './hashPackage.js';\nimport type { BundleOptions } from '@ms-cloudpack/bundler-types';\nimport { getPackageSettings } from '@ms-cloudpack/config';\nimport { validateBundleRequestResult } from './validateBundleRequestResult.js';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\n\nexport async function bundleTask(params: {\n bundleRequest: BundleRequest;\n options?: BundleTaskOptions;\n reporter?: TaskReporter;\n resolveMap: ResolveMap;\n}): Promise<BundleRequest> {\n const { bundleRequest, options = {}, reporter, resolveMap } = params;\n const { packageName, version } = bundleRequest;\n const { force } = options || {};\n\n const { rebuild } = bundleRequest?.result || {};\n const taskName = `${rebuild ? `Re-bundle` : `Bundle`} ${formatPackageName({ name: packageName, version })}`;\n\n const executeBundle = async (): Promise<TaskReporterTaskResult> => {\n if (rebuild) {\n bundleRequest.result = await rebuild();\n } else {\n await bundle(bundleRequest, resolveMap, force);\n }\n\n const result = (bundleRequest.result ??= {});\n\n result.outputFiles ??= [];\n result.errors ??= [];\n result.warnings ??= [];\n\n if (!result.outputFiles.length && !result.errors?.length) {\n result.warnings.push({\n text: `No output files were found for \"${packageName}\" in \"${bundleRequest.outputPath}\"`,\n });\n }\n\n return {\n status: result.errors.length ? 'fail' : 'complete',\n ...(result.errors?.length\n ? formatBundleErrors(result.errors)\n : {\n details: bulletedList([\n `Package: ${bundleRequest.packageName}@${bundleRequest.version}`,\n `Bundler: ${bundleRequest.result?.bundlerName || 'unknown'}`,\n `Input path: ${bundleRequest.packagePath}`,\n `Entries:`,\n Object.values(bundleRequest.result?.entries || {}),\n `Output path: ${bundleRequest.outputPath}`,\n bundleRequest.result?.outputFiles?.map(\n (file) =>\n `${safeRelativePath(path.relative(bundleRequest.outputPath, file.outputPath))} (${getFileSizeSync(\n file.outputPath,\n )})`,\n ),\n ]),\n }),\n };\n };\n\n if (reporter) {\n await reporter.runTask(taskName, executeBundle);\n } else {\n await executeBundle();\n }\n\n return bundleRequest;\n}\n\nasync function bundle(bundleRequest: BundleRequest, resolveMap: ResolveMap, force?: boolean): Promise<BundleRequest> {\n const { packages, config } = bundleRequest;\n const context = { packages, config };\n\n // If force is set, dispose the existing result.\n if (force && bundleRequest?.result?.dispose) {\n bundleRequest.result.dispose();\n bundleRequest.result = undefined;\n }\n\n const { packagePath, outputPath, isExternal, disableSourceMaps, enableFindImports, enableCacheInternalPackages } =\n bundleRequest;\n\n // Rehydrate the result if not incremental.\n if ((isExternal || enableCacheInternalPackages) && !force) {\n bundleRequest.result = await readJson(path.join(outputPath, 'result.json'));\n }\n\n const { userPackageSettings } =\n getPackageSettings({\n name: bundleRequest.packageName,\n version: bundleRequest.version,\n config,\n }) || {};\n const { bundlerType, bundlerOptions } = userPackageSettings || {};\n\n const bundleOptions: BundleOptions = {\n bundlerType: bundleRequest.bundlerType || bundlerType,\n overrideOptions: bundlerOptions,\n inputPath: packagePath,\n outputPath,\n incremental: !isExternal,\n sourcemap: disableSourceMaps ? undefined : 'linked',\n entries: await getEntriesMapFromPackage({ inputPath: packagePath }, context),\n external: await getExternalsFromPackage({ inputPath: packagePath }, context),\n };\n\n const hash =\n !isExternal && enableCacheInternalPackages\n ? await hashPackage({ packagePath }, { packages, resolveMap })\n : undefined;\n\n // if the cached result is valid, use it.\n if (validateBundleRequestResult({ bundleRequest, hash })) {\n console.debug(`Using cached result for ${bundleRequest.packageName}@${bundleRequest.version}`);\n bundleRequest.resultFromCache = true;\n } else {\n bundleRequest.resultFromCache = false;\n\n // Only use cached result if it's successful.\n await prepareOutputPath(outputPath);\n\n bundleRequest.result = await bundleInternal(bundleOptions);\n bundleRequest.result.hash = hash;\n\n if (enableFindImports) {\n // Find imports that are in the output files and set dependencies.\n const outputFilePaths = bundleRequest.result.outputFiles?.map((f) => f.outputPath);\n const imports = outputFilePaths && (await findImports(outputFilePaths));\n bundleRequest.result.dependencies = imports && Object.keys(imports);\n }\n\n // Write the result to disk.\n if (isExternal || enableCacheInternalPackages) {\n bundleRequest.result.rawInput = bundleRequest.result.rawOutput = undefined;\n await writeJson(path.join(outputPath, 'result.json'), bundleRequest.result);\n }\n }\n\n return bundleRequest;\n}\n"]}
1
+ {"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"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","sourcesContent":["import { bundle as bundleInternal, getEntriesMapFromPackage, getExternalsFromPackage } from '@ms-cloudpack/bundler';\nimport { readJson, writeJson } from '@ms-cloudpack/json-utilities';\nimport { safeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport {\n bulletedList,\n formatPackageName,\n type TaskReporter,\n type TaskReporterTaskResult,\n} from '@ms-cloudpack/task-reporter';\nimport path from 'path';\nimport { findImports } from './findImports.js';\nimport { prepareOutputPath } from '../common/prepareOutputPath.js';\nimport type { BundleTaskOptions } from '../types/BundleTaskOptions.js';\nimport type { BundleRequest } from '../types/BundleRequest.js';\nimport { formatBundleErrors } from './formatBundleErrors.js';\nimport { getFileSizeSync } from './getFileSizeSync.js';\nimport { hashPackage } from './hashPackage.js';\nimport type { BundleOptions } from '@ms-cloudpack/bundler-types';\nimport { getPackageSettings } from '@ms-cloudpack/config';\nimport { isCachedResultValid } from './validateBundleRequestResult.js';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\n\nexport async function bundleTask(params: {\n bundleRequest: BundleRequest;\n options?: BundleTaskOptions;\n reporter?: TaskReporter;\n resolveMap: ResolveMap;\n}): Promise<BundleRequest> {\n const { bundleRequest, options = {}, reporter, resolveMap } = params;\n const { packageName, version } = bundleRequest;\n const { force } = options || {};\n\n const { rebuild } = bundleRequest?.result || {};\n const taskName = `${rebuild ? `Re-bundle` : `Bundle`} ${formatPackageName({ name: packageName, version })}`;\n\n const executeBundle = async (): Promise<TaskReporterTaskResult> => {\n if (rebuild) {\n bundleRequest.result = await rebuild();\n } else {\n await bundle(bundleRequest, resolveMap, force);\n }\n\n const result = (bundleRequest.result ??= {});\n\n result.outputFiles ??= [];\n result.errors ??= [];\n result.warnings ??= [];\n\n if (!result.outputFiles.length && !result.errors?.length) {\n result.warnings.push({\n text: `No output files were found for \"${packageName}\" in \"${bundleRequest.outputPath}\"`,\n });\n }\n\n return {\n status: result.errors.length ? 'fail' : 'complete',\n ...(result.errors?.length\n ? formatBundleErrors(result.errors)\n : {\n details: bulletedList([\n `Package: ${bundleRequest.packageName}@${bundleRequest.version}`,\n `Bundler: ${bundleRequest.result?.bundlerName || 'unknown'}`,\n `Input path: ${bundleRequest.packagePath}`,\n `Entries:`,\n Object.values(bundleRequest.result?.entries || {}),\n `Output path: ${bundleRequest.outputPath}`,\n bundleRequest.result?.outputFiles?.map(\n (file) =>\n `${safeRelativePath(path.relative(bundleRequest.outputPath, file.outputPath))} (${getFileSizeSync(\n file.outputPath,\n )})`,\n ),\n ]),\n }),\n };\n };\n\n if (reporter) {\n await reporter.runTask(taskName, executeBundle);\n } else {\n await executeBundle();\n }\n\n return bundleRequest;\n}\n\nasync function bundle(bundleRequest: BundleRequest, resolveMap: ResolveMap, force?: boolean): Promise<BundleRequest> {\n const { packages, config } = bundleRequest;\n const context = { packages, config };\n\n // If force is set, dispose the existing result.\n if (force && bundleRequest?.result?.dispose) {\n bundleRequest.result.dispose();\n bundleRequest.result = undefined;\n }\n\n const { packagePath, outputPath, isExternal, disableSourceMaps, enableFindImports, enableCacheInternalPackages } =\n bundleRequest;\n\n // Rehydrate the result if not incremental.\n if ((isExternal || enableCacheInternalPackages) && !force) {\n bundleRequest.result = await readJson(path.join(outputPath, 'result.json'));\n }\n\n const { userPackageSettings } =\n getPackageSettings({\n name: bundleRequest.packageName,\n version: bundleRequest.version,\n config,\n }) || {};\n const { bundlerType, bundlerOptions } = userPackageSettings || {};\n\n const bundleOptions: BundleOptions = {\n bundlerType: bundleRequest.bundlerType || bundlerType,\n overrideOptions: bundlerOptions,\n inputPath: packagePath,\n outputPath,\n incremental: !isExternal,\n sourcemap: disableSourceMaps ? undefined : 'linked',\n entries: await getEntriesMapFromPackage({ inputPath: packagePath }, context),\n external: await getExternalsFromPackage({ inputPath: packagePath }, context),\n };\n\n const hash =\n !isExternal && enableCacheInternalPackages\n ? await hashPackage({ packagePath }, { packages, resolveMap })\n : undefined;\n\n // if the cached result is valid, use it.\n if (!force && isCachedResultValid({ bundleRequest, hash })) {\n console.debug(`Using cached result for ${bundleRequest.packageName}@${bundleRequest.version}`);\n bundleRequest.resultFromCache = true;\n } else {\n bundleRequest.resultFromCache = false;\n\n // Only use cached result if it's successful.\n await prepareOutputPath(outputPath);\n\n bundleRequest.result = await bundleInternal(bundleOptions);\n bundleRequest.result.hash = hash;\n\n // Write the result to disk.\n if (isExternal || enableCacheInternalPackages) {\n const result = { ...bundleRequest.result };\n\n // Clear the rawInput/output properties.\n result.rawInput = result.rawOutput = undefined;\n\n await writeJson(path.join(outputPath, 'result.json'), bundleRequest.result);\n }\n }\n\n if (enableFindImports && !bundleRequest.result?.errors?.length && bundleRequest.result?.outputFiles?.length) {\n const importsPath = path.join(outputPath, 'imports.json');\n let imports = await readJson<Record<string, string[]>>(importsPath);\n\n // If we couldn't rehydrate imports from cache, compute them.\n if (!imports) {\n const scriptPaths = bundleRequest.result.outputFiles.map((f) => path.resolve(outputPath, f.outputPath));\n\n imports = await findImports(scriptPaths);\n\n // Write to cache for future use. (Ignore the promise result.)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n writeJson(importsPath, imports);\n }\n\n bundleRequest.result.imports = imports;\n\n // Find imports that are in the output files and set dependencies.\n const outputFilePaths = bundleRequest.result.outputFiles?.map((f) => path.resolve(outputPath, f.outputPath));\n bundleRequest.result.imports = outputFilePaths && (await findImports(outputFilePaths));\n }\n\n return bundleRequest;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Returns a dictionary where key is the package name and value is a set of required paths.
3
- * Eg. `{ '@fluentui/react': new Set([ '.', './lib/Button' ]) }`
3
+ * Eg. `{ '@fluentui/react': [ '.', './lib/Button' ] }`
4
4
  */
5
- export declare function findImports(filePaths: string[]): Promise<Record<string, Set<string>>>;
5
+ export declare function findImports(filePaths: string[]): Promise<Record<string, string[]>>;
6
6
  //# sourceMappingURL=findImports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findImports.d.ts","sourceRoot":"","sources":["../../src/utilities/findImports.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAuE3F"}
1
+ {"version":3,"file":"findImports.d.ts","sourceRoot":"","sources":["../../src/utilities/findImports.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CA6ExF"}
@@ -2,13 +2,10 @@ import { parse } from 'es-module-lexer';
2
2
  import fsPromises from 'fs/promises';
3
3
  import path from 'path';
4
4
  import { parseImportString } from '@ms-cloudpack/path-string-parsing';
5
- import { sourceExtensions } from '@ms-cloudpack/path-utilities';
6
5
  import { builtinModules } from 'module';
7
- /** Treat files with no extension as JS for purposes below */
8
- const allSourceExtensions = [...sourceExtensions, ''];
9
6
  /**
10
7
  * Returns a dictionary where key is the package name and value is a set of required paths.
11
- * Eg. `{ '@fluentui/react': new Set([ '.', './lib/Button' ]) }`
8
+ * Eg. `{ '@fluentui/react': [ '.', './lib/Button' ] }`
12
9
  */
13
10
  export async function findImports(filePaths) {
14
11
  const requiredExports = {};
@@ -17,7 +14,7 @@ export async function findImports(filePaths) {
17
14
  while (pathsToParse.length) {
18
15
  const filePath = pathsToParse.shift();
19
16
  // Ignore any non-JS/TS files such as SVGs and sourcemaps
20
- if (!filePath || !allSourceExtensions.includes(path.extname(filePath))) {
17
+ if (!filePath || path.extname(filePath) !== '.js') {
21
18
  continue;
22
19
  }
23
20
  const source = await fsPromises.readFile(filePath, 'utf-8');
@@ -71,6 +68,9 @@ export async function findImports(filePaths) {
71
68
  }
72
69
  }
73
70
  }
74
- return requiredExports;
71
+ return Object.entries(requiredExports).reduce((acc, [packageName, importPaths]) => {
72
+ acc[packageName] = Array.from(importPaths);
73
+ return acc;
74
+ }, {});
75
75
  }
76
76
  //# sourceMappingURL=findImports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findImports.js","sourceRoot":"","sources":["../../src/utilities/findImports.ts"],"names":[],"mappings":"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","sourcesContent":["import { parse } from 'es-module-lexer';\nimport fsPromises from 'fs/promises';\nimport path from 'path';\nimport { parseImportString, type ImportStringResult } from '@ms-cloudpack/path-string-parsing';\nimport { sourceExtensions } from '@ms-cloudpack/path-utilities';\nimport { builtinModules } from 'module';\n\n/** Treat files with no extension as JS for purposes below */\nconst allSourceExtensions = [...sourceExtensions, ''];\n\n/**\n * Returns a dictionary where key is the package name and value is a set of required paths.\n * Eg. `{ '@fluentui/react': new Set([ '.', './lib/Button' ]) }`\n */\nexport async function findImports(filePaths: string[]): Promise<Record<string, Set<string>>> {\n const requiredExports: Record<string, Set<string>> = {};\n const visitedPaths = new Set(filePaths);\n const pathsToParse: string[] = [...filePaths];\n\n while (pathsToParse.length) {\n const filePath = pathsToParse.shift();\n // Ignore any non-JS/TS files such as SVGs and sourcemaps\n if (!filePath || !allSourceExtensions.includes(path.extname(filePath))) {\n continue;\n }\n\n const source = await fsPromises.readFile(filePath, 'utf-8');\n let rawImports: ReturnType<typeof parse>[0];\n try {\n // es-module-lexer/parse may return Promise in some conditions\n // although it is not declared in the type definition\n // https://github.com/guybedford/es-module-lexer/issues/155\n [rawImports] = await (parse(source) as unknown as Promise<ReturnType<typeof parse>>);\n } catch (err) {\n // This could happen if the source file isn't valid JS\n // (unlikely after adding the check above to only attempt parsing JS/TS files)\n console.warn(`Failed to parse ${filePath}:`, err, '\\nSource is:\\n', source);\n continue;\n }\n const imports = Array.from(new Set(rawImports))\n .map((i) => {\n // The es-module-lexer returns entries where the \"n\" property equals the import source.\n // This includes the package name and path. For example, in this case:\n //\n // import { Button } from '@fluentui/react/lib/Button';\n //\n // The \"n\" property would be \"@fluentui/react/lib/Button\".\n // The \"s\" and \"e\" properties represent the start/end character positions of\n // the import source. The \"ss\" and \"se\" properties represent the start/end\n // character positions of the import specifier starting with \"import\". This\n // may be useful for determining if the import is sync or async.\n //\n // Currently when the import source is a backtick string, the \"n\" property\n // is undefined. This is a bug in es-module-lexer. We may need to handle this\n // at the javascript layer and expand it into multiple potential imports.\n if (!i.n) {\n console.debug(\n `Found an import that didn't parse correctly:\\nFilename:\\n${filePath}\\n\\nImport:\\n${source.slice(\n i.s,\n i.e,\n )}`,\n );\n return undefined;\n }\n\n return parseImportString(i.n);\n })\n .filter(Boolean) as ImportStringResult[];\n\n for (const { packageName, importPath } of imports) {\n if (packageName?.startsWith('.')) {\n const localPath = path.resolve(path.dirname(filePath), packageName, importPath || '');\n\n if (!visitedPaths.has(localPath)) {\n visitedPaths.add(localPath);\n pathsToParse.push(localPath);\n }\n } else if (packageName && !packageName.startsWith('node:') && !builtinModules.includes(packageName)) {\n requiredExports[packageName] ??= new Set();\n requiredExports[packageName].add(importPath || '.');\n }\n }\n }\n\n return requiredExports;\n}\n"]}
1
+ {"version":3,"file":"findImports.js","sourceRoot":"","sources":["../../src/utilities/findImports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAA2B,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAmB;IACnD,MAAM,eAAe,GAAgC,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,YAAY,GAAa,CAAC,GAAG,SAAS,CAAC,CAAC;IAE9C,OAAO,YAAY,CAAC,MAAM,EAAE;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QACtC,yDAAyD;QACzD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;YACjD,SAAS;SACV;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,UAAuC,CAAC;QAC5C,IAAI;YACF,8DAA8D;YAC9D,qDAAqD;YACrD,2DAA2D;YAC3D,CAAC,UAAU,CAAC,GAAG,MAAO,KAAK,CAAC,MAAM,CAAkD,CAAC;SACtF;QAAC,OAAO,GAAG,EAAE;YACZ,sDAAsD;YACtD,8EAA8E;YAC9E,OAAO,CAAC,IAAI,CAAC,mBAAmB,QAAQ,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAC5E,SAAS;SACV;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,uFAAuF;YACvF,sEAAsE;YACtE,EAAE;YACF,yDAAyD;YACzD,EAAE;YACF,0DAA0D;YAC1D,4EAA4E;YAC5E,0EAA0E;YAC1E,2EAA2E;YAC3E,gEAAgE;YAChE,EAAE;YACF,0EAA0E;YAC1E,6EAA6E;YAC7E,yEAAyE;YACzE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CACX,4DAA4D,QAAQ,gBAAgB,MAAM,CAAC,KAAK,CAC9F,CAAC,CAAC,CAAC,EACH,CAAC,CAAC,CAAC,CACJ,EAAE,CACJ,CAAC;gBACF,OAAO,SAAS,CAAC;aAClB;YAED,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAyB,CAAC;QAE3C,KAAK,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE;YACjD,IAAI,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;gBAChC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;gBAEtF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBAChC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC9B;aACF;iBAAM,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACnG,eAAe,CAAC,WAAW,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;gBAC3C,eAAe,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;aACrD;SACF;KACF;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE;QAClC,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAA8B,CAC/B,CAAC;AACJ,CAAC","sourcesContent":["import { parse } from 'es-module-lexer';\nimport fsPromises from 'fs/promises';\nimport path from 'path';\nimport { parseImportString, type ImportStringResult } from '@ms-cloudpack/path-string-parsing';\nimport { builtinModules } from 'module';\n\n/**\n * Returns a dictionary where key is the package name and value is a set of required paths.\n * Eg. `{ '@fluentui/react': [ '.', './lib/Button' ] }`\n */\nexport async function findImports(filePaths: string[]): Promise<Record<string, string[]>> {\n const requiredExports: Record<string, Set<string>> = {};\n const visitedPaths = new Set(filePaths);\n const pathsToParse: string[] = [...filePaths];\n\n while (pathsToParse.length) {\n const filePath = pathsToParse.shift();\n // Ignore any non-JS/TS files such as SVGs and sourcemaps\n if (!filePath || path.extname(filePath) !== '.js') {\n continue;\n }\n\n const source = await fsPromises.readFile(filePath, 'utf-8');\n let rawImports: ReturnType<typeof parse>[0];\n try {\n // es-module-lexer/parse may return Promise in some conditions\n // although it is not declared in the type definition\n // https://github.com/guybedford/es-module-lexer/issues/155\n [rawImports] = await (parse(source) as unknown as Promise<ReturnType<typeof parse>>);\n } catch (err) {\n // This could happen if the source file isn't valid JS\n // (unlikely after adding the check above to only attempt parsing JS/TS files)\n console.warn(`Failed to parse ${filePath}:`, err, '\\nSource is:\\n', source);\n continue;\n }\n const imports = Array.from(new Set(rawImports))\n .map((i) => {\n // The es-module-lexer returns entries where the \"n\" property equals the import source.\n // This includes the package name and path. For example, in this case:\n //\n // import { Button } from '@fluentui/react/lib/Button';\n //\n // The \"n\" property would be \"@fluentui/react/lib/Button\".\n // The \"s\" and \"e\" properties represent the start/end character positions of\n // the import source. The \"ss\" and \"se\" properties represent the start/end\n // character positions of the import specifier starting with \"import\". This\n // may be useful for determining if the import is sync or async.\n //\n // Currently when the import source is a backtick string, the \"n\" property\n // is undefined. This is a bug in es-module-lexer. We may need to handle this\n // at the javascript layer and expand it into multiple potential imports.\n if (!i.n) {\n console.debug(\n `Found an import that didn't parse correctly:\\nFilename:\\n${filePath}\\n\\nImport:\\n${source.slice(\n i.s,\n i.e,\n )}`,\n );\n return undefined;\n }\n\n return parseImportString(i.n);\n })\n .filter(Boolean) as ImportStringResult[];\n\n for (const { packageName, importPath } of imports) {\n if (packageName?.startsWith('.')) {\n const localPath = path.resolve(path.dirname(filePath), packageName, importPath || '');\n\n if (!visitedPaths.has(localPath)) {\n visitedPaths.add(localPath);\n pathsToParse.push(localPath);\n }\n } else if (packageName && !packageName.startsWith('node:') && !builtinModules.includes(packageName)) {\n requiredExports[packageName] ??= new Set();\n requiredExports[packageName].add(importPath || '.');\n }\n }\n }\n\n return Object.entries(requiredExports).reduce(\n (acc, [packageName, importPaths]) => {\n acc[packageName] = Array.from(importPaths);\n return acc;\n },\n {} as Record<string, string[]>,\n );\n}\n"]}
@@ -1,17 +1,18 @@
1
- import type { PackageDefinitionsCache, PackageJsonDependencies } from '@ms-cloudpack/bundler-types';
1
+ import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
2
2
  import { type ResolveMap } from '@ms-cloudpack/package-utilities';
3
3
  import { type PackageIdentifier } from './getPackagePath.js';
4
4
  /**
5
5
  * @returns the entries that are used to calculate the hash of a package
6
6
  */
7
- export declare function getPackageHashEntries(packageIdentifier: PackageIdentifier, context: {
8
- packages: PackageDefinitionsCache;
9
- resolveMap: ResolveMap;
10
- hashDependencies: (dependencies: PackageJsonDependencies) => Promise<Record<string, string>>;
7
+ export declare function getPackageHashEntries(options: {
8
+ packageIdentifier: PackageIdentifier;
9
+ context: {
10
+ packages: PackageDefinitionsCache;
11
+ resolveMap: ResolveMap;
12
+ };
11
13
  }): Promise<{
12
14
  version: string;
13
15
  filesHash: Record<string, string> | null | undefined;
14
- inlinedDependenciesHash: Record<string, string> | undefined;
15
16
  name?: string | undefined;
16
17
  description?: string | undefined;
17
18
  files?: string[] | undefined;
@@ -45,7 +46,7 @@ export declare function getPackageHashEntries(packageIdentifier: PackageIdentifi
45
46
  optionalDependencies?: Partial<Record<string, string>> | undefined;
46
47
  bundledDependencies?: Partial<Record<string, string>> | undefined;
47
48
  bundleDependencies?: Partial<Record<string, string>> | undefined;
48
- inlinedDependencies?: Partial<Record<string, string>> | undefined;
49
+ inlinedDependencies?: string[] | undefined;
49
50
  engines?: {
50
51
  [x: string & Record<never, never>]: string | undefined;
51
52
  node?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageHashEntries.d.ts","sourceRoot":"","sources":["../../src/utilities/getPackageHashEntries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7E;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE;IACP,QAAQ,EAAE,uBAAuB,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,CAAC,YAAY,EAAE,uBAAuB,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BF"}
1
+ {"version":3,"file":"getPackageHashEntries.d.ts","sourceRoot":"","sources":["../../src/utilities/getPackageHashEntries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7E;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,EAAE,uBAAuB,CAAC;QAClC,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC;CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BA"}
@@ -4,26 +4,25 @@ import { getSourceHash } from './getSourceHash.js';
4
4
  /**
5
5
  * @returns the entries that are used to calculate the hash of a package
6
6
  */
7
- export async function getPackageHashEntries(packageIdentifier, context) {
8
- const { packages, resolveMap, hashDependencies } = context;
9
- const packagePath = getPackagePath(packageIdentifier, { resolveMap });
7
+ export async function getPackageHashEntries(options) {
8
+ const { context, packageIdentifier } = options;
9
+ const { packages } = context;
10
+ const packagePath = getPackagePath({ packageIdentifier, context });
10
11
  const definition = await packages.get(packagePath);
11
12
  if (!definition) {
12
13
  throw new Error(`Package definition (package.json) missing or invalid at "${packagePath}"`);
13
14
  }
14
- const { name, inlinedDependencies } = definition;
15
+ const { name } = definition;
15
16
  if (!name) {
16
17
  throw new Error(`Package definition (package.json) missing name at "${packagePath}"`);
17
18
  }
18
19
  const isExternal = isExternalPackage(packagePath);
19
20
  const filesHash = !isExternal ? await getSourceHash({ packagePath }) : undefined;
20
- const inlinedDependenciesHash = inlinedDependencies && (await hashDependencies(inlinedDependencies));
21
21
  const version = (isExternal ? definition.version : packagePath) || packagePath;
22
22
  return {
23
23
  ...definition,
24
24
  version,
25
25
  filesHash,
26
- inlinedDependenciesHash,
27
26
  };
28
27
  }
29
28
  //# sourceMappingURL=getPackageHashEntries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageHashEntries.js","sourceRoot":"","sources":["../../src/utilities/getPackageHashEntries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,cAAc,EAA0B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,iBAAoC,EACpC,OAIC;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC3D,MAAM,WAAW,GAAG,cAAc,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEtE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,4DAA4D,WAAW,GAAG,CAAC,CAAC;KAC7F;IAED,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,UAAU,CAAC;IAEjD,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,sDAAsD,WAAW,GAAG,CAAC,CAAC;KACvF;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,MAAM,uBAAuB,GAAG,mBAAmB,IAAI,CAAC,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAErG,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;IAE/E,OAAO;QACL,GAAG,UAAU;QACb,OAAO;QACP,SAAS;QACT,uBAAuB;KACxB,CAAC;AACJ,CAAC","sourcesContent":["import type { PackageDefinitionsCache, PackageJsonDependencies } from '@ms-cloudpack/bundler-types';\nimport { isExternalPackage, type ResolveMap } from '@ms-cloudpack/package-utilities';\nimport { getPackagePath, type PackageIdentifier } from './getPackagePath.js';\nimport { getSourceHash } from './getSourceHash.js';\n\n/**\n * @returns the entries that are used to calculate the hash of a package\n */\nexport async function getPackageHashEntries(\n packageIdentifier: PackageIdentifier,\n context: {\n packages: PackageDefinitionsCache;\n resolveMap: ResolveMap;\n hashDependencies: (dependencies: PackageJsonDependencies) => Promise<Record<string, string>>;\n },\n) {\n const { packages, resolveMap, hashDependencies } = context;\n const packagePath = getPackagePath(packageIdentifier, { resolveMap });\n\n const definition = await packages.get(packagePath);\n\n if (!definition) {\n throw new Error(`Package definition (package.json) missing or invalid at \"${packagePath}\"`);\n }\n\n const { name, inlinedDependencies } = definition;\n\n if (!name) {\n throw new Error(`Package definition (package.json) missing name at \"${packagePath}\"`);\n }\n\n const isExternal = isExternalPackage(packagePath);\n\n const filesHash = !isExternal ? await getSourceHash({ packagePath }) : undefined;\n\n const inlinedDependenciesHash = inlinedDependencies && (await hashDependencies(inlinedDependencies));\n\n const version = (isExternal ? definition.version : packagePath) || packagePath;\n\n return {\n ...definition,\n version,\n filesHash,\n inlinedDependenciesHash,\n };\n}\n"]}
1
+ {"version":3,"file":"getPackageHashEntries.js","sourceRoot":"","sources":["../../src/utilities/getPackageHashEntries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,cAAc,EAA0B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAM3C;IACC,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,4DAA4D,WAAW,GAAG,CAAC,CAAC;KAC7F;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,sDAAsD,WAAW,GAAG,CAAC,CAAC;KACvF;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;IAE/E,OAAO;QACL,GAAG,UAAU;QACb,OAAO;QACP,SAAS;KACV,CAAC;AACJ,CAAC","sourcesContent":["import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport { isExternalPackage, type ResolveMap } from '@ms-cloudpack/package-utilities';\nimport { getPackagePath, type PackageIdentifier } from './getPackagePath.js';\nimport { getSourceHash } from './getSourceHash.js';\n\n/**\n * @returns the entries that are used to calculate the hash of a package\n */\nexport async function getPackageHashEntries(options: {\n packageIdentifier: PackageIdentifier;\n context: {\n packages: PackageDefinitionsCache;\n resolveMap: ResolveMap;\n };\n}) {\n const { context, packageIdentifier } = options;\n const { packages } = context;\n\n const packagePath = getPackagePath({ packageIdentifier, context });\n\n const definition = await packages.get(packagePath);\n\n if (!definition) {\n throw new Error(`Package definition (package.json) missing or invalid at \"${packagePath}\"`);\n }\n\n const { name } = definition;\n if (!name) {\n throw new Error(`Package definition (package.json) missing name at \"${packagePath}\"`);\n }\n\n const isExternal = isExternalPackage(packagePath);\n\n const filesHash = !isExternal ? await getSourceHash({ packagePath }) : undefined;\n\n const version = (isExternal ? definition.version : packagePath) || packagePath;\n\n return {\n ...definition,\n version,\n filesHash,\n };\n}\n"]}
@@ -1,7 +1,18 @@
1
+ import type { PackageJson } from '@ms-cloudpack/bundler-types';
1
2
  import { type ResolveMap } from '@ms-cloudpack/package-utilities';
2
3
  export type PackageIdentifier = {
4
+ /**
5
+ * The name of the package
6
+ */
3
7
  name: string;
8
+ /**
9
+ * The exact version of the package, no semver
10
+ */
4
11
  version?: string;
12
+ /**
13
+ * The package that requires this package
14
+ */
15
+ requiredBy?: PackageJson;
5
16
  } | {
6
17
  packagePath: string;
7
18
  };
@@ -10,7 +21,16 @@ export type PackageIdentifier = {
10
21
  * @param packageIdentifier Either name and version or packagePath
11
22
  * @returns The path to the package
12
23
  */
13
- export declare function getPackagePath(packageIdentifier: PackageIdentifier, context: {
14
- resolveMap: ResolveMap;
24
+ export declare function getPackagePath(options: {
25
+ /**
26
+ * The package identifier to get the path for
27
+ */
28
+ packageIdentifier: PackageIdentifier;
29
+ /**
30
+ * The context to use to resolve the package path
31
+ */
32
+ context: {
33
+ resolveMap: ResolveMap;
34
+ };
15
35
  }): string;
16
36
  //# sourceMappingURL=getPackagePath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPackagePath.d.ts","sourceRoot":"","sources":["../../src/utilities/getPackagePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEvF,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,UAavG"}
1
+ {"version":3,"file":"getPackagePath.d.ts","sourceRoot":"","sources":["../../src/utilities/getPackagePath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEvF,MAAM,MAAM,iBAAiB,GACzB;IACE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B,GACD;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;OAEG;IACH,OAAO,EAAE;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC;CACrC,UAeA"}
@@ -4,13 +4,14 @@ import { findResolveMapEntry } from '@ms-cloudpack/package-utilities';
4
4
  * @param packageIdentifier Either name and version or packagePath
5
5
  * @returns The path to the package
6
6
  */
7
- export function getPackagePath(packageIdentifier, context) {
7
+ export function getPackagePath(options) {
8
+ const { context, packageIdentifier } = options;
8
9
  if ('packagePath' in packageIdentifier) {
9
10
  return packageIdentifier.packagePath;
10
11
  }
11
12
  const { resolveMap } = context;
12
- const { name, version } = packageIdentifier;
13
- const resolveMapEntry = findResolveMapEntry({ packageName: name, version, resolveMap });
13
+ const { name, version, requiredBy } = packageIdentifier;
14
+ const resolveMapEntry = findResolveMapEntry({ packageName: name, version, resolveMap, definition: requiredBy });
14
15
  if (!resolveMapEntry) {
15
16
  throw new Error(`Missing dependency. Can not find ${name} in the resolve map`);
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getPackagePath.js","sourceRoot":"","sources":["../../src/utilities/getPackagePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iCAAiC,CAAC;AAIvF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,iBAAoC,EAAE,OAAmC;IACtG,IAAI,aAAa,IAAI,iBAAiB,EAAE;QACtC,OAAO,iBAAiB,CAAC,WAAW,CAAC;KACtC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC;IAC5C,MAAM,eAAe,GAAG,mBAAmB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,qBAAqB,CAAC,CAAC;KAChF;IAED,OAAO,eAAe,CAAC,IAAI,CAAC;AAC9B,CAAC","sourcesContent":["import { findResolveMapEntry, type ResolveMap } from '@ms-cloudpack/package-utilities';\n\nexport type PackageIdentifier = { name: string; version?: string } | { packagePath: string };\n\n/**\n * Given the name and version of a package, or the path to a package, return the path to the package.\n * @param packageIdentifier Either name and version or packagePath\n * @returns The path to the package\n */\nexport function getPackagePath(packageIdentifier: PackageIdentifier, context: { resolveMap: ResolveMap }) {\n if ('packagePath' in packageIdentifier) {\n return packageIdentifier.packagePath;\n }\n\n const { resolveMap } = context;\n const { name, version } = packageIdentifier;\n const resolveMapEntry = findResolveMapEntry({ packageName: name, version, resolveMap });\n if (!resolveMapEntry) {\n throw new Error(`Missing dependency. Can not find ${name} in the resolve map`);\n }\n\n return resolveMapEntry.path;\n}\n"]}
1
+ {"version":3,"file":"getPackagePath.js","sourceRoot":"","sources":["../../src/utilities/getPackagePath.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iCAAiC,CAAC;AAmBvF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAS9B;IACC,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAE/C,IAAI,aAAa,IAAI,iBAAiB,EAAE;QACtC,OAAO,iBAAiB,CAAC,WAAW,CAAC;KACtC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC;IACxD,MAAM,eAAe,GAAG,mBAAmB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAChH,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,qBAAqB,CAAC,CAAC;KAChF;IAED,OAAO,eAAe,CAAC,IAAI,CAAC;AAC9B,CAAC","sourcesContent":["import type { PackageJson } from '@ms-cloudpack/bundler-types';\nimport { findResolveMapEntry, type ResolveMap } from '@ms-cloudpack/package-utilities';\n\nexport type PackageIdentifier =\n | {\n /**\n * The name of the package\n */\n name: string;\n /**\n * The exact version of the package, no semver\n */\n version?: string;\n /**\n * The package that requires this package\n */\n requiredBy?: PackageJson;\n }\n | { packagePath: string };\n\n/**\n * Given the name and version of a package, or the path to a package, return the path to the package.\n * @param packageIdentifier Either name and version or packagePath\n * @returns The path to the package\n */\nexport function getPackagePath(options: {\n /**\n * The package identifier to get the path for\n */\n packageIdentifier: PackageIdentifier;\n /**\n * The context to use to resolve the package path\n */\n context: { resolveMap: ResolveMap };\n}) {\n const { context, packageIdentifier } = options;\n\n if ('packagePath' in packageIdentifier) {\n return packageIdentifier.packagePath;\n }\n\n const { resolveMap } = context;\n const { name, version, requiredBy } = packageIdentifier;\n const resolveMapEntry = findResolveMapEntry({ packageName: name, version, resolveMap, definition: requiredBy });\n if (!resolveMapEntry) {\n throw new Error(`Missing dependency. Can not find ${name} in the resolve map`);\n }\n\n return resolveMapEntry.path;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"hashPackage.d.ts","sourceRoot":"","sources":["../../src/utilities/hashPackage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAA2B,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,wBAAsB,WAAW,CAC/B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GACrE,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
1
+ {"version":3,"file":"hashPackage.d.ts","sourceRoot":"","sources":["../../src/utilities/hashPackage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,wBAAsB,WAAW,CAC/B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GACrE,OAAO,CAAC,MAAM,CAAC,CA8BjB"}
@@ -3,24 +3,27 @@ import objectHash from 'object-hash';
3
3
  import { performance } from 'perf_hooks';
4
4
  import {} from './getPackagePath.js';
5
5
  import { getPackageHashEntries } from './getPackageHashEntries.js';
6
- import { calculateHashOfInlinedDependencies } from './calculateHashOfInlinedDependencies.js';
7
6
  export async function hashPackage(packageIdentifier, context) {
8
7
  const start = performance.now();
9
- const hashPackageWithContext = (options) => {
10
- return hashPackage(options, context);
11
- };
12
- const hashDependencies = (dependencies) => {
13
- return calculateHashOfInlinedDependencies({
14
- inlinedDependencies: dependencies,
15
- hashPackage: hashPackageWithContext,
8
+ const hashEntriesArray = [];
9
+ const packagesToHash = [packageIdentifier];
10
+ while (packagesToHash.length > 0) {
11
+ const packageToHash = packagesToHash.pop();
12
+ if (!packageToHash) {
13
+ continue;
14
+ }
15
+ const hashEntries = await getPackageHashEntries({
16
+ packageIdentifier: packageToHash,
17
+ context,
16
18
  });
17
- };
18
- const hashEntries = await getPackageHashEntries(packageIdentifier, {
19
- ...context,
20
- hashDependencies,
21
- });
22
- const hashResult = objectHash(hashEntries);
23
- const { name, version } = hashEntries;
19
+ const { inlinedDependencies } = hashEntries;
20
+ if (inlinedDependencies) {
21
+ packagesToHash.push(...inlinedDependencies.map((dependency) => ({ name: dependency, requiredBy: hashEntries })));
22
+ }
23
+ hashEntriesArray.push(hashEntries);
24
+ }
25
+ const hashResult = objectHash(hashEntriesArray);
26
+ const { name, version } = hashEntriesArray[0];
24
27
  console.debug(`Hashed ${name}@${version} in ${performance.now() - start}ms`);
25
28
  return hashResult;
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hashPackage.js","sourceRoot":"","sources":["../../src/utilities/hashPackage.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,iCAAiC,CAAC;AAClE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAA0B,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAE7F,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,iBAAoC,EACpC,OAAsE;IAEtE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,sBAAsB,GAAG,CAAC,OAA0B,EAAE,EAAE;QAC5D,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,YAAqC,EAAE,EAAE;QACjE,OAAO,kCAAkC,CAAC;YACxC,mBAAmB,EAAE,YAAY;YACjC,WAAW,EAAE,sBAAsB;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,iBAAiB,EAAE;QACjE,GAAG,OAAO;QACV,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAE3C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,OAAO,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC;IAE7E,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import type { PackageDefinitionsCache, PackageJsonDependencies } from '@ms-cloudpack/bundler-types';\nimport { type ResolveMap } from '@ms-cloudpack/package-utilities';\nimport objectHash from 'object-hash';\nimport { performance } from 'perf_hooks';\nimport { type PackageIdentifier } from './getPackagePath.js';\nimport { getPackageHashEntries } from './getPackageHashEntries.js';\nimport { calculateHashOfInlinedDependencies } from './calculateHashOfInlinedDependencies.js';\n\nexport async function hashPackage(\n packageIdentifier: PackageIdentifier,\n context: { packages: PackageDefinitionsCache; resolveMap: ResolveMap },\n): Promise<string> {\n const start = performance.now();\n\n const hashPackageWithContext = (options: PackageIdentifier) => {\n return hashPackage(options, context);\n };\n\n const hashDependencies = (dependencies: PackageJsonDependencies) => {\n return calculateHashOfInlinedDependencies({\n inlinedDependencies: dependencies,\n hashPackage: hashPackageWithContext,\n });\n };\n\n const hashEntries = await getPackageHashEntries(packageIdentifier, {\n ...context,\n hashDependencies,\n });\n\n const hashResult = objectHash(hashEntries);\n\n const { name, version } = hashEntries;\n console.debug(`Hashed ${name}@${version} in ${performance.now() - start}ms`);\n\n return hashResult;\n}\n"]}
1
+ {"version":3,"file":"hashPackage.js","sourceRoot":"","sources":["../../src/utilities/hashPackage.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,iCAAiC,CAAC;AAClE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAA0B,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,iBAAoC,EACpC,OAAsE;IAEtE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,gBAAgB,GAAwD,EAAE,CAAC;IACjF,MAAM,cAAc,GAAwB,CAAC,iBAAiB,CAAC,CAAC;IAEhE,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,EAAE;YAClB,SAAS;SACV;QAED,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC;YAC9C,iBAAiB,EAAE,aAAa;YAChC,OAAO;SACR,CAAC,CAAC;QACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC;QAC5C,IAAI,mBAAmB,EAAE;YACvB,cAAc,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;SAClH;QAED,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAEhD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,OAAO,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC;IAE7E,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport { type ResolveMap } from '@ms-cloudpack/package-utilities';\nimport objectHash from 'object-hash';\nimport { performance } from 'perf_hooks';\nimport { type PackageIdentifier } from './getPackagePath.js';\nimport { getPackageHashEntries } from './getPackageHashEntries.js';\n\nexport async function hashPackage(\n packageIdentifier: PackageIdentifier,\n context: { packages: PackageDefinitionsCache; resolveMap: ResolveMap },\n): Promise<string> {\n const start = performance.now();\n\n const hashEntriesArray: Awaited<ReturnType<typeof getPackageHashEntries>>[] = [];\n const packagesToHash: PackageIdentifier[] = [packageIdentifier];\n\n while (packagesToHash.length > 0) {\n const packageToHash = packagesToHash.pop();\n if (!packageToHash) {\n continue;\n }\n\n const hashEntries = await getPackageHashEntries({\n packageIdentifier: packageToHash,\n context,\n });\n const { inlinedDependencies } = hashEntries;\n if (inlinedDependencies) {\n packagesToHash.push(...inlinedDependencies.map((dependency) => ({ name: dependency, requiredBy: hashEntries })));\n }\n\n hashEntriesArray.push(hashEntries);\n }\n\n const hashResult = objectHash(hashEntriesArray);\n\n const { name, version } = hashEntriesArray[0];\n console.debug(`Hashed ${name}@${version} in ${performance.now() - start}ms`);\n\n return hashResult;\n}\n"]}
@@ -0,0 +1,7 @@
1
+ export declare function parseRequestInfo(requestPath: string): {
2
+ packageName: string;
3
+ version: string;
4
+ bundled: boolean;
5
+ filePath: string;
6
+ };
7
+ //# sourceMappingURL=parseRequestInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseRequestInfo.d.ts","sourceRoot":"","sources":["../../src/utilities/parseRequestInfo.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM;;;;;EAiBnD"}
@@ -0,0 +1,14 @@
1
+ export function parseRequestInfo(requestPath) {
2
+ const matches = requestPath.match(/[/]?(@[-_a-z-A-Z0-9.]+\/[-_a-z-A-Z0-9.]+|[a-zA-Z-0-9.]+)(@([-_a-zA-Z-0-9.]+))?(\/v([0-9.]+))?(\/(bundled|unbundled))?(\/[-_/a-zA-Z0-9.+]+)?/) || [];
3
+ const packageName = matches[1] || '';
4
+ const version = matches[3] || '';
5
+ const bundled = (matches.length > 8 && matches[7]) === 'bundled';
6
+ const filePath = (matches.length > 8 && matches[8]) || '';
7
+ return {
8
+ packageName,
9
+ version,
10
+ bundled,
11
+ filePath,
12
+ };
13
+ }
14
+ //# sourceMappingURL=parseRequestInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseRequestInfo.js","sourceRoot":"","sources":["../../src/utilities/parseRequestInfo.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,OAAO,GACX,WAAW,CAAC,KAAK,CACf,6IAA6I,CAC9I,IAAI,EAAE,CAAC;IAEV,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;IACjE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1D,OAAO;QACL,WAAW;QACX,OAAO;QACP,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["export function parseRequestInfo(requestPath: string) {\n const matches =\n requestPath.match(\n /[/]?(@[-_a-z-A-Z0-9.]+\\/[-_a-z-A-Z0-9.]+|[a-zA-Z-0-9.]+)(@([-_a-zA-Z-0-9.]+))?(\\/v([0-9.]+))?(\\/(bundled|unbundled))?(\\/[-_/a-zA-Z0-9.+]+)?/,\n ) || [];\n\n const packageName = matches[1] || '';\n const version = matches[3] || '';\n const bundled = (matches.length > 8 && matches[7]) === 'bundled';\n const filePath = (matches.length > 8 && matches[8]) || '';\n\n return {\n packageName,\n version,\n bundled,\n filePath,\n };\n}\n"]}
@@ -8,6 +8,6 @@ interface ValidateResultsJsonOptions {
8
8
  * @param options - The options to use when validating the result.
9
9
  * @returns True if the result is valid, false otherwise.
10
10
  */
11
- export declare function validateBundleRequestResult(options: ValidateResultsJsonOptions): boolean;
11
+ export declare function isCachedResultValid(options: ValidateResultsJsonOptions): boolean;
12
12
  export {};
13
13
  //# sourceMappingURL=validateBundleRequestResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateBundleRequestResult.d.ts","sourceRoot":"","sources":["../../src/utilities/validateBundleRequestResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,UAAU,0BAA0B;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CA0BxF"}
1
+ {"version":3,"file":"validateBundleRequestResult.d.ts","sourceRoot":"","sources":["../../src/utilities/validateBundleRequestResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,UAAU,0BAA0B;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAoBhF"}
@@ -3,9 +3,9 @@
3
3
  * @param options - The options to use when validating the result.
4
4
  * @returns True if the result is valid, false otherwise.
5
5
  */
6
- export function validateBundleRequestResult(options) {
6
+ export function isCachedResultValid(options) {
7
7
  const { bundleRequest, hash } = options;
8
- const { enableCacheInternalPackages, enableFindImports, isExternal, result } = bundleRequest;
8
+ const { enableCacheInternalPackages, isExternal, result } = bundleRequest;
9
9
  if (!result) {
10
10
  // The result is undefined, so the result is invalid
11
11
  return false;
@@ -14,11 +14,6 @@ export function validateBundleRequestResult(options) {
14
14
  // There are errors, so the result is invalid
15
15
  return false;
16
16
  }
17
- const { dependencies } = result;
18
- if (enableFindImports && !dependencies) {
19
- // enableFindImports is true, but dependencies are undefined, dependencies should have been populated by bundleTask. This is an invalid result.
20
- return false;
21
- }
22
17
  if (enableCacheInternalPackages && !isExternal && result.hash !== hash) {
23
18
  // The package is internal, enableCacheInternalPackages is enabled but hashes do not match, this is an invalid result.
24
19
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"validateBundleRequestResult.js","sourceRoot":"","sources":["../../src/utilities/validateBundleRequestResult.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAmC;IAC7E,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAE7F,IAAI,CAAC,MAAM,EAAE;QACX,oDAAoD;QACpD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAC1B,6CAA6C;QAC7C,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAChC,IAAI,iBAAiB,IAAI,CAAC,YAAY,EAAE;QACtC,+IAA+I;QAC/I,OAAO,KAAK,CAAC;KACd;IAED,IAAI,2BAA2B,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;QACtE,sHAAsH;QACtH,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { BundleRequest } from '../types/BundleRequest.js';\n\ninterface ValidateResultsJsonOptions {\n bundleRequest: BundleRequest;\n hash?: string;\n}\n\n/**\n * Validates the result of a bundle request.\n * @param options - The options to use when validating the result.\n * @returns True if the result is valid, false otherwise.\n */\nexport function validateBundleRequestResult(options: ValidateResultsJsonOptions): boolean {\n const { bundleRequest, hash } = options;\n const { enableCacheInternalPackages, enableFindImports, isExternal, result } = bundleRequest;\n\n if (!result) {\n // The result is undefined, so the result is invalid\n return false;\n }\n\n if (result?.errors?.length) {\n // There are errors, so the result is invalid\n return false;\n }\n\n const { dependencies } = result;\n if (enableFindImports && !dependencies) {\n // enableFindImports is true, but dependencies are undefined, dependencies should have been populated by bundleTask. This is an invalid result.\n return false;\n }\n\n if (enableCacheInternalPackages && !isExternal && result.hash !== hash) {\n // The package is internal, enableCacheInternalPackages is enabled but hashes do not match, this is an invalid result.\n return false;\n }\n\n return true;\n}\n"]}
1
+ {"version":3,"file":"validateBundleRequestResult.js","sourceRoot":"","sources":["../../src/utilities/validateBundleRequestResult.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,EAAE,2BAA2B,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAE1E,IAAI,CAAC,MAAM,EAAE;QACX,oDAAoD;QACpD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAC1B,6CAA6C;QAC7C,OAAO,KAAK,CAAC;KACd;IAED,IAAI,2BAA2B,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;QACtE,sHAAsH;QACtH,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { BundleRequest } from '../types/BundleRequest.js';\n\ninterface ValidateResultsJsonOptions {\n bundleRequest: BundleRequest;\n hash?: string;\n}\n\n/**\n * Validates the result of a bundle request.\n * @param options - The options to use when validating the result.\n * @returns True if the result is valid, false otherwise.\n */\nexport function isCachedResultValid(options: ValidateResultsJsonOptions): boolean {\n const { bundleRequest, hash } = options;\n const { enableCacheInternalPackages, isExternal, result } = bundleRequest;\n\n if (!result) {\n // The result is undefined, so the result is invalid\n return false;\n }\n\n if (result?.errors?.length) {\n // There are errors, so the result is invalid\n return false;\n }\n\n if (enableCacheInternalPackages && !isExternal && result.hash !== hash) {\n // The package is internal, enableCacheInternalPackages is enabled but hashes do not match, this is an invalid result.\n return false;\n }\n\n return true;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,UAAU,CAAC,oBA8B/C"}
1
+ {"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,UAAU,CAAC,oBA+B/C"}
@@ -1,5 +1,6 @@
1
1
  import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';
2
- import { parseRequestUrl } from './parseRequestUrl.js';
2
+ import { slash } from '@ms-cloudpack/path-string-parsing';
3
+ import { parseRequestInfo } from './parseRequestInfo.js';
3
4
  /**
4
5
  * Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given
5
6
  * override is valid.
@@ -9,7 +10,8 @@ export async function validateOverride(options, context) {
9
10
  const { session } = context;
10
11
  let definition = undefined;
11
12
  if (issuerUrl) {
12
- const { packageName: name, version } = parseRequestUrl(issuerUrl);
13
+ const requestPath = slash(new URL(issuerUrl).pathname);
14
+ const { packageName: name, version } = parseRequestInfo(requestPath);
13
15
  definition = { name, version };
14
16
  }
15
17
  const entry = findResolveMapEntry({
@@ -1 +1 @@
1
- {"version":3,"file":"validateOverride.js","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAevD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC,EAChC,OAA8C;IAE9C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,IAAI,UAAU,GAA4B,SAAS,CAAC;IAEpD,IAAI,SAAS,EAAE;QACb,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAClE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAC1C;QACE,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,QAAQ,EAAE,UAAU;KACrB,EACD,OAAO,CACR,CAAC;IAEF,OAAO,CAAC,CAAC,QAAQ,CAAC;AACpB,CAAC","sourcesContent":["import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';\nimport { parseRequestUrl } from './parseRequestUrl.js';\nimport type { PackageJson } from '@ms-cloudpack/bundler-types';\nimport type { Context } from '../types/Context.js';\n\nexport interface ValidateOverrideOptions {\n /** The package name the override applies to. */\n packageName: string;\n\n /** The import path overridden for the package. */\n importPath: string;\n\n /** URL that issued the import. */\n issuerUrl?: string;\n}\n\n/**\n * Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given\n * override is valid.\n */\nexport async function validateOverride(\n options: ValidateOverrideOptions,\n context: Pick<Context, 'session' | 'packages'>,\n) {\n const { packageName, importPath, issuerUrl } = options;\n const { session } = context;\n let definition: PackageJson | undefined = undefined;\n\n if (issuerUrl) {\n const { packageName: name, version } = parseRequestUrl(issuerUrl);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (!entry) {\n return false;\n }\n\n const { filePath } = await findFileInPackage(\n {\n packagePath: entry.path,\n filePath: importPath,\n },\n context,\n );\n\n return !!filePath;\n}\n"]}
1
+ {"version":3,"file":"validateOverride.js","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAezD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC,EAChC,OAA8C;IAE9C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,IAAI,UAAU,GAA4B,SAAS,CAAC;IAEpD,IAAI,SAAS,EAAE;QACb,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrE,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAChC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAC1C;QACE,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,QAAQ,EAAE,UAAU;KACrB,EACD,OAAO,CACR,CAAC;IAEF,OAAO,CAAC,CAAC,QAAQ,CAAC;AACpB,CAAC","sourcesContent":["import { findResolveMapEntry, findFileInPackage } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { parseRequestInfo } from './parseRequestInfo.js';\nimport type { PackageJson } from '@ms-cloudpack/bundler-types';\nimport type { Context } from '../types/Context.js';\n\nexport interface ValidateOverrideOptions {\n /** The package name the override applies to. */\n packageName: string;\n\n /** The import path overridden for the package. */\n importPath: string;\n\n /** URL that issued the import. */\n issuerUrl?: string;\n}\n\n/**\n * Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given\n * override is valid.\n */\nexport async function validateOverride(\n options: ValidateOverrideOptions,\n context: Pick<Context, 'session' | 'packages'>,\n) {\n const { packageName, importPath, issuerUrl } = options;\n const { session } = context;\n let definition: PackageJson | undefined = undefined;\n\n if (issuerUrl) {\n const requestPath = slash(new URL(issuerUrl).pathname);\n const { packageName: name, version } = parseRequestInfo(requestPath);\n definition = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition,\n });\n\n if (!entry) {\n return false;\n }\n\n const { filePath } = await findFileInPackage(\n {\n packagePath: entry.path,\n filePath: importPath,\n },\n context,\n );\n\n return !!filePath;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/api-server",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "An implementation of the API server that does interacts with a task scheduler.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,19 +25,19 @@
25
25
  "@lage-run/scheduler": "^1.0.0",
26
26
  "@lage-run/target-graph": "^0.8.6",
27
27
  "@lage-run/hasher": "^1.0.0",
28
- "@ms-cloudpack/bundler": "^0.14.12",
29
- "@ms-cloudpack/bundler-types": "^0.18.1",
30
- "@ms-cloudpack/config": "^0.12.2",
28
+ "@ms-cloudpack/bundler": "^0.14.13",
29
+ "@ms-cloudpack/bundler-types": "^0.19.0",
30
+ "@ms-cloudpack/config": "^0.12.3",
31
31
  "@ms-cloudpack/create-express-app": "^1.3.9",
32
32
  "@ms-cloudpack/data-bus": "^0.4.0",
33
33
  "@ms-cloudpack/file-watcher": "^0.1.0",
34
34
  "@ms-cloudpack/json-utilities": "^0.0.7",
35
- "@ms-cloudpack/package-utilities": "^5.1.4",
35
+ "@ms-cloudpack/package-utilities": "^5.1.5",
36
36
  "@ms-cloudpack/path-string-parsing": "^1.0.3",
37
37
  "@ms-cloudpack/path-utilities": "^2.3.2",
38
- "@ms-cloudpack/task-reporter": "^0.7.2",
38
+ "@ms-cloudpack/task-reporter": "^0.8.0",
39
39
  "@ms-cloudpack/telemetry": "^0.3.8",
40
- "@ms-cloudpack/remote-cache": "^0.1.6",
40
+ "@ms-cloudpack/remote-cache": "^0.1.7",
41
41
  "@trpc/client": "^10.21.1",
42
42
  "@trpc/server": "^10.21.1",
43
43
  "chokidar": "^3.5.3",