@classytic/arc 2.36.0 → 2.37.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 (147) hide show
  1. package/dist/{BaseController-CTJKm6Cb.mjs → BaseController-B5GZfUBy.mjs} +11 -11
  2. package/dist/{EventTransport-D23Uvhg4.mjs → EventTransport-pGNNDQ__.mjs} +1 -1
  3. package/dist/{HookSystem-DgwxNZTx.mjs → HookSystem-CuhHvcyZ.mjs} +2 -2
  4. package/dist/{ResourceRegistry-DNuYVbmv.mjs → ResourceRegistry-DFOmazXg.mjs} +2 -2
  5. package/dist/{actionPermissions-D97DniUQ.mjs → actionPermissions-CQQrR4tu.mjs} +6 -6
  6. package/dist/audit/index.mjs +2 -2
  7. package/dist/auth/audit.mjs +1 -1
  8. package/dist/auth/index.mjs +6 -6
  9. package/dist/auth/redis-session.mjs +1 -1
  10. package/dist/{authorizationDecision-EsiY3nUu.mjs → authorizationDecision-DgyWdav8.mjs} +2 -2
  11. package/dist/{buildHandler-Dohd2JuY.mjs → buildHandler-D2DkqtiY.mjs} +4 -4
  12. package/dist/cache/index.mjs +4 -4
  13. package/dist/{caching-CP3GLJ7U.mjs → caching-BmC2T-pX.mjs} +2 -2
  14. package/dist/cleanup/index.d.mts +1 -1
  15. package/dist/cleanup/index.mjs +4 -4
  16. package/dist/cli/commands/describe.mjs +3 -3
  17. package/dist/cli/commands/docs.mjs +3 -3
  18. package/dist/cli/commands/doctor.mjs +1 -1
  19. package/dist/cli/commands/generate.mjs +2 -2
  20. package/dist/cli/commands/init.mjs +2 -2
  21. package/dist/cli/commands/introspect.mjs +2 -2
  22. package/dist/cli/index.mjs +3 -3
  23. package/dist/{constants-DUoKAGYD.mjs → constants-CUpamQMJ.mjs} +1 -1
  24. package/dist/context/index.mjs +3 -3
  25. package/dist/core/index.d.mts +1 -1
  26. package/dist/core/index.mjs +7 -7
  27. package/dist/{core-DTXsiNTJ.mjs → core-C8GWw-Iu.mjs} +3 -3
  28. package/dist/{createActionRouter-CZz6JO93.mjs → createActionRouter-CwDU_j2S.mjs} +7 -7
  29. package/dist/{createAggregationRouter-DKrGv_EC.mjs → createAggregationRouter-d057xXX1.mjs} +7 -7
  30. package/dist/{defineAggregation-CpQfcM8R.mjs → defineAggregation-cCitY2FA.mjs} +1 -1
  31. package/dist/{defineResource-DWzjyxb2.mjs → defineResource-WcbE1kJL.mjs} +18 -18
  32. package/dist/discovery/index.mjs +1 -1
  33. package/dist/docs/index.mjs +3 -3
  34. package/dist/{elevation-D_cmo80j.mjs → elevation-Bc6Gafv9.mjs} +4 -4
  35. package/dist/encryption/index.mjs +3 -3
  36. package/dist/{errorHandler-2RT0hLSI.mjs → errorHandler-CB75oY5i.mjs} +3 -3
  37. package/dist/{errors-DDKni6Tz.mjs → errors-DsdZc1Xv.mjs} +1 -1
  38. package/dist/{eventPlugin-c3YwGzz9.mjs → eventPlugin-DEIfV1iC.mjs} +5 -5
  39. package/dist/events/index.d.mts +1 -1
  40. package/dist/events/index.mjs +5 -5
  41. package/dist/events/transports/redis-stream-entry.mjs +1 -1
  42. package/dist/events/transports/redis.mjs +1 -1
  43. package/dist/factory/index.d.mts +4 -4
  44. package/dist/factory/index.mjs +5 -5
  45. package/dist/{fastify-augmentation-Bk_9PoiV.d.mts → fastify-augmentation-CdY8FINU.d.mts} +2 -2
  46. package/dist/{fields-DdP225wt.mjs → fields-DvGz47Ul.mjs} +1 -1
  47. package/dist/{generate-B1bKdcV9.mjs → generate-D7CIIWhS.mjs} +2 -2
  48. package/dist/{headers-DKslnhey.mjs → headers-BFu1st_i.mjs} +2 -2
  49. package/dist/{health-k6NODS8f.mjs → health-Cc_sb94d.mjs} +1 -1
  50. package/dist/hooks/index.mjs +2 -2
  51. package/dist/idempotency/index.mjs +4 -4
  52. package/dist/idempotency/redis.mjs +1 -1
  53. package/dist/{index-C50BUxKs.d.mts → index-DCxxRwLC.d.mts} +1 -1
  54. package/dist/{index-RdpLP71b.d.mts → index-du18bJjH.d.mts} +1 -1
  55. package/dist/index.d.mts +2 -2
  56. package/dist/index.mjs +11 -11
  57. package/dist/{init-LuGxIbQ_.mjs → init-BMgU1wYR.mjs} +1 -1
  58. package/dist/integrations/event-gateway.mjs +2 -2
  59. package/dist/integrations/index.mjs +1 -1
  60. package/dist/integrations/jobs/index.mjs +2 -2
  61. package/dist/integrations/mcp/index.mjs +2 -2
  62. package/dist/integrations/mcp/testing.mjs +2 -2
  63. package/dist/integrations/streamline.mjs +3 -3
  64. package/dist/integrations/webhooks.d.mts +1 -1
  65. package/dist/integrations/webhooks.mjs +3 -3
  66. package/dist/integrations/websocket-pushref-redis.mjs +1 -1
  67. package/dist/integrations/websocket-redis.mjs +1 -1
  68. package/dist/integrations/websocket.mjs +1 -1
  69. package/dist/{interface-B7awDx3b.mjs → interface-CaPVHoVJ.mjs} +1 -1
  70. package/dist/{jsonBody-CiHih3ZU.mjs → jsonBody-BuzxOZV8.mjs} +2 -2
  71. package/dist/{keys-BcNl12HN.mjs → keys-DoUI9-yP.mjs} +1 -1
  72. package/dist/{loadResources-DGlfRQc9.mjs → loadResources-CPlRWJCv.mjs} +2 -2
  73. package/dist/{loadResourcesFromEntry-VYPGSas8.mjs → loadResourcesFromEntry-CPCZiX9n.mjs} +2 -2
  74. package/dist/logger/index.mjs +1 -1
  75. package/dist/{mcpPlugin-NxSlc-Ks.mjs → mcpPlugin-dxMxBPIg.mjs} +15 -15
  76. package/dist/{memory-BU-C-MV3.mjs → memory-BnafVem_.mjs} +2 -2
  77. package/dist/{metrics-7_1GbJpl.mjs → metrics-CeAIcVMY.mjs} +2 -2
  78. package/dist/middleware/index.mjs +3 -3
  79. package/dist/migrations/index.mjs +2 -2
  80. package/dist/{module-CQNHzE7g.mjs → module-DIvG8qOg.mjs} +1 -1
  81. package/dist/{multipartBody-Bi5yqW0M.mjs → multipartBody-BVCoaTwu.mjs} +1 -1
  82. package/dist/{openapi-RpNbPBL-.mjs → openapi-D_i6CifU.mjs} +6 -6
  83. package/dist/outbox-admin/index.d.mts +1 -1
  84. package/dist/outbox-admin/index.mjs +4 -4
  85. package/dist/{outbox-module-b1TyDGGi.d.mts → outbox-module-BbdaMyqy.d.mts} +1 -1
  86. package/dist/{outbox-module-ClcFrq98.mjs → outbox-module-CKaLL5BH.mjs} +4 -4
  87. package/dist/permissions/index.mjs +5 -5
  88. package/dist/{permissions-DgPrZsJh.mjs → permissions-DWkl60hx.mjs} +6 -6
  89. package/dist/{pipe-Cjy1UiXX.mjs → pipe-Dbs3GhOZ.mjs} +2 -2
  90. package/dist/pipeline/index.mjs +2 -2
  91. package/dist/plugins/index.d.mts +2 -2
  92. package/dist/plugins/index.mjs +16 -16
  93. package/dist/plugins/response-cache.mjs +2 -2
  94. package/dist/plugins/tracing-entry.mjs +2 -2
  95. package/dist/{pluralize-B7m0dPm8.mjs → pluralize-DgaYX91M.mjs} +1 -1
  96. package/dist/{preloadResources-CjnW4iIX.mjs → preloadResources-BUoGKPaS.mjs} +21 -21
  97. package/dist/{preloadResources-BuutdWgr.d.mts → preloadResources-BYFfYnjZ.d.mts} +2 -2
  98. package/dist/presets/filesUpload.mjs +5 -5
  99. package/dist/presets/index.mjs +2 -2
  100. package/dist/presets/multiTenant.mjs +3 -3
  101. package/dist/presets/search.mjs +2 -2
  102. package/dist/{presets-CsGg8B58.mjs → presets-Gbv9mNKD.mjs} +4 -4
  103. package/dist/{projection-koISNyQo.mjs → projection-BunxoeON.mjs} +2 -2
  104. package/dist/{queryCachePlugin-DHueQT9O.mjs → queryCachePlugin-BYqmg89O.mjs} +5 -5
  105. package/dist/{rateLimitKey-Bma8VXDO.mjs → rateLimitKey-DlqmDHA5.mjs} +1 -1
  106. package/dist/{realtime-BBoC91Bz.mjs → realtime-CiAp2-LH.mjs} +9 -9
  107. package/dist/{registerRoute-BTgORTlR.mjs → registerRoute-dnf-JJf-.mjs} +5 -5
  108. package/dist/registry/index.d.mts +1 -1
  109. package/dist/registry/index.mjs +3 -3
  110. package/dist/{registry-BzvRCYS6.mjs → registry-ByC0UFNS.mjs} +2 -2
  111. package/dist/{renewingLease-CgIGh0Ab.mjs → renewingLease-C5Ta_ImD.mjs} +1 -1
  112. package/dist/{replyHelpers-BN16KPHr.mjs → replyHelpers-D1k0wHoO.mjs} +2 -2
  113. package/dist/{requestContext-B93dmpf0.mjs → requestContext-DGM7EZRI.mjs} +1 -1
  114. package/dist/{rolldown-runtime-JJWfp8rp.mjs → rolldown-runtime-DrZrabOW.mjs} +1 -1
  115. package/dist/{runtimeCapabilities-jK99Ciw_.mjs → runtimeCapabilities-c4Sc85X-.mjs} +1 -1
  116. package/dist/{schedules-CKKEL21P.mjs → schedules-CVtolEa-.mjs} +31 -5
  117. package/dist/{schemaConverter-gg0_aUPF.mjs → schemaConverter-C8zbW7tJ.mjs} +1 -1
  118. package/dist/{schemaIR-CngYvpCF.mjs → schemaIR-BfI425RH.mjs} +2 -2
  119. package/dist/schemas/index.mjs +1 -1
  120. package/dist/scim/index.mjs +2 -2
  121. package/dist/scope/index.mjs +5 -5
  122. package/dist/{scope-B1RsHdjF.mjs → scope-DFSOKc4T.mjs} +4 -4
  123. package/dist/{simpleEqualityMatcher-_9NAMHUD.mjs → simpleEqualityMatcher-Bhp7WrRF.mjs} +1 -1
  124. package/dist/{sse-Bxt03Hk5.mjs → sse-vRuwDd6N.mjs} +5 -5
  125. package/dist/{sseStream-BMHTLlhR.mjs → sseStream-cWezGOk1.mjs} +2 -2
  126. package/dist/{store-helpers-Brt8OxWZ.mjs → store-helpers-bU8H5c-A.mjs} +1 -1
  127. package/dist/{streaming-CiTJW8kZ.mjs → streaming-weWcFCk4.mjs} +1 -1
  128. package/dist/{subscribe-helpers-B4fNHRNc.mjs → subscribe-helpers-BrcG3NlV.mjs} +2 -2
  129. package/dist/sync/changelog.mjs +1 -1
  130. package/dist/testing/cleanupStoreContract.mjs +1 -1
  131. package/dist/testing/index.d.mts +3 -3
  132. package/dist/testing/index.mjs +10 -10
  133. package/dist/testing/outboxStoreContract.mjs +1 -1
  134. package/dist/testing/storageContract.mjs +1 -1
  135. package/dist/{transactionContext-D2HwJM2z.mjs → transactionContext-Ca5peQpc.mjs} +1 -1
  136. package/dist/{typeGuards-IE1laMDf.mjs → typeGuards-ALWme5WB.mjs} +1 -1
  137. package/dist/types/index.mjs +1 -1
  138. package/dist/types/storage.mjs +1 -1
  139. package/dist/{types-DDD5RKTu.d.mts → types-BMa2EPtv.d.mts} +9 -0
  140. package/dist/{types-B8lwJv9Q.mjs → types-lDs9oF4z.mjs} +4 -4
  141. package/dist/usage/index.mjs +0 -0
  142. package/dist/{userHelpers-xQAi5bPF.mjs → userHelpers-DU_Z5OBA.mjs} +1 -1
  143. package/dist/utils/index.mjs +11 -11
  144. package/dist/{utils-DgNFsJ2c.mjs → utils-sXGFLegw.mjs} +3 -3
  145. package/dist/{validate-DI3L5V9w.mjs → validate-qK_-7MVk.mjs} +2 -2
  146. package/dist/{versioning-COpAyfpZ.mjs → versioning-Dtw0MyX4.mjs} +3 -3
  147. package/package.json +5 -2
@@ -1,8 +1,8 @@
1
1
 
2
2
  import { on as HookSystem, z as ResourceRegistry } from "./index-C01wWGJt.mjs";
3
3
  import { t as ExternalOpenApiPaths } from "./externalPaths-CmGOxOtD.mjs";
4
- import { _ as HealthCheck, f as ScheduleDefinition, r as ArcModuleRegistry, t as ArcModule } from "./types-DDD5RKTu.mjs";
5
- import { s as ModuleState } from "./index-C50BUxKs.mjs";
4
+ import { _ as HealthCheck, f as ScheduleDefinition, r as ArcModuleRegistry, t as ArcModule } from "./types-BMa2EPtv.mjs";
5
+ import { s as ModuleState } from "./index-DCxxRwLC.mjs";
6
6
  import { FastifyPluginAsync } from "fastify";
7
7
  //#region src/factory/module/descriptor.d.ts
8
8
  /**
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | 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.36.0 | MIT | https://classytic.com */
2
- import { t as pluralize } from "./pluralize-B7m0dPm8.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as pluralize } from "./pluralize-DgaYX91M.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.36.0 | MIT | https://classytic.com */
2
- import { u as ValidationError } from "./errors-DDKni6Tz.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { u as ValidationError } from "./errors-DsdZc1Xv.mjs";
3
3
  //#region src/utils/headers.ts
4
4
  /**
5
5
  * Canonical header typing + accessor.
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | 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
@@ -1,3 +1,3 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { a as beforeCreate, c as createHookSystem, i as afterUpdate, l as defineHook, n as afterCreate, o as beforeDelete, r as afterDelete, s as beforeUpdate, t as HookSystem } from "../HookSystem-DgwxNZTx.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { a as beforeCreate, c as createHookSystem, i as afterUpdate, l as defineHook, n as afterCreate, o as beforeDelete, r as afterDelete, s as beforeUpdate, t as HookSystem } from "../HookSystem-CuhHvcyZ.mjs";
3
3
  export { HookSystem, afterCreate, afterDelete, afterUpdate, beforeCreate, beforeDelete, beforeUpdate, createHookSystem, defineHook };
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { n as requireSingleHeaderValue } from "../headers-DKslnhey.mjs";
3
- import { n as createSafeGetOne, t as createIsDuplicateKeyError } from "../store-helpers-Brt8OxWZ.mjs";
4
- import { t as createIdempotencyResult } from "../interface-B7awDx3b.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { n as requireSingleHeaderValue } from "../headers-BFu1st_i.mjs";
3
+ import { n as createSafeGetOne, t as createIsDuplicateKeyError } from "../store-helpers-bU8H5c-A.mjs";
4
+ import { t as createIdempotencyResult } from "../interface-CaPVHoVJ.mjs";
5
5
  import { and, eq, exists, gt, lt, or, startsWith } from "@classytic/repo-core/filter";
6
6
  import { createHash } from "node:crypto";
7
7
  import fp from "fastify-plugin";
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  //#region src/idempotency/stores/redis.ts
3
3
  var RedisIdempotencyStore = class {
4
4
  name = "redis";
@@ -1,5 +1,5 @@
1
1
 
2
- import { _ as HealthCheck, a as ModuleContribution, f as ScheduleDefinition, n as ArcModuleInput, r as ArcModuleRegistry, s as ModuleSetupContext, t as ArcModule } from "./types-DDD5RKTu.mjs";
2
+ import { _ as HealthCheck, a as ModuleContribution, f as ScheduleDefinition, n as ArcModuleInput, r as ArcModuleRegistry, s as ModuleSetupContext, t as ArcModule } from "./types-BMa2EPtv.mjs";
3
3
  import { FastifyInstance } from "fastify";
4
4
  //#region src/factory/module/contributions.d.ts
5
5
  /**
@@ -2,7 +2,7 @@
2
2
  import { i as RequestScope } from "./types-Ddl9OjmE.mjs";
3
3
  import { l as PermissionCheck, t as AnyRecord } from "./base-C-NL2fTi.mjs";
4
4
  import { C as RequestContext, Et as ActionDefinition, F as FastifyWithDecorators, Fn as IControllerResponse, H as CrudController, In as IRequestContext, L as RequestWithExtras, Pn as IController, T as CrudRouterOptions, U as ResourceConfig, V as ResourceDefinition, et as RouteSchemaOptions, jt as RouteMcpConfig, tt as ArcFieldRule, ut as AggregationConfig } from "./index-C01wWGJt.mjs";
5
- import "./fastify-augmentation-Bk_9PoiV.mjs";
5
+ import "./fastify-augmentation-CdY8FINU.mjs";
6
6
  import { Filter } from "@classytic/repo-core/filter";
7
7
  import { AggDateBucket, AggMeasure, AggTopN } from "@classytic/repo-core/repository";
8
8
  import { FastifyReply, FastifyRequest, RouteHandlerMethod } from "fastify";
package/dist/index.d.mts CHANGED
@@ -2,8 +2,8 @@
2
2
  import { c as DataPolicy, d as UserBase, 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";
3
3
  import { A as RequestIdOptions, An as WriteVerbKey, B as defineResource, Bt as BaseController, C as RequestContext, Cn as ControllerConstructionOptions, D as HealthCheck, Dn as MutationWriteContext, E as GracefulShutdownOptions, F as FastifyWithDecorators, Fn as IControllerResponse, Ft as AuthPluginOptions, Gt as SlugExt, H as CrudController, Ht as SoftDeleteMixin, In as IRequestContext, Jt as BulkMixin, Kt as SlugMixin, L as RequestWithExtras, Ln as RawRouteHandler, Mn as ControllerLike, N as FastifyRequestExtras, Nt as RateLimitConfig, O as HealthOptions, On as ResourceWrites, P as FastifyWithAuth, Pn as IController, Q as MiddlewareConfig, Rn as RouteHandler, S as QueryParserInterface, Sn as ControllerConfigurableOptions, T as CrudRouterOptions, U as ResourceConfig, Ut as TreeExt, V as ResourceDefinition, Vt as SoftDeleteExt, Wt as TreeMixin, X as CrudRouteKey, Y as PresetResult, Yt as BaseCrudController, Z as CrudSchemas, _n as ArcDeleteResult, a as InferAdapterDoc, bn as ArcUpdateResult, c as TypedController, ct as AggMeasureShorthand, d as PaginationResult, dt as AggregationDateRangeRequirement, et as RouteSchemaOptions, f as IntrospectionData, ft as AggregationIndexHint, g as ArcInternalMetadata, gn as ArcCreateResult, gt as AggregationsMap, h as ResourceMetadata, ht as AggregationRateLimit, i as ValidationResult, k as IntrospectionPluginOptions, kn as WriteContext, l as TypedRepository, lt as AggregationCacheConfig, m as RegistryStats, mt as AggregationMaterializedResult, n as ConfigError, nt as FieldRule, o as InferDocType, ot as EventDefinition, p as RegistryEntry, pt as AggregationMaterializedContext, q as PresetFunction, qt as BulkExt, r as ValidateOptions, s as InferResourceDoc, st as AggMeasureInput, t as RouteHandlerMethod, u as TypedResourceConfig, ut as AggregationConfig, vn as ArcGetResult, w as ServiceContext, wn as ListResult, xn as BaseControllerOptions, y as OwnershipCheck, yn as ArcListResult } from "./index-C01wWGJt.mjs";
4
4
  import { a as applyFieldWritePermissions, i as applyFieldReadPermissions, n as FieldPermissionMap, o as fields, t as FieldPermission } from "./fields-I_EeRWND.mjs";
5
- import "./fastify-augmentation-Bk_9PoiV.mjs";
6
- import { A as CRUD_OPERATIONS, B as HookOperation, C as SeamedResourceConfig, E as defineAction, F as DEFAULT_SORT, G as MUTATION_OPERATIONS, H as MAX_FILTER_DEPTH, I as DEFAULT_TENANT_FIELD, J as SYSTEM_FIELDS, K as MutationOperation, L as DEFAULT_UPDATE_METHOD, M as DEFAULT_ID_FIELD, N as DEFAULT_LIMIT, P as DEFAULT_MAX_LIMIT, R as HOOK_OPERATIONS, S as ResourceSeams, U as MAX_REGEX_LENGTH, V as HookPhase, W as MAX_SEARCH_LENGTH, b as defineResourceVariants, c as nativePolicyFilter, h as getControllerScope, j as CrudOperation, k as defineAggregation, q as RESERVED_QUERY_PARAMS, s as NativePolicyFilter, w as mergeResourceConfig, x as AdapterLike, z as HOOK_PHASES } from "./index-RdpLP71b.mjs";
5
+ import "./fastify-augmentation-CdY8FINU.mjs";
6
+ import { A as CRUD_OPERATIONS, B as HookOperation, C as SeamedResourceConfig, E as defineAction, F as DEFAULT_SORT, G as MUTATION_OPERATIONS, H as MAX_FILTER_DEPTH, I as DEFAULT_TENANT_FIELD, J as SYSTEM_FIELDS, K as MutationOperation, L as DEFAULT_UPDATE_METHOD, M as DEFAULT_ID_FIELD, N as DEFAULT_LIMIT, P as DEFAULT_MAX_LIMIT, R as HOOK_OPERATIONS, S as ResourceSeams, U as MAX_REGEX_LENGTH, V as HookPhase, W as MAX_SEARCH_LENGTH, b as defineResourceVariants, c as nativePolicyFilter, h as getControllerScope, j as CrudOperation, k as defineAggregation, q as RESERVED_QUERY_PARAMS, s as NativePolicyFilter, w as mergeResourceConfig, x as AdapterLike, z as HOOK_PHASES } from "./index-du18bJjH.mjs";
7
7
  import { $ as requireAuth, C as requireServiceScope, G as createOrgPermissions, H as DynamicPermissionMatrixConfig, J as allowPublic, K as allOf, S as requireScopeContext, V as DynamicPermissionMatrix, W as createDynamicPermissionMatrix, Y as anyOf, Z as denyAll, _ as publicReadAdminWrite, b as requireOrgMembership, d as authenticated, et as requireOwnership, f as fullPublic, g as publicRead, h as presets_d_exports, it as when, nt as requireRoles, p as ownerWithAdminBypass, u as adminOnly, v as readOnly, w as requireTeamMembership, x as requireOrgRole, y as requireOrgInScope } from "./index-BtYoMip1.mjs";
8
8
  import { a as NotFoundError, d as ValidationError, f as createDomainError, i as ForbiddenError, t as ArcError, u as UnauthorizedError } from "./errors-BGdVwP25.mjs";
9
9
  //#region src/index.d.ts
package/dist/index.mjs CHANGED
@@ -1,14 +1,14 @@
1
- /*! @classytic/arc v2.36.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-DUoKAGYD.mjs";
3
- import { d as createDomainError, i as NotFoundError, l as UnauthorizedError, r as ForbiddenError, t as ArcError, u as ValidationError } from "./errors-DDKni6Tz.mjs";
4
- import { a as BulkMixin, h as nativePolicyFilter, i as SlugMixin, n as TreeMixin, o as BaseCrudController, r as SoftDeleteMixin, t as BaseController } from "./BaseController-CTJKm6Cb.mjs";
5
- import { n as applyFieldWritePermissions, r as fields, t as applyFieldReadPermissions } from "./fields-DdP225wt.mjs";
6
- import { a as ResourceDefinition, t as defineResource } from "./defineResource-DWzjyxb2.mjs";
7
- import { l as getControllerScope } from "./actionPermissions-D97DniUQ.mjs";
8
- import { t as defineAggregation } from "./defineAggregation-CpQfcM8R.mjs";
9
- import { a as mergeResourceConfig, i as defineResourceVariants, o as defineAction } from "./core-DTXsiNTJ.mjs";
10
- import { B as requireAuth, C as createOrgPermissions, D as requireScopeContext, E as requireOrgRole, F as allowPublic, G as when, I as anyOf, N as allOf, O as requireServiceScope, R as denyAll, S as createDynamicPermissionMatrix, T as requireOrgMembership, U as requireRoles, V as requireOwnership, a as adminOnly, c as ownerWithAdminBypass, d as publicRead, f as publicReadAdminWrite, k as requireTeamMembership, o as authenticated, p as readOnly, s as fullPublic, u as presets_exports, w as requireOrgInScope } from "./permissions-DgPrZsJh.mjs";
1
+ /*! @classytic/arc v2.37.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-CUpamQMJ.mjs";
3
+ import { d as createDomainError, i as NotFoundError, l as UnauthorizedError, r as ForbiddenError, t as ArcError, u as ValidationError } from "./errors-DsdZc1Xv.mjs";
4
+ import { a as BulkMixin, h as nativePolicyFilter, i as SlugMixin, n as TreeMixin, o as BaseCrudController, r as SoftDeleteMixin, t as BaseController } from "./BaseController-B5GZfUBy.mjs";
5
+ import { n as applyFieldWritePermissions, r as fields, t as applyFieldReadPermissions } from "./fields-DvGz47Ul.mjs";
6
+ import { a as ResourceDefinition, t as defineResource } from "./defineResource-WcbE1kJL.mjs";
7
+ import { l as getControllerScope } from "./actionPermissions-CQQrR4tu.mjs";
8
+ import { t as defineAggregation } from "./defineAggregation-cCitY2FA.mjs";
9
+ import { a as mergeResourceConfig, i as defineResourceVariants, o as defineAction } from "./core-C8GWw-Iu.mjs";
10
+ import { B as requireAuth, C as createOrgPermissions, D as requireScopeContext, E as requireOrgRole, F as allowPublic, G as when, I as anyOf, N as allOf, O as requireServiceScope, R as denyAll, S as createDynamicPermissionMatrix, T as requireOrgMembership, U as requireRoles, V as requireOwnership, a as adminOnly, c as ownerWithAdminBypass, d as publicRead, f as publicReadAdminWrite, k as requireTeamMembership, o as authenticated, p as readOnly, s as fullPublic, u as presets_exports, w as requireOrgInScope } from "./permissions-DWkl60hx.mjs";
11
11
  //#region src/index.ts
12
- const version = "2.36.0";
12
+ const version = "2.37.0";
13
13
  //#endregion
14
14
  export { ArcError, BaseController, BaseCrudController, BulkMixin, CRUD_OPERATIONS, DEFAULT_ID_FIELD, DEFAULT_LIMIT, DEFAULT_MAX_LIMIT, DEFAULT_SORT, DEFAULT_TENANT_FIELD, DEFAULT_UPDATE_METHOD, ForbiddenError, HOOK_OPERATIONS, HOOK_PHASES, MAX_FILTER_DEPTH, MAX_REGEX_LENGTH, MAX_SEARCH_LENGTH, MUTATION_OPERATIONS, NotFoundError, RESERVED_QUERY_PARAMS, ResourceDefinition, SYSTEM_FIELDS, SlugMixin, SoftDeleteMixin, TreeMixin, UnauthorizedError, ValidationError, adminOnly, allOf, allowPublic, anyOf, applyFieldReadPermissions, applyFieldWritePermissions, authenticated, createDomainError, createDynamicPermissionMatrix, createOrgPermissions, defineAction, defineAggregation, defineResource, defineResourceVariants, denyAll, fields, fullPublic, getControllerScope, mergeResourceConfig, nativePolicyFilter, ownerWithAdminBypass, presets_exports as permissions, publicRead, publicReadAdminWrite, readOnly, requireAuth, requireOrgInScope, requireOrgMembership, requireOrgRole, requireOwnership, requireRoles, requireScopeContext, requireServiceScope, requireTeamMembership, version, when };
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  import * as fs from "node:fs/promises";
3
3
  import * as path from "node:path";
4
4
  import { dirname, join } from "node:path";
@@ -1,11 +1,11 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  import fp from "fastify-plugin";
3
3
  //#region src/integrations/event-gateway.ts
4
4
  const eventGatewayPluginImpl = async (fastify, opts = {}) => {
5
5
  const { auth = true, orgScoped = false, roomPolicy, maxMessageBytes, maxSubscriptionsPerClient, authenticate } = opts;
6
6
  if (auth && !authenticate && !fastify.hasDecorator("authenticate")) throw new Error("[arc-event-gateway] auth is true but fastify.authenticate is not registered. Register an auth plugin first, provide a custom authenticate function, or set auth: false.");
7
7
  if (opts.sse !== false) {
8
- const { default: ssePlugin } = await import("../sse-Bxt03Hk5.mjs").then((n) => n.r);
8
+ const { default: ssePlugin } = await import("../sse-vRuwDd6N.mjs").then((n) => n.r);
9
9
  await fastify.register(ssePlugin, {
10
10
  path: opts.sse?.path ?? "/events/stream",
11
11
  requireAuth: auth,
@@ -1,2 +1,2 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  export {};
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { n as evaluateAndApplyPermission } from "../../authorizationDecision-EsiY3nUu.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { n as evaluateAndApplyPermission } from "../../authorizationDecision-DgyWdav8.mjs";
3
3
  import fp from "fastify-plugin";
4
4
  //#region src/integrations/jobs/execution.ts
5
5
  async function executeTimedHandler(options) {
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { a as defaultCrudDescription, c as mcpHandlerAdapter, d as toCallToolResult, f as toCallToolSuccess, h as resolveToolCollisions, i as fieldRulesToZod, l as permissionDeniedResult, m as createMcpServer, n as mcpPlugin, o as resolveCrudDescription, p as buildRequestContext, r as resourceToTools, s as invokeController, t as filterResourcesForMcp, u as toCallToolError } from "../../mcpPlugin-NxSlc-Ks.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { a as defaultCrudDescription, c as mcpHandlerAdapter, d as toCallToolResult, f as toCallToolSuccess, h as resolveToolCollisions, i as fieldRulesToZod, l as permissionDeniedResult, m as createMcpServer, n as mcpPlugin, o as resolveCrudDescription, p as buildRequestContext, r as resourceToTools, s as invokeController, t as filterResourcesForMcp, u as toCallToolError } from "../../mcpPlugin-dxMxBPIg.mjs";
3
3
  //#region src/integrations/mcp/defineTool.ts
4
4
  /**
5
5
  * Define a type-safe MCP tool.
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { m as createMcpServer, r as resourceToTools, t as filterResourcesForMcp } from "../../mcpPlugin-NxSlc-Ks.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { m as createMcpServer, r as resourceToTools, t as filterResourcesForMcp } from "../../mcpPlugin-dxMxBPIg.mjs";
3
3
  //#region src/integrations/mcp/testing.ts
4
4
  /**
5
5
  * @classytic/arc/mcp/testing — MCP Test Utilities
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { f as createError, i as NotFoundError, r as ForbiddenError } from "../errors-DDKni6Tz.mjs";
3
- import { a as promoteStreamTokenToHeader, n as forwardedStreamHeaders } from "../streaming-CiTJW8kZ.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { f as createError, i as NotFoundError, r as ForbiddenError } from "../errors-DsdZc1Xv.mjs";
3
+ import { a as promoteStreamTokenToHeader, n as forwardedStreamHeaders } from "../streaming-weWcFCk4.mjs";
4
4
  import fp from "fastify-plugin";
5
5
  //#region src/integrations/streamline.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { a as EventTransport, n as DomainEvent } from "../EventTransport-BEVP50ka.mjs";
3
- import { n as OutboxModuleOptions, r as createOutboxModule } from "../outbox-module-b1TyDGGi.mjs";
3
+ import { n as OutboxModuleOptions, r as createOutboxModule } from "../outbox-module-BbdaMyqy.mjs";
4
4
  import { FastifyPluginAsync } from "fastify";
5
5
  import { OutboxFailurePolicy, OutboxStore } from "@classytic/primitives/outbox";
6
6
  //#region src/integrations/webhooks.d.ts
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { n as declareRuntimeCapability } from "../runtimeCapabilities-jK99Ciw_.mjs";
3
- import { i as exponentialBackoff, t as createOutboxModule } from "../outbox-module-ClcFrq98.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { n as declareRuntimeCapability } from "../runtimeCapabilities-c4Sc85X-.mjs";
3
+ import { i as exponentialBackoff, t as createOutboxModule } from "../outbox-module-CKaLL5BH.mjs";
4
4
  import { createHmac, timingSafeEqual } from "node:crypto";
5
5
  import fp from "fastify-plugin";
6
6
  import { createChildEvent } from "@classytic/primitives/events";
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  //#region src/integrations/websocket-pushref-redis.ts
3
3
  /**
4
4
  * Lua script for atomic claim. Runs server-side, single-roundtrip.
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  //#region src/integrations/websocket-redis.ts
3
3
  /**
4
4
  * Redis Pub/Sub adapter for cross-instance WebSocket broadcast.
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  import { randomUUID } from "node:crypto";
3
3
  import sjson from "secure-json-parse";
4
4
  import fp from "fastify-plugin";
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  //#region src/idempotency/stores/interface.ts
3
3
  /**
4
4
  * Helper to create a result object
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as ArcError } from "./errors-DDKni6Tz.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as ArcError } from "./errors-DsdZc1Xv.mjs";
3
3
  import sjson from "secure-json-parse";
4
4
  //#region src/utils/jsonBody.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  //#region src/cache/keys.ts
3
3
  /**
4
4
  * Cache Key Utilities
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-DrZrabOW.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
4
  import { readdir } from "node:fs/promises";
5
5
  import { dirname, join, resolve } from "node:path";
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as ResourceRegistry } from "./ResourceRegistry-DNuYVbmv.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as ResourceRegistry } from "./ResourceRegistry-DFOmazXg.mjs";
3
3
  import { resolve } from "node:path";
4
4
  import { pathToFileURL } from "node:url";
5
5
  //#region src/cli/utils/loadResourcesFromEntry.ts
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
3
  //#region src/logger/index.ts
4
4
  /**
@@ -1,18 +1,18 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { r as evaluatePermissionDecision } from "./authorizationDecision-EsiY3nUu.mjs";
3
- import { p as isArcError, t as ArcError } from "./errors-DDKni6Tz.mjs";
4
- import { n as requireSingleHeaderValue } from "./headers-DKslnhey.mjs";
5
- import { b as isElevated, c as getOrgId, g as getUserId, x as isMember } from "./types-B8lwJv9Q.mjs";
6
- import { t as BaseController } from "./BaseController-CTJKm6Cb.mjs";
7
- import { i as resolveEffectiveRoles, t as applyFieldReadPermissions } from "./fields-DdP225wt.mjs";
8
- import { t as executePipeline } from "./pipe-Cjy1UiXX.mjs";
9
- import { t as buildRequestScopeProjection } from "./projection-koISNyQo.mjs";
10
- import { i as resolvePipelineSteps, t as resolveActionPermission } from "./actionPermissions-D97DniUQ.mjs";
11
- import { n as validateAggregations } from "./validate-DI3L5V9w.mjs";
12
- import { n as executeAggregation } from "./buildHandler-Dohd2JuY.mjs";
13
- import { t as pluralize } from "./pluralize-B7m0dPm8.mjs";
14
- import { t as createIdempotencyResult } from "./interface-B7awDx3b.mjs";
15
- import { r as shouldRejectAdditionalProperties, t as normalizeSchemaIR } from "./schemaIR-CngYvpCF.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { r as evaluatePermissionDecision } from "./authorizationDecision-DgyWdav8.mjs";
3
+ import { p as isArcError, t as ArcError } from "./errors-DsdZc1Xv.mjs";
4
+ import { n as requireSingleHeaderValue } from "./headers-BFu1st_i.mjs";
5
+ import { b as isElevated, c as getOrgId, g as getUserId, x as isMember } from "./types-lDs9oF4z.mjs";
6
+ import { t as BaseController } from "./BaseController-B5GZfUBy.mjs";
7
+ import { i as resolveEffectiveRoles, t as applyFieldReadPermissions } from "./fields-DvGz47Ul.mjs";
8
+ import { t as executePipeline } from "./pipe-Dbs3GhOZ.mjs";
9
+ import { t as buildRequestScopeProjection } from "./projection-BunxoeON.mjs";
10
+ import { i as resolvePipelineSteps, t as resolveActionPermission } from "./actionPermissions-CQQrR4tu.mjs";
11
+ import { n as validateAggregations } from "./validate-qK_-7MVk.mjs";
12
+ import { n as executeAggregation } from "./buildHandler-D2DkqtiY.mjs";
13
+ import { t as pluralize } from "./pluralize-DgaYX91M.mjs";
14
+ import { t as createIdempotencyResult } from "./interface-CaPVHoVJ.mjs";
15
+ import { r as shouldRejectAdditionalProperties, t as normalizeSchemaIR } from "./schemaIR-BfI425RH.mjs";
16
16
  import { isHttpError, toErrorContract } from "@classytic/repo-core/errors";
17
17
  import { createHash, randomUUID } from "node:crypto";
18
18
  import fp from "fastify-plugin";
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-DrZrabOW.mjs";
3
3
  //#region src/cache/memory.ts
4
4
  var memory_exports = /* @__PURE__ */ __exportAll({ MemoryCacheStore: () => MemoryCacheStore });
5
5
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-DrZrabOW.mjs";
3
3
  import fp from "fastify-plugin";
4
4
  //#region src/plugins/metrics.ts
5
5
  var metrics_exports = /* @__PURE__ */ __exportAll({
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as CRUD_OPERATIONS } from "../constants-DUoKAGYD.mjs";
3
- import { t as multipartBody } from "../multipartBody-Bi5yqW0M.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as CRUD_OPERATIONS } from "../constants-CUpamQMJ.mjs";
3
+ import { t as multipartBody } from "../multipartBody-BVCoaTwu.mjs";
4
4
  //#region src/middleware/middleware.ts
5
5
  /**
6
6
  * Named Middleware — Priority-based, conditional middleware execution.
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as startRenewingLease } from "../renewingLease-CgIGh0Ab.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as startRenewingLease } from "../renewingLease-C5Ta_ImD.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  //#region src/migrations/index.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  //#region src/factory/module/index.ts
3
3
  /**
4
4
  * Identity helper for authoring a typed module — mirrors `defineResource`.
@@ -1,4 +1,4 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
2
  import sjson from "secure-json-parse";
3
3
  //#region src/middleware/multipartBody.ts
4
4
  const DEFAULT_MAX_FILE_SIZE = 10485760;
@@ -1,9 +1,9 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { n as getUserRoles } from "./userHelpers-xQAi5bPF.mjs";
3
- import { n as convertRouteSchema } from "./schemaConverter-gg0_aUPF.mjs";
4
- import { t as resolveActionPermission } from "./actionPermissions-D97DniUQ.mjs";
5
- import { t as pluralize } from "./pluralize-B7m0dPm8.mjs";
6
- import { t as buildActionBodySchema } from "./createActionRouter-CZz6JO93.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { n as getUserRoles } from "./userHelpers-DU_Z5OBA.mjs";
3
+ import { n as convertRouteSchema } from "./schemaConverter-C8zbW7tJ.mjs";
4
+ import { t as resolveActionPermission } from "./actionPermissions-CQQrR4tu.mjs";
5
+ import { t as pluralize } from "./pluralize-DgaYX91M.mjs";
6
+ import { t as buildActionBodySchema } from "./createActionRouter-CwDU_j2S.mjs";
7
7
  import fp from "fastify-plugin";
8
8
  //#region src/docs/openapi/canonical-schemas.ts
9
9
  /**
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { l as PermissionCheck } from "../base-C-NL2fTi.mjs";
3
- import { t as ArcModule } from "../types-DDD5RKTu.mjs";
3
+ import { t as ArcModule } from "../types-BMa2EPtv.mjs";
4
4
  import { OutboxStore } from "@classytic/primitives/outbox";
5
5
  //#region src/outbox-admin/module.d.ts
6
6
  /**
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { i as NotFoundError, u as ValidationError } from "../errors-DDKni6Tz.mjs";
3
- import { t as defineResource } from "../defineResource-DWzjyxb2.mjs";
4
- import { n as getModuleExports, t as defineModule } from "../module-CQNHzE7g.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { i as NotFoundError, u as ValidationError } from "../errors-DsdZc1Xv.mjs";
3
+ import { t as defineResource } from "../defineResource-WcbE1kJL.mjs";
4
+ import { n as getModuleExports, t as defineModule } from "../module-DIvG8qOg.mjs";
5
5
  //#region src/outbox-admin/module.ts
6
6
  /**
7
7
  * Strip the domain payload and the stack unless explicitly opted in.
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { a as EventTransport, n as DomainEvent, t as DeadLetteredEvent } from "./EventTransport-BEVP50ka.mjs";
3
- import { t as ArcModule } from "./types-DDD5RKTu.mjs";
3
+ import { t as ArcModule } from "./types-BMa2EPtv.mjs";
4
4
  import { FastifyInstance } from "fastify";
5
5
  import { MemoryOutboxStore } from "@classytic/primitives/memory-outbox";
6
6
  import { OutboxFailurePolicy, OutboxStore, OutboxWriteOptions } from "@classytic/primitives/outbox";
@@ -1,7 +1,7 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as transactionContext } from "./transactionContext-D2HwJM2z.mjs";
3
- import { i as resolveEventTransport } from "./EventTransport-D23Uvhg4.mjs";
4
- import { n as createSafeGetOne, t as createIsDuplicateKeyError } from "./store-helpers-Brt8OxWZ.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as transactionContext } from "./transactionContext-Ca5peQpc.mjs";
3
+ import { i as resolveEventTransport } from "./EventTransport-pGNNDQ__.mjs";
4
+ import { n as createSafeGetOne, t as createIsDuplicateKeyError } from "./store-helpers-bU8H5c-A.mjs";
5
5
  import { and, anyOf, eq, lte, ne, or } from "@classytic/repo-core/filter";
6
6
  import { randomBytes } from "node:crypto";
7
7
  import { InvalidOutboxEventError, OutboxOwnershipError } from "@classytic/primitives/outbox";
@@ -1,6 +1,6 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { a as conjoinPolicyFilters, i as normalizeToDecision, r as evaluatePermissionDecision, t as applyAuthorizationDecision } from "../authorizationDecision-EsiY3nUu.mjs";
3
- import { n as getUserRoles, r as normalizeRoles } from "../userHelpers-xQAi5bPF.mjs";
4
- import { i as resolveEffectiveRoles, n as applyFieldWritePermissions, r as fields, t as applyFieldReadPermissions } from "../fields-DdP225wt.mjs";
5
- import { A as requireAgentScope, B as requireAuth, C as createOrgPermissions, D as requireScopeContext, E as requireOrgRole, F as allowPublic, G as when, H as requirePlatformRole, I as anyOf, K as scopeOf, L as deny, M as requireMandate, N as allOf, O as requireServiceScope, P as allow, R as denyAll, S as createDynamicPermissionMatrix, T as requireOrgMembership, U as requireRoles, V as requireOwnership, W as roles, _ as requireGrant, a as adminOnly, b as describePermissionMap, c as ownerWithAdminBypass, d as publicRead, f as publicReadAdminWrite, g as modeSatisfies, h as GRANT_MODES, i as introspectRegistry, j as requireDPoP, k as requireTeamMembership, l as permissionMatrix, m as createRoleHierarchy, n as introspectCheck, o as authenticated, p as readOnly, r as introspectModule, s as fullPublic, t as buildPermissionMatrix, u as presets_exports, v as collectPublicSurface, w as requireOrgInScope, x as explainAccess, y as describePermission, z as not } from "../permissions-DgPrZsJh.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { a as conjoinPolicyFilters, i as normalizeToDecision, r as evaluatePermissionDecision, t as applyAuthorizationDecision } from "../authorizationDecision-DgyWdav8.mjs";
3
+ import { n as getUserRoles, r as normalizeRoles } from "../userHelpers-DU_Z5OBA.mjs";
4
+ import { i as resolveEffectiveRoles, n as applyFieldWritePermissions, r as fields, t as applyFieldReadPermissions } from "../fields-DvGz47Ul.mjs";
5
+ import { A as requireAgentScope, B as requireAuth, C as createOrgPermissions, D as requireScopeContext, E as requireOrgRole, F as allowPublic, G as when, H as requirePlatformRole, I as anyOf, K as scopeOf, L as deny, M as requireMandate, N as allOf, O as requireServiceScope, P as allow, R as denyAll, S as createDynamicPermissionMatrix, T as requireOrgMembership, U as requireRoles, V as requireOwnership, W as roles, _ as requireGrant, a as adminOnly, b as describePermissionMap, c as ownerWithAdminBypass, d as publicRead, f as publicReadAdminWrite, g as modeSatisfies, h as GRANT_MODES, i as introspectRegistry, j as requireDPoP, k as requireTeamMembership, l as permissionMatrix, m as createRoleHierarchy, n as introspectCheck, o as authenticated, p as readOnly, r as introspectModule, s as fullPublic, t as buildPermissionMatrix, u as presets_exports, v as collectPublicSurface, w as requireOrgInScope, x as explainAccess, y as describePermission, z as not } from "../permissions-DWkl60hx.mjs";
6
6
  export { GRANT_MODES, adminOnly, allOf, allow, allowPublic, anyOf, applyAuthorizationDecision, applyFieldReadPermissions, applyFieldWritePermissions, authenticated, buildPermissionMatrix, collectPublicSurface, conjoinPolicyFilters, createDynamicPermissionMatrix, createOrgPermissions, createRoleHierarchy, deny, denyAll, describePermission, describePermissionMap, evaluatePermissionDecision, explainAccess, fields, fullPublic, getUserRoles, introspectCheck, introspectModule, introspectRegistry, modeSatisfies, normalizeRoles, normalizeToDecision, not, ownerWithAdminBypass, permissionMatrix, presets_exports as permissions, publicRead, publicReadAdminWrite, readOnly, requireAgentScope, requireAuth, requireDPoP, requireGrant, requireMandate, requireOrgInScope, requireOrgMembership, requireOrgRole, requireOwnership, requirePlatformRole, requireRoles, requireScopeContext, requireServiceScope, requireTeamMembership, resolveEffectiveRoles, roles, scopeOf, when };
@@ -1,10 +1,10 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as __exportAll } from "./rolldown-runtime-JJWfp8rp.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-DrZrabOW.mjs";
3
3
  import { arcLog } from "./logger/index.mjs";
4
- import { a as conjoinPolicyFilters, i as normalizeToDecision } from "./authorizationDecision-EsiY3nUu.mjs";
5
- import { n as getUserRoles } from "./userHelpers-xQAi5bPF.mjs";
6
- import { C as isService, S as isOrgInScope, a as getDPoPJkt, b as isElevated, d as getScopeContext, f as getScopeContextMap, g as getUserId, m as getTeamId, n as PUBLIC_SCOPE, o as getMandate, p as getServiceScopes, u as getRequestScope, v as hasOrgAccess, x as isMember } from "./types-B8lwJv9Q.mjs";
7
- import { t as MemoryCacheStore } from "./memory-BU-C-MV3.mjs";
4
+ import { a as conjoinPolicyFilters, i as normalizeToDecision } from "./authorizationDecision-DgyWdav8.mjs";
5
+ import { n as getUserRoles } from "./userHelpers-DU_Z5OBA.mjs";
6
+ import { C as isService, S as isOrgInScope, a as getDPoPJkt, b as isElevated, d as getScopeContext, f as getScopeContextMap, g as getUserId, m as getTeamId, n as PUBLIC_SCOPE, o as getMandate, p as getServiceScopes, u as getRequestScope, v as hasOrgAccess, x as isMember } from "./types-lDs9oF4z.mjs";
7
+ import { t as MemoryCacheStore } from "./memory-BnafVem_.mjs";
8
8
  import { randomUUID } from "node:crypto";
9
9
  //#region src/permissions/context.ts
10
10
  /**
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { r as ForbiddenError } from "./errors-DDKni6Tz.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { r as ForbiddenError } from "./errors-DsdZc1Xv.mjs";
3
3
  //#region src/pipeline/pipe.ts
4
4
  /**
5
5
  * Compose pipeline steps into an ordered array.
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { n as pipe, t as executePipeline } from "../pipe-Cjy1UiXX.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { n as pipe, t as executePipeline } from "../pipe-Dbs3GhOZ.mjs";
3
3
  //#region src/pipeline/guard.ts
4
4
  /**
5
5
  * Create a named guard.
@@ -2,8 +2,8 @@
2
2
  import { t as AnyRecord } from "../base-C-NL2fTi.mjs";
3
3
  import { At as RouteDefinition, J as PresetHook, Q as MiddlewareConfig, et as RouteSchemaOptions } from "../index-C01wWGJt.mjs";
4
4
  import { i as errorHandlerPlugin, n as ErrorMapper, r as defaultIsDuplicateKeyError, t as ErrorHandlerOptions } from "../errorHandler-DI5AN2b5.mjs";
5
- import { _ as HealthCheck, b as healthPlugin, f as ScheduleDefinition, g as schedulesPlugin, h as _default$8, m as SchedulesPluginOptions, p as ScheduleStats, v as HealthOptions, y as _default$3 } from "../types-DDD5RKTu.mjs";
6
- import { a as arcCorePlugin, i as _default, n as ArcCorePluginOptions, r as PluginMeta, t as ArcCore } from "../fastify-augmentation-Bk_9PoiV.mjs";
5
+ import { _ as HealthCheck, b as healthPlugin, f as ScheduleDefinition, g as schedulesPlugin, h as _default$8, m as SchedulesPluginOptions, p as ScheduleStats, v as HealthOptions, y as _default$3 } from "../types-BMa2EPtv.mjs";
6
+ import { a as arcCorePlugin, i as _default, n as ArcCorePluginOptions, r as PluginMeta, t as ArcCore } from "../fastify-augmentation-CdY8FINU.mjs";
7
7
  import { _ as CachingRule, a as MetricsCollector, c as metricsPlugin, d as _default$6, f as realtimePlugin, g as CachingOptions, h as ssePlugin, i as MetricEntry, l as ChangeOperation, m as _default$9, n as _default$10, o as MetricsOptions, p as SSEOptions, r as versioningPlugin, s as _default$4, t as VersioningOptions, u as RealtimeOptions, v as _default$1, y as cachingPlugin } from "../versioning-DEs-_hFi.mjs";
8
8
  import { t as TracingOptions } from "../tracing-Dro5eH6j.mjs";
9
9
  import { PaginatedResult } from "@classytic/repo-core/pagination";
@@ -1,20 +1,20 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { p as MUTATION_OPERATIONS } from "../constants-DUoKAGYD.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { p as MUTATION_OPERATIONS } from "../constants-CUpamQMJ.mjs";
3
3
  import { arcLog } from "../logger/index.mjs";
4
- import { c as getOrgId } from "../types-B8lwJv9Q.mjs";
5
- import { n as requestContext } from "../requestContext-B93dmpf0.mjs";
6
- import { t as hasEvents } from "../typeGuards-IE1laMDf.mjs";
7
- import { t as HookSystem } from "../HookSystem-DgwxNZTx.mjs";
8
- import { t as ResourceRegistry } from "../ResourceRegistry-DNuYVbmv.mjs";
9
- import { a as requestIdPlugin, i as createRequestIdGenerator, n as health_default, o as requestId_default, s as sanitizeRequestId, t as healthPlugin } from "../health-k6NODS8f.mjs";
10
- import { n as caching_default, t as cachingPlugin } from "../caching-CP3GLJ7U.mjs";
11
- import { n as errorHandlerPlugin, t as defaultIsDuplicateKeyError } from "../errorHandler-2RT0hLSI.mjs";
12
- import { n as metrics_default, t as metricsPlugin } from "../metrics-7_1GbJpl.mjs";
13
- import { n as realtime_default, t as realtimePlugin } from "../realtime-BBoC91Bz.mjs";
14
- import { t as replyHelpersPlugin } from "../replyHelpers-BN16KPHr.mjs";
15
- import { n as schedules_default, t as schedulesPlugin } from "../schedules-CKKEL21P.mjs";
16
- import { n as sse_default, t as ssePlugin } from "../sse-Bxt03Hk5.mjs";
17
- import { n as versioning_default, t as versioningPlugin } from "../versioning-COpAyfpZ.mjs";
4
+ import { c as getOrgId } from "../types-lDs9oF4z.mjs";
5
+ import { n as requestContext } from "../requestContext-DGM7EZRI.mjs";
6
+ import { t as hasEvents } from "../typeGuards-ALWme5WB.mjs";
7
+ import { t as HookSystem } from "../HookSystem-CuhHvcyZ.mjs";
8
+ import { t as ResourceRegistry } from "../ResourceRegistry-DFOmazXg.mjs";
9
+ import { a as requestIdPlugin, i as createRequestIdGenerator, n as health_default, o as requestId_default, s as sanitizeRequestId, t as healthPlugin } from "../health-Cc_sb94d.mjs";
10
+ import { n as caching_default, t as cachingPlugin } from "../caching-BmC2T-pX.mjs";
11
+ import { n as errorHandlerPlugin, t as defaultIsDuplicateKeyError } from "../errorHandler-CB75oY5i.mjs";
12
+ import { n as metrics_default, t as metricsPlugin } from "../metrics-CeAIcVMY.mjs";
13
+ import { n as realtime_default, t as realtimePlugin } from "../realtime-CiAp2-LH.mjs";
14
+ import { t as replyHelpersPlugin } from "../replyHelpers-D1k0wHoO.mjs";
15
+ import { n as schedules_default, t as schedulesPlugin } from "../schedules-CVtolEa-.mjs";
16
+ import { n as sse_default, t as ssePlugin } from "../sse-vRuwDd6N.mjs";
17
+ import { n as versioning_default, t as versioningPlugin } from "../versioning-Dtw0MyX4.mjs";
18
18
  import fp from "fastify-plugin";
19
19
  import { performance as performance$1 } from "node:perf_hooks";
20
20
  //#region src/core/arcCorePlugin.ts
@@ -1,5 +1,5 @@
1
- /*! @classytic/arc v2.36.0 | MIT | https://classytic.com */
2
- import { t as hasEvents } from "../typeGuards-IE1laMDf.mjs";
1
+ /*! @classytic/arc v2.37.0 | MIT | https://classytic.com */
2
+ import { t as hasEvents } from "../typeGuards-ALWme5WB.mjs";
3
3
  import fp from "fastify-plugin";
4
4
  //#region src/plugins/response-cache.ts
5
5
  /**