@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;
|
|
@@ -45859,38 +45859,59 @@ var DynamoClient2 = class extends DynamoClient {
|
|
|
45859
45859
|
}
|
|
45860
45860
|
};
|
|
45861
45861
|
|
|
45862
|
+
// src/client/recordsClient.ts
|
|
45863
|
+
async function createRecordsClient(options = {}) {
|
|
45864
|
+
const url = options.url ?? process.env.RECORDS_IAM_URL;
|
|
45865
|
+
if (!url) {
|
|
45866
|
+
throw new Error("RECORDS_IAM_URL environment variable is not set");
|
|
45867
|
+
}
|
|
45868
|
+
const region = options.region ?? process.env.AWS_REGION ?? process.env.REGION;
|
|
45869
|
+
if (!region) {
|
|
45870
|
+
throw new Error("AWS_REGION environment variable is not set");
|
|
45871
|
+
}
|
|
45872
|
+
const client = new DynamoClient2(url, {
|
|
45873
|
+
auth: { region },
|
|
45874
|
+
...options.timeout !== void 0 ? { timeout: options.timeout } : {}
|
|
45875
|
+
});
|
|
45876
|
+
await client.connect();
|
|
45877
|
+
return client;
|
|
45878
|
+
}
|
|
45879
|
+
__name(createRecordsClient, "createRecordsClient");
|
|
45880
|
+
function lazyCollection(name, options = {}) {
|
|
45881
|
+
let cached;
|
|
45882
|
+
const get2 = /* @__PURE__ */ __name((() => {
|
|
45883
|
+
if (!cached) {
|
|
45884
|
+
const attempt = createRecordsClient(options).then(
|
|
45885
|
+
(client) => client.db().collection(name)
|
|
45886
|
+
);
|
|
45887
|
+
cached = attempt;
|
|
45888
|
+
attempt.catch(() => {
|
|
45889
|
+
if (cached === attempt) cached = void 0;
|
|
45890
|
+
});
|
|
45891
|
+
}
|
|
45892
|
+
return cached;
|
|
45893
|
+
}), "get");
|
|
45894
|
+
get2.reset = () => {
|
|
45895
|
+
cached = void 0;
|
|
45896
|
+
};
|
|
45897
|
+
return get2;
|
|
45898
|
+
}
|
|
45899
|
+
__name(lazyCollection, "lazyCollection");
|
|
45900
|
+
|
|
45862
45901
|
// src/server/media/recordsClient.ts
|
|
45863
45902
|
var RECORDS_REQUEST_TIMEOUT_MS = 15e3;
|
|
45864
45903
|
var MEDIA_COLLECTION = "media";
|
|
45865
|
-
var mediaCollection
|
|
45866
|
-
|
|
45867
|
-
|
|
45868
|
-
const endpoint = process.env.RECORDS_IAM_URL;
|
|
45869
|
-
if (!endpoint) {
|
|
45870
|
-
throw new Error("RECORDS_IAM_URL environment variable is not set");
|
|
45871
|
-
}
|
|
45872
|
-
const region = process.env.AWS_REGION ?? process.env.REGION;
|
|
45873
|
-
if (!region) {
|
|
45874
|
-
throw new Error("AWS_REGION environment variable is not set");
|
|
45875
|
-
}
|
|
45876
|
-
const client = new DynamoClient2(endpoint, {
|
|
45877
|
-
auth: { region },
|
|
45878
|
-
timeout: RECORDS_REQUEST_TIMEOUT_MS
|
|
45879
|
-
});
|
|
45880
|
-
await client.connect();
|
|
45881
|
-
mediaCollection = client.db().collection(MEDIA_COLLECTION);
|
|
45882
|
-
}
|
|
45883
|
-
return mediaCollection;
|
|
45884
|
-
}
|
|
45885
|
-
__name(getMediaCollection, "getMediaCollection");
|
|
45904
|
+
var mediaCollection = lazyCollection(MEDIA_COLLECTION, {
|
|
45905
|
+
timeout: RECORDS_REQUEST_TIMEOUT_MS
|
|
45906
|
+
});
|
|
45886
45907
|
async function findMediaRecord(fileId) {
|
|
45887
|
-
const records = await (await
|
|
45908
|
+
const records = await (await mediaCollection()).findMany([fileId]);
|
|
45888
45909
|
return records[0];
|
|
45889
45910
|
}
|
|
45890
45911
|
__name(findMediaRecord, "findMediaRecord");
|
|
45891
45912
|
async function writeMediaRecord(fileId, fields) {
|
|
45892
45913
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
45893
|
-
await (await
|
|
45914
|
+
await (await mediaCollection()).updateOne(
|
|
45894
45915
|
{ id: fileId },
|
|
45895
45916
|
{ $set: { ...fields, updatedAt: now }, $setOnInsert: { createdAt: now } },
|
|
45896
45917
|
{ upsert: true }
|