@ms-cloudpack/api-server 0.61.10 → 0.61.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"addPackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAcvD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,CACf,eAAe,EACf,KAAK,GAAG,eAAe,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,EACvE,QAAQ,GAAG,wBAAwB,GAAG,YAAY,GAAG,UAAU,CAChE,GACA,OAAO,CAAC,OAAO,CAAC,CAsBlB;yBA5BqB,kBAAkB"}
1
+ {"version":3,"file":"addPackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAevD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,CACf,eAAe,EACf,KAAK,GAAG,eAAe,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,EACvE,QAAQ,GAAG,wBAAwB,GAAG,YAAY,GAAG,UAAU,CAChE,GACA,OAAO,CAAC,OAAO,CAAC,CA8BlB;yBApCqB,kBAAkB"}
@@ -9,6 +9,7 @@ const ZodAddPackageOverrideInput = matchingZodObject({
9
9
  importPath: z.string(),
10
10
  version: z.string().optional(),
11
11
  issuerUrl: z.string().optional(),
12
+ initiatedBy: z.union([z.literal('autoUpdateEntries'), z.literal('user')]),
12
13
  });
13
14
  // TODO: consider whether this should be hardcoded or not
14
15
  const targetEnvironment = 'browser';
@@ -18,25 +19,28 @@ const targetEnvironment = 'browser';
18
19
  export async function addPackageOverride(params) {
19
20
  const { input, ctx } = params;
20
21
  const { session, bus, packages, taskRunner, packageHashes, telemetryClient } = ctx;
21
- const { addedOverride, entry } = await addOverride(input, { session, packages });
22
- if (entry && addedOverride) {
23
- // The import map hash needs to be recalculated to ensure that the client is up to date.
24
- await packageHashes.get({
25
- packagePath: entry.path,
26
- isSourceHashingEnabled: false,
27
- shouldRecalculate: true,
28
- targetEnvironment,
29
- });
30
- taskRunner.remove(entry.path);
31
- // Incrementing the target version will cause the import map to be recalculated.
32
- session.incrementTargetVersion(entry.path);
33
- if (session.config.features?.autoUpdateEntries) {
34
- // We can clear the error message now that the override has been added.
35
- bus.publish(errorEntrySource, '');
22
+ const { packageName, initiatedBy } = input;
23
+ return telemetryClient.tracer.startActiveSpan('ADD_PACKAGE_OVERRIDE', { attributes: { packageName, initiatedBy } }, async () => {
24
+ const { addedOverride, entry } = await addOverride(input, { session, packages });
25
+ if (entry && addedOverride) {
26
+ // The import map hash needs to be recalculated to ensure that the client is up to date.
27
+ await packageHashes.get({
28
+ packagePath: entry.path,
29
+ isSourceHashingEnabled: false,
30
+ shouldRecalculate: true,
31
+ targetEnvironment,
32
+ });
33
+ taskRunner.remove(entry.path);
34
+ // Incrementing the target version will cause the import map to be recalculated.
35
+ session.incrementTargetVersion(entry.path);
36
+ if (session.config.features?.autoUpdateEntries) {
37
+ // We can clear the error message now that the override has been added.
38
+ bus.publish(errorEntrySource, '');
39
+ }
40
+ await notifyReload({ reason: 'add-package-override' }, { bus, session, telemetryClient });
36
41
  }
37
- await notifyReload({ reason: 'add-package-override' }, { bus, session, telemetryClient });
38
- }
39
- return addedOverride;
42
+ return addedOverride;
43
+ });
40
44
  }
41
45
  addPackageOverride.procedure = publicProcedure.input(ZodAddPackageOverrideInput).mutation(addPackageOverride);
42
46
  //# sourceMappingURL=addPackageOverride.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addPackageOverride.js","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,0BAA0B,GAAG,iBAAiB,CAAkB;IACpE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAIC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC;IACnF,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjF,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;QAC3B,wFAAwF;QACxF,MAAM,aAAa,CAAC,GAAG,CAAC;YACtB,WAAW,EAAE,KAAK,CAAC,IAAI;YACvB,sBAAsB,EAAE,KAAK;YAC7B,iBAAiB,EAAE,IAAI;YACvB,iBAAiB;SAClB,CAAC,CAAC;QACH,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,gFAAgF;QAChF,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;YAC/C,uEAAuE;YACvE,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,kBAAkB,CAAC,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { publicProcedure } from '../trpc/common.js';\nimport { addOverride } from '../utilities/addOverride.js';\nimport { notifyReload } from '../utilities/notifyReload.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\nimport type { ApiParams } from '../types/ApiParams.js';\nimport { errorEntrySource } from '../data/busSources.js';\nimport { matchingZodObject } from '../utilities/matchingZodObject.js';\n\nconst ZodAddPackageOverrideInput = matchingZodObject<OverrideOptions>({\n packageName: z.string(),\n importPath: z.string(),\n version: z.string().optional(),\n issuerUrl: z.string().optional(),\n});\n\n// TODO: consider whether this should be hardcoded or not\nconst targetEnvironment = 'browser';\n\n/**\n * Adds an override to the Cloudpack config.\n */\nexport async function addPackageOverride(\n params: ApiParams<\n OverrideOptions,\n 'bus' | 'packageHashes' | 'packages' | 'taskRunner' | 'telemetryClient',\n 'config' | 'incrementTargetVersion' | 'resolveMap' | 'sequence'\n >,\n): Promise<boolean> {\n const { input, ctx } = params;\n const { session, bus, packages, taskRunner, packageHashes, telemetryClient } = ctx;\n const { addedOverride, entry } = await addOverride(input, { session, packages });\n if (entry && addedOverride) {\n // The import map hash needs to be recalculated to ensure that the client is up to date.\n await packageHashes.get({\n packagePath: entry.path,\n isSourceHashingEnabled: false,\n shouldRecalculate: true,\n targetEnvironment,\n });\n taskRunner.remove(entry.path);\n // Incrementing the target version will cause the import map to be recalculated.\n session.incrementTargetVersion(entry.path);\n if (session.config.features?.autoUpdateEntries) {\n // We can clear the error message now that the override has been added.\n bus.publish(errorEntrySource, '');\n }\n await notifyReload({ reason: 'add-package-override' }, { bus, session, telemetryClient });\n }\n return addedOverride;\n}\n\naddPackageOverride.procedure = publicProcedure.input(ZodAddPackageOverrideInput).mutation(addPackageOverride);\n"]}
1
+ {"version":3,"file":"addPackageOverride.js","sourceRoot":"","sources":["../../src/apis/addPackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,0BAA0B,GAAG,iBAAiB,CAAkB;IACpE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1E,CAAC,CAAC;AAEH,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAIC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC;IACnF,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAE3C,OAAO,eAAe,CAAC,MAAM,CAAC,eAAe,CAC3C,sBAAsB,EACtB,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAC5C,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjF,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;YAC3B,wFAAwF;YACxF,MAAM,aAAa,CAAC,GAAG,CAAC;gBACtB,WAAW,EAAE,KAAK,CAAC,IAAI;gBACvB,sBAAsB,EAAE,KAAK;gBAC7B,iBAAiB,EAAE,IAAI;gBACvB,iBAAiB;aAClB,CAAC,CAAC;YACH,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,gFAAgF;YAChF,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;gBAC/C,uEAAuE;gBACvE,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC,CACF,CAAC;AACJ,CAAC;AAED,kBAAkB,CAAC,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { publicProcedure } from '../trpc/common.js';\nimport { addOverride } from '../utilities/addOverride.js';\nimport { notifyReload } from '../utilities/notifyReload.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\nimport type { ApiParams } from '../types/ApiParams.js';\nimport { errorEntrySource } from '../data/busSources.js';\nimport { matchingZodObject } from '../utilities/matchingZodObject.js';\n\nconst ZodAddPackageOverrideInput = matchingZodObject<OverrideOptions>({\n packageName: z.string(),\n importPath: z.string(),\n version: z.string().optional(),\n issuerUrl: z.string().optional(),\n initiatedBy: z.union([z.literal('autoUpdateEntries'), z.literal('user')]),\n});\n\n// TODO: consider whether this should be hardcoded or not\nconst targetEnvironment = 'browser';\n\n/**\n * Adds an override to the Cloudpack config.\n */\nexport async function addPackageOverride(\n params: ApiParams<\n OverrideOptions,\n 'bus' | 'packageHashes' | 'packages' | 'taskRunner' | 'telemetryClient',\n 'config' | 'incrementTargetVersion' | 'resolveMap' | 'sequence'\n >,\n): Promise<boolean> {\n const { input, ctx } = params;\n const { session, bus, packages, taskRunner, packageHashes, telemetryClient } = ctx;\n const { packageName, initiatedBy } = input;\n\n return telemetryClient.tracer.startActiveSpan(\n 'ADD_PACKAGE_OVERRIDE',\n { attributes: { packageName, initiatedBy } },\n async () => {\n const { addedOverride, entry } = await addOverride(input, { session, packages });\n if (entry && addedOverride) {\n // The import map hash needs to be recalculated to ensure that the client is up to date.\n await packageHashes.get({\n packagePath: entry.path,\n isSourceHashingEnabled: false,\n shouldRecalculate: true,\n targetEnvironment,\n });\n taskRunner.remove(entry.path);\n // Incrementing the target version will cause the import map to be recalculated.\n session.incrementTargetVersion(entry.path);\n if (session.config.features?.autoUpdateEntries) {\n // We can clear the error message now that the override has been added.\n bus.publish(errorEntrySource, '');\n }\n await notifyReload({ reason: 'add-package-override' }, { bus, session, telemetryClient });\n }\n return addedOverride;\n },\n );\n}\n\naddPackageOverride.procedure = publicProcedure.input(ZodAddPackageOverrideInput).mutation(addPackageOverride);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"syncUpload.d.ts","sourceRoot":"","sources":["../../src/apis/syncUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAUnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAW9D;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,EAC7B,GAAG,EAAE,IAAI,CAAC,2BAA2B,EAAE,KAAK,GAAG,SAAS,CAAC,GACxD,OAAO,CAAC,UAAU,CAAC,CA+FrB"}
1
+ {"version":3,"file":"syncUpload.d.ts","sourceRoot":"","sources":["../../src/apis/syncUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAUnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAY9D;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,EAC7B,GAAG,EAAE,IAAI,CAAC,2BAA2B,EAAE,KAAK,GAAG,SAAS,CAAC,GACxD,OAAO,CAAC,UAAU,CAAC,CAkGrB"}
@@ -12,6 +12,7 @@ import { ensureRemoteCacheEnabled } from '../utilities/ensureRemoteCacheEnabled.
12
12
  import { getRemoteCachePackageId } from '../utilities/getRemoteCachePackageId.js';
13
13
  import { createImportMap } from '@ms-cloudpack/import-map';
14
14
  import { serializeContext } from '../utilities/serializeContext.js';
15
+ import { writeJson } from '@ms-cloudpack/json-utilities';
15
16
  const cloudpackContextFileName = 'cloudpack-context.json';
16
17
  const templateAppServerUrl = 'template://app-server-url';
17
18
  const templateBundleServerUrl = 'template://bundle-server-url';
@@ -37,7 +38,8 @@ export async function syncUpload(input, ctx) {
37
38
  // Glob pattern for the files to upload.
38
39
  const globMatches = ['**/*', '!**/*-input.json', '!**/*-output.json'];
39
40
  return await telemetryClient.tracer.startActiveSpan(PerfMeasurementSyncUpload, async (span) => {
40
- const { name, version, description } = await ctx.packages.get(appPath);
41
+ const packageJson = await ctx.packages.get(appPath);
42
+ const { name, version, description } = packageJson;
41
43
  const { dependencies, result: bundleResult } = await ensurePackageBundled({ name, version, enqueueDependencies: true }, ctx);
42
44
  const bundledPackages = [bundleResult, ...(await dependencies)];
43
45
  const packagesToUpload = await Promise.all(bundledPackages
@@ -65,6 +67,7 @@ export async function syncUpload(input, ctx) {
65
67
  }
66
68
  session.importMap ??= await createImportMap({ targetEnvironment: 'browser' }, ctx);
67
69
  await serializeContext(path.join(destinationFolder, cloudpackContextFileName), ctx);
70
+ await writeJson(path.join(destinationFolder, 'package.json'), packageJson);
68
71
  const { createAppRegistryClient } = await import('@ms-cloudpack/remote-cache');
69
72
  const appRegistryClient = await createAppRegistryClient({
70
73
  context: ctx,
@@ -73,7 +76,7 @@ export async function syncUpload(input, ctx) {
73
76
  await appRegistryClient.registerApp({
74
77
  name,
75
78
  // Using the current date and time as the version, because most apps are not versioned.
76
- version: new Date().toISOString().slice(16).replace('T', ' '),
79
+ version: new Date().toISOString().slice(0, 16).replace('T', ' '),
77
80
  resourceId: await getRemoteCachePackageId({ packagePath: appPath, targetEnvironment }, ctx),
78
81
  storageAccount: remoteCacheConfig.storageAccount,
79
82
  container: remoteCacheConfig.container,
@@ -1 +1 @@
1
- {"version":3,"file":"syncUpload.js","sourceRoot":"","sources":["../../src/apis/syncUpload.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensurePackageBundled, type EnsurePackageBundledContext } from './ensurePackageBundled.js';\nimport { PerfMeasurementSyncUpload } from '../performance/markers.js';\nimport { getRemoteCachePromiseResultCounts } from '../utilities/getRemoteCachePromiseResultCounts.js';\nimport { createRemoteCacheClientOperationOptions } from '../utilities/createRemoteCacheClientOperationOptions.js';\nimport { createUploadTask } from '../utilities/createUploadTask.js';\nimport { isStaticRoute } from '@ms-cloudpack/common-types';\nimport path from 'path';\nimport { getBundleLocation } from '../utilities/getBundleLocation.js';\nimport { cp } from 'fs/promises';\nimport objectHash from 'object-hash';\nimport type { SyncResult } from '../types/SyncResult.js';\nimport { ensureRemoteCacheEnabled } from '../utilities/ensureRemoteCacheEnabled.js';\nimport { getRemoteCachePackageId } from '../utilities/getRemoteCachePackageId.js';\nimport type { LoginMethod } from '@ms-cloudpack/remote-cache';\nimport { createImportMap } from '@ms-cloudpack/import-map';\nimport { serializeContext } from '../utilities/serializeContext.js';\n\nconst cloudpackContextFileName = 'cloudpack-context.json';\nconst templateAppServerUrl = 'template://app-server-url';\nconst templateBundleServerUrl = 'template://bundle-server-url';\n\n// TODO: don't hardcode this\nconst targetEnvironment = 'browser';\n\n/**\n * Bundle the current app and its dependencies, and upload them to the remote cache.\n */\nexport async function syncUpload(\n input: { login: LoginMethod },\n ctx: Omit<EnsurePackageBundledContext, 'bus' | 'watcher'>,\n): Promise<SyncResult> {\n const { login } = input;\n const { session, telemetryClient, taskRunner, remoteCacheClient: client } = ctx;\n const { config } = session;\n const { appPath } = config;\n const { remoteCache: remoteCacheConfig } = config;\n const syncInternalPackages = config?.features?.syncInternalPackages ?? false;\n\n ensureRemoteCacheEnabled(config);\n\n if (!client) {\n throw new Error('Remote cache client is required to sync upload');\n }\n\n if (!remoteCacheConfig) {\n throw new Error('Remote cache configuration is required to sync upload');\n }\n\n // Glob pattern for the files to upload.\n const globMatches = ['**/*', '!**/*-input.json', '!**/*-output.json'];\n\n return await telemetryClient.tracer.startActiveSpan(PerfMeasurementSyncUpload, async (span) => {\n const { name, version, description } = await ctx.packages.get(appPath);\n\n const { dependencies, result: bundleResult } = await ensurePackageBundled(\n { name, version, enqueueDependencies: true },\n ctx,\n );\n\n const bundledPackages = [bundleResult, ...(await dependencies)];\n const packagesToUpload = await Promise.all(\n bundledPackages\n .filter((p) => p.inputPath && (p.isExternal || syncInternalPackages))\n .map((p) =>\n createRemoteCacheClientOperationOptions(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- verified above that it's set\n { packagePath: p.inputPath!, targetEnvironment },\n ctx,\n ),\n ),\n );\n\n if (config.features?.enableCloudHosted) {\n const appBundleLocation = await getBundleLocation({ packagePath: appPath, targetEnvironment }, ctx);\n const appOutputPath = appBundleLocation.path;\n const destinationFolder = path.join(appOutputPath, '__cloudpack');\n const routesPath = path.join(destinationFolder, 'routes');\n for (const route of config.routes ?? []) {\n if (isStaticRoute(route)) {\n const staticPath = path.resolve(appPath, route.staticPath);\n const routeHash = objectHash(route);\n const folderPath = path.join(routesPath, routeHash);\n await cp(staticPath, path.join(folderPath, route.staticPath), { recursive: true });\n }\n }\n\n if (!session.urls.appServer) {\n // Using template URLs for the app and bundle servers, because they are not known at this point and the will be replaced with the actual URLs at runtime.\n session.urls.appServer = templateAppServerUrl;\n session.urls.bundleServer = templateBundleServerUrl;\n }\n session.importMap ??= await createImportMap({ targetEnvironment: 'browser' }, ctx);\n await serializeContext(path.join(destinationFolder, cloudpackContextFileName), ctx);\n\n const { createAppRegistryClient } = await import('@ms-cloudpack/remote-cache');\n const appRegistryClient = await createAppRegistryClient({\n context: ctx,\n options: { cachePath: session.cachePath, loginMethod: login },\n });\n\n await appRegistryClient.registerApp({\n name,\n // Using the current date and time as the version, because most apps are not versioned.\n version: new Date().toISOString().slice(16).replace('T', ' '),\n resourceId: await getRemoteCachePackageId({ packagePath: appPath, targetEnvironment }, ctx),\n storageAccount: remoteCacheConfig.storageAccount,\n container: remoteCacheConfig.container,\n tenantId: remoteCacheConfig.tenantId,\n description,\n localBundleFolderName: appBundleLocation.folderName,\n });\n }\n\n const uploads = packagesToUpload.map((pkg) =>\n taskRunner.add(createUploadTask({ client, options: { ...pkg, globMatches } })),\n );\n\n // Do not reject if there is a failure. Failed uploads will be logged in the task reporter.\n const promiseResults = await Promise.allSettled(uploads);\n\n const result = getRemoteCachePromiseResultCounts(promiseResults);\n span.setAttributes(result);\n\n return result;\n });\n}\n\n// This function doesn't have an attached procedure because it's never called via the TRPC server.\n"]}
1
+ {"version":3,"file":"syncUpload.js","sourceRoot":"","sources":["../../src/apis/syncUpload.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensurePackageBundled, type EnsurePackageBundledContext } from './ensurePackageBundled.js';\nimport { PerfMeasurementSyncUpload } from '../performance/markers.js';\nimport { getRemoteCachePromiseResultCounts } from '../utilities/getRemoteCachePromiseResultCounts.js';\nimport { createRemoteCacheClientOperationOptions } from '../utilities/createRemoteCacheClientOperationOptions.js';\nimport { createUploadTask } from '../utilities/createUploadTask.js';\nimport { isStaticRoute } from '@ms-cloudpack/common-types';\nimport path from 'path';\nimport { getBundleLocation } from '../utilities/getBundleLocation.js';\nimport { cp } from 'fs/promises';\nimport objectHash from 'object-hash';\nimport type { SyncResult } from '../types/SyncResult.js';\nimport { ensureRemoteCacheEnabled } from '../utilities/ensureRemoteCacheEnabled.js';\nimport { getRemoteCachePackageId } from '../utilities/getRemoteCachePackageId.js';\nimport type { LoginMethod } from '@ms-cloudpack/remote-cache';\nimport { createImportMap } from '@ms-cloudpack/import-map';\nimport { serializeContext } from '../utilities/serializeContext.js';\nimport { writeJson } from '@ms-cloudpack/json-utilities';\n\nconst cloudpackContextFileName = 'cloudpack-context.json';\nconst templateAppServerUrl = 'template://app-server-url';\nconst templateBundleServerUrl = 'template://bundle-server-url';\n\n// TODO: don't hardcode this\nconst targetEnvironment = 'browser';\n\n/**\n * Bundle the current app and its dependencies, and upload them to the remote cache.\n */\nexport async function syncUpload(\n input: { login: LoginMethod },\n ctx: Omit<EnsurePackageBundledContext, 'bus' | 'watcher'>,\n): Promise<SyncResult> {\n const { login } = input;\n const { session, telemetryClient, taskRunner, remoteCacheClient: client } = ctx;\n const { config } = session;\n const { appPath } = config;\n const { remoteCache: remoteCacheConfig } = config;\n const syncInternalPackages = config?.features?.syncInternalPackages ?? false;\n\n ensureRemoteCacheEnabled(config);\n\n if (!client) {\n throw new Error('Remote cache client is required to sync upload');\n }\n\n if (!remoteCacheConfig) {\n throw new Error('Remote cache configuration is required to sync upload');\n }\n\n // Glob pattern for the files to upload.\n const globMatches = ['**/*', '!**/*-input.json', '!**/*-output.json'];\n\n return await telemetryClient.tracer.startActiveSpan(PerfMeasurementSyncUpload, async (span) => {\n const packageJson = await ctx.packages.get(appPath);\n const { name, version, description } = packageJson;\n\n const { dependencies, result: bundleResult } = await ensurePackageBundled(\n { name, version, enqueueDependencies: true },\n ctx,\n );\n\n const bundledPackages = [bundleResult, ...(await dependencies)];\n const packagesToUpload = await Promise.all(\n bundledPackages\n .filter((p) => p.inputPath && (p.isExternal || syncInternalPackages))\n .map((p) =>\n createRemoteCacheClientOperationOptions(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- verified above that it's set\n { packagePath: p.inputPath!, targetEnvironment },\n ctx,\n ),\n ),\n );\n\n if (config.features?.enableCloudHosted) {\n const appBundleLocation = await getBundleLocation({ packagePath: appPath, targetEnvironment }, ctx);\n const appOutputPath = appBundleLocation.path;\n const destinationFolder = path.join(appOutputPath, '__cloudpack');\n const routesPath = path.join(destinationFolder, 'routes');\n for (const route of config.routes ?? []) {\n if (isStaticRoute(route)) {\n const staticPath = path.resolve(appPath, route.staticPath);\n const routeHash = objectHash(route);\n const folderPath = path.join(routesPath, routeHash);\n await cp(staticPath, path.join(folderPath, route.staticPath), { recursive: true });\n }\n }\n\n if (!session.urls.appServer) {\n // Using template URLs for the app and bundle servers, because they are not known at this point and the will be replaced with the actual URLs at runtime.\n session.urls.appServer = templateAppServerUrl;\n session.urls.bundleServer = templateBundleServerUrl;\n }\n session.importMap ??= await createImportMap({ targetEnvironment: 'browser' }, ctx);\n await serializeContext(path.join(destinationFolder, cloudpackContextFileName), ctx);\n\n await writeJson(path.join(destinationFolder, 'package.json'), packageJson);\n\n const { createAppRegistryClient } = await import('@ms-cloudpack/remote-cache');\n const appRegistryClient = await createAppRegistryClient({\n context: ctx,\n options: { cachePath: session.cachePath, loginMethod: login },\n });\n\n await appRegistryClient.registerApp({\n name,\n // Using the current date and time as the version, because most apps are not versioned.\n version: new Date().toISOString().slice(0, 16).replace('T', ' '),\n resourceId: await getRemoteCachePackageId({ packagePath: appPath, targetEnvironment }, ctx),\n storageAccount: remoteCacheConfig.storageAccount,\n container: remoteCacheConfig.container,\n tenantId: remoteCacheConfig.tenantId,\n description,\n localBundleFolderName: appBundleLocation.folderName,\n });\n }\n\n const uploads = packagesToUpload.map((pkg) =>\n taskRunner.add(createUploadTask({ client, options: { ...pkg, globMatches } })),\n );\n\n // Do not reject if there is a failure. Failed uploads will be logged in the task reporter.\n const promiseResults = await Promise.allSettled(uploads);\n\n const result = getRemoteCachePromiseResultCounts(promiseResults);\n span.setAttributes(result);\n\n return result;\n });\n}\n\n// This function doesn't have an attached procedure because it's never called via the TRPC server.\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { ApiParams } from '../types/ApiParams.js';
2
2
  import type { OverrideOptions } from '../types/OverrideOptions.js';
3
- export type ValidatePackageOverrideInput = Omit<OverrideOptions, 'version'>;
3
+ export type ValidatePackageOverrideInput = Omit<OverrideOptions, 'version' | 'initiatedBy'>;
4
4
  export interface ValidatePackageOverrideOutput {
5
5
  fixable: boolean;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validatePackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AAQ5E,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,CAAC,4BAA4B,EAAE,KAAK,GAAG,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAC3F,OAAO,CAAC,6BAA6B,CAAC,CAUxC;yBAZqB,uBAAuB"}
1
+ {"version":3,"file":"validatePackageOverride.d.ts","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAQ5F,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,CAAC,4BAA4B,EAAE,KAAK,GAAG,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAC3F,OAAO,CAAC,6BAA6B,CAAC,CAUxC;yBAZqB,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"validatePackageOverride.js","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAKtE,MAAM,+BAA+B,GAAG,iBAAiB,CAA+B;IACtF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAMH,MAAM,gCAAgC,GAAG,iBAAiB,CAAgC;IACxF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA4F;IAE5F,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QACnD,4GAA4G;QAC5G,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,uBAAuB,CAAC,SAAS,GAAG,eAAe;KAChD,KAAK,CAAC,+BAA+B,CAAC;KACtC,MAAM,CAAC,gCAAgC,CAAC;KACxC,KAAK,CAAC,uBAAuB,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { publicProcedure } from '../trpc/common.js';\nimport { validateOverride } from '../utilities/validateOverride.js';\nimport type { ApiParams } from '../types/ApiParams.js';\nimport { errorEntrySource } from '../index.browser.js';\nimport { matchingZodObject } from '../utilities/matchingZodObject.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\n\nexport type ValidatePackageOverrideInput = Omit<OverrideOptions, 'version'>;\n\nconst ZodValidatePackageOverrideInput = matchingZodObject<ValidatePackageOverrideInput>({\n packageName: z.string(),\n importPath: z.string(),\n issuerUrl: z.string().optional(),\n});\n\nexport interface ValidatePackageOverrideOutput {\n fixable: boolean;\n}\n\nconst ZodValidatePackageOverrideOutput = matchingZodObject<ValidatePackageOverrideOutput>({\n fixable: z.boolean(),\n});\n\nexport async function validatePackageOverride(\n params: ApiParams<ValidatePackageOverrideInput, 'bus' | 'packages', 'config' | 'resolveMap'>,\n): Promise<ValidatePackageOverrideOutput> {\n const { input, ctx } = params;\n if (ctx.session.config.features?.autoUpdateEntries) {\n // We need to publish an empty string to the errorEntrySource as the error has been received on the overlay.\n ctx.bus.publish(errorEntrySource, '');\n }\n\n return {\n fixable: await validateOverride(input, ctx),\n };\n}\n\nvalidatePackageOverride.procedure = publicProcedure\n .input(ZodValidatePackageOverrideInput)\n .output(ZodValidatePackageOverrideOutput)\n .query(validatePackageOverride);\n"]}
1
+ {"version":3,"file":"validatePackageOverride.js","sourceRoot":"","sources":["../../src/apis/validatePackageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAKtE,MAAM,+BAA+B,GAAG,iBAAiB,CAA+B;IACtF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAMH,MAAM,gCAAgC,GAAG,iBAAiB,CAAgC;IACxF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA4F;IAE5F,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QACnD,4GAA4G;QAC5G,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,uBAAuB,CAAC,SAAS,GAAG,eAAe;KAChD,KAAK,CAAC,+BAA+B,CAAC;KACtC,MAAM,CAAC,gCAAgC,CAAC;KACxC,KAAK,CAAC,uBAAuB,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { publicProcedure } from '../trpc/common.js';\nimport { validateOverride } from '../utilities/validateOverride.js';\nimport type { ApiParams } from '../types/ApiParams.js';\nimport { errorEntrySource } from '../index.browser.js';\nimport { matchingZodObject } from '../utilities/matchingZodObject.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\n\nexport type ValidatePackageOverrideInput = Omit<OverrideOptions, 'version' | 'initiatedBy'>;\n\nconst ZodValidatePackageOverrideInput = matchingZodObject<ValidatePackageOverrideInput>({\n packageName: z.string(),\n importPath: z.string(),\n issuerUrl: z.string().optional(),\n});\n\nexport interface ValidatePackageOverrideOutput {\n fixable: boolean;\n}\n\nconst ZodValidatePackageOverrideOutput = matchingZodObject<ValidatePackageOverrideOutput>({\n fixable: z.boolean(),\n});\n\nexport async function validatePackageOverride(\n params: ApiParams<ValidatePackageOverrideInput, 'bus' | 'packages', 'config' | 'resolveMap'>,\n): Promise<ValidatePackageOverrideOutput> {\n const { input, ctx } = params;\n if (ctx.session.config.features?.autoUpdateEntries) {\n // We need to publish an empty string to the errorEntrySource as the error has been received on the overlay.\n ctx.bus.publish(errorEntrySource, '');\n }\n\n return {\n fixable: await validateOverride(input, ctx),\n };\n}\n\nvalidatePackageOverride.procedure = publicProcedure\n .input(ZodValidatePackageOverrideInput)\n .output(ZodValidatePackageOverrideOutput)\n .query(validatePackageOverride);\n"]}
package/lib/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export type { TaskList } from './types/TaskList.js';
8
8
  export type { TaskMessage } from './types/TaskMessage.js';
9
9
  export type { TaskStartDescription } from './types/TaskStartDescription.js';
10
10
  export type { EnsurePackageBundledContext, EnsurePackageBundledResult } from './apis/ensurePackageBundled.js';
11
+ export type { CloudAppContext } from './types/CloudAppContext.js';
11
12
  export { TaskRunner } from './utilities/TaskRunner.js';
12
13
  export { taskListSource, taskStatsSource, errorEntrySource } from './data/busSources.js';
13
14
  export { createCloudpackClient, type CloudpackClient } from './trpc/createCloudpackClient.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE9G,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9F,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC9G,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAwB,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAwB,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAgC,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEzF,iDAAiD;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["export type { Context, PartialContext } from './types/Context.js';\nexport type { BundleInfo, BundleEntryInfo, BundleEntryConsumes } from './types/BundleInfo.js';\nexport type { TaskStats } from './types/TaskStats.js';\nexport type { Task } from './types/Task.js';\nexport type { TaskDescription } from './types/TaskDescription.js';\nexport type { TaskEndDescription } from './types/TaskEndDescription.js';\nexport type { TaskList } from './types/TaskList.js';\nexport type { TaskMessage } from './types/TaskMessage.js';\nexport type { TaskStartDescription } from './types/TaskStartDescription.js';\nexport type { EnsurePackageBundledContext, EnsurePackageBundledResult } from './apis/ensurePackageBundled.js';\n\nexport { TaskRunner } from './utilities/TaskRunner.js';\nexport { taskListSource, taskStatsSource, errorEntrySource } from './data/busSources.js';\nexport { createCloudpackClient, type CloudpackClient } from './trpc/createCloudpackClient.js';\nexport { createCloudpackServer, type CloudpackServer } from './trpc/createCloudpackServer.js';\nexport { getActiveSessionsPath } from './utilities/getActiveSessionsPath.js';\nexport { getConsumedDependencies } from './utilities/getConsumedDependencies.js';\nexport { getConsumedPaths } from './utilities/getConsumedPaths.js';\n\n// Utilities\nexport { createApiContext, createPartialApiContext, type CreateApiContextOptions } from './common/createApiContext.js';\nexport { createMockContext, createPartialMockContext } from './common/createMockContext.js';\nexport { createMockSession, createMockSessionNoFS } from './common/createMockSession.js';\n\n// API methods directly used outside this package\nexport { addPackageOverride } from './apis/addPackageOverride.js';\nexport { ensurePackageBundled } from './apis/ensurePackageBundled.js';\nexport { syncDownload } from './apis/syncDownload.js';\nexport { syncUpload } from './apis/syncUpload.js';\nexport type { SyncResult } from './types/SyncResult.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAwB,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAwB,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAgC,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEzF,iDAAiD;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["export type { Context, PartialContext } from './types/Context.js';\nexport type { BundleInfo, BundleEntryInfo, BundleEntryConsumes } from './types/BundleInfo.js';\nexport type { TaskStats } from './types/TaskStats.js';\nexport type { Task } from './types/Task.js';\nexport type { TaskDescription } from './types/TaskDescription.js';\nexport type { TaskEndDescription } from './types/TaskEndDescription.js';\nexport type { TaskList } from './types/TaskList.js';\nexport type { TaskMessage } from './types/TaskMessage.js';\nexport type { TaskStartDescription } from './types/TaskStartDescription.js';\nexport type { EnsurePackageBundledContext, EnsurePackageBundledResult } from './apis/ensurePackageBundled.js';\nexport type { CloudAppContext } from './types/CloudAppContext.js';\n\nexport { TaskRunner } from './utilities/TaskRunner.js';\nexport { taskListSource, taskStatsSource, errorEntrySource } from './data/busSources.js';\nexport { createCloudpackClient, type CloudpackClient } from './trpc/createCloudpackClient.js';\nexport { createCloudpackServer, type CloudpackServer } from './trpc/createCloudpackServer.js';\nexport { getActiveSessionsPath } from './utilities/getActiveSessionsPath.js';\nexport { getConsumedDependencies } from './utilities/getConsumedDependencies.js';\nexport { getConsumedPaths } from './utilities/getConsumedPaths.js';\n\n// Utilities\nexport { createApiContext, createPartialApiContext, type CreateApiContextOptions } from './common/createApiContext.js';\nexport { createMockContext, createPartialMockContext } from './common/createMockContext.js';\nexport { createMockSession, createMockSessionNoFS } from './common/createMockSession.js';\n\n// API methods directly used outside this package\nexport { addPackageOverride } from './apis/addPackageOverride.js';\nexport { ensurePackageBundled } from './apis/ensurePackageBundled.js';\nexport { syncDownload } from './apis/syncDownload.js';\nexport { syncUpload } from './apis/syncUpload.js';\nexport type { SyncResult } from './types/SyncResult.js';\n"]}
@@ -7,5 +7,7 @@ export interface OverrideOptions {
7
7
  version?: string;
8
8
  /** URL that issued the import. This should contain the parent package name and version. */
9
9
  issuerUrl?: string;
10
+ /** Indicates whether the override was initiated by the user or the autoUpdateEntries feature. */
11
+ initiatedBy: 'autoUpdateEntries' | 'user';
10
12
  }
11
13
  //# sourceMappingURL=OverrideOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OverrideOptions.d.ts","sourceRoot":"","sources":["../../src/types/OverrideOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"OverrideOptions.d.ts","sourceRoot":"","sources":["../../src/types/OverrideOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iGAAiG;IACjG,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAAC;CAC3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"OverrideOptions.js","sourceRoot":"","sources":["../../src/types/OverrideOptions.ts"],"names":[],"mappings":"","sourcesContent":["export interface OverrideOptions {\n /** The package name to override. */\n packageName: string;\n\n /** The import path within the package. */\n importPath: string;\n\n /** The version of the package to override. */\n version?: string;\n\n /** URL that issued the import. This should contain the parent package name and version. */\n issuerUrl?: string;\n}\n"]}
1
+ {"version":3,"file":"OverrideOptions.js","sourceRoot":"","sources":["../../src/types/OverrideOptions.ts"],"names":[],"mappings":"","sourcesContent":["export interface OverrideOptions {\n /** The package name to override. */\n packageName: string;\n\n /** The import path within the package. */\n importPath: string;\n\n /** The version of the package to override. */\n version?: string;\n\n /** URL that issued the import. This should contain the parent package name and version. */\n issuerUrl?: string;\n\n /** Indicates whether the override was initiated by the user or the autoUpdateEntries feature. */\n initiatedBy: 'autoUpdateEntries' | 'user';\n}\n"]}
@@ -11,6 +11,6 @@ type OverrideReturn = {
11
11
  * The addOverride method is triggered by a user action in the overlay, when we detect new usage of an import path
12
12
  * that isn't recognized. When the user triggers this override, we write it to the cloudpack generated config.
13
13
  */
14
- export declare function addOverride(options: OverrideOptions, context: PartialContext<'packages', 'config' | 'resolveMap'>): Promise<OverrideReturn>;
14
+ export declare function addOverride(options: Omit<OverrideOptions, 'initiatedBy'>, context: PartialContext<'packages', 'config' | 'resolveMap'>): Promise<OverrideReturn>;
15
15
  export {};
16
16
  //# sourceMappingURL=addOverride.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAUlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,cAAc,GAAG;IACpB,kDAAkD;IAClD,aAAa,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;CACpC,CAAC;AAaF;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAC3D,OAAO,CAAC,cAAc,CAAC,CAiHzB"}
1
+ {"version":3,"file":"addOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAUlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,cAAc,GAAG;IACpB,kDAAkD;IAClD,aAAa,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;CACpC,CAAC;AAaF;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAC7C,OAAO,EAAE,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAC3D,OAAO,CAAC,cAAc,CAAC,CAiHzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ResolveMapEntry } from '@ms-cloudpack/common-types';\nimport { ensureGeneratedSettingsForPackage, readGeneratedConfig, writeGeneratedConfig } from '@ms-cloudpack/config';\nimport { parseRequestInfo } from '@ms-cloudpack/import-map';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n flattenExportsMap,\n getExportsMap,\n} from '@ms-cloudpack/package-utilities';\nimport { makeUrl, normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport type { PartialContext } from '../types/Context.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\n\ntype OverrideReturn = {\n /** Whether the override was successfully added */\n addedOverride: boolean;\n /** The entry (if any) in the resolve map the override was added to */\n entry: ResolveMapEntry | undefined;\n};\n\n/**\n * Helper so that when addOverride is called multiple times in quick succession, we only process one at a time.\n * This is to avoid that multiple calls of addOverride first read the same version of the generated config,\n * then write the same version of the config with its corresponding update,\n * which would result in the last call overwriting the changes of the previous calls.\n */\nlet overrideInProcess: Promise<OverrideReturn> = Promise.resolve({\n addedOverride: false,\n entry: undefined,\n});\n\n/**\n * The addOverride method is triggered by a user action in the overlay, when we detect new usage of an import path\n * that isn't recognized. When the user triggers this override, we write it to the cloudpack generated config.\n */\nexport async function addOverride(\n options: OverrideOptions,\n context: PartialContext<'packages', 'config' | 'resolveMap'>,\n): Promise<OverrideReturn> {\n overrideInProcess = overrideInProcess.then(async () => {\n const { packageName, importPath, version, issuerUrl } = options;\n const { session, packages } = context;\n const { appPath } = session.config;\n let addedOverride = false;\n let deletedNullExport = false;\n let requiredBy = undefined;\n\n if (importPath.endsWith('/')) {\n console.error(`The import path \"${importPath}\" is invalid. Please remove the trailing slash and try again.`);\n return { addedOverride, entry: undefined };\n }\n\n if (issuerUrl) {\n const { packageName: issuerName, version: issuerVersion } = parseRequestInfo(makeUrl(issuerUrl).pathname);\n requiredBy = { name: issuerName, version: issuerVersion };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition: requiredBy,\n version,\n });\n\n if (!entry) {\n console.error(`Could not find entry of package \"${packageName}\" in resolve map`);\n return { addedOverride, entry };\n }\n\n const packagePath = entry.path;\n\n // Get current exports. We want to add an additional entry to what's there - not replace the default exports,\n // so we need the full map for the package.\n const exports = await getExportsMap({ packagePath }, { packages, config: session.config });\n const flattenedExports = flattenExportsMap(exports);\n const normalizedImportPath = normalizeRelativePath(importPath);\n\n // Return false if the import path already exists in the exports map.\n if (flattenedExports[normalizedImportPath]) {\n console.debug(`The import path \"${importPath}\" already exists in the exports map for \"${packageName}\".`);\n return { addedOverride, entry };\n }\n\n // Parse the generated config if it exists.\n const generatedConfig = await readGeneratedConfig(appPath);\n\n // Ensure packageSettings exists.\n const generatedPackageSettings = await ensureGeneratedSettingsForPackage(\n { packagePath },\n { config: { generated: generatedConfig }, packages },\n );\n\n if (generatedPackageSettings?.exports && generatedPackageSettings.exports[normalizedImportPath] === null) {\n delete generatedPackageSettings.exports[normalizedImportPath];\n deletedNullExport = true;\n\n if (Object.keys(generatedPackageSettings.exports).length === 0) {\n delete generatedPackageSettings.exports;\n }\n addedOverride = true;\n } else {\n const generatedExports = (generatedPackageSettings.exports ??= {});\n\n const { bundlerCapabilities } = (await packages.get(packagePath)).cloudpack || {};\n const resolveWebExtensions =\n // eslint-disable-next-line etc/no-deprecated\n bundlerCapabilities?.['resolve-web-extensions'] ?? Boolean(session.config.features?.resolveWebExtensions);\n\n // Add the single new exports entry to the exports map.\n addedOverride = await addExportsMapEntry(\n {\n exports: generatedExports,\n packagePath,\n importPath,\n resolveWebExtensions,\n },\n { packages, config: session.config },\n );\n\n if (!addedOverride) {\n console.warn(\n `Unable to add override for package \"${packageName}\" to \"cloudpack.generated.json\".` +\n ` The file \"${normalizedImportPath}\" could not be found.` +\n ` Please check the import path and try again.`,\n );\n return { addedOverride, entry };\n }\n }\n\n // Write the updated generated config\n session.config.generated = generatedConfig;\n const result = await writeGeneratedConfig(generatedConfig, appPath);\n const desc = `\"${packageName}\" (path \"${normalizedImportPath}\")`;\n if (result !== 'no-op') {\n if (deletedNullExport) {\n console.log(`Removed generated null export for ${desc} from \"cloudpack.generated.json\".`);\n if (result === 'deleted') {\n console.log(`Deleted \"cloudpack.generated.json\" because it's now empty.`);\n }\n } else if (result === 'written') {\n console.log(`Added override for ${desc} to \"cloudpack.generated.json\".`);\n }\n }\n\n // Apply the generated exports again to ensure the exports are up to date.\n await packages.get(packagePath, { refresh: true });\n\n return { addedOverride, entry };\n });\n\n return overrideInProcess;\n}\n"]}
1
+ {"version":3,"file":"addOverride.js","sourceRoot":"","sources":["../../src/utilities/addOverride.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ResolveMapEntry } from '@ms-cloudpack/common-types';\nimport { ensureGeneratedSettingsForPackage, readGeneratedConfig, writeGeneratedConfig } from '@ms-cloudpack/config';\nimport { parseRequestInfo } from '@ms-cloudpack/import-map';\nimport {\n addExportsMapEntry,\n findResolveMapEntry,\n flattenExportsMap,\n getExportsMap,\n} from '@ms-cloudpack/package-utilities';\nimport { makeUrl, normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport type { PartialContext } from '../types/Context.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\n\ntype OverrideReturn = {\n /** Whether the override was successfully added */\n addedOverride: boolean;\n /** The entry (if any) in the resolve map the override was added to */\n entry: ResolveMapEntry | undefined;\n};\n\n/**\n * Helper so that when addOverride is called multiple times in quick succession, we only process one at a time.\n * This is to avoid that multiple calls of addOverride first read the same version of the generated config,\n * then write the same version of the config with its corresponding update,\n * which would result in the last call overwriting the changes of the previous calls.\n */\nlet overrideInProcess: Promise<OverrideReturn> = Promise.resolve({\n addedOverride: false,\n entry: undefined,\n});\n\n/**\n * The addOverride method is triggered by a user action in the overlay, when we detect new usage of an import path\n * that isn't recognized. When the user triggers this override, we write it to the cloudpack generated config.\n */\nexport async function addOverride(\n options: Omit<OverrideOptions, 'initiatedBy'>,\n context: PartialContext<'packages', 'config' | 'resolveMap'>,\n): Promise<OverrideReturn> {\n overrideInProcess = overrideInProcess.then(async () => {\n const { packageName, importPath, version, issuerUrl } = options;\n const { session, packages } = context;\n const { appPath } = session.config;\n let addedOverride = false;\n let deletedNullExport = false;\n let requiredBy = undefined;\n\n if (importPath.endsWith('/')) {\n console.error(`The import path \"${importPath}\" is invalid. Please remove the trailing slash and try again.`);\n return { addedOverride, entry: undefined };\n }\n\n if (issuerUrl) {\n const { packageName: issuerName, version: issuerVersion } = parseRequestInfo(makeUrl(issuerUrl).pathname);\n requiredBy = { name: issuerName, version: issuerVersion };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition: requiredBy,\n version,\n });\n\n if (!entry) {\n console.error(`Could not find entry of package \"${packageName}\" in resolve map`);\n return { addedOverride, entry };\n }\n\n const packagePath = entry.path;\n\n // Get current exports. We want to add an additional entry to what's there - not replace the default exports,\n // so we need the full map for the package.\n const exports = await getExportsMap({ packagePath }, { packages, config: session.config });\n const flattenedExports = flattenExportsMap(exports);\n const normalizedImportPath = normalizeRelativePath(importPath);\n\n // Return false if the import path already exists in the exports map.\n if (flattenedExports[normalizedImportPath]) {\n console.debug(`The import path \"${importPath}\" already exists in the exports map for \"${packageName}\".`);\n return { addedOverride, entry };\n }\n\n // Parse the generated config if it exists.\n const generatedConfig = await readGeneratedConfig(appPath);\n\n // Ensure packageSettings exists.\n const generatedPackageSettings = await ensureGeneratedSettingsForPackage(\n { packagePath },\n { config: { generated: generatedConfig }, packages },\n );\n\n if (generatedPackageSettings?.exports && generatedPackageSettings.exports[normalizedImportPath] === null) {\n delete generatedPackageSettings.exports[normalizedImportPath];\n deletedNullExport = true;\n\n if (Object.keys(generatedPackageSettings.exports).length === 0) {\n delete generatedPackageSettings.exports;\n }\n addedOverride = true;\n } else {\n const generatedExports = (generatedPackageSettings.exports ??= {});\n\n const { bundlerCapabilities } = (await packages.get(packagePath)).cloudpack || {};\n const resolveWebExtensions =\n // eslint-disable-next-line etc/no-deprecated\n bundlerCapabilities?.['resolve-web-extensions'] ?? Boolean(session.config.features?.resolveWebExtensions);\n\n // Add the single new exports entry to the exports map.\n addedOverride = await addExportsMapEntry(\n {\n exports: generatedExports,\n packagePath,\n importPath,\n resolveWebExtensions,\n },\n { packages, config: session.config },\n );\n\n if (!addedOverride) {\n console.warn(\n `Unable to add override for package \"${packageName}\" to \"cloudpack.generated.json\".` +\n ` The file \"${normalizedImportPath}\" could not be found.` +\n ` Please check the import path and try again.`,\n );\n return { addedOverride, entry };\n }\n }\n\n // Write the updated generated config\n session.config.generated = generatedConfig;\n const result = await writeGeneratedConfig(generatedConfig, appPath);\n const desc = `\"${packageName}\" (path \"${normalizedImportPath}\")`;\n if (result !== 'no-op') {\n if (deletedNullExport) {\n console.log(`Removed generated null export for ${desc} from \"cloudpack.generated.json\".`);\n if (result === 'deleted') {\n console.log(`Deleted \"cloudpack.generated.json\" because it's now empty.`);\n }\n } else if (result === 'written') {\n console.log(`Added override for ${desc} to \"cloudpack.generated.json\".`);\n }\n }\n\n // Apply the generated exports again to ensure the exports are up to date.\n await packages.get(packagePath, { refresh: true });\n\n return { addedOverride, entry };\n });\n\n return overrideInProcess;\n}\n"]}
@@ -4,5 +4,5 @@ import type { OverrideOptions } from '../types/OverrideOptions.js';
4
4
  * Given a package name, import path, and optional issuerUrl, returns a boolean indicating if the given
5
5
  * override is valid.
6
6
  */
7
- export declare function validateOverride(options: Omit<OverrideOptions, 'version'>, context: PartialContext<'packages', 'config' | 'resolveMap'>): Promise<boolean>;
7
+ export declare function validateOverride(options: Omit<OverrideOptions, 'version' | 'initiatedBy'>, context: PartialContext<'packages', 'config' | 'resolveMap'>): Promise<boolean>;
8
8
  //# sourceMappingURL=validateOverride.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACzC,OAAO,EAAE,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAC3D,OAAO,CAAC,OAAO,CAAC,CA6DlB"}
1
+ {"version":3,"file":"validateOverride.d.ts","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,aAAa,CAAC,EACzD,OAAO,EAAE,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,YAAY,CAAC,GAC3D,OAAO,CAAC,OAAO,CAAC,CA6DlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateOverride.js","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,OAAO,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAyC,EACzC,OAA4D;IAE5D,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,IAAI,UAAU,GAA4B,SAAS,CAAC;IAEpD,sEAAsE;IACtE,+EAA+E;IAC/E,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrF,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,UAAU;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;IAE/B,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;IAClF,MAAM,oBAAoB;IACxB,6CAA6C;IAC7C,mBAAmB,EAAE,CAAC,wBAAwB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAEpG,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAC1C;QACE,WAAW;QACX,QAAQ,EAAE,UAAU;QACpB,oBAAoB;KACrB,EACD,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CACrC,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE3D,iCAAiC;IACjC,MAAM,wBAAwB,GAAG,MAAM,iCAAiC,CACtE,EAAE,WAAW,EAAE,EACf,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CACrD,CAAC;IAEF,OAAO,CACL,CAAC,CAAC,wBAAwB,EAAE,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,CACpH,CAAC;AACJ,CAAC","sourcesContent":["import type { PackageJson } from '@ms-cloudpack/common-types';\nimport { parseRequestInfo } from '@ms-cloudpack/import-map';\nimport { findFileInPackage, findResolveMapEntry } from '@ms-cloudpack/package-utilities';\nimport { makeUrl, normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport type { PartialContext } from '../types/Context.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\nimport { ensureGeneratedSettingsForPackage, readGeneratedConfig } from '@ms-cloudpack/config';\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: Omit<OverrideOptions, 'version'>,\n context: PartialContext<'packages', 'config' | 'resolveMap'>,\n): Promise<boolean> {\n const { packageName, importPath, issuerUrl } = options;\n const { session, packages } = context;\n const { config } = session;\n const { appPath } = config;\n\n let requiredBy: PackageJson | undefined = undefined;\n\n // Import paths with trailing slashes are not supported by import maps\n // in browser as they interpret the trailing slash as a wildcard partial match.\n if (importPath.endsWith('/')) {\n return false;\n }\n\n if (issuerUrl) {\n const { packageName: name, version } = parseRequestInfo(makeUrl(issuerUrl).pathname);\n requiredBy = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition: requiredBy,\n });\n\n if (!entry) {\n return false;\n }\n\n const packagePath = entry.path;\n\n const { bundlerCapabilities } = (await packages.get(packagePath)).cloudpack || {};\n const resolveWebExtensions =\n // eslint-disable-next-line etc/no-deprecated\n bundlerCapabilities?.['resolve-web-extensions'] ?? Boolean(config.features?.resolveWebExtensions);\n\n const { filePath } = await findFileInPackage(\n {\n packagePath,\n filePath: importPath,\n resolveWebExtensions,\n },\n { packages, config: session.config },\n );\n\n if (filePath) {\n return true;\n }\n\n // Parse the generated config if it exists.\n const generatedConfig = await readGeneratedConfig(appPath);\n\n // Ensure packageSettings exists.\n const generatedPackageSettings = await ensureGeneratedSettingsForPackage(\n { packagePath },\n { config: { generated: generatedConfig }, packages },\n );\n\n return (\n !!generatedPackageSettings?.exports && generatedPackageSettings.exports[normalizeRelativePath(importPath)] === null\n );\n}\n"]}
1
+ {"version":3,"file":"validateOverride.js","sourceRoot":"","sources":["../../src/utilities/validateOverride.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,OAAO,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAyD,EACzD,OAA4D;IAE5D,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,IAAI,UAAU,GAA4B,SAAS,CAAC;IAEpD,sEAAsE;IACtE,+EAA+E;IAC/E,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrF,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,UAAU;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;IAE/B,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;IAClF,MAAM,oBAAoB;IACxB,6CAA6C;IAC7C,mBAAmB,EAAE,CAAC,wBAAwB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAEpG,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAC1C;QACE,WAAW;QACX,QAAQ,EAAE,UAAU;QACpB,oBAAoB;KACrB,EACD,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CACrC,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE3D,iCAAiC;IACjC,MAAM,wBAAwB,GAAG,MAAM,iCAAiC,CACtE,EAAE,WAAW,EAAE,EACf,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CACrD,CAAC;IAEF,OAAO,CACL,CAAC,CAAC,wBAAwB,EAAE,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,CACpH,CAAC;AACJ,CAAC","sourcesContent":["import type { PackageJson } from '@ms-cloudpack/common-types';\nimport { parseRequestInfo } from '@ms-cloudpack/import-map';\nimport { findFileInPackage, findResolveMapEntry } from '@ms-cloudpack/package-utilities';\nimport { makeUrl, normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport type { PartialContext } from '../types/Context.js';\nimport type { OverrideOptions } from '../types/OverrideOptions.js';\nimport { ensureGeneratedSettingsForPackage, readGeneratedConfig } from '@ms-cloudpack/config';\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: Omit<OverrideOptions, 'version' | 'initiatedBy'>,\n context: PartialContext<'packages', 'config' | 'resolveMap'>,\n): Promise<boolean> {\n const { packageName, importPath, issuerUrl } = options;\n const { session, packages } = context;\n const { config } = session;\n const { appPath } = config;\n\n let requiredBy: PackageJson | undefined = undefined;\n\n // Import paths with trailing slashes are not supported by import maps\n // in browser as they interpret the trailing slash as a wildcard partial match.\n if (importPath.endsWith('/')) {\n return false;\n }\n\n if (issuerUrl) {\n const { packageName: name, version } = parseRequestInfo(makeUrl(issuerUrl).pathname);\n requiredBy = { name, version };\n }\n\n const entry = findResolveMapEntry({\n packageName,\n resolveMap: session.resolveMap,\n definition: requiredBy,\n });\n\n if (!entry) {\n return false;\n }\n\n const packagePath = entry.path;\n\n const { bundlerCapabilities } = (await packages.get(packagePath)).cloudpack || {};\n const resolveWebExtensions =\n // eslint-disable-next-line etc/no-deprecated\n bundlerCapabilities?.['resolve-web-extensions'] ?? Boolean(config.features?.resolveWebExtensions);\n\n const { filePath } = await findFileInPackage(\n {\n packagePath,\n filePath: importPath,\n resolveWebExtensions,\n },\n { packages, config: session.config },\n );\n\n if (filePath) {\n return true;\n }\n\n // Parse the generated config if it exists.\n const generatedConfig = await readGeneratedConfig(appPath);\n\n // Ensure packageSettings exists.\n const generatedPackageSettings = await ensureGeneratedSettingsForPackage(\n { packagePath },\n { config: { generated: generatedConfig }, packages },\n );\n\n return (\n !!generatedPackageSettings?.exports && generatedPackageSettings.exports[normalizeRelativePath(importPath)] === null\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/api-server",
3
- "version": "0.61.10",
3
+ "version": "0.61.12",
4
4
  "description": "An implementation of the API server that does interacts with a task scheduler.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,23 +27,23 @@
27
27
  "@lage-run/logger": "^1.3.0",
28
28
  "@lage-run/scheduler": "^1.2.1",
29
29
  "@lage-run/target-graph": "^0.11.0",
30
- "@ms-cloudpack/bundler": "^0.24.7",
30
+ "@ms-cloudpack/bundler": "^0.24.9",
31
31
  "@ms-cloudpack/common-types": "^0.24.10",
32
- "@ms-cloudpack/config": "^0.33.20",
32
+ "@ms-cloudpack/config": "^0.33.21",
33
33
  "@ms-cloudpack/create-express-app": "^1.10.22",
34
34
  "@ms-cloudpack/data-bus": "^0.4.3",
35
35
  "@ms-cloudpack/environment": "^0.1.1",
36
36
  "@ms-cloudpack/esm-stub-utilities": "^0.14.13",
37
37
  "@ms-cloudpack/file-watcher": "^0.2.0",
38
- "@ms-cloudpack/import-map": "^0.10.2",
38
+ "@ms-cloudpack/import-map": "^0.10.3",
39
39
  "@ms-cloudpack/json-utilities": "^0.1.10",
40
- "@ms-cloudpack/package-hashes": "^0.7.32",
40
+ "@ms-cloudpack/package-hashes": "^0.7.33",
41
41
  "@ms-cloudpack/package-utilities": "^12.0.1",
42
42
  "@ms-cloudpack/path-string-parsing": "^1.2.6",
43
43
  "@ms-cloudpack/path-utilities": "^3.0.7",
44
- "@ms-cloudpack/remote-cache": "^0.10.17",
44
+ "@ms-cloudpack/remote-cache": "^0.10.19",
45
45
  "@ms-cloudpack/task-reporter": "^0.16.0",
46
- "@ms-cloudpack/telemetry": "^0.10.19",
46
+ "@ms-cloudpack/telemetry": "^0.11.1",
47
47
  "@trpc/client": "11.0.0-rc.824",
48
48
  "@trpc/server": "11.0.0-rc.824",
49
49
  "cors": "^2.8.5",