@classytic/arc 1.1.0 → 2.1.2

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 (322) hide show
  1. package/README.md +247 -794
  2. package/bin/arc.js +91 -52
  3. package/dist/EventTransport-BD2U0BTc.d.mts +100 -0
  4. package/dist/EventTransport-BD2U0BTc.d.mts.map +1 -0
  5. package/dist/HookSystem-BsGV-j2l.mjs +405 -0
  6. package/dist/HookSystem-BsGV-j2l.mjs.map +1 -0
  7. package/dist/ResourceRegistry-DsN4KJjV.mjs +250 -0
  8. package/dist/ResourceRegistry-DsN4KJjV.mjs.map +1 -0
  9. package/dist/adapters/index.d.mts +5 -0
  10. package/dist/adapters/index.mjs +3 -0
  11. package/dist/audit/index.d.mts +82 -0
  12. package/dist/audit/index.d.mts.map +1 -0
  13. package/dist/audit/index.mjs +276 -0
  14. package/dist/audit/index.mjs.map +1 -0
  15. package/dist/audit/mongodb.d.mts +5 -0
  16. package/dist/audit/mongodb.mjs +3 -0
  17. package/dist/audited-C3T5DTUx.mjs +141 -0
  18. package/dist/audited-C3T5DTUx.mjs.map +1 -0
  19. package/dist/auth/index.d.mts +189 -0
  20. package/dist/auth/index.d.mts.map +1 -0
  21. package/dist/auth/index.mjs +1102 -0
  22. package/dist/auth/index.mjs.map +1 -0
  23. package/dist/auth/redis-session.d.mts +44 -0
  24. package/dist/auth/redis-session.d.mts.map +1 -0
  25. package/dist/auth/redis-session.mjs +76 -0
  26. package/dist/auth/redis-session.mjs.map +1 -0
  27. package/dist/betterAuthOpenApi-BrHKeSAx.mjs +250 -0
  28. package/dist/betterAuthOpenApi-BrHKeSAx.mjs.map +1 -0
  29. package/dist/cache/index.d.mts +146 -0
  30. package/dist/cache/index.d.mts.map +1 -0
  31. package/dist/cache/index.mjs +92 -0
  32. package/dist/cache/index.mjs.map +1 -0
  33. package/dist/caching-Bl28lYsR.mjs +94 -0
  34. package/dist/caching-Bl28lYsR.mjs.map +1 -0
  35. package/dist/chunk-C7Uep-_p.mjs +20 -0
  36. package/dist/circuitBreaker-DeY4FCjs.mjs +1097 -0
  37. package/dist/circuitBreaker-DeY4FCjs.mjs.map +1 -0
  38. package/dist/cli/commands/describe.d.mts +19 -0
  39. package/dist/cli/commands/describe.d.mts.map +1 -0
  40. package/dist/cli/commands/describe.mjs +239 -0
  41. package/dist/cli/commands/describe.mjs.map +1 -0
  42. package/dist/cli/commands/docs.d.mts +14 -0
  43. package/dist/cli/commands/docs.d.mts.map +1 -0
  44. package/dist/cli/commands/docs.mjs +53 -0
  45. package/dist/cli/commands/docs.mjs.map +1 -0
  46. package/dist/cli/commands/{generate.d.ts → generate.d.mts} +3 -1
  47. package/dist/cli/commands/generate.d.mts.map +1 -0
  48. package/dist/cli/commands/generate.mjs +358 -0
  49. package/dist/cli/commands/generate.mjs.map +1 -0
  50. package/dist/cli/commands/{init.d.ts → init.d.mts} +12 -8
  51. package/dist/cli/commands/init.d.mts.map +1 -0
  52. package/dist/cli/commands/{init.js → init.mjs} +807 -616
  53. package/dist/cli/commands/init.mjs.map +1 -0
  54. package/dist/cli/commands/introspect.d.mts +11 -0
  55. package/dist/cli/commands/introspect.d.mts.map +1 -0
  56. package/dist/cli/commands/introspect.mjs +76 -0
  57. package/dist/cli/commands/introspect.mjs.map +1 -0
  58. package/dist/cli/index.d.mts +17 -0
  59. package/dist/cli/index.d.mts.map +1 -0
  60. package/dist/cli/index.mjs +157 -0
  61. package/dist/cli/index.mjs.map +1 -0
  62. package/dist/constants-DdXFXQtN.mjs +85 -0
  63. package/dist/constants-DdXFXQtN.mjs.map +1 -0
  64. package/dist/core/index.d.mts +5 -0
  65. package/dist/core/index.mjs +4 -0
  66. package/dist/createApp-CUgNqegw.mjs +560 -0
  67. package/dist/createApp-CUgNqegw.mjs.map +1 -0
  68. package/dist/defineResource-k0_BDn8v.mjs +2197 -0
  69. package/dist/defineResource-k0_BDn8v.mjs.map +1 -0
  70. package/dist/discovery/index.d.mts +47 -0
  71. package/dist/discovery/index.d.mts.map +1 -0
  72. package/dist/discovery/index.mjs +110 -0
  73. package/dist/discovery/index.mjs.map +1 -0
  74. package/dist/docs/index.d.mts +163 -0
  75. package/dist/docs/index.d.mts.map +1 -0
  76. package/dist/docs/index.mjs +73 -0
  77. package/dist/docs/index.mjs.map +1 -0
  78. package/dist/elevation-BRy3yFWT.mjs +113 -0
  79. package/dist/elevation-BRy3yFWT.mjs.map +1 -0
  80. package/dist/elevation-B_2dRLVP.d.mts +88 -0
  81. package/dist/elevation-B_2dRLVP.d.mts.map +1 -0
  82. package/dist/errorHandler-BbcgBmIH.d.mts +73 -0
  83. package/dist/errorHandler-BbcgBmIH.d.mts.map +1 -0
  84. package/dist/errorHandler-C1okiriz.mjs +109 -0
  85. package/dist/errorHandler-C1okiriz.mjs.map +1 -0
  86. package/dist/errors-B9bZok84.mjs +212 -0
  87. package/dist/errors-B9bZok84.mjs.map +1 -0
  88. package/dist/errors-ChKiFz62.d.mts +125 -0
  89. package/dist/errors-ChKiFz62.d.mts.map +1 -0
  90. package/dist/eventPlugin-CTrLH3mt.d.mts +125 -0
  91. package/dist/eventPlugin-CTrLH3mt.d.mts.map +1 -0
  92. package/dist/eventPlugin-DGR_B2on.mjs +230 -0
  93. package/dist/eventPlugin-DGR_B2on.mjs.map +1 -0
  94. package/dist/events/index.d.mts +54 -0
  95. package/dist/events/index.d.mts.map +1 -0
  96. package/dist/events/index.mjs +52 -0
  97. package/dist/events/index.mjs.map +1 -0
  98. package/dist/events/transports/redis-stream-entry.d.mts +2 -0
  99. package/dist/events/transports/redis-stream-entry.mjs +178 -0
  100. package/dist/events/transports/redis-stream-entry.mjs.map +1 -0
  101. package/dist/events/transports/redis.d.mts +77 -0
  102. package/dist/events/transports/redis.d.mts.map +1 -0
  103. package/dist/events/transports/redis.mjs +125 -0
  104. package/dist/events/transports/redis.mjs.map +1 -0
  105. package/dist/externalPaths-DlINfKbP.d.mts +51 -0
  106. package/dist/externalPaths-DlINfKbP.d.mts.map +1 -0
  107. package/dist/factory/index.d.mts +64 -0
  108. package/dist/factory/index.d.mts.map +1 -0
  109. package/dist/factory/index.mjs +3 -0
  110. package/dist/fastifyAdapter-BkrGrlFi.d.mts +217 -0
  111. package/dist/fastifyAdapter-BkrGrlFi.d.mts.map +1 -0
  112. package/dist/fields-DyaDVX4J.d.mts +110 -0
  113. package/dist/fields-DyaDVX4J.d.mts.map +1 -0
  114. package/dist/fields-iagOozy0.mjs +115 -0
  115. package/dist/fields-iagOozy0.mjs.map +1 -0
  116. package/dist/hooks/index.d.mts +4 -0
  117. package/dist/hooks/index.mjs +3 -0
  118. package/dist/idempotency/index.d.mts +97 -0
  119. package/dist/idempotency/index.d.mts.map +1 -0
  120. package/dist/idempotency/index.mjs +320 -0
  121. package/dist/idempotency/index.mjs.map +1 -0
  122. package/dist/idempotency/mongodb.d.mts +2 -0
  123. package/dist/idempotency/mongodb.mjs +115 -0
  124. package/dist/idempotency/mongodb.mjs.map +1 -0
  125. package/dist/idempotency/redis.d.mts +2 -0
  126. package/dist/idempotency/redis.mjs +104 -0
  127. package/dist/idempotency/redis.mjs.map +1 -0
  128. package/dist/index.d.mts +261 -0
  129. package/dist/index.d.mts.map +1 -0
  130. package/dist/index.mjs +105 -0
  131. package/dist/index.mjs.map +1 -0
  132. package/dist/integrations/event-gateway.d.mts +47 -0
  133. package/dist/integrations/event-gateway.d.mts.map +1 -0
  134. package/dist/integrations/event-gateway.mjs +44 -0
  135. package/dist/integrations/event-gateway.mjs.map +1 -0
  136. package/dist/integrations/index.d.mts +5 -0
  137. package/dist/integrations/index.mjs +1 -0
  138. package/dist/integrations/jobs.d.mts +104 -0
  139. package/dist/integrations/jobs.d.mts.map +1 -0
  140. package/dist/integrations/jobs.mjs +124 -0
  141. package/dist/integrations/jobs.mjs.map +1 -0
  142. package/dist/integrations/streamline.d.mts +61 -0
  143. package/dist/integrations/streamline.d.mts.map +1 -0
  144. package/dist/integrations/streamline.mjs +126 -0
  145. package/dist/integrations/streamline.mjs.map +1 -0
  146. package/dist/integrations/websocket.d.mts +83 -0
  147. package/dist/integrations/websocket.d.mts.map +1 -0
  148. package/dist/integrations/websocket.mjs +289 -0
  149. package/dist/integrations/websocket.mjs.map +1 -0
  150. package/dist/interface-B01JvPVc.d.mts +78 -0
  151. package/dist/interface-B01JvPVc.d.mts.map +1 -0
  152. package/dist/interface-CZe8IkMf.d.mts +55 -0
  153. package/dist/interface-CZe8IkMf.d.mts.map +1 -0
  154. package/dist/interface-Ch8HU9uM.d.mts +1098 -0
  155. package/dist/interface-Ch8HU9uM.d.mts.map +1 -0
  156. package/dist/introspectionPlugin-rFdO8ZUa.mjs +54 -0
  157. package/dist/introspectionPlugin-rFdO8ZUa.mjs.map +1 -0
  158. package/dist/keys-BqNejWup.mjs +43 -0
  159. package/dist/keys-BqNejWup.mjs.map +1 -0
  160. package/dist/logger-Df2O2WsW.mjs +79 -0
  161. package/dist/logger-Df2O2WsW.mjs.map +1 -0
  162. package/dist/memory-cQgelFOj.mjs +144 -0
  163. package/dist/memory-cQgelFOj.mjs.map +1 -0
  164. package/dist/migrations/index.d.mts +157 -0
  165. package/dist/migrations/index.d.mts.map +1 -0
  166. package/dist/migrations/index.mjs +261 -0
  167. package/dist/migrations/index.mjs.map +1 -0
  168. package/dist/mongodb-BfJVlUJH.mjs +94 -0
  169. package/dist/mongodb-BfJVlUJH.mjs.map +1 -0
  170. package/dist/mongodb-CGzRbfAK.d.mts +119 -0
  171. package/dist/mongodb-CGzRbfAK.d.mts.map +1 -0
  172. package/dist/mongodb-JN-9JA7K.d.mts +72 -0
  173. package/dist/mongodb-JN-9JA7K.d.mts.map +1 -0
  174. package/dist/openapi-G3Cw7XuM.mjs +524 -0
  175. package/dist/openapi-G3Cw7XuM.mjs.map +1 -0
  176. package/dist/org/index.d.mts +69 -0
  177. package/dist/org/index.d.mts.map +1 -0
  178. package/dist/org/index.mjs +514 -0
  179. package/dist/org/index.mjs.map +1 -0
  180. package/dist/org/types.d.mts +83 -0
  181. package/dist/org/types.d.mts.map +1 -0
  182. package/dist/org/types.mjs +1 -0
  183. package/dist/permissions/index.d.mts +279 -0
  184. package/dist/permissions/index.d.mts.map +1 -0
  185. package/dist/permissions/index.mjs +579 -0
  186. package/dist/permissions/index.mjs.map +1 -0
  187. package/dist/plugins/index.d.mts +173 -0
  188. package/dist/plugins/index.d.mts.map +1 -0
  189. package/dist/plugins/index.mjs +523 -0
  190. package/dist/plugins/index.mjs.map +1 -0
  191. package/dist/plugins/response-cache.d.mts +88 -0
  192. package/dist/plugins/response-cache.d.mts.map +1 -0
  193. package/dist/plugins/response-cache.mjs +284 -0
  194. package/dist/plugins/response-cache.mjs.map +1 -0
  195. package/dist/plugins/tracing-entry.d.mts +2 -0
  196. package/dist/plugins/tracing-entry.mjs +186 -0
  197. package/dist/plugins/tracing-entry.mjs.map +1 -0
  198. package/dist/pluralize-CEweyOEm.mjs +87 -0
  199. package/dist/pluralize-CEweyOEm.mjs.map +1 -0
  200. package/dist/policies/{index.d.ts → index.d.mts} +204 -169
  201. package/dist/policies/index.d.mts.map +1 -0
  202. package/dist/policies/index.mjs +322 -0
  203. package/dist/policies/index.mjs.map +1 -0
  204. package/dist/presets/{index.d.ts → index.d.mts} +63 -131
  205. package/dist/presets/index.d.mts.map +1 -0
  206. package/dist/presets/index.mjs +144 -0
  207. package/dist/presets/index.mjs.map +1 -0
  208. package/dist/presets/multiTenant.d.mts +25 -0
  209. package/dist/presets/multiTenant.d.mts.map +1 -0
  210. package/dist/presets/multiTenant.mjs +114 -0
  211. package/dist/presets/multiTenant.mjs.map +1 -0
  212. package/dist/presets-BITljm96.mjs +120 -0
  213. package/dist/presets-BITljm96.mjs.map +1 -0
  214. package/dist/presets-DzSMwlKj.d.mts +58 -0
  215. package/dist/presets-DzSMwlKj.d.mts.map +1 -0
  216. package/dist/prisma-DJbMt3yf.mjs +628 -0
  217. package/dist/prisma-DJbMt3yf.mjs.map +1 -0
  218. package/dist/prisma-Dg9GoVdj.d.mts +275 -0
  219. package/dist/prisma-Dg9GoVdj.d.mts.map +1 -0
  220. package/dist/queryCachePlugin-7THaI5mt.d.mts +72 -0
  221. package/dist/queryCachePlugin-7THaI5mt.d.mts.map +1 -0
  222. package/dist/queryCachePlugin-DMBnp2Q0.mjs +139 -0
  223. package/dist/queryCachePlugin-DMBnp2Q0.mjs.map +1 -0
  224. package/dist/redis-D-JAeLtm.d.mts +50 -0
  225. package/dist/redis-D-JAeLtm.d.mts.map +1 -0
  226. package/dist/redis-stream-Bdh_vUU8.d.mts +104 -0
  227. package/dist/redis-stream-Bdh_vUU8.d.mts.map +1 -0
  228. package/dist/registry/index.d.mts +12 -0
  229. package/dist/registry/index.d.mts.map +1 -0
  230. package/dist/registry/index.mjs +4 -0
  231. package/dist/requestContext-QQD6ROJc.mjs +56 -0
  232. package/dist/requestContext-QQD6ROJc.mjs.map +1 -0
  233. package/dist/schemaConverter-BwrmWroW.mjs +99 -0
  234. package/dist/schemaConverter-BwrmWroW.mjs.map +1 -0
  235. package/dist/schemas/index.d.mts +64 -0
  236. package/dist/schemas/index.d.mts.map +1 -0
  237. package/dist/schemas/index.mjs +83 -0
  238. package/dist/schemas/index.mjs.map +1 -0
  239. package/dist/scope/index.d.mts +22 -0
  240. package/dist/scope/index.d.mts.map +1 -0
  241. package/dist/scope/index.mjs +66 -0
  242. package/dist/scope/index.mjs.map +1 -0
  243. package/dist/sessionManager-jPKLbHE0.d.mts +187 -0
  244. package/dist/sessionManager-jPKLbHE0.d.mts.map +1 -0
  245. package/dist/sse-B3c3_yZp.mjs +124 -0
  246. package/dist/sse-B3c3_yZp.mjs.map +1 -0
  247. package/dist/testing/index.d.mts +908 -0
  248. package/dist/testing/index.d.mts.map +1 -0
  249. package/dist/testing/index.mjs +1977 -0
  250. package/dist/testing/index.mjs.map +1 -0
  251. package/dist/tracing-Cc7vVQPp.d.mts +71 -0
  252. package/dist/tracing-Cc7vVQPp.d.mts.map +1 -0
  253. package/dist/typeGuards-DhMNLuvU.mjs +10 -0
  254. package/dist/typeGuards-DhMNLuvU.mjs.map +1 -0
  255. package/dist/types/index.d.mts +947 -0
  256. package/dist/types/index.d.mts.map +1 -0
  257. package/dist/types/index.mjs +15 -0
  258. package/dist/types/index.mjs.map +1 -0
  259. package/dist/types-Beqn1Un7.mjs +39 -0
  260. package/dist/types-Beqn1Un7.mjs.map +1 -0
  261. package/dist/types-CIgB7UUl.d.mts +446 -0
  262. package/dist/types-CIgB7UUl.d.mts.map +1 -0
  263. package/dist/types-aYB4V7uN.d.mts +87 -0
  264. package/dist/types-aYB4V7uN.d.mts.map +1 -0
  265. package/dist/utils/index.d.mts +748 -0
  266. package/dist/utils/index.d.mts.map +1 -0
  267. package/dist/utils/index.mjs +6 -0
  268. package/package.json +194 -68
  269. package/dist/BaseController-DVAiHxEQ.d.ts +0 -233
  270. package/dist/adapters/index.d.ts +0 -237
  271. package/dist/adapters/index.js +0 -668
  272. package/dist/arcCorePlugin-CsShQdyP.d.ts +0 -273
  273. package/dist/audit/index.d.ts +0 -195
  274. package/dist/audit/index.js +0 -319
  275. package/dist/auth/index.d.ts +0 -47
  276. package/dist/auth/index.js +0 -174
  277. package/dist/cli/commands/docs.d.ts +0 -11
  278. package/dist/cli/commands/docs.js +0 -474
  279. package/dist/cli/commands/generate.js +0 -334
  280. package/dist/cli/commands/introspect.d.ts +0 -8
  281. package/dist/cli/commands/introspect.js +0 -338
  282. package/dist/cli/index.d.ts +0 -4
  283. package/dist/cli/index.js +0 -3269
  284. package/dist/core/index.d.ts +0 -220
  285. package/dist/core/index.js +0 -2786
  286. package/dist/createApp-Ce9wl8W9.d.ts +0 -77
  287. package/dist/docs/index.d.ts +0 -166
  288. package/dist/docs/index.js +0 -658
  289. package/dist/errors-8WIxGS_6.d.ts +0 -122
  290. package/dist/events/index.d.ts +0 -117
  291. package/dist/events/index.js +0 -89
  292. package/dist/factory/index.d.ts +0 -38
  293. package/dist/factory/index.js +0 -1652
  294. package/dist/hooks/index.d.ts +0 -4
  295. package/dist/hooks/index.js +0 -199
  296. package/dist/idempotency/index.d.ts +0 -323
  297. package/dist/idempotency/index.js +0 -500
  298. package/dist/index-B4t03KQ0.d.ts +0 -1366
  299. package/dist/index.d.ts +0 -135
  300. package/dist/index.js +0 -4756
  301. package/dist/migrations/index.d.ts +0 -185
  302. package/dist/migrations/index.js +0 -274
  303. package/dist/org/index.d.ts +0 -129
  304. package/dist/org/index.js +0 -220
  305. package/dist/permissions/index.d.ts +0 -144
  306. package/dist/permissions/index.js +0 -103
  307. package/dist/plugins/index.d.ts +0 -46
  308. package/dist/plugins/index.js +0 -1069
  309. package/dist/policies/index.js +0 -196
  310. package/dist/presets/index.js +0 -384
  311. package/dist/presets/multiTenant.d.ts +0 -39
  312. package/dist/presets/multiTenant.js +0 -112
  313. package/dist/registry/index.d.ts +0 -16
  314. package/dist/registry/index.js +0 -253
  315. package/dist/testing/index.d.ts +0 -618
  316. package/dist/testing/index.js +0 -48020
  317. package/dist/types/index.d.ts +0 -4
  318. package/dist/types/index.js +0 -8
  319. package/dist/types-B99TBmFV.d.ts +0 -76
  320. package/dist/types-BvckRbs2.d.ts +0 -143
  321. package/dist/utils/index.d.ts +0 -679
  322. package/dist/utils/index.js +0 -931
@@ -1,122 +0,0 @@
1
- /**
2
- * Error Classes
3
- *
4
- * Standard error types for the Arc framework.
5
- */
6
- interface ErrorDetails {
7
- code?: string;
8
- statusCode?: number;
9
- details?: Record<string, unknown>;
10
- cause?: Error;
11
- requestId?: string;
12
- }
13
- /**
14
- * Base Arc Error
15
- *
16
- * All Arc errors extend this class and produce a consistent error envelope:
17
- * {
18
- * success: false,
19
- * error: "Human-readable message",
20
- * code: "MACHINE_CODE",
21
- * requestId: "uuid", // For tracing
22
- * timestamp: "ISO date", // When error occurred
23
- * details: { ... } // Additional context
24
- * }
25
- */
26
- declare class ArcError extends Error {
27
- name: string;
28
- readonly code: string;
29
- readonly statusCode: number;
30
- readonly details?: Record<string, unknown>;
31
- readonly cause?: Error;
32
- readonly timestamp: string;
33
- requestId?: string;
34
- constructor(message: string, options?: ErrorDetails);
35
- /**
36
- * Set request ID (typically from request context)
37
- */
38
- withRequestId(requestId: string): this;
39
- /**
40
- * Convert to JSON response
41
- */
42
- toJSON(): Record<string, unknown>;
43
- }
44
- /**
45
- * Not Found Error - 404
46
- */
47
- declare class NotFoundError extends ArcError {
48
- constructor(resource: string, identifier?: string);
49
- }
50
- /**
51
- * Validation Error - 400
52
- */
53
- declare class ValidationError extends ArcError {
54
- readonly errors: Array<{
55
- field: string;
56
- message: string;
57
- }>;
58
- constructor(message: string, errors?: Array<{
59
- field: string;
60
- message: string;
61
- }>);
62
- }
63
- /**
64
- * Unauthorized Error - 401
65
- */
66
- declare class UnauthorizedError extends ArcError {
67
- constructor(message?: string);
68
- }
69
- /**
70
- * Forbidden Error - 403
71
- */
72
- declare class ForbiddenError extends ArcError {
73
- constructor(message?: string);
74
- }
75
- /**
76
- * Conflict Error - 409
77
- */
78
- declare class ConflictError extends ArcError {
79
- constructor(message: string, field?: string);
80
- }
81
- /**
82
- * Organization Required Error - 403
83
- */
84
- declare class OrgRequiredError extends ArcError {
85
- readonly organizations?: Array<{
86
- id: string;
87
- roles?: string[];
88
- }>;
89
- constructor(message: string, organizations?: Array<{
90
- id: string;
91
- roles?: string[];
92
- }>);
93
- }
94
- /**
95
- * Organization Access Denied Error - 403
96
- */
97
- declare class OrgAccessDeniedError extends ArcError {
98
- constructor(orgId?: string);
99
- }
100
- /**
101
- * Rate Limit Error - 429
102
- */
103
- declare class RateLimitError extends ArcError {
104
- readonly retryAfter?: number;
105
- constructor(message?: string, retryAfter?: number);
106
- }
107
- /**
108
- * Service Unavailable Error - 503
109
- */
110
- declare class ServiceUnavailableError extends ArcError {
111
- constructor(message?: string);
112
- }
113
- /**
114
- * Create error from status code
115
- */
116
- declare function createError(statusCode: number, message: string, details?: Record<string, unknown>): ArcError;
117
- /**
118
- * Check if error is an Arc error
119
- */
120
- declare function isArcError(error: unknown): error is ArcError;
121
-
122
- export { ArcError as A, ConflictError as C, type ErrorDetails as E, ForbiddenError as F, NotFoundError as N, OrgRequiredError as O, RateLimitError as R, ServiceUnavailableError as S, UnauthorizedError as U, ValidationError as V, OrgAccessDeniedError as a, createError as c, isArcError as i };
@@ -1,117 +0,0 @@
1
- import { FastifyPluginAsync } from 'fastify';
2
-
3
- /**
4
- * Event Transport Interface
5
- *
6
- * Defines contract for event delivery backends.
7
- * Implement for durable transports (Redis, RabbitMQ, Kafka, etc.)
8
- *
9
- * @example
10
- * // Redis Pub/Sub implementation
11
- * class RedisEventTransport implements EventTransport {
12
- * async publish(event) {
13
- * await redis.publish(event.type, JSON.stringify(event));
14
- * }
15
- * async subscribe(pattern, handler) {
16
- * redis.psubscribe(pattern);
17
- * redis.on('pmessage', (p, channel, msg) => handler(JSON.parse(msg)));
18
- * }
19
- * }
20
- */
21
- interface DomainEvent<T = unknown> {
22
- /** Event type (e.g., 'product.created', 'order.shipped') */
23
- type: string;
24
- /** Event payload */
25
- payload: T;
26
- /** Event metadata */
27
- meta: {
28
- /** Unique event ID */
29
- id: string;
30
- /** Event timestamp */
31
- timestamp: Date;
32
- /** Source resource */
33
- resource?: string;
34
- /** Resource ID */
35
- resourceId?: string;
36
- /** User who triggered the event */
37
- userId?: string;
38
- /** Organization context */
39
- organizationId?: string;
40
- /** Correlation ID for tracing */
41
- correlationId?: string;
42
- };
43
- }
44
- type EventHandler<T = unknown> = (event: DomainEvent<T>) => void | Promise<void>;
45
- interface EventTransport {
46
- /** Transport name for logging */
47
- readonly name: string;
48
- /**
49
- * Publish an event to the transport
50
- */
51
- publish(event: DomainEvent): Promise<void>;
52
- /**
53
- * Subscribe to events matching a pattern
54
- * @param pattern - Event type pattern (e.g., 'product.*', '*')
55
- * @param handler - Handler function
56
- * @returns Unsubscribe function
57
- */
58
- subscribe(pattern: string, handler: EventHandler): Promise<() => void>;
59
- /**
60
- * Close transport connections
61
- */
62
- close?(): Promise<void>;
63
- }
64
- /**
65
- * In-memory event transport (default)
66
- * Events are delivered synchronously within the process.
67
- * Not suitable for multi-instance deployments.
68
- */
69
- declare class MemoryEventTransport implements EventTransport {
70
- readonly name = "memory";
71
- private handlers;
72
- publish(event: DomainEvent): Promise<void>;
73
- subscribe(pattern: string, handler: EventHandler): Promise<() => void>;
74
- close(): Promise<void>;
75
- }
76
- /**
77
- * Create a domain event with auto-generated metadata
78
- */
79
- declare function createEvent<T>(type: string, payload: T, meta?: Partial<DomainEvent['meta']>): DomainEvent<T>;
80
-
81
- /**
82
- * Event Plugin
83
- *
84
- * Integrates event transport with Fastify.
85
- * Defaults to in-memory transport; configure durable transport for production.
86
- *
87
- * @example
88
- * // Development (in-memory)
89
- * await fastify.register(eventPlugin);
90
- *
91
- * // Production (Redis)
92
- * await fastify.register(eventPlugin, {
93
- * transport: new RedisEventTransport({ url: process.env.REDIS_URL }),
94
- * });
95
- */
96
-
97
- interface EventPluginOptions {
98
- /** Event transport (default: MemoryEventTransport) */
99
- transport?: EventTransport;
100
- /** Enable event logging (default: false) */
101
- logEvents?: boolean;
102
- }
103
- declare module 'fastify' {
104
- interface FastifyInstance {
105
- events: {
106
- /** Publish an event */
107
- publish: <T>(type: string, payload: T, meta?: Partial<DomainEvent['meta']>) => Promise<void>;
108
- /** Subscribe to events */
109
- subscribe: (pattern: string, handler: EventHandler) => Promise<() => void>;
110
- /** Get transport name */
111
- transportName: string;
112
- };
113
- }
114
- }
115
- declare const eventPlugin: FastifyPluginAsync<EventPluginOptions>;
116
-
117
- export { type DomainEvent, type EventHandler, type EventPluginOptions, type EventTransport, MemoryEventTransport, createEvent, eventPlugin };
@@ -1,89 +0,0 @@
1
- import fp from 'fastify-plugin';
2
-
3
- // src/events/EventTransport.ts
4
- var MemoryEventTransport = class {
5
- name = "memory";
6
- handlers = /* @__PURE__ */ new Map();
7
- async publish(event) {
8
- const exactHandlers = this.handlers.get(event.type) ?? /* @__PURE__ */ new Set();
9
- const wildcardHandlers = this.handlers.get("*") ?? /* @__PURE__ */ new Set();
10
- const patternHandlers = /* @__PURE__ */ new Set();
11
- for (const [pattern, handlers] of this.handlers.entries()) {
12
- if (pattern.endsWith(".*")) {
13
- const prefix = pattern.slice(0, -2);
14
- if (event.type.startsWith(prefix + ".")) {
15
- handlers.forEach((h) => patternHandlers.add(h));
16
- }
17
- }
18
- }
19
- const allHandlers = /* @__PURE__ */ new Set([...exactHandlers, ...wildcardHandlers, ...patternHandlers]);
20
- for (const handler of allHandlers) {
21
- try {
22
- await handler(event);
23
- } catch (err) {
24
- console.error(`[EventTransport] Handler error for ${event.type}:`, err);
25
- }
26
- }
27
- }
28
- async subscribe(pattern, handler) {
29
- if (!this.handlers.has(pattern)) {
30
- this.handlers.set(pattern, /* @__PURE__ */ new Set());
31
- }
32
- this.handlers.get(pattern).add(handler);
33
- return () => {
34
- this.handlers.get(pattern)?.delete(handler);
35
- };
36
- }
37
- async close() {
38
- this.handlers.clear();
39
- }
40
- };
41
- function createEvent(type, payload, meta) {
42
- return {
43
- type,
44
- payload,
45
- meta: {
46
- id: crypto.randomUUID(),
47
- timestamp: /* @__PURE__ */ new Date(),
48
- ...meta
49
- }
50
- };
51
- }
52
- var eventPlugin = async (fastify, opts = {}) => {
53
- const {
54
- transport = new MemoryEventTransport(),
55
- logEvents = false
56
- } = opts;
57
- fastify.decorate("events", {
58
- publish: async (type, payload, meta) => {
59
- const event = createEvent(type, payload, meta);
60
- if (logEvents) {
61
- fastify.log?.info?.({ eventType: type, eventId: event.meta.id }, "Publishing event");
62
- }
63
- await transport.publish(event);
64
- },
65
- subscribe: async (pattern, handler) => {
66
- if (logEvents) {
67
- fastify.log?.info?.({ pattern }, "Subscribing to events");
68
- }
69
- return transport.subscribe(pattern, handler);
70
- },
71
- transportName: transport.name
72
- });
73
- fastify.addHook("onClose", async () => {
74
- await transport.close?.();
75
- });
76
- if (transport.name === "memory") {
77
- fastify.log?.warn?.(
78
- "[Arc Events] Using in-memory transport. Events will not persist or scale across instances. For production, configure a durable transport (Redis, RabbitMQ, etc.)"
79
- );
80
- } else {
81
- fastify.log?.info?.(`[Arc Events] Using ${transport.name} transport`);
82
- }
83
- };
84
- fp(eventPlugin, {
85
- name: "arc-events",
86
- fastify: "5.x"
87
- });
88
-
89
- export { MemoryEventTransport, createEvent, eventPlugin };
@@ -1,38 +0,0 @@
1
- export { A as ArcFactory, c as createApp } from '../createApp-Ce9wl8W9.js';
2
- import { C as CreateAppOptions } from '../types-BvckRbs2.js';
3
- export { M as MultipartOptions, R as RawBodyOptions, U as UnderPressureOptions } from '../types-BvckRbs2.js';
4
- import 'fastify';
5
- import '@fastify/cors';
6
- import '@fastify/helmet';
7
- import '@fastify/rate-limit';
8
- import '../index-B4t03KQ0.js';
9
- import 'mongoose';
10
- import '../types-B99TBmFV.js';
11
-
12
- /**
13
- * Environment Presets for createApp
14
- *
15
- * Provides sensible defaults for different environments:
16
- * - production: Strict security, performance optimized
17
- * - development: Relaxed CORS, verbose logging
18
- * - testing: In-memory DB, no rate limiting
19
- */
20
-
21
- /**
22
- * Production preset - strict security, performance optimized
23
- */
24
- declare const productionPreset: Partial<CreateAppOptions>;
25
- /**
26
- * Development preset - relaxed security, verbose logging
27
- */
28
- declare const developmentPreset: Partial<CreateAppOptions>;
29
- /**
30
- * Testing preset - minimal setup, fast startup
31
- */
32
- declare const testingPreset: Partial<CreateAppOptions>;
33
- /**
34
- * Get preset by name
35
- */
36
- declare function getPreset(name: 'production' | 'development' | 'testing'): Partial<CreateAppOptions>;
37
-
38
- export { CreateAppOptions, developmentPreset, getPreset, productionPreset, testingPreset };