@ms-cloudpack/api-server 0.64.31 → 0.65.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.
@@ -129,17 +129,21 @@ async function bundleTaskInternal(options, context) {
129
129
  if (bundlerCapabilities?.density) {
130
130
  // Get export maps that need to be written as stubs for density.
131
131
  // If there are density exports, write stubs for them.
132
- const densityErrors = await writeStubForDensityEntries({
132
+ const densityResult = await writeStubForDensityEntries({
133
133
  options: {
134
134
  packageName,
135
135
  packagePath,
136
136
  result: bundleInternalResult,
137
+ densityOptions: bundlerCapabilities.density,
137
138
  },
138
139
  context: { packages, config },
139
140
  });
140
- // Add any errors to the result.
141
- if (densityErrors.length > 0) {
142
- bundleRequest.result.errors = [...(bundleRequest.result.errors ?? []), ...densityErrors];
141
+ // Add errors and warnings to the appropriate arrays
142
+ if (densityResult.errors.length > 0) {
143
+ bundleRequest.result.errors = [...(bundleRequest.result.errors ?? []), ...densityResult.errors];
144
+ }
145
+ if (densityResult.warnings.length > 0) {
146
+ bundleRequest.result.warnings = [...(bundleRequest.result.warnings ?? []), ...densityResult.warnings];
143
147
  }
144
148
  }
145
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAsB7E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B,EAAE,OAA0B;IACrF,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAC3B,UAAU,iBAAiB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3G,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzE,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE3C,IAAI,CAAC,aAAa,CAAC;gBACjB,QAAQ;gBACR,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,eAAe;gBAC3C,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,cAAc,EAAE,aAAa,CAAC,OAAO;gBACrC,YAAY,EAAE,aAAa,CAAC,MAAM,EAAE,YAAY;gBAChD,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO;gBACtC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,cAAc;gBACpD,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;aAChD,CAAC,CAAC;YAEH,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACzC,4BAA4B;gBAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0DAA0D;QAC1D,kFAAkF;QAClF,aAAa,CAAC,MAAM,KAAK,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;QACnC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,wCAAyC,GAAa,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;YACnF,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAA0B,EAAE,OAA0B;IACtF,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC3D,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC;IAClE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,gDAAgD;IAChD,IAAI,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAC3C,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC;IAEzG,MAAM,UAAU,GACd,aAAa,CAAC,UAAU;QACxB,CAAC,MAAM,iBAAiB,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9G,2CAA2C;IAC3C,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,aAAa,CAAC,MAAM,GAAG,MAAM,mBAAmB,CAC9C,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAC/E,OAAO,CACR,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,CAAC,UAAU;QACrC,CAAC,CAAC,UAAU;YACV,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC;gBACvB,WAAW;gBACX,iBAAiB;gBACjB,sBAAsB,EAAE,IAAI;gBAC5B,iBAAiB,EAAE,IAAI;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,SAAS,CAAC;IAEd,yCAAyC;IACzC,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,2BAA2B,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/F,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,eAAe,GAAG,KAAK,CAAC;QAEtC,6CAA6C;QAC7C,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEpC,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAClC,aAAa,CAAC,MAAM,GAAG;gBACrB,GAAG,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,UAAU;gBAC3C,IAAI,EAAE,mBAAmB;aAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EACJ,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,GACrB,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;YAEtD,MAAM,aAAa,GAAkB;gBACnC,OAAO;gBACP,MAAM,EAAE,IAAI,KAAK,YAAY;gBAC7B,iBAAiB;gBACjB,cAAc;gBACd,SAAS,EAAE,WAAW;gBACtB,UAAU;gBACV,WAAW,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK;gBAChE,SAAS,EAAE,CAAC,iBAAiB;gBAC7B,OAAO,EAAE,MAAM,wBAAwB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC5G,OAAO,EAAE,mBAAmB;gBAC5B,QAAQ,EAAE,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;gBACjF,cAAc;gBACd,sBAAsB;gBACtB,mBAAmB;gBACnB,oBAAoB;aACrB,CAAC;YAEF,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,aAAa,CAAC,MAAM,GAAG;gBACrB,GAAG,oBAAoB;gBACvB,UAAU,EAAE,aAAa,CAAC,UAAU,IAAI,UAAU;gBAClD,IAAI,EAAE,mBAAmB;gBACzB,YAAY,EAAE,SAAS;aACxB,CAAC;YAEF,IAAI,mBAAmB,EAAE,OAAO,EAAE,CAAC;gBACjC,gEAAgE;gBAChE,sDAAsD;gBACtD,MAAM,aAAa,GAAG,MAAM,0BAA0B,CAAC;oBACrD,OAAO,EAAE;wBACP,WAAW;wBACX,WAAW;wBACX,MAAM,EAAE,oBAAoB;qBAC7B;oBACD,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;iBAC9B,CAAC,CAAC;gBAEH,gCAAgC;gBAChC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,4DAA4D;IAC5D,IAAI,mBAAmB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAC9G,+EAA+E;QAC/E,iFAAiF;QACjF,2EAA2E;QAC3E,8CAA8C;QAC9C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC;YACrC,UAAU;YACV,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW;YAC7C,UAAU;YACV,UAAU;YACV,WAAW;SACZ,CAAC,CAAC;QAEH,aAAa,CAAC,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;QAEvC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,8DAA8D;YAC9D,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,UAAU,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { bundle, getEntriesMapFromPackage, getExternalsFromPackage } from '@ms-cloudpack/bundler';\nimport type { BundleOptions } from '@ms-cloudpack/common-types';\nimport { writeJson } from '@ms-cloudpack/json-utilities';\nimport { getExportsMap } from '@ms-cloudpack/package-utilities';\nimport { SpanStatusCode } from '@ms-cloudpack/telemetry';\nimport { formatPackageName } from '@ms-cloudpack/task-reporter';\nimport path from 'path';\nimport { prepareOutputPath } from '../common/prepareOutputPath.js';\nimport type { BundleRequest } from '../types/BundleRequest.js';\nimport { getBundleInfo } from './getBundleInfo.js';\nimport { getBundleLocation } from './getBundleLocation.js';\nimport { isCachedResultValid } from './isCachedResultValid.js';\nimport { readResultFromCache } from './readResultFromCache.js';\nimport { saveResultToCache } from './saveResultToCache.js';\nimport { formatBundleTaskResult } from './formatBundleTaskResult.js';\nimport type { PartialContext } from '../types/Context.js';\nimport { writeStubForDensityEntries } from './writeStubForDensityEntries.js';\n\n/**\n * Options for a bundle task.\n */\nexport interface BundleTaskOptions {\n /** Force a bundle to be rerun */\n force?: boolean;\n /** Hash to avoid re-computing */\n hash?: string;\n /** Source hash to avoid recomputing */\n sourceHash?: string;\n /** Retry count for the task */\n retryCount?: number;\n bundleRequest: BundleRequest;\n}\n\nexport type BundleTaskContext = PartialContext<\n 'packages' | 'packageHashes' | 'reporter' | 'telemetryClient' | 'remoteCacheClient',\n 'resolveMap' | 'config' | 'sequence' | 'cachePath'\n>;\n\n/**\n * Create and run a TaskReporter task which calls `bundle()` from `@ms-cloudpack/bundler` and formats the result.\n */\nexport async function bundleTask(options: BundleTaskOptions, context: BundleTaskContext): Promise<void> {\n const { bundleRequest, retryCount } = options;\n const { packageName, version } = bundleRequest;\n const { reporter, telemetryClient, session } = context;\n const { sequence } = session;\n\n const task = reporter.addTask(\n `Bundle ${formatPackageName({ name: packageName, version })}${retryCount ? ` (retry ${retryCount})` : ''}`,\n );\n\n try {\n await telemetryClient.tracer.startActiveSpan('BUNDLE_TASK', async (span) => {\n await bundleTaskInternal(options, context);\n\n span.setAttributes({\n sequence,\n isCacheHit: !!bundleRequest.resultFromCache,\n isExternal: bundleRequest.isExternal,\n packageName: bundleRequest.packageName,\n packageVersion: bundleRequest.version,\n bundleSource: bundleRequest.result?.bundleSource,\n bundler: bundleRequest.result?.bundler,\n bundlerVersion: bundleRequest.result?.bundlerVersion,\n ...(retryCount !== undefined && { retryCount }),\n });\n\n if (bundleRequest.result?.errors?.length) {\n // Set the status to `ERROR`\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n });\n } catch (err) {\n // If an unexpected error is thrown, add it to the result.\n // This ensures consistent handling of either actual bundler errors or exceptions.\n bundleRequest.result ??= {};\n bundleRequest.result.errors ??= [];\n bundleRequest.result.errors.push({\n text: `Unexpected exception while bundling: ${(err as Error).stack || String(err)}`,\n source: 'bundleTask',\n });\n }\n\n task.complete(formatBundleTaskResult(bundleRequest, reporter));\n}\n\n/**\n * Actually read the result from the cache or call `bundle()`.\n * NOTE: The result is returned by mutating `options.bundleRequest.result`.\n */\nasync function bundleTaskInternal(options: BundleTaskOptions, context: BundleTaskContext): Promise<void> {\n const { bundleRequest, force, hash, sourceHash } = options;\n const { packageName, version, targetEnvironment } = bundleRequest;\n const { packageHashes, packages, session } = context;\n const { config } = session;\n const { mode } = 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, isExternal, isIncremental, disableSourceMaps, shouldGetBundleInfo } = bundleRequest;\n\n const outputPath =\n bundleRequest.outputPath ??\n (await getBundleLocation({ packagePath, targetEnvironment, shouldRecalculate: force, hash }, context)).path;\n\n // Rehydrate the result if not incremental.\n if (bundleRequest.result === undefined && !force) {\n bundleRequest.result = await readResultFromCache(\n { packageName, version, inputPath: packagePath, outputPath, targetEnvironment },\n context,\n );\n }\n\n const cacheValidationHash = !isExternal\n ? sourceHash ||\n (await packageHashes.get({\n packagePath,\n targetEnvironment,\n isSourceHashingEnabled: true,\n shouldRecalculate: true,\n }))\n : undefined;\n\n // if the cached result is valid, use it.\n if (!force && isCachedResultValid({ bundleRequest, hash: cacheValidationHash })) {\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 if (bundleRequest.result?.rebuild) {\n bundleRequest.result = {\n ...(await bundleRequest.result.rebuild()),\n outputPath: bundleRequest.result.outputPath,\n hash: cacheValidationHash,\n };\n } else {\n const {\n bundler,\n bundlerOptions,\n inlinedDependencies,\n dynamicImports,\n bundlerCapabilities,\n ignoredBundlerWarnings,\n unsafeCjsExportNames,\n } = (await packages.get(packagePath)).cloudpack || {};\n\n const bundleOptions: BundleOptions = {\n bundler,\n minify: mode === 'production',\n targetEnvironment,\n bundlerOptions,\n inputPath: packagePath,\n outputPath,\n incremental: isIncremental !== undefined ? isIncremental : false,\n sourcemap: !disableSourceMaps,\n entries: await getEntriesMapFromPackage({ inputPath: packagePath, targetEnvironment }, { packages, config }),\n inlined: inlinedDependencies,\n external: await getExternalsFromPackage({ inputPath: packagePath }, { packages }),\n dynamicImports,\n ignoredBundlerWarnings,\n bundlerCapabilities,\n unsafeCjsExportNames,\n };\n\n const bundleInternalResult = await bundle(bundleOptions, { config });\n bundleRequest.result = {\n ...bundleInternalResult,\n outputPath: bundleOptions.outputPath ?? outputPath,\n hash: cacheValidationHash,\n bundleSource: 'bundler',\n };\n\n if (bundlerCapabilities?.density) {\n // Get export maps that need to be written as stubs for density.\n // If there are density exports, write stubs for them.\n const densityErrors = await writeStubForDensityEntries({\n options: {\n packageName,\n packagePath,\n result: bundleInternalResult,\n },\n context: { packages, config },\n });\n\n // Add any errors to the result.\n if (densityErrors.length > 0) {\n bundleRequest.result.errors = [...(bundleRequest.result.errors ?? []), ...densityErrors];\n }\n }\n }\n\n // Write the result to disk.\n await saveResultToCache(bundleRequest.result);\n }\n\n // If we should find required imports and exports per bundle\n if (shouldGetBundleInfo && !bundleRequest.result?.errors?.length && bundleRequest.result?.outputFiles?.length) {\n // Exports map is needed to find the bundle info per entry we intend to bundle.\n // Exports map is used instead of bundleRequest.entries since it is easier to use\n // because it contains the paths other packages use to import the entry and\n // the relative location of the bundled files.\n const exportsMap = await getExportsMap({ packagePath }, { packages, config });\n\n const bundleInfo = await getBundleInfo({\n outputPath,\n outputFiles: bundleRequest.result.outputFiles,\n exportsMap,\n isExternal,\n packagePath,\n });\n\n bundleRequest.result.info = bundleInfo;\n\n if (config.logBundleInfo) {\n // Write to cache for future use. (Ignore the promise result.)\n void writeJson(path.join(outputPath, 'bundle-info.json'), bundleInfo);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"bundleTask.js","sourceRoot":"","sources":["../../src/utilities/bundleTask.ts"],"names":[],"mappings":"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","sourcesContent":["import { bundle, getEntriesMapFromPackage, getExternalsFromPackage } from '@ms-cloudpack/bundler';\nimport type { BundleOptions } from '@ms-cloudpack/common-types';\nimport { writeJson } from '@ms-cloudpack/json-utilities';\nimport { getExportsMap } from '@ms-cloudpack/package-utilities';\nimport { SpanStatusCode } from '@ms-cloudpack/telemetry';\nimport { formatPackageName } from '@ms-cloudpack/task-reporter';\nimport path from 'path';\nimport { prepareOutputPath } from '../common/prepareOutputPath.js';\nimport type { BundleRequest } from '../types/BundleRequest.js';\nimport { getBundleInfo } from './getBundleInfo.js';\nimport { getBundleLocation } from './getBundleLocation.js';\nimport { isCachedResultValid } from './isCachedResultValid.js';\nimport { readResultFromCache } from './readResultFromCache.js';\nimport { saveResultToCache } from './saveResultToCache.js';\nimport { formatBundleTaskResult } from './formatBundleTaskResult.js';\nimport type { PartialContext } from '../types/Context.js';\nimport { writeStubForDensityEntries } from './writeStubForDensityEntries.js';\n\n/**\n * Options for a bundle task.\n */\nexport interface BundleTaskOptions {\n /** Force a bundle to be rerun */\n force?: boolean;\n /** Hash to avoid re-computing */\n hash?: string;\n /** Source hash to avoid recomputing */\n sourceHash?: string;\n /** Retry count for the task */\n retryCount?: number;\n bundleRequest: BundleRequest;\n}\n\nexport type BundleTaskContext = PartialContext<\n 'packages' | 'packageHashes' | 'reporter' | 'telemetryClient' | 'remoteCacheClient',\n 'resolveMap' | 'config' | 'sequence' | 'cachePath'\n>;\n\n/**\n * Create and run a TaskReporter task which calls `bundle()` from `@ms-cloudpack/bundler` and formats the result.\n */\nexport async function bundleTask(options: BundleTaskOptions, context: BundleTaskContext): Promise<void> {\n const { bundleRequest, retryCount } = options;\n const { packageName, version } = bundleRequest;\n const { reporter, telemetryClient, session } = context;\n const { sequence } = session;\n\n const task = reporter.addTask(\n `Bundle ${formatPackageName({ name: packageName, version })}${retryCount ? ` (retry ${retryCount})` : ''}`,\n );\n\n try {\n await telemetryClient.tracer.startActiveSpan('BUNDLE_TASK', async (span) => {\n await bundleTaskInternal(options, context);\n\n span.setAttributes({\n sequence,\n isCacheHit: !!bundleRequest.resultFromCache,\n isExternal: bundleRequest.isExternal,\n packageName: bundleRequest.packageName,\n packageVersion: bundleRequest.version,\n bundleSource: bundleRequest.result?.bundleSource,\n bundler: bundleRequest.result?.bundler,\n bundlerVersion: bundleRequest.result?.bundlerVersion,\n ...(retryCount !== undefined && { retryCount }),\n });\n\n if (bundleRequest.result?.errors?.length) {\n // Set the status to `ERROR`\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n });\n } catch (err) {\n // If an unexpected error is thrown, add it to the result.\n // This ensures consistent handling of either actual bundler errors or exceptions.\n bundleRequest.result ??= {};\n bundleRequest.result.errors ??= [];\n bundleRequest.result.errors.push({\n text: `Unexpected exception while bundling: ${(err as Error).stack || String(err)}`,\n source: 'bundleTask',\n });\n }\n\n task.complete(formatBundleTaskResult(bundleRequest, reporter));\n}\n\n/**\n * Actually read the result from the cache or call `bundle()`.\n * NOTE: The result is returned by mutating `options.bundleRequest.result`.\n */\nasync function bundleTaskInternal(options: BundleTaskOptions, context: BundleTaskContext): Promise<void> {\n const { bundleRequest, force, hash, sourceHash } = options;\n const { packageName, version, targetEnvironment } = bundleRequest;\n const { packageHashes, packages, session } = context;\n const { config } = session;\n const { mode } = 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, isExternal, isIncremental, disableSourceMaps, shouldGetBundleInfo } = bundleRequest;\n\n const outputPath =\n bundleRequest.outputPath ??\n (await getBundleLocation({ packagePath, targetEnvironment, shouldRecalculate: force, hash }, context)).path;\n\n // Rehydrate the result if not incremental.\n if (bundleRequest.result === undefined && !force) {\n bundleRequest.result = await readResultFromCache(\n { packageName, version, inputPath: packagePath, outputPath, targetEnvironment },\n context,\n );\n }\n\n const cacheValidationHash = !isExternal\n ? sourceHash ||\n (await packageHashes.get({\n packagePath,\n targetEnvironment,\n isSourceHashingEnabled: true,\n shouldRecalculate: true,\n }))\n : undefined;\n\n // if the cached result is valid, use it.\n if (!force && isCachedResultValid({ bundleRequest, hash: cacheValidationHash })) {\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 if (bundleRequest.result?.rebuild) {\n bundleRequest.result = {\n ...(await bundleRequest.result.rebuild()),\n outputPath: bundleRequest.result.outputPath,\n hash: cacheValidationHash,\n };\n } else {\n const {\n bundler,\n bundlerOptions,\n inlinedDependencies,\n dynamicImports,\n bundlerCapabilities,\n ignoredBundlerWarnings,\n unsafeCjsExportNames,\n } = (await packages.get(packagePath)).cloudpack || {};\n\n const bundleOptions: BundleOptions = {\n bundler,\n minify: mode === 'production',\n targetEnvironment,\n bundlerOptions,\n inputPath: packagePath,\n outputPath,\n incremental: isIncremental !== undefined ? isIncremental : false,\n sourcemap: !disableSourceMaps,\n entries: await getEntriesMapFromPackage({ inputPath: packagePath, targetEnvironment }, { packages, config }),\n inlined: inlinedDependencies,\n external: await getExternalsFromPackage({ inputPath: packagePath }, { packages }),\n dynamicImports,\n ignoredBundlerWarnings,\n bundlerCapabilities,\n unsafeCjsExportNames,\n };\n\n const bundleInternalResult = await bundle(bundleOptions, { config });\n bundleRequest.result = {\n ...bundleInternalResult,\n outputPath: bundleOptions.outputPath ?? outputPath,\n hash: cacheValidationHash,\n bundleSource: 'bundler',\n };\n\n if (bundlerCapabilities?.density) {\n // Get export maps that need to be written as stubs for density.\n // If there are density exports, write stubs for them.\n const densityResult = await writeStubForDensityEntries({\n options: {\n packageName,\n packagePath,\n result: bundleInternalResult,\n densityOptions: bundlerCapabilities.density,\n },\n context: { packages, config },\n });\n\n // Add errors and warnings to the appropriate arrays\n if (densityResult.errors.length > 0) {\n bundleRequest.result.errors = [...(bundleRequest.result.errors ?? []), ...densityResult.errors];\n }\n\n if (densityResult.warnings.length > 0) {\n bundleRequest.result.warnings = [...(bundleRequest.result.warnings ?? []), ...densityResult.warnings];\n }\n }\n }\n\n // Write the result to disk.\n await saveResultToCache(bundleRequest.result);\n }\n\n // If we should find required imports and exports per bundle\n if (shouldGetBundleInfo && !bundleRequest.result?.errors?.length && bundleRequest.result?.outputFiles?.length) {\n // Exports map is needed to find the bundle info per entry we intend to bundle.\n // Exports map is used instead of bundleRequest.entries since it is easier to use\n // because it contains the paths other packages use to import the entry and\n // the relative location of the bundled files.\n const exportsMap = await getExportsMap({ packagePath }, { packages, config });\n\n const bundleInfo = await getBundleInfo({\n outputPath,\n outputFiles: bundleRequest.result.outputFiles,\n exportsMap,\n isExternal,\n packagePath,\n });\n\n bundleRequest.result.info = bundleInfo;\n\n if (config.logBundleInfo) {\n // Write to cache for future use. (Ignore the promise result.)\n void writeJson(path.join(outputPath, 'bundle-info.json'), bundleInfo);\n }\n }\n}\n"]}
@@ -1,13 +1,17 @@
1
- import type { BundleMessage, BundlerResult, CloudpackConfig, PackageDefinitionsCache } from '@ms-cloudpack/common-types';
1
+ import type { BundleMessage, BundlerCapabilitiesOptions, BundlerResult, CloudpackConfig, PackageDefinitionsCache } from '@ms-cloudpack/common-types';
2
2
  export declare function writeStubForDensityEntries(params: {
3
3
  options: {
4
4
  packageName: string;
5
5
  packagePath: string;
6
6
  result: BundlerResult;
7
+ densityOptions: NonNullable<BundlerCapabilitiesOptions['density']>;
7
8
  };
8
9
  context: {
9
10
  packages: PackageDefinitionsCache;
10
11
  config: CloudpackConfig;
11
12
  };
12
- }): Promise<BundleMessage[]>;
13
+ }): Promise<{
14
+ errors: BundleMessage[];
15
+ warnings: BundleMessage[];
16
+ }>;
13
17
  //# sourceMappingURL=writeStubForDensityEntries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writeStubForDensityEntries.d.ts","sourceRoot":"","sources":["../../src/utilities/writeStubForDensityEntries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AASpC,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,QAAQ,EAAE,uBAAuB,CAAC;QAClC,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;CACH,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAuE3B"}
1
+ {"version":3,"file":"writeStubForDensityEntries.d.ts","sourceRoot":"","sources":["../../src/utilities/writeStubForDensityEntries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AASpC,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,aAAa,CAAC;QACtB,cAAc,EAAE,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC;KACpE,CAAC;IACF,OAAO,EAAE;QACP,QAAQ,EAAE,uBAAuB,CAAC;QAClC,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;CACH,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC,CAiHlE"}
@@ -14,34 +14,70 @@ export async function writeStubForDensityEntries(params) {
14
14
  requiredConditions: densityCondition,
15
15
  conditions: densityCondition,
16
16
  });
17
- if (Object.keys(densityExportsMap).length === 0) {
18
- return [];
17
+ if (Object.keys(densityExportsMap).length === 0 && options.densityOptions === true) {
18
+ return { errors: [], warnings: [] };
19
19
  }
20
20
  if (!result.outputFiles) {
21
- return [
22
- {
23
- source: errorSource,
24
- text: `No output files found in the result. package name:${packageName}, package path:${packagePath}`,
25
- },
26
- ];
21
+ return {
22
+ errors: [
23
+ {
24
+ source: errorSource,
25
+ text: 'No output files found in the result.',
26
+ },
27
+ ],
28
+ warnings: [],
29
+ };
27
30
  }
28
31
  if (!result.outputPath) {
29
- return [
30
- {
31
- source: errorSource,
32
- text: `No output path found in the result. package name:${packageName}, package path:${packagePath}`,
33
- },
34
- ];
32
+ return {
33
+ errors: [
34
+ {
35
+ source: errorSource,
36
+ text: 'No output path found in the result.',
37
+ },
38
+ ],
39
+ warnings: [],
40
+ };
35
41
  }
36
42
  const errors = [];
37
- // find the corresponding output file from the result for each external entry
38
- for (const [key, value] of Object.entries(densityExportsMap)) {
43
+ const warnings = [];
44
+ const entriesToStub = Object.entries(densityExportsMap);
45
+ if (typeof options.densityOptions === 'object' && Array.isArray(options.densityOptions.entries)) {
46
+ // Add entries that are in the options list
47
+ const flattenedExportsMap = flattenExportsMap(exportsMap);
48
+ for (const key of options.densityOptions.entries) {
49
+ const normalizedKey = toNormalizedEntryKey(key);
50
+ if (!flattenedExportsMap[normalizedKey]) {
51
+ warnings.push({
52
+ text: `Entry "${key}" from density capability not found in package exports map. Available entries: ${Object.keys(flattenedExportsMap).join(', ')}`,
53
+ source: errorSource,
54
+ });
55
+ continue;
56
+ }
57
+ if (densityExportsMap[normalizedKey]) {
58
+ warnings.push({
59
+ text: `Entry "${key}" from density capability already has a "density" condition in exports map, skipping custom entry`,
60
+ source: errorSource,
61
+ });
62
+ continue;
63
+ }
64
+ // Automatically detect the correct extension from the original export
65
+ const originalPath = flattenedExportsMap[normalizedKey];
66
+ const normalizedPath = toNormalizedEntryKey(originalPath);
67
+ const extension = path.extname(originalPath) || '.js'; // Fallback to .js if no extension
68
+ const densityPath = `${normalizedPath}${extension}`;
69
+ entriesToStub.push([normalizedKey, densityPath]);
70
+ }
71
+ }
72
+ // Generate density stubs for each entry
73
+ for (const [key, value] of entriesToStub) {
39
74
  try {
40
75
  const entryPath = toNormalizedEntryKey(value);
41
76
  const outputFile = result.outputFiles.find((o) => o.outputPath === value);
42
77
  if (!outputFile) {
78
+ const availableOutputs = result.outputFiles.map((f) => f.outputPath).join(', ');
43
79
  errors.push({
44
- text: `No output file found for external entry: ${entryPath}, package name:${packageName}, package path:${packagePath}`,
80
+ text: `No output file found for density entry "${key}" (expected: ${entryPath}). Available output files: ${availableOutputs}. This might indicate a bundler configuration issue or the entry was not processed correctly.`,
45
81
  source: errorSource,
46
82
  });
47
83
  continue;
@@ -62,11 +98,11 @@ export async function writeStubForDensityEntries(params) {
62
98
  }
63
99
  catch (e) {
64
100
  errors.push({
65
- text: `Error while creating stub for external entry: ${e}, package name:${packageName}, package path:${packagePath}`,
101
+ text: `Failed to create density stub for entry "${key}": ${e instanceof Error ? e.message : String(e)}.`,
66
102
  source: errorSource,
67
103
  });
68
104
  }
69
105
  }
70
- return errors;
106
+ return { errors, warnings };
71
107
  }
72
108
  //# sourceMappingURL=writeStubForDensityEntries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writeStubForDensityEntries.js","sourceRoot":"","sources":["../../src/utilities/writeStubForDensityEntries.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n BundleMessage,\n BundlerResult,\n CloudpackConfig,\n PackageDefinitionsCache,\n} from '@ms-cloudpack/common-types';\nimport { generateESMStubFromExports } from '@ms-cloudpack/esm-stub-utilities';\nimport { writeFile } from 'fs/promises';\nimport path from 'path';\nimport { toNormalizedEntryKey } from '@ms-cloudpack/bundler';\nimport { flattenExportsMap, getExportsMap } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\n\nconst errorSource = 'density-entry-stub';\nexport async function writeStubForDensityEntries(params: {\n options: {\n packageName: string;\n packagePath: string;\n result: BundlerResult;\n };\n context: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n };\n}): Promise<BundleMessage[]> {\n const { options, context } = params;\n const { packagePath, packageName, result } = options;\n const exportsMap = await getExportsMap({ packagePath }, context);\n const densityCondition = ['density'];\n const densityExportsMap = flattenExportsMap(exportsMap, {\n requiredConditions: densityCondition,\n conditions: densityCondition,\n });\n\n if (Object.keys(densityExportsMap).length === 0) {\n return [];\n }\n\n if (!result.outputFiles) {\n return [\n {\n source: errorSource,\n text: `No output files found in the result. package name:${packageName}, package path:${packagePath}`,\n },\n ];\n }\n\n if (!result.outputPath) {\n return [\n {\n source: errorSource,\n text: `No output path found in the result. package name:${packageName}, package path:${packagePath}`,\n },\n ];\n }\n\n const errors: BundleMessage[] = [];\n\n // find the corresponding output file from the result for each external entry\n for (const [key, value] of Object.entries(densityExportsMap)) {\n try {\n const entryPath = toNormalizedEntryKey(value);\n const outputFile = result.outputFiles.find((o) => o.outputPath === value);\n if (!outputFile) {\n errors.push({\n text: `No output file found for external entry: ${entryPath}, package name:${packageName}, package path:${packagePath}`,\n source: errorSource,\n });\n continue;\n }\n\n const moduleId = key === '.' ? options.packageName : path.join(packageName, entryPath);\n\n // generate new stab file for the external entry by using output.exports\n // found the output file. This file need to be replaced.\n const stub = generateESMStubFromExports({\n export: {\n type: outputFile.exports ? 'object' : 'other',\n // These exports are not technically correct since they might include a default export from the esm bundle\n // but density returns packages without a default.\n keys: outputFile.exports?.filter((e) => e !== 'default') ?? [],\n },\n importStatement: `const moduleExport = requireDensityModule(\"${slash(moduleId)}\");`,\n });\n\n await writeFile(path.join(result.outputPath, outputFile.outputPath), stub);\n } catch (e) {\n errors.push({\n text: `Error while creating stub for external entry: ${e}, package name:${packageName}, package path:${packagePath}`,\n source: errorSource,\n });\n }\n }\n\n return errors;\n}\n"]}
1
+ {"version":3,"file":"writeStubForDensityEntries.js","sourceRoot":"","sources":["../../src/utilities/writeStubForDensityEntries.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n BundleMessage,\n BundlerCapabilitiesOptions,\n BundlerResult,\n CloudpackConfig,\n PackageDefinitionsCache,\n} from '@ms-cloudpack/common-types';\nimport { generateESMStubFromExports } from '@ms-cloudpack/esm-stub-utilities';\nimport { writeFile } from 'fs/promises';\nimport path from 'path';\nimport { toNormalizedEntryKey } from '@ms-cloudpack/bundler';\nimport { flattenExportsMap, getExportsMap } from '@ms-cloudpack/package-utilities';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\n\nconst errorSource = 'density-entry-stub';\nexport async function writeStubForDensityEntries(params: {\n options: {\n packageName: string;\n packagePath: string;\n result: BundlerResult;\n densityOptions: NonNullable<BundlerCapabilitiesOptions['density']>;\n };\n context: {\n packages: PackageDefinitionsCache;\n config: CloudpackConfig;\n };\n}): Promise<{ errors: BundleMessage[]; warnings: BundleMessage[] }> {\n const { options, context } = params;\n const { packagePath, packageName, result } = options;\n const exportsMap = await getExportsMap({ packagePath }, context);\n const densityCondition = ['density'];\n const densityExportsMap = flattenExportsMap(exportsMap, {\n requiredConditions: densityCondition,\n conditions: densityCondition,\n });\n\n if (Object.keys(densityExportsMap).length === 0 && options.densityOptions === true) {\n return { errors: [], warnings: [] };\n }\n\n if (!result.outputFiles) {\n return {\n errors: [\n {\n source: errorSource,\n text: 'No output files found in the result.',\n },\n ],\n warnings: [],\n };\n }\n\n if (!result.outputPath) {\n return {\n errors: [\n {\n source: errorSource,\n text: 'No output path found in the result.',\n },\n ],\n warnings: [],\n };\n }\n\n const errors: BundleMessage[] = [];\n const warnings: BundleMessage[] = [];\n\n const entriesToStub = Object.entries(densityExportsMap);\n\n if (typeof options.densityOptions === 'object' && Array.isArray(options.densityOptions.entries)) {\n // Add entries that are in the options list\n const flattenedExportsMap = flattenExportsMap(exportsMap);\n\n for (const key of options.densityOptions.entries) {\n const normalizedKey = toNormalizedEntryKey(key);\n if (!flattenedExportsMap[normalizedKey]) {\n warnings.push({\n text: `Entry \"${key}\" from density capability not found in package exports map. Available entries: ${Object.keys(flattenedExportsMap).join(', ')}`,\n source: errorSource,\n });\n continue;\n }\n\n if (densityExportsMap[normalizedKey]) {\n warnings.push({\n text: `Entry \"${key}\" from density capability already has a \"density\" condition in exports map, skipping custom entry`,\n source: errorSource,\n });\n continue;\n }\n\n // Automatically detect the correct extension from the original export\n const originalPath = flattenedExportsMap[normalizedKey];\n const normalizedPath = toNormalizedEntryKey(originalPath);\n const extension = path.extname(originalPath) || '.js'; // Fallback to .js if no extension\n const densityPath = `${normalizedPath}${extension}`;\n\n entriesToStub.push([normalizedKey, densityPath]);\n }\n }\n\n // Generate density stubs for each entry\n for (const [key, value] of entriesToStub) {\n try {\n const entryPath = toNormalizedEntryKey(value);\n const outputFile = result.outputFiles.find((o) => o.outputPath === value);\n if (!outputFile) {\n const availableOutputs = result.outputFiles.map((f) => f.outputPath).join(', ');\n errors.push({\n text: `No output file found for density entry \"${key}\" (expected: ${entryPath}). Available output files: ${availableOutputs}. This might indicate a bundler configuration issue or the entry was not processed correctly.`,\n source: errorSource,\n });\n continue;\n }\n\n const moduleId = key === '.' ? options.packageName : path.join(packageName, entryPath);\n\n // generate new stab file for the external entry by using output.exports\n // found the output file. This file need to be replaced.\n const stub = generateESMStubFromExports({\n export: {\n type: outputFile.exports ? 'object' : 'other',\n // These exports are not technically correct since they might include a default export from the esm bundle\n // but density returns packages without a default.\n keys: outputFile.exports?.filter((e) => e !== 'default') ?? [],\n },\n importStatement: `const moduleExport = requireDensityModule(\"${slash(moduleId)}\");`,\n });\n\n await writeFile(path.join(result.outputPath, outputFile.outputPath), stub);\n } catch (e) {\n errors.push({\n text: `Failed to create density stub for entry \"${key}\": ${e instanceof Error ? e.message : String(e)}.`,\n source: errorSource,\n });\n }\n }\n\n return { errors, warnings };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/api-server",
3
- "version": "0.64.31",
3
+ "version": "0.65.0",
4
4
  "description": "Internal API server for Cloudpack",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,23 +25,23 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@ms-cloudpack/bundler": "^0.26.8",
29
- "@ms-cloudpack/common-types": "^0.30.0",
30
- "@ms-cloudpack/config": "^0.38.12",
31
- "@ms-cloudpack/create-express-app": "^1.10.57",
28
+ "@ms-cloudpack/bundler": "^0.26.9",
29
+ "@ms-cloudpack/common-types": "^0.31.0",
30
+ "@ms-cloudpack/config": "^0.38.13",
31
+ "@ms-cloudpack/create-express-app": "^1.10.58",
32
32
  "@ms-cloudpack/data-bus": "^0.5.0",
33
33
  "@ms-cloudpack/environment": "^0.1.1",
34
- "@ms-cloudpack/esm-stub-utilities": "^0.15.23",
35
- "@ms-cloudpack/file-watcher": "^0.4.15",
36
- "@ms-cloudpack/import-map": "^0.10.53",
34
+ "@ms-cloudpack/esm-stub-utilities": "^0.15.24",
35
+ "@ms-cloudpack/file-watcher": "^0.4.16",
36
+ "@ms-cloudpack/import-map": "^0.10.54",
37
37
  "@ms-cloudpack/json-utilities": "^0.1.11",
38
- "@ms-cloudpack/package-hashes": "^0.8.36",
39
- "@ms-cloudpack/package-utilities": "^13.1.2",
38
+ "@ms-cloudpack/package-hashes": "^0.8.37",
39
+ "@ms-cloudpack/package-utilities": "^13.1.3",
40
40
  "@ms-cloudpack/path-string-parsing": "^1.2.7",
41
- "@ms-cloudpack/path-utilities": "^3.1.28",
42
- "@ms-cloudpack/remote-cache": "^0.11.48",
41
+ "@ms-cloudpack/path-utilities": "^3.1.29",
42
+ "@ms-cloudpack/remote-cache": "^0.11.49",
43
43
  "@ms-cloudpack/task-reporter": "^0.17.4",
44
- "@ms-cloudpack/telemetry": "^0.11.48",
44
+ "@ms-cloudpack/telemetry": "^0.11.49",
45
45
  "@trpc/client": "^11.1.1",
46
46
  "@trpc/server": "^11.1.1",
47
47
  "cors": "^2.8.5",