@classytic/arc 2.41.0 → 2.41.1

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 (132) hide show
  1. package/dist/{BaseController-DYJRZ0EJ.mjs → BaseController-CYEwjyjN.mjs} +13 -12
  2. package/dist/{EventTransport-n7qO5Cz3.mjs → EventTransport-DSqD_Xsg.mjs} +2 -2
  3. package/dist/{HookSystem-CxvZBo77.mjs → HookSystem-CMF94SEA.mjs} +2 -2
  4. package/dist/{ResourceRegistry-Cu7uTJp9.mjs → ResourceRegistry-MGpXoxHZ.mjs} +2 -2
  5. package/dist/{actionPermissions-DPwPWPOV.mjs → actionPermissions-BoPGQ5-4.mjs} +6 -6
  6. package/dist/audit/index.mjs +3 -3
  7. package/dist/auth/audit.mjs +1 -1
  8. package/dist/auth/index.mjs +7 -7
  9. package/dist/auth/redis-session.mjs +1 -1
  10. package/dist/{authorizationDecision-2YY_Kaj1.mjs → authorizationDecision-DawKGoXb.mjs} +2 -2
  11. package/dist/{buildHandler-CUhjGHGZ.mjs → buildHandler-CvxKOc0m.mjs} +4 -4
  12. package/dist/cache/index.mjs +4 -4
  13. package/dist/{caching-DsWDjIxx.mjs → caching-DbCBxlgw.mjs} +2 -2
  14. package/dist/cleanup/index.mjs +4 -4
  15. package/dist/cli/commands/describe.mjs +3 -3
  16. package/dist/cli/commands/docs.mjs +3 -3
  17. package/dist/cli/commands/doctor.mjs +1 -1
  18. package/dist/cli/commands/generate.mjs +2 -2
  19. package/dist/cli/commands/init.mjs +2 -2
  20. package/dist/cli/commands/introspect.mjs +2 -2
  21. package/dist/cli/index.mjs +3 -3
  22. package/dist/{constants-BxLgNFF7.mjs → constants-D5Ubn1fe.mjs} +1 -1
  23. package/dist/context/index.mjs +4 -4
  24. package/dist/core/index.mjs +7 -7
  25. package/dist/{core-iNGqYerO.mjs → core-5lazhva9.mjs} +3 -3
  26. package/dist/{createActionRouter-BBlbPs3k.mjs → createActionRouter-DNqoaK81.mjs} +7 -7
  27. package/dist/{createAggregationRouter-Dv5SuK2x.mjs → createAggregationRouter-BcbQJf10.mjs} +7 -7
  28. package/dist/{defineAggregation-UyeurGkp.mjs → defineAggregation-D_eJjm5A.mjs} +1 -1
  29. package/dist/{defineResource-DzGT-2LP.mjs → defineResource-DxkMTjRn.mjs} +18 -18
  30. package/dist/discovery/index.mjs +1 -1
  31. package/dist/docs/index.mjs +3 -3
  32. package/dist/{elevation-BF-vhGxY.mjs → elevation-CkvG0LG2.mjs} +4 -4
  33. package/dist/encryption/index.mjs +3 -3
  34. package/dist/{errorHandler-CIMkCOWm.mjs → errorHandler-D1GHKGlV.mjs} +3 -3
  35. package/dist/{errors-C_YhELhe.mjs → errors-BH7YU_9O.mjs} +1 -1
  36. package/dist/{eventPlugin-CmXaPWLv.mjs → eventPlugin-zZY-unhr.mjs} +5 -5
  37. package/dist/events/index.mjs +5 -5
  38. package/dist/events/transports/redis-stream-entry.mjs +2 -2
  39. package/dist/events/transports/redis.mjs +2 -2
  40. package/dist/factory/index.mjs +5 -5
  41. package/dist/{fields-BTyPLHK0.mjs → fields-BHrkoF5y.mjs} +1 -1
  42. package/dist/{generate-D_YmiCNf.mjs → generate-BLRf2m3y.mjs} +2 -2
  43. package/dist/{headers-CNECDE6q.mjs → headers-BIXWKrzQ.mjs} +2 -2
  44. package/dist/{health-CxQzbJmr.mjs → health-ZRHeDHXH.mjs} +1 -1
  45. package/dist/hooks/index.mjs +2 -2
  46. package/dist/idempotency/index.mjs +4 -4
  47. package/dist/idempotency/redis.mjs +1 -1
  48. package/dist/index.mjs +11 -11
  49. package/dist/{init-Y2MlSN9n.mjs → init-CpLkjU18.mjs} +1 -1
  50. package/dist/integrations/event-gateway.mjs +2 -2
  51. package/dist/integrations/index.mjs +1 -1
  52. package/dist/integrations/jobs/index.mjs +2 -2
  53. package/dist/integrations/mcp/index.mjs +2 -2
  54. package/dist/integrations/mcp/testing.mjs +2 -2
  55. package/dist/integrations/streamline.mjs +3 -3
  56. package/dist/integrations/webhooks.mjs +3 -3
  57. package/dist/integrations/websocket-pushref-redis.mjs +1 -1
  58. package/dist/integrations/websocket-redis.mjs +1 -1
  59. package/dist/integrations/websocket.mjs +2 -2
  60. package/dist/{interface-BIpgzbZl.mjs → interface-YzIbF7Ii.mjs} +1 -1
  61. package/dist/{jsonBody-Cq9KYl2Z.mjs → jsonBody-ELR9lfeU.mjs} +2 -2
  62. package/dist/{keys-Cmv4cBRa.mjs → keys-cpZCtcIE.mjs} +1 -1
  63. package/dist/{loadResources-CblF7xt2.mjs → loadResources-BPfWiI5s.mjs} +2 -2
  64. package/dist/{loadResourcesFromEntry-99fIMC3p.mjs → loadResourcesFromEntry-ixtfL3J2.mjs} +2 -2
  65. package/dist/logger/index.mjs +1 -1
  66. package/dist/{mcpPlugin-xF3Gw-HW.mjs → mcpPlugin-BX5PujI0.mjs} +15 -15
  67. package/dist/{memory-CpDZ9NPw.mjs → memory-Iotz0cCx.mjs} +2 -2
  68. package/dist/{metrics-BaKnq8ag.mjs → metrics-NMsmpRmY.mjs} +2 -2
  69. package/dist/middleware/index.mjs +3 -3
  70. package/dist/migrations/index.mjs +2 -2
  71. package/dist/{module-BkQEesNQ.mjs → module-DpLJG2_N.mjs} +1 -1
  72. package/dist/{multipartBody-C92aJ8am.mjs → multipartBody-DtRWM6_U.mjs} +1 -1
  73. package/dist/{openapi-C3LFRzPq.mjs → openapi-CmFf3yq_.mjs} +6 -6
  74. package/dist/outbox-admin/index.mjs +4 -4
  75. package/dist/{outbox-module-dsCyLxXH.mjs → outbox-module-D2z5WkDY.mjs} +5 -5
  76. package/dist/permissions/index.mjs +5 -5
  77. package/dist/{permissions-DiHXy8Ck.mjs → permissions-D8TBH44E.mjs} +7 -7
  78. package/dist/{pipe-CBVmUJ-j.mjs → pipe-FMWNheSO.mjs} +2 -2
  79. package/dist/pipeline/index.mjs +2 -2
  80. package/dist/plugins/index.mjs +16 -16
  81. package/dist/plugins/response-cache.mjs +3 -3
  82. package/dist/plugins/tracing-entry.mjs +2 -2
  83. package/dist/{pluralize-2_U6QZQg.mjs → pluralize-CXWZIzTv.mjs} +1 -1
  84. package/dist/{preloadResources-Bbp4QJ8V.mjs → preloadResources-f3boenVZ.mjs} +21 -21
  85. package/dist/presets/filesUpload.mjs +5 -5
  86. package/dist/presets/index.mjs +2 -2
  87. package/dist/presets/multiTenant.mjs +3 -3
  88. package/dist/presets/search.mjs +2 -2
  89. package/dist/{presets-BdlugYTc.mjs → presets-ZJSPgmT2.mjs} +4 -4
  90. package/dist/{projection-Uvgp-EEj.mjs → projection-BzIgzoKZ.mjs} +2 -2
  91. package/dist/{queryCachePlugin-B5F09bYr.mjs → queryCachePlugin-DZHPOm9p.mjs} +6 -6
  92. package/dist/{rateLimitKey-CK-EU2L8.mjs → rateLimitKey-BvOvcBDi.mjs} +1 -1
  93. package/dist/{realtime-FnnD0n3Z.mjs → realtime-8tIQWZz4.mjs} +9 -9
  94. package/dist/{registerRoute-DRsSHPSM.mjs → registerRoute-Bsnk6NiZ.mjs} +6 -6
  95. package/dist/registry/index.mjs +3 -3
  96. package/dist/{registry-D3y8VEJ1.mjs → registry-DNkgGQcK.mjs} +2 -2
  97. package/dist/{renewingLease-B3VYh5aU.mjs → renewingLease-yF8BdW4b.mjs} +1 -1
  98. package/dist/{replyHelpers-DPHsdw-5.mjs → replyHelpers-CNdvMfM4.mjs} +2 -2
  99. package/dist/{requestContext-cSVKnYPk.mjs → requestContext-cDkAUr-P.mjs} +1 -1
  100. package/dist/{rolldown-runtime-DjDuyglE.mjs → rolldown-runtime-eysyzFAF.mjs} +1 -1
  101. package/dist/{runtimeCapabilities-DSA_dH1_.mjs → runtimeCapabilities-CkhS6jn6.mjs} +1 -1
  102. package/dist/{schedules-BktJb3Y3.mjs → schedules-j6uXXAeJ.mjs} +4 -4
  103. package/dist/{schemaConverter-BLCSmNbr.mjs → schemaConverter-BVA7cFRG.mjs} +1 -1
  104. package/dist/{schemaIR-K16Bb5BX.mjs → schemaIR-CTvPDoPB.mjs} +2 -2
  105. package/dist/schemas/index.mjs +1 -1
  106. package/dist/scim/index.mjs +2 -2
  107. package/dist/scope/index.mjs +5 -5
  108. package/dist/{scope-jSxuBTFM.mjs → scope-BUi1xV1I.mjs} +4 -4
  109. package/dist/{simpleEqualityMatcher-BiOnyflP.mjs → simpleEqualityMatcher-C9bzq2gO.mjs} +1 -1
  110. package/dist/{sse-CH7Slxc1.mjs → sse-BeqVKQKu.mjs} +5 -5
  111. package/dist/{sseStream-CN-Lh1Tu.mjs → sseStream-Ppzo-WUH.mjs} +2 -2
  112. package/dist/{store-helpers-9DX9-1j_.mjs → store-helpers-dW71XVWL.mjs} +1 -1
  113. package/dist/{streaming-dvppnxsr.mjs → streaming-IcRFjWQU.mjs} +1 -1
  114. package/dist/{subscribe-helpers-AVYPgqTl.mjs → subscribe-helpers-DatDkcuG.mjs} +2 -2
  115. package/dist/sync/changelog.mjs +1 -1
  116. package/dist/testing/cleanupStoreContract.mjs +1 -1
  117. package/dist/testing/index.mjs +10 -10
  118. package/dist/testing/outboxStoreContract.mjs +1 -1
  119. package/dist/testing/storageContract.mjs +1 -1
  120. package/dist/{transactionContext-DCWMI6hV.mjs → transactionContext-CPbdlnVw.mjs} +1 -1
  121. package/dist/{typeGuards-D7tHFdH6.mjs → typeGuards-BLjPgVBm.mjs} +1 -1
  122. package/dist/types/index.mjs +1 -1
  123. package/dist/types/storage.mjs +1 -1
  124. package/dist/{types-CDy3-zw1.mjs → types-CgenB1gv.mjs} +4 -4
  125. package/dist/usage/index.mjs +4 -4
  126. package/dist/{userHelpers-DDMOZ_Pm.mjs → userHelpers-ChRvkuSZ.mjs} +1 -1
  127. package/dist/utils/index.mjs +11 -11
  128. package/dist/{utils-B-zj_b__.mjs → utils-CxcctrAh.mjs} +3 -3
  129. package/dist/{validate-R0G_JrnK.mjs → validate-DrYWnOzI.mjs} +2 -2
  130. package/dist/{versioning-DuVWcu-F.mjs → versioning-DKkT4hNJ.mjs} +3 -3
  131. package/dist/{workScope-BhsWde4k.mjs → workScope-CxKqoIFn.mjs} +2 -2
  132. package/package.json +574 -574
@@ -1,15 +1,15 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { h as SYSTEM_FIELDS, o as DEFAULT_TENANT_FIELD } from "./constants-BxLgNFF7.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { h as SYSTEM_FIELDS, o as DEFAULT_TENANT_FIELD } from "./constants-D5Ubn1fe.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { a as conjoinPolicyFilters } from "./authorizationDecision-2YY_Kaj1.mjs";
5
- import { d as createDomainError, f as createError, i as NotFoundError, p as isArcError, r as ForbiddenError, u as ValidationError } from "./errors-C_YhELhe.mjs";
6
- import { n as getUserRoles, t as getUserId } from "./userHelpers-DDMOZ_Pm.mjs";
7
- import { b as isElevated, c as getOrgId, n as PUBLIC_SCOPE, x as isMember } from "./types-CDy3-zw1.mjs";
8
- import { t as simpleEqualityMatcher } from "./simpleEqualityMatcher-BiOnyflP.mjs";
9
- import { t as buildQueryKey } from "./keys-Cmv4cBRa.mjs";
10
- import { t as transactionContext } from "./transactionContext-DCWMI6hV.mjs";
11
- import { D as ArcQueryParser, j as scheduleBackground } from "./utils-B-zj_b__.mjs";
12
- import { a as resolveEffectiveRoles, n as applyFieldWritePermissions } from "./fields-BTyPLHK0.mjs";
4
+ import { a as conjoinPolicyFilters } from "./authorizationDecision-DawKGoXb.mjs";
5
+ import { d as createDomainError, f as createError, i as NotFoundError, p as isArcError, r as ForbiddenError, u as ValidationError } from "./errors-BH7YU_9O.mjs";
6
+ import { n as getUserRoles, t as getUserId } from "./userHelpers-ChRvkuSZ.mjs";
7
+ import { b as isElevated, c as getOrgId, n as PUBLIC_SCOPE, x as isMember } from "./types-CgenB1gv.mjs";
8
+ import { t as simpleEqualityMatcher } from "./simpleEqualityMatcher-C9bzq2gO.mjs";
9
+ import { t as buildQueryKey } from "./keys-cpZCtcIE.mjs";
10
+ import { t as transactionContext } from "./transactionContext-CPbdlnVw.mjs";
11
+ import { D as ArcQueryParser, j as scheduleBackground } from "./utils-CxcctrAh.mjs";
12
+ import { a as resolveEffectiveRoles, n as applyFieldWritePermissions } from "./fields-BHrkoF5y.mjs";
13
13
  import { policyRecordToFilter } from "@classytic/repo-core/filter";
14
14
  import { retryingTransaction } from "@classytic/repo-core/repository";
15
15
  import { isProductionEnv } from "@classytic/primitives/environment";
@@ -115,9 +115,10 @@ var AccessControl = class {
115
115
  const arcContext = this._meta(req);
116
116
  const policyFilters = arcContext?._policyFilters;
117
117
  if (policyFilters) filter = conjoinPolicyFilters(filter, policyFilters);
118
+ const crossTenantRead = arcContext?._crossTenantRead === true;
118
119
  const scope = arcContext?._scope;
119
120
  const orgId = scope ? getOrgId(scope) : void 0;
120
- if (this.tenantField && orgId) filter = conjoinPolicyFilters(filter, { [this.tenantField]: orgId });
121
+ if (this.tenantField && orgId && !crossTenantRead) filter = conjoinPolicyFilters(filter, { [this.tenantField]: orgId });
121
122
  return toRepositoryFilter(filter);
122
123
  }
123
124
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { r as workSeedFromEvent, t as runWorkScope } from "./workScope-BhsWde4k.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { r as workSeedFromEvent, t as runWorkScope } from "./workScope-CxKqoIFn.mjs";
3
3
  import { createEvent, matchEventPattern } from "@classytic/primitives/events";
4
4
  //#region src/events/EventTransport.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as buildRequestScopeProjection } from "./projection-Uvgp-EEj.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as buildRequestScopeProjection } from "./projection-BzIgzoKZ.mjs";
3
3
  //#region src/hooks/HookSystem.ts
4
4
  /**
5
5
  * Hook System
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import "./constants-BxLgNFF7.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import "./constants-D5Ubn1fe.mjs";
3
3
  //#region src/registry/ResourceRegistry.ts
4
4
  /**
5
5
  * Resource Registry
@@ -1,9 +1,9 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { n as getUserRoles } from "./userHelpers-DDMOZ_Pm.mjs";
3
- import { b as isElevated, n as PUBLIC_SCOPE, x as isMember } from "./types-CDy3-zw1.mjs";
4
- import { a as resolveEffectiveRoles, t as applyFieldReadPermissions } from "./fields-BTyPLHK0.mjs";
5
- import { t as buildRequestScopeProjection } from "./projection-Uvgp-EEj.mjs";
6
- import { t as executePipeline } from "./pipe-CBVmUJ-j.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { n as getUserRoles } from "./userHelpers-ChRvkuSZ.mjs";
3
+ import { b as isElevated, n as PUBLIC_SCOPE, x as isMember } from "./types-CgenB1gv.mjs";
4
+ import { a as resolveEffectiveRoles, t as applyFieldReadPermissions } from "./fields-BHrkoF5y.mjs";
5
+ import { t as buildRequestScopeProjection } from "./projection-BzIgzoKZ.mjs";
6
+ import { t as executePipeline } from "./pipe-FMWNheSO.mjs";
7
7
  import { isPaginatedResult, toCanonicalList } from "@classytic/repo-core/pagination";
8
8
  //#region src/core/fastifyAdapter.ts
9
9
  /** Type guard for Mongoose-like documents with toObject() */
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as transactionContext } from "../transactionContext-DCWMI6hV.mjs";
3
- import { n as declareRuntimeCapability } from "../runtimeCapabilities-DSA_dH1_.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as transactionContext } from "../transactionContext-CPbdlnVw.mjs";
3
+ import { n as declareRuntimeCapability } from "../runtimeCapabilities-CkhS6jn6.mjs";
4
4
  import { and, anyOf, eq, gte, lt, lte } from "@classytic/repo-core/filter";
5
5
  import fp from "fastify-plugin";
6
6
  //#region src/audit/repository-audit-adapter.ts
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  //#region src/auth/audit.ts
3
3
  function compileGlobs(patterns) {
4
4
  if (patterns.length === 0) return () => false;
@@ -1,10 +1,10 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { d as createDomainError, l as UnauthorizedError, p as isArcError, t as ArcError } from "../errors-C_YhELhe.mjs";
3
- import { n as requireSingleHeaderValue } from "../headers-CNECDE6q.mjs";
4
- import { n as getUserRoles, r as normalizeRoles } from "../userHelpers-DDMOZ_Pm.mjs";
5
- import { o as toJsonSchema } from "../schemaConverter-BLCSmNbr.mjs";
6
- import { n as declareRuntimeCapability } from "../runtimeCapabilities-DSA_dH1_.mjs";
7
- import { E as requireOrgRole, T as requireOrgMembership, k as requireTeamMembership } from "../permissions-DiHXy8Ck.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { d as createDomainError, l as UnauthorizedError, p as isArcError, t as ArcError } from "../errors-BH7YU_9O.mjs";
3
+ import { n as requireSingleHeaderValue } from "../headers-BIXWKrzQ.mjs";
4
+ import { n as getUserRoles, r as normalizeRoles } from "../userHelpers-ChRvkuSZ.mjs";
5
+ import { o as toJsonSchema } from "../schemaConverter-BVA7cFRG.mjs";
6
+ import { n as declareRuntimeCapability } from "../runtimeCapabilities-CkhS6jn6.mjs";
7
+ import { E as requireOrgRole, T as requireOrgMembership, k as requireTeamMembership } from "../permissions-D8TBH44E.mjs";
8
8
  import { isProductionEnv } from "@classytic/primitives/environment";
9
9
  import { createHmac, randomUUID, timingSafeEqual } from "node:crypto";
10
10
  import fp from "fastify-plugin";
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  import sjson from "secure-json-parse";
3
3
  //#region src/auth/redis-session.ts
4
4
  /**
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  import { arcLog } from "./logger/index.mjs";
3
- import { t as ArcError } from "./errors-C_YhELhe.mjs";
3
+ import { t as ArcError } from "./errors-BH7YU_9O.mjs";
4
4
  //#region src/permissions/filter-merge.ts
5
5
  /**
6
6
  * Policy-filter composition — logical AND, never last-writer-wins.
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { a as conjoinPolicyFilters } from "./authorizationDecision-2YY_Kaj1.mjs";
3
- import { g as toRepositoryFilter } from "./BaseController-DYJRZ0EJ.mjs";
4
- import { i as compileAggRequest, t as adapterSupportsAggregate } from "./validate-R0G_JrnK.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { a as conjoinPolicyFilters } from "./authorizationDecision-DawKGoXb.mjs";
3
+ import { g as toRepositoryFilter } from "./BaseController-CYEwjyjN.mjs";
4
+ import { i as compileAggRequest, t as adapterSupportsAggregate } from "./validate-DrYWnOzI.mjs";
5
5
  //#region src/core/aggregation/buildHandler.ts
6
6
  /**
7
7
  * Framework-agnostic aggregation execution. Runs safety guards,
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { i as versionKey, n as hashParams, r as tagVersionKey, t as buildQueryKey } from "../keys-Cmv4cBRa.mjs";
3
- import { t as MemoryCacheStore } from "../memory-CpDZ9NPw.mjs";
4
- import { r as QueryCache, t as queryCachePlugin } from "../queryCachePlugin-B5F09bYr.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { i as versionKey, n as hashParams, r as tagVersionKey, t as buildQueryKey } from "../keys-cpZCtcIE.mjs";
3
+ import { t as MemoryCacheStore } from "../memory-Iotz0cCx.mjs";
4
+ import { r as QueryCache, t as queryCachePlugin } from "../queryCachePlugin-DZHPOm9p.mjs";
5
5
  //#region src/cache/redis.ts
6
6
  /**
7
7
  * Redis-backed cache store.
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-DjDuyglE.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-eysyzFAF.mjs";
3
3
  import fp from "fastify-plugin";
4
4
  //#region src/plugins/caching.ts
5
5
  var caching_exports = /* @__PURE__ */ __exportAll({
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { g as getUserId } from "../types-CDy3-zw1.mjs";
3
- import { t as defineResource } from "../defineResource-DzGT-2LP.mjs";
4
- import { t as defineModule } from "../module-BkQEesNQ.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { g as getUserId } from "../types-CgenB1gv.mjs";
3
+ import { t as defineResource } from "../defineResource-DxkMTjRn.mjs";
4
+ import { t as defineModule } from "../module-DpLJG2_N.mjs";
5
5
  import { createPurgeEvidence } from "@classytic/primitives/retention";
6
6
  import { canonicalJson, sha256Hex } from "@classytic/primitives/canonical";
7
7
  //#region src/cleanup/errors.ts
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as CRUD_OPERATIONS } from "../../constants-BxLgNFF7.mjs";
3
- import { n as stringifyMeasureMap } from "../../ResourceRegistry-Cu7uTJp9.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as CRUD_OPERATIONS } from "../../constants-D5Ubn1fe.mjs";
3
+ import { n as stringifyMeasureMap } from "../../ResourceRegistry-MGpXoxHZ.mjs";
4
4
  import { resolve } from "node:path";
5
5
  import { pathToFileURL } from "node:url";
6
6
  //#region src/cli/commands/describe.ts
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as buildOpenApiSpec } from "../../openapi-C3LFRzPq.mjs";
3
- import { t as loadResourcesFromEntry } from "../../loadResourcesFromEntry-99fIMC3p.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as buildOpenApiSpec } from "../../openapi-CmFf3yq_.mjs";
3
+ import { t as loadResourcesFromEntry } from "../../loadResourcesFromEntry-ixtfL3J2.mjs";
4
4
  import { dirname, resolve } from "node:path";
5
5
  import { mkdirSync, writeFileSync } from "node:fs";
6
6
  //#region src/cli/commands/docs.ts
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  import { dirname, join, parse, resolve } from "node:path";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  //#region src/cli/commands/doctor.ts
@@ -1,3 +1,3 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as generate } from "../../generate-D_YmiCNf.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as generate } from "../../generate-BLRf2m3y.mjs";
3
3
  export { generate };
@@ -1,3 +1,3 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as init } from "../../init-Y2MlSN9n.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as init } from "../../init-CpLkjU18.mjs";
3
3
  export { init };
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as loadResourcesFromEntry } from "../../loadResourcesFromEntry-99fIMC3p.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as loadResourcesFromEntry } from "../../loadResourcesFromEntry-ixtfL3J2.mjs";
3
3
  //#region src/cli/commands/introspect.ts
4
4
  function describePermission(value) {
5
5
  if (!value) return "none";
@@ -1,8 +1,8 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  import { describe } from "./commands/describe.mjs";
3
3
  import { exportDocs } from "./commands/docs.mjs";
4
4
  import { doctor } from "./commands/doctor.mjs";
5
- import { t as generate } from "../generate-D_YmiCNf.mjs";
6
- import { t as init } from "../init-Y2MlSN9n.mjs";
5
+ import { t as generate } from "../generate-BLRf2m3y.mjs";
6
+ import { t as init } from "../init-CpLkjU18.mjs";
7
7
  import { introspect } from "./commands/introspect.mjs";
8
8
  export { describe, doctor, exportDocs, generate, init, introspect };
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  //#region src/constants.ts
3
3
  /**
4
4
  * Arc Framework Constants — Single Source of Truth
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as transactionContext } from "../transactionContext-DCWMI6hV.mjs";
3
- import { n as requestContext, t as getTraceHeaders } from "../requestContext-cSVKnYPk.mjs";
4
- import { n as scopedValue, r as workSeedFromEvent, t as runWorkScope } from "../workScope-BhsWde4k.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as transactionContext } from "../transactionContext-CPbdlnVw.mjs";
3
+ import { n as requestContext, t as getTraceHeaders } from "../requestContext-cDkAUr-P.mjs";
4
+ import { n as scopedValue, r as workSeedFromEvent, t as runWorkScope } from "../workScope-CxKqoIFn.mjs";
5
5
  //#region src/context/requestScopedCache.ts
6
6
  /** The memo slot the per-scope store hangs off. */
7
7
  const SLOT = Symbol.for("arc.requestScopedCache");
@@ -1,8 +1,8 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { a as DEFAULT_SORT, c as HOOK_OPERATIONS, d as MAX_REGEX_LENGTH, f as MAX_SEARCH_LENGTH, h as SYSTEM_FIELDS, i as DEFAULT_MAX_LIMIT, l as HOOK_PHASES, m as RESERVED_QUERY_PARAMS, n as DEFAULT_ID_FIELD, o as DEFAULT_TENANT_FIELD, p as MUTATION_OPERATIONS, r as DEFAULT_LIMIT, s as DEFAULT_UPDATE_METHOD, t as CRUD_OPERATIONS, u as MAX_FILTER_DEPTH } from "../constants-BxLgNFF7.mjs";
3
- import { a as BulkMixin, c as collectReadBlockedFields, f as BodySanitizer, h as nativePolicyFilter, i as SlugMixin, l as isFieldReadable, m as AccessControl, n as TreeMixin, o as BaseCrudController, r as SoftDeleteMixin, s as QueryResolver, t as BaseController } from "../BaseController-DYJRZ0EJ.mjs";
4
- import { t as defineAggregation } from "../defineAggregation-UyeurGkp.mjs";
5
- import { a as createCrudHandlers, c as getControllerContext, l as getControllerScope, o as createFastifyHandler, s as createRequestContext, u as sendControllerResponse } from "../actionPermissions-DPwPWPOV.mjs";
6
- import { a as ResourceDefinition, i as validateResourceConfig, n as assertValidConfig, o as createCrudRouter, r as formatValidationErrors, s as createPermissionMiddleware, t as defineResource } from "../defineResource-DzGT-2LP.mjs";
7
- import { a as mergeResourceConfig, i as defineResourceVariants, n as getEntityIdField, o as defineAction, r as getEntityQuery, t as getEntityId } from "../core-iNGqYerO.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { a as DEFAULT_SORT, c as HOOK_OPERATIONS, d as MAX_REGEX_LENGTH, f as MAX_SEARCH_LENGTH, h as SYSTEM_FIELDS, i as DEFAULT_MAX_LIMIT, l as HOOK_PHASES, m as RESERVED_QUERY_PARAMS, n as DEFAULT_ID_FIELD, o as DEFAULT_TENANT_FIELD, p as MUTATION_OPERATIONS, r as DEFAULT_LIMIT, s as DEFAULT_UPDATE_METHOD, t as CRUD_OPERATIONS, u as MAX_FILTER_DEPTH } from "../constants-D5Ubn1fe.mjs";
3
+ import { a as BulkMixin, c as collectReadBlockedFields, f as BodySanitizer, h as nativePolicyFilter, i as SlugMixin, l as isFieldReadable, m as AccessControl, n as TreeMixin, o as BaseCrudController, r as SoftDeleteMixin, s as QueryResolver, t as BaseController } from "../BaseController-CYEwjyjN.mjs";
4
+ import { t as defineAggregation } from "../defineAggregation-D_eJjm5A.mjs";
5
+ import { a as createCrudHandlers, c as getControllerContext, l as getControllerScope, o as createFastifyHandler, s as createRequestContext, u as sendControllerResponse } from "../actionPermissions-BoPGQ5-4.mjs";
6
+ import { a as ResourceDefinition, i as validateResourceConfig, n as assertValidConfig, o as createCrudRouter, r as formatValidationErrors, s as createPermissionMiddleware, t as defineResource } from "../defineResource-DxkMTjRn.mjs";
7
+ import { a as mergeResourceConfig, i as defineResourceVariants, n as getEntityIdField, o as defineAction, r as getEntityQuery, t as getEntityId } from "../core-5lazhva9.mjs";
8
8
  export { AccessControl, BaseController, BaseCrudController, BodySanitizer, BulkMixin, CRUD_OPERATIONS, DEFAULT_ID_FIELD, DEFAULT_LIMIT, DEFAULT_MAX_LIMIT, DEFAULT_SORT, DEFAULT_TENANT_FIELD, DEFAULT_UPDATE_METHOD, HOOK_OPERATIONS, HOOK_PHASES, MAX_FILTER_DEPTH, MAX_REGEX_LENGTH, MAX_SEARCH_LENGTH, MUTATION_OPERATIONS, QueryResolver, RESERVED_QUERY_PARAMS, ResourceDefinition, SYSTEM_FIELDS, SlugMixin, SoftDeleteMixin, TreeMixin, assertValidConfig, collectReadBlockedFields, createCrudHandlers, createCrudRouter, createFastifyHandler, createPermissionMiddleware, createRequestContext, defineAction, defineAggregation, defineResource, defineResourceVariants, formatValidationErrors, getControllerContext, getControllerScope, getEntityId, getEntityIdField, getEntityQuery, isFieldReadable, mergeResourceConfig, nativePolicyFilter, sendControllerResponse, validateResourceConfig };
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import "./constants-BxLgNFF7.mjs";
3
- import { t as defineResource } from "./defineResource-DzGT-2LP.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import "./constants-D5Ubn1fe.mjs";
3
+ import { t as defineResource } from "./defineResource-DxkMTjRn.mjs";
4
4
  //#region src/core/defineAction.ts
5
5
  /**
6
6
  * Build an `ActionDefinition` with a typed handler. The literal schema
@@ -1,10 +1,10 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-DjDuyglE.mjs";
3
- import "./constants-BxLgNFF7.mjs";
4
- import { f as createError } from "./errors-C_YhELhe.mjs";
5
- import { i as resolvePipelineSteps, n as buildActionPipelineHandler, u as sendControllerResponse } from "./actionPermissions-DPwPWPOV.mjs";
6
- import { a as selectPluginMw, c as buildRouteHooks, f as buildAuthMiddlewareForPermissions, i as resolveRouterPluginMw, n as buildRateLimitConfig, o as buildActionPermissionMw, p as buildArcDecorator, r as buildRouteConfig, t as tryRegisterRoute, u as routeHookOptions } from "./registerRoute-DRsSHPSM.mjs";
7
- import { n as schemaIRToJsonSchemaBranch, t as normalizeSchemaIR } from "./schemaIR-K16Bb5BX.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-eysyzFAF.mjs";
3
+ import "./constants-D5Ubn1fe.mjs";
4
+ import { f as createError } from "./errors-BH7YU_9O.mjs";
5
+ import { i as resolvePipelineSteps, n as buildActionPipelineHandler, u as sendControllerResponse } from "./actionPermissions-BoPGQ5-4.mjs";
6
+ import { a as selectPluginMw, c as buildRouteHooks, f as buildAuthMiddlewareForPermissions, i as resolveRouterPluginMw, n as buildRateLimitConfig, o as buildActionPermissionMw, p as buildArcDecorator, r as buildRouteConfig, t as tryRegisterRoute, u as routeHookOptions } from "./registerRoute-Bsnk6NiZ.mjs";
7
+ import { n as schemaIRToJsonSchemaBranch, t as normalizeSchemaIR } from "./schemaIR-CTvPDoPB.mjs";
8
8
  //#region src/core/createActionRouter.ts
9
9
  var createActionRouter_exports = /* @__PURE__ */ __exportAll({
10
10
  buildActionBodySchema: () => buildActionBodySchema,
@@ -1,10 +1,10 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { n as evaluateAndApplyPermission } from "./authorizationDecision-2YY_Kaj1.mjs";
3
- import { f as createError } from "./errors-C_YhELhe.mjs";
4
- import { u as getRequestScope } from "./types-CDy3-zw1.mjs";
5
- import { a as selectPluginMw, c as buildRouteHooks, d as buildAuthMiddleware, i as resolveRouterPluginMw, n as buildRateLimitConfig, p as buildArcDecorator, u as routeHookOptions } from "./registerRoute-DRsSHPSM.mjs";
6
- import { n as validateAggregations } from "./validate-R0G_JrnK.mjs";
7
- import { t as buildAggregationHandler } from "./buildHandler-CUhjGHGZ.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { n as evaluateAndApplyPermission } from "./authorizationDecision-DawKGoXb.mjs";
3
+ import { f as createError } from "./errors-BH7YU_9O.mjs";
4
+ import { u as getRequestScope } from "./types-CgenB1gv.mjs";
5
+ import { a as selectPluginMw, c as buildRouteHooks, d as buildAuthMiddleware, i as resolveRouterPluginMw, n as buildRateLimitConfig, p as buildArcDecorator, u as routeHookOptions } from "./registerRoute-Bsnk6NiZ.mjs";
6
+ import { n as validateAggregations } from "./validate-DrYWnOzI.mjs";
7
+ import { t as buildAggregationHandler } from "./buildHandler-CvxKOc0m.mjs";
8
8
  //#region src/core/aggregation/createAggregationRouter.ts
9
9
  /**
10
10
  * Register one Fastify route per aggregation. No-op when the map is
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  //#region src/core/aggregation/defineAggregation.ts
3
3
  /**
4
4
  * Declare a single resource aggregation. Exported configs flow into
@@ -1,20 +1,20 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { p as MUTATION_OPERATIONS, s as DEFAULT_UPDATE_METHOD, t as CRUD_OPERATIONS } from "./constants-BxLgNFF7.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { p as MUTATION_OPERATIONS, s as DEFAULT_UPDATE_METHOD, t as CRUD_OPERATIONS } from "./constants-D5Ubn1fe.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { r as ForbiddenError } from "./errors-C_YhELhe.mjs";
5
- import { n as getUserRoles } from "./userHelpers-DDMOZ_Pm.mjs";
6
- import { b as isElevated, n as PUBLIC_SCOPE, x as isMember } from "./types-CDy3-zw1.mjs";
7
- import { d as isWriteVerbCapable, p as DEFAULT_FIELD_WRITE_DENIAL_POLICY, t as BaseController, u as detectOverriddenWriteSlots } from "./BaseController-DYJRZ0EJ.mjs";
8
- import { y as getDefaultCrudSchemas } from "./utils-B-zj_b__.mjs";
9
- import { a as resolveEffectiveRoles, n as applyFieldWritePermissions } from "./fields-BTyPLHK0.mjs";
10
- import { n as convertRouteSchema, r as ensureSchemaConverter, t as convertOpenApiSchemas } from "./schemaConverter-BLCSmNbr.mjs";
11
- import { i as pipeUIMessageStreamToReply, r as isReadableStream } from "./streaming-dvppnxsr.mjs";
12
- import { a as createCrudHandlers, i as resolvePipelineSteps, o as createFastifyHandler, r as buildPipelineHandler, s as createRequestContext, t as resolveActionPermission } from "./actionPermissions-DPwPWPOV.mjs";
13
- import { a as selectPluginMw, c as buildRouteHooks, d as buildAuthMiddleware, i as resolveRouterPluginMw, l as resolveRoutePreHandlers, n as buildRateLimitConfig, p as buildArcDecorator, r as buildRouteConfig, s as buildCrudPermissionMw, t as tryRegisterRoute, u as routeHookOptions } from "./registerRoute-DRsSHPSM.mjs";
14
- import { t as hasEvents } from "./typeGuards-D7tHFdH6.mjs";
15
- import { B as requireAuth } from "./permissions-DiHXy8Ck.mjs";
16
- import { r as getAvailablePresets, t as applyPresets } from "./presets-BdlugYTc.mjs";
17
- import { t as pluralize } from "./pluralize-2_U6QZQg.mjs";
4
+ import { r as ForbiddenError } from "./errors-BH7YU_9O.mjs";
5
+ import { n as getUserRoles } from "./userHelpers-ChRvkuSZ.mjs";
6
+ import { b as isElevated, n as PUBLIC_SCOPE, x as isMember } from "./types-CgenB1gv.mjs";
7
+ import { d as isWriteVerbCapable, p as DEFAULT_FIELD_WRITE_DENIAL_POLICY, t as BaseController, u as detectOverriddenWriteSlots } from "./BaseController-CYEwjyjN.mjs";
8
+ import { y as getDefaultCrudSchemas } from "./utils-CxcctrAh.mjs";
9
+ import { a as resolveEffectiveRoles, n as applyFieldWritePermissions } from "./fields-BHrkoF5y.mjs";
10
+ import { n as convertRouteSchema, r as ensureSchemaConverter, t as convertOpenApiSchemas } from "./schemaConverter-BVA7cFRG.mjs";
11
+ import { i as pipeUIMessageStreamToReply, r as isReadableStream } from "./streaming-IcRFjWQU.mjs";
12
+ import { a as createCrudHandlers, i as resolvePipelineSteps, o as createFastifyHandler, r as buildPipelineHandler, s as createRequestContext, t as resolveActionPermission } from "./actionPermissions-BoPGQ5-4.mjs";
13
+ import { a as selectPluginMw, c as buildRouteHooks, d as buildAuthMiddleware, i as resolveRouterPluginMw, l as resolveRoutePreHandlers, n as buildRateLimitConfig, p as buildArcDecorator, r as buildRouteConfig, s as buildCrudPermissionMw, t as tryRegisterRoute, u as routeHookOptions } from "./registerRoute-Bsnk6NiZ.mjs";
14
+ import { t as hasEvents } from "./typeGuards-BLjPgVBm.mjs";
15
+ import { B as requireAuth } from "./permissions-D8TBH44E.mjs";
16
+ import { r as getAvailablePresets, t as applyPresets } from "./presets-ZJSPgmT2.mjs";
17
+ import { t as pluralize } from "./pluralize-CXWZIzTv.mjs";
18
18
  import { isReadOnlyRepo } from "@classytic/repo-core/repository";
19
19
  //#region src/core/middlewares/fieldWrite.ts
20
20
  /**
@@ -1425,7 +1425,7 @@ function buildResourcePlugin(resource) {
1425
1425
  extensions: resource.extensions
1426
1426
  });
1427
1427
  if (resource.actions && Object.keys(resource.actions).length > 0) {
1428
- const { createActionRouter } = await import("./createActionRouter-BBlbPs3k.mjs").then((n) => n.n);
1428
+ const { createActionRouter } = await import("./createActionRouter-DNqoaK81.mjs").then((n) => n.n);
1429
1429
  createActionRouter(typedInstance, {
1430
1430
  ...normalizeActionsToRouterConfig(resource.actions, resource.actionPermissions, resource.tag, resource.permissions, resource.name, typedInstance.log),
1431
1431
  resourceName: resource.name,
@@ -1440,7 +1440,7 @@ function buildResourcePlugin(resource) {
1440
1440
  });
1441
1441
  }
1442
1442
  if (resource.aggregations && Object.keys(resource.aggregations).length > 0) {
1443
- const [{ createAggregationRouter }, { adapterSupportsAggregate, ArcAggregationConfigError }] = await Promise.all([import("./createAggregationRouter-Dv5SuK2x.mjs"), import("./validate-R0G_JrnK.mjs").then((n) => n.r)]);
1443
+ const [{ createAggregationRouter }, { adapterSupportsAggregate, ArcAggregationConfigError }] = await Promise.all([import("./createAggregationRouter-BcbQJf10.mjs"), import("./validate-DrYWnOzI.mjs").then((n) => n.r)]);
1444
1444
  const repoForAgg = resource.controller?.repository ?? resource.repository;
1445
1445
  if (!adapterSupportsAggregate(repoForAgg)) {
1446
1446
  const undispatchable = Object.entries(resource.aggregations).filter(([, cfg]) => !cfg.materialized).map(([name]) => name);
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  import { readdir } from "node:fs/promises";
3
3
  import { extname, join, resolve } from "node:path";
4
4
  import { pathToFileURL } from "node:url";
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { n as getUserRoles } from "../userHelpers-DDMOZ_Pm.mjs";
3
- import { n as openApiPlugin, r as openapi_default, t as buildOpenApiSpec } from "../openapi-C3LFRzPq.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { n as getUserRoles } from "../userHelpers-ChRvkuSZ.mjs";
3
+ import { n as openApiPlugin, r as openapi_default, t as buildOpenApiSpec } from "../openapi-CmFf3yq_.mjs";
4
4
  import fp from "fastify-plugin";
5
5
  //#region src/docs/scalar.ts
6
6
  const scalarPlugin = async (fastify, opts = {}) => {
@@ -1,8 +1,8 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-DjDuyglE.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-eysyzFAF.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { n as requireSingleHeaderValue } from "./headers-CNECDE6q.mjs";
5
- import { n as getUserRoles } from "./userHelpers-DDMOZ_Pm.mjs";
4
+ import { n as requireSingleHeaderValue } from "./headers-BIXWKrzQ.mjs";
5
+ import { n as getUserRoles } from "./userHelpers-ChRvkuSZ.mjs";
6
6
  import fp from "fastify-plugin";
7
7
  //#region src/scope/elevation.ts
8
8
  var elevation_exports = /* @__PURE__ */ __exportAll({
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as ArcError } from "../errors-C_YhELhe.mjs";
3
- import { t as parseJsonBody } from "../jsonBody-Cq9KYl2Z.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as ArcError } from "../errors-BH7YU_9O.mjs";
3
+ import { t as parseJsonBody } from "../jsonBody-ELR9lfeU.mjs";
4
4
  import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
5
5
  import fp from "fastify-plugin";
6
6
  //#region src/encryption/fieldCipher.ts
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-DjDuyglE.mjs";
3
- import { m as statusToArcCode, p as isArcError } from "./errors-C_YhELhe.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-eysyzFAF.mjs";
3
+ import { m as statusToArcCode, p as isArcError } from "./errors-BH7YU_9O.mjs";
4
4
  import { isProductionEnv } from "@classytic/primitives/environment";
5
5
  import { isHttpError, toErrorContract } from "@classytic/repo-core/errors";
6
6
  import fp from "fastify-plugin";
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  //#region src/utils/errors.ts
3
3
  /**
4
4
  * Base Arc Error. Implements the canonical `HttpError` contract — `status`
@@ -1,9 +1,9 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-DjDuyglE.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-eysyzFAF.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { d as createDomainError } from "./errors-C_YhELhe.mjs";
5
- import { n as requestContext } from "./requestContext-cSVKnYPk.mjs";
6
- import { n as MemoryEventTransport, r as createEvent, t as ARC_EVENT_TRANSPORT } from "./EventTransport-n7qO5Cz3.mjs";
4
+ import { d as createDomainError } from "./errors-BH7YU_9O.mjs";
5
+ import { n as requestContext } from "./requestContext-cDkAUr-P.mjs";
6
+ import { n as MemoryEventTransport, r as createEvent, t as ARC_EVENT_TRANSPORT } from "./EventTransport-DSqD_Xsg.mjs";
7
7
  import { isProductionEnv } from "@classytic/primitives/environment";
8
8
  import fp from "fastify-plugin";
9
9
  //#region src/events/retry.ts
@@ -1,8 +1,8 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { n as MemoryEventTransport } from "../EventTransport-n7qO5Cz3.mjs";
3
- import { a as createEventRegistry, i as wrapWithSchema, n as subscribeWithSchema, o as defineEvent, r as wrapWithBoundary, t as subscribeWithBoundary } from "../subscribe-helpers-AVYPgqTl.mjs";
4
- import { i as withRetry, r as createDeadLetterPublisher, t as eventPlugin } from "../eventPlugin-CmXaPWLv.mjs";
5
- import { i as exponentialBackoff, n as EventOutbox, r as repositoryAsOutboxStore, t as createOutboxModule } from "../outbox-module-dsCyLxXH.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { n as MemoryEventTransport } from "../EventTransport-DSqD_Xsg.mjs";
3
+ import { a as createEventRegistry, i as wrapWithSchema, n as subscribeWithSchema, o as defineEvent, r as wrapWithBoundary, t as subscribeWithBoundary } from "../subscribe-helpers-DatDkcuG.mjs";
4
+ import { i as withRetry, r as createDeadLetterPublisher, t as eventPlugin } from "../eventPlugin-zZY-unhr.mjs";
5
+ import { i as exponentialBackoff, n as EventOutbox, r as repositoryAsOutboxStore, t as createOutboxModule } from "../outbox-module-D2z5WkDY.mjs";
6
6
  import { MemoryOutboxStore } from "@classytic/primitives/memory-outbox";
7
7
  //#region src/events/eventTypes.ts
8
8
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { r as workSeedFromEvent, t as runWorkScope } from "../../workScope-BhsWde4k.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { r as workSeedFromEvent, t as runWorkScope } from "../../workScope-CxKqoIFn.mjs";
3
3
  import sjson from "secure-json-parse";
4
4
  import { matchEventPattern } from "@classytic/primitives/events";
5
5
  //#region src/events/transports/redis-stream.ts
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { r as workSeedFromEvent, t as runWorkScope } from "../../workScope-BhsWde4k.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { r as workSeedFromEvent, t as runWorkScope } from "../../workScope-CxKqoIFn.mjs";
3
3
  import sjson from "secure-json-parse";
4
4
  //#region src/events/transports/redis.ts
5
5
  /**
@@ -1,8 +1,8 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { r as mergeHealthChecks, t as healthPlugin } from "../health-CxQzbJmr.mjs";
3
- import { S as resolveModule, _ as describeResolvedModule, a as createApp, b as collectModuleWorkflows, c as edgePreset, d as testingPreset, f as workerPreset, g as subscribeModuleEventHandlers, h as orderModules, i as DEFAULT_LOGGER_REDACT_PATHS, l as getPreset, m as hasModule, n as preloadResourcesAsync, p as getModuleState, r as ArcFactory, s as developmentPreset, t as preloadResources, u as productionPreset, v as collectModuleHealthChecks, x as resolveContribution, y as collectModuleScheduledJobs } from "../preloadResources-Bbp4QJ8V.mjs";
4
- import { a as lazyModuleExports, i as hasModuleExports, n as getModuleExports, o as lazyRequiredModuleExports, r as getOptionalModuleExports, t as defineModule } from "../module-BkQEesNQ.mjs";
5
- import { t as loadResources } from "../loadResources-CblF7xt2.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { r as mergeHealthChecks, t as healthPlugin } from "../health-ZRHeDHXH.mjs";
3
+ import { S as resolveModule, _ as describeResolvedModule, a as createApp, b as collectModuleWorkflows, c as edgePreset, d as testingPreset, f as workerPreset, g as subscribeModuleEventHandlers, h as orderModules, i as DEFAULT_LOGGER_REDACT_PATHS, l as getPreset, m as hasModule, n as preloadResourcesAsync, p as getModuleState, r as ArcFactory, s as developmentPreset, t as preloadResources, u as productionPreset, v as collectModuleHealthChecks, x as resolveContribution, y as collectModuleScheduledJobs } from "../preloadResources-f3boenVZ.mjs";
4
+ import { a as lazyModuleExports, i as hasModuleExports, n as getModuleExports, o as lazyRequiredModuleExports, r as getOptionalModuleExports, t as defineModule } from "../module-DpLJG2_N.mjs";
5
+ import { t as loadResources } from "../loadResources-BPfWiI5s.mjs";
6
6
  //#region src/factory/module/extend.ts
7
7
  /** Concatenate two contributions, resolving factories only when arc asks. */
8
8
  function mergeContribution(own, extra) {
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  //#region src/permissions/fields.ts
3
3
  /**
4
4
  * Field-Level Permissions
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { t as pluralize } from "./pluralize-2_U6QZQg.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { t as pluralize } from "./pluralize-CXWZIzTv.mjs";
3
3
  import { join } from "node:path";
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
5
5
  //#region src/cli/commands/generate/name-helpers.ts
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
2
- import { u as ValidationError } from "./errors-C_YhELhe.mjs";
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
+ import { u as ValidationError } from "./errors-BH7YU_9O.mjs";
3
3
  //#region src/utils/headers.ts
4
4
  /**
5
5
  * Canonical header typing + accessor.
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.41.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.41.1 | MIT | https://classytic.com */
2
2
  import { randomUUID } from "node:crypto";
3
3
  import fp from "fastify-plugin";
4
4
  //#region src/plugins/requestId.ts