@classytic/arc 2.28.0 → 2.31.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 (239) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -0
  3. package/TRADEMARK.md +22 -0
  4. package/dist/{BaseController-B65zbz9m.mjs → BaseController-De7GqHck.mjs} +25 -24
  5. package/dist/{EventTransport-QmY7A258.d.mts → EventTransport-2uVV34WU.d.mts} +1 -0
  6. package/dist/EventTransport-9mlTgqzE.mjs +104 -0
  7. package/dist/{HookSystem-C1vB_Gc9.mjs → HookSystem-BcmPyq5I.mjs} +16 -35
  8. package/dist/{QueryCache-DOMT_iq7.d.mts → QueryCache-DFA-QrU9.d.mts} +2 -1
  9. package/dist/{ResourceRegistry-y9Hnypus.mjs → ResourceRegistry-qq0mn2s9.mjs} +3 -2
  10. package/dist/{actionPermissions-CAphcmUG.mjs → actionPermissions-BE5NwaQk.mjs} +1 -0
  11. package/dist/audit/index.d.mts +3 -2
  12. package/dist/audit/index.mjs +3 -2
  13. package/dist/auth/audit.d.mts +1 -0
  14. package/dist/auth/audit.mjs +1 -0
  15. package/dist/auth/index.d.mts +5 -4
  16. package/dist/auth/index.mjs +6 -5
  17. package/dist/auth/redis-session.d.mts +2 -1
  18. package/dist/auth/redis-session.mjs +1 -0
  19. package/dist/authorizationDecision-ChvUQGG1.mjs +266 -0
  20. package/dist/{buildHandler-Dtwd8fdz.mjs → buildHandler-CDrCJzmB.mjs} +34 -7
  21. package/dist/cache/index.d.mts +4 -3
  22. package/dist/cache/index.mjs +4 -3
  23. package/dist/{caching-_NJeDd1_.mjs → caching-BFHA6Scf.mjs} +2 -1
  24. package/dist/cleanup/index.d.mts +4 -3
  25. package/dist/cleanup/index.mjs +9 -13
  26. package/dist/cli/commands/describe.d.mts +2 -1
  27. package/dist/cli/commands/describe.mjs +3 -2
  28. package/dist/cli/commands/docs.d.mts +1 -0
  29. package/dist/cli/commands/docs.mjs +3 -2
  30. package/dist/cli/commands/doctor.d.mts +1 -0
  31. package/dist/cli/commands/doctor.mjs +1 -0
  32. package/dist/cli/commands/generate.d.mts +2 -1
  33. package/dist/cli/commands/generate.mjs +2 -1
  34. package/dist/cli/commands/init.d.mts +2 -1
  35. package/dist/cli/commands/init.mjs +2 -1
  36. package/dist/cli/commands/introspect.d.mts +1 -0
  37. package/dist/cli/commands/introspect.mjs +2 -1
  38. package/dist/cli/index.d.mts +3 -2
  39. package/dist/cli/index.mjs +3 -2
  40. package/dist/{constants-DNre0wRg.mjs → constants-D3Dv4LAV.mjs} +1 -0
  41. package/dist/context/index.d.mts +1 -0
  42. package/dist/context/index.mjs +3 -2
  43. package/dist/core/index.d.mts +3 -2
  44. package/dist/core/index.mjs +7 -5
  45. package/dist/{core-BGa8TXJR.mjs → core-BGpIxINN.mjs} +4 -49
  46. package/dist/{createActionRouter-C-N7z2EL.mjs → createActionRouter-CDXEdasl.mjs} +8 -7
  47. package/dist/{createAggregationRouter-wzwFa_dW.mjs → createAggregationRouter-KrQDzx-k.mjs} +10 -22
  48. package/dist/{createApp-Du5G54TM.mjs → createApp-Df89BEni.mjs} +505 -209
  49. package/dist/defineAggregation-DbPPS8RI.mjs +48 -0
  50. package/dist/{defineResource-2zvVVpxg.mjs → defineResource-Bv6EtN1x.mjs} +90 -72
  51. package/dist/discovery/index.d.mts +1 -0
  52. package/dist/discovery/index.mjs +1 -0
  53. package/dist/docs/index.d.mts +3 -2
  54. package/dist/docs/index.mjs +3 -2
  55. package/dist/{elevation-C9s5hFP_.d.mts → elevation-BXCfVcNG.d.mts} +1 -0
  56. package/dist/{elevation-CIz1GjGm.mjs → elevation-D2l1mh4g.mjs} +4 -3
  57. package/dist/encryption/index.d.mts +2 -1
  58. package/dist/encryption/index.mjs +3 -2
  59. package/dist/{errorHandler-Bq2OeEQL.mjs → errorHandler-C5NeD6bT.mjs} +3 -2
  60. package/dist/{errorHandler-C6yv4ZTW.d.mts → errorHandler-CpYUJmPA.d.mts} +1 -0
  61. package/dist/{errors-DHcHVAgk.d.mts → errors-BGdVwP25.d.mts} +1 -0
  62. package/dist/{errors-DkO8Nk6-.mjs → errors-Cj42AntO.mjs} +1 -0
  63. package/dist/{eventPlugin-DrQ_FesK.mjs → eventPlugin-CkffEihm.mjs} +6 -106
  64. package/dist/{eventPlugin-Bg3cP2_u.d.mts → eventPlugin-GF5nnBIq.d.mts} +2 -1
  65. package/dist/events/index.d.mts +4 -3
  66. package/dist/events/index.mjs +17 -340
  67. package/dist/events/transports/redis-stream-entry.d.mts +2 -1
  68. package/dist/events/transports/redis-stream-entry.mjs +1 -0
  69. package/dist/events/transports/redis.d.mts +2 -1
  70. package/dist/events/transports/redis.mjs +1 -0
  71. package/dist/{externalPaths-BE6wFpYv.d.mts → externalPaths-CmGOxOtD.d.mts} +1 -0
  72. package/dist/factory/index.d.mts +9 -5
  73. package/dist/factory/index.mjs +7 -6
  74. package/dist/{fastify-augmentation-OzYGIiU1.d.mts → fastify-augmentation-zh0_AYHa.d.mts} +13 -4
  75. package/dist/{applyPermissionResult-BnyVE9eD.mjs → fields-CB5Cuzk9.mjs} +2 -107
  76. package/dist/{fields-D3lhgzhD.d.mts → fields-I_EeRWND.d.mts} +1 -0
  77. package/dist/{generate-BnsL9GBm.d.mts → generate-DCGuEbqI.d.mts} +1 -0
  78. package/dist/{generate-D0wZupBg.mjs → generate-EcA6ui4i.mjs} +2 -1
  79. package/dist/{headers-BvlQSDMB.mjs → headers-3zvE0rM3.mjs} +2 -1
  80. package/dist/{health-CB_m4S32.mjs → health-DjZYjM7H.mjs} +1 -0
  81. package/dist/hooks/index.d.mts +2 -1
  82. package/dist/hooks/index.mjs +2 -1
  83. package/dist/idempotency/index.d.mts +3 -2
  84. package/dist/idempotency/index.mjs +5 -4
  85. package/dist/idempotency/redis.d.mts +2 -1
  86. package/dist/idempotency/redis.mjs +1 -0
  87. package/dist/{index-CjVg-Epg.d.mts → index-Bc2ox8_U.d.mts} +6 -5
  88. package/dist/{index-CG4yqMDB.d.mts → index-C-481Zf2.d.mts} +74 -18
  89. package/dist/{index-BMnbzvtO.d.mts → index-CEJNZFtX.d.mts} +242 -24
  90. package/dist/index-CFThn1K9.d.mts +224 -0
  91. package/dist/{index-DPRH0Cme.d.mts → index-CpzxqePp.d.mts} +203 -97
  92. package/dist/index.d.mts +9 -8
  93. package/dist/index.mjs +11 -9
  94. package/dist/{init-tlRSt667.mjs → init-BEiNZBsJ.mjs} +19 -23
  95. package/dist/{init-BPEu8cs-.d.mts → init-Cscs4lab.d.mts} +1 -0
  96. package/dist/integrations/event-gateway.d.mts +3 -2
  97. package/dist/integrations/event-gateway.mjs +2 -1
  98. package/dist/integrations/index.d.mts +4 -3
  99. package/dist/integrations/index.mjs +1 -0
  100. package/dist/integrations/jobs/index.d.mts +2 -1
  101. package/dist/integrations/jobs/index.mjs +108 -32
  102. package/dist/integrations/mcp/index.d.mts +9 -9
  103. package/dist/integrations/mcp/index.mjs +2 -1
  104. package/dist/integrations/mcp/testing.d.mts +3 -2
  105. package/dist/integrations/mcp/testing.mjs +2 -2
  106. package/dist/integrations/streamline.d.mts +1 -0
  107. package/dist/integrations/streamline.mjs +3 -2
  108. package/dist/integrations/webhooks.d.mts +1 -0
  109. package/dist/integrations/webhooks.mjs +1 -0
  110. package/dist/integrations/websocket-pushref-redis.d.mts +2 -1
  111. package/dist/integrations/websocket-pushref-redis.mjs +1 -0
  112. package/dist/integrations/websocket-redis.d.mts +2 -1
  113. package/dist/integrations/websocket-redis.mjs +1 -0
  114. package/dist/integrations/websocket.d.mts +3 -2
  115. package/dist/integrations/websocket.mjs +1 -0
  116. package/dist/{interface-BGZCzOGL.d.mts → interface-BOk3YnTz.d.mts} +1 -0
  117. package/dist/{interface-Uk8ONJv7.d.mts → interface-DEWNOMza.d.mts} +1 -0
  118. package/dist/{interface-n5hpKg1d.mjs → interface-DYzM0q-u.mjs} +1 -0
  119. package/dist/{jsonBody-BlzAoGCe.mjs → jsonBody-BYbLDi5D.mjs} +2 -1
  120. package/dist/{keys-Cd316u_y.mjs → keys-C0_pa1tY.mjs} +1 -0
  121. package/dist/{loadResources-DpU8pfjV.mjs → loadResources-yawi9tAE.mjs} +2 -1
  122. package/dist/{loadResourcesFromEntry-kvGT6EcO.mjs → loadResourcesFromEntry-BAjYZonx.mjs} +2 -1
  123. package/dist/logger/index.d.mts +1 -0
  124. package/dist/logger/index.mjs +1 -0
  125. package/dist/{mcpPlugin-Cs6nRGCt.mjs → mcpPlugin-B_es0hiF.mjs} +52 -60
  126. package/dist/{memory-CmnzXE5Z.mjs → memory-DR6wpa9F.mjs} +2 -1
  127. package/dist/{metrics-fdxI5mn_.mjs → metrics-CUdw_wLB.mjs} +2 -1
  128. package/dist/middleware/index.d.mts +2 -1
  129. package/dist/middleware/index.mjs +3 -2
  130. package/dist/migrations/index.d.mts +1 -3
  131. package/dist/migrations/index.mjs +2 -4
  132. package/dist/module-0pFJA6YW.mjs +78 -0
  133. package/dist/{multipartBody-D0eBvkeq.mjs → multipartBody-wOgj_fnj.mjs} +1 -0
  134. package/dist/{openapi-BLV4OMXb.mjs → openapi-B2L4js1v.mjs} +6 -5
  135. package/dist/permissions/index.d.mts +5 -4
  136. package/dist/permissions/index.mjs +6 -4
  137. package/dist/{permissions-BrtiBKGs.mjs → permissions-L--QDAir.mjs} +518 -316
  138. package/dist/{pipe-BOLmGIxa.mjs → pipe-DRDNsI2T.mjs} +2 -1
  139. package/dist/pipeline/index.d.mts +2 -1
  140. package/dist/pipeline/index.mjs +2 -1
  141. package/dist/{pipeline-BGRnV-To.mjs → pipeline-UPQFatit.mjs} +7 -20
  142. package/dist/plugins/index.d.mts +8 -7
  143. package/dist/plugins/index.mjs +16 -15
  144. package/dist/plugins/response-cache.d.mts +1 -0
  145. package/dist/plugins/response-cache.mjs +2 -1
  146. package/dist/plugins/tracing-entry.d.mts +2 -1
  147. package/dist/plugins/tracing-entry.mjs +2 -1
  148. package/dist/{pluralize-BhrgwZb9.mjs → pluralize-O0FZgESl.mjs} +1 -0
  149. package/dist/{preloadResources-CM4uUaFv.d.mts → preloadResources-CyoJMSiO.d.mts} +117 -12
  150. package/dist/{preloadResources-DSY5HGpS.mjs → preloadResources-Dz6BjzM6.mjs} +1 -0
  151. package/dist/presets/filesUpload.d.mts +6 -5
  152. package/dist/presets/filesUpload.mjs +9 -11
  153. package/dist/presets/index.d.mts +15 -2
  154. package/dist/presets/index.mjs +2 -1
  155. package/dist/presets/multiTenant.d.mts +2 -1
  156. package/dist/presets/multiTenant.mjs +3 -2
  157. package/dist/presets/search.d.mts +3 -2
  158. package/dist/presets/search.mjs +2 -1
  159. package/dist/{presets-DwFDVKP0.mjs → presets-C4-g4_4P.mjs} +27 -10
  160. package/dist/projection-BHw6xlOQ.mjs +18 -0
  161. package/dist/{pushref-registry-BbcnpNTm.d.mts → pushref-registry-Dov9l4qE.d.mts} +1 -0
  162. package/dist/{queryCachePlugin-DSGuSVLW.mjs → queryCachePlugin-BZr8v46E.mjs} +5 -4
  163. package/dist/{queryCachePlugin-br4otiqF.d.mts → queryCachePlugin-BzqxconG.d.mts} +3 -2
  164. package/dist/{rateLimit-DrED-C4v.mjs → rateLimit-CMPY5Qms.mjs} +7 -3
  165. package/dist/{rateLimitKey-BoWRH3e7.mjs → rateLimitKey-Dn5JNmkj.mjs} +1 -0
  166. package/dist/{realtime-DEuDu9io.mjs → realtime-C5NoxWFY.mjs} +20 -8
  167. package/dist/{redis-UDtLaNj6.d.mts → redis-CduhKsJi.d.mts} +2 -1
  168. package/dist/{redis-stream-uIaauNpZ.d.mts → redis-stream-qN6A-RFv.d.mts} +2 -1
  169. package/dist/{registerRoute-DTp18Ah_.mjs → registerRoute-CBN84fc7.mjs} +5 -2
  170. package/dist/registry/index.d.mts +3 -2
  171. package/dist/registry/index.mjs +3 -2
  172. package/dist/{registry-9km_w1aP.mjs → registry-4213U4zb.mjs} +3 -2
  173. package/dist/{renewingLease-3cuQH7h8.mjs → renewingLease-Dll8mGgc.mjs} +1 -0
  174. package/dist/{replyHelpers-67tRawQZ.mjs → replyHelpers-DIiZKGUt.mjs} +2 -1
  175. package/dist/repositoryFilter-f9eAfq_l.mjs +45 -0
  176. package/dist/{requestContext-MrlJwECf.mjs → requestContext-2TxXOJ7T.mjs} +1 -0
  177. package/dist/{rolldown-runtime-8H4AJuhK.mjs → rolldown-runtime-CUsjNX9R.mjs} +1 -0
  178. package/dist/{schedules-CjOd2MG9.mjs → schedules-DdtlICTf.mjs} +3 -2
  179. package/dist/{schemaConverter-DJvodiHj.mjs → schemaConverter-D--wdJM-.mjs} +70 -17
  180. package/dist/{schemaIR-Ca7ySNPx.mjs → schemaIR-Bm2enbnh.mjs} +2 -1
  181. package/dist/schemas/index.d.mts +1 -0
  182. package/dist/schemas/index.mjs +1 -0
  183. package/dist/scim/index.d.mts +1 -0
  184. package/dist/scim/index.mjs +2 -1
  185. package/dist/scope/index.d.mts +3 -2
  186. package/dist/scope/index.mjs +5 -4
  187. package/dist/{scope-DfaPntpo.mjs → scope-DHx5Fous.mjs} +4 -3
  188. package/dist/{sessionManager-BHOM3N_0.d.mts → sessionManager-qimlKV0P.d.mts} +1 -0
  189. package/dist/{simpleEqualityMatcher-Cg05HPsn.mjs → simpleEqualityMatcher-DjQJ7FKA.mjs} +1 -0
  190. package/dist/{sse-BQ1w0dfl.mjs → sse-CUTo9y0X.mjs} +5 -4
  191. package/dist/{sseStream-BQ7Qaynp.mjs → sseStream-B_5XcVVd.mjs} +2 -1
  192. package/dist/{storage-DLUZ04kK.d.mts → storage-Cx9Sz3Ou.d.mts} +1 -0
  193. package/dist/{store-helpers-DY6xq4sM.mjs → store-helpers-D1MP_gRG.mjs} +1 -0
  194. package/dist/{streaming-BQcW6_Kq.mjs → streaming-PSZwi8JV.mjs} +1 -0
  195. package/dist/subscribe-helpers-C0Tb2aUp.mjs +340 -0
  196. package/dist/sync/changelog.d.mts +1 -0
  197. package/dist/sync/changelog.mjs +1 -0
  198. package/dist/testing/cleanupStoreContract.d.mts +2 -1
  199. package/dist/testing/cleanupStoreContract.mjs +1 -0
  200. package/dist/testing/index.d.mts +167 -12
  201. package/dist/testing/index.mjs +522 -205
  202. package/dist/testing/outboxStoreContract.d.mts +1 -0
  203. package/dist/testing/outboxStoreContract.mjs +1 -0
  204. package/dist/testing/storageContract.d.mts +2 -1
  205. package/dist/testing/storageContract.mjs +1 -0
  206. package/dist/{tracing-CsGKQJGg.d.mts → tracing-Dro5eH6j.d.mts} +1 -0
  207. package/dist/{transactionContext-PNdoyLLm.mjs → transactionContext-dAfBVUrk.mjs} +1 -0
  208. package/dist/{typeGuards-C9KXUly6.mjs → typeGuards-B0ryPo3I.mjs} +1 -0
  209. package/dist/types/index.d.mts +6 -5
  210. package/dist/types/index.mjs +1 -0
  211. package/dist/types/storage.d.mts +2 -1
  212. package/dist/types/storage.mjs +1 -0
  213. package/dist/{types-Dmw-6Qeo.d.mts → types-B7XeLEgK.d.mts} +127 -90
  214. package/dist/{types-Cc91nXuA.d.mts → types-ByHn9rEO.d.mts} +1 -0
  215. package/dist/{types-C_ZZRcD6.d.mts → types-C4QE8qnm.d.mts} +1 -0
  216. package/dist/{types-Cu6vVJmh.d.mts → types-CBgvkp8O.d.mts} +82 -12
  217. package/dist/{types-DjC-KUCz.d.mts → types-ChuShpCP.d.mts} +1 -0
  218. package/dist/{types-QFGc3Cjv.d.mts → types-CwcUQ610.d.mts} +2 -6
  219. package/dist/{types-CSyCxl2V.mjs → types-Cys0ko9Z.mjs} +4 -3
  220. package/dist/usage/index.d.mts +3 -2
  221. package/dist/usage/index.mjs +0 -0
  222. package/dist/{userHelpers-Cg_y3fBz.mjs → userHelpers-ChYJ6CdK.mjs} +1 -0
  223. package/dist/utils/index.d.mts +16 -10
  224. package/dist/utils/index.mjs +10 -9
  225. package/dist/{utils-taUVD4p3.mjs → utils-vL8BrDE2.mjs} +3 -2
  226. package/dist/{validate-Bk44F2yT.mjs → validate-_KbifpHF.mjs} +2 -1
  227. package/dist/{versioning-gKWyryT3.mjs → versioning-CHDTor3P.mjs} +3 -2
  228. package/dist/{versioning-DXgY5BUm.d.mts → versioning-D_rhHfZm.d.mts} +5 -2
  229. package/dist/{websocket-_Pd0CgR0.d.mts → websocket-BOXVggMf.d.mts} +2 -1
  230. package/package.json +15 -7
  231. package/skills/arc/SKILL.md +22 -8
  232. package/skills/arc/references/api-reference.md +4 -0
  233. package/skills/arc/references/auth.md +3 -0
  234. package/skills/arc/references/integrations.md +33 -0
  235. package/skills/arc/references/mcp.md +6 -7
  236. package/skills/arc/references/production.md +24 -25
  237. package/skills/arc-code-review/references/anti-patterns.md +3 -3
  238. package/dist/index-CZY4EGga.d.mts +0 -107
  239. package/dist/module-_-M7C5ES.mjs +0 -29
@@ -1,4 +1,5 @@
1
- import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-CUsjNX9R.mjs";
2
3
  import { arcLog } from "./logger/index.mjs";
3
4
  import { readdir } from "node:fs/promises";
4
5
  import { dirname, join, resolve } from "node:path";
@@ -1,4 +1,5 @@
1
- import { t as ResourceRegistry } from "./ResourceRegistry-y9Hnypus.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { t as ResourceRegistry } from "./ResourceRegistry-qq0mn2s9.mjs";
2
3
  import { resolve } from "node:path";
3
4
  import { pathToFileURL } from "node:url";
4
5
  //#region src/cli/utils/loadResourcesFromEntry.ts
@@ -1,3 +1,4 @@
1
+
1
2
  //#region src/logger/index.d.ts
2
3
  /**
3
4
  * Arc Logger — Centralized debug & warning system
@@ -1,3 +1,4 @@
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
1
2
  //#region src/logger/index.ts
2
3
  let globalOptions = {};
3
4
  /**
@@ -1,16 +1,19 @@
1
- import { p as isArcError, t as ArcError } from "./errors-DkO8Nk6-.mjs";
2
- import { n as requireSingleHeaderValue } from "./headers-BvlQSDMB.mjs";
3
- import { b as isElevated, c as getOrgId, g as getUserId, x as isMember } from "./types-CSyCxl2V.mjs";
4
- import { t as BaseController } from "./BaseController-B65zbz9m.mjs";
5
- import { i as applyFieldReadPermissions, r as normalizePermissionResult, s as resolveEffectiveRoles } from "./applyPermissionResult-BnyVE9eD.mjs";
6
- import { t as executePipeline } from "./pipe-BOLmGIxa.mjs";
7
- import { r as resolvePipelineSteps, u as buildRequestScopeProjection } from "./pipeline-BGRnV-To.mjs";
8
- import { n as validateAggregations } from "./validate-Bk44F2yT.mjs";
9
- import { n as executeAggregation } from "./buildHandler-Dtwd8fdz.mjs";
10
- import { t as pluralize } from "./pluralize-BhrgwZb9.mjs";
11
- import { t as resolveActionPermission } from "./actionPermissions-CAphcmUG.mjs";
12
- import { t as createIdempotencyResult } from "./interface-n5hpKg1d.mjs";
13
- import { r as shouldRejectAdditionalProperties, t as normalizeSchemaIR } from "./schemaIR-Ca7ySNPx.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { r as evaluatePermissionDecision } from "./authorizationDecision-ChvUQGG1.mjs";
3
+ import { p as isArcError, t as ArcError } from "./errors-Cj42AntO.mjs";
4
+ import { n as requireSingleHeaderValue } from "./headers-3zvE0rM3.mjs";
5
+ import { b as isElevated, c as getOrgId, g as getUserId, x as isMember } from "./types-Cys0ko9Z.mjs";
6
+ import { t as BaseController } from "./BaseController-De7GqHck.mjs";
7
+ import { i as resolveEffectiveRoles, t as applyFieldReadPermissions } from "./fields-CB5Cuzk9.mjs";
8
+ import { t as executePipeline } from "./pipe-DRDNsI2T.mjs";
9
+ import { t as buildRequestScopeProjection } from "./projection-BHw6xlOQ.mjs";
10
+ import { r as resolvePipelineSteps } from "./pipeline-UPQFatit.mjs";
11
+ import { n as validateAggregations } from "./validate-_KbifpHF.mjs";
12
+ import { n as executeAggregation } from "./buildHandler-CDrCJzmB.mjs";
13
+ import { t as pluralize } from "./pluralize-O0FZgESl.mjs";
14
+ import { t as resolveActionPermission } from "./actionPermissions-BE5NwaQk.mjs";
15
+ import { t as createIdempotencyResult } from "./interface-DYzM0q-u.mjs";
16
+ import { r as shouldRejectAdditionalProperties, t as normalizeSchemaIR } from "./schemaIR-Bm2enbnh.mjs";
14
17
  import { isHttpError, toErrorContract } from "@classytic/repo-core/errors";
15
18
  import { createHash, randomUUID } from "node:crypto";
16
19
  import fp from "fastify-plugin";
@@ -181,9 +184,9 @@ function registerPrompt(server, prompt) {
181
184
  * | delete | { id } | {} | undefined |
182
185
  *
183
186
  * **scopeOverride** — when a permission check (e.g. `requireApiKey()`) returns
184
- * `PermissionResult.scope`, the MCP tool handler must install it on the request
185
- * context the same way CRUD/action routes do. This parameter follows the exact
186
- * same non-downgrade rule as `applyPermissionResult`: it overrides only when
187
+ * an `AuthorizationDecision.scope`, the MCP tool handler must install it on the
188
+ * request context the same way CRUD/action routes do. This parameter follows the exact
189
+ * same non-downgrade rule as `applyAuthorizationDecision`: it overrides only when
187
190
  * the session-derived scope is `public` (i.e. MCP called with `auth: false`).
188
191
  * An authenticated session scope is never overwritten.
189
192
  */
@@ -353,39 +356,30 @@ function buildScope(auth) {
353
356
  /**
354
357
  * Evaluate a resource's permission check in MCP context.
355
358
  *
356
- * Returns the full normalized `PermissionResult` so the caller can honor
357
- * ALL side-effects (filters + scope) consistently with CRUD/action routes.
358
- * Returns `null` when no permission is defined (= allow, no side effects).
359
+ * Returns the full normalized {@link AuthorizationDecision} so the caller can
360
+ * honor ALL side-effects (data policy + scope) consistently with CRUD/action
361
+ * routes. Returns `null` when no permission is defined (= allow, no side effects).
359
362
  *
360
- * Promoting booleans to `PermissionResult` via the shared
361
- * `normalizePermissionResult` helper keeps the contract aligned with the
362
- * rest of arc — one normalization path for every call site.
363
+ * This is the MCP transport adapter: it builds a `PermissionContext` from the
364
+ * MCP session and delegates the actual decision to the ONE transport-neutral
365
+ * `evaluatePermissionDecision` — same normalization + exception mapping every
366
+ * surface uses, so MCP enforcement can't drift from HTTP/aggregation.
363
367
  */
364
368
  async function evaluatePermission(check, session, resource, action, input) {
365
369
  if (!check) return null;
366
- const user = session ? {
367
- id: session.userId,
368
- _id: session.userId,
369
- ...session
370
- } : null;
371
- const scope = buildScope(session);
372
- return normalizePermissionResult(await check({
373
- user,
374
- request: {
375
- user,
376
- headers: {},
377
- params: {},
378
- query: {},
379
- body: input,
380
- scope,
381
- metadata: { _scope: scope }
382
- },
370
+ return evaluatePermissionDecision(check, {
371
+ user: session ? {
372
+ id: session.userId,
373
+ _id: session.userId,
374
+ ...session
375
+ } : null,
376
+ scope: buildScope(session),
383
377
  resource,
384
378
  action,
385
379
  resourceId: typeof input.id === "string" ? input.id : void 0,
386
380
  params: {},
387
381
  data: input
388
- }));
382
+ });
389
383
  }
390
384
  /**
391
385
  * Apply field-level READ permissions to an MCP tool payload — the same
@@ -399,7 +393,7 @@ async function evaluatePermission(check, session, resource, action, input) {
399
393
  * `requireOrgRole()` and `BodySanitizer` bypass logic.
400
394
  * - Effective roles = session roles ∪ org roles (member scope only),
401
395
  * via the shared `resolveEffectiveRoles`.
402
- * - `scopeOverride` (a `PermissionResult.scope`) follows the same
396
+ * - `scopeOverride` (a decision's `scope`) follows the same
403
397
  * non-downgrade rule as `buildRequestContext`: honored only when the
404
398
  * session-derived scope is `public`.
405
399
  *
@@ -639,14 +633,14 @@ async function invokeController(controller, op, input, options) {
639
633
  status: 501
640
634
  });
641
635
  const permResult = await evaluatePermission(permissions, session, resourceName, actionName, input);
642
- if (permResult && !permResult.granted) return permissionDeniedResult({
636
+ if (permResult && permResult.effect !== "allow") return permissionDeniedResult({
643
637
  resource: resourceName,
644
638
  operation: actionName,
645
639
  reason: permResult.reason,
646
640
  session
647
641
  });
648
642
  const dispatch = async () => {
649
- const reqCtx = buildRequestContext(input, session, op, permResult?.filters, permResult?.scope, buildContextExtras(options));
643
+ const reqCtx = buildRequestContext(input, session, op, permResult?.policy, permResult?.scope, buildContextExtras(options));
650
644
  const response = await method(reqCtx);
651
645
  const data = applyMcpReadMasking(response.data, {
652
646
  fields,
@@ -1217,7 +1211,7 @@ function createActionToolHandler(actionName, handler, permissions, resourceName,
1217
1211
  });
1218
1212
  }
1219
1213
  const permResult = await evaluatePermission(permissions, session, resourceName, actionName, input);
1220
- if (permResult && !permResult.granted) return permissionDeniedResult({
1214
+ if (permResult && permResult.effect !== "allow") return permissionDeniedResult({
1221
1215
  resource: resourceName,
1222
1216
  operation: `action.${actionName}`,
1223
1217
  reason: permResult.reason,
@@ -1226,7 +1220,7 @@ function createActionToolHandler(actionName, handler, permissions, resourceName,
1226
1220
  const reqCtx = buildRequestContext({
1227
1221
  ...input,
1228
1222
  action: actionName
1229
- }, session, "action", permResult?.filters, permResult?.scope, contextExtras);
1223
+ }, session, "action", permResult?.policy, permResult?.scope, contextExtras);
1230
1224
  const id = idLess ? "" : typeof input.id === "string" ? input.id : "";
1231
1225
  const { id: _discardId, ...data } = input;
1232
1226
  try {
@@ -1319,7 +1313,7 @@ function createAggregationToolHandler(args) {
1319
1313
  const { normalized, permissions, resourceName, repo, buildOptionsFromSession, fields } = args;
1320
1314
  return async (input, ctx) => {
1321
1315
  const permResult = await evaluatePermission(permissions, ctx.session, resourceName, `aggregation:${normalized.name}`, input);
1322
- if (permResult && !permResult.granted) return permissionDeniedResult({
1316
+ if (permResult && permResult.effect !== "allow") return permissionDeniedResult({
1323
1317
  resource: resourceName,
1324
1318
  operation: `aggregation:${normalized.name}`,
1325
1319
  reason: permResult.reason,
@@ -1327,13 +1321,13 @@ function createAggregationToolHandler(args) {
1327
1321
  });
1328
1322
  const filterInput = input.filter ?? {};
1329
1323
  const tenantOptions = buildOptionsFromSession(ctx.session);
1330
- if (permResult?.filters) Object.assign(tenantOptions, { _policyFilters: permResult.filters });
1331
1324
  const result = await executeAggregation(normalized, {
1332
1325
  repo,
1333
1326
  buildOptions: () => tenantOptions
1334
1327
  }, {
1335
1328
  query: filterInput,
1336
- tenantOptions
1329
+ tenantOptions,
1330
+ policyFilter: permResult?.policy
1337
1331
  });
1338
1332
  if (result.status === 200) {
1339
1333
  const body = result.body;
@@ -1641,7 +1635,7 @@ function mapJsonSchemaTypeToArcType(jsonType) {
1641
1635
  *
1642
1636
  * 1. `mcpHandler` (full bypass) — caller-supplied function owns the whole
1643
1637
  * tool result; pipeline is not invoked.
1644
- * 2. Function handler with `raw: false/undefined` — arc's pipeline wrapper
1638
+ * 2. Function in `handler` (the arc pipeline) — arc's pipeline wrapper
1645
1639
  * runs normally, and the envelope is serialized into the tool result.
1646
1640
  * 3. String handler — looks up a method on the controller by name.
1647
1641
  */
@@ -1676,8 +1670,8 @@ function operationKindForRoute(method, hasId) {
1676
1670
  *
1677
1671
  * Enforces the same contract as the REST route:
1678
1672
  * 1. **Permission evaluation** via the shared `evaluatePermission` — the
1679
- * exact path CRUD and action MCP tools use. Filters and scope from a
1680
- * `PermissionResult` thread through `buildRequestContext`.
1673
+ * exact path CRUD and action MCP tools use. Policy and scope from the
1674
+ * `AuthorizationDecision` thread through `buildRequestContext`.
1681
1675
  * 2. **Pipeline integration** — function handlers run inside
1682
1676
  * `executePipeline` with the same steps the HTTP path resolves.
1683
1677
  * 3. **Controller dispatch** for string handlers.
@@ -1710,14 +1704,14 @@ function createCustomRouteHandler(route, controller, hasId, options) {
1710
1704
  return async (input, _ctx) => {
1711
1705
  const session = _ctx.session;
1712
1706
  const permResult = await evaluatePermission(permissions, session, resourceName, operationName, input);
1713
- if (permResult && !permResult.granted) return permissionDeniedResult({
1707
+ if (permResult && permResult.effect !== "allow") return permissionDeniedResult({
1714
1708
  resource: resourceName,
1715
1709
  operation: operationName,
1716
1710
  reason: permResult.reason,
1717
1711
  session
1718
1712
  });
1719
1713
  try {
1720
- const reqCtx = buildRequestContext(input, session, operationKindForRoute(route.method, hasId), permResult?.filters, permResult?.scope, contextExtras);
1714
+ const reqCtx = buildRequestContext(input, session, operationKindForRoute(route.method, hasId), permResult?.policy, permResult?.scope, contextExtras);
1721
1715
  const emit = (envelope) => {
1722
1716
  const data = applyMcpReadMasking(envelope.data, {
1723
1717
  fields,
@@ -1879,10 +1873,10 @@ function resourceToTools(resource, config = {}) {
1879
1873
  for (const route of resource.routes ?? []) {
1880
1874
  if (route.mcp === false) continue;
1881
1875
  const mcpHandler = route.mcpHandler;
1882
- if (!!route.raw && !mcpHandler) continue;
1876
+ if (!(route.rawHandler === void 0) && !mcpHandler) continue;
1883
1877
  if (!mcpHandler && typeof route.handler === "string" && !controller) continue;
1884
1878
  const routeWithRef = route;
1885
- let resolvedRouteHandler = route.handler;
1879
+ let resolvedRouteHandler = route.handler ?? route.rawHandler;
1886
1880
  if (typeof routeWithRef.controllerMethod === "function" && !resolvedRouteHandler) {
1887
1881
  if (!controller) continue;
1888
1882
  const referenced = routeWithRef.controllerMethod(controller);
@@ -2197,7 +2191,6 @@ const mcpPluginImpl = async (fastify, options) => {
2197
2191
  }
2198
2192
  const enabledResources = filterResourcesForMcp(options.resources, {
2199
2193
  expose: options.expose,
2200
- include: options.include,
2201
2194
  exclude: options.exclude
2202
2195
  });
2203
2196
  const fastifyAny = fastify;
@@ -2472,11 +2465,10 @@ function registerStatefulRoutes(fastify, prefix, options, cache, createServer, T
2472
2465
  * same precedence rules without duplicating them.
2473
2466
  */
2474
2467
  function filterResourcesForMcp(resources, inputs) {
2475
- const { expose, include, exclude } = inputs;
2476
- if (expose && include) throw new Error("mcpPlugin: pass either `expose` (preferred) or `include` (legacy alias), not both.");
2477
- if (expose && exclude) throw new Error("mcpPlugin: `expose` is default-deny — `exclude` is redundant. Drop `exclude` or switch to `include`/`exclude` for default-allow semantics.");
2468
+ const { expose, exclude } = inputs;
2469
+ if (expose && exclude) throw new Error("mcpPlugin: `expose` is default-deny (an allowlist) — `exclude` is redundant alongside it. Use `expose` to name what to surface, OR `exclude` to drop specific resources from the default-allow set. Not both.");
2478
2470
  const eligible = resources.filter((r) => r.mcp !== false);
2479
- const allow = expose ?? include;
2471
+ const allow = expose;
2480
2472
  if (allow) {
2481
2473
  const allowSet = new Set(allow);
2482
2474
  return eligible.filter((r) => allowSet.has(r.name));
@@ -1,4 +1,5 @@
1
- import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-CUsjNX9R.mjs";
2
3
  //#region src/cache/memory.ts
3
4
  var memory_exports = /* @__PURE__ */ __exportAll({ MemoryCacheStore: () => MemoryCacheStore });
4
5
  /**
@@ -1,4 +1,5 @@
1
- import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { t as __exportAll } from "./rolldown-runtime-CUsjNX9R.mjs";
2
3
  import fp from "fastify-plugin";
3
4
  //#region src/plugins/metrics.ts
4
5
  var metrics_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,5 @@
1
- import { I as MiddlewareHandler, L as RequestWithExtras, Q as MiddlewareConfig } from "../index-DPRH0Cme.mjs";
1
+
2
+ import { I as MiddlewareHandler, L as RequestWithExtras, Q as MiddlewareConfig } from "../index-CpzxqePp.mjs";
2
3
  import { RouteHandlerMethod } from "fastify";
3
4
  //#region src/middleware/middleware.d.ts
4
5
  interface NamedMiddleware {
@@ -1,5 +1,6 @@
1
- import { t as CRUD_OPERATIONS } from "../constants-DNre0wRg.mjs";
2
- import { t as multipartBody } from "../multipartBody-D0eBvkeq.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { t as CRUD_OPERATIONS } from "../constants-D3Dv4LAV.mjs";
3
+ import { t as multipartBody } from "../multipartBody-wOgj_fnj.mjs";
3
4
  //#region src/middleware/middleware.ts
4
5
  /**
5
6
  * Named Middleware — Priority-based, conditional middleware execution.
@@ -1,3 +1,4 @@
1
+
1
2
  import { LockAdapter } from "@classytic/repo-core/lock";
2
3
  //#region src/migrations/index.d.ts
3
4
  interface Migration {
@@ -229,9 +230,6 @@ declare class MigrationRunner {
229
230
  * Get all applied migrations
230
231
  */
231
232
  getAppliedMigrations(): Promise<MigrationRecord[]>;
232
- /**
233
- * Get pending migrations
234
- */
235
233
  getPendingMigrations(migrations: Migration[]): Promise<Migration[]>;
236
234
  /**
237
235
  * Check if migrations are up to date
@@ -1,4 +1,5 @@
1
- import { t as startRenewingLease } from "../renewingLease-3cuQH7h8.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { t as startRenewingLease } from "../renewingLease-Dll8mGgc.mjs";
2
3
  import { createHash, randomUUID } from "node:crypto";
3
4
  //#region src/migrations/index.ts
4
5
  /**
@@ -277,9 +278,6 @@ var MigrationRunner = class {
277
278
  async getAppliedMigrations() {
278
279
  return this.store.getApplied();
279
280
  }
280
- /**
281
- * Get pending migrations
282
- */
283
281
  async getPendingMigrations(migrations) {
284
282
  const applied = await this.store.getApplied();
285
283
  const appliedVersions = new Set(applied.map((m) => `${m.resource}:${m.version}`));
@@ -0,0 +1,78 @@
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ //#region src/factory/module/index.ts
3
+ /**
4
+ * Identity helper for authoring a typed module — mirrors `defineResource`.
5
+ * Gives inference + a single obvious construction site; does no work.
6
+ *
7
+ * `TExports` is inferred from the `bootstrap` return value, so a module
8
+ * author gets a typed public export for free:
9
+ *
10
+ * ```ts
11
+ * export const accountingModule = (deps: Deps) =>
12
+ * defineModule({
13
+ * name: "accounting",
14
+ * bootstrap: async () => createAccountingEngine(deps), // TExports inferred
15
+ * });
16
+ * ```
17
+ */
18
+ function defineModule(module) {
19
+ return module;
20
+ }
21
+ function getModuleExports(fastify, name) {
22
+ const recorded = readModuleExports(fastify, name);
23
+ if (recorded === ABSENT) {
24
+ const available = fastify.arc?.modules ? Object.keys(fastify.arc.modules) : [];
25
+ throw new Error(`[arc] no public export recorded for module "${name}".\nA module's export is its bootstrap() return value; it is readable only AFTER that module's bootstrap ran (dependsOn / list order = init order).\nModules with recorded exports: ${available.length ? available.join(", ") : "(none)"}.`);
26
+ }
27
+ return recorded;
28
+ }
29
+ /**
30
+ * Sentinel for "no entry recorded", distinct from a recorded `undefined`.
31
+ *
32
+ * registerResources never records an `undefined` export, so today the two
33
+ * cannot both happen — but encoding absence as `undefined` would make the
34
+ * optional/required accessors disagree the day that changes, and a required
35
+ * accessor that stops throwing is exactly the silent-null class of bug these
36
+ * helpers exist to remove.
37
+ */
38
+ const ABSENT = Symbol("arc.module.absent");
39
+ /** The one honest read of the module-export map, shared by every accessor. */
40
+ function readModuleExports(fastify, name) {
41
+ const modules = fastify.arc?.modules;
42
+ if (!modules || !Object.hasOwn(modules, name)) return ABSENT;
43
+ return modules[name];
44
+ }
45
+ function getOptionalModuleExports(fastify, name) {
46
+ const recorded = readModuleExports(fastify, name);
47
+ return recorded === ABSENT ? void 0 : recorded;
48
+ }
49
+ /**
50
+ * Is a module's public export recorded yet? The predicate form of
51
+ * `getOptionalModuleExports`, for readiness gates (`ready: () => ...`) that
52
+ * should not have to reason about falsy-but-present exports.
53
+ */
54
+ function hasModuleExports(fastify, name) {
55
+ return readModuleExports(fastify, name) !== ABSENT;
56
+ }
57
+ function lazyModuleExports(fastify, name) {
58
+ let resolved = ABSENT;
59
+ return () => {
60
+ if (resolved === ABSENT) resolved = readModuleExports(fastify, name);
61
+ return resolved === ABSENT ? void 0 : resolved;
62
+ };
63
+ }
64
+ function lazyRequiredModuleExports(fastify, name) {
65
+ const states = fastify.arc?.moduleStates;
66
+ if (states !== void 0 && !Object.hasOwn(states, name)) {
67
+ const composed = Object.keys(states);
68
+ throw new Error(`[arc] lazyRequiredModuleExports("${name}"): module "${name}" is not in the composed module graph. A lazily-required module is still a HARD dependency — compose it (and declare it in the consumer's \`dependsOn\`), or use lazyModuleExports() if the integration is genuinely optional.
69
+ Composed modules: ${composed.length ? composed.join(", ") : "(none)"}.`);
70
+ }
71
+ let resolved = ABSENT;
72
+ return () => {
73
+ if (resolved === ABSENT) resolved = getModuleExports(fastify, name);
74
+ return resolved;
75
+ };
76
+ }
77
+ //#endregion
78
+ export { lazyModuleExports as a, hasModuleExports as i, getModuleExports as n, lazyRequiredModuleExports as o, getOptionalModuleExports as r, defineModule as t };
@@ -1,3 +1,4 @@
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
1
2
  import sjson from "secure-json-parse";
2
3
  //#region src/middleware/multipartBody.ts
3
4
  const DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
@@ -1,8 +1,9 @@
1
- import { n as getUserRoles } from "./userHelpers-Cg_y3fBz.mjs";
2
- import { n as convertRouteSchema } from "./schemaConverter-DJvodiHj.mjs";
3
- import { t as pluralize } from "./pluralize-BhrgwZb9.mjs";
4
- import { t as resolveActionPermission } from "./actionPermissions-CAphcmUG.mjs";
5
- import { t as buildActionBodySchema } from "./createActionRouter-C-N7z2EL.mjs";
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { n as getUserRoles } from "./userHelpers-ChYJ6CdK.mjs";
3
+ import { n as convertRouteSchema } from "./schemaConverter-D--wdJM-.mjs";
4
+ import { t as pluralize } from "./pluralize-O0FZgESl.mjs";
5
+ import { t as resolveActionPermission } from "./actionPermissions-BE5NwaQk.mjs";
6
+ import { t as buildActionBodySchema } from "./createActionRouter-CDXEdasl.mjs";
6
7
  import fp from "fastify-plugin";
7
8
  //#region src/docs/openapi/canonical-schemas.ts
8
9
  /**
@@ -1,4 +1,5 @@
1
- import { i as UserBase, n as PermissionContext, o as getUserRoles, r as PermissionResult, s as normalizeRoles, t as PermissionCheck } from "../types-Dmw-6Qeo.mjs";
2
- import { a as applyFieldWritePermissions, i as applyFieldReadPermissions, n as FieldPermissionMap, o as fields, r as FieldPermissionType, s as resolveEffectiveRoles, t as FieldPermission } from "../fields-D3lhgzhD.mjs";
3
- import { A as allOf, B as applyPermissionResult, C as requireGrant, D as PermissionEventBus, E as DynamicPermissionMatrixConfig, F as requireAuth, G as requireDPoP, H as RequireAgentScopeOptions, I as requireOwnership, K as requireMandate, L as requireRoles, M as anyOf, N as denyAll, O as createDynamicPermissionMatrix, P as not, R as roles, S as modeSatisfies, T as DynamicPermissionMatrix, U as RequireMandateOptions, V as normalizePermissionResult, W as requireAgentScope, _ as createRoleHierarchy, a as permissionMatrix, b as GrantResolution, c as publicReadAdminWrite, d as requireOrgMembership, f as requireOrgRole, g as RoleHierarchy, h as requireTeamMembership, i as ownerWithAdminBypass, j as allowPublic, k as createOrgPermissions, l as readOnly, m as requireServiceScope, n as authenticated, o as presets_d_exports, p as requireScopeContext, r as fullPublic, s as publicRead, t as adminOnly, u as requireOrgInScope, v as GRANT_MODES, w as ConnectEventsOptions, x as RequireGrantOptions, y as GrantMode, z as when } from "../index-BMnbzvtO.mjs";
4
- export { type ConnectEventsOptions, type DynamicPermissionMatrix, type DynamicPermissionMatrixConfig, type FieldPermission, type FieldPermissionMap, type FieldPermissionType, GRANT_MODES, type GrantMode, type GrantResolution, type PermissionCheck, type PermissionContext, type PermissionEventBus, type PermissionResult, type RequireAgentScopeOptions, type RequireGrantOptions, type RequireMandateOptions, type RoleHierarchy, type UserBase, adminOnly, allOf, allowPublic, anyOf, applyFieldReadPermissions, applyFieldWritePermissions, applyPermissionResult, authenticated, createDynamicPermissionMatrix, createOrgPermissions, createRoleHierarchy, denyAll, fields, fullPublic, getUserRoles, modeSatisfies, normalizePermissionResult, normalizeRoles, not, ownerWithAdminBypass, permissionMatrix, presets_d_exports as permissions, publicRead, publicReadAdminWrite, readOnly, requireAgentScope, requireAuth, requireDPoP, requireGrant, requireMandate, requireOrgInScope, requireOrgMembership, requireOrgRole, requireOwnership, requireRoles, requireScopeContext, requireServiceScope, requireTeamMembership, resolveEffectiveRoles, roles, when };
1
+
2
+ import { a as UserBase, c as normalizeRoles, i as PermissionContext, n as DataPolicy, r as PermissionCheck, s as getUserRoles, t as AuthorizationDecision } from "../types-B7XeLEgK.mjs";
3
+ import { a as applyFieldWritePermissions, i as applyFieldReadPermissions, n as FieldPermissionMap, o as fields, r as FieldPermissionType, s as resolveEffectiveRoles, t as FieldPermission } from "../fields-I_EeRWND.mjs";
4
+ import { $ as evaluatePermissionDecision, A as explainAccess, B as anyOf, C as requireGrant, D as collectPublicSurface, E as PermissionRequirement, F as createDynamicPermissionMatrix, G as requireOwnership, H as denyAll, I as createOrgPermissions, J as roles, K as requirePlatformRole, L as allOf, M as DynamicPermissionMatrix, N as DynamicPermissionMatrixConfig, O as describePermission, P as PermissionEventBus, Q as applyAuthorizationDecision, R as allow, S as modeSatisfies, T as AccessExplanation, U as not, V as deny, W as requireAuth, X as scopeOf, Y as when, Z as PermissionCheckReturn, _ as createRoleHierarchy, a as permissionMatrix, at as requireMandate, b as GrantResolution, c as publicReadAdminWrite, d as requireOrgMembership, et as normalizeToDecision, f as requireOrgRole, g as RoleHierarchy, h as requireTeamMembership, i as ownerWithAdminBypass, it as requireDPoP, j as ConnectEventsOptions, k as describePermissionMap, l as readOnly, m as requireServiceScope, n as authenticated, nt as RequireMandateOptions, o as presets_d_exports, p as requireScopeContext, q as requireRoles, r as fullPublic, rt as requireAgentScope, s as publicRead, t as adminOnly, tt as RequireAgentScopeOptions, u as requireOrgInScope, v as GRANT_MODES, w as conjoinPolicyFilters, x as RequireGrantOptions, y as GrantMode, z as allowPublic } from "../index-CEJNZFtX.mjs";
5
+ export { type AccessExplanation, type AuthorizationDecision, type ConnectEventsOptions, type DataPolicy, type DynamicPermissionMatrix, type DynamicPermissionMatrixConfig, type FieldPermission, type FieldPermissionMap, type FieldPermissionType, GRANT_MODES, type GrantMode, type GrantResolution, type PermissionCheck, type PermissionCheckReturn, type PermissionContext, type PermissionEventBus, type PermissionRequirement, type RequireAgentScopeOptions, type RequireGrantOptions, type RequireMandateOptions, type RoleHierarchy, type UserBase, adminOnly, allOf, allow, allowPublic, anyOf, applyAuthorizationDecision, applyFieldReadPermissions, applyFieldWritePermissions, authenticated, collectPublicSurface, conjoinPolicyFilters, createDynamicPermissionMatrix, createOrgPermissions, createRoleHierarchy, deny, denyAll, describePermission, describePermissionMap, evaluatePermissionDecision, explainAccess, fields, fullPublic, getUserRoles, modeSatisfies, normalizeRoles, normalizeToDecision, not, ownerWithAdminBypass, permissionMatrix, presets_d_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,4 +1,6 @@
1
- import { n as getUserRoles, r as normalizeRoles } from "../userHelpers-Cg_y3fBz.mjs";
2
- import { a as applyFieldWritePermissions, i as applyFieldReadPermissions, o as fields, r as normalizePermissionResult, s as resolveEffectiveRoles, t as applyPermissionResult } from "../applyPermissionResult-BnyVE9eD.mjs";
3
- import { A as requireAuth, C as requireDPoP, D as anyOf, E as allowPublic, M as requireRoles, N as roles, O as denyAll, P as when, S as requireAgentScope, T as allOf, _ as requireOrgMembership, a as permissionMatrix, b as requireServiceScope, c as publicReadAdminWrite, d as GRANT_MODES, f as modeSatisfies, g as requireOrgInScope, h as createOrgPermissions, i as ownerWithAdminBypass, j as requireOwnership, k as not, l as readOnly, m as createDynamicPermissionMatrix, n as authenticated, o as presets_exports, p as requireGrant, r as fullPublic, s as publicRead, t as adminOnly, u as createRoleHierarchy, v as requireOrgRole, w as requireMandate, x as requireTeamMembership, y as requireScopeContext } from "../permissions-BrtiBKGs.mjs";
4
- export { GRANT_MODES, adminOnly, allOf, allowPublic, anyOf, applyFieldReadPermissions, applyFieldWritePermissions, applyPermissionResult, authenticated, createDynamicPermissionMatrix, createOrgPermissions, createRoleHierarchy, denyAll, fields, fullPublic, getUserRoles, modeSatisfies, normalizePermissionResult, normalizeRoles, not, ownerWithAdminBypass, permissionMatrix, presets_exports as permissions, publicRead, publicReadAdminWrite, readOnly, requireAgentScope, requireAuth, requireDPoP, requireGrant, requireMandate, requireOrgInScope, requireOrgMembership, requireOrgRole, requireOwnership, requireRoles, requireScopeContext, requireServiceScope, requireTeamMembership, resolveEffectiveRoles, roles, when };
1
+ /*! @classytic/arc v2.31.0 | MIT | https://classytic.com */
2
+ import { a as conjoinPolicyFilters, i as normalizeToDecision, r as evaluatePermissionDecision, t as applyAuthorizationDecision } from "../authorizationDecision-ChvUQGG1.mjs";
3
+ import { n as getUserRoles, r as normalizeRoles } from "../userHelpers-ChYJ6CdK.mjs";
4
+ import { i as resolveEffectiveRoles, n as applyFieldWritePermissions, r as fields, t as applyFieldReadPermissions } from "../fields-CB5Cuzk9.mjs";
5
+ import { A as allow, B as roles, C as requireScopeContext, D as requireDPoP, E as requireAgentScope, F as not, H as scopeOf, I as requireAuth, L as requireOwnership, M as anyOf, N as deny, O as requireMandate, P as denyAll, R as requirePlatformRole, S as requireOrgRole, T as requireTeamMembership, V as when, _ as explainAccess, a as permissionMatrix, b as requireOrgInScope, c as publicReadAdminWrite, d as GRANT_MODES, f as modeSatisfies, g as describePermissionMap, h as describePermission, i as ownerWithAdminBypass, j as allowPublic, k as allOf, l as readOnly, m as collectPublicSurface, n as authenticated, o as presets_exports, p as requireGrant, r as fullPublic, s as publicRead, t as adminOnly, u as createRoleHierarchy, v as createDynamicPermissionMatrix, w as requireServiceScope, x as requireOrgMembership, y as createOrgPermissions, z as requireRoles } from "../permissions-L--QDAir.mjs";
6
+ export { GRANT_MODES, adminOnly, allOf, allow, allowPublic, anyOf, applyAuthorizationDecision, applyFieldReadPermissions, applyFieldWritePermissions, authenticated, collectPublicSurface, conjoinPolicyFilters, createDynamicPermissionMatrix, createOrgPermissions, createRoleHierarchy, deny, denyAll, describePermission, describePermissionMap, evaluatePermissionDecision, explainAccess, fields, fullPublic, getUserRoles, 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 };