@classytic/arc 1.1.0 → 2.1.3

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 (200) hide show
  1. package/README.md +247 -794
  2. package/bin/arc.js +91 -52
  3. package/dist/EventTransport-BkUDYZEb.d.mts +99 -0
  4. package/dist/HookSystem-BsGV-j2l.mjs +404 -0
  5. package/dist/ResourceRegistry-7Ic20ZMw.mjs +249 -0
  6. package/dist/adapters/index.d.mts +5 -0
  7. package/dist/adapters/index.mjs +3 -0
  8. package/dist/audit/index.d.mts +81 -0
  9. package/dist/audit/index.mjs +275 -0
  10. package/dist/audit/mongodb.d.mts +5 -0
  11. package/dist/audit/mongodb.mjs +3 -0
  12. package/dist/audited-CGdLiSlE.mjs +140 -0
  13. package/dist/auth/index.d.mts +188 -0
  14. package/dist/auth/index.mjs +1096 -0
  15. package/dist/auth/redis-session.d.mts +43 -0
  16. package/dist/auth/redis-session.mjs +75 -0
  17. package/dist/betterAuthOpenApi-DjWDddNc.mjs +249 -0
  18. package/dist/cache/index.d.mts +145 -0
  19. package/dist/cache/index.mjs +91 -0
  20. package/dist/caching-GSDJcA6-.mjs +93 -0
  21. package/dist/chunk-C7Uep-_p.mjs +20 -0
  22. package/dist/circuitBreaker-DYhWBW_D.mjs +1096 -0
  23. package/dist/cli/commands/describe.d.mts +18 -0
  24. package/dist/cli/commands/describe.mjs +238 -0
  25. package/dist/cli/commands/docs.d.mts +13 -0
  26. package/dist/cli/commands/docs.mjs +52 -0
  27. package/dist/cli/commands/{generate.d.ts → generate.d.mts} +3 -2
  28. package/dist/cli/commands/generate.mjs +357 -0
  29. package/dist/cli/commands/{init.d.ts → init.d.mts} +11 -8
  30. package/dist/cli/commands/{init.js → init.mjs} +807 -617
  31. package/dist/cli/commands/introspect.d.mts +10 -0
  32. package/dist/cli/commands/introspect.mjs +75 -0
  33. package/dist/cli/index.d.mts +16 -0
  34. package/dist/cli/index.mjs +156 -0
  35. package/dist/constants-DdXFXQtN.mjs +84 -0
  36. package/dist/core/index.d.mts +5 -0
  37. package/dist/core/index.mjs +4 -0
  38. package/dist/createApp-D2D5XXaV.mjs +559 -0
  39. package/dist/defineResource-PXzSJ15_.mjs +2197 -0
  40. package/dist/discovery/index.d.mts +46 -0
  41. package/dist/discovery/index.mjs +109 -0
  42. package/dist/docs/index.d.mts +162 -0
  43. package/dist/docs/index.mjs +74 -0
  44. package/dist/elevation-DGo5shaX.d.mts +87 -0
  45. package/dist/elevation-DSTbVvYj.mjs +113 -0
  46. package/dist/errorHandler-C3GY3_ow.mjs +108 -0
  47. package/dist/errorHandler-CW3OOeYq.d.mts +72 -0
  48. package/dist/errors-DAWRdiYP.d.mts +124 -0
  49. package/dist/errors-DBANPbGr.mjs +211 -0
  50. package/dist/eventPlugin-BEOvaDqo.mjs +229 -0
  51. package/dist/eventPlugin-H6wDDjGO.d.mts +124 -0
  52. package/dist/events/index.d.mts +53 -0
  53. package/dist/events/index.mjs +51 -0
  54. package/dist/events/transports/redis-stream-entry.d.mts +2 -0
  55. package/dist/events/transports/redis-stream-entry.mjs +177 -0
  56. package/dist/events/transports/redis.d.mts +76 -0
  57. package/dist/events/transports/redis.mjs +124 -0
  58. package/dist/externalPaths-SyPF2tgK.d.mts +50 -0
  59. package/dist/factory/index.d.mts +63 -0
  60. package/dist/factory/index.mjs +3 -0
  61. package/dist/fastifyAdapter-C8DlE0YH.d.mts +216 -0
  62. package/dist/fields-Bi_AVKSo.d.mts +109 -0
  63. package/dist/fields-CTd_CrKr.mjs +114 -0
  64. package/dist/hooks/index.d.mts +4 -0
  65. package/dist/hooks/index.mjs +3 -0
  66. package/dist/idempotency/index.d.mts +96 -0
  67. package/dist/idempotency/index.mjs +319 -0
  68. package/dist/idempotency/mongodb.d.mts +2 -0
  69. package/dist/idempotency/mongodb.mjs +114 -0
  70. package/dist/idempotency/redis.d.mts +2 -0
  71. package/dist/idempotency/redis.mjs +103 -0
  72. package/dist/index.d.mts +260 -0
  73. package/dist/index.mjs +104 -0
  74. package/dist/integrations/event-gateway.d.mts +46 -0
  75. package/dist/integrations/event-gateway.mjs +43 -0
  76. package/dist/integrations/index.d.mts +5 -0
  77. package/dist/integrations/index.mjs +1 -0
  78. package/dist/integrations/jobs.d.mts +103 -0
  79. package/dist/integrations/jobs.mjs +123 -0
  80. package/dist/integrations/streamline.d.mts +60 -0
  81. package/dist/integrations/streamline.mjs +125 -0
  82. package/dist/integrations/websocket.d.mts +82 -0
  83. package/dist/integrations/websocket.mjs +288 -0
  84. package/dist/interface-CSNjltAc.d.mts +77 -0
  85. package/dist/interface-DTbsvIWe.d.mts +54 -0
  86. package/dist/interface-e9XfSsUV.d.mts +1097 -0
  87. package/dist/introspectionPlugin-B3JkrjwU.mjs +53 -0
  88. package/dist/keys-DhqDRxv3.mjs +42 -0
  89. package/dist/logger-ByrvQWZO.mjs +78 -0
  90. package/dist/memory-B2v7KrCB.mjs +143 -0
  91. package/dist/migrations/index.d.mts +156 -0
  92. package/dist/migrations/index.mjs +260 -0
  93. package/dist/mongodb-ClykrfGo.d.mts +118 -0
  94. package/dist/mongodb-DNKEExbf.mjs +93 -0
  95. package/dist/mongodb-Dg8O_gvd.d.mts +71 -0
  96. package/dist/openapi-9nB_kiuR.mjs +525 -0
  97. package/dist/org/index.d.mts +68 -0
  98. package/dist/org/index.mjs +513 -0
  99. package/dist/org/types.d.mts +82 -0
  100. package/dist/org/types.mjs +1 -0
  101. package/dist/permissions/index.d.mts +278 -0
  102. package/dist/permissions/index.mjs +579 -0
  103. package/dist/plugins/index.d.mts +172 -0
  104. package/dist/plugins/index.mjs +522 -0
  105. package/dist/plugins/response-cache.d.mts +87 -0
  106. package/dist/plugins/response-cache.mjs +283 -0
  107. package/dist/plugins/tracing-entry.d.mts +2 -0
  108. package/dist/plugins/tracing-entry.mjs +185 -0
  109. package/dist/pluralize-CM-jZg7p.mjs +86 -0
  110. package/dist/policies/{index.d.ts → index.d.mts} +204 -170
  111. package/dist/policies/index.mjs +321 -0
  112. package/dist/presets/{index.d.ts → index.d.mts} +62 -131
  113. package/dist/presets/index.mjs +143 -0
  114. package/dist/presets/multiTenant.d.mts +24 -0
  115. package/dist/presets/multiTenant.mjs +113 -0
  116. package/dist/presets-BTeYbw7h.d.mts +57 -0
  117. package/dist/presets-CeFtfDR8.mjs +119 -0
  118. package/dist/prisma-C3iornoK.d.mts +274 -0
  119. package/dist/prisma-DJbMt3yf.mjs +627 -0
  120. package/dist/queryCachePlugin-B6R0d4av.mjs +138 -0
  121. package/dist/queryCachePlugin-Q6SYuHZ6.d.mts +71 -0
  122. package/dist/redis-UwjEp8Ea.d.mts +49 -0
  123. package/dist/redis-stream-CBg0upHI.d.mts +103 -0
  124. package/dist/registry/index.d.mts +11 -0
  125. package/dist/registry/index.mjs +4 -0
  126. package/dist/requestContext-xi6OKBL-.mjs +55 -0
  127. package/dist/schemaConverter-Dtg0Kt9T.mjs +98 -0
  128. package/dist/schemas/index.d.mts +63 -0
  129. package/dist/schemas/index.mjs +82 -0
  130. package/dist/scope/index.d.mts +21 -0
  131. package/dist/scope/index.mjs +65 -0
  132. package/dist/sessionManager-D_iEHjQl.d.mts +186 -0
  133. package/dist/sse-DkqQ1uxb.mjs +123 -0
  134. package/dist/testing/index.d.mts +907 -0
  135. package/dist/testing/index.mjs +1976 -0
  136. package/dist/tracing-8CEbhF0w.d.mts +70 -0
  137. package/dist/typeGuards-DwxA1t_L.mjs +9 -0
  138. package/dist/types/index.d.mts +946 -0
  139. package/dist/types/index.mjs +14 -0
  140. package/dist/types-B0dhNrnd.d.mts +445 -0
  141. package/dist/types-Beqn1Un7.mjs +38 -0
  142. package/dist/types-DelU6kln.mjs +25 -0
  143. package/dist/types-RLkFVgaw.d.mts +101 -0
  144. package/dist/utils/index.d.mts +747 -0
  145. package/dist/utils/index.mjs +6 -0
  146. package/package.json +194 -68
  147. package/dist/BaseController-DVAiHxEQ.d.ts +0 -233
  148. package/dist/adapters/index.d.ts +0 -237
  149. package/dist/adapters/index.js +0 -668
  150. package/dist/arcCorePlugin-CsShQdyP.d.ts +0 -273
  151. package/dist/audit/index.d.ts +0 -195
  152. package/dist/audit/index.js +0 -319
  153. package/dist/auth/index.d.ts +0 -47
  154. package/dist/auth/index.js +0 -174
  155. package/dist/cli/commands/docs.d.ts +0 -11
  156. package/dist/cli/commands/docs.js +0 -474
  157. package/dist/cli/commands/generate.js +0 -334
  158. package/dist/cli/commands/introspect.d.ts +0 -8
  159. package/dist/cli/commands/introspect.js +0 -338
  160. package/dist/cli/index.d.ts +0 -4
  161. package/dist/cli/index.js +0 -3269
  162. package/dist/core/index.d.ts +0 -220
  163. package/dist/core/index.js +0 -2786
  164. package/dist/createApp-Ce9wl8W9.d.ts +0 -77
  165. package/dist/docs/index.d.ts +0 -166
  166. package/dist/docs/index.js +0 -658
  167. package/dist/errors-8WIxGS_6.d.ts +0 -122
  168. package/dist/events/index.d.ts +0 -117
  169. package/dist/events/index.js +0 -89
  170. package/dist/factory/index.d.ts +0 -38
  171. package/dist/factory/index.js +0 -1652
  172. package/dist/hooks/index.d.ts +0 -4
  173. package/dist/hooks/index.js +0 -199
  174. package/dist/idempotency/index.d.ts +0 -323
  175. package/dist/idempotency/index.js +0 -500
  176. package/dist/index-B4t03KQ0.d.ts +0 -1366
  177. package/dist/index.d.ts +0 -135
  178. package/dist/index.js +0 -4756
  179. package/dist/migrations/index.d.ts +0 -185
  180. package/dist/migrations/index.js +0 -274
  181. package/dist/org/index.d.ts +0 -129
  182. package/dist/org/index.js +0 -220
  183. package/dist/permissions/index.d.ts +0 -144
  184. package/dist/permissions/index.js +0 -103
  185. package/dist/plugins/index.d.ts +0 -46
  186. package/dist/plugins/index.js +0 -1069
  187. package/dist/policies/index.js +0 -196
  188. package/dist/presets/index.js +0 -384
  189. package/dist/presets/multiTenant.d.ts +0 -39
  190. package/dist/presets/multiTenant.js +0 -112
  191. package/dist/registry/index.d.ts +0 -16
  192. package/dist/registry/index.js +0 -253
  193. package/dist/testing/index.d.ts +0 -618
  194. package/dist/testing/index.js +0 -48020
  195. package/dist/types/index.d.ts +0 -4
  196. package/dist/types/index.js +0 -8
  197. package/dist/types-B99TBmFV.d.ts +0 -76
  198. package/dist/types-BvckRbs2.d.ts +0 -143
  199. package/dist/utils/index.d.ts +0 -679
  200. 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 };