@auriclabs/events 0.4.0 → 0.4.1

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.
@@ -1,53 +1,75 @@
1
1
 
2
- > @auriclabs/events@0.4.0 build /home/runner/work/packages/packages/packages/events
3
- > tsdown src/index.ts src/stream-handler.entry.ts --format cjs,esm --dts --no-hash
2
+ > @auriclabs/events@0.4.1 build /home/runner/work/packages/packages/packages/events
3
+ > tsdown src/index.ts --format cjs,esm --dts --no-hash && tsdown src/stream-handler.entry.ts --format cjs,esm --dts --no-hash --no-clean
4
4
 
5
5
  [tsdown] Node.js v20.20.1 is deprecated. Support will be removed in the next minor release. Please upgrade to Node.js 22.18.0 or later.
6
6
  ℹ tsdown v0.21.4 powered by rolldown v1.0.0-rc.9
7
- ℹ entry: src/index.ts, src/stream-handler.entry.ts
7
+ ℹ entry: src/index.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ [CJS] dist/index.cjs 8.30 kB │ gzip: 2.56 kB
11
- ℹ [CJS] dist/stream-handler.entry.cjs 0.32 kB │ gzip: 0.25 kB
12
- ℹ [CJS] dist/stream-handler.cjs 3.12 kB │ gzip: 1.13 kB
13
- ℹ [CJS] 3 files, total: 11.75 kB
10
+ ℹ [CJS] dist/index.cjs 11.16 kB │ gzip: 3.34 kB
11
+ ℹ [CJS] 1 files, total: 11.16 kB
14
12
  ℹ Hint: consider adding deps.onlyBundle option to avoid unintended bundling of dependencies, or set deps.onlyBundle: false to disable this hint.
15
13
  See more at https://tsdown.dev/options/dependencies#deps-onlybundle
16
14
  Detected dependencies in bundle:
17
15
  - @types/aws-lambda
16
+ ℹ [ESM] dist/index.mjs 10.40 kB │ gzip: 3.22 kB
17
+ ℹ [ESM] dist/index.mjs.map 23.95 kB │ gzip: 6.81 kB
18
+ ℹ [ESM] dist/index.d.mts.map  7.95 kB │ gzip: 2.65 kB
19
+ ℹ [ESM] dist/index.d.mts 15.81 kB │ gzip: 4.29 kB
20
+ ℹ [ESM] 4 files, total: 58.11 kB
21
+ [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
22
+ - rolldown-plugin-dts:generate (68%)
23
+ - rolldown-plugin-dts:resolver (21%)
24
+ See https://rolldown.rs/options/checks#plugintimings for more details.
25
+
26
+ ✔ Build complete in 4949ms
18
27
  ℹ Hint: consider adding deps.onlyBundle option to avoid unintended bundling of dependencies, or set deps.onlyBundle: false to disable this hint.
19
28
  See more at https://tsdown.dev/options/dependencies#deps-onlybundle
20
29
  Detected dependencies in bundle:
21
30
  - @types/aws-lambda
22
- ℹ [CJS] dist/index.d.cts.map 4.95 kB │ gzip: 1.71 kB
23
- ℹ [CJS] dist/index2.d.cts.map 3.09 kB │ gzip: 1.06 kB
24
- ℹ [CJS] dist/stream-handler.entry.d.cts.map 0.16 kB │ gzip: 0.14 kB
25
- ℹ [CJS] dist/index2.d.cts 6.17 kB │ gzip: 1.82 kB
26
- ℹ [CJS] dist/stream-handler.entry.d.cts 0.25 kB │ gzip: 0.18 kB
27
- ℹ [CJS] dist/index.d.cts 9.85 kB │ gzip: 2.73 kB
28
- ℹ [CJS] 6 files, total: 24.46 kB
31
+ ℹ [CJS] dist/index.d.cts.map  7.95 kB │ gzip: 2.65 kB
32
+ ℹ [CJS] dist/index.d.cts 15.81 kB │ gzip: 4.29 kB
33
+ ℹ [CJS] 2 files, total: 23.76 kB
29
34
  [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
30
- - rolldown-plugin-dts:resolver (55%)
35
+ - rolldown-plugin-dts:resolver (50%)
31
36
  - rolldown-plugin-dts:generate (37%)
32
37
  See https://rolldown.rs/options/checks#plugintimings for more details.
33
38
 
34
- ✔ Build complete in 5098ms
35
- ℹ [ESM] dist/index.mjs  7.71 kB │ gzip: 2.46 kB
36
- ℹ [ESM] dist/stream-handler.entry.mjs  0.33 kB │ gzip: 0.23 kB
37
- ℹ [ESM] dist/index.mjs.map 18.56 kB │ gzip: 5.38 kB
38
- ℹ [ESM] dist/stream-handler.mjs.map  5.48 kB │ gzip: 1.96 kB
39
- ℹ [ESM] dist/index.d.mts.map  4.95 kB │ gzip: 1.71 kB
40
- ℹ [ESM] dist/index2.d.mts.map  3.09 kB │ gzip: 1.06 kB
41
- ℹ [ESM] dist/stream-handler.mjs  2.88 kB │ gzip: 1.07 kB
42
- ℹ [ESM] dist/stream-handler.entry.mjs.map  0.46 kB │ gzip: 0.32 kB
43
- ℹ [ESM] dist/stream-handler.entry.d.mts.map  0.16 kB │ gzip: 0.14 kB
44
- ℹ [ESM] dist/index2.d.mts  6.17 kB │ gzip: 1.82 kB
45
- ℹ [ESM] dist/stream-handler.entry.d.mts  0.25 kB │ gzip: 0.18 kB
46
- ℹ [ESM] dist/index.d.mts  9.85 kB │ gzip: 2.73 kB
47
- ℹ [ESM] 12 files, total: 59.88 kB
39
+ ✔ Build complete in 4978ms
40
+ [tsdown] Node.js v20.20.1 is deprecated. Support will be removed in the next minor release. Please upgrade to Node.js 22.18.0 or later.
41
+ ℹ tsdown v0.21.4 powered by rolldown v1.0.0-rc.9
42
+ ℹ entry: src/stream-handler.entry.ts
43
+ ℹ tsconfig: tsconfig.json
44
+ ℹ Build start
45
+ ℹ [CJS] dist/stream-handler.entry.cjs 3.28 kB │ gzip: 1.21 kB
46
+ ℹ [CJS] 1 files, total: 3.28 kB
47
+ ℹ Hint: consider adding deps.onlyBundle option to avoid unintended bundling of dependencies, or set deps.onlyBundle: false to disable this hint.
48
+ See more at https://tsdown.dev/options/dependencies#deps-onlybundle
49
+ Detected dependencies in bundle:
50
+ - @types/aws-lambda
51
+ ℹ Hint: consider adding deps.onlyBundle option to avoid unintended bundling of dependencies, or set deps.onlyBundle: false to disable this hint.
52
+ See more at https://tsdown.dev/options/dependencies#deps-onlybundle
53
+ Detected dependencies in bundle:
54
+ - @types/aws-lambda
55
+ ℹ [ESM] dist/stream-handler.entry.mjs 3.06 kB │ gzip: 1.14 kB
56
+ ℹ [ESM] dist/stream-handler.entry.mjs.map 5.85 kB │ gzip: 2.10 kB
57
+ ℹ [ESM] dist/stream-handler.entry.d.mts.map 3.62 kB │ gzip: 1.39 kB
58
+ ℹ [ESM] dist/stream-handler.entry.d.mts 8.19 kB │ gzip: 2.29 kB
59
+ ℹ [ESM] 4 files, total: 20.72 kB
60
+ ℹ [CJS] dist/stream-handler.entry.d.cts.map 3.62 kB │ gzip: 1.39 kB
61
+ ℹ [CJS] dist/stream-handler.entry.d.cts 8.19 kB │ gzip: 2.29 kB
62
+ ℹ [CJS] 2 files, total: 11.81 kB
63
+ [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
64
+ - rolldown-plugin-dts:resolver (43%)
65
+ - rolldown-plugin-dts:generate (40%)
66
+ - rolldown-plugin-dts:fake-js (17%)
67
+ See https://rolldown.rs/options/checks#plugintimings for more details.
68
+
48
69
  [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
49
- - rolldown-plugin-dts:resolver (46%)
50
- - rolldown-plugin-dts:generate (42%)
70
+ - rolldown-plugin-dts:resolver (43%)
71
+ - rolldown-plugin-dts:generate (41%)
51
72
  See https://rolldown.rs/options/checks#plugintimings for more details.
52
73
 
53
- ✔ Build complete in 5101ms
74
+ ✔ Build complete in 3832ms
75
+ ✔ Build complete in 3833ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @auriclabs/events
2
2
 
3
+ ## 0.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - adb821b: Fix broken type declarations by splitting tsdown into separate invocations to avoid DTS
8
+ code-splitting bug with multiple entry points.
9
+
3
10
  ## 0.4.0
4
11
 
5
12
  ### Minor Changes
package/dist/index.cjs CHANGED
@@ -1,11 +1,14 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_stream_handler = require("./stream-handler.cjs");
3
2
  let _auriclabs_pagination = require("@auriclabs/pagination");
4
3
  let _aws_sdk_client_dynamodb = require("@aws-sdk/client-dynamodb");
5
4
  let _aws_sdk_lib_dynamodb = require("@aws-sdk/lib-dynamodb");
6
5
  let _auriclabs_api_core = require("@auriclabs/api-core");
7
6
  let _auriclabs_logger = require("@auriclabs/logger");
8
7
  let ulid = require("ulid");
8
+ let _aws_sdk_client_eventbridge = require("@aws-sdk/client-eventbridge");
9
+ let _aws_sdk_client_sqs = require("@aws-sdk/client-sqs");
10
+ let _aws_sdk_util_dynamodb = require("@aws-sdk/util-dynamodb");
11
+ let lodash_es = require("lodash-es");
9
12
  //#region src/event-service.ts
10
13
  const ddb = _aws_sdk_lib_dynamodb.DynamoDBDocumentClient.from(new _aws_sdk_client_dynamodb.DynamoDBClient(), { marshallOptions: { removeUndefinedValues: true } });
11
14
  const pad = (n, w = 9) => String(n).padStart(w, "0");
@@ -222,11 +225,91 @@ const createEventListener = (eventHandlers, { debug = false } = {}) => async (sq
222
225
  return response;
223
226
  };
224
227
  //#endregion
228
+ //#region src/stream-handler.ts
229
+ const BATCH_SIZE = 10;
230
+ /**
231
+ * Creates a Lambda handler for DynamoDB stream events.
232
+ * Processes INSERT events from the event store table and forwards them to SQS queues and EventBridge.
233
+ */
234
+ function createStreamHandler(config) {
235
+ const sqsClient = new _aws_sdk_client_sqs.SQSClient();
236
+ const eventBridge = new _aws_sdk_client_eventbridge.EventBridgeClient({});
237
+ function chunkArray(array, chunkSize) {
238
+ const chunks = [];
239
+ for (let i = 0; i < array.length; i += chunkSize) chunks.push(array.slice(i, i + chunkSize));
240
+ return chunks;
241
+ }
242
+ async function sendToQueuesBatch(eventRecords) {
243
+ await Promise.all(config.queueUrls.map((queue) => sendToQueueBatch(eventRecords, queue)));
244
+ }
245
+ async function sendToQueueBatch(eventRecords, queue) {
246
+ const batches = chunkArray(eventRecords, BATCH_SIZE);
247
+ for (const batch of batches) try {
248
+ const entries = batch.map((eventRecord, index) => ({
249
+ Id: `${eventRecord.eventId}-${index}`,
250
+ MessageBody: JSON.stringify(eventRecord),
251
+ MessageGroupId: eventRecord.aggregateId,
252
+ MessageDeduplicationId: eventRecord.eventId
253
+ }));
254
+ await sqsClient.send(new _aws_sdk_client_sqs.SendMessageBatchCommand({
255
+ QueueUrl: queue,
256
+ Entries: entries
257
+ }));
258
+ } catch (error) {
259
+ _auriclabs_logger.logger.error({
260
+ error,
261
+ batch,
262
+ queue
263
+ }, "Error sending batch to queue");
264
+ throw error;
265
+ }
266
+ }
267
+ async function sendToBusBatch(eventRecords) {
268
+ const batches = chunkArray(eventRecords, BATCH_SIZE);
269
+ for (const batch of batches) try {
270
+ const entries = batch.map((eventRecord) => {
271
+ return {
272
+ Source: eventRecord.source ?? (0, lodash_es.kebabCase)(eventRecord.aggregateType.split(".")[0]),
273
+ DetailType: eventRecord.eventType,
274
+ Detail: JSON.stringify(eventRecord),
275
+ EventBusName: config.busName
276
+ };
277
+ });
278
+ await eventBridge.send(new _aws_sdk_client_eventbridge.PutEventsCommand({ Entries: entries }));
279
+ } catch (error) {
280
+ _auriclabs_logger.logger.error({
281
+ error,
282
+ batch
283
+ }, "Error sending batch to bus");
284
+ throw error;
285
+ }
286
+ }
287
+ return async (event) => {
288
+ const eventRecords = event.Records.filter((record) => record.eventName === "INSERT").map((record) => {
289
+ try {
290
+ const data = record.dynamodb?.NewImage;
291
+ return (0, _aws_sdk_util_dynamodb.unmarshall)(data);
292
+ } catch (error) {
293
+ _auriclabs_logger.logger.error({
294
+ error,
295
+ record
296
+ }, "Error unmarshalling event record");
297
+ return;
298
+ }
299
+ }).filter((eventRecord) => eventRecord?.itemType === "event");
300
+ if (eventRecords.length > 0) {
301
+ const tasks = [sendToQueuesBatch(eventRecords)];
302
+ if (config.busName) tasks.push(sendToBusBatch(eventRecords));
303
+ await Promise.all(tasks);
304
+ }
305
+ };
306
+ }
307
+ //#endregion
225
308
  exports.appendEventContext = appendEventContext;
226
309
  exports.createDispatch = createDispatch;
227
310
  exports.createEventListener = createEventListener;
228
311
  exports.createEventService = createEventService;
229
- exports.createStreamHandler = require_stream_handler.createStreamHandler;
312
+ exports.createStreamHandler = createStreamHandler;
230
313
  exports.dispatchEvent = dispatchEvent;
231
314
  exports.dispatchEvents = dispatchEvents;
232
315
  exports.getEventContext = getEventContext;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,130 @@
1
+ import { PaginationResponse } from "@auriclabs/pagination";
1
2
  import { Writable } from "node:stream";
2
3
 
4
+ //#region src/types.d.ts
5
+ type Brand<T, B extends string> = T & {
6
+ readonly __brand: B;
7
+ };
8
+ type Source = Brand<string, 'Source'>;
9
+ type AggregateId = Brand<string, 'AggregateId'>;
10
+ type AggregateType = Brand<string, 'AggregateType'>;
11
+ type EventId = Brand<string, 'EventId'>;
12
+ type AggregatePK = `AGG#${string}#${string}`;
13
+ type EventSK = `EVT#${string}` | 'HEAD';
14
+ type ItemType = 'event' | 'head';
15
+ interface EventRecord<P = unknown> {
16
+ /** DynamoDB keys */
17
+ pk: AggregatePK;
18
+ sk: EventSK;
19
+ itemType: Extract<ItemType, 'event'>;
20
+ /** Aggregate routing */
21
+ source: Source;
22
+ aggregateId: AggregateId;
23
+ aggregateType: AggregateType;
24
+ version: number;
25
+ /** Tenant isolation */
26
+ tenantId: string;
27
+ /** Event identity & semantics */
28
+ eventId: EventId;
29
+ eventType: string;
30
+ schemaVersion?: number;
31
+ occurredAt: string;
32
+ /** Tracing (optional) */
33
+ correlationId?: string;
34
+ causationId?: string;
35
+ actorId?: string;
36
+ /** Domain payload */
37
+ payload: Readonly<P>;
38
+ }
39
+ interface AggregateHead {
40
+ /** DynamoDB keys */
41
+ pk: AggregatePK;
42
+ sk: 'HEAD';
43
+ itemType: Extract<ItemType, 'head'>;
44
+ /** Aggregate identity */
45
+ aggregateId: AggregateId;
46
+ aggregateType: AggregateType;
47
+ /** Version tracking */
48
+ currentVersion: number;
49
+ /** Idempotency/debug */
50
+ lastEventId?: EventId;
51
+ lastIdemKey?: string;
52
+ updatedAt: string;
53
+ }
54
+ type EventHandlers = Record<string, ((event: EventRecord<any>) => Promise<void> | void) | string>;
55
+ //#endregion
56
+ //#region src/event-service.d.ts
57
+ interface AppendArgs<P = unknown> {
58
+ tenantId: string;
59
+ aggregateType: string;
60
+ aggregateId: string;
61
+ source: string;
62
+ /** Version you observed before appending (0 for brand new) */
63
+ expectedVersion: number;
64
+ /** Required for idempotent retries (e.g., the command id) */
65
+ idempotencyKey: string;
66
+ eventId: string;
67
+ eventType: string;
68
+ occurredAt?: string;
69
+ payload?: Readonly<P>;
70
+ schemaVersion?: number;
71
+ correlationId?: string;
72
+ causationId?: string;
73
+ actorId?: string;
74
+ }
75
+ interface AppendEventResult {
76
+ pk: string;
77
+ sk: string;
78
+ version: number;
79
+ }
80
+ interface EventService {
81
+ appendEvent<P = unknown>(args: AppendArgs<P>): Promise<AppendEventResult>;
82
+ getHead(aggregateType: string, aggregateId: string): Promise<AggregateHead | undefined>;
83
+ getEvent(aggregateType: string, aggregateId: string, version: number): Promise<EventRecord | undefined>;
84
+ listEvents(params: {
85
+ aggregateType: string;
86
+ aggregateId: string;
87
+ fromVersionExclusive?: number;
88
+ toVersionInclusive?: number;
89
+ limit?: number;
90
+ }): Promise<PaginationResponse<EventRecord>>;
91
+ }
92
+ declare function createEventService(tableName: string): EventService;
93
+ //#endregion
94
+ //#region src/init.d.ts
95
+ declare function initEvents(config: {
96
+ tableName: string;
97
+ }): void;
98
+ declare function getEventService(): EventService;
99
+ //#endregion
100
+ //#region src/context.d.ts
101
+ type EventContext = Partial<AppendArgs>;
102
+ declare const setEventContext: (newContext: EventContext) => void;
103
+ declare const getEventContext: () => Partial<AppendArgs<unknown>>;
104
+ declare const resetEventContext: () => void;
105
+ declare const appendEventContext: (event: EventContext) => void;
106
+ //#endregion
107
+ //#region src/dispatch-event.d.ts
108
+ type DispatchEventArgs = Omit<AppendArgs, 'eventId' | 'expectedVersion' | 'schemaVersion' | 'occurredAt' | 'idempotencyKey'> & Partial<Pick<AppendArgs, 'idempotencyKey' | 'eventId'>>;
109
+ declare const dispatchEvent: (event: DispatchEventArgs) => Promise<AppendEventResult>;
110
+ //#endregion
111
+ //#region src/dispatch-events.d.ts
112
+ interface DispatchEventsArgs {
113
+ inOrder?: boolean;
114
+ }
115
+ declare const dispatchEvents: (events: DispatchEventArgs[], {
116
+ inOrder
117
+ }?: DispatchEventsArgs) => Promise<void>;
118
+ //#endregion
119
+ //#region src/create-dispatch.d.ts
120
+ type MakePartial<T, O> = Omit<T, keyof O> & Partial<O>;
121
+ type DispatchRecord<Options extends Partial<DispatchEventArgs> = Partial<DispatchEventArgs>> = Record<string, (...args: any[]) => ValueOrFactoryRecord<MakePartial<DispatchEventArgs, Options>> | DispatchEventArgsFactory<Options>>;
122
+ type ValueOrFactory<T> = T | ((context: EventContext) => T);
123
+ type ValueOrFactoryRecord<T> = { [K in keyof T]: ValueOrFactory<T[K]> };
124
+ type DispatchEventArgsFactory<Options extends Partial<DispatchEventArgs>> = (context: EventContext) => MakePartial<DispatchEventArgs, Options>;
125
+ type DispatchRecordResponse<R extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>> = { [K in keyof R]: (...args: Parameters<R[K]>) => Promise<AppendEventResult> };
126
+ declare function createDispatch<DR extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>>(record: DR, optionsOrFactory?: ValueOrFactoryRecord<O> | ((context: EventContext) => O)): DispatchRecordResponse<DR, O>;
127
+ //#endregion
3
128
  //#region ../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts
4
129
  /**
5
130
  * {@link Handler} context parameter.
@@ -232,5 +357,24 @@ interface SQSBatchItemFailure {
232
357
  itemIdentifier: string;
233
358
  }
234
359
  //#endregion
235
- export { SQSEvent as n, DynamoDBStreamEvent as r, SQSBatchResponse as t };
360
+ //#region src/create-event-listener.d.ts
361
+ interface CreateEventListenerOptions {
362
+ debug?: boolean;
363
+ }
364
+ declare const createEventListener: (eventHandlers: EventHandlers, {
365
+ debug
366
+ }?: CreateEventListenerOptions) => (sqsEvent: SQSEvent) => Promise<SQSBatchResponse>;
367
+ //#endregion
368
+ //#region src/stream-handler.d.ts
369
+ interface CreateStreamHandlerConfig {
370
+ busName?: string;
371
+ queueUrls: string[];
372
+ }
373
+ /**
374
+ * Creates a Lambda handler for DynamoDB stream events.
375
+ * Processes INSERT events from the event store table and forwards them to SQS queues and EventBridge.
376
+ */
377
+ declare function createStreamHandler(config: CreateStreamHandlerConfig): (event: DynamoDBStreamEvent) => Promise<void>;
378
+ //#endregion
379
+ export { AggregateHead, AggregateId, AggregatePK, AggregateType, AppendArgs, AppendEventResult, Brand, CreateEventListenerOptions, CreateStreamHandlerConfig, DispatchEventArgs, DispatchEventArgsFactory, DispatchEventsArgs, DispatchRecord, DispatchRecordResponse, EventContext, EventHandlers, EventId, EventRecord, EventSK, EventService, ItemType, MakePartial, Source, ValueOrFactory, ValueOrFactoryRecord, appendEventContext, createDispatch, createEventListener, createEventService, createStreamHandler, dispatchEvent, dispatchEvents, getEventContext, getEventService, initEvents, resetEventContext, setEventContext };
236
380
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":["Writable","Handler","TEvent","TResult","Context","Callback","Promise","event","context","callback","CognitoIdentity","ClientContext","Error","callbackWaitsForEmptyEventLoop","functionName","functionVersion","invokedFunctionArn","memoryLimitInMB","awsRequestId","logGroupName","logStreamName","identity","clientContext","tenantId","getRemainingTimeInMillis","done","error","result","fail","succeed","messageOrObject","message","object","cognitoIdentityId","cognitoIdentityPoolId","ClientContextClient","ClientContextEnv","client","Custom","env","installationId","appTitle","appVersionName","appVersionCode","appPackageName","platformVersion","platform","make","model","locale","StreamifyHandler","awslambda","HttpResponseStream","responseStream","_0","Record","global","from","writable","metadata","setContentType","contentType","streamifyResponse","handler","sideEffect","Handler","DynamoDBStreamHandler","DynamoDBStreamEvent","DynamoDBBatchResponse","AttributeValue","B","BS","BOOL","L","M","id","N","NS","NULL","S","SS","StreamRecord","ApproximateCreationDateTime","Keys","key","NewImage","OldImage","SequenceNumber","SizeBytes","StreamViewType","DynamoDBRecord","awsRegion","dynamodb","eventID","eventName","eventSource","eventSourceARN","eventVersion","userIdentity","Records","DynamoDBBatchItemFailure","batchItemFailures","itemIdentifier","Handler","SQSHandler","SQSEvent","SQSBatchResponse","SQSRecord","SQSRecordAttributes","SQSMessageAttributes","messageId","receiptHandle","body","attributes","messageAttributes","md5OfBody","md5OfMessageAttributes","eventSource","eventSourceARN","awsRegion","Records","AWSTraceHeader","ApproximateReceiveCount","SentTimestamp","SenderId","ApproximateFirstReceiveTimestamp","SequenceNumber","MessageGroupId","MessageDeduplicationId","DeadLetterQueueSourceArn","SQSMessageAttributeDataType","SQSMessageAttribute","stringValue","binaryValue","stringListValues","binaryListValues","dataType","name","SQSBatchItemFailure","batchItemFailures","itemIdentifier"],"sources":["../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/dynamodb-stream.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/sqs.d.ts"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":["Writable","Handler","TEvent","TResult","Context","Callback","Promise","event","context","callback","CognitoIdentity","ClientContext","Error","callbackWaitsForEmptyEventLoop","functionName","functionVersion","invokedFunctionArn","memoryLimitInMB","awsRequestId","logGroupName","logStreamName","identity","clientContext","tenantId","getRemainingTimeInMillis","done","error","result","fail","succeed","messageOrObject","message","object","cognitoIdentityId","cognitoIdentityPoolId","ClientContextClient","ClientContextEnv","client","Custom","env","installationId","appTitle","appVersionName","appVersionCode","appPackageName","platformVersion","platform","make","model","locale","StreamifyHandler","awslambda","HttpResponseStream","responseStream","_0","Record","global","from","writable","metadata","setContentType","contentType","streamifyResponse","handler","sideEffect","Handler","DynamoDBStreamHandler","DynamoDBStreamEvent","DynamoDBBatchResponse","AttributeValue","B","BS","BOOL","L","M","id","N","NS","NULL","S","SS","StreamRecord","ApproximateCreationDateTime","Keys","key","NewImage","OldImage","SequenceNumber","SizeBytes","StreamViewType","DynamoDBRecord","awsRegion","dynamodb","eventID","eventName","eventSource","eventSourceARN","eventVersion","userIdentity","Records","DynamoDBBatchItemFailure","batchItemFailures","itemIdentifier","Handler","SQSHandler","SQSEvent","SQSBatchResponse","SQSRecord","SQSRecordAttributes","SQSMessageAttributes","messageId","receiptHandle","body","attributes","messageAttributes","md5OfBody","md5OfMessageAttributes","eventSource","eventSourceARN","awsRegion","Records","AWSTraceHeader","ApproximateReceiveCount","SentTimestamp","SenderId","ApproximateFirstReceiveTimestamp","SequenceNumber","MessageGroupId","MessageDeduplicationId","DeadLetterQueueSourceArn","SQSMessageAttributeDataType","SQSMessageAttribute","stringValue","binaryValue","stringListValues","binaryListValues","dataType","name","SQSBatchItemFailure","batchItemFailures","itemIdentifier"],"sources":["../src/types.ts","../src/event-service.ts","../src/init.ts","../src/context.ts","../src/dispatch-event.ts","../src/dispatch-events.ts","../src/create-dispatch.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/dynamodb-stream.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/sqs.d.ts","../src/create-event-listener.ts","../src/stream-handler.ts"],"x_google_ignoreList":[7,8,9],"mappings":";;;;KACY,KAAA,wBAA6B,CAAA;EAAA,SAAe,OAAA,EAAS,CAAA;AAAA;AAAA,KACrD,MAAA,GAAS,KAAA;AAAA,KACT,WAAA,GAAc,KAAA;AAAA,KACd,aAAA,GAAgB,KAAA;AAAA,KAChB,OAAA,GAAU,KAAA;AAAA,KAGV,WAAA;AAAA,KACA,OAAA;AAAA,KACA,QAAA;AAAA,UAGK,WAAA;EAZuC;EActD,EAAA,EAAI,WAAA;EACJ,EAAA,EAAI,OAAA;EACJ,QAAA,EAAU,OAAA,CAAQ,QAAA;EAfR;EAkBV,MAAA,EAAQ,MAAA;EACR,WAAA,EAAa,WAAA;EACb,aAAA,EAAe,aAAA;EACf,OAAA;EApBU;EAuBV,QAAA;;EAGA,OAAA,EAAS,OAAA;EACT,SAAA;EACA,aAAA;EACA,UAAA;;EAGA,aAAA;EACA,WAAA;EACA,OAAA;EAhCiB;EAmCjB,OAAA,EAAS,QAAA,CAAS,CAAA;AAAA;AAAA,UAIH,aAAA;EApCL;EAsCV,EAAA,EAAI,WAAA;EACJ,EAAA;EACA,QAAA,EAAU,OAAA,CAAQ,QAAA;EAxCG;EA2CrB,WAAA,EAAa,WAAA;EACb,aAAA,EAAe,aAAA;;EAGf,cAAA;EA9CiB;EAiDjB,WAAA,GAAc,OAAA;EACd,WAAA;EACA,SAAA;AAAA;AAAA,KAGU,aAAA,GAAgB,MAAA,WAGxB,KAAA,EAAO,WAAA,UAAqB,OAAA;;;UCpCf,UAAA;EACf,QAAA;EACA,aAAA;EACA,WAAA;EACA,MAAA;EDjCgE;ECmChE,eAAA;EDnCmB;ECqCnB,cAAA;EAGA,OAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA,GAAU,QAAA,CAAS,CAAA;EACnB,aAAA;EAGA,aAAA;EACA,WAAA;EACA,OAAA;AAAA;AAAA,UAGe,iBAAA;EACf,EAAA;EACA,EAAA;EACA,OAAA;AAAA;AAAA,UAGe,YAAA;EACf,WAAA,cAAyB,IAAA,EAAM,UAAA,CAAW,CAAA,IAAK,OAAA,CAAQ,iBAAA;EACvD,OAAA,CAAQ,aAAA,UAAuB,WAAA,WAAsB,OAAA,CAAQ,aAAA;EAC7D,QAAA,CACE,aAAA,UACA,WAAA,UACA,OAAA,WACC,OAAA,CAAQ,WAAA;EACX,UAAA,CAAW,MAAA;IACT,aAAA;IACA,WAAA;IACA,oBAAA;IACA,kBAAA;IACA,KAAA;EAAA,IACE,OAAA,CAAQ,kBAAA,CAAmB,WAAA;AAAA;AAAA,iBAGjB,kBAAA,CAAmB,SAAA,WAAoB,YAAA;;;iBCxEvC,UAAA,CAAW,MAAA;EAAU,SAAA;AAAA;AAAA,iBAIrB,eAAA,CAAA,GAAmB,YAAA;;;KCNvB,YAAA,GAAe,OAAA,CAAQ,UAAA;AAAA,cAItB,eAAA,GAAmB,UAAA,EAAY,YAAA;AAAA,cAI/B,eAAA,QAAe,OAAA,CAAA,UAAA;AAAA,cAEf,iBAAA;AAAA,cAIA,kBAAA,GAAsB,KAAA,EAAO,YAAA;;;KCR9B,iBAAA,GAAoB,IAAA,CAC9B,UAAA,uFAGA,OAAA,CAAQ,IAAA,CAAK,UAAA;AAAA,cAEF,aAAA,GAAuB,KAAA,EAAO,iBAAA,KAAoB,OAAA,CAAQ,iBAAA;;;UCZtD,kBAAA;EACf,OAAA;AAAA;AAAA,cAGW,cAAA,GACX,MAAA,EAAQ,iBAAA;EACR;AAAA,IAAqB,kBAAA,KAAuB,OAAA;;;KCFlC,WAAA,SAAoB,IAAA,CAAK,CAAA,QAAS,CAAA,IAAK,OAAA,CAAQ,CAAA;AAAA,KAE/C,cAAA,iBACM,OAAA,CAAQ,iBAAA,IAAqB,OAAA,CAAQ,iBAAA,KACnD,MAAA,aAGG,IAAA,YAED,oBAAA,CAAqB,WAAA,CAAY,iBAAA,EAAmB,OAAA,KACpD,wBAAA,CAAyB,OAAA;AAAA,KAGnB,cAAA,MAAoB,CAAA,KAAM,OAAA,EAAS,YAAA,KAAiB,CAAA;AAAA,KACpD,oBAAA,oBACE,CAAA,GAAI,cAAA,CAAe,CAAA,CAAE,CAAA;AAAA,KAGvB,wBAAA,iBAAyC,OAAA,CAAQ,iBAAA,MAC3D,OAAA,EAAS,YAAA,KACN,WAAA,CAAY,iBAAA,EAAmB,OAAA;AAAA,KAExB,sBAAA,WACA,cAAA,CAAe,CAAA,aACf,OAAA,CAAQ,iBAAA,mBAEN,CAAA,OAAQ,IAAA,EAAM,UAAA,CAAW,CAAA,CAAE,CAAA,OAAQ,OAAA,CAAQ,iBAAA;AAAA,iBAGzC,cAAA,YAA0B,cAAA,CAAe,CAAA,aAAc,OAAA,CAAQ,iBAAA,EAAA,CAC7E,MAAA,EAAQ,EAAA,EACR,gBAAA,GAAmB,oBAAA,CAAqB,CAAA,MAAO,OAAA,EAAS,YAAA,KAAiB,CAAA,IACxE,sBAAA,CAAuB,EAAA,EAAI,CAAA;;;;;;ANM9B;UOmDiBI,OAAAA;EACbS,8BAAAA;EACAC,YAAAA;EACAC,eAAAA;EACAC,kBAAAA;EACAC,eAAAA;EACAC,YAAAA;EACAC,YAAAA;EACAC,aAAAA;EACAC,QAAAA,GAAWX,eAAAA;EACXY,aAAAA,GAAgBX,aAAAA;EAChBY,QAAAA;EAEAC,wBAAAA;EAAAA;EAAAA;EPxDa;EO+DbC,IAAAA,CAAKC,KAAAA,GAAQd,KAAAA,EAAOe,MAAAA;EPzDtB;EO2DEC,IAAAA,CAAKF,KAAAA,EAAOd,KAAAA;EP1Dd;EO4DEiB,OAAAA,CAAQC,eAAAA;EAAAA;EPxDA;EO4DRD,OAAAA,CAAQE,OAAAA,UAAiBC,MAAAA;AAAAA;AAAAA,UAGZtB,eAAAA;EACbuB,iBAAAA;EACAC,qBAAAA;AAAAA;AAAAA,UAGavB,aAAAA;EACb0B,MAAAA,EAAQF,mBAAAA;EACRG,MAAAA;EACAC,GAAAA,EAAKH,gBAAAA;AAAAA;AAAAA,UAGQD,mBAAAA;EACbK,cAAAA;EACAC,QAAAA;EACAC,cAAAA;EACAC,cAAAA;EACAC,cAAAA;AAAAA;AAAAA,UAGaR,gBAAAA;EACbS,eAAAA;EACAC,QAAAA;EACAC,IAAAA;EACAC,KAAAA;EACAC,MAAAA;AAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6DQC,gBAAAA,iCACR3C,KAAAA,EAAOL,MAAAA,EACPmD,cAAAA,EAAgBF,SAAAA,CAAUC,kBAAAA,EAC1B5C,OAAAA,EAASJ,OAAAA,KACRD,OAAAA,GAAUG,OAAAA,CAAQH,OAAAA;AAAAA,QAEfqD,MAAAA;EAAAA,UACML,SAAAA;IAAAA,MACAC,kBAAAA,SAA2BpD,QAAAA;MAAAA,OACtByD,IAAAA,CACHC,QAAAA,EAAU1D,QAAAA,EACV2D,QAAAA,EAAUJ,MAAAA,oBACXH,kBAAAA;MACHQ,cAAAA,GAAiBC,WAAAA;IAAAA;IL5NH;;;AAI1B;;;;;;;;ACNA;;;;;AAIA;;;;;AAIA;;;;;AAEA;;;;;AAIA;;;;;IDZ0B,SKmQTC,iBAAAA,8BAAAA,CACLC,OAAAA,EAASb,gBAAAA,CAAiBhD,MAAAA,EAAQC,OAAAA,IACnC+C,gBAAAA,CAAiBhD,MAAAA,EAAQC,OAAAA;EAAAA;AAAAA;;;;UCnQnBkE,cAAAA;EACbC,CAAAA;EACAC,EAAAA;EACAC,IAAAA;EACAC,CAAAA,GAAIJ,cAAAA;EACJK,CAAAA;IAAAA,CAAOC,EAAAA,WAAaN,cAAAA;EAAAA;EACpBO,CAAAA;EACAC,EAAAA;EACAC,IAAAA;EACAC,CAAAA;EACAC,EAAAA;AAAAA;AAAAA;AAAAA,UAIaC,YAAAA;EACbC,2BAAAA;EACAC,IAAAA;IAAAA,CAAUC,GAAAA,WAAcf,cAAAA;EAAAA;EACxBgB,QAAAA;IAAAA,CAAcD,GAAAA,WAAcf,cAAAA;EAAAA;EAC5BiB,QAAAA;IAAAA,CAAcF,GAAAA,WAAcf,cAAAA;EAAAA;EAC5BkB,cAAAA;EACAC,SAAAA;EACAC,cAAAA;AAAAA;AAAAA;AAAAA,UAIaC,cAAAA;EACbC,SAAAA;EACAC,QAAAA,GAAWX,YAAAA;EACXY,OAAAA;EACAC,SAAAA;EACAC,WAAAA;EACAC,cAAAA;EACAC,YAAAA;EACAC,YAAAA;AAAAA;AAAAA;AAAAA,UAIa/B,mBAAAA;EACbgC,OAAAA,EAAST,cAAAA;AAAAA;;;;;UCrCIiB,SAAAA;EACbG,SAAAA;EACAC,aAAAA;EACAC,IAAAA;EACAC,UAAAA,EAAYL,mBAAAA;EACZM,iBAAAA,EAAmBL,oBAAAA;EACnBM,SAAAA;EACAC,sBAAAA;EACAC,WAAAA;EACAC,cAAAA;EACAC,SAAAA;AAAAA;AAAAA,UAGad,QAAAA;EACbe,OAAAA,EAASb,SAAAA;AAAAA;AAAAA,UAGIC,mBAAAA;EACba,cAAAA;EACAC,uBAAAA;EACAC,aAAAA;EACAC,QAAAA;EACAC,gCAAAA;EACAC,cAAAA;EACAC,cAAAA;EACAC,sBAAAA;EACAC,wBAAAA;AAAAA;AAAAA,KAGQC,2BAAAA;AAAAA,UAEKC,mBAAAA;EACbC,WAAAA;EACAC,WAAAA;EACAC,gBAAAA;EACAC,gBAAAA;EACAC,QAAAA,EAAUN,2BAAAA;AAAAA;AAAAA,UAGGrB,oBAAAA;EAAAA,CACZ4B,IAAAA,WAAeN,mBAAAA;AAAAA;AAAAA;AAAAA,UAIHzB,gBAAAA;EACbiC,iBAAAA,EAAmBD,mBAAAA;AAAAA;AAAAA,UAGNA,mBAAAA;EACbE,cAAAA;AAAAA;;;UClDa,0BAAA;EACf,KAAA;AAAA;AAAA,cAGW,mBAAA,GACV,aAAA,EAAe,aAAA;EAAe;AAAA,IAAmB,0BAAA,MAC3C,QAAA,EAAU,QAAA,KAAQ,OAAA,CAAA,gBAAA;;;UCAV,yBAAA;EACf,OAAA;EACA,SAAA;AAAA;;;;;iBAOc,mBAAA,CAAoB,MAAA,EAAQ,yBAAA,IAqE5B,KAAA,EAAO,mBAAA,KAAsB,OAAA"}
package/dist/index.d.mts CHANGED
@@ -1,5 +1,130 @@
1
+ import { PaginationResponse } from "@auriclabs/pagination";
1
2
  import { Writable } from "node:stream";
2
3
 
4
+ //#region src/types.d.ts
5
+ type Brand<T, B extends string> = T & {
6
+ readonly __brand: B;
7
+ };
8
+ type Source = Brand<string, 'Source'>;
9
+ type AggregateId = Brand<string, 'AggregateId'>;
10
+ type AggregateType = Brand<string, 'AggregateType'>;
11
+ type EventId = Brand<string, 'EventId'>;
12
+ type AggregatePK = `AGG#${string}#${string}`;
13
+ type EventSK = `EVT#${string}` | 'HEAD';
14
+ type ItemType = 'event' | 'head';
15
+ interface EventRecord<P = unknown> {
16
+ /** DynamoDB keys */
17
+ pk: AggregatePK;
18
+ sk: EventSK;
19
+ itemType: Extract<ItemType, 'event'>;
20
+ /** Aggregate routing */
21
+ source: Source;
22
+ aggregateId: AggregateId;
23
+ aggregateType: AggregateType;
24
+ version: number;
25
+ /** Tenant isolation */
26
+ tenantId: string;
27
+ /** Event identity & semantics */
28
+ eventId: EventId;
29
+ eventType: string;
30
+ schemaVersion?: number;
31
+ occurredAt: string;
32
+ /** Tracing (optional) */
33
+ correlationId?: string;
34
+ causationId?: string;
35
+ actorId?: string;
36
+ /** Domain payload */
37
+ payload: Readonly<P>;
38
+ }
39
+ interface AggregateHead {
40
+ /** DynamoDB keys */
41
+ pk: AggregatePK;
42
+ sk: 'HEAD';
43
+ itemType: Extract<ItemType, 'head'>;
44
+ /** Aggregate identity */
45
+ aggregateId: AggregateId;
46
+ aggregateType: AggregateType;
47
+ /** Version tracking */
48
+ currentVersion: number;
49
+ /** Idempotency/debug */
50
+ lastEventId?: EventId;
51
+ lastIdemKey?: string;
52
+ updatedAt: string;
53
+ }
54
+ type EventHandlers = Record<string, ((event: EventRecord<any>) => Promise<void> | void) | string>;
55
+ //#endregion
56
+ //#region src/event-service.d.ts
57
+ interface AppendArgs<P = unknown> {
58
+ tenantId: string;
59
+ aggregateType: string;
60
+ aggregateId: string;
61
+ source: string;
62
+ /** Version you observed before appending (0 for brand new) */
63
+ expectedVersion: number;
64
+ /** Required for idempotent retries (e.g., the command id) */
65
+ idempotencyKey: string;
66
+ eventId: string;
67
+ eventType: string;
68
+ occurredAt?: string;
69
+ payload?: Readonly<P>;
70
+ schemaVersion?: number;
71
+ correlationId?: string;
72
+ causationId?: string;
73
+ actorId?: string;
74
+ }
75
+ interface AppendEventResult {
76
+ pk: string;
77
+ sk: string;
78
+ version: number;
79
+ }
80
+ interface EventService {
81
+ appendEvent<P = unknown>(args: AppendArgs<P>): Promise<AppendEventResult>;
82
+ getHead(aggregateType: string, aggregateId: string): Promise<AggregateHead | undefined>;
83
+ getEvent(aggregateType: string, aggregateId: string, version: number): Promise<EventRecord | undefined>;
84
+ listEvents(params: {
85
+ aggregateType: string;
86
+ aggregateId: string;
87
+ fromVersionExclusive?: number;
88
+ toVersionInclusive?: number;
89
+ limit?: number;
90
+ }): Promise<PaginationResponse<EventRecord>>;
91
+ }
92
+ declare function createEventService(tableName: string): EventService;
93
+ //#endregion
94
+ //#region src/init.d.ts
95
+ declare function initEvents(config: {
96
+ tableName: string;
97
+ }): void;
98
+ declare function getEventService(): EventService;
99
+ //#endregion
100
+ //#region src/context.d.ts
101
+ type EventContext = Partial<AppendArgs>;
102
+ declare const setEventContext: (newContext: EventContext) => void;
103
+ declare const getEventContext: () => Partial<AppendArgs<unknown>>;
104
+ declare const resetEventContext: () => void;
105
+ declare const appendEventContext: (event: EventContext) => void;
106
+ //#endregion
107
+ //#region src/dispatch-event.d.ts
108
+ type DispatchEventArgs = Omit<AppendArgs, 'eventId' | 'expectedVersion' | 'schemaVersion' | 'occurredAt' | 'idempotencyKey'> & Partial<Pick<AppendArgs, 'idempotencyKey' | 'eventId'>>;
109
+ declare const dispatchEvent: (event: DispatchEventArgs) => Promise<AppendEventResult>;
110
+ //#endregion
111
+ //#region src/dispatch-events.d.ts
112
+ interface DispatchEventsArgs {
113
+ inOrder?: boolean;
114
+ }
115
+ declare const dispatchEvents: (events: DispatchEventArgs[], {
116
+ inOrder
117
+ }?: DispatchEventsArgs) => Promise<void>;
118
+ //#endregion
119
+ //#region src/create-dispatch.d.ts
120
+ type MakePartial<T, O> = Omit<T, keyof O> & Partial<O>;
121
+ type DispatchRecord<Options extends Partial<DispatchEventArgs> = Partial<DispatchEventArgs>> = Record<string, (...args: any[]) => ValueOrFactoryRecord<MakePartial<DispatchEventArgs, Options>> | DispatchEventArgsFactory<Options>>;
122
+ type ValueOrFactory<T> = T | ((context: EventContext) => T);
123
+ type ValueOrFactoryRecord<T> = { [K in keyof T]: ValueOrFactory<T[K]> };
124
+ type DispatchEventArgsFactory<Options extends Partial<DispatchEventArgs>> = (context: EventContext) => MakePartial<DispatchEventArgs, Options>;
125
+ type DispatchRecordResponse<R extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>> = { [K in keyof R]: (...args: Parameters<R[K]>) => Promise<AppendEventResult> };
126
+ declare function createDispatch<DR extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>>(record: DR, optionsOrFactory?: ValueOrFactoryRecord<O> | ((context: EventContext) => O)): DispatchRecordResponse<DR, O>;
127
+ //#endregion
3
128
  //#region ../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts
4
129
  /**
5
130
  * {@link Handler} context parameter.
@@ -232,5 +357,24 @@ interface SQSBatchItemFailure {
232
357
  itemIdentifier: string;
233
358
  }
234
359
  //#endregion
235
- export { SQSEvent as n, DynamoDBStreamEvent as r, SQSBatchResponse as t };
360
+ //#region src/create-event-listener.d.ts
361
+ interface CreateEventListenerOptions {
362
+ debug?: boolean;
363
+ }
364
+ declare const createEventListener: (eventHandlers: EventHandlers, {
365
+ debug
366
+ }?: CreateEventListenerOptions) => (sqsEvent: SQSEvent) => Promise<SQSBatchResponse>;
367
+ //#endregion
368
+ //#region src/stream-handler.d.ts
369
+ interface CreateStreamHandlerConfig {
370
+ busName?: string;
371
+ queueUrls: string[];
372
+ }
373
+ /**
374
+ * Creates a Lambda handler for DynamoDB stream events.
375
+ * Processes INSERT events from the event store table and forwards them to SQS queues and EventBridge.
376
+ */
377
+ declare function createStreamHandler(config: CreateStreamHandlerConfig): (event: DynamoDBStreamEvent) => Promise<void>;
378
+ //#endregion
379
+ export { AggregateHead, AggregateId, AggregatePK, AggregateType, AppendArgs, AppendEventResult, Brand, CreateEventListenerOptions, CreateStreamHandlerConfig, DispatchEventArgs, DispatchEventArgsFactory, DispatchEventsArgs, DispatchRecord, DispatchRecordResponse, EventContext, EventHandlers, EventId, EventRecord, EventSK, EventService, ItemType, MakePartial, Source, ValueOrFactory, ValueOrFactoryRecord, appendEventContext, createDispatch, createEventListener, createEventService, createStreamHandler, dispatchEvent, dispatchEvents, getEventContext, getEventService, initEvents, resetEventContext, setEventContext };
236
380
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":["Writable","Handler","TEvent","TResult","Context","Callback","Promise","event","context","callback","CognitoIdentity","ClientContext","Error","callbackWaitsForEmptyEventLoop","functionName","functionVersion","invokedFunctionArn","memoryLimitInMB","awsRequestId","logGroupName","logStreamName","identity","clientContext","tenantId","getRemainingTimeInMillis","done","error","result","fail","succeed","messageOrObject","message","object","cognitoIdentityId","cognitoIdentityPoolId","ClientContextClient","ClientContextEnv","client","Custom","env","installationId","appTitle","appVersionName","appVersionCode","appPackageName","platformVersion","platform","make","model","locale","StreamifyHandler","awslambda","HttpResponseStream","responseStream","_0","Record","global","from","writable","metadata","setContentType","contentType","streamifyResponse","handler","sideEffect","Handler","DynamoDBStreamHandler","DynamoDBStreamEvent","DynamoDBBatchResponse","AttributeValue","B","BS","BOOL","L","M","id","N","NS","NULL","S","SS","StreamRecord","ApproximateCreationDateTime","Keys","key","NewImage","OldImage","SequenceNumber","SizeBytes","StreamViewType","DynamoDBRecord","awsRegion","dynamodb","eventID","eventName","eventSource","eventSourceARN","eventVersion","userIdentity","Records","DynamoDBBatchItemFailure","batchItemFailures","itemIdentifier","Handler","SQSHandler","SQSEvent","SQSBatchResponse","SQSRecord","SQSRecordAttributes","SQSMessageAttributes","messageId","receiptHandle","body","attributes","messageAttributes","md5OfBody","md5OfMessageAttributes","eventSource","eventSourceARN","awsRegion","Records","AWSTraceHeader","ApproximateReceiveCount","SentTimestamp","SenderId","ApproximateFirstReceiveTimestamp","SequenceNumber","MessageGroupId","MessageDeduplicationId","DeadLetterQueueSourceArn","SQSMessageAttributeDataType","SQSMessageAttribute","stringValue","binaryValue","stringListValues","binaryListValues","dataType","name","SQSBatchItemFailure","batchItemFailures","itemIdentifier"],"sources":["../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/dynamodb-stream.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/sqs.d.ts"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":["Writable","Handler","TEvent","TResult","Context","Callback","Promise","event","context","callback","CognitoIdentity","ClientContext","Error","callbackWaitsForEmptyEventLoop","functionName","functionVersion","invokedFunctionArn","memoryLimitInMB","awsRequestId","logGroupName","logStreamName","identity","clientContext","tenantId","getRemainingTimeInMillis","done","error","result","fail","succeed","messageOrObject","message","object","cognitoIdentityId","cognitoIdentityPoolId","ClientContextClient","ClientContextEnv","client","Custom","env","installationId","appTitle","appVersionName","appVersionCode","appPackageName","platformVersion","platform","make","model","locale","StreamifyHandler","awslambda","HttpResponseStream","responseStream","_0","Record","global","from","writable","metadata","setContentType","contentType","streamifyResponse","handler","sideEffect","Handler","DynamoDBStreamHandler","DynamoDBStreamEvent","DynamoDBBatchResponse","AttributeValue","B","BS","BOOL","L","M","id","N","NS","NULL","S","SS","StreamRecord","ApproximateCreationDateTime","Keys","key","NewImage","OldImage","SequenceNumber","SizeBytes","StreamViewType","DynamoDBRecord","awsRegion","dynamodb","eventID","eventName","eventSource","eventSourceARN","eventVersion","userIdentity","Records","DynamoDBBatchItemFailure","batchItemFailures","itemIdentifier","Handler","SQSHandler","SQSEvent","SQSBatchResponse","SQSRecord","SQSRecordAttributes","SQSMessageAttributes","messageId","receiptHandle","body","attributes","messageAttributes","md5OfBody","md5OfMessageAttributes","eventSource","eventSourceARN","awsRegion","Records","AWSTraceHeader","ApproximateReceiveCount","SentTimestamp","SenderId","ApproximateFirstReceiveTimestamp","SequenceNumber","MessageGroupId","MessageDeduplicationId","DeadLetterQueueSourceArn","SQSMessageAttributeDataType","SQSMessageAttribute","stringValue","binaryValue","stringListValues","binaryListValues","dataType","name","SQSBatchItemFailure","batchItemFailures","itemIdentifier"],"sources":["../src/types.ts","../src/event-service.ts","../src/init.ts","../src/context.ts","../src/dispatch-event.ts","../src/dispatch-events.ts","../src/create-dispatch.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/dynamodb-stream.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/trigger/sqs.d.ts","../src/create-event-listener.ts","../src/stream-handler.ts"],"x_google_ignoreList":[7,8,9],"mappings":"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"}