@classytic/arc 2.35.0 → 2.36.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 (167) hide show
  1. package/dist/{BaseController-C-pofd0v.mjs → BaseController-CTJKm6Cb.mjs} +11 -11
  2. package/dist/{EventTransport-BrPeGUil.mjs → EventTransport-D23Uvhg4.mjs} +1 -1
  3. package/dist/{HookSystem-LlPm3Anm.mjs → HookSystem-DgwxNZTx.mjs} +2 -2
  4. package/dist/{ResourceRegistry-yuD1Ra53.mjs → ResourceRegistry-DNuYVbmv.mjs} +2 -2
  5. package/dist/{actionPermissions-LFuOra7W.mjs → actionPermissions-D97DniUQ.mjs} +6 -6
  6. package/dist/audit/index.d.mts +2 -2
  7. package/dist/audit/index.mjs +2 -2
  8. package/dist/auth/audit.mjs +1 -1
  9. package/dist/auth/index.d.mts +2 -2
  10. package/dist/auth/index.mjs +6 -6
  11. package/dist/auth/redis-session.mjs +1 -1
  12. package/dist/{authorizationDecision-DYXBBgtg.mjs → authorizationDecision-EsiY3nUu.mjs} +2 -2
  13. package/dist/{base-GZU3LlzP.d.mts → base-C-NL2fTi.d.mts} +15 -0
  14. package/dist/{buildHandler-Do9aMIvL.mjs → buildHandler-Dohd2JuY.mjs} +4 -4
  15. package/dist/cache/index.mjs +4 -4
  16. package/dist/{caching-cN5X9VEL.mjs → caching-CP3GLJ7U.mjs} +2 -2
  17. package/dist/cleanup/index.d.mts +1 -1
  18. package/dist/cleanup/index.mjs +4 -4
  19. package/dist/cli/commands/describe.d.mts +1 -1
  20. package/dist/cli/commands/describe.mjs +3 -3
  21. package/dist/cli/commands/docs.mjs +3 -3
  22. package/dist/cli/commands/doctor.mjs +1 -1
  23. package/dist/cli/commands/generate.mjs +2 -2
  24. package/dist/cli/commands/init.mjs +2 -2
  25. package/dist/cli/commands/introspect.mjs +2 -2
  26. package/dist/cli/index.mjs +3 -3
  27. package/dist/{constants-BhzLXCfN.mjs → constants-DUoKAGYD.mjs} +1 -1
  28. package/dist/context/index.mjs +3 -3
  29. package/dist/core/index.d.mts +2 -2
  30. package/dist/core/index.mjs +7 -7
  31. package/dist/{core-DdEvmmkY.mjs → core-DTXsiNTJ.mjs} +3 -3
  32. package/dist/{createActionRouter-EYWgd0ly.mjs → createActionRouter-CZz6JO93.mjs} +7 -7
  33. package/dist/{createAggregationRouter-ByOK9Iev.mjs → createAggregationRouter-DKrGv_EC.mjs} +7 -7
  34. package/dist/{defineAggregation-DoIijIFq.mjs → defineAggregation-CpQfcM8R.mjs} +1 -1
  35. package/dist/{defineResource-BOrGeocE.mjs → defineResource-DWzjyxb2.mjs} +18 -18
  36. package/dist/discovery/index.mjs +1 -1
  37. package/dist/docs/index.d.mts +1 -1
  38. package/dist/docs/index.mjs +3 -3
  39. package/dist/{elevation-tGIAldco.mjs → elevation-D_cmo80j.mjs} +4 -4
  40. package/dist/encryption/index.mjs +3 -3
  41. package/dist/{errorHandler-BbQ1nQdk.mjs → errorHandler-2RT0hLSI.mjs} +3 -3
  42. package/dist/{errors-CLid6atr.mjs → errors-DDKni6Tz.mjs} +1 -1
  43. package/dist/{eventPlugin-ClPn5kjn.mjs → eventPlugin-c3YwGzz9.mjs} +5 -5
  44. package/dist/events/index.mjs +5 -5
  45. package/dist/events/transports/redis-stream-entry.mjs +1 -1
  46. package/dist/events/transports/redis.mjs +1 -1
  47. package/dist/factory/index.d.mts +2 -2
  48. package/dist/factory/index.mjs +5 -5
  49. package/dist/{fastify-augmentation-CMMTL3cj.d.mts → fastify-augmentation-Bk_9PoiV.d.mts} +1 -1
  50. package/dist/{fields-UtpiJO5R.mjs → fields-DdP225wt.mjs} +1 -1
  51. package/dist/{generate-BoAVy3_b.mjs → generate-B1bKdcV9.mjs} +2 -2
  52. package/dist/{headers-DODWf7aC.mjs → headers-DKslnhey.mjs} +2 -2
  53. package/dist/{health-_Zs3R_Sb.mjs → health-k6NODS8f.mjs} +1 -1
  54. package/dist/hooks/index.d.mts +1 -1
  55. package/dist/hooks/index.mjs +2 -2
  56. package/dist/idempotency/index.mjs +4 -4
  57. package/dist/idempotency/redis.mjs +1 -1
  58. package/dist/{index-K7auNNW0.d.mts → index-BtYoMip1.d.mts} +20 -2
  59. package/dist/{index-C5K78SXo.d.mts → index-C01wWGJt.d.mts} +1 -1
  60. package/dist/{index-h-mTgMqy.d.mts → index-RdpLP71b.d.mts} +3 -3
  61. package/dist/{index-CJCcbADG.d.mts → index-eyg5WEcy.d.mts} +1 -1
  62. package/dist/index.d.mts +5 -5
  63. package/dist/index.mjs +11 -11
  64. package/dist/{init-Ce4R0ZGK.mjs → init-LuGxIbQ_.mjs} +1 -1
  65. package/dist/integrations/event-gateway.mjs +2 -2
  66. package/dist/integrations/index.d.mts +2 -2
  67. package/dist/integrations/index.mjs +1 -1
  68. package/dist/integrations/jobs/index.d.mts +1 -1
  69. package/dist/integrations/jobs/index.mjs +2 -2
  70. package/dist/integrations/mcp/index.d.mts +3 -3
  71. package/dist/integrations/mcp/index.mjs +2 -2
  72. package/dist/integrations/mcp/testing.d.mts +1 -1
  73. package/dist/integrations/mcp/testing.mjs +2 -2
  74. package/dist/integrations/streamline.mjs +3 -3
  75. package/dist/integrations/webhooks.d.mts +3 -1
  76. package/dist/integrations/webhooks.mjs +20 -6
  77. package/dist/integrations/websocket-pushref-redis.mjs +1 -1
  78. package/dist/integrations/websocket-redis.mjs +1 -1
  79. package/dist/integrations/websocket.mjs +1 -1
  80. package/dist/{interface-my7sxjw5.mjs → interface-B7awDx3b.mjs} +1 -1
  81. package/dist/{jsonBody-CVKA7C5m.mjs → jsonBody-CiHih3ZU.mjs} +2 -2
  82. package/dist/{keys-GlU7XpmG.mjs → keys-BcNl12HN.mjs} +1 -1
  83. package/dist/{loadResources-DdQb0qgV.mjs → loadResources-DGlfRQc9.mjs} +2 -2
  84. package/dist/{loadResourcesFromEntry-s6aGs6-0.mjs → loadResourcesFromEntry-VYPGSas8.mjs} +2 -2
  85. package/dist/logger/index.mjs +1 -1
  86. package/dist/{mcpPlugin-DkzZ7Nfx.mjs → mcpPlugin-NxSlc-Ks.mjs} +15 -15
  87. package/dist/{memory-BwedEXau.mjs → memory-BU-C-MV3.mjs} +2 -2
  88. package/dist/{metrics-5LNPvL3P.mjs → metrics-7_1GbJpl.mjs} +2 -2
  89. package/dist/middleware/index.d.mts +1 -1
  90. package/dist/middleware/index.mjs +3 -3
  91. package/dist/migrations/index.mjs +2 -2
  92. package/dist/{module-Bh5OC7ww.mjs → module-CQNHzE7g.mjs} +1 -1
  93. package/dist/{multipartBody-DjilSDAT.mjs → multipartBody-Bi5yqW0M.mjs} +1 -1
  94. package/dist/{openapi-ItLH12_L.mjs → openapi-RpNbPBL-.mjs} +6 -6
  95. package/dist/outbox-admin/index.d.mts +1 -1
  96. package/dist/outbox-admin/index.mjs +4 -4
  97. package/dist/{outbox-module-SGIZz6oS.mjs → outbox-module-ClcFrq98.mjs} +4 -4
  98. package/dist/permissions/index.d.mts +2 -2
  99. package/dist/permissions/index.mjs +5 -5
  100. package/dist/{permissions-CpSBlFXZ.mjs → permissions-DgPrZsJh.mjs} +36 -9
  101. package/dist/{pipe-DNOuCfAs.mjs → pipe-Cjy1UiXX.mjs} +2 -2
  102. package/dist/pipeline/index.d.mts +1 -1
  103. package/dist/pipeline/index.mjs +2 -2
  104. package/dist/plugins/index.d.mts +3 -3
  105. package/dist/plugins/index.mjs +16 -16
  106. package/dist/plugins/response-cache.mjs +2 -2
  107. package/dist/plugins/tracing-entry.mjs +2 -2
  108. package/dist/{pluralize-DGAQQKL8.mjs → pluralize-B7m0dPm8.mjs} +1 -1
  109. package/dist/{preloadResources--ZtY9pe9.d.mts → preloadResources-BuutdWgr.d.mts} +1 -1
  110. package/dist/{preloadResources-DYMzmUk1.mjs → preloadResources-CjnW4iIX.mjs} +79 -24
  111. package/dist/presets/filesUpload.d.mts +2 -2
  112. package/dist/presets/filesUpload.mjs +5 -5
  113. package/dist/presets/index.d.mts +2 -2
  114. package/dist/presets/index.mjs +2 -2
  115. package/dist/presets/multiTenant.d.mts +1 -1
  116. package/dist/presets/multiTenant.mjs +3 -3
  117. package/dist/presets/search.d.mts +2 -2
  118. package/dist/presets/search.mjs +2 -2
  119. package/dist/{presets-Bi0Z6Iq8.mjs → presets-CsGg8B58.mjs} +4 -4
  120. package/dist/{projection-aevMua7Q.mjs → projection-koISNyQo.mjs} +2 -2
  121. package/dist/{queryCachePlugin-BI7Z88Cx.mjs → queryCachePlugin-DHueQT9O.mjs} +5 -5
  122. package/dist/{rateLimitKey-pyevMUVf.mjs → rateLimitKey-Bma8VXDO.mjs} +1 -1
  123. package/dist/{realtime-Cfl2bVjj.mjs → realtime-BBoC91Bz.mjs} +9 -9
  124. package/dist/{registerRoute-u1opU66a.mjs → registerRoute-BTgORTlR.mjs} +5 -5
  125. package/dist/registry/index.d.mts +2 -2
  126. package/dist/registry/index.mjs +3 -3
  127. package/dist/{registry-B4sf9Rfm.mjs → registry-BzvRCYS6.mjs} +2 -2
  128. package/dist/{renewingLease-5ESPMxp0.mjs → renewingLease-CgIGh0Ab.mjs} +1 -1
  129. package/dist/{replyHelpers-2jfmMnnV.mjs → replyHelpers-BN16KPHr.mjs} +2 -2
  130. package/dist/{requestContext-DzOUGNdY.mjs → requestContext-B93dmpf0.mjs} +1 -1
  131. package/dist/{rolldown-runtime-CEvvVXTC.mjs → rolldown-runtime-JJWfp8rp.mjs} +1 -1
  132. package/dist/{runtimeCapabilities-BagWc3TI.mjs → runtimeCapabilities-jK99Ciw_.mjs} +1 -1
  133. package/dist/{schedules-BLpZLWGF.mjs → schedules-CKKEL21P.mjs} +3 -3
  134. package/dist/{schemaConverter-D2_bHGil.mjs → schemaConverter-gg0_aUPF.mjs} +1 -1
  135. package/dist/{schemaIR-s3-ouZmP.mjs → schemaIR-CngYvpCF.mjs} +2 -2
  136. package/dist/schemas/index.mjs +1 -1
  137. package/dist/scim/index.mjs +2 -2
  138. package/dist/scope/index.mjs +5 -5
  139. package/dist/{scope-DgepeCv6.mjs → scope-B1RsHdjF.mjs} +4 -4
  140. package/dist/{simpleEqualityMatcher-BO-sFTQf.mjs → simpleEqualityMatcher-_9NAMHUD.mjs} +1 -1
  141. package/dist/{sse-DUIP1XH6.mjs → sse-Bxt03Hk5.mjs} +5 -5
  142. package/dist/{sseStream-ByFGyIVr.mjs → sseStream-BMHTLlhR.mjs} +2 -2
  143. package/dist/{store-helpers-kIJCY0wI.mjs → store-helpers-Brt8OxWZ.mjs} +1 -1
  144. package/dist/{streaming-DOpZVht6.mjs → streaming-CiTJW8kZ.mjs} +1 -1
  145. package/dist/{subscribe-helpers-Dh2BnzJf.mjs → subscribe-helpers-B4fNHRNc.mjs} +11 -5
  146. package/dist/sync/changelog.mjs +1 -1
  147. package/dist/testing/cleanupStoreContract.mjs +1 -1
  148. package/dist/testing/index.d.mts +3 -3
  149. package/dist/testing/index.mjs +10 -10
  150. package/dist/testing/outboxStoreContract.mjs +1 -1
  151. package/dist/testing/storageContract.mjs +1 -1
  152. package/dist/{transactionContext-BTZzEcRo.mjs → transactionContext-D2HwJM2z.mjs} +1 -1
  153. package/dist/{typeGuards-B-_jqaMi.mjs → typeGuards-IE1laMDf.mjs} +1 -1
  154. package/dist/types/index.d.mts +2 -2
  155. package/dist/types/index.mjs +1 -1
  156. package/dist/types/storage.mjs +1 -1
  157. package/dist/{types-GY4kATJb.mjs → types-B8lwJv9Q.mjs} +4 -4
  158. package/dist/{types-DSvHH0uR.d.mts → types-BXnTOsXP.d.mts} +1 -1
  159. package/dist/usage/index.d.mts +1 -1
  160. package/dist/usage/index.mjs +0 -0
  161. package/dist/{userHelpers-AKcB4V03.mjs → userHelpers-xQAi5bPF.mjs} +1 -1
  162. package/dist/utils/index.d.mts +2 -2
  163. package/dist/utils/index.mjs +11 -11
  164. package/dist/{utils-CBK9HQOI.mjs → utils-DgNFsJ2c.mjs} +3 -3
  165. package/dist/{validate-dosAIvQU.mjs → validate-DI3L5V9w.mjs} +2 -2
  166. package/dist/{versioning-BbTs4pwM.mjs → versioning-COpAyfpZ.mjs} +3 -3
  167. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { B as requireAuth, F as allowPublic } from "../permissions-CpSBlFXZ.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { B as requireAuth, F as allowPublic } from "../permissions-DgPrZsJh.mjs";
3
3
  //#region src/presets/search.ts
4
4
  const BUILTINS = [
5
5
  {
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { l as UnauthorizedError } from "./errors-CLid6atr.mjs";
3
- import { b as isElevated, n as PUBLIC_SCOPE } from "./types-GY4kATJb.mjs";
4
- import { B as requireAuth, F as allowPublic, U as requireRoles } from "./permissions-CpSBlFXZ.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { l as UnauthorizedError } from "./errors-DDKni6Tz.mjs";
3
+ import { b as isElevated, n as PUBLIC_SCOPE } from "./types-B8lwJv9Q.mjs";
4
+ import { B as requireAuth, F as allowPublic, U as requireRoles } from "./permissions-DgPrZsJh.mjs";
5
5
  import { multiTenantPreset } from "./presets/multiTenant.mjs";
6
6
  //#region src/presets/ownedByUser.ts
7
7
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { c as getOrgId, f as getScopeContextMap, g as getUserId, m as getTeamId, x as isMember } from "./types-GY4kATJb.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { c as getOrgId, f as getScopeContextMap, g as getUserId, m as getTeamId, x as isMember } from "./types-B8lwJv9Q.mjs";
3
3
  //#region src/scope/projection.ts
4
4
  /**
5
5
  * Compute the request-scope projection. Returns `undefined` when no
@@ -1,8 +1,8 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-CEvvVXTC.mjs";
3
- import { t as hasEvents } from "./typeGuards-B-_jqaMi.mjs";
4
- import { i as versionKey, r as tagVersionKey } from "./keys-GlU7XpmG.mjs";
5
- import { t as MemoryCacheStore } from "./memory-BwedEXau.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
3
+ import { t as hasEvents } from "./typeGuards-IE1laMDf.mjs";
4
+ import { i as versionKey, r as tagVersionKey } from "./keys-BcNl12HN.mjs";
5
+ import { t as MemoryCacheStore } from "./memory-BU-C-MV3.mjs";
6
6
  import fp from "fastify-plugin";
7
7
  //#region src/cache/QueryCache.ts
8
8
  var QueryCache = class {
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  //#region src/scope/rateLimitKey.ts
3
3
  function createTenantKeyGenerator(opts) {
4
4
  if (opts?.strategy) return opts.strategy;
@@ -1,13 +1,13 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-CEvvVXTC.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { n as evaluateAndApplyPermission } from "./authorizationDecision-DYXBBgtg.mjs";
5
- import { n as getUserRoles } from "./userHelpers-AKcB4V03.mjs";
6
- import { c as getOrgId } from "./types-GY4kATJb.mjs";
7
- import { t as simpleEqualityMatcher } from "./simpleEqualityMatcher-BO-sFTQf.mjs";
8
- import { t as applyFieldReadPermissions } from "./fields-UtpiJO5R.mjs";
9
- import { a as promoteStreamTokenToHeader } from "./streaming-DOpZVht6.mjs";
10
- import { t as openSseStream } from "./sseStream-ByFGyIVr.mjs";
4
+ import { n as evaluateAndApplyPermission } from "./authorizationDecision-EsiY3nUu.mjs";
5
+ import { n as getUserRoles } from "./userHelpers-xQAi5bPF.mjs";
6
+ import { c as getOrgId } from "./types-B8lwJv9Q.mjs";
7
+ import { t as simpleEqualityMatcher } from "./simpleEqualityMatcher-_9NAMHUD.mjs";
8
+ import { t as applyFieldReadPermissions } from "./fields-DdP225wt.mjs";
9
+ import { a as promoteStreamTokenToHeader } from "./streaming-CiTJW8kZ.mjs";
10
+ import { t as openSseStream } from "./sseStream-BMHTLlhR.mjs";
11
11
  import fp from "fastify-plugin";
12
12
  //#region src/plugins/realtime.ts
13
13
  var realtime_exports = /* @__PURE__ */ __exportAll({
@@ -1,8 +1,8 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { n as evaluateAndApplyPermission } from "./authorizationDecision-DYXBBgtg.mjs";
3
- import { f as createError } from "./errors-CLid6atr.mjs";
4
- import { u as getRequestScope } from "./types-GY4kATJb.mjs";
5
- import { n as requestContext } from "./requestContext-DzOUGNdY.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { n as evaluateAndApplyPermission } from "./authorizationDecision-EsiY3nUu.mjs";
3
+ import { f as createError } from "./errors-DDKni6Tz.mjs";
4
+ import { u as getRequestScope } from "./types-B8lwJv9Q.mjs";
5
+ import { n as requestContext } from "./requestContext-B93dmpf0.mjs";
6
6
  //#region src/core/middlewares/arcDecorator.ts
7
7
  /**
8
8
  * Build the `arcDecorator` preHandler for a resource.
@@ -1,6 +1,6 @@
1
1
 
2
- import { K as ResolvedTenantPurge, R as RegisterOptions, V as ResourceDefinition, X as CrudRouteKey, k as IntrospectionPluginOptions, p as RegistryEntry, z as ResourceRegistry } from "../index-C5K78SXo.mjs";
3
- import "../fastify-augmentation-CMMTL3cj.mjs";
2
+ import { K as ResolvedTenantPurge, R as RegisterOptions, V as ResourceDefinition, X as CrudRouteKey, k as IntrospectionPluginOptions, p as RegistryEntry, z as ResourceRegistry } from "../index-C01wWGJt.mjs";
3
+ import "../fastify-augmentation-Bk_9PoiV.mjs";
4
4
  import { TenantPurgeProgress, TenantPurgeStrategy } from "@classytic/repo-core/repository";
5
5
  import { FastifyPluginAsync } from "fastify";
6
6
  //#region src/registry/assertNoTenantData.d.ts
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { a as cascadeDeleteForOrganization, c as assertNoTenantData, i as introspectionPlugin_default, n as buildResourceManifestFromRegistry, o as getCascadingResources, r as introspectionPlugin, s as getCascadingResourcesWithMetadata, t as buildResourceManifest } from "../registry-B4sf9Rfm.mjs";
3
- import { t as ResourceRegistry } from "../ResourceRegistry-yuD1Ra53.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { a as cascadeDeleteForOrganization, c as assertNoTenantData, i as introspectionPlugin_default, n as buildResourceManifestFromRegistry, o as getCascadingResources, r as introspectionPlugin, s as getCascadingResourcesWithMetadata, t as buildResourceManifest } from "../registry-BzvRCYS6.mjs";
3
+ import { t as ResourceRegistry } from "../ResourceRegistry-DNuYVbmv.mjs";
4
4
  export { ResourceRegistry, assertNoTenantData, buildResourceManifest, buildResourceManifestFromRegistry, cascadeDeleteForOrganization, getCascadingResources, getCascadingResourcesWithMetadata, introspectionPlugin_default as introspectionPlugin, introspectionPlugin as introspectionPluginFn };
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as CRUD_OPERATIONS } from "./constants-BhzLXCfN.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as CRUD_OPERATIONS } from "./constants-DUoKAGYD.mjs";
3
3
  import fp from "fastify-plugin";
4
4
  //#region src/registry/assertNoTenantData.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  //#region src/lock/renewingLease.ts
3
3
  /**
4
4
  * Start renewing an ALREADY-ACQUIRED lease. The caller performed the
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-CEvvVXTC.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
3
3
  import { toCanonicalList } from "@classytic/repo-core/pagination";
4
4
  import fp from "fastify-plugin";
5
5
  //#region src/plugins/replyHelpers.ts
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
3
  //#region src/context/requestContext.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import "node:module";
3
3
  //#region \0rolldown/runtime.js
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  //#region src/utils/runtimeCapabilities.ts
3
3
  /**
4
4
  * `Symbol.for` so declarations from two arc copies in one dependency graph
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-CEvvVXTC.mjs";
3
- import { t as startRenewingLease } from "./renewingLease-5ESPMxp0.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
3
+ import { t as startRenewingLease } from "./renewingLease-CgIGh0Ab.mjs";
4
4
  import fp from "fastify-plugin";
5
5
  //#region src/plugins/schedules.ts
6
6
  var schedules_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { arcLog } from "./logger/index.mjs";
3
3
  //#region src/utils/schemaConverter.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { o as toJsonSchema } from "./schemaConverter-D2_bHGil.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { o as toJsonSchema } from "./schemaConverter-gg0_aUPF.mjs";
3
3
  //#region src/core/schemaIR.ts
4
4
  /**
5
5
  * Schema IR — one canonical representation, two adapters.
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { errorContractSchema, errorDetailSchema } from "@classytic/repo-core/errors";
3
3
  import { Type, Type as Type$1 } from "typebox";
4
4
  //#region src/schemas/index.ts
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as parseJsonBody } from "../jsonBody-CVKA7C5m.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as parseJsonBody } from "../jsonBody-CiHih3ZU.mjs";
3
3
  import fp from "fastify-plugin";
4
4
  //#region src/scim/errors.ts
5
5
  var ScimError = class extends Error {
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { C as isService, D as requireUserId, E as requireTeamId, O as scopeFirstCtx, S as isOrgInScope, T as requireOrgId, _ as getUserRoles, a as getDPoPJkt, b as isElevated, c as getOrgId, d as getScopeContext, f as getScopeContextMap, g as getUserId, h as getTenantFromRequest, i as getClientId, l as getOrgRoles, m as getTeamId, n as PUBLIC_SCOPE, o as getMandate, p as getServiceScopes, r as getAncestorOrgIds, s as getOrgContext, t as AUTHENTICATED_SCOPE, u as getRequestScope, v as hasOrgAccess, w as requireClientId, x as isMember, y as isAuthenticated } from "../types-GY4kATJb.mjs";
3
- import { n as elevation_default, t as elevationPlugin } from "../elevation-tGIAldco.mjs";
4
- import { t as createTenantKeyGenerator } from "../rateLimitKey-pyevMUVf.mjs";
5
- import { t as resolveOrgFromHeader } from "../scope-DgepeCv6.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { C as isService, D as requireUserId, E as requireTeamId, O as scopeFirstCtx, S as isOrgInScope, T as requireOrgId, _ as getUserRoles, a as getDPoPJkt, b as isElevated, c as getOrgId, d as getScopeContext, f as getScopeContextMap, g as getUserId, h as getTenantFromRequest, i as getClientId, l as getOrgRoles, m as getTeamId, n as PUBLIC_SCOPE, o as getMandate, p as getServiceScopes, r as getAncestorOrgIds, s as getOrgContext, t as AUTHENTICATED_SCOPE, u as getRequestScope, v as hasOrgAccess, w as requireClientId, x as isMember, y as isAuthenticated } from "../types-B8lwJv9Q.mjs";
3
+ import { n as elevation_default, t as elevationPlugin } from "../elevation-D_cmo80j.mjs";
4
+ import { t as createTenantKeyGenerator } from "../rateLimitKey-Bma8VXDO.mjs";
5
+ import { t as resolveOrgFromHeader } from "../scope-B1RsHdjF.mjs";
6
6
  export { AUTHENTICATED_SCOPE, PUBLIC_SCOPE, createTenantKeyGenerator, elevation_default as elevationPlugin, elevationPlugin as elevationPluginFn, getAncestorOrgIds, getClientId, getDPoPJkt, getMandate, getOrgContext, getOrgId, getOrgRoles, getRequestScope, getScopeContext, getScopeContextMap, getServiceScopes, getTeamId, getTenantFromRequest, getUserId, getUserRoles, hasOrgAccess, isAuthenticated, isElevated, isMember, isOrgInScope, isService, requireClientId, requireOrgId, requireTeamId, requireUserId, resolveOrgFromHeader, scopeFirstCtx };
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { a as OrgAccessDeniedError, l as UnauthorizedError } from "./errors-CLid6atr.mjs";
3
- import { n as requireSingleHeaderValue } from "./headers-DODWf7aC.mjs";
4
- import { n as getUserRoles } from "./userHelpers-AKcB4V03.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { a as OrgAccessDeniedError, l as UnauthorizedError } from "./errors-DDKni6Tz.mjs";
3
+ import { n as requireSingleHeaderValue } from "./headers-DKslnhey.mjs";
4
+ import { n as getUserRoles } from "./userHelpers-xQAi5bPF.mjs";
5
5
  //#region src/scope/resolveOrgFromHeader.ts
6
6
  /**
7
7
  * Create a preHandler hook that resolves org scope from a header.
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  //#region src/utils/simpleEqualityMatcher.ts
3
3
  /**
4
4
  * `simpleEqualityMatcher` — a minimal, dialect-agnostic flat-key equality
@@ -1,9 +1,9 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-CEvvVXTC.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { c as getOrgId, n as PUBLIC_SCOPE } from "./types-GY4kATJb.mjs";
5
- import { a as promoteStreamTokenToHeader } from "./streaming-DOpZVht6.mjs";
6
- import { t as openSseStream } from "./sseStream-ByFGyIVr.mjs";
4
+ import { c as getOrgId, n as PUBLIC_SCOPE } from "./types-B8lwJv9Q.mjs";
5
+ import { a as promoteStreamTokenToHeader } from "./streaming-CiTJW8kZ.mjs";
6
+ import { t as openSseStream } from "./sseStream-BMHTLlhR.mjs";
7
7
  import fp from "fastify-plugin";
8
8
  //#region src/plugins/sse.ts
9
9
  var sse_exports = /* @__PURE__ */ __exportAll({
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { n as forwardedStreamHeaders } from "./streaming-DOpZVht6.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { n as forwardedStreamHeaders } from "./streaming-CiTJW8kZ.mjs";
3
3
  //#region src/utils/sseStream.ts
4
4
  /**
5
5
  * Take over the reply socket and open an SSE stream. Call ONLY after every
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  //#region src/utils/store-helpers.ts
3
3
  /**
4
4
  * Classify an error thrown by `getOne` / `getById` / `update` as a
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { Readable } from "node:stream";
3
3
  //#region src/utils/streaming.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { r as createEvent } from "./EventTransport-BrPeGUil.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { r as createEvent } from "./EventTransport-D23Uvhg4.mjs";
3
3
  //#region src/events/defineEvent.ts
4
4
  /**
5
5
  * Typed event declarations, a registry for introspection, and `.create()` to
@@ -137,9 +137,15 @@ function validatePayload(payload, schema) {
137
137
  if (expectedType) {
138
138
  const value = record[key];
139
139
  const actualType = Array.isArray(value) ? "array" : typeof value;
140
- if (expectedType === "integer") {
141
- if (actualType !== "number" || !Number.isInteger(value)) errors.push(`Field '${key}': expected integer, got ${actualType}`);
142
- } else if (expectedType !== actualType) errors.push(`Field '${key}': expected ${expectedType}, got ${actualType}`);
140
+ /**
141
+ * `type` may be a UNION (`['string','null']`) — that is how every
142
+ * nullable field compiles. Comparing the array to a `typeof` string
143
+ * is never equal, so a union-typed field failed for EVERY value it
144
+ * allows, and the array stringified into the message as the
145
+ * self-contradictory "expected string,null, got string".
146
+ */
147
+ const allowed = Array.isArray(expectedType) ? expectedType : [expectedType];
148
+ if (!allowed.some((t) => t === "integer" ? actualType === "number" && Number.isInteger(value) : t === actualType)) errors.push(`Field '${key}': expected ${allowed.join(" | ")}, got ${actualType}`);
143
149
  }
144
150
  }
145
151
  }
@@ -1,3 +1,3 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { CursorExpiredError, MemoryChangeLogStore } from "@classytic/repo-core/sync";
3
3
  export { CursorExpiredError, MemoryChangeLogStore };
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { afterAll, beforeAll, describe, expect, it } from "vitest";
3
3
  //#region src/testing/cleanupStoreContract.ts
4
4
  /**
@@ -1,10 +1,10 @@
1
1
 
2
2
  import { i as RequestScope } from "../types-Ddl9OjmE.mjs";
3
- import { l as PermissionCheck, t as AnyRecord } from "../base-GZU3LlzP.mjs";
4
- import { V as ResourceDefinition } from "../index-C5K78SXo.mjs";
3
+ import { l as PermissionCheck, t as AnyRecord } from "../base-C-NL2fTi.mjs";
4
+ import { V as ResourceDefinition } from "../index-C01wWGJt.mjs";
5
5
  import { n as ArcModuleInput, o as ModuleDisposer, s as ModuleSetupContext } from "../types-DDD5RKTu.mjs";
6
6
  import "../index-C50BUxKs.mjs";
7
- import { n as preloadResourcesAsync, r as CreateAppOptions, t as preloadResources } from "../preloadResources--ZtY9pe9.mjs";
7
+ import { n as preloadResourcesAsync, r as CreateAppOptions, t as preloadResources } from "../preloadResources-BuutdWgr.mjs";
8
8
  import { StorageContractSetup, StorageContractSetupResult, runStorageContract } from "./storageContract.mjs";
9
9
  import { StandardRepo } from "@classytic/repo-core/repository";
10
10
  import { FastifyInstance, FastifyServerOptions } from "fastify";
@@ -1,12 +1,12 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as CRUD_OPERATIONS } from "../constants-BhzLXCfN.mjs";
3
- import { g as getUserId } from "../types-GY4kATJb.mjs";
4
- import { t as BaseController } from "../BaseController-C-pofd0v.mjs";
5
- import { t as defineResource } from "../defineResource-BOrGeocE.mjs";
6
- import { t as defineAggregation } from "../defineAggregation-DoIijIFq.mjs";
7
- import { E as requireOrgRole } from "../permissions-CpSBlFXZ.mjs";
8
- import { a as createApp, n as preloadResourcesAsync, t as preloadResources } from "../preloadResources-DYMzmUk1.mjs";
9
- import { n as getModuleExports } from "../module-Bh5OC7ww.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as CRUD_OPERATIONS } from "../constants-DUoKAGYD.mjs";
3
+ import { g as getUserId } from "../types-B8lwJv9Q.mjs";
4
+ import { t as BaseController } from "../BaseController-CTJKm6Cb.mjs";
5
+ import { t as defineResource } from "../defineResource-DWzjyxb2.mjs";
6
+ import { t as defineAggregation } from "../defineAggregation-CpQfcM8R.mjs";
7
+ import { E as requireOrgRole } from "../permissions-DgPrZsJh.mjs";
8
+ import { a as createApp, n as preloadResourcesAsync, t as preloadResources } from "../preloadResources-CjnW4iIX.mjs";
9
+ import { n as getModuleExports } from "../module-CQNHzE7g.mjs";
10
10
  import { runStorageContract } from "./storageContract.mjs";
11
11
  import Fastify from "fastify";
12
12
  import { afterAll, describe, expect, it, vi } from "vitest";
@@ -1504,7 +1504,7 @@ function pickDefaultAuth(authMode, callerAuth) {
1504
1504
  };
1505
1505
  }
1506
1506
  async function createTestApp(options = {}) {
1507
- const { createApp } = await import("../preloadResources-DYMzmUk1.mjs").then((n) => n.o);
1507
+ const { createApp } = await import("../preloadResources-CjnW4iIX.mjs").then((n) => n.o);
1508
1508
  const { resources = [], db = "in-memory", connectMongoose = false, authMode = "jwt", defaultOrgId, plugins, auth: callerAuth, ...appOptions } = options;
1509
1509
  let dbHandle;
1510
1510
  let dbUri;
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { OutboxOwnershipError } from "@classytic/primitives/outbox";
3
3
  import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest";
4
4
  //#region src/testing/outboxStoreContract.ts
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { afterAll, beforeAll, describe, expect, it } from "vitest";
3
3
  //#region src/testing/storageContract.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
3
  //#region src/context/transactionContext.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  //#region src/utils/typeGuards.ts
3
3
  /** Check if fastify has the events plugin registered */
4
4
  function hasEvents(instance) {
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { i as RequestScope } from "../types-Ddl9OjmE.mjs";
3
- import { a as UserLike, c as DataPolicy, d as UserBase, i as ObjectId, l as PermissionCheck, n as ArcRequest, o as UserOrganization, r as JWTPayload, s as AuthorizationDecision, t as AnyRecord, u as PermissionContext } from "../base-GZU3LlzP.mjs";
4
- import { $ as OpenApiSchemas, A as RequestIdOptions, An as WriteVerbKey, At as RouteDefinition, C as RequestContext, D as HealthCheck, Dn as MutationWriteContext, Dt as ActionEntry, E as GracefulShutdownOptions, Et as ActionDefinition, F as FastifyWithDecorators, Fn as IControllerResponse, Ft as AuthPluginOptions, G as OnTenantDeleteConfig, H as CrudController, I as MiddlewareHandler, In as IRequestContext, It as Authenticator, J as PresetHook, K as ResolvedTenantPurge, L as RequestWithExtras, Ln as RawRouteHandler, Lt as AuthenticatorContext, M as EventsDecorator, Mn as ControllerLike, Mt as RouteMethod, N as FastifyRequestExtras, Nn as FastifyHandler, Nt as RateLimitConfig, O as HealthOptions, On as ResourceWrites, Ot as ActionHandlerFn, P as FastifyWithAuth, Pn as IController, Pt as AuthHelpers, Q as MiddlewareConfig, Rn as RouteHandler, Rt as JwtContext, S as QueryParserInterface, T as CrudRouterOptions, Tt as ResourceCacheConfig, U as ResourceConfig, W as ResourcePermissions, X as CrudRouteKey, Y as PresetResult, Z as CrudSchemas, _ as ControllerQueryOptions, a as InferAdapterDoc, at as ResourceExtensions, b as ParsedQuery, c as TypedController, d as PaginationResult, et as RouteSchemaOptions, f as IntrospectionData, g as ArcInternalMetadata, h as ResourceMetadata, i as ValidationResult, it as ResourceHooks, j as ArcDecorator, jn as ControllerHandler, jt as RouteMcpConfig, k as IntrospectionPluginOptions, kn as WriteContext, kt as ActionsMap, l as TypedRepository, m as RegistryStats, n as ConfigError, nt as FieldRule, o as InferDocType, ot as EventDefinition, p as RegistryEntry, q as PresetFunction, r as ValidateOptions, rt as ResourceHookContext, s as InferResourceDoc, t as RouteHandlerMethod, tt as ArcFieldRule, u as TypedResourceConfig, v as LookupOption, w as ServiceContext, x as PopulateOption, xn as BaseControllerOptions, y as OwnershipCheck, zt as TokenPair } from "../index-C5K78SXo.mjs";
3
+ import { a as UserLike, c as DataPolicy, d as UserBase, i as ObjectId, l as PermissionCheck, n as ArcRequest, o as UserOrganization, r as JWTPayload, s as AuthorizationDecision, t as AnyRecord, u as PermissionContext } from "../base-C-NL2fTi.mjs";
4
+ import { $ as OpenApiSchemas, A as RequestIdOptions, An as WriteVerbKey, At as RouteDefinition, C as RequestContext, D as HealthCheck, Dn as MutationWriteContext, Dt as ActionEntry, E as GracefulShutdownOptions, Et as ActionDefinition, F as FastifyWithDecorators, Fn as IControllerResponse, Ft as AuthPluginOptions, G as OnTenantDeleteConfig, H as CrudController, I as MiddlewareHandler, In as IRequestContext, It as Authenticator, J as PresetHook, K as ResolvedTenantPurge, L as RequestWithExtras, Ln as RawRouteHandler, Lt as AuthenticatorContext, M as EventsDecorator, Mn as ControllerLike, Mt as RouteMethod, N as FastifyRequestExtras, Nn as FastifyHandler, Nt as RateLimitConfig, O as HealthOptions, On as ResourceWrites, Ot as ActionHandlerFn, P as FastifyWithAuth, Pn as IController, Pt as AuthHelpers, Q as MiddlewareConfig, Rn as RouteHandler, Rt as JwtContext, S as QueryParserInterface, T as CrudRouterOptions, Tt as ResourceCacheConfig, U as ResourceConfig, W as ResourcePermissions, X as CrudRouteKey, Y as PresetResult, Z as CrudSchemas, _ as ControllerQueryOptions, a as InferAdapterDoc, at as ResourceExtensions, b as ParsedQuery, c as TypedController, d as PaginationResult, et as RouteSchemaOptions, f as IntrospectionData, g as ArcInternalMetadata, h as ResourceMetadata, i as ValidationResult, it as ResourceHooks, j as ArcDecorator, jn as ControllerHandler, jt as RouteMcpConfig, k as IntrospectionPluginOptions, kn as WriteContext, kt as ActionsMap, l as TypedRepository, m as RegistryStats, n as ConfigError, nt as FieldRule, o as InferDocType, ot as EventDefinition, p as RegistryEntry, q as PresetFunction, r as ValidateOptions, rt as ResourceHookContext, s as InferResourceDoc, t as RouteHandlerMethod, tt as ArcFieldRule, u as TypedResourceConfig, v as LookupOption, w as ServiceContext, x as PopulateOption, xn as BaseControllerOptions, y as OwnershipCheck, zt as TokenPair } from "../index-C01wWGJt.mjs";
5
5
  import { n as ElevationOptions, t as ElevationEvent } from "../elevation-BXCfVcNG.mjs";
6
6
  export type { ActionDefinition, ActionEntry, ActionHandlerFn, ActionsMap, AnyRecord, ArcDecorator, ArcFieldRule, ArcInternalMetadata, ArcRequest, AuthHelpers, AuthPluginOptions, Authenticator, AuthenticatorContext, AuthorizationDecision, BaseControllerOptions, ConfigError, ControllerHandler, ControllerLike, ControllerQueryOptions, CrudController, CrudRouteKey, CrudRouterOptions, CrudSchemas, DataPolicy, ElevationEvent, ElevationOptions, EventDefinition, EventsDecorator, FastifyHandler, FastifyRequestExtras, FastifyWithAuth, FastifyWithDecorators, FieldRule, GracefulShutdownOptions, HealthCheck, HealthOptions, IController, IControllerResponse, IRequestContext, InferAdapterDoc, InferDocType, InferResourceDoc, IntrospectionData, IntrospectionPluginOptions, JWTPayload, JwtContext, LookupOption, MiddlewareConfig, MiddlewareHandler, MutationWriteContext, ObjectId, OnTenantDeleteConfig, OpenApiSchemas, OwnershipCheck, PaginationResult, ParsedQuery, PermissionCheck, PermissionContext, PopulateOption, PresetFunction, PresetHook, PresetResult, QueryParserInterface, RateLimitConfig, RawRouteHandler, RegistryEntry, RegistryStats, RequestContext, RequestIdOptions, RequestScope, RequestWithExtras, ResolvedTenantPurge, ResourceCacheConfig, ResourceConfig, ResourceExtensions, ResourceHookContext, ResourceHooks, ResourceMetadata, ResourcePermissions, ResourceWrites, RouteDefinition, RouteHandler, RouteHandlerMethod, RouteMcpConfig, RouteMethod, RouteSchemaOptions, ServiceContext, TokenPair, TypedController, TypedRepository, TypedResourceConfig, UserBase, UserLike, UserOrganization, ValidateOptions, ValidationResult, WriteContext, WriteVerbKey };
@@ -1,2 +1,2 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  export {};
@@ -1,2 +1,2 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  export {};
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { l as UnauthorizedError, o as OrgRequiredError } from "./errors-CLid6atr.mjs";
3
- import { n as requireSingleHeaderValue } from "./headers-DODWf7aC.mjs";
4
- import { t as getUserId$1 } from "./userHelpers-AKcB4V03.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { l as UnauthorizedError, o as OrgRequiredError } from "./errors-DDKni6Tz.mjs";
3
+ import { n as requireSingleHeaderValue } from "./headers-DKslnhey.mjs";
4
+ import { t as getUserId$1 } from "./userHelpers-xQAi5bPF.mjs";
5
5
  //#region src/scope/types.ts
6
6
  /**
7
7
  * Request Scope — The One Standard
@@ -1,5 +1,5 @@
1
1
 
2
- import { V as ResourceDefinition } from "./index-C5K78SXo.mjs";
2
+ import { V as ResourceDefinition } from "./index-C01wWGJt.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/integrations/mcp/types.d.ts
5
5
  /** Behavioral hints for MCP clients (tool annotations per MCP spec) */
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { i as RequestScope } from "../types-Ddl9OjmE.mjs";
3
- import { l as PermissionCheck, u as PermissionContext } from "../base-GZU3LlzP.mjs";
3
+ import { l as PermissionCheck, u as PermissionContext } from "../base-C-NL2fTi.mjs";
4
4
  import { UsageBucket, UsageStore, usagePeriod } from "@classytic/repo-core/usage";
5
5
  import { FastifyPluginAsync, FastifyRequest } from "fastify";
6
6
  //#region src/usage/requireQuota.d.ts
Binary file
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
2
  //#region src/utils/userHelpers.ts
3
3
  /**
4
4
  * Extract a user ID from a user object. Accepts `id` or `_id` — returns
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { F as getHeader, I as requireSingleHeaderValue, P as ArcHeaders } from "../types-Ddl9OjmE.mjs";
3
- import { f as getUserId, m as normalizeRoles, p as getUserRoles, t as AnyRecord } from "../base-GZU3LlzP.mjs";
4
- import { $ as OpenApiSchemas, S as QueryParserInterface, b as ParsedQuery } from "../index-C5K78SXo.mjs";
3
+ import { f as getUserId, m as normalizeRoles, p as getUserRoles, t as AnyRecord } from "../base-C-NL2fTi.mjs";
4
+ import { $ as OpenApiSchemas, S as QueryParserInterface, b as ParsedQuery } from "../index-C01wWGJt.mjs";
5
5
  import { n as ErrorMapper } from "../errorHandler-DI5AN2b5.mjs";
6
6
  import { a as NotFoundError, c as RateLimitError, d as ValidationError, f as createDomainError, i as ForbiddenError, l as ServiceUnavailableError, m as isArcError, n as ConflictError, o as OrgAccessDeniedError, p as createError, r as ErrorOptions, s as OrgRequiredError, t as ArcError, u as UnauthorizedError } from "../errors-BGdVwP25.mjs";
7
7
  import { errorContractSchema, errorDetailSchema } from "@classytic/repo-core/errors";
@@ -1,12 +1,12 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { a as OrgAccessDeniedError, c as ServiceUnavailableError, d as createDomainError, f as createError, i as NotFoundError, l as UnauthorizedError, n as ConflictError, o as OrgRequiredError, p as isArcError, r as ForbiddenError, s as RateLimitError, t as ArcError, u as ValidationError } from "../errors-CLid6atr.mjs";
3
- import { n as requireSingleHeaderValue, t as getHeader } from "../headers-DODWf7aC.mjs";
4
- import { n as getUserRoles, r as normalizeRoles, t as getUserId } from "../userHelpers-AKcB4V03.mjs";
5
- import { t as simpleEqualityMatcher } from "../simpleEqualityMatcher-BO-sFTQf.mjs";
6
- import { A as createCircuitBreakerRegistry, C as defineCompensation, D as CircuitBreakerRegistry, E as CircuitBreakerError, O as CircuitState, S as defineErrorMapper, T as CircuitBreaker, _ as createQueryParser, a as deleteResponse, b as NEUTRAL_DIALECT, c as getDefaultCrudSchemas, d as listResponse, f as offsetListResponse, g as ArcQueryParser, h as responses, i as bareListResponse, k as createCircuitBreaker, l as getListQueryParams, m as queryParams, n as scheduleBackground, o as errorContractSchema, p as paginationSchema, r as aggregateListResponse, s as errorDetailSchema, t as createStateMachine, u as keysetListResponse, v as handleRaw, w as withCompensation, x as defineGuard, y as MONGO_DIALECT } from "../utils-CBK9HQOI.mjs";
7
- import { n as declareRuntimeCapability } from "../runtimeCapabilities-BagWc3TI.mjs";
8
- import { a as isZodSchema, i as isJsonSchema, n as convertRouteSchema, o as toJsonSchema, t as convertOpenApiSchemas } from "../schemaConverter-D2_bHGil.mjs";
9
- import { a as promoteStreamTokenToHeader, i as pipeUIMessageStreamToReply, n as forwardedStreamHeaders, r as isReadableStream, t as UI_MESSAGE_STREAM_HEADERS } from "../streaming-DOpZVht6.mjs";
10
- import { t as openSseStream } from "../sseStream-ByFGyIVr.mjs";
11
- import { t as hasEvents } from "../typeGuards-B-_jqaMi.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { a as OrgAccessDeniedError, c as ServiceUnavailableError, d as createDomainError, f as createError, i as NotFoundError, l as UnauthorizedError, n as ConflictError, o as OrgRequiredError, p as isArcError, r as ForbiddenError, s as RateLimitError, t as ArcError, u as ValidationError } from "../errors-DDKni6Tz.mjs";
3
+ import { n as requireSingleHeaderValue, t as getHeader } from "../headers-DKslnhey.mjs";
4
+ import { n as getUserRoles, r as normalizeRoles, t as getUserId } from "../userHelpers-xQAi5bPF.mjs";
5
+ import { t as simpleEqualityMatcher } from "../simpleEqualityMatcher-_9NAMHUD.mjs";
6
+ import { A as createCircuitBreakerRegistry, C as defineCompensation, D as CircuitBreakerRegistry, E as CircuitBreakerError, O as CircuitState, S as defineErrorMapper, T as CircuitBreaker, _ as createQueryParser, a as deleteResponse, b as NEUTRAL_DIALECT, c as getDefaultCrudSchemas, d as listResponse, f as offsetListResponse, g as ArcQueryParser, h as responses, i as bareListResponse, k as createCircuitBreaker, l as getListQueryParams, m as queryParams, n as scheduleBackground, o as errorContractSchema, p as paginationSchema, r as aggregateListResponse, s as errorDetailSchema, t as createStateMachine, u as keysetListResponse, v as handleRaw, w as withCompensation, x as defineGuard, y as MONGO_DIALECT } from "../utils-DgNFsJ2c.mjs";
7
+ import { n as declareRuntimeCapability } from "../runtimeCapabilities-jK99Ciw_.mjs";
8
+ import { a as isZodSchema, i as isJsonSchema, n as convertRouteSchema, o as toJsonSchema, t as convertOpenApiSchemas } from "../schemaConverter-gg0_aUPF.mjs";
9
+ import { a as promoteStreamTokenToHeader, i as pipeUIMessageStreamToReply, n as forwardedStreamHeaders, r as isReadableStream, t as UI_MESSAGE_STREAM_HEADERS } from "../streaming-CiTJW8kZ.mjs";
10
+ import { t as openSseStream } from "../sseStream-BMHTLlhR.mjs";
11
+ import { t as hasEvents } from "../typeGuards-IE1laMDf.mjs";
12
12
  export { ArcError, ArcQueryParser, CircuitBreaker, CircuitBreakerError, CircuitBreakerRegistry, CircuitState, ConflictError, ForbiddenError, MONGO_DIALECT, NEUTRAL_DIALECT, NotFoundError, OrgAccessDeniedError, OrgRequiredError, RateLimitError, ServiceUnavailableError, UI_MESSAGE_STREAM_HEADERS, UnauthorizedError, ValidationError, aggregateListResponse, bareListResponse, convertOpenApiSchemas, convertRouteSchema, createCircuitBreaker, createCircuitBreakerRegistry, createDomainError, createError, createQueryParser, createStateMachine, declareRuntimeCapability, defineCompensation, defineErrorMapper, defineGuard, deleteResponse, errorContractSchema, errorDetailSchema, forwardedStreamHeaders, getDefaultCrudSchemas, getHeader, getListQueryParams, getUserId, getUserRoles, handleRaw, hasEvents, isArcError, isJsonSchema, isReadableStream, isZodSchema, keysetListResponse, listResponse, normalizeRoles, offsetListResponse, openSseStream, paginationSchema, pipeUIMessageStreamToReply, promoteStreamTokenToHeader, queryParams, requireSingleHeaderValue, responses, scheduleBackground, simpleEqualityMatcher, toJsonSchema, withCompensation };
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { m as RESERVED_QUERY_PARAMS } from "./constants-BhzLXCfN.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { m as RESERVED_QUERY_PARAMS } from "./constants-DUoKAGYD.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { t as ArcError, u as ValidationError } from "./errors-CLid6atr.mjs";
4
+ import { t as ArcError, u as ValidationError } from "./errors-DDKni6Tz.mjs";
5
5
  import { errorContractSchema as errorContractSchema$1, errorDetailSchema as errorDetailSchema$1 } from "@classytic/repo-core/errors";
6
6
  import { scheduleBackground } from "@classytic/repo-core/cache";
7
7
  //#region src/utils/circuitBreaker.ts
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-CEvvVXTC.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
3
3
  //#region src/core/aggregation/normalize.ts
4
4
  /**
5
5
  * Framework cap on URL-driven aggregation limits when the host opts
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.35.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-CEvvVXTC.mjs";
3
- import { d as createDomainError } from "./errors-CLid6atr.mjs";
1
+ /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
3
+ import { d as createDomainError } from "./errors-DDKni6Tz.mjs";
4
4
  import fp from "fastify-plugin";
5
5
  //#region src/plugins/versioning.ts
6
6
  var versioning_exports = /* @__PURE__ */ __exportAll({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classytic/arc",
3
- "version": "2.35.0",
3
+ "version": "2.36.0",
4
4
  "description": "Resource-oriented backend framework for Fastify - clean, minimal, powerful, tree-shakable",
5
5
  "type": "module",
6
6
  "exports": {