@classytic/arc 2.38.0 → 2.41.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 (196) hide show
  1. package/dist/{BaseController-CYaDvmOB.mjs → BaseController-DYJRZ0EJ.mjs} +114 -24
  2. package/dist/{EventTransport-Cx60_s-6.d.mts → EventTransport-CbUKDzZZ.d.mts} +33 -0
  3. package/dist/{EventTransport-Gq7JWbWw.mjs → EventTransport-n7qO5Cz3.mjs} +22 -2
  4. package/dist/{HookSystem-C0ikzqQf.mjs → HookSystem-CxvZBo77.mjs} +2 -2
  5. package/dist/{ResourceRegistry-DPcX--zk.mjs → ResourceRegistry-Cu7uTJp9.mjs} +2 -2
  6. package/dist/{actionPermissions-jlFZ1it4.mjs → actionPermissions-DPwPWPOV.mjs} +7 -6
  7. package/dist/audit/index.d.mts +2 -2
  8. package/dist/audit/index.mjs +10 -3
  9. package/dist/auth/audit.mjs +1 -1
  10. package/dist/auth/index.d.mts +2 -2
  11. package/dist/auth/index.mjs +12 -6
  12. package/dist/auth/redis-session.mjs +1 -1
  13. package/dist/{authorizationDecision-BP8GHtjc.mjs → authorizationDecision-2YY_Kaj1.mjs} +2 -2
  14. package/dist/{base-C-NL2fTi.d.mts → base-CxrV1LmG.d.mts} +10 -0
  15. package/dist/{buildHandler-DjXOqIvX.mjs → buildHandler-CUhjGHGZ.mjs} +4 -4
  16. package/dist/cache/index.d.mts +4 -2
  17. package/dist/cache/index.mjs +4 -4
  18. package/dist/{caching-a3ZEcJJs.mjs → caching-DsWDjIxx.mjs} +2 -2
  19. package/dist/cleanup/index.d.mts +2 -2
  20. package/dist/cleanup/index.mjs +21 -5
  21. package/dist/cli/commands/describe.d.mts +1 -1
  22. package/dist/cli/commands/describe.mjs +3 -3
  23. package/dist/cli/commands/docs.mjs +3 -3
  24. package/dist/cli/commands/doctor.mjs +1 -1
  25. package/dist/cli/commands/generate.mjs +2 -2
  26. package/dist/cli/commands/init.mjs +2 -2
  27. package/dist/cli/commands/introspect.mjs +2 -2
  28. package/dist/cli/index.mjs +3 -3
  29. package/dist/{constants-BONghE1Y.mjs → constants-BxLgNFF7.mjs} +1 -1
  30. package/dist/context/index.d.mts +34 -6
  31. package/dist/context/index.mjs +42 -24
  32. package/dist/core/index.d.mts +2 -2
  33. package/dist/core/index.mjs +7 -7
  34. package/dist/{core-8She7FgF.mjs → core-iNGqYerO.mjs} +3 -3
  35. package/dist/{createActionRouter-Bqi6Bhhx.mjs → createActionRouter-BBlbPs3k.mjs} +7 -7
  36. package/dist/{createAggregationRouter-BsYO7ktd.mjs → createAggregationRouter-Dv5SuK2x.mjs} +7 -7
  37. package/dist/createMcpServer-CbDWkZ1T.d.mts +48 -0
  38. package/dist/{defineAggregation-0KBvqEEC.mjs → defineAggregation-UyeurGkp.mjs} +1 -1
  39. package/dist/{defineResource-BMdyRelW.mjs → defineResource-DzGT-2LP.mjs} +20 -22
  40. package/dist/discovery/index.mjs +1 -1
  41. package/dist/docs/index.d.mts +1 -1
  42. package/dist/docs/index.mjs +3 -3
  43. package/dist/{elevation-C6woysGC.mjs → elevation-BF-vhGxY.mjs} +4 -4
  44. package/dist/encryption/index.mjs +3 -3
  45. package/dist/{errorHandler-DI5AN2b5.d.mts → errorHandler--4rSMMvq.d.mts} +7 -1
  46. package/dist/{errorHandler-BdmIWPba.mjs → errorHandler-CIMkCOWm.mjs} +3 -3
  47. package/dist/{errors-2ExmOgIJ.mjs → errors-C_YhELhe.mjs} +1 -1
  48. package/dist/{eventPlugin-DFvHa4Nf.d.mts → eventPlugin-B52abJ8W.d.mts} +1 -1
  49. package/dist/{eventPlugin-DJwpGMzx.mjs → eventPlugin-CmXaPWLv.mjs} +5 -5
  50. package/dist/events/index.d.mts +4 -4
  51. package/dist/events/index.mjs +5 -5
  52. package/dist/events/transports/redis-stream-entry.d.mts +1 -1
  53. package/dist/events/transports/redis-stream-entry.mjs +34 -24
  54. package/dist/events/transports/redis.d.mts +1 -1
  55. package/dist/events/transports/redis.mjs +11 -8
  56. package/dist/factory/index.d.mts +5 -5
  57. package/dist/factory/index.mjs +5 -5
  58. package/dist/{fastify-augmentation-jYA2oHyL.d.mts → fastify-augmentation-Cq2nHVaW.d.mts} +3 -3
  59. package/dist/{fields-Cha2QCKH.mjs → fields-BTyPLHK0.mjs} +1 -1
  60. package/dist/{generate-BUP4Oydg.mjs → generate-D_YmiCNf.mjs} +4 -3
  61. package/dist/{headers-DeXNifVj.mjs → headers-CNECDE6q.mjs} +2 -2
  62. package/dist/{health-Bh0N_FLk.mjs → health-CxQzbJmr.mjs} +10 -2
  63. package/dist/hooks/index.d.mts +1 -1
  64. package/dist/hooks/index.mjs +2 -2
  65. package/dist/idempotency/index.d.mts +1 -1
  66. package/dist/idempotency/index.mjs +4 -4
  67. package/dist/idempotency/redis.d.mts +1 -1
  68. package/dist/idempotency/redis.mjs +1 -1
  69. package/dist/{index-BtYoMip1.d.mts → index-BHdZD8zK.d.mts} +10 -2
  70. package/dist/{index-D2uIUSQk.d.mts → index-CFfLKMH4.d.mts} +2 -2
  71. package/dist/{index-eyg5WEcy.d.mts → index-CbJiYrfv.d.mts} +1 -1
  72. package/dist/{index-BRoDtjek.d.mts → index-D4u76eQW.d.mts} +3 -3
  73. package/dist/{index-B78WZom8.d.mts → index-DHbyPo5j.d.mts} +52 -12
  74. package/dist/index.d.mts +5 -5
  75. package/dist/index.mjs +11 -11
  76. package/dist/{init-Dg_Am2o_.mjs → init-Y2MlSN9n.mjs} +9 -9
  77. package/dist/integrations/event-gateway.d.mts +1 -1
  78. package/dist/integrations/event-gateway.mjs +2 -2
  79. package/dist/integrations/index.d.mts +2 -2
  80. package/dist/integrations/index.mjs +1 -1
  81. package/dist/integrations/jobs/index.d.mts +1 -1
  82. package/dist/integrations/jobs/index.mjs +2 -2
  83. package/dist/integrations/mcp/index.d.mts +4 -47
  84. package/dist/integrations/mcp/index.mjs +2 -2
  85. package/dist/integrations/mcp/testing.d.mts +22 -2
  86. package/dist/integrations/mcp/testing.mjs +55 -33
  87. package/dist/integrations/streamline.mjs +3 -3
  88. package/dist/integrations/webhooks.d.mts +2 -2
  89. package/dist/integrations/webhooks.mjs +3 -3
  90. package/dist/integrations/websocket-pushref-redis.d.mts +1 -1
  91. package/dist/integrations/websocket-pushref-redis.mjs +1 -1
  92. package/dist/integrations/websocket-redis.mjs +1 -1
  93. package/dist/integrations/websocket.mjs +24 -6
  94. package/dist/{interface-DYPVscCU.mjs → interface-BIpgzbZl.mjs} +1 -1
  95. package/dist/{jsonBody-DVui0uJl.mjs → jsonBody-Cq9KYl2Z.mjs} +2 -2
  96. package/dist/{keys-BSuxGS-B.mjs → keys-Cmv4cBRa.mjs} +1 -1
  97. package/dist/{loadResources-CNd1DWnK.mjs → loadResources-CblF7xt2.mjs} +2 -2
  98. package/dist/{loadResourcesFromEntry-DNj8cpiY.mjs → loadResourcesFromEntry-99fIMC3p.mjs} +2 -2
  99. package/dist/logger/index.mjs +1 -1
  100. package/dist/{mcpPlugin-KWsezMx7.mjs → mcpPlugin-xF3Gw-HW.mjs} +75 -31
  101. package/dist/{memory-BiPVaCPg.mjs → memory-CpDZ9NPw.mjs} +2 -2
  102. package/dist/{metrics-CsWaIVTa.mjs → metrics-BaKnq8ag.mjs} +2 -2
  103. package/dist/middleware/index.d.mts +1 -1
  104. package/dist/middleware/index.mjs +3 -3
  105. package/dist/migrations/index.mjs +2 -2
  106. package/dist/{module-BQXHxMEk.mjs → module-BkQEesNQ.mjs} +1 -1
  107. package/dist/{multipartBody-u6VrS_iH.mjs → multipartBody-C92aJ8am.mjs} +1 -1
  108. package/dist/{openapi-Dxc8RLy_.mjs → openapi-C3LFRzPq.mjs} +6 -6
  109. package/dist/outbox-admin/index.d.mts +2 -2
  110. package/dist/outbox-admin/index.mjs +4 -4
  111. package/dist/{outbox-module-CQXu_O6o.d.mts → outbox-module-BHdUnuuK.d.mts} +15 -2
  112. package/dist/{outbox-module-DyIqA5vo.mjs → outbox-module-dsCyLxXH.mjs} +43 -21
  113. package/dist/permissions/index.d.mts +2 -2
  114. package/dist/permissions/index.mjs +5 -5
  115. package/dist/{permissions-H7Zcb82Z.mjs → permissions-DiHXy8Ck.mjs} +12 -6
  116. package/dist/{pipe-SunhEaZ6.mjs → pipe-CBVmUJ-j.mjs} +2 -2
  117. package/dist/pipeline/index.d.mts +1 -1
  118. package/dist/pipeline/index.mjs +2 -2
  119. package/dist/plugins/index.d.mts +7 -37
  120. package/dist/plugins/index.mjs +34 -22
  121. package/dist/plugins/response-cache.mjs +9 -2
  122. package/dist/plugins/tracing-entry.mjs +2 -2
  123. package/dist/{pluralize-Da7IT_qJ.mjs → pluralize-2_U6QZQg.mjs} +1 -1
  124. package/dist/{preloadResources-DlhH81py.mjs → preloadResources-Bbp4QJ8V.mjs} +82 -26
  125. package/dist/{preloadResources-BbBkNkqK.d.mts → preloadResources-CjS2OfpU.d.mts} +14 -9
  126. package/dist/presets/filesUpload.d.mts +2 -2
  127. package/dist/presets/filesUpload.mjs +5 -5
  128. package/dist/presets/index.d.mts +2 -2
  129. package/dist/presets/index.mjs +2 -2
  130. package/dist/presets/multiTenant.d.mts +38 -1
  131. package/dist/presets/multiTenant.mjs +24 -6
  132. package/dist/presets/search.d.mts +2 -2
  133. package/dist/presets/search.mjs +2 -2
  134. package/dist/{presets-CNyfaxGL.mjs → presets-BdlugYTc.mjs} +4 -4
  135. package/dist/{projection-DSfEoooA.mjs → projection-Uvgp-EEj.mjs} +2 -2
  136. package/dist/{queryCachePlugin-oTsmVyEQ.mjs → queryCachePlugin-B5F09bYr.mjs} +11 -5
  137. package/dist/rateLimitKey-CK-EU2L8.mjs +41 -0
  138. package/dist/{realtime-CPmjjgqd.mjs → realtime-FnnD0n3Z.mjs} +9 -9
  139. package/dist/{redis-CduhKsJi.d.mts → redis-Bzi1y3F9.d.mts} +10 -2
  140. package/dist/{redis-stream-eh0eOtjh.d.mts → redis-stream-BPKscsTB.d.mts} +12 -7
  141. package/dist/{registerRoute-XvcI_3sh.mjs → registerRoute-DRsSHPSM.mjs} +6 -6
  142. package/dist/registry/index.d.mts +2 -2
  143. package/dist/registry/index.mjs +3 -3
  144. package/dist/{registry-UFEJQN8R.mjs → registry-D3y8VEJ1.mjs} +2 -2
  145. package/dist/{renewingLease-DuRGVOMe.mjs → renewingLease-B3VYh5aU.mjs} +1 -1
  146. package/dist/{replyHelpers-BHebarf0.mjs → replyHelpers-DPHsdw-5.mjs} +2 -2
  147. package/dist/{requestContext-DpmntRZy.mjs → requestContext-cSVKnYPk.mjs} +1 -1
  148. package/dist/{rolldown-runtime-Add2L50I.mjs → rolldown-runtime-DjDuyglE.mjs} +1 -1
  149. package/dist/{runtimeCapabilities-D793Pxci.mjs → runtimeCapabilities-DSA_dH1_.mjs} +31 -5
  150. package/dist/{schedules-DthM8Qag.mjs → schedules-BktJb3Y3.mjs} +8 -4
  151. package/dist/{schemaConverter-Db-MMsH6.mjs → schemaConverter-BLCSmNbr.mjs} +1 -1
  152. package/dist/{schemaIR-CIXShch7.mjs → schemaIR-K16Bb5BX.mjs} +2 -2
  153. package/dist/schemas/index.mjs +1 -1
  154. package/dist/scim/index.mjs +2 -2
  155. package/dist/scope/index.mjs +5 -5
  156. package/dist/{scope-D03sk17n.mjs → scope-jSxuBTFM.mjs} +4 -4
  157. package/dist/{simpleEqualityMatcher-B7qVjQBv.mjs → simpleEqualityMatcher-BiOnyflP.mjs} +1 -1
  158. package/dist/{sse-D4MYqkic.mjs → sse-CH7Slxc1.mjs} +5 -5
  159. package/dist/{sseStream-BuMNPR6r.mjs → sseStream-CN-Lh1Tu.mjs} +2 -2
  160. package/dist/{store-helpers-CIF4RG8s.mjs → store-helpers-9DX9-1j_.mjs} +1 -1
  161. package/dist/{streaming-DkpW1HwJ.mjs → streaming-dvppnxsr.mjs} +1 -1
  162. package/dist/{subscribe-helpers-CBZOi6pk.mjs → subscribe-helpers-AVYPgqTl.mjs} +2 -2
  163. package/dist/sync/changelog.mjs +1 -1
  164. package/dist/testing/cleanupStoreContract.mjs +1 -1
  165. package/dist/testing/index.d.mts +5 -5
  166. package/dist/testing/index.mjs +10 -10
  167. package/dist/testing/outboxStoreContract.mjs +14 -3
  168. package/dist/testing/storageContract.mjs +1 -1
  169. package/dist/{transactionContext-DMmvcfdo.mjs → transactionContext-DCWMI6hV.mjs} +1 -1
  170. package/dist/{typeGuards-DHTnEs5X.mjs → typeGuards-D7tHFdH6.mjs} +1 -1
  171. package/dist/types/index.d.mts +2 -2
  172. package/dist/types/index.mjs +1 -1
  173. package/dist/types/storage.mjs +1 -1
  174. package/dist/{types-BqLyyH0o.mjs → types-CDy3-zw1.mjs} +4 -4
  175. package/dist/{types-LQFwC37d.d.mts → types-CWQn9-IC.d.mts} +46 -1
  176. package/dist/{types-BRU-Kd3t.d.mts → types-DfVDvkdP.d.mts} +20 -2
  177. package/dist/usage/index.d.mts +58 -2
  178. package/dist/usage/index.mjs +0 -0
  179. package/dist/{userHelpers-CXySQFRg.mjs → userHelpers-DDMOZ_Pm.mjs} +1 -1
  180. package/dist/utils/index.d.mts +110 -8
  181. package/dist/utils/index.mjs +12 -12
  182. package/dist/{utils-BbGG8XNT.mjs → utils-B-zj_b__.mjs} +61 -12
  183. package/dist/{validate-CidSeUrx.mjs → validate-R0G_JrnK.mjs} +2 -2
  184. package/dist/{versioning-B843jOYX.d.mts → versioning-D6JIK8Tk.d.mts} +58 -2
  185. package/dist/{versioning-C2r0eOZ4.mjs → versioning-DuVWcu-F.mjs} +3 -3
  186. package/dist/workScope-BhsWde4k.mjs +41 -0
  187. package/package.json +574 -565
  188. package/skills/arc/SKILL.md +8 -4
  189. package/skills/arc/references/mcp.md +20 -0
  190. package/skills/arc/references/production.md +94 -9
  191. package/skills/arc/references/testing.md +0 -12
  192. package/skills/arc-code-review/references/anti-patterns.md +1 -1
  193. package/skills/arc-code-review/references/migration-recipes.md +0 -60
  194. package/skills/arc-code-review/references/mongokit-migration.md +0 -27
  195. package/skills/arc-module-publishing/references/package-manifest.md +3 -1
  196. package/dist/rateLimitKey-CewdR-m6.mjs +0 -15
package/package.json CHANGED
@@ -1,565 +1,574 @@
1
- {
2
- "name": "@classytic/arc",
3
- "version": "2.38.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.26.4",
357
- "@classytic/repo-core": ">=0.26.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": ">=9.0.0",
363
- "@fastify/rate-limit": ">=10.0.0",
364
- "@fastify/sensible": ">=6.0.0",
365
- "@fastify/static": ">=8.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/sdk": ">=1.28.0",
370
- "@opentelemetry/api": ">=1.9.0",
371
- "@opentelemetry/auto-instrumentations-node": ">=0.40.0",
372
- "@opentelemetry/exporter-trace-otlp-http": ">=0.50.0",
373
- "@opentelemetry/instrumentation-http": ">=0.50.0",
374
- "@opentelemetry/instrumentation-mongodb": ">=0.40.0",
375
- "@opentelemetry/sdk-node": ">=0.50.0",
376
- "better-auth": ">=1.7.0",
377
- "bullmq": ">=5.0.0",
378
- "fastify": ">=5.12.0",
379
- "fastify-raw-body": ">=5.0.0",
380
- "h3-js": ">=4.0.0",
381
- "ioredis": ">=5.0.0",
382
- "jose": ">=5.0.0",
383
- "pino-pretty": ">=13.0.0",
384
- "typebox": ">=1.0.0",
385
- "vitest": ">=3.0.0",
386
- "zod": ">=4.4.0"
387
- },
388
- "peerDependenciesMeta": {
389
- "better-auth": {
390
- "optional": true
391
- },
392
- "@fastify/cors": {
393
- "optional": true
394
- },
395
- "@fastify/helmet": {
396
- "optional": true
397
- },
398
- "@fastify/jwt": {
399
- "optional": true
400
- },
401
- "@fastify/rate-limit": {
402
- "optional": true
403
- },
404
- "@fastify/sensible": {
405
- "optional": true
406
- },
407
- "@fastify/under-pressure": {
408
- "optional": true
409
- },
410
- "@fastify/multipart": {
411
- "optional": true
412
- },
413
- "@fastify/websocket": {
414
- "optional": true
415
- },
416
- "fastify-raw-body": {
417
- "optional": true
418
- },
419
- "h3-js": {
420
- "optional": true
421
- },
422
- "pino-pretty": {
423
- "optional": true
424
- },
425
- "@opentelemetry/api": {
426
- "optional": true
427
- },
428
- "@opentelemetry/sdk-node": {
429
- "optional": true
430
- },
431
- "@opentelemetry/exporter-trace-otlp-http": {
432
- "optional": true
433
- },
434
- "@opentelemetry/instrumentation-http": {
435
- "optional": true
436
- },
437
- "@opentelemetry/instrumentation-mongodb": {
438
- "optional": true
439
- },
440
- "@opentelemetry/auto-instrumentations-node": {
441
- "optional": true
442
- },
443
- "ioredis": {
444
- "optional": true
445
- },
446
- "jose": {
447
- "optional": true
448
- },
449
- "typebox": {
450
- "optional": true
451
- },
452
- "@fastify/type-provider-typebox": {
453
- "optional": true
454
- },
455
- "bullmq": {
456
- "optional": true
457
- },
458
- "@classytic/streamline": {
459
- "optional": true
460
- },
461
- "zod": {
462
- "optional": true
463
- },
464
- "@modelcontextprotocol/sdk": {
465
- "optional": true
466
- },
467
- "@fastify/static": {
468
- "optional": true
469
- },
470
- "vitest": {
471
- "optional": true
472
- }
473
- },
474
- "dependencies": {
475
- "fastify-plugin": "^6.0.0",
476
- "qs": "^6.15.2",
477
- "secure-json-parse": "^4.1.0"
478
- },
479
- "devDependencies": {
480
- "@arethetypeswrong/cli": "^0.18.5",
481
- "@better-auth/drizzle-adapter": "^1.6.19",
482
- "@better-auth/mongo-adapter": "^1.6.19",
483
- "@biomejs/biome": "^2.5.7",
484
- "@classytic/dev-tools": "^0.2.0",
485
- "@classytic/gitkit": ">=0.1.0",
486
- "@classytic/mongokit": "^3.33.0",
487
- "@classytic/pgkit": "^0.1.0",
488
- "@classytic/primitives": "^0.26.4",
489
- "@classytic/repo-core": "^0.26.0",
490
- "@classytic/sqlitekit": "^0.9.0",
491
- "@classytic/streamline": "^2.8.2",
492
- "@electric-sql/pglite": "^0.5.4",
493
- "@fastify/cors": "^11.2.0",
494
- "@fastify/helmet": "^13.0.2",
495
- "@fastify/jwt": "^10.1.0",
496
- "@fastify/multipart": "^10.0.0",
497
- "@fastify/rate-limit": "^11.0.0",
498
- "@fastify/sensible": "^6.0.4",
499
- "@fastify/static": "^10.1.2",
500
- "@fastify/type-provider-typebox": "^6.1.0",
501
- "@fastify/under-pressure": "^9.0.3",
502
- "@fastify/websocket": "^11.2.0",
503
- "@modelcontextprotocol/sdk": "^1.29.0",
504
- "@opentelemetry/api": "^1.9.1",
505
- "@types/node": "^22.19.21",
506
- "@types/qs": "^6.15.1",
507
- "@vitest/coverage-v8": "^4.1.9",
508
- "ajv": "^8.20.0",
509
- "better-auth": "^1.7.2",
510
- "better-sqlite3": "^13.0.3",
511
- "bullmq": "^6.1.2",
512
- "dotenv": "^17.4.2",
513
- "drizzle-orm": "^0.45.2",
514
- "fast-check": "^4.8.0",
515
- "fastify": "^5.12.1",
516
- "fastify-raw-body": "^6.0.1",
517
- "h3-js": "^4.4.0",
518
- "ioredis": "^6.0.0",
519
- "jose": "^6.2.3",
520
- "jsonwebtoken": "^9.0.3",
521
- "knip": "^6.31.0",
522
- "mongodb": "^7.3.0",
523
- "mongodb-memory-server": "^11.2.0",
524
- "mongoose": "^9.9.1",
525
- "publint": "^0.3.21",
526
- "tsdown": "^0.22.14",
527
- "typebox": "^1.3.6",
528
- "typescript": "^7.0.2",
529
- "vitest": "^4.1.10",
530
- "ws": "^8.21.0",
531
- "zod": "^4.4.3"
532
- },
533
- "config": {
534
- "mongodbMemoryServer": {
535
- "disablePostinstall": "1"
536
- }
537
- },
538
- "keywords": [
539
- "fastify",
540
- "mongodb",
541
- "mongoose",
542
- "crud",
543
- "rest",
544
- "api",
545
- "framework",
546
- "resource",
547
- "multi-tenant",
548
- "typescript",
549
- "tree-shakable",
550
- "serverless",
551
- "websocket",
552
- "jobs",
553
- "workflow"
554
- ],
555
- "author": "Classytic",
556
- "license": "MIT",
557
- "homepage": "https://classytic.com",
558
- "repository": {
559
- "type": "git",
560
- "url": "git+https://github.com/classytic/arc.git"
561
- },
562
- "overrides": {
563
- "better-sqlite3": "$better-sqlite3"
564
- }
565
- }
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
+ }