@classytic/arc 2.11.2 → 2.11.4
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/LICENSE +21 -21
- package/README.md +20 -21
- package/bin/arc.js +2 -2
- package/dist/{BaseController-JNV08qOT.mjs → BaseController-swXruJ2_.mjs} +2 -2
- package/dist/EventTransport-BFQjw9pB.mjs +133 -0
- package/dist/{QueryCache-DOBNHBE0.d.mts → QueryCache-D41bfdBB.d.mts} +1 -1
- package/dist/{actionPermissions-C8YYU92K.mjs → actionPermissions-sUUKDhtP.mjs} +4 -2
- package/dist/adapters/index.d.mts +3 -3
- package/dist/adapters/index.mjs +2 -2
- package/dist/{adapters-D0tT2Tyo.mjs → adapters-DUUiiimH.mjs} +17 -2
- package/dist/audit/index.d.mts +2 -2
- package/dist/auth/index.d.mts +4 -4
- package/dist/auth/index.mjs +1 -1
- package/dist/auth/redis-session.d.mts +1 -1
- package/dist/cache/index.d.mts +3 -3
- package/dist/cli/commands/docs.mjs +1 -1
- package/dist/cli/commands/generate.d.mts +0 -2
- package/dist/cli/commands/generate.mjs +16 -16
- package/dist/cli/commands/init.mjs +149 -65
- package/dist/context/index.mjs +1 -1
- package/dist/core/index.d.mts +2 -2
- package/dist/core/index.mjs +3 -3
- package/dist/{core-DXdSSFW-.mjs → core-CbcQRIch.mjs} +25 -8
- package/dist/{createActionRouter-BwaSM0No.mjs → createActionRouter-CIKOcNA7.mjs} +74 -14
- package/dist/{createApp-P1d6rjPy.mjs → createApp-C9bRrqlX.mjs} +4 -6
- package/dist/defineEvent-D1Ky9M1D.mjs +188 -0
- package/dist/docs/index.d.mts +2 -2
- package/dist/docs/index.mjs +1 -1
- package/dist/{eventPlugin--5HIkdPU.mjs → eventPlugin-Cts2-Tfj.mjs} +9 -135
- package/dist/{eventPlugin-CUNjYYRY.d.mts → eventPlugin-DDJoNEPL.d.mts} +34 -7
- package/dist/events/index.d.mts +164 -5
- package/dist/events/index.mjs +138 -182
- package/dist/events/transports/redis-stream-entry.d.mts +1 -1
- package/dist/events/transports/redis-stream-entry.mjs +204 -31
- package/dist/events/transports/redis.d.mts +1 -1
- package/dist/factory/index.d.mts +1 -1
- package/dist/factory/index.mjs +1 -1
- package/dist/{fields-C8Y0XLAu.d.mts → fields-BRjxOAFp.d.mts} +1 -1
- package/dist/hooks/index.d.mts +1 -1
- package/dist/idempotency/index.d.mts +3 -3
- package/dist/idempotency/index.mjs +1 -1
- package/dist/idempotency/redis.d.mts +1 -1
- package/dist/{index-6u4_Gg6G.d.mts → index-CXXRbnf8.d.mts} +51 -5
- package/dist/{index-DdQ3O9Pg.d.mts → index-D9t1KNaB.d.mts} +2 -2
- package/dist/{index-BbMrcvGp.d.mts → index-Rg8axYPz.d.mts} +12 -4
- package/dist/{index-BdXnTPRj.d.mts → index-m8mOOlFW.d.mts} +3 -3
- package/dist/{index-BYCqHCVu.d.mts → index-rHjXmJar.d.mts} +3 -3
- package/dist/index.d.mts +7 -7
- package/dist/index.mjs +7 -7
- package/dist/integrations/event-gateway.d.mts +2 -2
- package/dist/integrations/index.d.mts +2 -2
- package/dist/integrations/mcp/index.d.mts +2 -2
- package/dist/integrations/mcp/index.mjs +1 -1
- package/dist/integrations/mcp/testing.d.mts +1 -1
- package/dist/integrations/mcp/testing.mjs +1 -1
- package/dist/integrations/websocket-redis.d.mts +1 -1
- package/dist/integrations/websocket.d.mts +1 -1
- package/dist/middleware/index.d.mts +1 -1
- package/dist/{openapi-C0L9ar7m.mjs → openapi-D7G1V7ex.mjs} +2 -2
- package/dist/org/index.d.mts +2 -2
- package/dist/permissions/index.d.mts +2 -2
- package/dist/permissions/index.mjs +1 -1
- package/dist/{permissions-B4vU9L0Q.mjs → permissions-gd_aUWrR.mjs} +42 -0
- package/dist/pipeline/index.d.mts +1 -1
- package/dist/plugins/index.d.mts +5 -5
- package/dist/plugins/index.mjs +1 -1
- package/dist/plugins/tracing-entry.d.mts +1 -1
- package/dist/plugins/tracing-entry.mjs +1 -1
- package/dist/presets/filesUpload.d.mts +4 -4
- package/dist/presets/filesUpload.mjs +1 -1
- package/dist/presets/index.d.mts +1 -1
- package/dist/presets/index.mjs +1 -1
- package/dist/presets/multiTenant.d.mts +1 -1
- package/dist/presets/search.d.mts +2 -2
- package/dist/presets/search.mjs +1 -1
- package/dist/{presets-k604Lj99.mjs → presets-Z7P5w4gF.mjs} +1 -1
- package/dist/{queryCachePlugin-BUXBSm4F.d.mts → queryCachePlugin-CqMdLI2-.d.mts} +2 -2
- package/dist/{redis-Cm1gnRDf.d.mts → redis-DiMkdHEl.d.mts} +1 -1
- package/dist/redis-stream-xTGxB2bm.d.mts +232 -0
- package/dist/registry/index.d.mts +1 -1
- package/dist/{requestContext-CfRkaxwf.mjs → requestContext-C5XeK3VA.mjs} +15 -0
- package/dist/{resourceToTools--okX6QBr.mjs → resourceToTools-CxNmI6xF.mjs} +7 -6
- package/dist/{routerShared-DeESFp4a.mjs → routerShared-BqLRb5l7.mjs} +60 -3
- package/dist/scope/index.d.mts +2 -2
- package/dist/testing/index.d.mts +2 -2
- package/dist/testing/index.mjs +1 -1
- package/dist/testing/storageContract.d.mts +1 -1
- package/dist/types/index.d.mts +4 -4
- package/dist/types/storage.d.mts +1 -1
- package/dist/{types-9beEMe25.d.mts → types-BQ9TJQNy.d.mts} +1 -1
- package/dist/{types-BH7dEGvU.d.mts → types-D7KpfiL1.d.mts} +10 -10
- package/dist/utils/index.d.mts +1 -1
- package/dist/utils/index.mjs +1 -1
- package/dist/{utils-D3Yxnrwr.mjs → utils-CcYTj09l.mjs} +1 -1
- package/dist/{versioning-M9lNLhO8.d.mts → versioning-DsglKfM_.d.mts} +1 -1
- package/package.json +3 -1
- package/skills/arc/SKILL.md +409 -769
- package/skills/arc/references/events.md +489 -489
- package/dist/redis-stream-CM8TXTix.d.mts +0 -110
- /package/dist/{EventTransport-CfVEGaEl.d.mts → EventTransport-CYNUXdCJ.d.mts} +0 -0
- /package/dist/{elevation-s5ykdNHr.d.mts → elevation-BQQXZ_VR.d.mts} +0 -0
- /package/dist/{errorHandler-Co3lnVmJ.d.mts → errorHandler-DEWmGWPz.d.mts} +0 -0
- /package/dist/{externalPaths-Bapitwvd.d.mts → externalPaths-BD5nw6St.d.mts} +0 -0
- /package/dist/{interface-CkkWm5uR.d.mts → interface-DfLGcus7.d.mts} +0 -0
- /package/dist/{interface-Da0r7Lna.d.mts → interface-beEtJyWM.d.mts} +0 -0
- /package/dist/{pluralize-BneOJkpi.mjs → pluralize-CWP6MB39.mjs} +0 -0
- /package/dist/{schemaIR-BlG9bY7v.mjs → schemaIR-Dy2p4MxS.mjs} +0 -0
- /package/dist/{sessionManager-D-oNWHz3.d.mts → sessionManager-C4Le_UB3.d.mts} +0 -0
- /package/dist/{storage-BwGQXUpd.d.mts → storage-Dfzt4VTl.d.mts} +0 -0
- /package/dist/{store-helpers-BhrzxvyQ.mjs → store-helpers-Cp4uKC1U.mjs} +0 -0
- /package/dist/{tracing-DokiEsuz.d.mts → tracing-QJVprktp.d.mts} +0 -0
- /package/dist/{types-tgR4Pt8F.d.mts → types-DDyTPc6y.d.mts} +0 -0
- /package/dist/{websocket-CyJ1VIFI.d.mts → websocket-ChC2rqe1.d.mts} +0 -0
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { i as EventLogger, n as DomainEvent, o as EventTransport, r as EventHandler } from "./EventTransport-CfVEGaEl.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/events/transports/redis-stream.d.ts
|
|
4
|
-
interface RedisStreamLike {
|
|
5
|
-
xadd(key: string, id: string, ...fieldValues: string[]): Promise<string | null>;
|
|
6
|
-
xreadgroup(command: "GROUP", group: string, consumer: string, ...args: (string | number)[]): Promise<Array<[string, Array<[string, string[]]>]> | null>;
|
|
7
|
-
xack(key: string, group: string, ...ids: string[]): Promise<number>;
|
|
8
|
-
xgroup(command: string, key: string, group: string, ...args: string[]): Promise<unknown>;
|
|
9
|
-
xpending(key: string, group: string, ...args: (string | number)[]): Promise<Array<[string, string, number, number]>>;
|
|
10
|
-
xclaim(key: string, group: string, consumer: string, minIdleTime: number, ...ids: string[]): Promise<Array<[string, string[]]>>;
|
|
11
|
-
xlen(key: string): Promise<number>;
|
|
12
|
-
quit(): Promise<unknown>;
|
|
13
|
-
}
|
|
14
|
-
interface RedisStreamTransportOptions {
|
|
15
|
-
/**
|
|
16
|
-
* Redis stream key name.
|
|
17
|
-
* @default 'arc:events'
|
|
18
|
-
*/
|
|
19
|
-
stream?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Consumer group name. Each group receives every event independently.
|
|
22
|
-
* Multiple instances of the same service should share a group name.
|
|
23
|
-
* @default 'default'
|
|
24
|
-
*/
|
|
25
|
-
group?: string;
|
|
26
|
-
/**
|
|
27
|
-
* Consumer name within the group. Must be unique per instance.
|
|
28
|
-
* @default 'consumer-<random>'
|
|
29
|
-
*/
|
|
30
|
-
consumer?: string;
|
|
31
|
-
/**
|
|
32
|
-
* Block time in ms when waiting for new events.
|
|
33
|
-
* @default 5000
|
|
34
|
-
*/
|
|
35
|
-
blockTimeMs?: number;
|
|
36
|
-
/**
|
|
37
|
-
* Max events to read per batch.
|
|
38
|
-
* @default 10
|
|
39
|
-
*/
|
|
40
|
-
batchSize?: number;
|
|
41
|
-
/**
|
|
42
|
-
* Max delivery attempts before moving to dead letter stream.
|
|
43
|
-
* @default 5
|
|
44
|
-
*/
|
|
45
|
-
maxRetries?: number;
|
|
46
|
-
/**
|
|
47
|
-
* Idle time in ms before pending entries are claimed by this consumer.
|
|
48
|
-
* Handles crash recovery — if a consumer dies mid-processing, another
|
|
49
|
-
* consumer will claim its pending entries after this timeout.
|
|
50
|
-
* @default 30000
|
|
51
|
-
*/
|
|
52
|
-
claimTimeoutMs?: number;
|
|
53
|
-
/**
|
|
54
|
-
* Dead letter stream name. Failed events are moved here after maxRetries.
|
|
55
|
-
* Set to `false` to disable DLQ (failed events are acked and dropped).
|
|
56
|
-
* @default 'arc:events:dlq'
|
|
57
|
-
*/
|
|
58
|
-
deadLetterStream?: string | false;
|
|
59
|
-
/**
|
|
60
|
-
* Max stream length (approximate). Uses XADD MAXLEN ~ to trim old entries.
|
|
61
|
-
* Set to 0 to disable trimming.
|
|
62
|
-
* @default 10000
|
|
63
|
-
*/
|
|
64
|
-
maxLen?: number;
|
|
65
|
-
/**
|
|
66
|
-
* Max event payload size in bytes. Publish rejects events exceeding this limit
|
|
67
|
-
* to prevent Redis memory exhaustion from oversized payloads.
|
|
68
|
-
* @default 1_000_000 (1 MB)
|
|
69
|
-
*/
|
|
70
|
-
maxPayloadBytes?: number;
|
|
71
|
-
/**
|
|
72
|
-
* Logger for error messages (default: console).
|
|
73
|
-
* Pass `fastify.log` to integrate with your application logger.
|
|
74
|
-
*/
|
|
75
|
-
logger?: EventLogger;
|
|
76
|
-
}
|
|
77
|
-
declare class RedisStreamTransport implements EventTransport {
|
|
78
|
-
readonly name = "redis-stream";
|
|
79
|
-
private redis;
|
|
80
|
-
private stream;
|
|
81
|
-
private group;
|
|
82
|
-
private consumer;
|
|
83
|
-
private blockTimeMs;
|
|
84
|
-
private batchSize;
|
|
85
|
-
private maxRetries;
|
|
86
|
-
private claimTimeoutMs;
|
|
87
|
-
private deadLetterStream;
|
|
88
|
-
private maxLen;
|
|
89
|
-
private maxPayloadBytes;
|
|
90
|
-
private logger;
|
|
91
|
-
private handlers;
|
|
92
|
-
private running;
|
|
93
|
-
private pollPromise;
|
|
94
|
-
private groupCreated;
|
|
95
|
-
constructor(redis: RedisStreamLike, options?: RedisStreamTransportOptions);
|
|
96
|
-
publish(event: DomainEvent): Promise<void>;
|
|
97
|
-
subscribe(pattern: string, handler: EventHandler): Promise<() => void>;
|
|
98
|
-
close(): Promise<void>;
|
|
99
|
-
private ensureGroup;
|
|
100
|
-
private pollLoop;
|
|
101
|
-
private readNewMessages;
|
|
102
|
-
private claimPending;
|
|
103
|
-
private processEntry;
|
|
104
|
-
private getMatchingHandlers;
|
|
105
|
-
private matchesPattern;
|
|
106
|
-
private moveToDlq;
|
|
107
|
-
private sleep;
|
|
108
|
-
}
|
|
109
|
-
//#endregion
|
|
110
|
-
export { RedisStreamTransport as n, RedisStreamTransportOptions as r, RedisStreamLike as t };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|