@classytic/arc 2.30.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-B5DwufbB.mjs → BaseController-De7GqHck.mjs} +16 -17
  5. package/dist/{EventTransport-QmY7A258.d.mts → EventTransport-2uVV34WU.d.mts} +1 -0
  6. package/dist/{EventTransport-C6YA8xY9.mjs → EventTransport-9mlTgqzE.mjs} +1 -0
  7. package/dist/{HookSystem-WkIougo6.mjs → HookSystem-BcmPyq5I.mjs} +2 -1
  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 +2 -1
  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/{applyPermissionResult-Cf6zUCvb.mjs → authorizationDecision-ChvUQGG1.mjs} +19 -10
  20. package/dist/{buildHandler-BYS3Vkfz.mjs → buildHandler-CDrCJzmB.mjs} +4 -3
  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 -6
  45. package/dist/{core-poalJLvp.mjs → core-BGpIxINN.mjs} +3 -2
  46. package/dist/{createActionRouter-BxuywVRB.mjs → createActionRouter-CDXEdasl.mjs} +8 -7
  47. package/dist/{createAggregationRouter-BiY-lGdY.mjs → createAggregationRouter-KrQDzx-k.mjs} +7 -6
  48. package/dist/{createApp-CXrKFciH.mjs → createApp-Df89BEni.mjs} +484 -209
  49. package/dist/{defineAggregation-ufWjUwml.mjs → defineAggregation-DbPPS8RI.mjs} +1 -0
  50. package/dist/{defineResource-CxWqDCAy.mjs → defineResource-Bv6EtN1x.mjs} +63 -38
  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-D2NNR4py.mjs → eventPlugin-CkffEihm.mjs} +5 -4
  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 +16 -4
  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-0WhPnUH7.d.mts → fastify-augmentation-zh0_AYHa.d.mts} +13 -4
  75. package/dist/{fields-CQ_7KQWw.mjs → fields-CB5Cuzk9.mjs} +1 -0
  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 +4 -3
  85. package/dist/idempotency/redis.d.mts +2 -1
  86. package/dist/idempotency/redis.mjs +1 -0
  87. package/dist/{index-Cx7bro4R.d.mts → index-Bc2ox8_U.d.mts} +5 -4
  88. package/dist/{index-CG4yqMDB.d.mts → index-C-481Zf2.d.mts} +74 -18
  89. package/dist/{index-Ch16aAah.d.mts → index-CEJNZFtX.d.mts} +53 -15
  90. package/dist/index-CFThn1K9.d.mts +224 -0
  91. package/dist/{index-Q5gzEIWY.d.mts → index-CpzxqePp.d.mts} +107 -32
  92. package/dist/index.d.mts +9 -8
  93. package/dist/index.mjs +11 -10
  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 +6 -6
  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-nRzm5g2s.mjs → mcpPlugin-B_es0hiF.mjs} +22 -23
  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 -0
  131. package/dist/migrations/index.mjs +2 -1
  132. package/dist/module-0pFJA6YW.mjs +78 -0
  133. package/dist/{multipartBody-D0eBvkeq.mjs → multipartBody-wOgj_fnj.mjs} +1 -0
  134. package/dist/{openapi-B8Vkbxbn.mjs → openapi-B2L4js1v.mjs} +6 -5
  135. package/dist/permissions/index.d.mts +5 -4
  136. package/dist/permissions/index.mjs +6 -5
  137. package/dist/{permissions-Bfu_8y1U.mjs → permissions-L--QDAir.mjs} +214 -41
  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-BJnpkY9i.mjs → pipeline-UPQFatit.mjs} +6 -5
  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-DCfa2egz.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 +3 -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-CJOEXLuk.mjs → presets-C4-g4_4P.mjs} +4 -3
  160. package/dist/{projection-UBDgfMwu.mjs → projection-BHw6xlOQ.mjs} +2 -1
  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-B9nmIY5V.mjs → realtime-C5NoxWFY.mjs} +20 -9
  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-JkxIEBJq.mjs → registerRoute-CBN84fc7.mjs} +4 -3
  170. package/dist/registry/index.d.mts +3 -2
  171. package/dist/registry/index.mjs +3 -2
  172. package/dist/{registry-BYXUUg21.mjs → registry-4213U4zb.mjs} +2 -1
  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-Dz8k3S4P.mjs → repositoryFilter-f9eAfq_l.mjs} +1 -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-DfzsivM6.mjs → subscribe-helpers-C0Tb2aUp.mjs} +2 -1
  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 +139 -12
  201. package/dist/testing/index.mjs +230 -16
  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-ChvvVNP8.d.mts → types-B7XeLEgK.d.mts} +34 -2
  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-D_n8L6VY.d.mts → types-CBgvkp8O.d.mts} +51 -12
  217. package/dist/{types-DjC-KUCz.d.mts → types-ChuShpCP.d.mts} +1 -0
  218. package/dist/{types-Bmmn-fO0.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 -7
  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 +547 -539
  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-CCzVR-N3.d.mts +0 -107
  239. package/dist/module-_-M7C5ES.mjs +0 -29
package/package.json CHANGED
@@ -1,541 +1,549 @@
1
1
  {
2
- "name": "@classytic/arc",
3
- "version": "2.30.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
- "./testing/outbox": {
224
- "types": "./dist/testing/outboxStoreContract.d.mts",
225
- "default": "./dist/testing/outboxStoreContract.mjs"
226
- }
227
- },
228
- "main": "./dist/index.mjs",
229
- "types": "./dist/index.d.mts",
230
- "bin": {
231
- "arc": "./bin/arc.js"
232
- },
233
- "publishConfig": {
234
- "access": "public"
235
- },
236
- "sideEffects": false,
237
- "arc": {
238
- "subpathStability": {
239
- ".": "stable",
240
- "./permissions": "stable",
241
- "./cache": "stable",
242
- "./cleanup": "stable",
243
- "./types": "stable",
244
- "./types/storage": "stable",
245
- "./core": "stable",
246
- "./presets": "stable",
247
- "./presets/tenant": "stable",
248
- "./presets/files-upload": "stable",
249
- "./presets/search": "stable",
250
- "./auth": "stable",
251
- "./hooks": "stable",
252
- "./middleware": "stable",
253
- "./pipeline": "stable",
254
- "./context": "stable",
255
- "./logger": "stable",
256
- "./registry": "stable",
257
- "./utils": "stable",
258
- "./cli": "stable",
259
- "./plugins": "stable",
260
- "./plugins/tracing": "stable",
261
- "./audit": "stable",
262
- "./docs": "stable",
263
- "./encryption": "stable",
264
- "./idempotency": "stable",
265
- "./idempotency/redis": "stable",
266
- "./events": "stable",
267
- "./events/redis": "stable",
268
- "./events/redis-stream": "stable",
269
- "./testing": "stable",
270
- "./testing/storage": "stable",
271
- "./testing/cleanup": "stable",
272
- "./factory": "stable",
273
- "./schemas": "stable",
274
- "./migrations": "stable",
275
- "./discovery": "stable",
276
- "./integrations": "stable",
277
- "./integrations/streamline": "stable",
278
- "./integrations/websocket": "stable",
279
- "./integrations/websocket-redis": "stable",
280
- "./integrations/websocket-pushref-redis": "stable",
281
- "./integrations/jobs": "stable",
282
- "./integrations/event-gateway": "experimental",
283
- "./integrations/webhooks": "stable",
284
- "./auth/redis": "stable",
285
- "./plugins/response-cache": "stable",
286
- "./scope": "stable",
287
- "./mcp": "stable",
288
- "./mcp/testing": "stable",
289
- "./scim": "stable",
290
- "./auth/audit": "stable",
291
- "./sync": "experimental",
292
- "./usage": "experimental",
293
- "./testing/outbox": "stable"
294
- }
295
- },
296
- "files": [
297
- "dist",
298
- "bin",
299
- "skills",
300
- "llms.txt"
301
- ],
302
- "scripts": {
303
- "build": "tsdown",
304
- "dev": "tsdown --watch",
305
- "typecheck": "npm run typecheck:src && npm run typecheck:types && npm run check:type-lane",
306
- "typecheck:src": "tsc --noEmit",
307
- "check:type-lane": "node scripts/check-type-lane.mjs",
308
- "lint": "biome check src/",
309
- "lint:fix": "biome check --fix src/",
310
- "lint:all": "biome check src/ tests/",
311
- "test": "vitest run",
312
- "test:main": "vitest run",
313
- "test:main:serial": "vitest run --no-file-parallelism",
314
- "test:perf": "node --expose-gc ./node_modules/vitest/vitest.mjs run --config vitest.perf.config.ts --no-file-parallelism",
315
- "test:ci": "npm run test:main && npm run test:perf",
316
- "test:watch": "vitest",
317
- "test:ui": "vitest --ui",
318
- "typecheck:types": "tsc -p tsconfig.types.json",
319
- "api:surface": "node scripts/check-api-surface.mjs --update",
320
- "check:api-surface": "node scripts/check-api-surface.mjs",
321
- "check:package": "publint && attw --pack . --profile esm-only",
322
- "test:coverage": "vitest run --coverage",
323
- "test:fast": "vitest run tests/core tests/hooks tests/utils tests/plugins tests/cache tests/events",
324
- "test:contract": "vitest run tests/contract tests/adapters tests/types",
325
- "test:integration": "vitest run tests/integrations tests/factory tests/auth",
326
- "test:e2e": "vitest run tests/e2e tests/scenarios tests/smoke",
327
- "test:changed": "vitest run --changed",
328
- "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",
329
- "test:smoke:ws": "vitest run tests/integrations/websocket/smoke.test.ts",
330
- "test:smoke:redis": "node scripts/smoke-ws-redis.mjs",
331
- "smoke": "node scripts/smoke-test.mjs",
332
- "smoke:consumer": "node scripts/smoke-test.mjs --consumer",
333
- "push": "classytic-push",
334
- "release:tag": "node -e \"require('child_process').execSync('npm run push -- v'+require('./package.json').version,{stdio:'inherit'})\"",
335
- "release": "npm run push -- main && npm run release:tag && npm publish",
336
- "check:peer-skew": "node scripts/check-peer-skew.mjs",
337
- "check:docs-drift": "node scripts/check-docs-drift.mjs",
338
- "check:boundaries": "node scripts/check-boundaries.mjs",
339
- "prepublishOnly": "npm run check:peer-skew && npm run check:docs-drift && npm run check:boundaries && npm run typecheck && npm run lint && npm run build && npm run check:api-surface && npm run check:package && npm run test:ci && npm run smoke:consumer"
340
- },
341
- "engines": {
342
- "node": ">=22"
343
- },
344
- "peerDependencies": {
345
- "@classytic/primitives": ">=0.15.0",
346
- "@classytic/repo-core": ">=0.17.0",
347
- "@classytic/streamline": ">=2.8.0",
348
- "@fastify/cors": ">=11.0.0",
349
- "@fastify/helmet": ">=13.0.0",
350
- "@fastify/jwt": ">=10.0.0",
351
- "@fastify/multipart": ">=9.0.0",
352
- "@fastify/rate-limit": ">=10.0.0",
353
- "@fastify/sensible": ">=6.0.0",
354
- "@fastify/type-provider-typebox": ">=6.0.0",
355
- "@fastify/under-pressure": ">=9.0.0",
356
- "@fastify/websocket": ">=11.0.0",
357
- "@modelcontextprotocol/sdk": ">=1.28.0",
358
- "@opentelemetry/api": ">=1.9.0",
359
- "@opentelemetry/auto-instrumentations-node": ">=0.40.0",
360
- "@opentelemetry/exporter-trace-otlp-http": ">=0.50.0",
361
- "@opentelemetry/instrumentation-http": ">=0.50.0",
362
- "@opentelemetry/instrumentation-mongodb": ">=0.40.0",
363
- "@opentelemetry/sdk-node": ">=0.50.0",
364
- "better-auth": ">=1.6.2",
365
- "bullmq": ">=5.0.0",
366
- "fastify": ">=5.8.5",
367
- "fastify-raw-body": ">=5.0.0",
368
- "h3-js": ">=4.0.0",
369
- "ioredis": ">=5.0.0",
370
- "jose": ">=5.0.0",
371
- "pino-pretty": ">=13.0.0",
372
- "typebox": ">=1.0.0",
373
- "zod": ">=4.0.0"
374
- },
375
- "peerDependenciesMeta": {
376
- "better-auth": {
377
- "optional": true
378
- },
379
- "@fastify/cors": {
380
- "optional": true
381
- },
382
- "@fastify/helmet": {
383
- "optional": true
384
- },
385
- "@fastify/jwt": {
386
- "optional": true
387
- },
388
- "@fastify/rate-limit": {
389
- "optional": true
390
- },
391
- "@fastify/sensible": {
392
- "optional": true
393
- },
394
- "@fastify/under-pressure": {
395
- "optional": true
396
- },
397
- "@fastify/multipart": {
398
- "optional": true
399
- },
400
- "@fastify/websocket": {
401
- "optional": true
402
- },
403
- "fastify-raw-body": {
404
- "optional": true
405
- },
406
- "h3-js": {
407
- "optional": true
408
- },
409
- "pino-pretty": {
410
- "optional": true
411
- },
412
- "@opentelemetry/api": {
413
- "optional": true
414
- },
415
- "@opentelemetry/sdk-node": {
416
- "optional": true
417
- },
418
- "@opentelemetry/exporter-trace-otlp-http": {
419
- "optional": true
420
- },
421
- "@opentelemetry/instrumentation-http": {
422
- "optional": true
423
- },
424
- "@opentelemetry/instrumentation-mongodb": {
425
- "optional": true
426
- },
427
- "@opentelemetry/auto-instrumentations-node": {
428
- "optional": true
429
- },
430
- "ioredis": {
431
- "optional": true
432
- },
433
- "jose": {
434
- "optional": true
435
- },
436
- "typebox": {
437
- "optional": true
438
- },
439
- "@fastify/type-provider-typebox": {
440
- "optional": true
441
- },
442
- "bullmq": {
443
- "optional": true
444
- },
445
- "@classytic/streamline": {
446
- "optional": true
447
- },
448
- "zod": {
449
- "optional": true
450
- },
451
- "@modelcontextprotocol/sdk": {
452
- "optional": true
453
- }
454
- },
455
- "dependencies": {
456
- "fastify-plugin": "^6.0.0",
457
- "qs": "^6.15.2",
458
- "secure-json-parse": "^4.1.0"
459
- },
460
- "devDependencies": {
461
- "@arethetypeswrong/cli": "^0.18.5",
462
- "@better-auth/drizzle-adapter": "^1.6.19",
463
- "@better-auth/mongo-adapter": "^1.6.19",
464
- "@biomejs/biome": "^2.5.5",
465
- "@classytic/dev-tools": "^0.2.0",
466
- "@classytic/gitkit": ">=0.1.0",
467
- "@classytic/mongokit": "^3.28.0",
468
- "@classytic/pgkit": "^0.1.0",
469
- "@classytic/primitives": "^0.15.0",
470
- "@classytic/repo-core": "^0.17.0",
471
- "@classytic/sqlitekit": "^0.6.0",
472
- "@classytic/streamline": "^2.8.2",
473
- "@electric-sql/pglite": "^0.5.4",
474
- "@fastify/cors": "^11.2.0",
475
- "@fastify/helmet": "^13.0.2",
476
- "@fastify/jwt": "^10.1.0",
477
- "@fastify/multipart": "^10.0.0",
478
- "@fastify/rate-limit": "^11.0.0",
479
- "@fastify/sensible": "^6.0.4",
480
- "@fastify/type-provider-typebox": "^6.1.0",
481
- "@fastify/under-pressure": "^9.0.3",
482
- "@fastify/websocket": "^11.2.0",
483
- "@modelcontextprotocol/sdk": "^1.29.0",
484
- "@opentelemetry/api": "^1.9.1",
485
- "@types/node": "^22.19.21",
486
- "@types/qs": "^6.15.1",
487
- "@vitest/coverage-v8": "^4.1.9",
488
- "ajv": "^8.20.0",
489
- "better-auth": "^1.6.25",
490
- "better-sqlite3": "^12.11.1",
491
- "bullmq": "^5.81.2",
492
- "dotenv": "^17.4.2",
493
- "drizzle-orm": "^0.45.2",
494
- "fast-check": "^4.8.0",
495
- "fastify": "^5.10.0",
496
- "fastify-raw-body": "^5.0.0",
497
- "h3-js": "^4.4.0",
498
- "ioredis": "^5.11.1",
499
- "jose": "^6.2.3",
500
- "jsonwebtoken": "^9.0.3",
501
- "knip": "^6.17.1",
502
- "mongodb": "^7.3.0",
503
- "mongodb-memory-server": "^11.2.0",
504
- "mongoose": "^9.7.1",
505
- "publint": "^0.3.21",
506
- "tsdown": "^0.22.14",
507
- "typebox": "^1.3.6",
508
- "typescript": "^7.0.2",
509
- "vitest": "^4.1.10",
510
- "ws": "^8.21.0",
511
- "zod": "^4.4.3"
512
- },
513
- "config": {
514
- "mongodbMemoryServer": {
515
- "disablePostinstall": "1"
516
- }
517
- },
518
- "keywords": [
519
- "fastify",
520
- "mongodb",
521
- "mongoose",
522
- "crud",
523
- "rest",
524
- "api",
525
- "framework",
526
- "resource",
527
- "multi-tenant",
528
- "typescript",
529
- "tree-shakable",
530
- "serverless",
531
- "websocket",
532
- "jobs",
533
- "workflow"
534
- ],
535
- "author": "Classytic",
536
- "license": "MIT",
537
- "repository": {
538
- "type": "git",
539
- "url": "git+https://github.com/classytic/arc.git"
540
- }
2
+ "name": "@classytic/arc",
3
+ "version": "2.31.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
+ "./testing/outbox": {
224
+ "types": "./dist/testing/outboxStoreContract.d.mts",
225
+ "default": "./dist/testing/outboxStoreContract.mjs"
226
+ }
227
+ },
228
+ "main": "./dist/index.mjs",
229
+ "types": "./dist/index.d.mts",
230
+ "bin": {
231
+ "arc": "./bin/arc.js"
232
+ },
233
+ "publishConfig": {
234
+ "access": "public"
235
+ },
236
+ "sideEffects": false,
237
+ "arc": {
238
+ "subpathStability": {
239
+ ".": "stable",
240
+ "./permissions": "stable",
241
+ "./cache": "stable",
242
+ "./cleanup": "stable",
243
+ "./types": "stable",
244
+ "./types/storage": "stable",
245
+ "./core": "stable",
246
+ "./presets": "stable",
247
+ "./presets/tenant": "stable",
248
+ "./presets/files-upload": "stable",
249
+ "./presets/search": "stable",
250
+ "./auth": "stable",
251
+ "./hooks": "stable",
252
+ "./middleware": "stable",
253
+ "./pipeline": "stable",
254
+ "./context": "stable",
255
+ "./logger": "stable",
256
+ "./registry": "stable",
257
+ "./utils": "stable",
258
+ "./cli": "stable",
259
+ "./plugins": "stable",
260
+ "./plugins/tracing": "stable",
261
+ "./audit": "stable",
262
+ "./docs": "stable",
263
+ "./encryption": "stable",
264
+ "./idempotency": "stable",
265
+ "./idempotency/redis": "stable",
266
+ "./events": "stable",
267
+ "./events/redis": "stable",
268
+ "./events/redis-stream": "stable",
269
+ "./testing": "stable",
270
+ "./testing/storage": "stable",
271
+ "./testing/cleanup": "stable",
272
+ "./factory": "stable",
273
+ "./schemas": "stable",
274
+ "./migrations": "stable",
275
+ "./discovery": "stable",
276
+ "./integrations": "stable",
277
+ "./integrations/streamline": "stable",
278
+ "./integrations/websocket": "stable",
279
+ "./integrations/websocket-redis": "stable",
280
+ "./integrations/websocket-pushref-redis": "stable",
281
+ "./integrations/jobs": "stable",
282
+ "./integrations/event-gateway": "experimental",
283
+ "./integrations/webhooks": "stable",
284
+ "./auth/redis": "stable",
285
+ "./plugins/response-cache": "stable",
286
+ "./scope": "stable",
287
+ "./mcp": "stable",
288
+ "./mcp/testing": "stable",
289
+ "./scim": "stable",
290
+ "./auth/audit": "stable",
291
+ "./sync": "experimental",
292
+ "./usage": "experimental",
293
+ "./testing/outbox": "stable"
294
+ }
295
+ },
296
+ "files": [
297
+ "dist",
298
+ "bin",
299
+ "skills",
300
+ "llms.txt",
301
+ "TRADEMARK.md"
302
+ ],
303
+ "scripts": {
304
+ "build": "tsdown",
305
+ "dev": "tsdown --watch",
306
+ "typecheck": "npm run typecheck:src && npm run typecheck:types && npm run check:type-lane",
307
+ "typecheck:src": "tsc --noEmit",
308
+ "check:type-lane": "node scripts/check-type-lane.mjs",
309
+ "lint": "biome check src/",
310
+ "lint:fix": "biome check --fix src/",
311
+ "lint:all": "biome check src/ tests/",
312
+ "test": "vitest run",
313
+ "test:main": "vitest run",
314
+ "test:main:serial": "vitest run --no-file-parallelism",
315
+ "test:perf": "node --expose-gc ./node_modules/vitest/vitest.mjs run --config vitest.perf.config.ts --no-file-parallelism",
316
+ "test:ci": "npm run test:main && npm run test:perf",
317
+ "test:watch": "vitest",
318
+ "test:ui": "vitest --ui",
319
+ "typecheck:types": "tsc -p tsconfig.types.json",
320
+ "api:surface": "node scripts/check-api-surface.mjs --update",
321
+ "check:api-surface": "node scripts/check-api-surface.mjs",
322
+ "check:package": "publint && attw --pack . --profile esm-only",
323
+ "test:coverage": "vitest run --coverage",
324
+ "test:fast": "vitest run tests/core tests/hooks tests/utils tests/plugins tests/cache tests/events",
325
+ "test:contract": "vitest run tests/contract tests/adapters tests/types",
326
+ "test:integration": "vitest run tests/integrations tests/factory tests/auth",
327
+ "test:e2e": "vitest run tests/e2e tests/scenarios tests/smoke",
328
+ "test:changed": "vitest run --changed",
329
+ "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",
330
+ "test:smoke:ws": "vitest run tests/integrations/websocket/smoke.test.ts",
331
+ "test:smoke:redis": "node scripts/smoke-ws-redis.mjs",
332
+ "smoke": "node scripts/smoke-test.mjs",
333
+ "smoke:consumer": "node scripts/smoke-test.mjs --consumer",
334
+ "push": "classytic-push",
335
+ "release:tag": "node -e \"require('child_process').execSync('npm run push -- v'+require('./package.json').version,{stdio:'inherit'})\"",
336
+ "release": "npm run push -- main && npm run release:tag && npm publish",
337
+ "check:peer-skew": "node scripts/check-peer-skew.mjs",
338
+ "check:docs-drift": "node scripts/check-docs-drift.mjs",
339
+ "check:boundaries": "node scripts/check-boundaries.mjs",
340
+ "prepublishOnly": "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:package && npm run test:ci && npm run smoke:consumer",
341
+ "check:route-api": "node scripts/check-removed-route-api.mjs"
342
+ },
343
+ "engines": {
344
+ "node": ">=22"
345
+ },
346
+ "peerDependencies": {
347
+ "@classytic/primitives": ">=0.18.0",
348
+ "@classytic/repo-core": ">=0.17.0",
349
+ "@classytic/streamline": ">=2.8.0",
350
+ "@fastify/cors": ">=11.0.0",
351
+ "@fastify/helmet": ">=13.0.0",
352
+ "@fastify/jwt": ">=10.0.0",
353
+ "@fastify/multipart": ">=9.0.0",
354
+ "@fastify/rate-limit": ">=10.0.0",
355
+ "@fastify/sensible": ">=6.0.0",
356
+ "@fastify/type-provider-typebox": ">=6.0.0",
357
+ "@fastify/under-pressure": ">=9.0.0",
358
+ "@fastify/websocket": ">=11.0.0",
359
+ "@modelcontextprotocol/sdk": ">=1.28.0",
360
+ "@opentelemetry/api": ">=1.9.0",
361
+ "@opentelemetry/auto-instrumentations-node": ">=0.40.0",
362
+ "@opentelemetry/exporter-trace-otlp-http": ">=0.50.0",
363
+ "@opentelemetry/instrumentation-http": ">=0.50.0",
364
+ "@opentelemetry/instrumentation-mongodb": ">=0.40.0",
365
+ "@opentelemetry/sdk-node": ">=0.50.0",
366
+ "better-auth": ">=1.6.2",
367
+ "bullmq": ">=5.0.0",
368
+ "fastify": ">=5.8.5",
369
+ "fastify-raw-body": ">=5.0.0",
370
+ "h3-js": ">=4.0.0",
371
+ "ioredis": ">=5.0.0",
372
+ "jose": ">=5.0.0",
373
+ "pino-pretty": ">=13.0.0",
374
+ "typebox": ">=1.0.0",
375
+ "zod": ">=4.4.0",
376
+ "@fastify/static": ">=8.0.0"
377
+ },
378
+ "peerDependenciesMeta": {
379
+ "better-auth": {
380
+ "optional": true
381
+ },
382
+ "@fastify/cors": {
383
+ "optional": true
384
+ },
385
+ "@fastify/helmet": {
386
+ "optional": true
387
+ },
388
+ "@fastify/jwt": {
389
+ "optional": true
390
+ },
391
+ "@fastify/rate-limit": {
392
+ "optional": true
393
+ },
394
+ "@fastify/sensible": {
395
+ "optional": true
396
+ },
397
+ "@fastify/under-pressure": {
398
+ "optional": true
399
+ },
400
+ "@fastify/multipart": {
401
+ "optional": true
402
+ },
403
+ "@fastify/websocket": {
404
+ "optional": true
405
+ },
406
+ "fastify-raw-body": {
407
+ "optional": true
408
+ },
409
+ "h3-js": {
410
+ "optional": true
411
+ },
412
+ "pino-pretty": {
413
+ "optional": true
414
+ },
415
+ "@opentelemetry/api": {
416
+ "optional": true
417
+ },
418
+ "@opentelemetry/sdk-node": {
419
+ "optional": true
420
+ },
421
+ "@opentelemetry/exporter-trace-otlp-http": {
422
+ "optional": true
423
+ },
424
+ "@opentelemetry/instrumentation-http": {
425
+ "optional": true
426
+ },
427
+ "@opentelemetry/instrumentation-mongodb": {
428
+ "optional": true
429
+ },
430
+ "@opentelemetry/auto-instrumentations-node": {
431
+ "optional": true
432
+ },
433
+ "ioredis": {
434
+ "optional": true
435
+ },
436
+ "jose": {
437
+ "optional": true
438
+ },
439
+ "typebox": {
440
+ "optional": true
441
+ },
442
+ "@fastify/type-provider-typebox": {
443
+ "optional": true
444
+ },
445
+ "bullmq": {
446
+ "optional": true
447
+ },
448
+ "@classytic/streamline": {
449
+ "optional": true
450
+ },
451
+ "zod": {
452
+ "optional": true
453
+ },
454
+ "@modelcontextprotocol/sdk": {
455
+ "optional": true
456
+ },
457
+ "@fastify/static": {
458
+ "optional": true
459
+ }
460
+ },
461
+ "dependencies": {
462
+ "fastify-plugin": "^6.0.0",
463
+ "qs": "^6.15.2",
464
+ "secure-json-parse": "^4.1.0"
465
+ },
466
+ "devDependencies": {
467
+ "@arethetypeswrong/cli": "^0.18.5",
468
+ "@better-auth/drizzle-adapter": "^1.6.19",
469
+ "@better-auth/mongo-adapter": "^1.6.19",
470
+ "@biomejs/biome": "^2.5.5",
471
+ "@classytic/dev-tools": "^0.2.0",
472
+ "@classytic/gitkit": ">=0.1.0",
473
+ "@classytic/mongokit": "^3.28.0",
474
+ "@classytic/pgkit": "^0.1.0",
475
+ "@classytic/primitives": "^0.18.0",
476
+ "@classytic/repo-core": "^0.17.0",
477
+ "@classytic/sqlitekit": "^0.6.0",
478
+ "@classytic/streamline": "^2.8.2",
479
+ "@electric-sql/pglite": "^0.5.4",
480
+ "@fastify/cors": "^11.2.0",
481
+ "@fastify/helmet": "^13.0.2",
482
+ "@fastify/jwt": "^10.1.0",
483
+ "@fastify/multipart": "^10.0.0",
484
+ "@fastify/rate-limit": "^11.0.0",
485
+ "@fastify/sensible": "^6.0.4",
486
+ "@fastify/static": "^10.1.2",
487
+ "@fastify/type-provider-typebox": "^6.1.0",
488
+ "@fastify/under-pressure": "^9.0.3",
489
+ "@fastify/websocket": "^11.2.0",
490
+ "@modelcontextprotocol/sdk": "^1.29.0",
491
+ "@opentelemetry/api": "^1.9.1",
492
+ "@types/node": "^22.19.21",
493
+ "@types/qs": "^6.15.1",
494
+ "@vitest/coverage-v8": "^4.1.9",
495
+ "ajv": "^8.20.0",
496
+ "better-auth": "^1.6.25",
497
+ "better-sqlite3": "^12.11.1",
498
+ "bullmq": "^5.81.2",
499
+ "dotenv": "^17.4.2",
500
+ "drizzle-orm": "^0.45.2",
501
+ "fast-check": "^4.8.0",
502
+ "fastify": "^5.10.0",
503
+ "fastify-raw-body": "^5.0.0",
504
+ "h3-js": "^4.4.0",
505
+ "ioredis": "^5.11.1",
506
+ "jose": "^6.2.3",
507
+ "jsonwebtoken": "^9.0.3",
508
+ "knip": "^6.17.1",
509
+ "mongodb": "^7.3.0",
510
+ "mongodb-memory-server": "^11.2.0",
511
+ "mongoose": "^9.7.1",
512
+ "publint": "^0.3.21",
513
+ "tsdown": "^0.22.14",
514
+ "typebox": "^1.3.6",
515
+ "typescript": "^7.0.2",
516
+ "vitest": "^4.1.10",
517
+ "ws": "^8.21.0",
518
+ "zod": "^4.4.3"
519
+ },
520
+ "config": {
521
+ "mongodbMemoryServer": {
522
+ "disablePostinstall": "1"
523
+ }
524
+ },
525
+ "keywords": [
526
+ "fastify",
527
+ "mongodb",
528
+ "mongoose",
529
+ "crud",
530
+ "rest",
531
+ "api",
532
+ "framework",
533
+ "resource",
534
+ "multi-tenant",
535
+ "typescript",
536
+ "tree-shakable",
537
+ "serverless",
538
+ "websocket",
539
+ "jobs",
540
+ "workflow"
541
+ ],
542
+ "author": "Classytic",
543
+ "license": "MIT",
544
+ "homepage": "https://classytic.com",
545
+ "repository": {
546
+ "type": "git",
547
+ "url": "git+https://github.com/classytic/arc.git"
548
+ }
541
549
  }