@auriclabs/events 0.2.0 → 0.4.0
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/.turbo/turbo-build.log +36 -22
- package/CHANGELOG.md +14 -0
- package/dist/index.cjs +4 -82
- package/dist/index.d.cts +1 -142
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -142
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -81
- package/dist/index.mjs.map +1 -1
- package/dist/index2.d.cts +148 -0
- package/dist/index2.d.cts.map +1 -0
- package/dist/index2.d.mts +148 -0
- package/dist/index2.d.mts.map +1 -0
- package/dist/stream-handler.cjs +91 -0
- package/dist/stream-handler.entry.cjs +8 -0
- package/dist/stream-handler.entry.d.cts +7 -0
- package/dist/stream-handler.entry.d.cts.map +1 -0
- package/dist/stream-handler.entry.d.mts +7 -0
- package/dist/stream-handler.entry.d.mts.map +1 -0
- package/dist/stream-handler.entry.mjs +10 -0
- package/dist/stream-handler.entry.mjs.map +1 -0
- package/dist/stream-handler.mjs +88 -0
- package/dist/stream-handler.mjs.map +1 -0
- package/package.json +7 -2
- package/src/create-event-listener.test.ts +5 -4
- package/src/dispatch-event.test.ts +11 -0
- package/src/dispatch-events.test.ts +3 -3
- package/src/event-service.test.ts +74 -32
- package/src/event-service.ts +4 -0
- package/src/init.test.ts +2 -0
- package/src/stream-handler.entry.ts +6 -0
- package/src/stream-handler.test.ts +95 -35
- package/src/stream-handler.ts +6 -2
- package/src/types.ts +3 -0
- package/tsconfig.test.json +2 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,39 +1,53 @@
|
|
|
1
1
|
|
|
2
|
-
> @auriclabs/events@0.
|
|
3
|
-
> tsdown src/index.ts --format cjs,esm --dts --no-hash
|
|
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
|
|
4
4
|
|
|
5
5
|
[33m[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.[39m
|
|
6
6
|
[34mℹ[39m tsdown [2mv0.21.4[22m powered by rolldown [2mv1.0.0-rc.9[22m
|
|
7
|
-
[34mℹ[39m entry: [34msrc/index.ts[39m
|
|
7
|
+
[34mℹ[39m entry: [34msrc/index.ts, src/stream-handler.entry.ts[39m
|
|
8
8
|
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
9
9
|
[34mℹ[39m Build start
|
|
10
|
-
[34mℹ[39m [33m[CJS][39m [2mdist/[22m[1mindex.cjs[22m
|
|
11
|
-
[34mℹ[39m [33m[CJS][39m
|
|
10
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22m[1mindex.cjs[22m [2m8.30 kB[22m [2m│ gzip: 2.56 kB[22m
|
|
11
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22m[1mstream-handler.entry.cjs[22m [2m0.32 kB[22m [2m│ gzip: 0.25 kB[22m
|
|
12
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22mstream-handler.cjs [2m3.12 kB[22m [2m│ gzip: 1.13 kB[22m
|
|
13
|
+
[34mℹ[39m [33m[CJS][39m 3 files, total: 11.75 kB
|
|
12
14
|
[34mℹ[39m Hint: consider adding [34mdeps.onlyBundle[39m option to avoid unintended bundling of dependencies, or set [34mdeps.onlyBundle: false[39m to disable this hint.
|
|
13
15
|
See more at [4mhttps://tsdown.dev/options/dependencies#deps-onlybundle[24m
|
|
14
16
|
Detected dependencies in bundle:
|
|
15
17
|
- [34m@types/aws-lambda[39m
|
|
16
|
-
[34mℹ[39m [34m[ESM][39m [2mdist/[22m[1mindex.mjs[22m [2m10.31 kB[22m [2m│ gzip: 3.19 kB[22m
|
|
17
|
-
[34mℹ[39m [34m[ESM][39m [2mdist/[22mindex.mjs.map [2m23.71 kB[22m [2m│ gzip: 6.74 kB[22m
|
|
18
|
-
[34mℹ[39m [34m[ESM][39m [2mdist/[22mindex.d.mts.map [2m 7.93 kB[22m [2m│ gzip: 2.65 kB[22m
|
|
19
|
-
[34mℹ[39m [34m[ESM][39m [2mdist/[22m[32m[1mindex.d.mts[22m[39m [2m15.74 kB[22m [2m│ gzip: 4.28 kB[22m
|
|
20
|
-
[34mℹ[39m [34m[ESM][39m 4 files, total: 57.69 kB
|
|
21
|
-
[33m[PLUGIN_TIMINGS] Warning:[0m Your build spent significant time in plugins. Here is a breakdown:
|
|
22
|
-
- rolldown-plugin-dts:generate (67%)
|
|
23
|
-
- rolldown-plugin-dts:resolver (24%)
|
|
24
|
-
See https://rolldown.rs/options/checks#plugintimings for more details.
|
|
25
|
-
|
|
26
|
-
[32m✔[39m Build complete in [32m4816ms[39m
|
|
27
18
|
[34mℹ[39m Hint: consider adding [34mdeps.onlyBundle[39m option to avoid unintended bundling of dependencies, or set [34mdeps.onlyBundle: false[39m to disable this hint.
|
|
28
19
|
See more at [4mhttps://tsdown.dev/options/dependencies#deps-onlybundle[24m
|
|
29
20
|
Detected dependencies in bundle:
|
|
30
21
|
- [34m@types/aws-lambda[39m
|
|
31
|
-
[34mℹ[39m [33m[CJS][39m [2mdist/[22mindex.d.cts.map
|
|
32
|
-
[34mℹ[39m [33m[CJS][39m [2mdist/[
|
|
33
|
-
[34mℹ[39m [33m[CJS][39m
|
|
22
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22mindex.d.cts.map [2m4.95 kB[22m [2m│ gzip: 1.71 kB[22m
|
|
23
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22mindex2.d.cts.map [2m3.09 kB[22m [2m│ gzip: 1.06 kB[22m
|
|
24
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22mstream-handler.entry.d.cts.map [2m0.16 kB[22m [2m│ gzip: 0.14 kB[22m
|
|
25
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22m[32m[1mindex2.d.cts[22m[39m [2m6.17 kB[22m [2m│ gzip: 1.82 kB[22m
|
|
26
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22m[32m[1mstream-handler.entry.d.cts[22m[39m [2m0.25 kB[22m [2m│ gzip: 0.18 kB[22m
|
|
27
|
+
[34mℹ[39m [33m[CJS][39m [2mdist/[22m[32mindex.d.cts[39m [2m9.85 kB[22m [2m│ gzip: 2.73 kB[22m
|
|
28
|
+
[34mℹ[39m [33m[CJS][39m 6 files, total: 24.46 kB
|
|
29
|
+
[33m[PLUGIN_TIMINGS] Warning:[0m Your build spent significant time in plugins. Here is a breakdown:
|
|
30
|
+
- rolldown-plugin-dts:resolver (55%)
|
|
31
|
+
- rolldown-plugin-dts:generate (37%)
|
|
32
|
+
See https://rolldown.rs/options/checks#plugintimings for more details.
|
|
33
|
+
|
|
34
|
+
[32m✔[39m Build complete in [32m5098ms[39m
|
|
35
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22m[1mindex.mjs[22m [2m 7.71 kB[22m [2m│ gzip: 2.46 kB[22m
|
|
36
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22m[1mstream-handler.entry.mjs[22m [2m 0.33 kB[22m [2m│ gzip: 0.23 kB[22m
|
|
37
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22mindex.mjs.map [2m18.56 kB[22m [2m│ gzip: 5.38 kB[22m
|
|
38
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22mstream-handler.mjs.map [2m 5.48 kB[22m [2m│ gzip: 1.96 kB[22m
|
|
39
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22mindex.d.mts.map [2m 4.95 kB[22m [2m│ gzip: 1.71 kB[22m
|
|
40
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22mindex2.d.mts.map [2m 3.09 kB[22m [2m│ gzip: 1.06 kB[22m
|
|
41
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22mstream-handler.mjs [2m 2.88 kB[22m [2m│ gzip: 1.07 kB[22m
|
|
42
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22mstream-handler.entry.mjs.map [2m 0.46 kB[22m [2m│ gzip: 0.32 kB[22m
|
|
43
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22mstream-handler.entry.d.mts.map [2m 0.16 kB[22m [2m│ gzip: 0.14 kB[22m
|
|
44
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22m[32m[1mindex2.d.mts[22m[39m [2m 6.17 kB[22m [2m│ gzip: 1.82 kB[22m
|
|
45
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22m[32m[1mstream-handler.entry.d.mts[22m[39m [2m 0.25 kB[22m [2m│ gzip: 0.18 kB[22m
|
|
46
|
+
[34mℹ[39m [34m[ESM][39m [2mdist/[22m[32mindex.d.mts[39m [2m 9.85 kB[22m [2m│ gzip: 2.73 kB[22m
|
|
47
|
+
[34mℹ[39m [34m[ESM][39m 12 files, total: 59.88 kB
|
|
34
48
|
[33m[PLUGIN_TIMINGS] Warning:[0m Your build spent significant time in plugins. Here is a breakdown:
|
|
35
|
-
- rolldown-plugin-dts:resolver (
|
|
36
|
-
- rolldown-plugin-dts:generate (
|
|
49
|
+
- rolldown-plugin-dts:resolver (46%)
|
|
50
|
+
- rolldown-plugin-dts:generate (42%)
|
|
37
51
|
See https://rolldown.rs/options/checks#plugintimings for more details.
|
|
38
52
|
|
|
39
|
-
[32m✔[39m Build complete in [
|
|
53
|
+
[32m✔[39m Build complete in [32m5101ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @auriclabs/events
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ddd017a: Add createEventQueue helper, make EventBridge bus optional, and bundle a pre-built stream
|
|
8
|
+
handler to eliminate consumer boilerplate.
|
|
9
|
+
|
|
10
|
+
## 0.3.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- 9614859: Add tenantId to EventRecord and a tenantIndex GSI on the event store for tenant-scoped
|
|
15
|
+
queries.
|
|
16
|
+
|
|
3
17
|
## 0.2.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
package/dist/index.cjs
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_stream_handler = require("./stream-handler.cjs");
|
|
2
3
|
let _auriclabs_pagination = require("@auriclabs/pagination");
|
|
3
4
|
let _aws_sdk_client_dynamodb = require("@aws-sdk/client-dynamodb");
|
|
4
5
|
let _aws_sdk_lib_dynamodb = require("@aws-sdk/lib-dynamodb");
|
|
5
6
|
let _auriclabs_api_core = require("@auriclabs/api-core");
|
|
6
7
|
let _auriclabs_logger = require("@auriclabs/logger");
|
|
7
8
|
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");
|
|
12
9
|
//#region src/event-service.ts
|
|
13
10
|
const ddb = _aws_sdk_lib_dynamodb.DynamoDBDocumentClient.from(new _aws_sdk_client_dynamodb.DynamoDBClient(), { marshallOptions: { removeUndefinedValues: true } });
|
|
14
11
|
const pad = (n, w = 9) => String(n).padStart(w, "0");
|
|
@@ -17,7 +14,7 @@ function createEventService(tableName) {
|
|
|
17
14
|
const TABLE = tableName;
|
|
18
15
|
return {
|
|
19
16
|
async appendEvent(args) {
|
|
20
|
-
const { aggregateType, aggregateId, expectedVersion, idempotencyKey, eventId, eventType, occurredAt, source, payload, schemaVersion, correlationId, causationId, actorId } = args;
|
|
17
|
+
const { tenantId, aggregateType, aggregateId, expectedVersion, idempotencyKey, eventId, eventType, occurredAt, source, payload, schemaVersion, correlationId, causationId, actorId } = args;
|
|
21
18
|
const pk = pkFor(aggregateType, aggregateId);
|
|
22
19
|
const nextVersion = expectedVersion + 1;
|
|
23
20
|
const sk = `EVT#${pad(nextVersion)}`;
|
|
@@ -52,6 +49,7 @@ function createEventService(tableName) {
|
|
|
52
49
|
aggregateId,
|
|
53
50
|
aggregateType,
|
|
54
51
|
version: nextVersion,
|
|
52
|
+
tenantId,
|
|
55
53
|
eventId,
|
|
56
54
|
eventType,
|
|
57
55
|
schemaVersion: schemaVersion ?? 1,
|
|
@@ -224,87 +222,11 @@ const createEventListener = (eventHandlers, { debug = false } = {}) => async (sq
|
|
|
224
222
|
return response;
|
|
225
223
|
};
|
|
226
224
|
//#endregion
|
|
227
|
-
//#region src/stream-handler.ts
|
|
228
|
-
const BATCH_SIZE = 10;
|
|
229
|
-
/**
|
|
230
|
-
* Creates a Lambda handler for DynamoDB stream events.
|
|
231
|
-
* Processes INSERT events from the event store table and forwards them to SQS queues and EventBridge.
|
|
232
|
-
*/
|
|
233
|
-
function createStreamHandler(config) {
|
|
234
|
-
const sqsClient = new _aws_sdk_client_sqs.SQSClient();
|
|
235
|
-
const eventBridge = new _aws_sdk_client_eventbridge.EventBridgeClient({});
|
|
236
|
-
function chunkArray(array, chunkSize) {
|
|
237
|
-
const chunks = [];
|
|
238
|
-
for (let i = 0; i < array.length; i += chunkSize) chunks.push(array.slice(i, i + chunkSize));
|
|
239
|
-
return chunks;
|
|
240
|
-
}
|
|
241
|
-
async function sendToQueuesBatch(eventRecords) {
|
|
242
|
-
await Promise.all(config.queueUrls.map((queue) => sendToQueueBatch(eventRecords, queue)));
|
|
243
|
-
}
|
|
244
|
-
async function sendToQueueBatch(eventRecords, queue) {
|
|
245
|
-
const batches = chunkArray(eventRecords, BATCH_SIZE);
|
|
246
|
-
for (const batch of batches) try {
|
|
247
|
-
const entries = batch.map((eventRecord, index) => ({
|
|
248
|
-
Id: `${eventRecord.eventId}-${index}`,
|
|
249
|
-
MessageBody: JSON.stringify(eventRecord),
|
|
250
|
-
MessageGroupId: eventRecord.aggregateId,
|
|
251
|
-
MessageDeduplicationId: eventRecord.eventId
|
|
252
|
-
}));
|
|
253
|
-
await sqsClient.send(new _aws_sdk_client_sqs.SendMessageBatchCommand({
|
|
254
|
-
QueueUrl: queue,
|
|
255
|
-
Entries: entries
|
|
256
|
-
}));
|
|
257
|
-
} catch (error) {
|
|
258
|
-
_auriclabs_logger.logger.error({
|
|
259
|
-
error,
|
|
260
|
-
batch,
|
|
261
|
-
queue
|
|
262
|
-
}, "Error sending batch to queue");
|
|
263
|
-
throw error;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
async function sendToBusBatch(eventRecords) {
|
|
267
|
-
const batches = chunkArray(eventRecords, BATCH_SIZE);
|
|
268
|
-
for (const batch of batches) try {
|
|
269
|
-
const entries = batch.map((eventRecord) => {
|
|
270
|
-
return {
|
|
271
|
-
Source: eventRecord.source ?? (0, lodash_es.kebabCase)(eventRecord.aggregateType.split(".")[0]),
|
|
272
|
-
DetailType: eventRecord.eventType,
|
|
273
|
-
Detail: JSON.stringify(eventRecord),
|
|
274
|
-
EventBusName: config.busName
|
|
275
|
-
};
|
|
276
|
-
});
|
|
277
|
-
await eventBridge.send(new _aws_sdk_client_eventbridge.PutEventsCommand({ Entries: entries }));
|
|
278
|
-
} catch (error) {
|
|
279
|
-
_auriclabs_logger.logger.error({
|
|
280
|
-
error,
|
|
281
|
-
batch
|
|
282
|
-
}, "Error sending batch to bus");
|
|
283
|
-
throw error;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
return async (event) => {
|
|
287
|
-
const eventRecords = event.Records.filter((record) => record.eventName === "INSERT").map((record) => {
|
|
288
|
-
try {
|
|
289
|
-
const data = record.dynamodb?.NewImage;
|
|
290
|
-
return (0, _aws_sdk_util_dynamodb.unmarshall)(data);
|
|
291
|
-
} catch (error) {
|
|
292
|
-
_auriclabs_logger.logger.error({
|
|
293
|
-
error,
|
|
294
|
-
record
|
|
295
|
-
}, "Error unmarshalling event record");
|
|
296
|
-
return;
|
|
297
|
-
}
|
|
298
|
-
}).filter((eventRecord) => eventRecord?.itemType === "event");
|
|
299
|
-
if (eventRecords.length > 0) await Promise.all([sendToBusBatch(eventRecords), sendToQueuesBatch(eventRecords)]);
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
//#endregion
|
|
303
225
|
exports.appendEventContext = appendEventContext;
|
|
304
226
|
exports.createDispatch = createDispatch;
|
|
305
227
|
exports.createEventListener = createEventListener;
|
|
306
228
|
exports.createEventService = createEventService;
|
|
307
|
-
exports.createStreamHandler = createStreamHandler;
|
|
229
|
+
exports.createStreamHandler = require_stream_handler.createStreamHandler;
|
|
308
230
|
exports.dispatchEvent = dispatchEvent;
|
|
309
231
|
exports.dispatchEvents = dispatchEvents;
|
|
310
232
|
exports.getEventContext = getEventContext;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,127 +1,5 @@
|
|
|
1
|
-
import { PaginationResponse } from "@auriclabs/pagination";
|
|
2
1
|
import { Writable } from "node:stream";
|
|
3
2
|
|
|
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
|
-
/** Event identity & semantics */
|
|
26
|
-
eventId: EventId;
|
|
27
|
-
eventType: string;
|
|
28
|
-
schemaVersion?: number;
|
|
29
|
-
occurredAt: string;
|
|
30
|
-
/** Tracing (optional) */
|
|
31
|
-
correlationId?: string;
|
|
32
|
-
causationId?: string;
|
|
33
|
-
actorId?: string;
|
|
34
|
-
/** Domain payload */
|
|
35
|
-
payload: Readonly<P>;
|
|
36
|
-
}
|
|
37
|
-
interface AggregateHead {
|
|
38
|
-
/** DynamoDB keys */
|
|
39
|
-
pk: AggregatePK;
|
|
40
|
-
sk: 'HEAD';
|
|
41
|
-
itemType: Extract<ItemType, 'head'>;
|
|
42
|
-
/** Aggregate identity */
|
|
43
|
-
aggregateId: AggregateId;
|
|
44
|
-
aggregateType: AggregateType;
|
|
45
|
-
/** Version tracking */
|
|
46
|
-
currentVersion: number;
|
|
47
|
-
/** Idempotency/debug */
|
|
48
|
-
lastEventId?: EventId;
|
|
49
|
-
lastIdemKey?: string;
|
|
50
|
-
updatedAt: string;
|
|
51
|
-
}
|
|
52
|
-
type EventHandlers = Record<string, ((event: EventRecord<any>) => Promise<void> | void) | string>;
|
|
53
|
-
//#endregion
|
|
54
|
-
//#region src/event-service.d.ts
|
|
55
|
-
interface AppendArgs<P = unknown> {
|
|
56
|
-
aggregateType: string;
|
|
57
|
-
aggregateId: string;
|
|
58
|
-
source: string;
|
|
59
|
-
/** Version you observed before appending (0 for brand new) */
|
|
60
|
-
expectedVersion: number;
|
|
61
|
-
/** Required for idempotent retries (e.g., the command id) */
|
|
62
|
-
idempotencyKey: string;
|
|
63
|
-
eventId: string;
|
|
64
|
-
eventType: string;
|
|
65
|
-
occurredAt?: string;
|
|
66
|
-
payload?: Readonly<P>;
|
|
67
|
-
schemaVersion?: number;
|
|
68
|
-
correlationId?: string;
|
|
69
|
-
causationId?: string;
|
|
70
|
-
actorId?: string;
|
|
71
|
-
}
|
|
72
|
-
interface AppendEventResult {
|
|
73
|
-
pk: string;
|
|
74
|
-
sk: string;
|
|
75
|
-
version: number;
|
|
76
|
-
}
|
|
77
|
-
interface EventService {
|
|
78
|
-
appendEvent<P = unknown>(args: AppendArgs<P>): Promise<AppendEventResult>;
|
|
79
|
-
getHead(aggregateType: string, aggregateId: string): Promise<AggregateHead | undefined>;
|
|
80
|
-
getEvent(aggregateType: string, aggregateId: string, version: number): Promise<EventRecord | undefined>;
|
|
81
|
-
listEvents(params: {
|
|
82
|
-
aggregateType: string;
|
|
83
|
-
aggregateId: string;
|
|
84
|
-
fromVersionExclusive?: number;
|
|
85
|
-
toVersionInclusive?: number;
|
|
86
|
-
limit?: number;
|
|
87
|
-
}): Promise<PaginationResponse<EventRecord>>;
|
|
88
|
-
}
|
|
89
|
-
declare function createEventService(tableName: string): EventService;
|
|
90
|
-
//#endregion
|
|
91
|
-
//#region src/init.d.ts
|
|
92
|
-
declare function initEvents(config: {
|
|
93
|
-
tableName: string;
|
|
94
|
-
}): void;
|
|
95
|
-
declare function getEventService(): EventService;
|
|
96
|
-
//#endregion
|
|
97
|
-
//#region src/context.d.ts
|
|
98
|
-
type EventContext = Partial<AppendArgs>;
|
|
99
|
-
declare const setEventContext: (newContext: EventContext) => void;
|
|
100
|
-
declare const getEventContext: () => Partial<AppendArgs<unknown>>;
|
|
101
|
-
declare const resetEventContext: () => void;
|
|
102
|
-
declare const appendEventContext: (event: EventContext) => void;
|
|
103
|
-
//#endregion
|
|
104
|
-
//#region src/dispatch-event.d.ts
|
|
105
|
-
type DispatchEventArgs = Omit<AppendArgs, 'eventId' | 'expectedVersion' | 'schemaVersion' | 'occurredAt' | 'idempotencyKey'> & Partial<Pick<AppendArgs, 'idempotencyKey' | 'eventId'>>;
|
|
106
|
-
declare const dispatchEvent: (event: DispatchEventArgs) => Promise<AppendEventResult>;
|
|
107
|
-
//#endregion
|
|
108
|
-
//#region src/dispatch-events.d.ts
|
|
109
|
-
interface DispatchEventsArgs {
|
|
110
|
-
inOrder?: boolean;
|
|
111
|
-
}
|
|
112
|
-
declare const dispatchEvents: (events: DispatchEventArgs[], {
|
|
113
|
-
inOrder
|
|
114
|
-
}?: DispatchEventsArgs) => Promise<void>;
|
|
115
|
-
//#endregion
|
|
116
|
-
//#region src/create-dispatch.d.ts
|
|
117
|
-
type MakePartial<T, O> = Omit<T, keyof O> & Partial<O>;
|
|
118
|
-
type DispatchRecord<Options extends Partial<DispatchEventArgs> = Partial<DispatchEventArgs>> = Record<string, (...args: any[]) => ValueOrFactoryRecord<MakePartial<DispatchEventArgs, Options>> | DispatchEventArgsFactory<Options>>;
|
|
119
|
-
type ValueOrFactory<T> = T | ((context: EventContext) => T);
|
|
120
|
-
type ValueOrFactoryRecord<T> = { [K in keyof T]: ValueOrFactory<T[K]> };
|
|
121
|
-
type DispatchEventArgsFactory<Options extends Partial<DispatchEventArgs>> = (context: EventContext) => MakePartial<DispatchEventArgs, Options>;
|
|
122
|
-
type DispatchRecordResponse<R extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>> = { [K in keyof R]: (...args: Parameters<R[K]>) => Promise<AppendEventResult> };
|
|
123
|
-
declare function createDispatch<DR extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>>(record: DR, optionsOrFactory?: ValueOrFactoryRecord<O> | ((context: EventContext) => O)): DispatchRecordResponse<DR, O>;
|
|
124
|
-
//#endregion
|
|
125
3
|
//#region ../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts
|
|
126
4
|
/**
|
|
127
5
|
* {@link Handler} context parameter.
|
|
@@ -354,24 +232,5 @@ interface SQSBatchItemFailure {
|
|
|
354
232
|
itemIdentifier: string;
|
|
355
233
|
}
|
|
356
234
|
//#endregion
|
|
357
|
-
|
|
358
|
-
interface CreateEventListenerOptions {
|
|
359
|
-
debug?: boolean;
|
|
360
|
-
}
|
|
361
|
-
declare const createEventListener: (eventHandlers: EventHandlers, {
|
|
362
|
-
debug
|
|
363
|
-
}?: CreateEventListenerOptions) => (sqsEvent: SQSEvent) => Promise<SQSBatchResponse>;
|
|
364
|
-
//#endregion
|
|
365
|
-
//#region src/stream-handler.d.ts
|
|
366
|
-
interface CreateStreamHandlerConfig {
|
|
367
|
-
busName: string;
|
|
368
|
-
queueUrls: string[];
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Creates a Lambda handler for DynamoDB stream events.
|
|
372
|
-
* Processes INSERT events from the event store table and forwards them to SQS queues and EventBridge.
|
|
373
|
-
*/
|
|
374
|
-
declare function createStreamHandler(config: CreateStreamHandlerConfig): (event: DynamoDBStreamEvent) => Promise<void>;
|
|
375
|
-
//#endregion
|
|
376
|
-
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 };
|
|
235
|
+
export { SQSEvent as n, DynamoDBStreamEvent as r, SQSBatchResponse as t };
|
|
377
236
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -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":["
|
|
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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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,127 +1,5 @@
|
|
|
1
|
-
import { PaginationResponse } from "@auriclabs/pagination";
|
|
2
1
|
import { Writable } from "node:stream";
|
|
3
2
|
|
|
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
|
-
/** Event identity & semantics */
|
|
26
|
-
eventId: EventId;
|
|
27
|
-
eventType: string;
|
|
28
|
-
schemaVersion?: number;
|
|
29
|
-
occurredAt: string;
|
|
30
|
-
/** Tracing (optional) */
|
|
31
|
-
correlationId?: string;
|
|
32
|
-
causationId?: string;
|
|
33
|
-
actorId?: string;
|
|
34
|
-
/** Domain payload */
|
|
35
|
-
payload: Readonly<P>;
|
|
36
|
-
}
|
|
37
|
-
interface AggregateHead {
|
|
38
|
-
/** DynamoDB keys */
|
|
39
|
-
pk: AggregatePK;
|
|
40
|
-
sk: 'HEAD';
|
|
41
|
-
itemType: Extract<ItemType, 'head'>;
|
|
42
|
-
/** Aggregate identity */
|
|
43
|
-
aggregateId: AggregateId;
|
|
44
|
-
aggregateType: AggregateType;
|
|
45
|
-
/** Version tracking */
|
|
46
|
-
currentVersion: number;
|
|
47
|
-
/** Idempotency/debug */
|
|
48
|
-
lastEventId?: EventId;
|
|
49
|
-
lastIdemKey?: string;
|
|
50
|
-
updatedAt: string;
|
|
51
|
-
}
|
|
52
|
-
type EventHandlers = Record<string, ((event: EventRecord<any>) => Promise<void> | void) | string>;
|
|
53
|
-
//#endregion
|
|
54
|
-
//#region src/event-service.d.ts
|
|
55
|
-
interface AppendArgs<P = unknown> {
|
|
56
|
-
aggregateType: string;
|
|
57
|
-
aggregateId: string;
|
|
58
|
-
source: string;
|
|
59
|
-
/** Version you observed before appending (0 for brand new) */
|
|
60
|
-
expectedVersion: number;
|
|
61
|
-
/** Required for idempotent retries (e.g., the command id) */
|
|
62
|
-
idempotencyKey: string;
|
|
63
|
-
eventId: string;
|
|
64
|
-
eventType: string;
|
|
65
|
-
occurredAt?: string;
|
|
66
|
-
payload?: Readonly<P>;
|
|
67
|
-
schemaVersion?: number;
|
|
68
|
-
correlationId?: string;
|
|
69
|
-
causationId?: string;
|
|
70
|
-
actorId?: string;
|
|
71
|
-
}
|
|
72
|
-
interface AppendEventResult {
|
|
73
|
-
pk: string;
|
|
74
|
-
sk: string;
|
|
75
|
-
version: number;
|
|
76
|
-
}
|
|
77
|
-
interface EventService {
|
|
78
|
-
appendEvent<P = unknown>(args: AppendArgs<P>): Promise<AppendEventResult>;
|
|
79
|
-
getHead(aggregateType: string, aggregateId: string): Promise<AggregateHead | undefined>;
|
|
80
|
-
getEvent(aggregateType: string, aggregateId: string, version: number): Promise<EventRecord | undefined>;
|
|
81
|
-
listEvents(params: {
|
|
82
|
-
aggregateType: string;
|
|
83
|
-
aggregateId: string;
|
|
84
|
-
fromVersionExclusive?: number;
|
|
85
|
-
toVersionInclusive?: number;
|
|
86
|
-
limit?: number;
|
|
87
|
-
}): Promise<PaginationResponse<EventRecord>>;
|
|
88
|
-
}
|
|
89
|
-
declare function createEventService(tableName: string): EventService;
|
|
90
|
-
//#endregion
|
|
91
|
-
//#region src/init.d.ts
|
|
92
|
-
declare function initEvents(config: {
|
|
93
|
-
tableName: string;
|
|
94
|
-
}): void;
|
|
95
|
-
declare function getEventService(): EventService;
|
|
96
|
-
//#endregion
|
|
97
|
-
//#region src/context.d.ts
|
|
98
|
-
type EventContext = Partial<AppendArgs>;
|
|
99
|
-
declare const setEventContext: (newContext: EventContext) => void;
|
|
100
|
-
declare const getEventContext: () => Partial<AppendArgs<unknown>>;
|
|
101
|
-
declare const resetEventContext: () => void;
|
|
102
|
-
declare const appendEventContext: (event: EventContext) => void;
|
|
103
|
-
//#endregion
|
|
104
|
-
//#region src/dispatch-event.d.ts
|
|
105
|
-
type DispatchEventArgs = Omit<AppendArgs, 'eventId' | 'expectedVersion' | 'schemaVersion' | 'occurredAt' | 'idempotencyKey'> & Partial<Pick<AppendArgs, 'idempotencyKey' | 'eventId'>>;
|
|
106
|
-
declare const dispatchEvent: (event: DispatchEventArgs) => Promise<AppendEventResult>;
|
|
107
|
-
//#endregion
|
|
108
|
-
//#region src/dispatch-events.d.ts
|
|
109
|
-
interface DispatchEventsArgs {
|
|
110
|
-
inOrder?: boolean;
|
|
111
|
-
}
|
|
112
|
-
declare const dispatchEvents: (events: DispatchEventArgs[], {
|
|
113
|
-
inOrder
|
|
114
|
-
}?: DispatchEventsArgs) => Promise<void>;
|
|
115
|
-
//#endregion
|
|
116
|
-
//#region src/create-dispatch.d.ts
|
|
117
|
-
type MakePartial<T, O> = Omit<T, keyof O> & Partial<O>;
|
|
118
|
-
type DispatchRecord<Options extends Partial<DispatchEventArgs> = Partial<DispatchEventArgs>> = Record<string, (...args: any[]) => ValueOrFactoryRecord<MakePartial<DispatchEventArgs, Options>> | DispatchEventArgsFactory<Options>>;
|
|
119
|
-
type ValueOrFactory<T> = T | ((context: EventContext) => T);
|
|
120
|
-
type ValueOrFactoryRecord<T> = { [K in keyof T]: ValueOrFactory<T[K]> };
|
|
121
|
-
type DispatchEventArgsFactory<Options extends Partial<DispatchEventArgs>> = (context: EventContext) => MakePartial<DispatchEventArgs, Options>;
|
|
122
|
-
type DispatchRecordResponse<R extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>> = { [K in keyof R]: (...args: Parameters<R[K]>) => Promise<AppendEventResult> };
|
|
123
|
-
declare function createDispatch<DR extends DispatchRecord<O>, O extends Partial<DispatchEventArgs>>(record: DR, optionsOrFactory?: ValueOrFactoryRecord<O> | ((context: EventContext) => O)): DispatchRecordResponse<DR, O>;
|
|
124
|
-
//#endregion
|
|
125
3
|
//#region ../../node_modules/.pnpm/@types+aws-lambda@8.10.152/node_modules/@types/aws-lambda/handler.d.ts
|
|
126
4
|
/**
|
|
127
5
|
* {@link Handler} context parameter.
|
|
@@ -354,24 +232,5 @@ interface SQSBatchItemFailure {
|
|
|
354
232
|
itemIdentifier: string;
|
|
355
233
|
}
|
|
356
234
|
//#endregion
|
|
357
|
-
|
|
358
|
-
interface CreateEventListenerOptions {
|
|
359
|
-
debug?: boolean;
|
|
360
|
-
}
|
|
361
|
-
declare const createEventListener: (eventHandlers: EventHandlers, {
|
|
362
|
-
debug
|
|
363
|
-
}?: CreateEventListenerOptions) => (sqsEvent: SQSEvent) => Promise<SQSBatchResponse>;
|
|
364
|
-
//#endregion
|
|
365
|
-
//#region src/stream-handler.d.ts
|
|
366
|
-
interface CreateStreamHandlerConfig {
|
|
367
|
-
busName: string;
|
|
368
|
-
queueUrls: string[];
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Creates a Lambda handler for DynamoDB stream events.
|
|
372
|
-
* Processes INSERT events from the event store table and forwards them to SQS queues and EventBridge.
|
|
373
|
-
*/
|
|
374
|
-
declare function createStreamHandler(config: CreateStreamHandlerConfig): (event: DynamoDBStreamEvent) => Promise<void>;
|
|
375
|
-
//#endregion
|
|
376
|
-
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 };
|
|
235
|
+
export { SQSEvent as n, DynamoDBStreamEvent as r, SQSBatchResponse as t };
|
|
377
236
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -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":["
|
|
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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"}
|