@exabugs/dynamodb-client 1.15.0 → 1.17.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/CHANGELOG.md +30 -0
- package/README.md +2 -0
- package/dist/client/index.iam.d.ts +1 -0
- package/dist/client/index.iam.d.ts.map +1 -1
- package/dist/client/index.iam.js +1 -0
- package/dist/client/index.iam.js.map +1 -1
- package/dist/client/recordsClient.d.ts +51 -0
- package/dist/client/recordsClient.d.ts.map +1 -0
- package/dist/client/recordsClient.js +64 -0
- package/dist/client/recordsClient.js.map +1 -0
- package/dist/notify/admins.d.ts +44 -0
- package/dist/notify/admins.d.ts.map +1 -0
- package/dist/notify/admins.js +55 -0
- package/dist/notify/admins.js.map +1 -0
- package/dist/notify/channels/slack.d.ts +8 -0
- package/dist/notify/channels/slack.d.ts.map +1 -1
- package/dist/notify/channels/slack.js +27 -19
- package/dist/notify/channels/slack.js.map +1 -1
- package/dist/notify/index.d.ts +2 -0
- package/dist/notify/index.d.ts.map +1 -1
- package/dist/notify/index.js +1 -0
- package/dist/notify/index.js.map +1 -1
- package/dist/server/handler.cjs +3 -3
- package/dist/server/media/recordsClient.d.ts.map +1 -1
- package/dist/server/media/recordsClient.js +10 -30
- package/dist/server/media/recordsClient.js.map +1 -1
- package/dist/server/media-handler.cjs +2 -2
- package/dist/server/media-process-handler-dlq.cjs +46 -25
- package/dist/server/media-process-handler-dlq.cjs.map +4 -4
- package/dist/server/media-process-handler.cjs +46 -25
- package/dist/server/media-process-handler.cjs.map +4 -4
- package/dist/system-changes/handler.d.ts +47 -0
- package/dist/system-changes/handler.d.ts.map +1 -0
- package/dist/system-changes/handler.js +74 -0
- package/dist/system-changes/handler.js.map +1 -0
- package/dist/system-changes/index.d.ts +15 -0
- package/dist/system-changes/index.d.ts.map +1 -0
- package/dist/system-changes/index.js +12 -0
- package/dist/system-changes/index.js.map +1 -0
- package/dist/system-changes/record.d.ts +92 -0
- package/dist/system-changes/record.d.ts.map +1 -0
- package/dist/system-changes/record.js +198 -0
- package/dist/system-changes/record.js.map +1 -0
- package/dist/system-changes/recorder.d.ts +104 -0
- package/dist/system-changes/recorder.d.ts.map +1 -0
- package/dist/system-changes/recorder.js +184 -0
- package/dist/system-changes/recorder.js.map +1 -0
- package/dist/system-changes/slack.d.ts +19 -0
- package/dist/system-changes/slack.d.ts.map +1 -0
- package/dist/system-changes/slack.js +124 -0
- package/dist/system-changes/slack.js.map +1 -0
- package/docs/RECORDS_CLIENT.md +47 -0
- package/docs/SYSTEM_CHANGES.md +117 -0
- package/package.json +8 -2
- package/terraform/media/README.md +1 -2
- package/terraform/media/variables.tf +0 -37
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @exabugs/dynamodb-client v1.
|
|
2
|
-
// Built: 2026-10-
|
|
1
|
+
// @exabugs/dynamodb-client v1.17.0
|
|
2
|
+
// Built: 2026-10-24T03:15:07.224Z
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -58298,38 +58298,59 @@ var DynamoClient2 = class extends DynamoClient {
|
|
|
58298
58298
|
}
|
|
58299
58299
|
};
|
|
58300
58300
|
|
|
58301
|
+
// src/client/recordsClient.ts
|
|
58302
|
+
async function createRecordsClient(options = {}) {
|
|
58303
|
+
const url = options.url ?? process.env.RECORDS_IAM_URL;
|
|
58304
|
+
if (!url) {
|
|
58305
|
+
throw new Error("RECORDS_IAM_URL environment variable is not set");
|
|
58306
|
+
}
|
|
58307
|
+
const region = options.region ?? process.env.AWS_REGION ?? process.env.REGION;
|
|
58308
|
+
if (!region) {
|
|
58309
|
+
throw new Error("AWS_REGION environment variable is not set");
|
|
58310
|
+
}
|
|
58311
|
+
const client = new DynamoClient2(url, {
|
|
58312
|
+
auth: { region },
|
|
58313
|
+
...options.timeout !== void 0 ? { timeout: options.timeout } : {}
|
|
58314
|
+
});
|
|
58315
|
+
await client.connect();
|
|
58316
|
+
return client;
|
|
58317
|
+
}
|
|
58318
|
+
__name(createRecordsClient, "createRecordsClient");
|
|
58319
|
+
function lazyCollection(name, options = {}) {
|
|
58320
|
+
let cached;
|
|
58321
|
+
const get2 = /* @__PURE__ */ __name((() => {
|
|
58322
|
+
if (!cached) {
|
|
58323
|
+
const attempt = createRecordsClient(options).then(
|
|
58324
|
+
(client) => client.db().collection(name)
|
|
58325
|
+
);
|
|
58326
|
+
cached = attempt;
|
|
58327
|
+
attempt.catch(() => {
|
|
58328
|
+
if (cached === attempt) cached = void 0;
|
|
58329
|
+
});
|
|
58330
|
+
}
|
|
58331
|
+
return cached;
|
|
58332
|
+
}), "get");
|
|
58333
|
+
get2.reset = () => {
|
|
58334
|
+
cached = void 0;
|
|
58335
|
+
};
|
|
58336
|
+
return get2;
|
|
58337
|
+
}
|
|
58338
|
+
__name(lazyCollection, "lazyCollection");
|
|
58339
|
+
|
|
58301
58340
|
// src/server/media/recordsClient.ts
|
|
58302
58341
|
var RECORDS_REQUEST_TIMEOUT_MS = 15e3;
|
|
58303
58342
|
var MEDIA_COLLECTION = "media";
|
|
58304
|
-
var mediaCollection
|
|
58305
|
-
|
|
58306
|
-
|
|
58307
|
-
const endpoint = process.env.RECORDS_IAM_URL;
|
|
58308
|
-
if (!endpoint) {
|
|
58309
|
-
throw new Error("RECORDS_IAM_URL environment variable is not set");
|
|
58310
|
-
}
|
|
58311
|
-
const region = process.env.AWS_REGION ?? process.env.REGION;
|
|
58312
|
-
if (!region) {
|
|
58313
|
-
throw new Error("AWS_REGION environment variable is not set");
|
|
58314
|
-
}
|
|
58315
|
-
const client = new DynamoClient2(endpoint, {
|
|
58316
|
-
auth: { region },
|
|
58317
|
-
timeout: RECORDS_REQUEST_TIMEOUT_MS
|
|
58318
|
-
});
|
|
58319
|
-
await client.connect();
|
|
58320
|
-
mediaCollection = client.db().collection(MEDIA_COLLECTION);
|
|
58321
|
-
}
|
|
58322
|
-
return mediaCollection;
|
|
58323
|
-
}
|
|
58324
|
-
__name(getMediaCollection, "getMediaCollection");
|
|
58343
|
+
var mediaCollection = lazyCollection(MEDIA_COLLECTION, {
|
|
58344
|
+
timeout: RECORDS_REQUEST_TIMEOUT_MS
|
|
58345
|
+
});
|
|
58325
58346
|
async function findMediaRecord(fileId) {
|
|
58326
|
-
const records = await (await
|
|
58347
|
+
const records = await (await mediaCollection()).findMany([fileId]);
|
|
58327
58348
|
return records[0];
|
|
58328
58349
|
}
|
|
58329
58350
|
__name(findMediaRecord, "findMediaRecord");
|
|
58330
58351
|
async function writeMediaRecord(fileId, fields) {
|
|
58331
58352
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
58332
|
-
await (await
|
|
58353
|
+
await (await mediaCollection()).updateOne(
|
|
58333
58354
|
{ id: fileId },
|
|
58334
58355
|
{ $set: { ...fields, updatedAt: now }, $setOnInsert: { createdAt: now } },
|
|
58335
58356
|
{ upsert: true }
|