@farukada/aws-langgraph-dynamodb-ts 0.3.1 → 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/README.md +12 -5
- package/dist/checkpointer/actions/delete-thread.js +1 -1
- package/dist/checkpointer/actions/delete-thread.js.map +1 -1
- package/dist/checkpointer/actions/get-tuple.js.map +1 -1
- package/dist/checkpointer/actions/list.d.ts.map +1 -1
- package/dist/checkpointer/actions/list.js +3 -1
- package/dist/checkpointer/actions/list.js.map +1 -1
- package/dist/checkpointer/actions/put-writes.d.ts +6 -0
- package/dist/checkpointer/actions/put-writes.d.ts.map +1 -1
- package/dist/checkpointer/actions/put-writes.js +77 -10
- package/dist/checkpointer/actions/put-writes.js.map +1 -1
- package/dist/checkpointer/actions/put.js.map +1 -1
- package/dist/checkpointer/internal/assemble.js.map +1 -1
- package/dist/checkpointer/internal/configurable.js.map +1 -1
- package/dist/checkpointer/internal/fetch.js.map +1 -1
- package/dist/checkpointer/internal/filter-match.d.ts.map +1 -1
- package/dist/checkpointer/internal/filter-match.js.map +1 -1
- package/dist/checkpointer/internal/item-reader.js.map +1 -1
- package/dist/checkpointer/internal/item-writer.d.ts +13 -2
- package/dist/checkpointer/internal/item-writer.d.ts.map +1 -1
- package/dist/checkpointer/internal/item-writer.js +15 -3
- package/dist/checkpointer/internal/item-writer.js.map +1 -1
- package/dist/checkpointer/internal/keys.js.map +1 -1
- package/dist/checkpointer/internal/query.d.ts +5 -1
- package/dist/checkpointer/internal/query.d.ts.map +1 -1
- package/dist/checkpointer/internal/query.js +5 -2
- package/dist/checkpointer/internal/query.js.map +1 -1
- package/dist/checkpointer/internal/setup.d.ts.map +1 -1
- package/dist/checkpointer/internal/setup.js +8 -1
- package/dist/checkpointer/internal/setup.js.map +1 -1
- package/dist/checkpointer/internal/validation.js.map +1 -1
- package/dist/checkpointer/saver.d.ts +9 -0
- package/dist/checkpointer/saver.d.ts.map +1 -1
- package/dist/checkpointer/saver.js +14 -0
- package/dist/checkpointer/saver.js.map +1 -1
- package/dist/factory/factory.d.ts +4 -4
- package/dist/factory/factory.d.ts.map +1 -1
- package/dist/factory/factory.js +4 -6
- package/dist/factory/factory.js.map +1 -1
- package/dist/history/actions/add-messages.d.ts.map +1 -1
- package/dist/history/actions/add-messages.js +4 -3
- package/dist/history/actions/add-messages.js.map +1 -1
- package/dist/history/actions/clear.d.ts +6 -3
- package/dist/history/actions/clear.d.ts.map +1 -1
- package/dist/history/actions/clear.js +28 -15
- package/dist/history/actions/clear.js.map +1 -1
- package/dist/history/actions/get-messages.d.ts.map +1 -1
- package/dist/history/actions/get-messages.js +2 -0
- package/dist/history/actions/get-messages.js.map +1 -1
- package/dist/history/actions/list-sessions.d.ts +4 -1
- package/dist/history/actions/list-sessions.d.ts.map +1 -1
- package/dist/history/actions/list-sessions.js +3 -1
- package/dist/history/actions/list-sessions.js.map +1 -1
- package/dist/history/actions/reconcile-count.d.ts +4 -1
- package/dist/history/actions/reconcile-count.d.ts.map +1 -1
- package/dist/history/actions/reconcile-count.js +21 -9
- package/dist/history/actions/reconcile-count.js.map +1 -1
- package/dist/history/chat-message-history.d.ts +13 -1
- package/dist/history/chat-message-history.d.ts.map +1 -1
- package/dist/history/chat-message-history.js +16 -2
- package/dist/history/chat-message-history.js.map +1 -1
- package/dist/history/internal/append-saga.d.ts +6 -3
- package/dist/history/internal/append-saga.d.ts.map +1 -1
- package/dist/history/internal/append-saga.js +28 -14
- package/dist/history/internal/append-saga.js.map +1 -1
- package/dist/history/internal/item-mapper.js.map +1 -1
- package/dist/history/internal/keys.js.map +1 -1
- package/dist/history/internal/message-chunker.js.map +1 -1
- package/dist/history/internal/message-transaction.d.ts +4 -0
- package/dist/history/internal/message-transaction.d.ts.map +1 -1
- package/dist/history/internal/message-transaction.js +6 -0
- package/dist/history/internal/message-transaction.js.map +1 -1
- package/dist/history/internal/query.js.map +1 -1
- package/dist/history/internal/session-update.d.ts +6 -1
- package/dist/history/internal/session-update.d.ts.map +1 -1
- package/dist/history/internal/session-update.js +6 -2
- package/dist/history/internal/session-update.js.map +1 -1
- package/dist/history/internal/setup.d.ts.map +1 -1
- package/dist/history/internal/setup.js +8 -1
- package/dist/history/internal/setup.js.map +1 -1
- package/dist/history/internal/title-generator.js.map +1 -1
- package/dist/history/internal/ttl-anchor.d.ts +20 -7
- package/dist/history/internal/ttl-anchor.d.ts.map +1 -1
- package/dist/history/internal/ttl-anchor.js +19 -7
- package/dist/history/internal/ttl-anchor.js.map +1 -1
- package/dist/history/session-adapter.d.ts.map +1 -1
- package/dist/history/session-adapter.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/clock.js.map +1 -1
- package/dist/shared/codec/codec.js.map +1 -1
- package/dist/shared/codec/compression.js.map +1 -1
- package/dist/shared/codec/descriptor-keys.js.map +1 -1
- package/dist/shared/codec/s3/client.d.ts +7 -1
- package/dist/shared/codec/s3/client.d.ts.map +1 -1
- package/dist/shared/codec/s3/client.js +8 -2
- package/dist/shared/codec/s3/client.js.map +1 -1
- package/dist/shared/codec/s3/config.d.ts +9 -1
- package/dist/shared/codec/s3/config.d.ts.map +1 -1
- package/dist/shared/codec/s3/config.js +14 -2
- package/dist/shared/codec/s3/config.js.map +1 -1
- package/dist/shared/codec/s3/delete.js.map +1 -1
- package/dist/shared/codec/s3/lifecycle.js.map +1 -1
- package/dist/shared/codec/s3/offloader.d.ts +2 -1
- package/dist/shared/codec/s3/offloader.d.ts.map +1 -1
- package/dist/shared/codec/s3/offloader.js +15 -8
- package/dist/shared/codec/s3/offloader.js.map +1 -1
- package/dist/shared/codec/s3/orphans.d.ts +4 -2
- package/dist/shared/codec/s3/orphans.d.ts.map +1 -1
- package/dist/shared/codec/s3/orphans.js +8 -23
- package/dist/shared/codec/s3/orphans.js.map +1 -1
- package/dist/shared/codec/s3/read-write.d.ts.map +1 -1
- package/dist/shared/codec/s3/read-write.js +14 -13
- package/dist/shared/codec/s3/read-write.js.map +1 -1
- package/dist/shared/codec/s3/retry.d.ts +5 -0
- package/dist/shared/codec/s3/retry.d.ts.map +1 -0
- package/dist/shared/codec/s3/retry.js +25 -0
- package/dist/shared/codec/s3/retry.js.map +1 -0
- package/dist/shared/constants.d.ts +12 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +13 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/dynamodb/backoff.js.map +1 -1
- package/dist/shared/dynamodb/batch-write.d.ts +5 -2
- package/dist/shared/dynamodb/batch-write.d.ts.map +1 -1
- package/dist/shared/dynamodb/batch-write.js +19 -3
- package/dist/shared/dynamodb/batch-write.js.map +1 -1
- package/dist/shared/dynamodb/client.js +1 -1
- package/dist/shared/dynamodb/client.js.map +1 -1
- package/dist/shared/dynamodb/drain-unprocessed.js.map +1 -1
- package/dist/shared/dynamodb/paginate-core.js.map +1 -1
- package/dist/shared/dynamodb/paginate.js.map +1 -1
- package/dist/shared/dynamodb/retry-classifier.d.ts.map +1 -1
- package/dist/shared/dynamodb/retry-classifier.js +3 -0
- package/dist/shared/dynamodb/retry-classifier.js.map +1 -1
- package/dist/shared/dynamodb/retry.js.map +1 -1
- package/dist/shared/dynamodb/scan.js.map +1 -1
- package/dist/shared/errors/base-error.d.ts.map +1 -1
- package/dist/shared/errors/base-error.js.map +1 -1
- package/dist/shared/errors/error-code.js.map +1 -1
- package/dist/shared/errors/errors.d.ts +13 -0
- package/dist/shared/errors/errors.d.ts.map +1 -1
- package/dist/shared/errors/errors.js +22 -1
- package/dist/shared/errors/errors.js.map +1 -1
- package/dist/shared/errors/wrap-error.js.map +1 -1
- package/dist/shared/logging/logger.js.map +1 -1
- package/dist/shared/logging/redaction.d.ts.map +1 -1
- package/dist/shared/logging/redaction.js +13 -8
- package/dist/shared/logging/redaction.js.map +1 -1
- package/dist/shared/ulid.js.map +1 -1
- package/dist/shared/validation/primitives.js.map +1 -1
- package/dist/shared/validation/ttl.d.ts +5 -0
- package/dist/shared/validation/ttl.d.ts.map +1 -1
- package/dist/shared/validation/ttl.js +8 -0
- package/dist/shared/validation/ttl.js.map +1 -1
- package/dist/store/actions/get.js.map +1 -1
- package/dist/store/actions/list-namespaces.js.map +1 -1
- package/dist/store/actions/put.d.ts +6 -4
- package/dist/store/actions/put.d.ts.map +1 -1
- package/dist/store/actions/put.js +32 -13
- package/dist/store/actions/put.js.map +1 -1
- package/dist/store/actions/reconcile-vector-index.js.map +1 -1
- package/dist/store/actions/search.d.ts.map +1 -1
- package/dist/store/actions/search.js +29 -9
- package/dist/store/actions/search.js.map +1 -1
- package/dist/store/internal/filter.d.ts.map +1 -1
- package/dist/store/internal/filter.js +12 -8
- package/dist/store/internal/filter.js.map +1 -1
- package/dist/store/internal/index-reconcile.d.ts.map +1 -1
- package/dist/store/internal/index-reconcile.js +5 -5
- package/dist/store/internal/index-reconcile.js.map +1 -1
- package/dist/store/internal/index-sync.js.map +1 -1
- package/dist/store/internal/item-mapper.d.ts +2 -1
- package/dist/store/internal/item-mapper.d.ts.map +1 -1
- package/dist/store/internal/item-mapper.js +1 -1
- package/dist/store/internal/item-mapper.js.map +1 -1
- package/dist/store/internal/keys.js.map +1 -1
- package/dist/store/internal/namespace-match.js.map +1 -1
- package/dist/store/internal/query.js.map +1 -1
- package/dist/store/internal/ranker.d.ts.map +1 -1
- package/dist/store/internal/ranker.js +3 -1
- package/dist/store/internal/ranker.js.map +1 -1
- package/dist/store/internal/semantic-search.js.map +1 -1
- package/dist/store/internal/setup.d.ts +1 -0
- package/dist/store/internal/setup.d.ts.map +1 -1
- package/dist/store/internal/setup.js +8 -1
- package/dist/store/internal/setup.js.map +1 -1
- package/dist/store/internal/validation.js.map +1 -1
- package/dist/store/store.d.ts +9 -0
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +14 -0
- package/dist/store/store.js.map +1 -1
- package/dist/store/types.d.ts +2 -0
- package/dist/store/types.d.ts.map +1 -1
- package/package.json +28 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphans.d.ts","sourceRoot":"","sources":["../../../../src/shared/codec/s3/orphans.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"orphans.d.ts","sourceRoot":"","sources":["../../../../src/shared/codec/s3/orphans.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAgBD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,EACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -2,26 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cleanUpS3Orphans = cleanUpS3Orphans;
|
|
4
4
|
const backoff_1 = require("../../dynamodb/backoff");
|
|
5
|
+
const retry_1 = require("./retry");
|
|
5
6
|
const DEFAULT_MAX_ATTEMPTS = 3;
|
|
6
7
|
const BASE_DELAY_MS = 100;
|
|
7
|
-
const RETRYABLE_S3_SIGNALS = [
|
|
8
|
-
'SlowDown',
|
|
9
|
-
'InternalError',
|
|
10
|
-
'ServiceUnavailable',
|
|
11
|
-
'RequestTimeout',
|
|
12
|
-
'ThrottlingException',
|
|
13
|
-
'ECONNRESET',
|
|
14
|
-
'ETIMEDOUT',
|
|
15
|
-
'NetworkingError',
|
|
16
|
-
];
|
|
17
|
-
function isTransientS3Error(error) {
|
|
18
|
-
const fields = error;
|
|
19
|
-
const status = fields.$metadata?.httpStatusCode;
|
|
20
|
-
if (typeof status === 'number' && (status === 429 || (status >= 500 && status < 600)))
|
|
21
|
-
return true;
|
|
22
|
-
const signals = [fields.name, fields.code].filter((value) => typeof value === 'string');
|
|
23
|
-
return signals.some((signal) => RETRYABLE_S3_SIGNALS.some((retryable) => signal.includes(retryable)));
|
|
24
|
-
}
|
|
25
8
|
/**
|
|
26
9
|
* Wait out one backoff window, cancellable via `options.signal`. Resolves `true`
|
|
27
10
|
* when the signal aborts the wait (so the caller stops retrying) and `false`
|
|
@@ -39,8 +22,10 @@ async function backoffSleep(delayMs, options) {
|
|
|
39
22
|
/**
|
|
40
23
|
* Best-effort delete of S3 objects orphaned by a failed DynamoDB write. Retries
|
|
41
24
|
* transient errors with full-jitter backoff; on persistent failure or when S3
|
|
42
|
-
* reports keys it could not delete, it logs at `warn`
|
|
43
|
-
*
|
|
25
|
+
* reports keys it could not delete, it logs at `warn` and never throws — the
|
|
26
|
+
* sole non-throwing path in the library. There is no automatic backstop: an
|
|
27
|
+
* S3 lifecycle rule sweeps the leftovers only if one was provisioned via
|
|
28
|
+
* `ensureS3LifecycleRule()`, which is opt-in.
|
|
44
29
|
*/
|
|
45
30
|
async function cleanUpS3Orphans(offloader, keys, context, logger, options = {}) {
|
|
46
31
|
const orphans = keys.filter((key) => typeof key === 'string' && key.length > 0);
|
|
@@ -54,19 +39,19 @@ async function cleanUpS3Orphans(offloader, keys, context, logger, options = {})
|
|
|
54
39
|
const failed = await offloader.deleteBatch(orphans);
|
|
55
40
|
if (failed.length === 0)
|
|
56
41
|
return;
|
|
57
|
-
logger.warn(`Some orphaned S3 objects could not be deleted after ${context}; lifecycle rule
|
|
42
|
+
logger.warn(`Some orphaned S3 objects could not be deleted after ${context}; a lifecycle rule from ensureS3LifecycleRule() would sweep them, otherwise clean up manually`, { failedCount: failed.length });
|
|
58
43
|
return;
|
|
59
44
|
}
|
|
60
45
|
catch (error) {
|
|
61
46
|
lastError = error;
|
|
62
|
-
if (attempt >= maxAttempts || !isTransientS3Error(lastError))
|
|
47
|
+
if (attempt >= maxAttempts || !(0, retry_1.isTransientS3Error)(lastError))
|
|
63
48
|
break;
|
|
64
49
|
if (await backoffSleep(delay, options))
|
|
65
50
|
break;
|
|
66
51
|
delay = (0, backoff_1.nextBackoffDelay)(delay);
|
|
67
52
|
}
|
|
68
53
|
}
|
|
69
|
-
logger.warn(`Failed to clean up orphaned S3 objects after ${context}; lifecycle rule
|
|
54
|
+
logger.warn(`Failed to clean up orphaned S3 objects after ${context}; a lifecycle rule from ensureS3LifecycleRule() would sweep them, otherwise clean up manually`, {
|
|
70
55
|
message: lastError.message,
|
|
71
56
|
});
|
|
72
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphans.js","sourceRoot":"","sources":["../../../../src/shared/codec/s3/orphans.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orphans.js","sourceRoot":"","sources":["../../../../src/shared/codec/s3/orphans.ts"],"names":[],"mappings":";;;AAAA,oDAA6E;AAG7E,mCAA6C;AAE7C,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,aAAa,GAAG,GAAG,CAAC;AAS1B;;;;GAIG;AACH,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,OAA6B;IACxE,IAAI,CAAC;QACH,MAAM,IAAA,eAAK,EAAC,IAAA,oBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,2BACV,SAAsB,EACtB,IAAuC,EACvC,OAAe,EACf,MAAc,EACd,OAAO,GAAyB,EAAE;IAElC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;IAChE,IAAI,KAAK,GAAG,aAAa,CAAC;IAC1B,IAAI,SAAS,GAAG,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC3D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAChC,MAAM,CAAC,IAAI,CACT,uDAAuD,OAAO,+FAA+F,EAC7J,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAC/B,CAAC;YACF,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAc,CAAC;YAC3B,IAAI,OAAO,IAAI,WAAW,IAAI,CAAC,IAAA,0BAAkB,EAAC,SAAS,CAAC;gBAAE,MAAM;YACpE,IAAI,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;gBAAE,MAAM;YAC9C,KAAK,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,MAAM,CAAC,IAAI,CACT,gDAAgD,OAAO,+FAA+F,EACtJ;QACE,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-write.d.ts","sourceRoot":"","sources":["../../../../src/shared/codec/s3/read-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"read-write.d.ts","sourceRoot":"","sources":["../../../../src/shared/codec/s3/read-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,oBAAoB,CAAC;AAQzE,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qEAAqE;AACrE,wBAAsB,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBxF;AAED,yFAAyF;AACzF,wBAAsB,cAAc,CAClC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC,CAqBrB"}
|
|
@@ -2,41 +2,42 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.uploadObject = uploadObject;
|
|
4
4
|
exports.downloadObject = downloadObject;
|
|
5
|
+
const retry_1 = require("../../dynamodb/retry");
|
|
6
|
+
const base_error_1 = require("../../errors/base-error");
|
|
5
7
|
const error_code_1 = require("../../errors/error-code");
|
|
6
|
-
const wrap_error_1 = require("../../errors/wrap-error");
|
|
7
8
|
const client_1 = require("./client");
|
|
9
|
+
const retry_2 = require("./retry");
|
|
8
10
|
/** Upload `data` to S3, wrapping failures as `S3_OFFLOAD_FAILED`. */
|
|
9
11
|
async function uploadObject(client, params) {
|
|
10
12
|
const { PutObjectCommand } = await (0, client_1.loadS3Sdk)();
|
|
11
13
|
try {
|
|
12
|
-
await client.send(new PutObjectCommand({
|
|
14
|
+
await (0, retry_1.withRetry)(() => client.send(new PutObjectCommand({
|
|
13
15
|
Bucket: params.bucket,
|
|
14
16
|
Key: params.key,
|
|
15
17
|
Body: params.data,
|
|
16
18
|
ContentType: 'application/octet-stream',
|
|
17
19
|
ServerSideEncryption: params.serverSideEncryption,
|
|
18
20
|
...(params.sseKmsKeyId ? { SSEKMSKeyId: params.sseKmsKeyId } : {}),
|
|
19
|
-
}));
|
|
21
|
+
})), { maxAttempts: 3, retryableErrors: retry_2.RETRYABLE_S3_SIGNALS });
|
|
20
22
|
}
|
|
21
23
|
catch (error) {
|
|
22
|
-
throw
|
|
23
|
-
operation: 'upload',
|
|
24
|
-
key: params.key,
|
|
25
|
-
});
|
|
24
|
+
throw new base_error_1.DynamoDbLangGraphError(error.message, error_code_1.ErrorCode.S3_OFFLOAD_FAILED, { operation: 'upload', key: params.key }, error);
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
/** Download an object's bytes, wrapping failures/empty bodies as `S3_OFFLOAD_FAILED`. */
|
|
29
28
|
async function downloadObject(client, bucket, key) {
|
|
30
29
|
const { GetObjectCommand } = await (0, client_1.loadS3Sdk)();
|
|
31
30
|
try {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
return await (0, retry_1.withRetry)(async () => {
|
|
32
|
+
const response = await client.send(new GetObjectCommand({ Bucket: bucket, Key: key }));
|
|
33
|
+
if (!response.Body) {
|
|
34
|
+
throw new Error(`S3 object body is empty for key: ${key}`);
|
|
35
|
+
}
|
|
36
|
+
return new Uint8Array(await response.Body.transformToByteArray());
|
|
37
|
+
}, { maxAttempts: 3, retryableErrors: retry_2.RETRYABLE_S3_SIGNALS });
|
|
37
38
|
}
|
|
38
39
|
catch (error) {
|
|
39
|
-
throw
|
|
40
|
+
throw new base_error_1.DynamoDbLangGraphError(error.message, error_code_1.ErrorCode.S3_OFFLOAD_FAILED, { operation: 'download', key }, error);
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
//# sourceMappingURL=read-write.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-write.js","sourceRoot":"","sources":["../../../../src/shared/codec/s3/read-write.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"read-write.js","sourceRoot":"","sources":["../../../../src/shared/codec/s3/read-write.ts"],"names":[],"mappings":";;;;AAEA,gDAAiD;AACjD,wDAAiE;AACjE,wDAAoD;AACpD,qCAAqC;AACrC,mCAA+C;AAW/C,qEAAqE;AAC9D,KAAK,uBAAuB,MAAgB,EAAE,MAAoB;IACvE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,IAAA,iBAAS,EACb,GAAG,EAAE,CACH,MAAM,CAAC,IAAI,CACT,IAAI,gBAAgB,CAAC;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,0BAA0B;YACvC,oBAAoB,EAAE,MAAM,CAAC,oBAAwD;YACrF,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC,CACH,EACH,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,4BAAoB,EAAE,CAC1D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,mCAAsB,CAC7B,KAAe,CAAC,OAAO,EACxB,sBAAS,CAAC,iBAAiB,EAC3B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EACxC,KAAc,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,yFAAyF;AAClF,KAAK,yBACV,MAAgB,EAChB,MAAc,EACd,GAAW;IAEX,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,iBAAS,EACpB,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACpE,CAAC,EACD,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,4BAAoB,EAAE,CAC1D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,mCAAsB,CAC7B,KAAe,CAAC,OAAO,EACxB,sBAAS,CAAC,iBAAiB,EAC3B,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,EAC9B,KAAc,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const RETRYABLE_S3_SIGNALS: readonly string[];
|
|
2
|
+
export { RETRYABLE_S3_SIGNALS };
|
|
3
|
+
/** True when `error` looks like a transient S3 failure worth retrying. */
|
|
4
|
+
export declare function isTransientS3Error(error: Error): boolean;
|
|
5
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../../src/shared/codec/s3/retry.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAS1C,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAWxD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RETRYABLE_S3_SIGNALS = void 0;
|
|
4
|
+
exports.isTransientS3Error = isTransientS3Error;
|
|
5
|
+
const RETRYABLE_S3_SIGNALS = [
|
|
6
|
+
'SlowDown',
|
|
7
|
+
'InternalError',
|
|
8
|
+
'ServiceUnavailable',
|
|
9
|
+
'RequestTimeout',
|
|
10
|
+
'ThrottlingException',
|
|
11
|
+
'ECONNRESET',
|
|
12
|
+
'ETIMEDOUT',
|
|
13
|
+
'NetworkingError',
|
|
14
|
+
];
|
|
15
|
+
exports.RETRYABLE_S3_SIGNALS = RETRYABLE_S3_SIGNALS;
|
|
16
|
+
/** True when `error` looks like a transient S3 failure worth retrying. */
|
|
17
|
+
function isTransientS3Error(error) {
|
|
18
|
+
const fields = error;
|
|
19
|
+
const status = fields.$metadata?.httpStatusCode;
|
|
20
|
+
if (typeof status === 'number' && (status === 429 || (status >= 500 && status < 600)))
|
|
21
|
+
return true;
|
|
22
|
+
const signals = [fields.name, fields.code].filter((value) => typeof value === 'string');
|
|
23
|
+
return signals.some((signal) => RETRYABLE_S3_SIGNALS.some((retryable) => signal.includes(retryable)));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../../src/shared/codec/s3/retry.ts"],"names":[],"mappings":";;;;AAAA,MAAM,oBAAoB,GAAsB;IAC9C,UAAU;IACV,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,qBAAqB;IACrB,YAAY;IACZ,WAAW;IACX,iBAAiB;CAClB,CAAC;QAEO,oBAAoB;AAE7B,0EAA0E;AAC1E,4BAAmC,KAAY;IAC7C,MAAM,MAAM,GAAG,KAAkF,CAAC;IAClG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC;IAChD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAC/C,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACtD,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7B,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CACrE,CAAC;AACJ,CAAC"}
|
|
@@ -32,6 +32,18 @@ export declare const DEFAULT_COMPRESSION_LEVEL = 6;
|
|
|
32
32
|
export declare const DEFAULT_MAX_DECOMPRESSED_BYTES: number;
|
|
33
33
|
/** Default maximum attempts for transient-error retries. */
|
|
34
34
|
export declare const DEFAULT_RETRY_MAX_ATTEMPTS = 5;
|
|
35
|
+
/**
|
|
36
|
+
* Max attempts for the message-append transaction. It shares one session's
|
|
37
|
+
* metadata row across every concurrent `addMessages` caller on that session,
|
|
38
|
+
* so a burst of concurrent appends can collide repeatedly; combined with the
|
|
39
|
+
* existing 100ms base / 5000ms cap backoff, this keeps worst-case retrying
|
|
40
|
+
* within AWS's documented guidance to bound conflict retries to "around one
|
|
41
|
+
* minute" (see DynamoDB's "Error retries and exponential backoff" guide).
|
|
42
|
+
* This bound is exact, not a floor: the DynamoDB client disables the AWS
|
|
43
|
+
* SDK's own internal retries by default (see `resolveDynamoDBClient`), so
|
|
44
|
+
* this is the only retry layer in play.
|
|
45
|
+
*/
|
|
46
|
+
export declare const MESSAGE_APPEND_RETRY_MAX_ATTEMPTS = 18;
|
|
35
47
|
/** Default cap on candidates the in-DB semantic ranker will score. */
|
|
36
48
|
export declare const DEFAULT_MAX_SEARCH_CANDIDATES = 1000;
|
|
37
49
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,eAAO,MAAM,YAAY,QAAU,CAAC;AAEpC,oDAAoD;AACpD,eAAO,MAAM,eAAe,QAA2B,CAAC;AAExD,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C,yDAAyD;AACzD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,mDAAmD;AACnD,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,8FAA8F;AAC9F,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,mDAAmD;AACnD,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,6DAA6D;AAC7D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,qEAAqE;AACrE,eAAO,MAAM,8BAA8B,QAAmB,CAAC;AAE/D,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,eAAO,MAAM,YAAY,QAAU,CAAC;AAEpC,oDAAoD;AACpD,eAAO,MAAM,eAAe,QAA2B,CAAC;AAExD,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C,yDAAyD;AACzD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,mDAAmD;AACnD,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,8FAA8F;AAC9F,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,mDAAmD;AACnD,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,6DAA6D;AAC7D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,qEAAqE;AACrE,eAAO,MAAM,8BAA8B,QAAmB,CAAC;AAE/D,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,OAAO,CAAC"}
|
package/dist/shared/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_MAX_SEARCH_CANDIDATES = exports.DEFAULT_RETRY_MAX_ATTEMPTS = exports.DEFAULT_MAX_DECOMPRESSED_BYTES = exports.DEFAULT_COMPRESSION_LEVEL = exports.DEFAULT_COMPRESSION_MIN_BYTES = exports.DEFAULT_S3_SSE = exports.DEFAULT_S3_KEY_PREFIX = exports.DEFAULT_S3_THRESHOLD_BYTES = exports.S3_DELETE_BATCH_MAX = exports.MAX_BACKOFF_DELAY_MS = exports.INITIAL_BACKOFF_DELAY_MS = exports.MAX_UNPROCESSED_RETRIES = exports.BATCH_GET_MAX = exports.BATCH_WRITE_MAX = exports.MAX_TOTAL_ITEMS_IN_MEMORY = exports.MAX_LOOP_ITERATIONS = exports.MAX_TTL_SECONDS = exports.MAX_TTL_DAYS = void 0;
|
|
3
|
+
exports.DEFAULT_MAX_SEARCH_CANDIDATES = exports.MESSAGE_APPEND_RETRY_MAX_ATTEMPTS = exports.DEFAULT_RETRY_MAX_ATTEMPTS = exports.DEFAULT_MAX_DECOMPRESSED_BYTES = exports.DEFAULT_COMPRESSION_LEVEL = exports.DEFAULT_COMPRESSION_MIN_BYTES = exports.DEFAULT_S3_SSE = exports.DEFAULT_S3_KEY_PREFIX = exports.DEFAULT_S3_THRESHOLD_BYTES = exports.S3_DELETE_BATCH_MAX = exports.MAX_BACKOFF_DELAY_MS = exports.INITIAL_BACKOFF_DELAY_MS = exports.MAX_UNPROCESSED_RETRIES = exports.BATCH_GET_MAX = exports.BATCH_WRITE_MAX = exports.MAX_TOTAL_ITEMS_IN_MEMORY = exports.MAX_LOOP_ITERATIONS = exports.MAX_TTL_SECONDS = exports.MAX_TTL_DAYS = void 0;
|
|
4
4
|
/** Maximum TTL expressed in days (5 years). */
|
|
5
5
|
exports.MAX_TTL_DAYS = 365 * 5;
|
|
6
6
|
/** Maximum TTL expressed in seconds (100 years). */
|
|
@@ -35,6 +35,18 @@ exports.DEFAULT_COMPRESSION_LEVEL = 6;
|
|
|
35
35
|
exports.DEFAULT_MAX_DECOMPRESSED_BYTES = 50 * 1024 * 1024;
|
|
36
36
|
/** Default maximum attempts for transient-error retries. */
|
|
37
37
|
exports.DEFAULT_RETRY_MAX_ATTEMPTS = 5;
|
|
38
|
+
/**
|
|
39
|
+
* Max attempts for the message-append transaction. It shares one session's
|
|
40
|
+
* metadata row across every concurrent `addMessages` caller on that session,
|
|
41
|
+
* so a burst of concurrent appends can collide repeatedly; combined with the
|
|
42
|
+
* existing 100ms base / 5000ms cap backoff, this keeps worst-case retrying
|
|
43
|
+
* within AWS's documented guidance to bound conflict retries to "around one
|
|
44
|
+
* minute" (see DynamoDB's "Error retries and exponential backoff" guide).
|
|
45
|
+
* This bound is exact, not a floor: the DynamoDB client disables the AWS
|
|
46
|
+
* SDK's own internal retries by default (see `resolveDynamoDBClient`), so
|
|
47
|
+
* this is the only retry layer in play.
|
|
48
|
+
*/
|
|
49
|
+
exports.MESSAGE_APPEND_RETRY_MAX_ATTEMPTS = 18;
|
|
38
50
|
/** Default cap on candidates the in-DB semantic ranker will score. */
|
|
39
51
|
exports.DEFAULT_MAX_SEARCH_CANDIDATES = 1000;
|
|
40
52
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAClC,QAAA,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC;AAEpC,oDAAoD;AACvC,QAAA,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAExD,yEAAyE;AAC5D,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,wEAAwE;AAC3D,QAAA,yBAAyB,GAAG,KAAK,CAAC;AAE/C,yDAAyD;AAC5C,QAAA,eAAe,GAAG,EAAE,CAAC;AAElC,mDAAmD;AACtC,QAAA,aAAa,GAAG,GAAG,CAAC;AAEjC,mEAAmE;AACtD,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE1C,2EAA2E;AAC9D,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C,6CAA6C;AAChC,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAEzC,iDAAiD;AACpC,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,8FAA8F;AACjF,QAAA,0BAA0B,GAAG,GAAG,GAAG,IAAI,CAAC;AAErD,oDAAoD;AACvC,QAAA,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D,mDAAmD;AACtC,QAAA,cAAc,GAAG,QAAQ,CAAC;AAEvC,yEAAyE;AAC5D,QAAA,6BAA6B,GAAG,IAAI,CAAC;AAElD,6DAA6D;AAChD,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAE3C,qEAAqE;AACxD,QAAA,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/D,4DAA4D;AAC/C,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAE5C,sEAAsE;AACzD,QAAA,6BAA6B,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAClC,QAAA,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC;AAEpC,oDAAoD;AACvC,QAAA,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAExD,yEAAyE;AAC5D,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,wEAAwE;AAC3D,QAAA,yBAAyB,GAAG,KAAK,CAAC;AAE/C,yDAAyD;AAC5C,QAAA,eAAe,GAAG,EAAE,CAAC;AAElC,mDAAmD;AACtC,QAAA,aAAa,GAAG,GAAG,CAAC;AAEjC,mEAAmE;AACtD,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE1C,2EAA2E;AAC9D,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C,6CAA6C;AAChC,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAEzC,iDAAiD;AACpC,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,8FAA8F;AACjF,QAAA,0BAA0B,GAAG,GAAG,GAAG,IAAI,CAAC;AAErD,oDAAoD;AACvC,QAAA,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D,mDAAmD;AACtC,QAAA,cAAc,GAAG,QAAQ,CAAC;AAEvC,yEAAyE;AAC5D,QAAA,6BAA6B,GAAG,IAAI,CAAC;AAElD,6DAA6D;AAChD,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAE3C,qEAAqE;AACxD,QAAA,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/D,4DAA4D;AAC/C,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAE5C;;;;;;;;;;GAUG;AACU,QAAA,iCAAiC,GAAG,EAAE,CAAC;AAEpD,sEAAsE;AACzD,QAAA,6BAA6B,GAAG,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backoff.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/backoff.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backoff.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/backoff.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoD;AACpD,6CAA8C;AAE9C;;;;GAIG;AACH,eAAsB,EAAU,EAAE,MAAoB;IACpD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,mBAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,mBAAU,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,0BAAiC,SAAiB,EAAE,KAAK,GAAW,gCAAoB;IACtF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,oBAA2B,OAAe,EAAE,GAAG,GAAiB,IAAI,CAAC,MAAM;IACzE,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC;AACzB,CAAC"}
|
|
@@ -3,8 +3,11 @@ import { DrainOptions } from './drain-unprocessed';
|
|
|
3
3
|
import type { WriteRequest } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Write an arbitrary number of requests, chunked into batches of 25 (the
|
|
6
|
-
* BatchWriteItem limit).
|
|
7
|
-
*
|
|
6
|
+
* BatchWriteItem limit). Every chunk is attempted regardless of an earlier
|
|
7
|
+
* chunk's failure — order-independent writes (deletes/puts) should never
|
|
8
|
+
* lose "later" chunks just because an earlier one failed. If any chunk fails,
|
|
9
|
+
* throws {@link BatchWriteAllIncompleteError} reporting exactly how many
|
|
10
|
+
* chunks succeeded vs. failed once every chunk has been attempted.
|
|
8
11
|
*/
|
|
9
12
|
export declare function batchWriteAll(client: DynamoDBDocument, tableName: string, requests: WriteRequest[], options?: DrainOptions): Promise<void>;
|
|
10
13
|
//# sourceMappingURL=batch-write.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-write.d.ts","sourceRoot":"","sources":["../../../src/shared/dynamodb/batch-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-write.d.ts","sourceRoot":"","sources":["../../../src/shared/dynamodb/batch-write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,OAAO,EAAE,YAAY,EAA0B,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -2,16 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.batchWriteAll = batchWriteAll;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
|
+
const errors_1 = require("../errors/errors");
|
|
5
6
|
const drain_unprocessed_1 = require("./drain-unprocessed");
|
|
6
7
|
/**
|
|
7
8
|
* Write an arbitrary number of requests, chunked into batches of 25 (the
|
|
8
|
-
* BatchWriteItem limit).
|
|
9
|
-
*
|
|
9
|
+
* BatchWriteItem limit). Every chunk is attempted regardless of an earlier
|
|
10
|
+
* chunk's failure — order-independent writes (deletes/puts) should never
|
|
11
|
+
* lose "later" chunks just because an earlier one failed. If any chunk fails,
|
|
12
|
+
* throws {@link BatchWriteAllIncompleteError} reporting exactly how many
|
|
13
|
+
* chunks succeeded vs. failed once every chunk has been attempted.
|
|
10
14
|
*/
|
|
11
15
|
async function batchWriteAll(client, tableName, requests, options = {}) {
|
|
16
|
+
const totalChunks = Math.ceil(requests.length / constants_1.BATCH_WRITE_MAX);
|
|
17
|
+
let succeededChunks = 0;
|
|
18
|
+
const failedChunks = [];
|
|
12
19
|
for (let offset = 0; offset < requests.length; offset += constants_1.BATCH_WRITE_MAX) {
|
|
13
20
|
const chunk = requests.slice(offset, offset + constants_1.BATCH_WRITE_MAX);
|
|
14
|
-
|
|
21
|
+
try {
|
|
22
|
+
await (0, drain_unprocessed_1.drainUnprocessedWrites)(client, tableName, chunk, options);
|
|
23
|
+
succeededChunks += 1;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
failedChunks.push(error);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (failedChunks.length > 0) {
|
|
30
|
+
throw new errors_1.BatchWriteAllIncompleteError(succeededChunks, totalChunks, failedChunks);
|
|
15
31
|
}
|
|
16
32
|
}
|
|
17
33
|
//# sourceMappingURL=batch-write.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-write.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/batch-write.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"batch-write.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/batch-write.ts"],"names":[],"mappings":";;;AAEA,4CAA+C;AAC/C,6CAAgE;AAChE,2DAA2E;AAG3E;;;;;;;GAOG;AACI,KAAK,wBACV,MAAwB,EACxB,SAAiB,EACjB,QAAwB,EACxB,OAAO,GAAiB,EAAE;IAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,2BAAe,CAAC,CAAC;IACjE,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,YAAY,GAAY,EAAE,CAAC;IACjC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,2BAAe,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,2BAAe,CAAC,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,IAAA,0CAAsB,EAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChE,eAAe,IAAI,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,qCAA4B,CAAC,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
|
@@ -13,7 +13,7 @@ function resolveDynamoDBClient(options) {
|
|
|
13
13
|
return { ddbClient: undefined, client: options.client, ownsClient: false };
|
|
14
14
|
}
|
|
15
15
|
const createClient = options.createClient ?? ((config) => new client_dynamodb_1.DynamoDBClient(config));
|
|
16
|
-
const ddbClient = createClient(options.clientConfig
|
|
16
|
+
const ddbClient = createClient({ maxAttempts: 1, ...options.clientConfig });
|
|
17
17
|
return { ddbClient, client: lib_dynamodb_1.DynamoDBDocument.from(ddbClient), ownsClient: true };
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/client.ts"],"names":[],"mappings":";;;AAAA,8DAAqF;AACrF,wDAAyD;AAgBzD;;;;GAIG;AACH,+BAAsC,OAA6B;IACjE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC7E,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,gCAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,+BAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACnF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-unprocessed.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/drain-unprocessed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drain-unprocessed.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/drain-unprocessed.ts"],"names":[],"mappings":";;;AAEA,4CAAiF;AACjF,6CAA6D;AAC7D,uCAAgE;AAChE,mCAA4C;AAU5C;;;;GAIG;AACI,KAAK,iCACV,MAAwB,EACxB,SAAiB,EACjB,QAAwB,EACxB,OAAO,GAAiB,EAAE;IAE1B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mCAAuB,CAAC;IACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;IACrC,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,KAAK,GAAG,oCAAwB,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAiB,EACpC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EACnE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAC;QACF,MAAM,QAAQ,GAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAgC,IAAI,EAAE,CAAC;QAC5F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAClC,OAAO,IAAI,CAAC,CAAC;QACb,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,MAAM,IAAI,kCAAyB,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,IAAA,eAAK,EAAC,IAAA,oBAAU,EAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,KAAK,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;QAChC,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate-core.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/paginate-core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paginate-core.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/paginate-core.ts"],"names":[],"mappings":";;;AAAA,4CAA8E;AAC9E,6CAAoE;AAgBpE,iFAAiF;AACjF,SAAS,eAAe,CAAC,IAAgB,EAAE,KAAa;IACtD,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,cAAc,CAC5B,IAAgB,EAChB,KAA0B,EAC1B,QAAgB;IAEhB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACnB,IAAI,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;gBAAE,MAAM,IAAI,6BAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,SAAS,CAAC,eACpB,SAAiE,EACjE,OAAO,GAAwB,EAAE;IAEjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,qCAAyB,CAAC;IAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,+BAAmB,CAAC;IACnE,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC7B,IAAI,QAA6B,CAAC;IAClC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;QAC/D,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,IAAI,mBAAU,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO;QACzD,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QACxB,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;IACrC,CAAC;IACD,MAAM,IAAI,6BAAoB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/paginate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/paginate.ts"],"names":[],"mappings":";;;AAEA,mDAA0E;AAC1E,mCAA4C;AAS5C;;;;GAIG;AACH,uBAA8B,OAAwB;IACpD,OAAO,IAAA,6BAAa,EAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAiB,EAClC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAC9E,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAC;QACF,OAAO;YACL,KAAK,EAAG,IAAI,CAAC,KAA+B,IAAI,EAAE;YAClD,OAAO,EAAE,IAAI,CAAC,gBAAuC;SACtD,CAAC;IACJ,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry-classifier.d.ts","sourceRoot":"","sources":["../../../src/shared/dynamodb/retry-classifier.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"retry-classifier.d.ts","sourceRoot":"","sources":["../../../src/shared/dynamodb/retry-classifier.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAiBrD,CAAC;AAwDF,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAK1F"}
|
|
@@ -15,6 +15,9 @@ exports.DEFAULT_RETRYABLE_ERRORS = [
|
|
|
15
15
|
'InternalServerError',
|
|
16
16
|
'ServiceUnavailable',
|
|
17
17
|
'TransactionConflictException',
|
|
18
|
+
'TransactionInProgressException',
|
|
19
|
+
'RequestTimeout',
|
|
20
|
+
'RequestTimeoutException',
|
|
18
21
|
'ECONNRESET',
|
|
19
22
|
'ECONNREFUSED',
|
|
20
23
|
'ETIMEDOUT',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry-classifier.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/retry-classifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry-classifier.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/retry-classifier.ts"],"names":[],"mappings":";;;;AAAA,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;;;GAIG;AACU,QAAA,wBAAwB,GAAsB;IACzD,wCAAwC;IACxC,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,8BAA8B;IAC9B,gCAAgC;IAChC,gBAAgB;IAChB,yBAAyB;IACzB,YAAY;IACZ,cAAc;IACd,WAAW;IACX,OAAO;IACP,WAAW;IACX,iBAAiB;IACjB,cAAc;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,8BAA8B,GAAsB;IACxD,MAAM;IACN,qBAAqB;IACrB,iBAAiB;IACjB,+BAA+B;CAChC,CAAC;AAOF;;;;GAIG;AACH,SAAS,gCAAgC,CAAC,KAAY;IACpD,MAAM,OAAO,GAAI,KAAwD,CAAC,mBAAmB,CAAC;IAC9F,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,OAAO,CAAC,KAAK,CAClB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,8BAA8B,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAC9F,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAY;IAClC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,IAAW,EAAE,KAAa,EAAQ,EAAE;QAChD,IAAI,KAAK,GAAG,eAAe,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3F,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,IAMd,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,CAAC,KAAK;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACf,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gFAAgF;AAChF,0BAAiC,KAAY,EAAE,eAAkC;IAC/E,MAAM,YAAY,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/retry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/retry.ts"],"names":[],"mappings":";;;;AAAA,4CAIsB;AACtB,6CAAmE;AACnE,qDAA+C;AAC/C,uCAA8C;AAC9C,yDAAgF;AAYhF,SAAS,eAAe,CAAC,OAAe,EAAE,IAAY,EAAE,GAAW,EAAE,GAAiB;IACpF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAA,oBAAU,EAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAUD,8CAA8C;AAC9C,SAAS,mBAAmB,CAAC,OAAqB;IAChD,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,sCAA0B;QAC9D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,oCAAwB;QAC5D,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,gCAAoB;QACtD,SAAS,EAAE,OAAO,CAAC,eAAe,IAAI,2CAAwB;QAC9D,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM;KAChC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,oBAAuB,EAAoB,EAAE,OAAO,GAAiB,EAAE;IACjF,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE9F,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,MAAM,IAAI,mBAAU,EAAE,CAAC;IAEpD,IAAI,SAAS,GAAU,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC/D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,IAAA,oBAAO,EAAC,KAAc,CAAC,CAAC;YACpC,IAAI,CAAC,IAAA,mCAAgB,EAAC,SAAS,EAAE,SAAS,CAAC;gBAAE,MAAM,SAAS,CAAC;YAC7D,IAAI,OAAO,KAAK,WAAW;gBAAE,MAAM;YACnC,MAAM,IAAA,eAAK,EAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,MAAM,IAAI,4BAAmB,CAC3B,0BAA0B,WAAW,cAAc,SAAS,CAAC,OAAO,EAAE,EACtE,WAAW,EACX,SAAS,CACV,CAAC;AACJ,CAAC;AAED,wDAAwD;AACjD,KAAK,4BACV,EAAoB,EACpB,SAAiC;IAEjC,OAAO,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,sCAA0B,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/scan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/shared/dynamodb/scan.ts"],"names":[],"mappings":";;;AAEA,mDAA0E;AAC1E,mCAA4C;AAS5C;;;;GAIG;AACH,sBAA6B,OAAoB;IAC/C,OAAO,IAAA,6BAAa,EAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAiB,EAClC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAC7E,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAC;QACF,OAAO;YACL,KAAK,EAAG,IAAI,CAAC,KAA+B,IAAI,EAAE;YAClD,OAAO,EAAE,IAAI,CAAC,gBAAuC;SACtD,CAAC;IACJ,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-error.d.ts","sourceRoot":"","sources":["../../../src/shared/errors/base-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"base-error.d.ts","sourceRoot":"","sources":["../../../src/shared/errors/base-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAE/B,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB,EAAE,KAAK,CAAC,EAAE,KAAK,EAMtF;CACF;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,sBAAsB,CAEtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-error.js","sourceRoot":"","sources":["../../../src/shared/errors/base-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-error.js","sourceRoot":"","sources":["../../../src/shared/errors/base-error.ts"],"names":[],"mappings":";;;;AAEA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AAU5E;;;;;GAKG;AACH,4BAAoC,SAAQ,KAAK;IACtC,IAAI,CAAY;IAChB,OAAO,CAAe;IAE/B,YAAY,OAAe,EAAE,IAAe,EAAE,OAAO,GAAiB,EAAE,EAAE,KAAa;QACrF,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF;;AAED,gFAAgF;AAChF,kCAAyC,KAAY;IACnD,OAAO,WAAW,IAAI,KAAK,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-code.js","sourceRoot":"","sources":["../../../src/shared/errors/error-code.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AAC7E,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,sCAAyB,CAAA;IACzB,sDAAyC,CAAA;IACzC,gDAAmC,CAAA;IACnC,8DAAiD,CAAA;IACjD,oDAAuC,CAAA;IACvC,oDAAuC,CAAA;IACvC,kDAAqC,CAAA;IACrC,gCAAmB,CAAA;IACnB,wDAA2C,CAAA;AAC7C,CAAC,EAVW,SAAS,
|
|
1
|
+
{"version":3,"file":"error-code.js","sourceRoot":"","sources":["../../../src/shared/errors/error-code.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AAC7E,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,sCAAyB,CAAA;IACzB,sDAAyC,CAAA;IACzC,gDAAmC,CAAA;IACnC,8DAAiD,CAAA;IACjD,oDAAuC,CAAA;IACvC,oDAAuC,CAAA;IACvC,kDAAqC,CAAA;IACrC,gCAAmB,CAAA;IACnB,wDAA2C,CAAA;AAC7C,CAAC,EAVW,SAAS,aAAT,SAAS,GAAT,SAAS,QAUpB"}
|
|
@@ -34,6 +34,19 @@ export declare class BatchWriteIncompleteError extends DynamoDbLangGraphError {
|
|
|
34
34
|
readonly unprocessed: WriteRequest[];
|
|
35
35
|
constructor(succeededCount: number, unprocessed: WriteRequest[], retries: number);
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* batchWriteAll attempts every chunk rather than stopping at the first
|
|
39
|
+
* failure — a mid-sequence chunk failing does not abandon the chunks after
|
|
40
|
+
* it. `failedChunks` holds each failing chunk's own error (commonly a
|
|
41
|
+
* {@link BatchWriteIncompleteError}); every chunk not represented there
|
|
42
|
+
* drained successfully and its writes persist — there is no rollback.
|
|
43
|
+
*/
|
|
44
|
+
export declare class BatchWriteAllIncompleteError extends DynamoDbLangGraphError {
|
|
45
|
+
readonly succeededChunks: number;
|
|
46
|
+
readonly totalChunks: number;
|
|
47
|
+
readonly failedChunks: Error[];
|
|
48
|
+
constructor(succeededChunks: number, totalChunks: number, failedChunks: Error[]);
|
|
49
|
+
}
|
|
37
50
|
/**
|
|
38
51
|
* A compensating rollback failed after an append-saga chunk error, so the
|
|
39
52
|
* trigger error could not be cleanly undone. Carries the original trigger as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,mEAAmE;AACnE,qBAAa,eAAgB,SAAQ,sBAAsB;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,mEAAmE;AACnE,qBAAa,eAAgB,SAAQ,sBAAsB;IACzD,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAG1C;CACF;AAED,2EAA2E;AAC3E,qBAAa,aAAc,SAAQ,sBAAsB;IACvD,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAGzC;CACF;AAED,wDAAwD;AACxD,qBAAa,mBAAoB,SAAQ,sBAAsB;IAC7D,YAAY,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAG5D;CACF;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC9D,YAAY,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAOrC;CACF;AAED,sDAAsD;AACtD,qBAAa,UAAW,SAAQ,sBAAsB;IACpD,YAAY,OAAO,SAAsB,EAGxC;CACF;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,sBAAsB;IACnE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC;IAErC,YAAY,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAS/E;CACF;AAED;;;;;;GAMG;AACH,qBAAa,4BAA6B,SAAQ,sBAAsB;IACtE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;IAE/B,YAAY,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAY9E;CACF;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,sBAAsB;IACjE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAE9B,YAAY,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAS7C;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CompensationFailedError = exports.BatchWriteIncompleteError = exports.AbortError = exports.ResultTruncatedError = exports.RetryExhaustedError = exports.ConflictError = exports.ValidationError = void 0;
|
|
3
|
+
exports.CompensationFailedError = exports.BatchWriteAllIncompleteError = exports.BatchWriteIncompleteError = exports.AbortError = exports.ResultTruncatedError = exports.RetryExhaustedError = exports.ConflictError = exports.ValidationError = void 0;
|
|
4
4
|
const base_error_1 = require("./base-error");
|
|
5
5
|
const error_code_1 = require("./error-code");
|
|
6
6
|
/** Input failed a validation rule before any AWS call was made. */
|
|
@@ -64,6 +64,27 @@ class BatchWriteIncompleteError extends base_error_1.DynamoDbLangGraphError {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
exports.BatchWriteIncompleteError = BatchWriteIncompleteError;
|
|
67
|
+
/**
|
|
68
|
+
* batchWriteAll attempts every chunk rather than stopping at the first
|
|
69
|
+
* failure — a mid-sequence chunk failing does not abandon the chunks after
|
|
70
|
+
* it. `failedChunks` holds each failing chunk's own error (commonly a
|
|
71
|
+
* {@link BatchWriteIncompleteError}); every chunk not represented there
|
|
72
|
+
* drained successfully and its writes persist — there is no rollback.
|
|
73
|
+
*/
|
|
74
|
+
class BatchWriteAllIncompleteError extends base_error_1.DynamoDbLangGraphError {
|
|
75
|
+
succeededChunks;
|
|
76
|
+
totalChunks;
|
|
77
|
+
failedChunks;
|
|
78
|
+
constructor(succeededChunks, totalChunks, failedChunks) {
|
|
79
|
+
super(`batchWriteAll did not fully drain: ${succeededChunks}/${totalChunks} chunk(s) succeeded, ` +
|
|
80
|
+
`${failedChunks.length} failed. Writes in succeeded chunks already persisted.`, error_code_1.ErrorCode.BATCH_WRITE_INCOMPLETE, {}, failedChunks[0]);
|
|
81
|
+
this.name = 'BatchWriteAllIncompleteError';
|
|
82
|
+
this.succeededChunks = succeededChunks;
|
|
83
|
+
this.totalChunks = totalChunks;
|
|
84
|
+
this.failedChunks = failedChunks;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.BatchWriteAllIncompleteError = BatchWriteAllIncompleteError;
|
|
67
88
|
/**
|
|
68
89
|
* A compensating rollback failed after an append-saga chunk error, so the
|
|
69
90
|
* trigger error could not be cleanly undone. Carries the original trigger as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors/errors.ts"],"names":[],"mappings":";;;AACA,6CAAsD;AACtD,6CAAyC;AAEzC,mEAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors/errors.ts"],"names":[],"mappings":";;;AACA,6CAAsD;AACtD,6CAAyC;AAEzC,mEAAmE;AACnE,qBAA6B,SAAQ,mCAAsB;IACzD,YAAY,OAAe,EAAE,KAAc;QACzC,KAAK,CAAC,OAAO,EAAE,sBAAS,CAAC,UAAU,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;;AAED,2EAA2E;AAC3E,mBAA2B,SAAQ,mCAAsB;IACvD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,sBAAS,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;;AAED,wDAAwD;AACxD,yBAAiC,SAAQ,mCAAsB;IAC7D,YAAY,OAAe,EAAE,QAAiB,EAAE,KAAa;QAC3D,KAAK,CAAC,OAAO,EAAE,sBAAS,CAAC,eAAe,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;;AAED;;;;GAIG;AACH,0BAAkC,SAAQ,mCAAsB;IAC9D,YAAY,GAAW,EAAE,KAAa;QACpC,KAAK,CACH,mCAAmC,GAAG,SAAS,KAAK,4BAA4B,EAChF,sBAAS,CAAC,gBAAgB,EAC1B,EAAE,SAAS,EAAE,GAAG,EAAE,CACnB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;;AAED,sDAAsD;AACtD,gBAAwB,SAAQ,mCAAsB;IACpD,YAAY,OAAO,GAAG,mBAAmB;QACvC,KAAK,CAAC,OAAO,EAAE,sBAAS,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;;AAED;;;;GAIG;AACH,+BAAuC,SAAQ,mCAAsB;IAC1D,cAAc,CAAS;IACvB,WAAW,CAAiB;IAErC,YAAY,cAAsB,EAAE,WAA2B,EAAE,OAAe;QAC9E,KAAK,CACH,kCAAkC,OAAO,6BAA6B;YACpE,GAAG,cAAc,uBAAuB,WAAW,CAAC,MAAM,kBAAkB,EAC9E,sBAAS,CAAC,sBAAsB,CACjC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;;AAED;;;;;;GAMG;AACH,kCAA0C,SAAQ,mCAAsB;IAC7D,eAAe,CAAS;IACxB,WAAW,CAAS;IACpB,YAAY,CAAU;IAE/B,YAAY,eAAuB,EAAE,WAAmB,EAAE,YAAqB;QAC7E,KAAK,CACH,sCAAsC,eAAe,IAAI,WAAW,uBAAuB;YACzF,GAAG,YAAY,CAAC,MAAM,wDAAwD,EAChF,sBAAS,CAAC,sBAAsB,EAChC,EAAE,EACF,YAAY,CAAC,CAAC,CAAC,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;;AAED;;;;;GAKG;AACH,6BAAqC,SAAQ,mCAAsB;IACxD,aAAa,CAAQ;IAE9B,YAAY,KAAY,EAAE,aAAoB;QAC5C,KAAK,CACH,8CAA8C,KAAK,CAAC,OAAO,eAAe,aAAa,CAAC,OAAO,GAAG,EAClG,sBAAS,CAAC,mBAAmB,EAC7B,EAAE,EACF,KAAK,CACN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-error.js","sourceRoot":"","sources":["../../../src/shared/errors/wrap-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrap-error.js","sourceRoot":"","sources":["../../../src/shared/errors/wrap-error.ts"],"names":[],"mappings":";;;;AAAA,6CAA8F;AAG9F;;;;;GAKG;AACH,iBAAwB,KAAY;IAClC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,mBACE,KAAY,EACZ,IAAe,EACf,OAAsB;IAEtB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAA,qCAAwB,EAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,mCAAsB,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AACzF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/shared/logging/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/shared/logging/logger.ts"],"names":[],"mappings":";;;;AAWA,kFAAkF;AACrE,QAAA,aAAa,GAAW;IACnC,IAAI,KAAI,CAAC;IACT,IAAI,KAAI,CAAC;IACT,KAAK,KAAI,CAAC;IACV,KAAK,KAAI,CAAC;CACX,CAAC;AAEF,+EAA+E;AAC/E,uBAA8B,MAAe;IAC3C,OAAO,MAAM,IAAI,QAAA,aAAa,CAAC;AACjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../src/shared/logging/redaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAEpD,8DAA8D;AAC9D,MAAM,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../src/shared/logging/redaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAEpD,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GACpB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AA2B9F;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,QAAQ,GAAE,SAAS,MAAM,EAAgC,GACxD,UAAU,CAmBZ;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC9C,MAAM,CAYR"}
|
|
@@ -36,15 +36,20 @@ function redactSecrets(value, patterns = DEFAULT_SECRET_KEY_PATTERNS) {
|
|
|
36
36
|
if (seen.has(current))
|
|
37
37
|
return '[Circular]';
|
|
38
38
|
seen.add(current);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
try {
|
|
40
|
+
if (Array.isArray(current))
|
|
41
|
+
return current.map(walk);
|
|
42
|
+
if (isErrorShaped(current))
|
|
43
|
+
return current;
|
|
44
|
+
const out = {};
|
|
45
|
+
for (const [key, val] of Object.entries(current)) {
|
|
46
|
+
out[key] = isSecretKey(key, patterns) ? REDACTED : walk(val);
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
seen.delete(current);
|
|
46
52
|
}
|
|
47
|
-
return out;
|
|
48
53
|
};
|
|
49
54
|
return walk(value);
|
|
50
55
|
}
|