@tailor-platform/sdk 1.73.3 → 1.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/application-BndtMTFY.mjs +3 -0
  3. package/dist/{application-DgTCDMZY.mjs → application-DwmoI6ZQ.mjs} +55 -14
  4. package/dist/application-DwmoI6ZQ.mjs.map +1 -0
  5. package/dist/cli/commands/deploy/apply-phases.d.mts +1 -0
  6. package/dist/cli/commands/executor/trigger.d.mts +1 -1
  7. package/dist/cli/index.mjs +102 -13
  8. package/dist/cli/index.mjs.map +1 -1
  9. package/dist/cli/lib.d.mts +2 -2
  10. package/dist/cli/lib.mjs +2 -2
  11. package/dist/cli/shared/client.d.mts +1 -1
  12. package/dist/completion/zsh-worker.zsh +28 -3
  13. package/dist/{repl-editor-BmQOyZJd.mjs → repl-editor-BCozyiNq.mjs} +3 -2
  14. package/dist/{repl-editor-BmQOyZJd.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  15. package/dist/{runtime-SxHHEzVb.mjs → runtime-Zkg3SUwi.mjs} +1974 -1217
  16. package/dist/runtime-Zkg3SUwi.mjs.map +1 -0
  17. package/dist/{service-DiEtAsvc.mjs → service-BCRJ-3NV.mjs} +18 -1
  18. package/dist/{service-DiEtAsvc.mjs.map → service-BCRJ-3NV.mjs.map} +1 -1
  19. package/dist/service-CPMlIg3X.mjs +3 -0
  20. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +2 -2
  21. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +1 -1
  22. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +1 -1
  23. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +1 -1
  24. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +1 -1
  25. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +1 -1
  26. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +1 -1
  27. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +1 -1
  28. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +1 -1
  29. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +1 -1
  30. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +1 -1
  31. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +1 -1
  32. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +1 -1
  33. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +1 -1
  34. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +1 -1
  35. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +1 -1
  36. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +1 -1
  37. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +1 -1
  38. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +1 -1
  39. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +1 -1
  40. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +1 -1
  41. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +1 -1
  42. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +1 -1
  43. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +1 -1
  44. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +2 -2
  45. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +1 -1
  46. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +1 -1
  47. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +1 -1
  48. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +1 -1
  49. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +1 -1
  50. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +1 -1
  51. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +1 -1
  52. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +1 -1
  53. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +1 -1
  54. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +1 -1
  55. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2 -2
  56. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +1 -1
  57. package/dist/vitest/index.mjs +2 -1
  58. package/dist/vitest/index.mjs.map +1 -1
  59. package/docs/cli/application.md +21 -11
  60. package/docs/cli/setup.md +25 -0
  61. package/docs/cli-reference.md +1 -0
  62. package/package.json +8 -8
  63. package/dist/application-BAo_zFA4.mjs +0 -3
  64. package/dist/application-DgTCDMZY.mjs.map +0 -1
  65. package/dist/runtime-SxHHEzVb.mjs.map +0 -1
  66. package/dist/service-BXmdFwSH.mjs +0 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @tailor-platform/sdk
2
2
 
3
+ ## 1.74.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1652](https://github.com/tailor-platform/sdk/pull/1652) [`6c33b01`](https://github.com/tailor-platform/sdk/commit/6c33b01eedfbf85382f1d51d45496b79a372dca7) Thanks [@toiroakr](https://github.com/toiroakr)! - Add `tailor-sdk setup delete <file...>` to cleanly remove generated CI workflow/action files together with their `.github/tailor-sdk.lock` entries. It only deletes files recorded in the lock, warns when an action is still referenced by a `setup coordinate` workflow, and removes the composite action's directory once it is empty.
8
+
9
+ - [#1612](https://github.com/tailor-platform/sdk/pull/1612) [`7e7f00e`](https://github.com/tailor-platform/sdk/commit/7e7f00ee769d561abf12fc588ad10accd78770f2) Thanks [@dqn](https://github.com/dqn)! - Allow `tailor-sdk deploy --config` to accept comma-separated config paths so interdependent apps can be deployed together. Application, executor, workflow, workflow job, StaticWebsite, TailorDB, Auth, Auth connection, IdP, Resolver, AIGateway, and Secret Manager vault names must be unique across all configs passed to a single deploy, and resources still owned by another config in the same deploy are no longer deleted.
10
+
11
+ ### Patch Changes
12
+
13
+ - [#1646](https://github.com/tailor-platform/sdk/pull/1646) [`6ea74c1`](https://github.com/tailor-platform/sdk/commit/6ea74c11bd3d7a9e44e1afdedaf6328203f7745a) Thanks [@dqn](https://github.com/dqn)! - Keep deploy ownership handling consistent across resource types without changing deploy behavior.
14
+
15
+ - [#1655](https://github.com/tailor-platform/sdk/pull/1655) [`db7cbef`](https://github.com/tailor-platform/sdk/commit/db7cbef744240795c6b1281dc96f8e9edd8e83f9) Thanks [@toiroakr](https://github.com/toiroakr)! - Reject duplicate executor names, and duplicate resolver names within the same namespace, with a clear error at load time instead of silently deploying only one of them.
16
+
17
+ - [#1648](https://github.com/tailor-platform/sdk/pull/1648) [`f7eb527`](https://github.com/tailor-platform/sdk/commit/f7eb527be823a5cafc94717118a97cc7c450ef80) Thanks [@dqn](https://github.com/dqn)! - Keep resolver bundle cache entries separate across namespaces.
18
+
19
+ - [#1626](https://github.com/tailor-platform/sdk/pull/1626) [`06cc5f2`](https://github.com/tailor-platform/sdk/commit/06cc5f2960c5a09e9783d6b0923ed8c1b3d606a8) Thanks [@renovate](https://github.com/apps/renovate)! - fix(deps): update dependency politty to v0.11.0
20
+
21
+ - [#1645](https://github.com/tailor-platform/sdk/pull/1645) [`fecb691`](https://github.com/tailor-platform/sdk/commit/fecb691a4cedf01d65eec51c39712b23065ed36b) Thanks [@renovate](https://github.com/apps/renovate)! - fix(deps): update oxc
22
+
23
+ - [#1660](https://github.com/tailor-platform/sdk/pull/1660) [`5b7801f`](https://github.com/tailor-platform/sdk/commit/5b7801f82dec177fa9dc7b7eb8eeec7536dbbcb5) Thanks [@renovate](https://github.com/apps/renovate)! - fix(deps): update dependency rolldown to v1.1.4
24
+
25
+ - [#1650](https://github.com/tailor-platform/sdk/pull/1650) [`d42477b`](https://github.com/tailor-platform/sdk/commit/d42477bfedb4463bec9345c91a15ea5431bc877c) Thanks [@toiroakr](https://github.com/toiroakr)! - Fix schema snapshot normalization mutating the input snapshot in place, which could cause a caller-held `SchemaSnapshot` reference to silently change after normalization.
26
+
3
27
  ## 1.73.3
4
28
  ### Patch Changes
5
29
 
@@ -0,0 +1,3 @@
1
+ import { n as generatePluginFilesIfNeeded, r as loadApplication, t as defineApplication } from "./application-DwmoI6ZQ.mjs";
2
+
3
+ export { defineApplication, generatePluginFilesIfNeeded };
@@ -1,7 +1,7 @@
1
1
  import { n as isSdkBranded } from "./brand-Eo4pLXPJ.mjs";
2
2
  import { t as assertDefined } from "./assert-DBxo8jPo.mjs";
3
3
  import { a as parseBoolean, n as logger, r as styles } from "./logger-BEiZZ3qT.mjs";
4
- import { a as TailorFieldSchema, i as AuthInvokerSchema, n as ExecutorSchema, o as loadFilesWithIgnores, r as AuthConfigSchema, s as functionSchema, t as createExecutorService } from "./service-DiEtAsvc.mjs";
4
+ import { a as TailorFieldSchema, i as AuthInvokerSchema, n as ExecutorSchema, o as loadFilesWithIgnores, r as AuthConfigSchema, s as functionSchema, t as createExecutorService } from "./service-BCRJ-3NV.mjs";
5
5
  import { n as enumConstantsPlugin, t as EnumConstantsGeneratorID } from "./enum-constants-j9QBF0cB.mjs";
6
6
  import { t as multiline } from "./multiline-sfHpTZZK.mjs";
7
7
  import { n as fileUtilsPlugin, t as FileUtilsGeneratorID } from "./file-utils-DcyIPFQh.mjs";
@@ -1540,8 +1540,8 @@ function createDepCollectorPlugin() {
1540
1540
 
1541
1541
  //#endregion
1542
1542
  //#region src/cli/cache/bundle-cache.ts
1543
- function buildCacheKey(kind, name) {
1544
- return `${kind}:${name}`;
1543
+ function buildCacheKey(kind, name, namespace) {
1544
+ return namespace ? `${kind}:${namespace}:${name}` : `${kind}:${name}`;
1545
1545
  }
1546
1546
  function combineHash(fileHash, contextHash) {
1547
1547
  if (!contextHash) return fileHash;
@@ -1568,10 +1568,11 @@ function computeBundlerContextHash(params) {
1568
1568
  * @returns The bundled code string
1569
1569
  */
1570
1570
  async function withCache(params) {
1571
- const { cache, kind, name, sourceFile, contextHash, build } = params;
1571
+ const { cache, kind, namespace, name, sourceFile, contextHash, build } = params;
1572
1572
  if (!cache) return await build([]);
1573
1573
  const content = cache.tryRestore({
1574
1574
  kind,
1575
+ namespace,
1575
1576
  name,
1576
1577
  contextHash
1577
1578
  });
@@ -1583,6 +1584,7 @@ async function withCache(params) {
1583
1584
  const code = await build([plugin]);
1584
1585
  cache.save({
1585
1586
  kind,
1587
+ namespace,
1586
1588
  name,
1587
1589
  sourceFile,
1588
1590
  content: code,
@@ -1598,7 +1600,7 @@ async function withCache(params) {
1598
1600
  */
1599
1601
  function createBundleCache(store) {
1600
1602
  function tryRestore(params) {
1601
- const cacheKey = buildCacheKey(params.kind, params.name);
1603
+ const cacheKey = buildCacheKey(params.kind, params.name, params.namespace);
1602
1604
  const entry = store.getEntry(cacheKey);
1603
1605
  if (!entry) return;
1604
1606
  let currentHash;
@@ -1611,8 +1613,8 @@ function createBundleCache(store) {
1611
1613
  return store.restoreBundleContent(cacheKey);
1612
1614
  }
1613
1615
  function save(params) {
1614
- const { kind, name, sourceFile, content, dependencyPaths, contextHash } = params;
1615
- const cacheKey = buildCacheKey(kind, name);
1616
+ const { kind, namespace, name, sourceFile, content, dependencyPaths, contextHash } = params;
1617
+ const cacheKey = buildCacheKey(kind, name, namespace);
1616
1618
  const allDeps = dependencyPaths.includes(sourceFile) ? dependencyPaths : [sourceFile, ...dependencyPaths];
1617
1619
  const inputHash = combineHash(hashFiles(allDeps), contextHash);
1618
1620
  const contentHash = hashContent(content);
@@ -4403,8 +4405,23 @@ function assertUniqueLocalTailorDBTypeNames(args) {
4403
4405
  */
4404
4406
  async function assertUniqueTailorDBTypeNamesWithExternal(args) {
4405
4407
  const localSources = collectLocalTailorDBTypeNameSources(args);
4406
- const externalSources = args.externalTailorDBNamespaces.length > 0 ? await fetchExternalTailorDBTypeNameSources(args) : [];
4407
- assertUniqueTailorDBTypeNames({ sources: [...localSources, ...externalSources] });
4408
+ const plannedExternalServices = args.plannedExternalTailorDBServices ?? [];
4409
+ const plannedExternalNamespaces = new Set(plannedExternalServices.map((service) => service.namespace));
4410
+ const plannedExternalSources = collectLocalTailorDBTypeNameSources({ tailorDBServices: plannedExternalServices }).map((source) => ({
4411
+ ...source,
4412
+ kind: "external"
4413
+ }));
4414
+ const remoteExternalNamespaces = args.externalTailorDBNamespaces.filter((namespace) => !plannedExternalNamespaces.has(namespace));
4415
+ const externalSources = remoteExternalNamespaces.length > 0 ? await fetchExternalTailorDBTypeNameSources({
4416
+ client: args.client,
4417
+ workspaceId: args.workspaceId,
4418
+ externalTailorDBNamespaces: remoteExternalNamespaces
4419
+ }) : [];
4420
+ assertUniqueTailorDBTypeNames({ sources: [
4421
+ ...localSources,
4422
+ ...plannedExternalSources,
4423
+ ...externalSources
4424
+ ] });
4408
4425
  }
4409
4426
  function formatTailorDBTypeNameSource(source) {
4410
4427
  const namespaceLabel = source.kind === "external" ? `external namespace "${source.namespace}"` : `namespace "${source.namespace}"`;
@@ -5257,12 +5274,12 @@ async function bundleResolvers(namespace, config, triggerContext, cache, inlineS
5257
5274
  } catch {
5258
5275
  tsconfig = void 0;
5259
5276
  }
5260
- const results = await withBundleConcurrency(resolvers, (resolver) => bundleSingleResolver(resolver, outputDir, tsconfig, triggerContext, cache, inlineSourcemap, bundleLogLevel));
5277
+ const results = await withBundleConcurrency(resolvers, (resolver) => bundleSingleResolver(namespace, resolver, outputDir, tsconfig, triggerContext, cache, inlineSourcemap, bundleLogLevel));
5261
5278
  for (const [name, code] of results) bundledCode.set(name, code);
5262
5279
  logger.log(`${styles.success("Bundled")} ${styles.info(`"${namespace}"`)}`);
5263
5280
  return bundledCode;
5264
5281
  }
5265
- async function bundleSingleResolver(resolver, outputDir, tsconfig, triggerContext, cache, inlineSourcemap, bundleLogLevel = "DEBUG") {
5282
+ async function bundleSingleResolver(namespace, resolver, outputDir, tsconfig, triggerContext, cache, inlineSourcemap, bundleLogLevel = "DEBUG") {
5266
5283
  const serializedTriggerContext = serializeTriggerContext(triggerContext);
5267
5284
  const contextHash = computeBundlerContextHash({
5268
5285
  sourceFile: resolver.sourceFile,
@@ -5274,6 +5291,7 @@ async function bundleSingleResolver(resolver, outputDir, tsconfig, triggerContex
5274
5291
  const code = await withCache({
5275
5292
  cache,
5276
5293
  kind: "resolver",
5294
+ namespace,
5277
5295
  name: resolver.name,
5278
5296
  sourceFile: resolver.sourceFile,
5279
5297
  contextHash,
@@ -5368,9 +5386,26 @@ function createResolverService(namespace, config) {
5368
5386
  const resolverFiles = loadFilesWithIgnores(config);
5369
5387
  logger.log(`Found ${styles.highlight(resolverFiles.length.toString())} resolver files for service ${styles.highlight(`"${namespace}"`)}`);
5370
5388
  await Promise.all(resolverFiles.map((resolverFile) => loadResolverForFile(resolverFile)));
5389
+ assertUniqueResolverNames(resolvers, namespace);
5371
5390
  }
5372
5391
  };
5373
5392
  }
5393
+ /**
5394
+ * Assert that every loaded resolver in a namespace has a unique name.
5395
+ * Resolvers are stored by source file, so two files declaring the same
5396
+ * `name` would otherwise silently share a single bundle cache entry.
5397
+ * @param resolvers - Loaded resolvers keyed by source file
5398
+ * @param namespace - The namespace the resolvers belong to
5399
+ */
5400
+ function assertUniqueResolverNames(resolvers, namespace) {
5401
+ const seenNames = /* @__PURE__ */ new Map();
5402
+ for (const [file, resolver] of Object.entries(resolvers)) {
5403
+ const relativePath = path.relative(process.cwd(), file);
5404
+ const existing = seenNames.get(resolver.name);
5405
+ if (existing) throw new Error(`Duplicate resolver name "${resolver.name}" found in namespace "${namespace}":\n - ${existing}\n - ${relativePath}\nEach resolver must have a unique name within a namespace.`);
5406
+ seenNames.set(resolver.name, relativePath);
5407
+ }
5408
+ }
5374
5409
 
5375
5410
  //#endregion
5376
5411
  //#region src/cli/services/workflow/source-transformer.ts
@@ -5937,6 +5972,12 @@ function resolveInlineSourcemap(configValue) {
5937
5972
  return true;
5938
5973
  }
5939
5974
 
5975
+ //#endregion
5976
+ //#region src/cli/shared/resolver-bundle-key.ts
5977
+ function resolverBundleKey(namespace, resolverName) {
5978
+ return `${namespace}:${resolverName}`;
5979
+ }
5980
+
5940
5981
  //#endregion
5941
5982
  //#region src/parser/service/aigateway/schema.ts
5942
5983
  const NAME_PATTERN = /^[a-z0-9][a-z0-9-]{1,28}[a-z0-9]$/;
@@ -6424,7 +6465,7 @@ async function loadApplication(params) {
6424
6465
  };
6425
6466
  for (const pipeline of resolverResult.resolverServices) {
6426
6467
  const resolverBundles = await bundleResolvers(pipeline.namespace, pipeline.config, triggerContext, bundleCache, inlineSourcemap, bundleLogLevel);
6427
- for (const [name, code] of resolverBundles) bundledScripts.resolvers.set(name, code);
6468
+ for (const [name, code] of resolverBundles) bundledScripts.resolvers.set(resolverBundleKey(pipeline.namespace, name), code);
6428
6469
  }
6429
6470
  if (executorService) bundledScripts.executors = await bundleExecutors({
6430
6471
  config: executorService.config,
@@ -6491,5 +6532,5 @@ async function loadApplication(params) {
6491
6532
  }
6492
6533
 
6493
6534
  //#endregion
6494
- export { initOperatorClient as $, loadAccessToken as A, saveUserTokens as B, hashContent as C, fetchLatestToken as D, deleteUserTokens as E, loadStoredUserTokens as F, fetchMachineUserToken as G, closeConnectionPool as H, loadWorkspaceId as I, fetchUserInfo as J, fetchPaged as K, platformConfigFromProfile as L, loadConsoleBaseUrl as M, loadMachineUserName as N, hasAnyUserTokenEntry as O, loadPlatformClientConfig as P, initOAuth2Client as Q, readPlatformConfig as R, getDistDir as S, loadConfig as T, defaultPlatformBaseUrl as U, writePlatformConfig as V, fetchAll as W, getOAuth2ClientId as X, getConsoleBaseUrl as Y, getPlatformBaseUrl as Z, createLogLevelTreeshakeOptions as _, WorkflowJobSchema as a, hasGenerationHooks as b, INVOKER_EXPR as c, assertUniqueLocalTailorDBTypeNames as d, isDefaultPlatform as et, assertUniqueTailorDBTypeNamesWithExternal as f, composeFunctionTreeshakeOptions as g, platformBundleDefinePlugin as h, resolveInlineSourcemap as i, loadConfigPath as j, hasUserTokenEntry as k, buildExecutorArgsExpr as l, stringifyFunction as m, generatePluginFilesIfNeeded as n, byName as nt, ResolverSchema as o, TailorDBTypeSchema as p, fetchPlatformMachineUserToken as q, loadApplication as r, HTTP_METHODS as s, defineApplication as t, resolveStaticWebsiteUrls as tt, buildResolverOperationHookExpr as u, resolveBundleLogLevel as v, hashFile as w, createBundleCache as x, getPluginGenerationDependencies as y, resolveUserTokenKey as z };
6495
- //# sourceMappingURL=application-DgTCDMZY.mjs.map
6535
+ export { initOAuth2Client as $, hasUserTokenEntry as A, resolveUserTokenKey as B, getDistDir as C, deleteUserTokens as D, loadConfig as E, loadPlatformClientConfig as F, fetchAll as G, writePlatformConfig as H, loadStoredUserTokens as I, fetchPlatformMachineUserToken as J, fetchMachineUserToken as K, loadWorkspaceId as L, loadConfigPath as M, loadConsoleBaseUrl as N, fetchLatestToken as O, loadMachineUserName as P, getPlatformBaseUrl as Q, platformConfigFromProfile as R, createBundleCache as S, hashFile as T, closeConnectionPool as U, saveUserTokens as V, defaultPlatformBaseUrl as W, getConsoleBaseUrl as X, fetchUserInfo as Y, getOAuth2ClientId as Z, composeFunctionTreeshakeOptions as _, resolveInlineSourcemap as a, getPluginGenerationDependencies as b, HTTP_METHODS as c, buildResolverOperationHookExpr as d, initOperatorClient as et, assertUniqueLocalTailorDBTypeNames as f, platformBundleDefinePlugin as g, stringifyFunction as h, resolverBundleKey as i, loadAccessToken as j, hasAnyUserTokenEntry as k, INVOKER_EXPR as l, TailorDBTypeSchema as m, generatePluginFilesIfNeeded as n, resolveStaticWebsiteUrls as nt, WorkflowJobSchema as o, assertUniqueTailorDBTypeNamesWithExternal as p, fetchPaged as q, loadApplication as r, byName as rt, ResolverSchema as s, defineApplication as t, isDefaultPlatform as tt, buildExecutorArgsExpr as u, createLogLevelTreeshakeOptions as v, hashContent as w, hasGenerationHooks as x, resolveBundleLogLevel as y, readPlatformConfig as z };
6536
+ //# sourceMappingURL=application-DwmoI6ZQ.mjs.map