@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.
- package/README.md +247 -794
- package/bin/arc.js +91 -52
- package/dist/EventTransport-BkUDYZEb.d.mts +99 -0
- package/dist/HookSystem-BsGV-j2l.mjs +404 -0
- package/dist/ResourceRegistry-7Ic20ZMw.mjs +249 -0
- package/dist/adapters/index.d.mts +5 -0
- package/dist/adapters/index.mjs +3 -0
- package/dist/audit/index.d.mts +81 -0
- package/dist/audit/index.mjs +275 -0
- package/dist/audit/mongodb.d.mts +5 -0
- package/dist/audit/mongodb.mjs +3 -0
- package/dist/audited-CGdLiSlE.mjs +140 -0
- package/dist/auth/index.d.mts +188 -0
- package/dist/auth/index.mjs +1096 -0
- package/dist/auth/redis-session.d.mts +43 -0
- package/dist/auth/redis-session.mjs +75 -0
- package/dist/betterAuthOpenApi-DjWDddNc.mjs +249 -0
- package/dist/cache/index.d.mts +145 -0
- package/dist/cache/index.mjs +91 -0
- package/dist/caching-GSDJcA6-.mjs +93 -0
- package/dist/chunk-C7Uep-_p.mjs +20 -0
- package/dist/circuitBreaker-DYhWBW_D.mjs +1096 -0
- package/dist/cli/commands/describe.d.mts +18 -0
- package/dist/cli/commands/describe.mjs +238 -0
- package/dist/cli/commands/docs.d.mts +13 -0
- package/dist/cli/commands/docs.mjs +52 -0
- package/dist/cli/commands/{generate.d.ts → generate.d.mts} +3 -2
- package/dist/cli/commands/generate.mjs +357 -0
- package/dist/cli/commands/{init.d.ts → init.d.mts} +11 -8
- package/dist/cli/commands/{init.js → init.mjs} +807 -617
- package/dist/cli/commands/introspect.d.mts +10 -0
- package/dist/cli/commands/introspect.mjs +75 -0
- package/dist/cli/index.d.mts +16 -0
- package/dist/cli/index.mjs +156 -0
- package/dist/constants-DdXFXQtN.mjs +84 -0
- package/dist/core/index.d.mts +5 -0
- package/dist/core/index.mjs +4 -0
- package/dist/createApp-D2D5XXaV.mjs +559 -0
- package/dist/defineResource-PXzSJ15_.mjs +2197 -0
- package/dist/discovery/index.d.mts +46 -0
- package/dist/discovery/index.mjs +109 -0
- package/dist/docs/index.d.mts +162 -0
- package/dist/docs/index.mjs +74 -0
- package/dist/elevation-DGo5shaX.d.mts +87 -0
- package/dist/elevation-DSTbVvYj.mjs +113 -0
- package/dist/errorHandler-C3GY3_ow.mjs +108 -0
- package/dist/errorHandler-CW3OOeYq.d.mts +72 -0
- package/dist/errors-DAWRdiYP.d.mts +124 -0
- package/dist/errors-DBANPbGr.mjs +211 -0
- package/dist/eventPlugin-BEOvaDqo.mjs +229 -0
- package/dist/eventPlugin-H6wDDjGO.d.mts +124 -0
- package/dist/events/index.d.mts +53 -0
- package/dist/events/index.mjs +51 -0
- package/dist/events/transports/redis-stream-entry.d.mts +2 -0
- package/dist/events/transports/redis-stream-entry.mjs +177 -0
- package/dist/events/transports/redis.d.mts +76 -0
- package/dist/events/transports/redis.mjs +124 -0
- package/dist/externalPaths-SyPF2tgK.d.mts +50 -0
- package/dist/factory/index.d.mts +63 -0
- package/dist/factory/index.mjs +3 -0
- package/dist/fastifyAdapter-C8DlE0YH.d.mts +216 -0
- package/dist/fields-Bi_AVKSo.d.mts +109 -0
- package/dist/fields-CTd_CrKr.mjs +114 -0
- package/dist/hooks/index.d.mts +4 -0
- package/dist/hooks/index.mjs +3 -0
- package/dist/idempotency/index.d.mts +96 -0
- package/dist/idempotency/index.mjs +319 -0
- package/dist/idempotency/mongodb.d.mts +2 -0
- package/dist/idempotency/mongodb.mjs +114 -0
- package/dist/idempotency/redis.d.mts +2 -0
- package/dist/idempotency/redis.mjs +103 -0
- package/dist/index.d.mts +260 -0
- package/dist/index.mjs +104 -0
- package/dist/integrations/event-gateway.d.mts +46 -0
- package/dist/integrations/event-gateway.mjs +43 -0
- package/dist/integrations/index.d.mts +5 -0
- package/dist/integrations/index.mjs +1 -0
- package/dist/integrations/jobs.d.mts +103 -0
- package/dist/integrations/jobs.mjs +123 -0
- package/dist/integrations/streamline.d.mts +60 -0
- package/dist/integrations/streamline.mjs +125 -0
- package/dist/integrations/websocket.d.mts +82 -0
- package/dist/integrations/websocket.mjs +288 -0
- package/dist/interface-CSNjltAc.d.mts +77 -0
- package/dist/interface-DTbsvIWe.d.mts +54 -0
- package/dist/interface-e9XfSsUV.d.mts +1097 -0
- package/dist/introspectionPlugin-B3JkrjwU.mjs +53 -0
- package/dist/keys-DhqDRxv3.mjs +42 -0
- package/dist/logger-ByrvQWZO.mjs +78 -0
- package/dist/memory-B2v7KrCB.mjs +143 -0
- package/dist/migrations/index.d.mts +156 -0
- package/dist/migrations/index.mjs +260 -0
- package/dist/mongodb-ClykrfGo.d.mts +118 -0
- package/dist/mongodb-DNKEExbf.mjs +93 -0
- package/dist/mongodb-Dg8O_gvd.d.mts +71 -0
- package/dist/openapi-9nB_kiuR.mjs +525 -0
- package/dist/org/index.d.mts +68 -0
- package/dist/org/index.mjs +513 -0
- package/dist/org/types.d.mts +82 -0
- package/dist/org/types.mjs +1 -0
- package/dist/permissions/index.d.mts +278 -0
- package/dist/permissions/index.mjs +579 -0
- package/dist/plugins/index.d.mts +172 -0
- package/dist/plugins/index.mjs +522 -0
- package/dist/plugins/response-cache.d.mts +87 -0
- package/dist/plugins/response-cache.mjs +283 -0
- package/dist/plugins/tracing-entry.d.mts +2 -0
- package/dist/plugins/tracing-entry.mjs +185 -0
- package/dist/pluralize-CM-jZg7p.mjs +86 -0
- package/dist/policies/{index.d.ts → index.d.mts} +204 -170
- package/dist/policies/index.mjs +321 -0
- package/dist/presets/{index.d.ts → index.d.mts} +62 -131
- package/dist/presets/index.mjs +143 -0
- package/dist/presets/multiTenant.d.mts +24 -0
- package/dist/presets/multiTenant.mjs +113 -0
- package/dist/presets-BTeYbw7h.d.mts +57 -0
- package/dist/presets-CeFtfDR8.mjs +119 -0
- package/dist/prisma-C3iornoK.d.mts +274 -0
- package/dist/prisma-DJbMt3yf.mjs +627 -0
- package/dist/queryCachePlugin-B6R0d4av.mjs +138 -0
- package/dist/queryCachePlugin-Q6SYuHZ6.d.mts +71 -0
- package/dist/redis-UwjEp8Ea.d.mts +49 -0
- package/dist/redis-stream-CBg0upHI.d.mts +103 -0
- package/dist/registry/index.d.mts +11 -0
- package/dist/registry/index.mjs +4 -0
- package/dist/requestContext-xi6OKBL-.mjs +55 -0
- package/dist/schemaConverter-Dtg0Kt9T.mjs +98 -0
- package/dist/schemas/index.d.mts +63 -0
- package/dist/schemas/index.mjs +82 -0
- package/dist/scope/index.d.mts +21 -0
- package/dist/scope/index.mjs +65 -0
- package/dist/sessionManager-D_iEHjQl.d.mts +186 -0
- package/dist/sse-DkqQ1uxb.mjs +123 -0
- package/dist/testing/index.d.mts +907 -0
- package/dist/testing/index.mjs +1976 -0
- package/dist/tracing-8CEbhF0w.d.mts +70 -0
- package/dist/typeGuards-DwxA1t_L.mjs +9 -0
- package/dist/types/index.d.mts +946 -0
- package/dist/types/index.mjs +14 -0
- package/dist/types-B0dhNrnd.d.mts +445 -0
- package/dist/types-Beqn1Un7.mjs +38 -0
- package/dist/types-DelU6kln.mjs +25 -0
- package/dist/types-RLkFVgaw.d.mts +101 -0
- package/dist/utils/index.d.mts +747 -0
- package/dist/utils/index.mjs +6 -0
- package/package.json +194 -68
- package/dist/BaseController-DVAiHxEQ.d.ts +0 -233
- package/dist/adapters/index.d.ts +0 -237
- package/dist/adapters/index.js +0 -668
- package/dist/arcCorePlugin-CsShQdyP.d.ts +0 -273
- package/dist/audit/index.d.ts +0 -195
- package/dist/audit/index.js +0 -319
- package/dist/auth/index.d.ts +0 -47
- package/dist/auth/index.js +0 -174
- package/dist/cli/commands/docs.d.ts +0 -11
- package/dist/cli/commands/docs.js +0 -474
- package/dist/cli/commands/generate.js +0 -334
- package/dist/cli/commands/introspect.d.ts +0 -8
- package/dist/cli/commands/introspect.js +0 -338
- package/dist/cli/index.d.ts +0 -4
- package/dist/cli/index.js +0 -3269
- package/dist/core/index.d.ts +0 -220
- package/dist/core/index.js +0 -2786
- package/dist/createApp-Ce9wl8W9.d.ts +0 -77
- package/dist/docs/index.d.ts +0 -166
- package/dist/docs/index.js +0 -658
- package/dist/errors-8WIxGS_6.d.ts +0 -122
- package/dist/events/index.d.ts +0 -117
- package/dist/events/index.js +0 -89
- package/dist/factory/index.d.ts +0 -38
- package/dist/factory/index.js +0 -1652
- package/dist/hooks/index.d.ts +0 -4
- package/dist/hooks/index.js +0 -199
- package/dist/idempotency/index.d.ts +0 -323
- package/dist/idempotency/index.js +0 -500
- package/dist/index-B4t03KQ0.d.ts +0 -1366
- package/dist/index.d.ts +0 -135
- package/dist/index.js +0 -4756
- package/dist/migrations/index.d.ts +0 -185
- package/dist/migrations/index.js +0 -274
- package/dist/org/index.d.ts +0 -129
- package/dist/org/index.js +0 -220
- package/dist/permissions/index.d.ts +0 -144
- package/dist/permissions/index.js +0 -103
- package/dist/plugins/index.d.ts +0 -46
- package/dist/plugins/index.js +0 -1069
- package/dist/policies/index.js +0 -196
- package/dist/presets/index.js +0 -384
- package/dist/presets/multiTenant.d.ts +0 -39
- package/dist/presets/multiTenant.js +0 -112
- package/dist/registry/index.d.ts +0 -16
- package/dist/registry/index.js +0 -253
- package/dist/testing/index.d.ts +0 -618
- package/dist/testing/index.js +0 -48020
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.js +0 -8
- package/dist/types-B99TBmFV.d.ts +0 -76
- package/dist/types-BvckRbs2.d.ts +0 -143
- package/dist/utils/index.d.ts +0 -679
- package/dist/utils/index.js +0 -931
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
//#region src/idempotency/stores/interface.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Idempotency Store Interface
|
|
4
|
+
*
|
|
5
|
+
* Defines the contract for idempotency key storage backends.
|
|
6
|
+
* Implement this interface for custom stores (Redis, DynamoDB, etc.)
|
|
7
|
+
*/
|
|
8
|
+
interface IdempotencyResult {
|
|
9
|
+
/** The idempotency key */
|
|
10
|
+
key: string;
|
|
11
|
+
/** HTTP status code of the cached response */
|
|
12
|
+
statusCode: number;
|
|
13
|
+
/** Response headers to replay */
|
|
14
|
+
headers: Record<string, string>;
|
|
15
|
+
/** Response body */
|
|
16
|
+
body: unknown;
|
|
17
|
+
/** When this entry was created */
|
|
18
|
+
createdAt: Date;
|
|
19
|
+
/** When this entry expires */
|
|
20
|
+
expiresAt: Date;
|
|
21
|
+
}
|
|
22
|
+
interface IdempotencyLock {
|
|
23
|
+
/** The idempotency key being locked */
|
|
24
|
+
key: string;
|
|
25
|
+
/** Request ID that holds the lock */
|
|
26
|
+
requestId: string;
|
|
27
|
+
/** When the lock was acquired */
|
|
28
|
+
lockedAt: Date;
|
|
29
|
+
/** When the lock expires (auto-release) */
|
|
30
|
+
expiresAt: Date;
|
|
31
|
+
}
|
|
32
|
+
interface IdempotencyStore {
|
|
33
|
+
/** Store name for logging */
|
|
34
|
+
readonly name: string;
|
|
35
|
+
/**
|
|
36
|
+
* Get a cached result for an idempotency key.
|
|
37
|
+
* Returns undefined if not found or expired.
|
|
38
|
+
*/
|
|
39
|
+
get(key: string): Promise<IdempotencyResult | undefined>;
|
|
40
|
+
/**
|
|
41
|
+
* Store a result for an idempotency key.
|
|
42
|
+
* TTL is handled by the store implementation.
|
|
43
|
+
*/
|
|
44
|
+
set(key: string, result: Omit<IdempotencyResult, 'key'>): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Try to acquire a lock for processing a key.
|
|
47
|
+
* Returns true if lock acquired, false if already locked.
|
|
48
|
+
*/
|
|
49
|
+
tryLock(key: string, requestId: string, ttlMs: number): Promise<boolean>;
|
|
50
|
+
/** Release a lock after processing complete */
|
|
51
|
+
unlock(key: string, requestId: string): Promise<void>;
|
|
52
|
+
/** Check if a key is currently locked */
|
|
53
|
+
isLocked(key: string): Promise<boolean>;
|
|
54
|
+
/** Delete a cached result by exact key */
|
|
55
|
+
delete(key: string): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Delete all cached results whose key starts with the given prefix.
|
|
58
|
+
* Used by invalidate() to clear entries by raw idempotency key
|
|
59
|
+
* regardless of fingerprint.
|
|
60
|
+
* Returns the number of entries deleted.
|
|
61
|
+
*/
|
|
62
|
+
deleteByPrefix(prefix: string): Promise<number>;
|
|
63
|
+
/**
|
|
64
|
+
* Find the first cached result whose key starts with the given prefix.
|
|
65
|
+
* Used by has() to check if any entry exists for a raw idempotency key.
|
|
66
|
+
* Returns undefined if no matching entry found.
|
|
67
|
+
*/
|
|
68
|
+
findByPrefix(prefix: string): Promise<IdempotencyResult | undefined>;
|
|
69
|
+
/** Close the store (cleanup connections) */
|
|
70
|
+
close?(): Promise<void>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Helper to create a result object
|
|
74
|
+
*/
|
|
75
|
+
declare function createIdempotencyResult(statusCode: number, body: unknown, headers: Record<string, string>, ttlMs: number): Omit<IdempotencyResult, 'key'>;
|
|
76
|
+
//#endregion
|
|
77
|
+
export { createIdempotencyResult as i, IdempotencyResult as n, IdempotencyStore as r, IdempotencyLock as t };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//#region src/cache/interface.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Generic Cache Store Interface
|
|
4
|
+
*
|
|
5
|
+
* Shared contract for reusable cache backends (memory, Redis, etc.).
|
|
6
|
+
* Used by runtime systems such as dynamic permission matrices and QueryCache.
|
|
7
|
+
*/
|
|
8
|
+
interface CacheLogger {
|
|
9
|
+
warn(message: string, ...args: unknown[]): void;
|
|
10
|
+
error(message: string, ...args: unknown[]): void;
|
|
11
|
+
}
|
|
12
|
+
interface CacheSetOptions {
|
|
13
|
+
/** Time-to-live in milliseconds */
|
|
14
|
+
ttlMs?: number;
|
|
15
|
+
}
|
|
16
|
+
interface CacheStats {
|
|
17
|
+
/** Number of entries currently stored */
|
|
18
|
+
entries: number;
|
|
19
|
+
/** Estimated memory usage in bytes (-1 if unavailable) */
|
|
20
|
+
memoryBytes: number;
|
|
21
|
+
/** Cache hit count since creation */
|
|
22
|
+
hits: number;
|
|
23
|
+
/** Cache miss count since creation */
|
|
24
|
+
misses: number;
|
|
25
|
+
/** Number of entries evicted since creation */
|
|
26
|
+
evictions: number;
|
|
27
|
+
}
|
|
28
|
+
interface CacheStore<TValue = unknown> {
|
|
29
|
+
/** Store name for logs/diagnostics */
|
|
30
|
+
readonly name: string;
|
|
31
|
+
/**
|
|
32
|
+
* Get cached value by key.
|
|
33
|
+
* Returns undefined when missing or expired.
|
|
34
|
+
*/
|
|
35
|
+
get(key: string): Promise<TValue | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Set a cache value.
|
|
38
|
+
* Store implementation handles TTL and eviction policy.
|
|
39
|
+
*/
|
|
40
|
+
set(key: string, value: TValue, options?: CacheSetOptions): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Delete a single cache key.
|
|
43
|
+
*/
|
|
44
|
+
delete(key: string): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Clear all keys in this store namespace.
|
|
47
|
+
* Optional because distributed stores may not support cheap global clear.
|
|
48
|
+
*/
|
|
49
|
+
clear?(): Promise<void>;
|
|
50
|
+
/** Cache statistics for observability. */
|
|
51
|
+
stats?(): CacheStats;
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { CacheStore as i, CacheSetOptions as n, CacheStats as r, CacheLogger as t };
|