@classytic/arc 2.41.0 → 2.43.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 (230) hide show
  1. package/dist/{EventTransport-CbUKDzZZ.d.mts → EventTransport-CiicKz2Z.d.mts} +1 -1
  2. package/dist/{EventTransport-n7qO5Cz3.mjs → EventTransport-tzA7CAB4.mjs} +22 -17
  3. package/dist/{HookSystem-CxvZBo77.mjs → HookSystem-B6UaKRbF.mjs} +2 -2
  4. package/dist/{QueryCache-DFA-QrU9.d.mts → QueryCache--5uAuYPW.d.mts} +7 -3
  5. package/dist/{ResourceRegistry-Cu7uTJp9.mjs → ResourceRegistry-CuCARu2B.mjs} +44 -13
  6. package/dist/actionPermissions-BotX1YOa.mjs +776 -0
  7. package/dist/audit/index.d.mts +43 -5
  8. package/dist/audit/index.mjs +48 -26
  9. package/dist/auth/audit.mjs +1 -1
  10. package/dist/auth/index.d.mts +43 -13
  11. package/dist/auth/index.mjs +130 -155
  12. package/dist/auth/redis-session.mjs +1 -1
  13. package/dist/{authorizationDecision-2YY_Kaj1.mjs → authorizationDecision-DQYrkl5f.mjs} +7 -102
  14. package/dist/{base-CxrV1LmG.d.mts → base-CZyixEQR.d.mts} +27 -5
  15. package/dist/boundedMap-BULzfXYU.mjs +57 -0
  16. package/dist/{buildHandler-CUhjGHGZ.mjs → buildHandler-CRQ8EcX5.mjs} +4 -4
  17. package/dist/cache/index.d.mts +22 -34
  18. package/dist/cache/index.mjs +4 -4
  19. package/dist/{caching-DsWDjIxx.mjs → caching-Cc2M1DwO.mjs} +3 -3
  20. package/dist/claimed-B10RTfkM.mjs +8 -0
  21. package/dist/cleanup/index.d.mts +6 -10
  22. package/dist/cleanup/index.mjs +27 -73
  23. package/dist/cli/commands/describe.d.mts +4 -2
  24. package/dist/cli/commands/describe.mjs +7 -4
  25. package/dist/cli/commands/docs.mjs +3 -3
  26. package/dist/cli/commands/doctor.mjs +1 -1
  27. package/dist/cli/commands/generate.mjs +2 -2
  28. package/dist/cli/commands/init.mjs +2 -2
  29. package/dist/cli/commands/introspect.mjs +2 -2
  30. package/dist/cli/index.mjs +3 -3
  31. package/dist/{constants-BxLgNFF7.mjs → constants-Cu7Mx7_U.mjs} +4 -2
  32. package/dist/context/index.d.mts +2 -5
  33. package/dist/context/index.mjs +18 -38
  34. package/dist/core/index.d.mts +3 -3
  35. package/dist/core/index.mjs +8 -8
  36. package/dist/{core-iNGqYerO.mjs → core-Cb0LjccA.mjs} +5 -4
  37. package/dist/{createActionRouter-BBlbPs3k.mjs → createActionRouter-xjqonMRO.mjs} +87 -39
  38. package/dist/{createAggregationRouter-Dv5SuK2x.mjs → createAggregationRouter-zRYWw_5D.mjs} +11 -8
  39. package/dist/{preloadResources-Bbp4QJ8V.mjs → createApp-D-953ZAq.mjs} +299 -390
  40. package/dist/{createMcpServer-CbDWkZ1T.d.mts → createMcpServer-C9cxS8zt.d.mts} +1 -1
  41. package/dist/{defineAggregation-UyeurGkp.mjs → defineAggregation-Bm8RjMbq.mjs} +1 -1
  42. package/dist/{defineResource-DzGT-2LP.mjs → defineResource-DIC7JZGU.mjs} +118 -1024
  43. package/dist/discovery/index.mjs +1 -1
  44. package/dist/docs/index.d.mts +10 -4
  45. package/dist/docs/index.mjs +4 -4
  46. package/dist/{elevation-BXCfVcNG.d.mts → elevation-BW2J3tNj.d.mts} +1 -2
  47. package/dist/{elevation-BF-vhGxY.mjs → elevation-DG8SrLN-.mjs} +41 -12
  48. package/dist/encryption/index.mjs +3 -3
  49. package/dist/{errorHandler-CIMkCOWm.mjs → errorHandler-BnfDviL1.mjs} +26 -5
  50. package/dist/{errors-C_YhELhe.mjs → errors-CtrywMHP.mjs} +58 -23
  51. package/dist/{errors-BGdVwP25.d.mts → errors-JYc9vwqE.d.mts} +9 -0
  52. package/dist/{eventPlugin-B52abJ8W.d.mts → eventPlugin-BtmA4-3P.d.mts} +65 -9
  53. package/dist/{eventPlugin-CmXaPWLv.mjs → eventPlugin-Q6BhzHzs.mjs} +82 -21
  54. package/dist/{subscribe-helpers-AVYPgqTl.mjs → eventTypes-Cdhm6ZlV.mjs} +151 -17
  55. package/dist/events/index.d.mts +33 -8
  56. package/dist/events/index.mjs +49 -53
  57. package/dist/events/transports/redis-stream-entry.d.mts +1 -1
  58. package/dist/events/transports/redis-stream-entry.mjs +139 -157
  59. package/dist/events/transports/redis.d.mts +1 -1
  60. package/dist/events/transports/redis.mjs +2 -2
  61. package/dist/factory/index.d.mts +32 -17
  62. package/dist/factory/index.mjs +213 -32
  63. package/dist/{fastify-augmentation-Cq2nHVaW.d.mts → fastify-augmentation-DhUJ-mvo.d.mts} +11 -25
  64. package/dist/{fields-I_EeRWND.d.mts → fields-BBSpf8pS.d.mts} +1 -1
  65. package/dist/{fields-BTyPLHK0.mjs → fields-ToPYpMqS.mjs} +1 -1
  66. package/dist/filter-merge-IpGywvym.mjs +99 -0
  67. package/dist/{generate-D_YmiCNf.mjs → generate-DRTkLlIl.mjs} +2 -2
  68. package/dist/{headers-CNECDE6q.mjs → headers-BbkIF6vA.mjs} +2 -2
  69. package/dist/health-D-Ft6JM6.mjs +22 -0
  70. package/dist/{health-CxQzbJmr.mjs → health-DqbsG-_w.mjs} +115 -55
  71. package/dist/hooks/index.d.mts +2 -2
  72. package/dist/hooks/index.mjs +2 -2
  73. package/dist/idempotency/index.d.mts +31 -7
  74. package/dist/idempotency/index.mjs +155 -98
  75. package/dist/idempotency/redis.d.mts +1 -1
  76. package/dist/idempotency/redis.mjs +48 -11
  77. package/dist/{index-BHdZD8zK.d.mts → index-Bxriq3so.d.mts} +84 -21
  78. package/dist/{preloadResources-CjS2OfpU.d.mts → index-C8zVGYsk.d.mts} +37 -38
  79. package/dist/{index-D4u76eQW.d.mts → index-CRoPtISf.d.mts} +23 -73
  80. package/dist/{index-CbJiYrfv.d.mts → index-Chgz3d0i.d.mts} +1 -1
  81. package/dist/index-JdbZAIsm.d.mts +510 -0
  82. package/dist/{index-DHbyPo5j.d.mts → index-mqaqZNpe.d.mts} +253 -254
  83. package/dist/index.d.mts +8 -8
  84. package/dist/index.mjs +11 -11
  85. package/dist/{init-Y2MlSN9n.mjs → init-B_oUYDXI.mjs} +1 -1
  86. package/dist/integrations/event-gateway.d.mts +8 -3
  87. package/dist/integrations/event-gateway.mjs +4 -4
  88. package/dist/integrations/index.d.mts +3 -3
  89. package/dist/integrations/index.mjs +1 -1
  90. package/dist/integrations/jobs/index.d.mts +1 -1
  91. package/dist/integrations/jobs/index.mjs +18 -5
  92. package/dist/integrations/mcp/index.d.mts +72 -59
  93. package/dist/integrations/mcp/index.mjs +19 -4
  94. package/dist/integrations/mcp/testing.d.mts +2 -2
  95. package/dist/integrations/mcp/testing.mjs +2 -2
  96. package/dist/integrations/streamline.d.mts +78 -136
  97. package/dist/integrations/streamline.mjs +116 -54
  98. package/dist/integrations/webhooks.d.mts +60 -120
  99. package/dist/integrations/webhooks.mjs +36 -80
  100. package/dist/integrations/websocket-pushref-redis.d.mts +1 -1
  101. package/dist/integrations/websocket-pushref-redis.mjs +1 -1
  102. package/dist/integrations/websocket-redis.d.mts +1 -1
  103. package/dist/integrations/websocket-redis.mjs +1 -1
  104. package/dist/integrations/websocket.d.mts +3 -3
  105. package/dist/integrations/websocket.mjs +2 -2
  106. package/dist/{interface-DEWNOMza.d.mts → interface-C0395yUN.d.mts} +13 -1
  107. package/dist/{jsonBody-Cq9KYl2Z.mjs → jsonBody-B4YVGcql.mjs} +2 -2
  108. package/dist/{keys-Cmv4cBRa.mjs → keys-B2KtgMLJ.mjs} +7 -18
  109. package/dist/{loadResources-CblF7xt2.mjs → loadResources-Dn4lalw2.mjs} +3 -3
  110. package/dist/{loadResourcesFromEntry-99fIMC3p.mjs → loadResourcesFromEntry-3sLYbuse.mjs} +2 -2
  111. package/dist/logger/index.d.mts +1 -8
  112. package/dist/logger/index.mjs +3 -153
  113. package/dist/logger-DXjfIqjV.mjs +160 -0
  114. package/dist/{mcpPlugin-xF3Gw-HW.mjs → mcpPlugin-C08HalN5.mjs} +433 -170
  115. package/dist/{memory-CpDZ9NPw.mjs → memory-9Cp7611C.mjs} +36 -34
  116. package/dist/{metrics-BaKnq8ag.mjs → metrics-CWI11eRu.mjs} +39 -72
  117. package/dist/middleware/index.d.mts +2 -2
  118. package/dist/middleware/index.mjs +3 -3
  119. package/dist/migrations/index.mjs +2 -2
  120. package/dist/{module-BkQEesNQ.mjs → module-BSvOQC7E.mjs} +8 -8
  121. package/dist/multiTenant-cY0FkDiA.d.mts +104 -0
  122. package/dist/{multipartBody-C92aJ8am.mjs → multipartBody-CXM2a-Dy.mjs} +46 -7
  123. package/dist/{openapi-C3LFRzPq.mjs → openapi-DT_G4VhY.mjs} +48 -10
  124. package/dist/outbox-admin/index.d.mts +3 -3
  125. package/dist/outbox-admin/index.mjs +6 -18
  126. package/dist/{outbox-module-dsCyLxXH.mjs → outbox-module-Bjgzl6tg.mjs} +203 -33
  127. package/dist/{outbox-module-BHdUnuuK.d.mts → outbox-module-gZCHoE4H.d.mts} +79 -6
  128. package/dist/permissions/index.d.mts +5 -4
  129. package/dist/permissions/index.mjs +8 -6
  130. package/dist/{permissions-DiHXy8Ck.mjs → permissions-Cm0uYHvd.mjs} +149 -33
  131. package/dist/{pipe-CBVmUJ-j.mjs → pipe-BqeGT6UO.mjs} +2 -2
  132. package/dist/pipeline/index.d.mts +2 -2
  133. package/dist/pipeline/index.mjs +2 -2
  134. package/dist/plan-FVR6LP59.mjs +565 -0
  135. package/dist/{BaseController-DYJRZ0EJ.mjs → plugin-BccET1tL.mjs} +1256 -344
  136. package/dist/plugins/index.d.mts +14 -11
  137. package/dist/plugins/index.mjs +44 -22
  138. package/dist/plugins/response-cache.mjs +8 -14
  139. package/dist/plugins/tracing-entry.mjs +2 -2
  140. package/dist/{pluralize-2_U6QZQg.mjs → pluralize-CVIOcgMF.mjs} +1 -1
  141. package/dist/presets/filesUpload.d.mts +2 -2
  142. package/dist/presets/filesUpload.mjs +5 -5
  143. package/dist/presets/index.d.mts +26 -31
  144. package/dist/presets/index.mjs +4 -4
  145. package/dist/presets/multiTenant.d.mts +2 -107
  146. package/dist/presets/multiTenant.mjs +22 -162
  147. package/dist/presets/search.d.mts +2 -2
  148. package/dist/presets/search.mjs +2 -2
  149. package/dist/{presets-BdlugYTc.mjs → presets-Cpvj6fGO.mjs} +99 -107
  150. package/dist/{projection-Uvgp-EEj.mjs → projection-Ce4aQhQk.mjs} +2 -2
  151. package/dist/{pushref-registry-Dov9l4qE.d.mts → pushref-registry-UxCkoA4C.d.mts} +1 -1
  152. package/dist/{queryCachePlugin-BzqxconG.d.mts → queryCachePlugin-C2lZjTxk.d.mts} +1 -1
  153. package/dist/{queryCachePlugin-B5F09bYr.mjs → queryCachePlugin-CFWNH8aT.mjs} +12 -14
  154. package/dist/{rateLimitKey-CK-EU2L8.mjs → rateLimitKey-C4O-kPm0.mjs} +1 -1
  155. package/dist/{realtime-FnnD0n3Z.mjs → realtime-DmPE9S54.mjs} +25 -21
  156. package/dist/redis-stream-BMk-bpQS.d.mts +219 -0
  157. package/dist/{redis-Bzi1y3F9.d.mts → redis-vLvtcGy_.d.mts} +13 -24
  158. package/dist/redisShapes-CQksY67q.d.mts +55 -0
  159. package/dist/registry/index.d.mts +9 -4
  160. package/dist/registry/index.mjs +4 -4
  161. package/dist/{registry-D3y8VEJ1.mjs → registry-Bcz9G1bh.mjs} +10 -8
  162. package/dist/{renewingLease-B3VYh5aU.mjs → renewingLease-qODa7KJQ.mjs} +1 -1
  163. package/dist/{replyHelpers-DPHsdw-5.mjs → replyHelpers-CG_VtVgS.mjs} +2 -2
  164. package/dist/{requestContext-cSVKnYPk.mjs → requestContext-Dsu9P1bV.mjs} +1 -1
  165. package/dist/requirement-CbiLdQ1n.d.mts +22 -0
  166. package/dist/requirement-KDdoRcOP.mjs +35 -0
  167. package/dist/resourceRateLimit-Wf6d6FL9.d.mts +30 -0
  168. package/dist/resourceRateLimit-dSjVr1pk.mjs +180 -0
  169. package/dist/{rolldown-runtime-DjDuyglE.mjs → rolldown-runtime-D1w9Y1VJ.mjs} +1 -1
  170. package/dist/routeValidator-D36SW8qt.mjs +70 -0
  171. package/dist/{runtimeCapabilities-DSA_dH1_.mjs → runtimeCapabilities-0tccjRlj.mjs} +1 -1
  172. package/dist/{schedules-BktJb3Y3.mjs → schedules-C-OpmHBq.mjs} +46 -37
  173. package/dist/{schemaConverter-BLCSmNbr.mjs → schemaConverter-BORek3O-.mjs} +2 -2
  174. package/dist/{schemaIR-K16Bb5BX.mjs → schemaIR-C7Vbp71I.mjs} +2 -2
  175. package/dist/schemas/index.d.mts +10 -0
  176. package/dist/schemas/index.mjs +8 -3
  177. package/dist/scim/index.mjs +2 -2
  178. package/dist/scope/index.d.mts +2 -2
  179. package/dist/scope/index.mjs +6 -6
  180. package/dist/{scope-jSxuBTFM.mjs → scope-DQthe88b.mjs} +4 -4
  181. package/dist/shutdown-MqA81z_P.mjs +59 -0
  182. package/dist/{simpleEqualityMatcher-BiOnyflP.mjs → simpleEqualityMatcher-auW8QjXN.mjs} +1 -1
  183. package/dist/{sse-CH7Slxc1.mjs → sse-CYzQBVFe.mjs} +11 -15
  184. package/dist/{sseStream-CN-Lh1Tu.mjs → sseStream-B5_Afiqn.mjs} +2 -2
  185. package/dist/{store-helpers-9DX9-1j_.mjs → store-helpers-BOzk-CuX.mjs} +1 -1
  186. package/dist/{streaming-dvppnxsr.mjs → streaming-DjTQhZrN.mjs} +1 -1
  187. package/dist/subscriberIdentity-CW39uA8G.mjs +28 -0
  188. package/dist/tenancy--ed9eH_z.mjs +43 -0
  189. package/dist/tenantPreparation-BKon6Yox.mjs +67 -0
  190. package/dist/testing/cleanupStoreContract.mjs +1 -1
  191. package/dist/testing/index.d.mts +193 -175
  192. package/dist/testing/index.mjs +286 -212
  193. package/dist/testing/outboxStoreContract.mjs +137 -2
  194. package/dist/testing/requiredPorts.d.mts +17 -0
  195. package/dist/testing/requiredPorts.mjs +65 -0
  196. package/dist/testing/storageContract.mjs +1 -1
  197. package/dist/timing-qczZ0YC-.mjs +46 -0
  198. package/dist/{transactionContext-DCWMI6hV.mjs → transactionContext-DjFkrNG6.mjs} +1 -1
  199. package/dist/{typeGuards-D7tHFdH6.mjs → typeGuards-CySF12G-.mjs} +1 -1
  200. package/dist/types/index.d.mts +4 -4
  201. package/dist/types/index.mjs +1 -1
  202. package/dist/types/storage.mjs +1 -1
  203. package/dist/{types-CWQn9-IC.d.mts → types-B4Aq4Sdj.d.mts} +22 -9
  204. package/dist/{types-DfVDvkdP.d.mts → types-BJ-2XqVF.d.mts} +189 -204
  205. package/dist/{types-CDy3-zw1.mjs → types-Bk9NOgOC.mjs} +4 -4
  206. package/dist/usage/index.d.mts +2 -3
  207. package/dist/usage/index.mjs +5 -5
  208. package/dist/{userHelpers-DDMOZ_Pm.mjs → userHelpers-aklawRaK.mjs} +1 -1
  209. package/dist/utils/index.d.mts +84 -223
  210. package/dist/utils/index.mjs +13 -12
  211. package/dist/{utils-B-zj_b__.mjs → utils-ec1oTo1n.mjs} +315 -404
  212. package/dist/{validate-R0G_JrnK.mjs → validate-9yzHC1e2.mjs} +6 -14
  213. package/dist/{versioning-D6JIK8Tk.d.mts → versioning-Bsb51gGT.d.mts} +28 -13
  214. package/dist/{versioning-DuVWcu-F.mjs → versioning-fhhWHV74.mjs} +4 -4
  215. package/dist/{websocket-BOXVggMf.d.mts → websocket-Cs4awVyD.d.mts} +1 -1
  216. package/dist/{workScope-BhsWde4k.mjs → workScope-zpPyge4t.mjs} +2 -2
  217. package/package.json +578 -574
  218. package/skills/arc/SKILL.md +13 -4
  219. package/skills/arc/references/auth.md +8 -5
  220. package/skills/arc/references/integrations.md +1 -1
  221. package/skills/arc/references/mcp.md +8 -6
  222. package/skills/arc/references/multi-tenancy.md +19 -14
  223. package/skills/arc/references/production.md +27 -10
  224. package/dist/actionPermissions-DPwPWPOV.mjs +0 -350
  225. package/dist/index-CFfLKMH4.d.mts +0 -290
  226. package/dist/interface-BIpgzbZl.mjs +0 -17
  227. package/dist/redis-stream-BPKscsTB.d.mts +0 -260
  228. package/dist/registerRoute-DRsSHPSM.mjs +0 -364
  229. package/dist/sync/changelog.d.mts +0 -3
  230. package/dist/sync/changelog.mjs +0 -3
package/package.json CHANGED
@@ -1,574 +1,578 @@
1
- {
2
- "name": "@classytic/arc",
3
- "version": "2.41.0",
4
- "description": "Resource-oriented backend framework for Fastify - clean, minimal, powerful, tree-shakable",
5
- "type": "module",
6
- "exports": {
7
- ".": {
8
- "types": "./dist/index.d.mts",
9
- "default": "./dist/index.mjs"
10
- },
11
- "./permissions": {
12
- "types": "./dist/permissions/index.d.mts",
13
- "default": "./dist/permissions/index.mjs"
14
- },
15
- "./cache": {
16
- "types": "./dist/cache/index.d.mts",
17
- "default": "./dist/cache/index.mjs"
18
- },
19
- "./types": {
20
- "types": "./dist/types/index.d.mts",
21
- "default": "./dist/types/index.mjs"
22
- },
23
- "./types/storage": {
24
- "types": "./dist/types/storage.d.mts",
25
- "default": "./dist/types/storage.mjs"
26
- },
27
- "./core": {
28
- "types": "./dist/core/index.d.mts",
29
- "default": "./dist/core/index.mjs"
30
- },
31
- "./presets": {
32
- "types": "./dist/presets/index.d.mts",
33
- "default": "./dist/presets/index.mjs"
34
- },
35
- "./presets/tenant": {
36
- "types": "./dist/presets/multiTenant.d.mts",
37
- "default": "./dist/presets/multiTenant.mjs"
38
- },
39
- "./presets/files-upload": {
40
- "types": "./dist/presets/filesUpload.d.mts",
41
- "default": "./dist/presets/filesUpload.mjs"
42
- },
43
- "./presets/search": {
44
- "types": "./dist/presets/search.d.mts",
45
- "default": "./dist/presets/search.mjs"
46
- },
47
- "./auth": {
48
- "types": "./dist/auth/index.d.mts",
49
- "default": "./dist/auth/index.mjs"
50
- },
51
- "./hooks": {
52
- "types": "./dist/hooks/index.d.mts",
53
- "default": "./dist/hooks/index.mjs"
54
- },
55
- "./middleware": {
56
- "types": "./dist/middleware/index.d.mts",
57
- "default": "./dist/middleware/index.mjs"
58
- },
59
- "./pipeline": {
60
- "types": "./dist/pipeline/index.d.mts",
61
- "default": "./dist/pipeline/index.mjs"
62
- },
63
- "./context": {
64
- "types": "./dist/context/index.d.mts",
65
- "default": "./dist/context/index.mjs"
66
- },
67
- "./logger": {
68
- "types": "./dist/logger/index.d.mts",
69
- "default": "./dist/logger/index.mjs"
70
- },
71
- "./registry": {
72
- "types": "./dist/registry/index.d.mts",
73
- "default": "./dist/registry/index.mjs"
74
- },
75
- "./utils": {
76
- "types": "./dist/utils/index.d.mts",
77
- "default": "./dist/utils/index.mjs"
78
- },
79
- "./cli": {
80
- "types": "./dist/cli/index.d.mts",
81
- "default": "./dist/cli/index.mjs"
82
- },
83
- "./plugins": {
84
- "types": "./dist/plugins/index.d.mts",
85
- "default": "./dist/plugins/index.mjs"
86
- },
87
- "./plugins/tracing": {
88
- "types": "./dist/plugins/tracing-entry.d.mts",
89
- "default": "./dist/plugins/tracing-entry.mjs"
90
- },
91
- "./audit": {
92
- "types": "./dist/audit/index.d.mts",
93
- "default": "./dist/audit/index.mjs"
94
- },
95
- "./docs": {
96
- "types": "./dist/docs/index.d.mts",
97
- "default": "./dist/docs/index.mjs"
98
- },
99
- "./encryption": {
100
- "types": "./dist/encryption/index.d.mts",
101
- "default": "./dist/encryption/index.mjs"
102
- },
103
- "./idempotency": {
104
- "types": "./dist/idempotency/index.d.mts",
105
- "default": "./dist/idempotency/index.mjs"
106
- },
107
- "./idempotency/redis": {
108
- "types": "./dist/idempotency/redis.d.mts",
109
- "default": "./dist/idempotency/redis.mjs"
110
- },
111
- "./events": {
112
- "types": "./dist/events/index.d.mts",
113
- "default": "./dist/events/index.mjs"
114
- },
115
- "./events/redis": {
116
- "types": "./dist/events/transports/redis.d.mts",
117
- "default": "./dist/events/transports/redis.mjs"
118
- },
119
- "./events/redis-stream": {
120
- "types": "./dist/events/transports/redis-stream-entry.d.mts",
121
- "default": "./dist/events/transports/redis-stream-entry.mjs"
122
- },
123
- "./testing": {
124
- "types": "./dist/testing/index.d.mts",
125
- "default": "./dist/testing/index.mjs"
126
- },
127
- "./testing/storage": {
128
- "types": "./dist/testing/storageContract.d.mts",
129
- "default": "./dist/testing/storageContract.mjs"
130
- },
131
- "./testing/cleanup": {
132
- "types": "./dist/testing/cleanupStoreContract.d.mts",
133
- "default": "./dist/testing/cleanupStoreContract.mjs"
134
- },
135
- "./factory": {
136
- "types": "./dist/factory/index.d.mts",
137
- "default": "./dist/factory/index.mjs"
138
- },
139
- "./schemas": {
140
- "types": "./dist/schemas/index.d.mts",
141
- "default": "./dist/schemas/index.mjs"
142
- },
143
- "./migrations": {
144
- "types": "./dist/migrations/index.d.mts",
145
- "default": "./dist/migrations/index.mjs"
146
- },
147
- "./discovery": {
148
- "types": "./dist/discovery/index.d.mts",
149
- "default": "./dist/discovery/index.mjs"
150
- },
151
- "./integrations": {
152
- "types": "./dist/integrations/index.d.mts",
153
- "default": "./dist/integrations/index.mjs"
154
- },
155
- "./integrations/streamline": {
156
- "types": "./dist/integrations/streamline.d.mts",
157
- "default": "./dist/integrations/streamline.mjs"
158
- },
159
- "./integrations/websocket": {
160
- "types": "./dist/integrations/websocket.d.mts",
161
- "default": "./dist/integrations/websocket.mjs"
162
- },
163
- "./integrations/websocket-redis": {
164
- "types": "./dist/integrations/websocket-redis.d.mts",
165
- "default": "./dist/integrations/websocket-redis.mjs"
166
- },
167
- "./integrations/websocket-pushref-redis": {
168
- "types": "./dist/integrations/websocket-pushref-redis.d.mts",
169
- "default": "./dist/integrations/websocket-pushref-redis.mjs"
170
- },
171
- "./integrations/jobs": {
172
- "types": "./dist/integrations/jobs/index.d.mts",
173
- "default": "./dist/integrations/jobs/index.mjs"
174
- },
175
- "./integrations/event-gateway": {
176
- "types": "./dist/integrations/event-gateway.d.mts",
177
- "default": "./dist/integrations/event-gateway.mjs"
178
- },
179
- "./integrations/webhooks": {
180
- "types": "./dist/integrations/webhooks.d.mts",
181
- "default": "./dist/integrations/webhooks.mjs"
182
- },
183
- "./auth/redis": {
184
- "types": "./dist/auth/redis-session.d.mts",
185
- "default": "./dist/auth/redis-session.mjs"
186
- },
187
- "./plugins/response-cache": {
188
- "types": "./dist/plugins/response-cache.d.mts",
189
- "default": "./dist/plugins/response-cache.mjs"
190
- },
191
- "./scope": {
192
- "types": "./dist/scope/index.d.mts",
193
- "default": "./dist/scope/index.mjs"
194
- },
195
- "./mcp": {
196
- "types": "./dist/integrations/mcp/index.d.mts",
197
- "default": "./dist/integrations/mcp/index.mjs"
198
- },
199
- "./mcp/testing": {
200
- "types": "./dist/integrations/mcp/testing.d.mts",
201
- "default": "./dist/integrations/mcp/testing.mjs"
202
- },
203
- "./scim": {
204
- "types": "./dist/scim/index.d.mts",
205
- "default": "./dist/scim/index.mjs"
206
- },
207
- "./auth/audit": {
208
- "types": "./dist/auth/audit.d.mts",
209
- "default": "./dist/auth/audit.mjs"
210
- },
211
- "./sync": {
212
- "types": "./dist/sync/changelog.d.mts",
213
- "default": "./dist/sync/changelog.mjs"
214
- },
215
- "./usage": {
216
- "types": "./dist/usage/index.d.mts",
217
- "default": "./dist/usage/index.mjs"
218
- },
219
- "./cleanup": {
220
- "types": "./dist/cleanup/index.d.mts",
221
- "default": "./dist/cleanup/index.mjs"
222
- },
223
- "./outbox-admin": {
224
- "types": "./dist/outbox-admin/index.d.mts",
225
- "default": "./dist/outbox-admin/index.mjs"
226
- },
227
- "./testing/outbox": {
228
- "types": "./dist/testing/outboxStoreContract.d.mts",
229
- "default": "./dist/testing/outboxStoreContract.mjs"
230
- }
231
- },
232
- "main": "./dist/index.mjs",
233
- "types": "./dist/index.d.mts",
234
- "bin": {
235
- "arc": "./bin/arc.js"
236
- },
237
- "publishConfig": {
238
- "access": "public"
239
- },
240
- "sideEffects": false,
241
- "arc": {
242
- "subpathStability": {
243
- ".": "stable",
244
- "./permissions": "stable",
245
- "./cache": "stable",
246
- "./cleanup": "stable",
247
- "./types": "stable",
248
- "./types/storage": "stable",
249
- "./core": "stable",
250
- "./presets": "stable",
251
- "./presets/tenant": "stable",
252
- "./presets/files-upload": "stable",
253
- "./presets/search": "stable",
254
- "./auth": "stable",
255
- "./hooks": "stable",
256
- "./middleware": "stable",
257
- "./pipeline": "stable",
258
- "./context": "stable",
259
- "./logger": "stable",
260
- "./registry": "stable",
261
- "./utils": "stable",
262
- "./cli": "stable",
263
- "./plugins": "stable",
264
- "./plugins/tracing": "stable",
265
- "./audit": "stable",
266
- "./docs": "stable",
267
- "./encryption": "stable",
268
- "./idempotency": "stable",
269
- "./idempotency/redis": "stable",
270
- "./events": "stable",
271
- "./events/redis": "stable",
272
- "./events/redis-stream": "stable",
273
- "./testing": "stable",
274
- "./testing/storage": "stable",
275
- "./testing/cleanup": "stable",
276
- "./factory": "stable",
277
- "./schemas": "stable",
278
- "./migrations": "stable",
279
- "./discovery": "stable",
280
- "./integrations": "stable",
281
- "./integrations/streamline": "stable",
282
- "./integrations/websocket": "stable",
283
- "./integrations/websocket-redis": "stable",
284
- "./integrations/websocket-pushref-redis": "stable",
285
- "./integrations/jobs": "stable",
286
- "./integrations/event-gateway": "experimental",
287
- "./integrations/webhooks": "stable",
288
- "./auth/redis": "stable",
289
- "./plugins/response-cache": "stable",
290
- "./scope": "stable",
291
- "./mcp": "stable",
292
- "./mcp/testing": "stable",
293
- "./scim": "stable",
294
- "./auth/audit": "stable",
295
- "./sync": "experimental",
296
- "./usage": "experimental",
297
- "./testing/outbox": "stable",
298
- "./outbox-admin": "experimental"
299
- }
300
- },
301
- "files": [
302
- "dist",
303
- "bin",
304
- "skills",
305
- "llms.txt",
306
- "TRADEMARK.md"
307
- ],
308
- "scripts": {
309
- "build": "tsdown",
310
- "dev": "tsdown --watch",
311
- "typecheck": "npm run typecheck:src && npm run typecheck:types && npm run check:type-lane",
312
- "typecheck:src": "tsc --noEmit",
313
- "check:type-lane": "node scripts/check-type-lane.mjs",
314
- "lint": "biome check src/",
315
- "lint:fix": "biome check --fix src/",
316
- "lint:all": "biome check src/ tests/",
317
- "test": "vitest run",
318
- "test:main": "vitest run",
319
- "test:main:serial": "vitest run --no-file-parallelism",
320
- "test:perf": "node --expose-gc ./node_modules/vitest/vitest.mjs run --config vitest.perf.config.ts --no-file-parallelism",
321
- "test:ci": "npm run test:main && npm run test:perf",
322
- "test:watch": "vitest",
323
- "test:ui": "vitest --ui",
324
- "typecheck:types": "tsc -p tsconfig.types.json",
325
- "api:surface": "node scripts/check-api-surface.mjs --update",
326
- "check:api-surface": "node scripts/check-api-surface.mjs",
327
- "check:package": "publint && attw --pack . --profile esm-only",
328
- "test:coverage": "vitest run --coverage",
329
- "test:fast": "vitest run tests/core tests/hooks tests/utils tests/plugins tests/cache tests/events",
330
- "test:contract": "vitest run tests/contract tests/adapters tests/types",
331
- "test:integration": "vitest run tests/integrations tests/factory tests/auth",
332
- "test:e2e": "vitest run tests/e2e tests/scenarios tests/smoke",
333
- "test:changed": "vitest run --changed",
334
- "test:reliability": "vitest run tests/cache tests/events tests/migrations tests/plugins/schedules.test.ts tests/plugins/health.test.ts tests/utils/circuit-breaker.test.ts tests/utils/compensation-hooks.test.ts tests/integrations/jobs-timeout.test.ts",
335
- "test:smoke:ws": "vitest run tests/integrations/websocket/smoke.test.ts",
336
- "test:smoke:redis": "node scripts/smoke-ws-redis.mjs",
337
- "smoke": "node scripts/smoke-test.mjs",
338
- "smoke:consumer": "node scripts/smoke-test.mjs --consumer",
339
- "smoke:mcp": "node scripts/mcp-e2e.mjs",
340
- "push": "classytic-push",
341
- "release:tag": "node -e \"require('child_process').execSync('npm run push -- v'+require('./package.json').version,{stdio:'inherit'})\"",
342
- "release": "npm run push -- main && npm run release:tag && npm publish",
343
- "check:peer-skew": "node scripts/check-peer-skew.mjs",
344
- "check:docs-drift": "node scripts/check-docs-drift.mjs",
345
- "check:boundaries": "node scripts/check-boundaries.mjs",
346
- "prepublishOnly": "npm run check:line-endings && npm run check:peer-skew && npm run check:docs-drift && npm run check:route-api && npm run check:boundaries && npm run typecheck && npm run lint && npm run build && npm run check:api-surface && npm run check:forgotten-exports && npm run check:package && npm run test:ci && npm run smoke:consumer && npm run smoke:mcp",
347
- "check:route-api": "node scripts/check-removed-route-api.mjs",
348
- "check:forgotten-exports": "node scripts/check-forgotten-exports.mjs",
349
- "check:line-endings": "node scripts/check-line-endings.mjs",
350
- "fix:line-endings": "node scripts/check-line-endings.mjs --fix"
351
- },
352
- "engines": {
353
- "node": ">=22"
354
- },
355
- "peerDependencies": {
356
- "@classytic/primitives": ">=0.28.0",
357
- "@classytic/repo-core": ">=0.28.0",
358
- "@classytic/streamline": ">=2.8.0",
359
- "@fastify/cors": ">=11.0.0",
360
- "@fastify/helmet": ">=13.0.0",
361
- "@fastify/jwt": ">=10.0.0",
362
- "@fastify/multipart": ">=10.0.0",
363
- "@fastify/rate-limit": ">=11.0.0",
364
- "@fastify/sensible": ">=6.0.0",
365
- "@fastify/static": ">=10.0.0",
366
- "@fastify/type-provider-typebox": ">=6.0.0",
367
- "@fastify/under-pressure": ">=9.0.0",
368
- "@fastify/websocket": ">=11.0.0",
369
- "@modelcontextprotocol/client": ">=2.0.0",
370
- "@modelcontextprotocol/node": ">=2.0.0",
371
- "@modelcontextprotocol/server": ">=2.0.0",
372
- "@opentelemetry/api": ">=1.9.0",
373
- "@opentelemetry/auto-instrumentations-node": ">=0.40.0",
374
- "@opentelemetry/exporter-trace-otlp-http": ">=0.50.0",
375
- "@opentelemetry/instrumentation-http": ">=0.50.0",
376
- "@opentelemetry/instrumentation-mongodb": ">=0.40.0",
377
- "@opentelemetry/sdk-node": ">=0.50.0",
378
- "better-auth": ">=1.7.0",
379
- "bullmq": ">=6.0.0",
380
- "fastify": ">=5.12.0",
381
- "fastify-raw-body": ">=5.0.0",
382
- "h3-js": ">=4.0.0",
383
- "ioredis": ">=6.0.0",
384
- "jose": ">=6.0.0",
385
- "pino-pretty": ">=13.0.0",
386
- "typebox": ">=1.0.0",
387
- "zod": ">=4.4.0"
388
- },
389
- "peerDependenciesMeta": {
390
- "@classytic/streamline": {
391
- "optional": true
392
- },
393
- "@fastify/cors": {
394
- "optional": true
395
- },
396
- "@fastify/helmet": {
397
- "optional": true
398
- },
399
- "@fastify/jwt": {
400
- "optional": true
401
- },
402
- "@fastify/multipart": {
403
- "optional": true
404
- },
405
- "@fastify/rate-limit": {
406
- "optional": true
407
- },
408
- "@fastify/sensible": {
409
- "optional": true
410
- },
411
- "@fastify/static": {
412
- "optional": true
413
- },
414
- "@fastify/type-provider-typebox": {
415
- "optional": true
416
- },
417
- "@fastify/under-pressure": {
418
- "optional": true
419
- },
420
- "@fastify/websocket": {
421
- "optional": true
422
- },
423
- "@modelcontextprotocol/client": {
424
- "optional": true
425
- },
426
- "@modelcontextprotocol/node": {
427
- "optional": true
428
- },
429
- "@modelcontextprotocol/server": {
430
- "optional": true
431
- },
432
- "@opentelemetry/api": {
433
- "optional": true
434
- },
435
- "@opentelemetry/auto-instrumentations-node": {
436
- "optional": true
437
- },
438
- "@opentelemetry/exporter-trace-otlp-http": {
439
- "optional": true
440
- },
441
- "@opentelemetry/instrumentation-http": {
442
- "optional": true
443
- },
444
- "@opentelemetry/instrumentation-mongodb": {
445
- "optional": true
446
- },
447
- "@opentelemetry/sdk-node": {
448
- "optional": true
449
- },
450
- "better-auth": {
451
- "optional": true
452
- },
453
- "bullmq": {
454
- "optional": true
455
- },
456
- "fastify-raw-body": {
457
- "optional": true
458
- },
459
- "h3-js": {
460
- "optional": true
461
- },
462
- "ioredis": {
463
- "optional": true
464
- },
465
- "jose": {
466
- "optional": true
467
- },
468
- "pino-pretty": {
469
- "optional": true
470
- },
471
- "typebox": {
472
- "optional": true
473
- },
474
- "zod": {
475
- "optional": true
476
- }
477
- },
478
- "dependencies": {
479
- "fastify-plugin": "^6.0.0",
480
- "qs": "^6.16.0",
481
- "secure-json-parse": "^4.1.0"
482
- },
483
- "devDependencies": {
484
- "@arethetypeswrong/cli": "^0.18.5",
485
- "@better-auth/drizzle-adapter": "^1.6.19",
486
- "@better-auth/mongo-adapter": "^1.6.19",
487
- "@biomejs/biome": "^2.5.7",
488
- "@classytic/dev-tools": "^0.2.0",
489
- "@classytic/gitkit": ">=0.1.0",
490
- "@classytic/mongokit": "^3.33.0",
491
- "@classytic/pgkit": "^0.1.0",
492
- "@classytic/primitives": "^0.28.0",
493
- "@classytic/repo-core": "^0.28.0",
494
- "@classytic/sqlitekit": "^0.9.0",
495
- "@classytic/streamline": "^2.8.2",
496
- "@electric-sql/pglite": "^0.5.4",
497
- "@fastify/cors": "^11.2.0",
498
- "@fastify/helmet": "^13.0.2",
499
- "@fastify/jwt": "^10.1.0",
500
- "@fastify/multipart": "^10.0.0",
501
- "@fastify/rate-limit": "^11.0.0",
502
- "@fastify/sensible": "^6.0.4",
503
- "@fastify/static": "^10.1.2",
504
- "@fastify/type-provider-typebox": "^6.1.0",
505
- "@fastify/under-pressure": "^9.0.3",
506
- "@fastify/websocket": "^11.2.0",
507
- "@modelcontextprotocol/client": "^2.0.0",
508
- "@modelcontextprotocol/node": "^2.0.0",
509
- "@modelcontextprotocol/server": "^2.0.0",
510
- "@opentelemetry/api": "^1.9.1",
511
- "@types/node": "^22.19.21",
512
- "@types/qs": "^6.15.1",
513
- "@vitest/coverage-v8": "^5.0.0",
514
- "ajv": "^8.20.0",
515
- "better-auth": "^1.7.3",
516
- "better-sqlite3": "^13.0.3",
517
- "bullmq": "^6.1.2",
518
- "dotenv": "^17.4.2",
519
- "drizzle-orm": "^0.45.2",
520
- "fast-check": "^4.8.0",
521
- "fastify": "^5.12.1",
522
- "fastify-raw-body": "^6.0.1",
523
- "h3-js": "^4.4.0",
524
- "ioredis": "^6.0.0",
525
- "jose": "^6.2.3",
526
- "jsonwebtoken": "^9.0.3",
527
- "knip": "^6.31.0",
528
- "mongodb": "^7.3.0",
529
- "mongodb-memory-server": "^11.2.0",
530
- "mongoose": "^9.9.1",
531
- "publint": "^0.3.21",
532
- "tsdown": "^0.22.14",
533
- "typebox": "^1.3.6",
534
- "typescript": "^7.0.2",
535
- "vitest": "^5.0.0",
536
- "ws": "^8.21.0",
537
- "zod": "^4.4.3"
538
- },
539
- "config": {
540
- "mongodbMemoryServer": {
541
- "disablePostinstall": "1"
542
- }
543
- },
544
- "keywords": [
545
- "fastify",
546
- "mongodb",
547
- "mongoose",
548
- "crud",
549
- "rest",
550
- "api",
551
- "framework",
552
- "resource",
553
- "multi-tenant",
554
- "typescript",
555
- "tree-shakable",
556
- "serverless",
557
- "websocket",
558
- "jobs",
559
- "workflow"
560
- ],
561
- "author": "Classytic",
562
- "license": "MIT",
563
- "homepage": "https://classytic.com",
564
- "repository": {
565
- "type": "git",
566
- "url": "git+https://github.com/classytic/arc.git"
567
- },
568
- "overrides": {
569
- "better-sqlite3": "$better-sqlite3",
570
- "better-auth": {
571
- "vitest": "$vitest"
572
- }
573
- }
574
- }
1
+ {
2
+ "name": "@classytic/arc",
3
+ "version": "2.43.0",
4
+ "description": "Resource-oriented backend framework for Fastify - clean, minimal, powerful, tree-shakable",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.mts",
9
+ "default": "./dist/index.mjs"
10
+ },
11
+ "./permissions": {
12
+ "types": "./dist/permissions/index.d.mts",
13
+ "default": "./dist/permissions/index.mjs"
14
+ },
15
+ "./cache": {
16
+ "types": "./dist/cache/index.d.mts",
17
+ "default": "./dist/cache/index.mjs"
18
+ },
19
+ "./types": {
20
+ "types": "./dist/types/index.d.mts",
21
+ "default": "./dist/types/index.mjs"
22
+ },
23
+ "./types/storage": {
24
+ "types": "./dist/types/storage.d.mts",
25
+ "default": "./dist/types/storage.mjs"
26
+ },
27
+ "./core": {
28
+ "types": "./dist/core/index.d.mts",
29
+ "default": "./dist/core/index.mjs"
30
+ },
31
+ "./presets": {
32
+ "types": "./dist/presets/index.d.mts",
33
+ "default": "./dist/presets/index.mjs"
34
+ },
35
+ "./presets/tenant": {
36
+ "types": "./dist/presets/multiTenant.d.mts",
37
+ "default": "./dist/presets/multiTenant.mjs"
38
+ },
39
+ "./presets/files-upload": {
40
+ "types": "./dist/presets/filesUpload.d.mts",
41
+ "default": "./dist/presets/filesUpload.mjs"
42
+ },
43
+ "./presets/search": {
44
+ "types": "./dist/presets/search.d.mts",
45
+ "default": "./dist/presets/search.mjs"
46
+ },
47
+ "./auth": {
48
+ "types": "./dist/auth/index.d.mts",
49
+ "default": "./dist/auth/index.mjs"
50
+ },
51
+ "./hooks": {
52
+ "types": "./dist/hooks/index.d.mts",
53
+ "default": "./dist/hooks/index.mjs"
54
+ },
55
+ "./middleware": {
56
+ "types": "./dist/middleware/index.d.mts",
57
+ "default": "./dist/middleware/index.mjs"
58
+ },
59
+ "./pipeline": {
60
+ "types": "./dist/pipeline/index.d.mts",
61
+ "default": "./dist/pipeline/index.mjs"
62
+ },
63
+ "./context": {
64
+ "types": "./dist/context/index.d.mts",
65
+ "default": "./dist/context/index.mjs"
66
+ },
67
+ "./logger": {
68
+ "types": "./dist/logger/index.d.mts",
69
+ "default": "./dist/logger/index.mjs"
70
+ },
71
+ "./registry": {
72
+ "types": "./dist/registry/index.d.mts",
73
+ "default": "./dist/registry/index.mjs"
74
+ },
75
+ "./utils": {
76
+ "types": "./dist/utils/index.d.mts",
77
+ "default": "./dist/utils/index.mjs"
78
+ },
79
+ "./cli": {
80
+ "types": "./dist/cli/index.d.mts",
81
+ "default": "./dist/cli/index.mjs"
82
+ },
83
+ "./plugins": {
84
+ "types": "./dist/plugins/index.d.mts",
85
+ "default": "./dist/plugins/index.mjs"
86
+ },
87
+ "./plugins/tracing": {
88
+ "types": "./dist/plugins/tracing-entry.d.mts",
89
+ "default": "./dist/plugins/tracing-entry.mjs"
90
+ },
91
+ "./audit": {
92
+ "types": "./dist/audit/index.d.mts",
93
+ "default": "./dist/audit/index.mjs"
94
+ },
95
+ "./docs": {
96
+ "types": "./dist/docs/index.d.mts",
97
+ "default": "./dist/docs/index.mjs"
98
+ },
99
+ "./encryption": {
100
+ "types": "./dist/encryption/index.d.mts",
101
+ "default": "./dist/encryption/index.mjs"
102
+ },
103
+ "./idempotency": {
104
+ "types": "./dist/idempotency/index.d.mts",
105
+ "default": "./dist/idempotency/index.mjs"
106
+ },
107
+ "./idempotency/redis": {
108
+ "types": "./dist/idempotency/redis.d.mts",
109
+ "default": "./dist/idempotency/redis.mjs"
110
+ },
111
+ "./events": {
112
+ "types": "./dist/events/index.d.mts",
113
+ "default": "./dist/events/index.mjs"
114
+ },
115
+ "./events/redis": {
116
+ "types": "./dist/events/transports/redis.d.mts",
117
+ "default": "./dist/events/transports/redis.mjs"
118
+ },
119
+ "./events/redis-stream": {
120
+ "types": "./dist/events/transports/redis-stream-entry.d.mts",
121
+ "default": "./dist/events/transports/redis-stream-entry.mjs"
122
+ },
123
+ "./testing": {
124
+ "types": "./dist/testing/index.d.mts",
125
+ "default": "./dist/testing/index.mjs"
126
+ },
127
+ "./testing/storage": {
128
+ "types": "./dist/testing/storageContract.d.mts",
129
+ "default": "./dist/testing/storageContract.mjs"
130
+ },
131
+ "./testing/cleanup": {
132
+ "types": "./dist/testing/cleanupStoreContract.d.mts",
133
+ "default": "./dist/testing/cleanupStoreContract.mjs"
134
+ },
135
+ "./factory": {
136
+ "types": "./dist/factory/index.d.mts",
137
+ "default": "./dist/factory/index.mjs"
138
+ },
139
+ "./schemas": {
140
+ "types": "./dist/schemas/index.d.mts",
141
+ "default": "./dist/schemas/index.mjs"
142
+ },
143
+ "./migrations": {
144
+ "types": "./dist/migrations/index.d.mts",
145
+ "default": "./dist/migrations/index.mjs"
146
+ },
147
+ "./discovery": {
148
+ "types": "./dist/discovery/index.d.mts",
149
+ "default": "./dist/discovery/index.mjs"
150
+ },
151
+ "./integrations": {
152
+ "types": "./dist/integrations/index.d.mts",
153
+ "default": "./dist/integrations/index.mjs"
154
+ },
155
+ "./integrations/streamline": {
156
+ "types": "./dist/integrations/streamline.d.mts",
157
+ "default": "./dist/integrations/streamline.mjs"
158
+ },
159
+ "./integrations/websocket": {
160
+ "types": "./dist/integrations/websocket.d.mts",
161
+ "default": "./dist/integrations/websocket.mjs"
162
+ },
163
+ "./integrations/websocket-redis": {
164
+ "types": "./dist/integrations/websocket-redis.d.mts",
165
+ "default": "./dist/integrations/websocket-redis.mjs"
166
+ },
167
+ "./integrations/websocket-pushref-redis": {
168
+ "types": "./dist/integrations/websocket-pushref-redis.d.mts",
169
+ "default": "./dist/integrations/websocket-pushref-redis.mjs"
170
+ },
171
+ "./integrations/jobs": {
172
+ "types": "./dist/integrations/jobs/index.d.mts",
173
+ "default": "./dist/integrations/jobs/index.mjs"
174
+ },
175
+ "./integrations/event-gateway": {
176
+ "types": "./dist/integrations/event-gateway.d.mts",
177
+ "default": "./dist/integrations/event-gateway.mjs"
178
+ },
179
+ "./integrations/webhooks": {
180
+ "types": "./dist/integrations/webhooks.d.mts",
181
+ "default": "./dist/integrations/webhooks.mjs"
182
+ },
183
+ "./auth/redis": {
184
+ "types": "./dist/auth/redis-session.d.mts",
185
+ "default": "./dist/auth/redis-session.mjs"
186
+ },
187
+ "./plugins/response-cache": {
188
+ "types": "./dist/plugins/response-cache.d.mts",
189
+ "default": "./dist/plugins/response-cache.mjs"
190
+ },
191
+ "./scope": {
192
+ "types": "./dist/scope/index.d.mts",
193
+ "default": "./dist/scope/index.mjs"
194
+ },
195
+ "./mcp": {
196
+ "types": "./dist/integrations/mcp/index.d.mts",
197
+ "default": "./dist/integrations/mcp/index.mjs"
198
+ },
199
+ "./mcp/testing": {
200
+ "types": "./dist/integrations/mcp/testing.d.mts",
201
+ "default": "./dist/integrations/mcp/testing.mjs"
202
+ },
203
+ "./scim": {
204
+ "types": "./dist/scim/index.d.mts",
205
+ "default": "./dist/scim/index.mjs"
206
+ },
207
+ "./auth/audit": {
208
+ "types": "./dist/auth/audit.d.mts",
209
+ "default": "./dist/auth/audit.mjs"
210
+ },
211
+ "./usage": {
212
+ "types": "./dist/usage/index.d.mts",
213
+ "default": "./dist/usage/index.mjs"
214
+ },
215
+ "./cleanup": {
216
+ "types": "./dist/cleanup/index.d.mts",
217
+ "default": "./dist/cleanup/index.mjs"
218
+ },
219
+ "./outbox-admin": {
220
+ "types": "./dist/outbox-admin/index.d.mts",
221
+ "default": "./dist/outbox-admin/index.mjs"
222
+ },
223
+ "./testing/outbox": {
224
+ "types": "./dist/testing/outboxStoreContract.d.mts",
225
+ "default": "./dist/testing/outboxStoreContract.mjs"
226
+ },
227
+ "./testing/ports": {
228
+ "types": "./dist/testing/requiredPorts.d.mts",
229
+ "default": "./dist/testing/requiredPorts.mjs"
230
+ }
231
+ },
232
+ "main": "./dist/index.mjs",
233
+ "types": "./dist/index.d.mts",
234
+ "bin": {
235
+ "arc": "./bin/arc.js"
236
+ },
237
+ "publishConfig": {
238
+ "access": "public"
239
+ },
240
+ "sideEffects": false,
241
+ "arc": {
242
+ "subpathStability": {
243
+ ".": "stable",
244
+ "./permissions": "stable",
245
+ "./cache": "stable",
246
+ "./cleanup": "stable",
247
+ "./types": "stable",
248
+ "./types/storage": "stable",
249
+ "./core": "stable",
250
+ "./presets": "stable",
251
+ "./presets/tenant": "stable",
252
+ "./presets/files-upload": "stable",
253
+ "./presets/search": "stable",
254
+ "./auth": "stable",
255
+ "./hooks": "stable",
256
+ "./middleware": "stable",
257
+ "./pipeline": "stable",
258
+ "./context": "stable",
259
+ "./logger": "stable",
260
+ "./registry": "stable",
261
+ "./utils": "stable",
262
+ "./cli": "stable",
263
+ "./plugins": "stable",
264
+ "./plugins/tracing": "stable",
265
+ "./audit": "stable",
266
+ "./docs": "stable",
267
+ "./encryption": "stable",
268
+ "./idempotency": "stable",
269
+ "./idempotency/redis": "stable",
270
+ "./events": "stable",
271
+ "./events/redis": "stable",
272
+ "./events/redis-stream": "stable",
273
+ "./testing": "stable",
274
+ "./testing/storage": "stable",
275
+ "./testing/cleanup": "stable",
276
+ "./factory": "stable",
277
+ "./schemas": "stable",
278
+ "./migrations": "stable",
279
+ "./discovery": "stable",
280
+ "./integrations": "stable",
281
+ "./integrations/streamline": "stable",
282
+ "./integrations/websocket": "stable",
283
+ "./integrations/websocket-redis": "stable",
284
+ "./integrations/websocket-pushref-redis": "stable",
285
+ "./integrations/jobs": "stable",
286
+ "./integrations/event-gateway": "experimental",
287
+ "./integrations/webhooks": "stable",
288
+ "./auth/redis": "stable",
289
+ "./plugins/response-cache": "stable",
290
+ "./scope": "stable",
291
+ "./mcp": "stable",
292
+ "./mcp/testing": "stable",
293
+ "./scim": "stable",
294
+ "./auth/audit": "stable",
295
+ "./usage": "experimental",
296
+ "./testing/outbox": "stable",
297
+ "./testing/ports": "stable",
298
+ "./outbox-admin": "experimental"
299
+ }
300
+ },
301
+ "files": [
302
+ "dist",
303
+ "bin",
304
+ "skills",
305
+ "llms.txt",
306
+ "TRADEMARK.md"
307
+ ],
308
+ "scripts": {
309
+ "build": "tsdown",
310
+ "dev": "tsdown --watch",
311
+ "typecheck": "npm run typecheck:src && npm run typecheck:types && npm run typecheck:types-strict && npm run check:type-lane",
312
+ "typecheck:src": "tsc --noEmit",
313
+ "check:type-lane": "node scripts/check-type-lane.mjs",
314
+ "lint": "biome check src/",
315
+ "lint:fix": "biome check --fix src/",
316
+ "lint:all": "biome check src/ tests/",
317
+ "test": "vitest run",
318
+ "test:main": "vitest run",
319
+ "test:main:serial": "vitest run --no-file-parallelism",
320
+ "test:perf": "node --expose-gc ./node_modules/vitest/vitest.mjs run --config vitest.perf.config.ts --no-file-parallelism",
321
+ "test:ci": "npm run test:main && npm run test:perf",
322
+ "test:watch": "vitest",
323
+ "test:ui": "vitest --ui",
324
+ "typecheck:types": "tsc -p tsconfig.types.json",
325
+ "typecheck:types-strict": "tsc -p tsconfig.types-strict.json",
326
+ "api:surface": "node scripts/check-api-surface.mjs --update",
327
+ "check:api-surface": "node scripts/check-api-surface.mjs",
328
+ "check:package": "publint && attw --pack . --profile esm-only",
329
+ "test:coverage": "vitest run --coverage",
330
+ "test:fast": "vitest run tests/core tests/hooks tests/utils tests/plugins tests/cache tests/events",
331
+ "test:contract": "vitest run tests/contract tests/adapters tests/types",
332
+ "test:integration": "vitest run tests/integrations tests/factory tests/auth",
333
+ "test:e2e": "vitest run tests/e2e tests/scenarios tests/smoke",
334
+ "test:changed": "vitest run --changed",
335
+ "test:reliability": "vitest run tests/cache tests/events tests/migrations tests/plugins/schedules.test.ts tests/plugins/health.test.ts tests/utils/circuit-breaker.test.ts tests/utils/compensation-hooks.test.ts tests/integrations/jobs-timeout.test.ts",
336
+ "test:smoke:ws": "vitest run tests/integrations/websocket/smoke.test.ts",
337
+ "test:smoke:redis": "node scripts/smoke-ws-redis.mjs",
338
+ "smoke": "node scripts/smoke-test.mjs",
339
+ "smoke:consumer": "node scripts/smoke-test.mjs --consumer",
340
+ "smoke:mcp": "node scripts/mcp-e2e.mjs",
341
+ "bench:memory": "node --expose-gc scripts/bench-memory.mjs",
342
+ "bench:http": "node --expose-gc scripts/bench-http.mjs",
343
+ "push": "classytic-push",
344
+ "release:tag": "node -e \"require('child_process').execSync('npm run push -- v'+require('./package.json').version,{stdio:'inherit'})\"",
345
+ "release": "npm run push -- main && npm run release:tag && npm publish",
346
+ "check:peer-skew": "node scripts/check-peer-skew.mjs",
347
+ "check:docs-drift": "node scripts/check-docs-drift.mjs",
348
+ "check:boundaries": "node scripts/check-boundaries.mjs",
349
+ "prepublishOnly": "npm run check:line-endings && npm run check:peer-skew && npm run check:docs-drift && npm run check:route-api && npm run check:boundaries && npm run typecheck && npm run lint && npm run build && npm run check:api-surface && npm run check:forgotten-exports && npm run check:package && npm run test:ci && npm run smoke:consumer && npm run smoke:mcp",
350
+ "check:route-api": "node scripts/check-removed-route-api.mjs",
351
+ "check:forgotten-exports": "node scripts/check-forgotten-exports.mjs",
352
+ "check:line-endings": "node scripts/check-line-endings.mjs",
353
+ "fix:line-endings": "node scripts/check-line-endings.mjs --fix"
354
+ },
355
+ "engines": {
356
+ "node": ">=22"
357
+ },
358
+ "peerDependencies": {
359
+ "@classytic/primitives": ">=0.31.0",
360
+ "@classytic/repo-core": ">=0.31.0",
361
+ "@classytic/streamline": ">=2.8.0",
362
+ "@fastify/cors": ">=11.0.0",
363
+ "@fastify/helmet": ">=13.0.0",
364
+ "@fastify/jwt": ">=10.0.0",
365
+ "@fastify/multipart": ">=10.0.0",
366
+ "@fastify/rate-limit": ">=11.0.0",
367
+ "@fastify/sensible": ">=6.0.0",
368
+ "@fastify/static": ">=10.0.0",
369
+ "@fastify/type-provider-typebox": ">=6.0.0",
370
+ "@fastify/under-pressure": ">=9.0.0",
371
+ "@fastify/websocket": ">=11.0.0",
372
+ "@modelcontextprotocol/client": ">=2.0.0",
373
+ "@modelcontextprotocol/node": ">=2.0.0",
374
+ "@modelcontextprotocol/server": ">=2.0.0",
375
+ "@opentelemetry/api": ">=1.9.0",
376
+ "@opentelemetry/auto-instrumentations-node": ">=0.40.0",
377
+ "@opentelemetry/exporter-trace-otlp-http": ">=0.50.0",
378
+ "@opentelemetry/instrumentation-http": ">=0.50.0",
379
+ "@opentelemetry/instrumentation-mongodb": ">=0.40.0",
380
+ "@opentelemetry/sdk-node": ">=0.50.0",
381
+ "better-auth": ">=1.7.0",
382
+ "bullmq": ">=6.0.0",
383
+ "fastify": ">=5.12.0",
384
+ "fastify-raw-body": ">=5.0.0",
385
+ "h3-js": ">=4.0.0",
386
+ "ioredis": ">=6.0.0",
387
+ "jose": ">=6.0.0",
388
+ "pino-pretty": ">=13.0.0",
389
+ "typebox": ">=1.0.0",
390
+ "zod": ">=4.4.0"
391
+ },
392
+ "peerDependenciesMeta": {
393
+ "@classytic/streamline": {
394
+ "optional": true
395
+ },
396
+ "@fastify/cors": {
397
+ "optional": true
398
+ },
399
+ "@fastify/helmet": {
400
+ "optional": true
401
+ },
402
+ "@fastify/jwt": {
403
+ "optional": true
404
+ },
405
+ "@fastify/multipart": {
406
+ "optional": true
407
+ },
408
+ "@fastify/rate-limit": {
409
+ "optional": true
410
+ },
411
+ "@fastify/sensible": {
412
+ "optional": true
413
+ },
414
+ "@fastify/static": {
415
+ "optional": true
416
+ },
417
+ "@fastify/type-provider-typebox": {
418
+ "optional": true
419
+ },
420
+ "@fastify/under-pressure": {
421
+ "optional": true
422
+ },
423
+ "@fastify/websocket": {
424
+ "optional": true
425
+ },
426
+ "@modelcontextprotocol/client": {
427
+ "optional": true
428
+ },
429
+ "@modelcontextprotocol/node": {
430
+ "optional": true
431
+ },
432
+ "@modelcontextprotocol/server": {
433
+ "optional": true
434
+ },
435
+ "@opentelemetry/api": {
436
+ "optional": true
437
+ },
438
+ "@opentelemetry/auto-instrumentations-node": {
439
+ "optional": true
440
+ },
441
+ "@opentelemetry/exporter-trace-otlp-http": {
442
+ "optional": true
443
+ },
444
+ "@opentelemetry/instrumentation-http": {
445
+ "optional": true
446
+ },
447
+ "@opentelemetry/instrumentation-mongodb": {
448
+ "optional": true
449
+ },
450
+ "@opentelemetry/sdk-node": {
451
+ "optional": true
452
+ },
453
+ "better-auth": {
454
+ "optional": true
455
+ },
456
+ "bullmq": {
457
+ "optional": true
458
+ },
459
+ "fastify-raw-body": {
460
+ "optional": true
461
+ },
462
+ "h3-js": {
463
+ "optional": true
464
+ },
465
+ "ioredis": {
466
+ "optional": true
467
+ },
468
+ "jose": {
469
+ "optional": true
470
+ },
471
+ "pino-pretty": {
472
+ "optional": true
473
+ },
474
+ "typebox": {
475
+ "optional": true
476
+ },
477
+ "zod": {
478
+ "optional": true
479
+ }
480
+ },
481
+ "dependencies": {
482
+ "@fastify/ajv-compiler": "^4.0.0",
483
+ "fastify-plugin": "^6.0.0",
484
+ "qs": "^6.16.0",
485
+ "secure-json-parse": "^4.1.0"
486
+ },
487
+ "devDependencies": {
488
+ "@arethetypeswrong/cli": "^0.18.5",
489
+ "@better-auth/drizzle-adapter": "^1.6.19",
490
+ "@better-auth/mongo-adapter": "^1.6.19",
491
+ "@biomejs/biome": "^2.5.7",
492
+ "@classytic/dev-tools": "^0.2.0",
493
+ "@classytic/gitkit": ">=0.1.0",
494
+ "@classytic/mongokit": "^3.40.1",
495
+ "@classytic/pgkit": "^0.1.0",
496
+ "@classytic/primitives": "^0.31.0",
497
+ "@classytic/repo-core": "^0.31.0",
498
+ "@classytic/sqlitekit": "^0.9.0",
499
+ "@classytic/streamline": "^2.8.2",
500
+ "@electric-sql/pglite": "^0.5.4",
501
+ "@fastify/cors": "^11.2.0",
502
+ "@fastify/helmet": "^13.0.2",
503
+ "@fastify/jwt": "^10.1.0",
504
+ "@fastify/multipart": "^10.0.0",
505
+ "@fastify/rate-limit": "^11.0.0",
506
+ "@fastify/sensible": "^6.0.4",
507
+ "@fastify/static": "^10.1.2",
508
+ "@fastify/type-provider-typebox": "^6.1.0",
509
+ "@fastify/under-pressure": "^9.0.3",
510
+ "@fastify/websocket": "^11.2.0",
511
+ "@modelcontextprotocol/client": "^2.0.0",
512
+ "@modelcontextprotocol/node": "^2.0.0",
513
+ "@modelcontextprotocol/server": "^2.0.0",
514
+ "@opentelemetry/api": "^1.9.1",
515
+ "@types/node": "^22.19.21",
516
+ "@types/qs": "^6.15.1",
517
+ "@vitest/coverage-v8": "^5.0.0",
518
+ "ajv": "^8.20.0",
519
+ "better-auth": "^1.7.3",
520
+ "better-sqlite3": "^13.0.3",
521
+ "bullmq": "^6.1.2",
522
+ "dotenv": "^17.4.2",
523
+ "drizzle-orm": "^0.45.2",
524
+ "fast-check": "^4.8.0",
525
+ "fastify": "^5.12.1",
526
+ "fastify-raw-body": "^6.0.1",
527
+ "h3-js": "^4.4.0",
528
+ "ioredis": "^6.0.0",
529
+ "jose": "^6.2.3",
530
+ "jsonwebtoken": "^9.0.3",
531
+ "knip": "^6.31.0",
532
+ "mongodb": "^7.3.0",
533
+ "mongodb-memory-server": "^11.2.0",
534
+ "mongoose": "^9.9.1",
535
+ "publint": "^0.3.21",
536
+ "tsdown": "^0.22.14",
537
+ "typebox": "^1.3.6",
538
+ "typescript": "^7.0.2",
539
+ "vitest": "^5.0.0",
540
+ "ws": "^8.21.0",
541
+ "zod": "^4.4.3"
542
+ },
543
+ "config": {
544
+ "mongodbMemoryServer": {
545
+ "disablePostinstall": "1"
546
+ }
547
+ },
548
+ "keywords": [
549
+ "fastify",
550
+ "mongodb",
551
+ "mongoose",
552
+ "crud",
553
+ "rest",
554
+ "api",
555
+ "framework",
556
+ "resource",
557
+ "multi-tenant",
558
+ "typescript",
559
+ "tree-shakable",
560
+ "serverless",
561
+ "websocket",
562
+ "jobs",
563
+ "workflow"
564
+ ],
565
+ "author": "Classytic",
566
+ "license": "MIT",
567
+ "homepage": "https://classytic.com",
568
+ "repository": {
569
+ "type": "git",
570
+ "url": "git+https://github.com/classytic/arc.git"
571
+ },
572
+ "overrides": {
573
+ "better-sqlite3": "$better-sqlite3",
574
+ "better-auth": {
575
+ "vitest": "$vitest"
576
+ }
577
+ }
578
+ }