@farukada/aws-langgraph-dynamodb-ts 1.0.0-rc.2 → 1.0.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 +390 -193
- package/dist/{backfill → cjs/backfill}/backfill.d.ts +15 -12
- package/dist/cjs/backfill/backfill.js +177 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/delete-thread.d.ts +1 -1
- package/dist/cjs/checkpointer/actions/delete-thread.js +26 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/get-tuple.d.ts +4 -3
- package/dist/cjs/checkpointer/actions/get-tuple.js +22 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/list.d.ts +7 -4
- package/dist/cjs/checkpointer/actions/list.js +70 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/put-writes.d.ts +8 -6
- package/dist/cjs/checkpointer/actions/put-writes.js +21 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/put.d.ts +21 -15
- package/dist/cjs/checkpointer/actions/put.js +79 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/delta-history.d.ts +38 -26
- package/dist/cjs/checkpointer/internal/delta-history.js +131 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/listing.d.ts +4 -4
- package/dist/cjs/checkpointer/internal/listing.js +104 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/parse.d.ts +51 -15
- package/dist/cjs/checkpointer/internal/parse.js +184 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/pending-writes.d.ts +64 -25
- package/dist/cjs/checkpointer/internal/pending-writes.js +241 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/read.d.ts +15 -10
- package/dist/cjs/checkpointer/internal/read.js +132 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/rows.d.ts +94 -21
- package/dist/cjs/checkpointer/internal/rows.js +356 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/setup.d.ts +13 -20
- package/dist/cjs/checkpointer/internal/setup.js +25 -0
- package/dist/{checkpointer → cjs/checkpointer}/saver.d.ts +72 -36
- package/dist/cjs/checkpointer/saver.js +56 -0
- package/dist/{checkpointer → cjs/checkpointer}/types.d.ts +1 -1
- package/dist/cjs/checkpointer/types.js +2 -0
- package/dist/{factory → cjs/factory}/factory.d.ts +25 -20
- package/dist/cjs/factory/factory.js +137 -0
- package/dist/{factory → cjs/factory}/types.d.ts +12 -12
- package/dist/cjs/factory/types.js +2 -0
- package/dist/{history → cjs/history}/actions/add-messages.d.ts +18 -10
- package/dist/cjs/history/actions/add-messages.js +17 -0
- package/dist/{history → cjs/history}/actions/clear.d.ts +1 -1
- package/dist/cjs/history/actions/clear.js +29 -0
- package/dist/{history → cjs/history}/actions/get-messages.d.ts +11 -9
- package/dist/cjs/history/actions/get-messages.js +58 -0
- package/dist/{history → cjs/history}/actions/list-sessions.d.ts +3 -3
- package/dist/cjs/history/actions/list-sessions.js +67 -0
- package/dist/{history → cjs/history}/actions/reconcile-count.d.ts +13 -9
- package/dist/cjs/history/actions/reconcile-count.js +8 -0
- package/dist/{history → cjs/history}/chat-message-history.d.ts +62 -30
- package/dist/cjs/history/chat-message-history.js +61 -0
- package/dist/{history → cjs/history}/internal/append.d.ts +64 -32
- package/dist/cjs/history/internal/append.js +267 -0
- package/dist/{history → cjs/history}/internal/message-read.d.ts +3 -3
- package/dist/cjs/history/internal/message-read.js +93 -0
- package/dist/{history → cjs/history}/internal/parse.d.ts +2 -2
- package/dist/cjs/history/internal/parse.js +113 -0
- package/dist/{history → cjs/history}/internal/rows.d.ts +11 -10
- package/dist/cjs/history/internal/rows.js +96 -0
- package/dist/{history → cjs/history}/internal/session.d.ts +41 -22
- package/dist/cjs/history/internal/session.js +296 -0
- package/dist/{history → cjs/history}/internal/setup.d.ts +2 -2
- package/dist/cjs/history/internal/setup.js +60 -0
- package/dist/{history → cjs/history}/session-adapter.d.ts +0 -6
- package/dist/cjs/history/session-adapter.js +38 -0
- package/dist/{history → cjs/history}/types.d.ts +18 -15
- package/dist/cjs/history/types.js +2 -0
- package/dist/{index.d.ts → cjs/index.d.ts} +27 -27
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/package.json +1 -0
- package/dist/{shared → cjs/shared}/adapter.d.ts +27 -16
- package/dist/cjs/shared/adapter.js +70 -0
- package/dist/cjs/shared/clock.js +14 -0
- package/dist/{shared → cjs/shared}/codec/codec.d.ts +37 -20
- package/dist/cjs/shared/codec/codec.js +162 -0
- package/dist/{shared → cjs/shared}/codec/compression.d.ts +9 -4
- package/dist/cjs/shared/codec/compression.js +45 -0
- package/dist/cjs/shared/codec/json-serde.js +58 -0
- package/dist/{shared → cjs/shared}/codec/s3/client-types.d.ts +2 -1
- package/dist/cjs/shared/codec/s3/client-types.js +6 -0
- package/dist/{shared → cjs/shared}/codec/s3/client.d.ts +25 -7
- package/dist/cjs/shared/codec/s3/client.js +78 -0
- package/dist/{shared → cjs/shared}/codec/s3/config.d.ts +12 -7
- package/dist/cjs/shared/codec/s3/config.js +92 -0
- package/dist/{shared → cjs/shared}/codec/s3/lifecycle.d.ts +71 -17
- package/dist/cjs/shared/codec/s3/lifecycle.js +223 -0
- package/dist/{shared → cjs/shared}/codec/s3/offloader.d.ts +42 -29
- package/dist/cjs/shared/codec/s3/offloader.js +289 -0
- package/dist/cjs/shared/concurrency.js +31 -0
- package/dist/{shared → cjs/shared}/dynamodb/abort.d.ts +2 -2
- package/dist/cjs/shared/dynamodb/abort.js +16 -0
- package/dist/{shared → cjs/shared}/dynamodb/batch-write.d.ts +2 -2
- package/dist/cjs/shared/dynamodb/batch-write.js +79 -0
- package/dist/cjs/shared/dynamodb/cancellation.js +37 -0
- package/dist/{shared → cjs/shared}/dynamodb/client.d.ts +24 -22
- package/dist/cjs/shared/dynamodb/client.js +40 -0
- package/dist/{shared → cjs/shared}/dynamodb/idempotent-write.d.ts +64 -19
- package/dist/cjs/shared/dynamodb/idempotent-write.js +173 -0
- package/dist/{shared → cjs/shared}/dynamodb/paginate.d.ts +2 -2
- package/dist/cjs/shared/dynamodb/paginate.js +90 -0
- package/dist/{shared → cjs/shared}/dynamodb/partition-delete.d.ts +6 -6
- package/dist/cjs/shared/dynamodb/partition-delete.js +177 -0
- package/dist/{shared → cjs/shared}/dynamodb/recency-index.d.ts +27 -15
- package/dist/cjs/shared/dynamodb/recency-index.js +146 -0
- package/dist/{shared → cjs/shared}/dynamodb/retry.d.ts +37 -6
- package/dist/cjs/shared/dynamodb/retry.js +193 -0
- package/dist/cjs/shared/dynamodb/row-size.d.ts +33 -0
- package/dist/cjs/shared/dynamodb/row-size.js +30 -0
- package/dist/{shared → cjs/shared}/dynamodb/table-schema.d.ts +27 -18
- package/dist/cjs/shared/dynamodb/table-schema.js +52 -0
- package/dist/{shared → cjs/shared}/errors/base-error.d.ts +42 -7
- package/dist/cjs/shared/errors/base-error.js +73 -0
- package/dist/{shared → cjs/shared}/errors/boundary.d.ts +29 -14
- package/dist/cjs/shared/errors/boundary.js +61 -0
- package/dist/cjs/shared/errors/classify.d.ts +206 -0
- package/dist/cjs/shared/errors/classify.js +232 -0
- package/dist/{shared → cjs/shared}/errors/error-code.d.ts +17 -10
- package/dist/cjs/shared/errors/error-code.js +27 -0
- package/dist/{shared → cjs/shared}/errors/errors.d.ts +75 -9
- package/dist/cjs/shared/errors/errors.js +123 -0
- package/dist/cjs/shared/logging/logger.js +30 -0
- package/dist/{shared → cjs/shared}/logging/redaction.d.ts +8 -4
- package/dist/cjs/shared/logging/redaction.js +145 -0
- package/dist/{shared → cjs/shared}/logging/secret-patterns.d.ts +30 -7
- package/dist/cjs/shared/logging/secret-patterns.js +93 -0
- package/dist/cjs/shared/logging/truncate.js +31 -0
- package/dist/{shared → cjs/shared}/options.d.ts +27 -11
- package/dist/cjs/shared/options.js +2 -0
- package/dist/cjs/shared/ulid.js +83 -0
- package/dist/{shared → cjs/shared}/validation/collaborators.d.ts +21 -2
- package/dist/cjs/shared/validation/collaborators.js +79 -0
- package/dist/{shared → cjs/shared}/validation/option-shape.d.ts +7 -5
- package/dist/cjs/shared/validation/option-shape.js +31 -0
- package/dist/{shared → cjs/shared}/validation/options.d.ts +4 -4
- package/dist/cjs/shared/validation/options.js +166 -0
- package/dist/cjs/shared/validation/primitives.js +114 -0
- package/dist/{shared → cjs/shared}/validation/ttl.d.ts +26 -9
- package/dist/cjs/shared/validation/ttl.js +52 -0
- package/dist/{store → cjs/store}/actions/list-namespaces.d.ts +5 -5
- package/dist/cjs/store/actions/list-namespaces.js +92 -0
- package/dist/{store → cjs/store}/actions/put.d.ts +11 -4
- package/dist/cjs/store/actions/put.js +49 -0
- package/dist/{store → cjs/store}/actions/reconcile-vector-index.d.ts +5 -5
- package/dist/cjs/store/actions/reconcile-vector-index.js +13 -0
- package/dist/{store → cjs/store}/actions/search.d.ts +2 -2
- package/dist/cjs/store/actions/search.js +26 -0
- package/dist/cjs/store/internal/batch-plan.d.ts +56 -0
- package/dist/cjs/store/internal/batch-plan.js +32 -0
- package/dist/{store → cjs/store}/internal/filter.d.ts +3 -3
- package/dist/cjs/store/internal/filter.js +64 -0
- package/dist/cjs/store/internal/get-item.d.ts +77 -0
- package/dist/cjs/store/internal/get-item.js +58 -0
- package/dist/{store → cjs/store}/internal/item-write.d.ts +72 -32
- package/dist/cjs/store/internal/item-write.js +181 -0
- package/dist/{store → cjs/store}/internal/parse.d.ts +15 -10
- package/dist/cjs/store/internal/parse.js +180 -0
- package/dist/{store → cjs/store}/internal/rows.d.ts +38 -34
- package/dist/cjs/store/internal/rows.js +166 -0
- package/dist/{store → cjs/store}/internal/semantic-search.d.ts +2 -2
- package/dist/cjs/store/internal/semantic-search.js +211 -0
- package/dist/{store → cjs/store}/internal/setup.d.ts +10 -15
- package/dist/cjs/store/internal/setup.js +103 -0
- package/dist/{store → cjs/store}/internal/table-search.d.ts +5 -5
- package/dist/cjs/store/internal/table-search.js +123 -0
- package/dist/{store → cjs/store}/internal/vector-index.d.ts +26 -15
- package/dist/cjs/store/internal/vector-index.js +269 -0
- package/dist/{store → cjs/store}/store.d.ts +82 -39
- package/dist/cjs/store/store.js +97 -0
- package/dist/{store → cjs/store}/types.d.ts +25 -10
- package/dist/cjs/store/types.js +2 -0
- package/dist/cjs/store/vector-backend.js +4 -0
- package/dist/esm/backfill/backfill.d.ts +171 -0
- package/dist/esm/backfill/backfill.js +170 -0
- package/dist/{checkpointer/actions/delete-thread.js → esm/checkpointer/actions/delete-thread.d.ts} +4 -26
- package/dist/esm/checkpointer/actions/delete-thread.js +23 -0
- package/dist/{checkpointer/actions/get-tuple.js → esm/checkpointer/actions/get-tuple.d.ts} +7 -24
- package/dist/esm/checkpointer/actions/get-tuple.js +19 -0
- package/dist/esm/checkpointer/actions/list.d.ts +55 -0
- package/dist/esm/checkpointer/actions/list.js +67 -0
- package/dist/{checkpointer/actions/put-writes.js → esm/checkpointer/actions/put-writes.d.ts} +10 -37
- package/dist/esm/checkpointer/actions/put-writes.js +18 -0
- package/dist/esm/checkpointer/actions/put.d.ts +95 -0
- package/dist/esm/checkpointer/actions/put.js +75 -0
- package/dist/esm/checkpointer/internal/delta-history.d.ts +124 -0
- package/dist/esm/checkpointer/internal/delta-history.js +126 -0
- package/dist/{checkpointer/internal/listing.js → esm/checkpointer/internal/listing.d.ts} +22 -118
- package/dist/esm/checkpointer/internal/listing.js +95 -0
- package/dist/esm/checkpointer/internal/parse.d.ts +298 -0
- package/dist/esm/checkpointer/internal/parse.js +169 -0
- package/dist/esm/checkpointer/internal/pending-writes.d.ts +314 -0
- package/dist/esm/checkpointer/internal/pending-writes.js +229 -0
- package/dist/esm/checkpointer/internal/read.d.ts +135 -0
- package/dist/esm/checkpointer/internal/read.js +125 -0
- package/dist/esm/checkpointer/internal/rows.d.ts +644 -0
- package/dist/esm/checkpointer/internal/rows.js +323 -0
- package/dist/esm/checkpointer/internal/setup.d.ts +47 -0
- package/dist/esm/checkpointer/internal/setup.js +21 -0
- package/dist/{checkpointer/saver.js → esm/checkpointer/saver.d.ts} +84 -87
- package/dist/esm/checkpointer/saver.js +52 -0
- package/dist/esm/checkpointer/types.d.ts +51 -0
- package/dist/esm/checkpointer/types.js +1 -0
- package/dist/esm/factory/factory.d.ts +154 -0
- package/dist/esm/factory/factory.js +133 -0
- package/dist/esm/factory/types.d.ts +76 -0
- package/dist/esm/factory/types.js +1 -0
- package/dist/{history/actions/add-messages.js → esm/history/actions/add-messages.d.ts} +20 -26
- package/dist/esm/history/actions/add-messages.js +14 -0
- package/dist/{history/actions/clear.js → esm/history/actions/clear.d.ts} +4 -35
- package/dist/esm/history/actions/clear.js +26 -0
- package/dist/esm/history/actions/get-messages.d.ts +60 -0
- package/dist/esm/history/actions/get-messages.js +55 -0
- package/dist/esm/history/actions/list-sessions.d.ts +55 -0
- package/dist/esm/history/actions/list-sessions.js +64 -0
- package/dist/{history/actions/reconcile-count.js → esm/history/actions/reconcile-count.d.ts} +14 -16
- package/dist/esm/history/actions/reconcile-count.js +5 -0
- package/dist/{history/chat-message-history.js → esm/history/chat-message-history.d.ts} +76 -87
- package/dist/esm/history/chat-message-history.js +57 -0
- package/dist/esm/history/internal/append.d.ts +244 -0
- package/dist/esm/history/internal/append.js +259 -0
- package/dist/esm/history/internal/message-read.d.ts +84 -0
- package/dist/esm/history/internal/message-read.js +89 -0
- package/dist/esm/history/internal/parse.d.ts +153 -0
- package/dist/esm/history/internal/parse.js +105 -0
- package/dist/{history/internal/rows.js → esm/history/internal/rows.d.ts} +58 -112
- package/dist/esm/history/internal/rows.js +83 -0
- package/dist/esm/history/internal/session.d.ts +350 -0
- package/dist/esm/history/internal/session.js +285 -0
- package/dist/esm/history/internal/setup.d.ts +64 -0
- package/dist/esm/history/internal/setup.js +56 -0
- package/dist/{history/session-adapter.js → esm/history/session-adapter.d.ts} +25 -39
- package/dist/esm/history/session-adapter.js +34 -0
- package/dist/esm/history/types.d.ts +102 -0
- package/dist/esm/history/types.js +1 -0
- package/dist/esm/index.d.ts +53 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/shared/adapter.d.ts +146 -0
- package/dist/esm/shared/adapter.js +65 -0
- package/dist/{shared/clock.js → esm/shared/clock.d.ts} +3 -14
- package/dist/esm/shared/clock.js +9 -0
- package/dist/esm/shared/codec/codec.d.ts +336 -0
- package/dist/esm/shared/codec/codec.js +150 -0
- package/dist/esm/shared/codec/compression.d.ts +66 -0
- package/dist/esm/shared/codec/compression.js +40 -0
- package/dist/esm/shared/codec/json-serde.d.ts +80 -0
- package/dist/esm/shared/codec/json-serde.js +54 -0
- package/dist/esm/shared/codec/s3/client-types.d.ts +54 -0
- package/dist/esm/shared/codec/s3/client-types.js +3 -0
- package/dist/esm/shared/codec/s3/client.d.ts +63 -0
- package/dist/esm/shared/codec/s3/client.js +40 -0
- package/dist/{shared/codec/s3/config.js → esm/shared/codec/s3/config.d.ts} +45 -93
- package/dist/esm/shared/codec/s3/config.js +79 -0
- package/dist/esm/shared/codec/s3/lifecycle.d.ts +220 -0
- package/dist/esm/shared/codec/s3/lifecycle.js +214 -0
- package/dist/esm/shared/codec/s3/offloader.d.ts +428 -0
- package/dist/esm/shared/codec/s3/offloader.js +278 -0
- package/dist/{shared/concurrency.js → esm/shared/concurrency.d.ts} +2 -37
- package/dist/esm/shared/concurrency.js +27 -0
- package/dist/{shared/dynamodb/abort.js → esm/shared/dynamodb/abort.d.ts} +4 -16
- package/dist/esm/shared/dynamodb/abort.js +12 -0
- package/dist/esm/shared/dynamodb/batch-write.d.ts +86 -0
- package/dist/esm/shared/dynamodb/batch-write.js +74 -0
- package/dist/{shared/dynamodb/cancellation.js → esm/shared/dynamodb/cancellation.d.ts} +25 -53
- package/dist/esm/shared/dynamodb/cancellation.js +30 -0
- package/dist/{shared/dynamodb/client.js → esm/shared/dynamodb/client.d.ts} +74 -64
- package/dist/esm/shared/dynamodb/client.js +35 -0
- package/dist/{shared/dynamodb/idempotent-write.js → esm/shared/dynamodb/idempotent-write.d.ts} +172 -169
- package/dist/esm/shared/dynamodb/idempotent-write.js +153 -0
- package/dist/esm/shared/dynamodb/paginate.d.ts +111 -0
- package/dist/esm/shared/dynamodb/paginate.js +84 -0
- package/dist/esm/shared/dynamodb/partition-delete.d.ts +204 -0
- package/dist/esm/shared/dynamodb/partition-delete.js +171 -0
- package/dist/esm/shared/dynamodb/recency-index.d.ts +243 -0
- package/dist/esm/shared/dynamodb/recency-index.js +136 -0
- package/dist/esm/shared/dynamodb/retry.d.ts +317 -0
- package/dist/esm/shared/dynamodb/retry.js +180 -0
- package/dist/esm/shared/dynamodb/row-size.d.ts +33 -0
- package/dist/esm/shared/dynamodb/row-size.js +26 -0
- package/dist/{shared/dynamodb/table-schema.js → esm/shared/dynamodb/table-schema.d.ts} +57 -67
- package/dist/esm/shared/dynamodb/table-schema.js +43 -0
- package/dist/esm/shared/errors/base-error.d.ts +231 -0
- package/dist/esm/shared/errors/base-error.js +64 -0
- package/dist/esm/shared/errors/boundary.d.ts +86 -0
- package/dist/esm/shared/errors/boundary.js +54 -0
- package/dist/esm/shared/errors/classify.d.ts +206 -0
- package/dist/esm/shared/errors/classify.js +220 -0
- package/dist/{shared/errors/error-code.js → esm/shared/errors/error-code.d.ts} +39 -43
- package/dist/esm/shared/errors/error-code.js +24 -0
- package/dist/{shared/errors/errors.js → esm/shared/errors/errors.d.ts} +92 -98
- package/dist/esm/shared/errors/errors.js +110 -0
- package/dist/{shared/logging/logger.js → esm/shared/logging/logger.d.ts} +22 -52
- package/dist/esm/shared/logging/logger.js +25 -0
- package/dist/esm/shared/logging/redaction.d.ts +123 -0
- package/dist/esm/shared/logging/redaction.js +140 -0
- package/dist/{shared/logging/secret-patterns.js → esm/shared/logging/secret-patterns.d.ts} +46 -87
- package/dist/esm/shared/logging/secret-patterns.js +83 -0
- package/dist/{shared/logging/truncate.js → esm/shared/logging/truncate.d.ts} +6 -40
- package/dist/esm/shared/logging/truncate.js +25 -0
- package/dist/esm/shared/options.d.ts +100 -0
- package/dist/esm/shared/options.js +1 -0
- package/dist/{shared/ulid.js → esm/shared/ulid.d.ts} +4 -84
- package/dist/esm/shared/ulid.js +77 -0
- package/dist/{shared/validation/collaborators.js → esm/shared/validation/collaborators.d.ts} +37 -65
- package/dist/esm/shared/validation/collaborators.js +70 -0
- package/dist/{shared/validation/option-shape.js → esm/shared/validation/option-shape.d.ts} +14 -36
- package/dist/esm/shared/validation/option-shape.js +24 -0
- package/dist/esm/shared/validation/options.d.ts +145 -0
- package/dist/esm/shared/validation/options.js +156 -0
- package/dist/{shared/validation/primitives.js → esm/shared/validation/primitives.d.ts} +30 -125
- package/dist/esm/shared/validation/primitives.js +100 -0
- package/dist/esm/shared/validation/ttl.d.ts +94 -0
- package/dist/esm/shared/validation/ttl.js +46 -0
- package/dist/esm/store/actions/list-namespaces.d.ts +79 -0
- package/dist/esm/store/actions/list-namespaces.js +86 -0
- package/dist/esm/store/actions/put.d.ts +43 -0
- package/dist/esm/store/actions/put.js +46 -0
- package/dist/{store/actions/reconcile-vector-index.js → esm/store/actions/reconcile-vector-index.d.ts} +8 -16
- package/dist/esm/store/actions/reconcile-vector-index.js +10 -0
- package/dist/esm/store/actions/search.d.ts +38 -0
- package/dist/esm/store/actions/search.js +23 -0
- package/dist/esm/store/internal/batch-plan.d.ts +56 -0
- package/dist/esm/store/internal/batch-plan.js +28 -0
- package/dist/esm/store/internal/filter.d.ts +43 -0
- package/dist/esm/store/internal/filter.js +60 -0
- package/dist/esm/store/internal/get-item.d.ts +77 -0
- package/dist/esm/store/internal/get-item.js +54 -0
- package/dist/esm/store/internal/item-write.d.ts +270 -0
- package/dist/esm/store/internal/item-write.js +173 -0
- package/dist/esm/store/internal/parse.d.ts +230 -0
- package/dist/esm/store/internal/parse.js +169 -0
- package/dist/{store/internal/rows.js → esm/store/internal/rows.d.ts} +111 -199
- package/dist/esm/store/internal/rows.js +147 -0
- package/dist/esm/store/internal/semantic-search.d.ts +168 -0
- package/dist/esm/store/internal/semantic-search.js +200 -0
- package/dist/esm/store/internal/setup.d.ts +96 -0
- package/dist/esm/store/internal/setup.js +98 -0
- package/dist/esm/store/internal/table-search.d.ts +100 -0
- package/dist/esm/store/internal/table-search.js +119 -0
- package/dist/esm/store/internal/vector-index.d.ts +258 -0
- package/dist/esm/store/internal/vector-index.js +256 -0
- package/dist/{store/store.js → esm/store/store.d.ts} +99 -133
- package/dist/esm/store/store.js +93 -0
- package/dist/esm/store/types.d.ts +111 -0
- package/dist/esm/store/types.js +1 -0
- package/dist/esm/store/vector-backend.d.ts +104 -0
- package/dist/esm/store/vector-backend.js +1 -0
- package/package.json +50 -44
- package/dist/backfill/backfill.js +0 -393
- package/dist/checkpointer/actions/list.js +0 -142
- package/dist/checkpointer/actions/put.js +0 -195
- package/dist/checkpointer/internal/delta-history.js +0 -252
- package/dist/checkpointer/internal/parse.js +0 -372
- package/dist/checkpointer/internal/pending-writes.js +0 -588
- package/dist/checkpointer/internal/read.js +0 -264
- package/dist/checkpointer/internal/rows.js +0 -834
- package/dist/checkpointer/internal/setup.js +0 -72
- package/dist/checkpointer/types.js +0 -12
- package/dist/factory/factory.js +0 -266
- package/dist/factory/types.js +0 -10
- package/dist/history/actions/get-messages.js +0 -141
- package/dist/history/actions/list-sessions.js +0 -156
- package/dist/history/internal/append.js +0 -500
- package/dist/history/internal/message-read.js +0 -204
- package/dist/history/internal/parse.js +0 -252
- package/dist/history/internal/session.js +0 -628
- package/dist/history/internal/setup.js +0 -106
- package/dist/history/types.js +0 -12
- package/dist/index.js +0 -51
- package/dist/shared/adapter.js +0 -143
- package/dist/shared/codec/codec.js +0 -441
- package/dist/shared/codec/compression.js +0 -89
- package/dist/shared/codec/json-serde.js +0 -191
- package/dist/shared/codec/s3/client-types.js +0 -26
- package/dist/shared/codec/s3/client.js +0 -97
- package/dist/shared/codec/s3/lifecycle.js +0 -355
- package/dist/shared/codec/s3/offloader.js +0 -658
- package/dist/shared/dynamodb/batch-write.js +0 -173
- package/dist/shared/dynamodb/paginate.js +0 -188
- package/dist/shared/dynamodb/partition-delete.js +0 -340
- package/dist/shared/dynamodb/recency-index.js +0 -377
- package/dist/shared/dynamodb/retry.js +0 -463
- package/dist/shared/errors/base-error.js +0 -174
- package/dist/shared/errors/boundary.js +0 -143
- package/dist/shared/errors/classify.d.ts +0 -97
- package/dist/shared/errors/classify.js +0 -257
- package/dist/shared/logging/redaction.js +0 -316
- package/dist/shared/options.js +0 -11
- package/dist/shared/validation/options.js +0 -328
- package/dist/shared/validation/ttl.js +0 -132
- package/dist/store/actions/list-namespaces.js +0 -197
- package/dist/store/actions/put.js +0 -78
- package/dist/store/actions/search.js +0 -66
- package/dist/store/internal/batch-plan.d.ts +0 -26
- package/dist/store/internal/batch-plan.js +0 -109
- package/dist/store/internal/filter.js +0 -137
- package/dist/store/internal/get-item.d.ts +0 -45
- package/dist/store/internal/get-item.js +0 -115
- package/dist/store/internal/item-write.js +0 -463
- package/dist/store/internal/parse.js +0 -350
- package/dist/store/internal/semantic-search.js +0 -389
- package/dist/store/internal/setup.js +0 -223
- package/dist/store/internal/table-search.js +0 -213
- package/dist/store/internal/vector-index.js +0 -546
- package/dist/store/types.js +0 -15
- package/dist/store/vector-backend.js +0 -17
- /package/dist/{shared → cjs/shared}/clock.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/codec/json-serde.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/concurrency.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/dynamodb/cancellation.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/logging/logger.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/logging/truncate.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/ulid.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/validation/primitives.d.ts +0 -0
- /package/dist/{store → cjs/store}/vector-backend.d.ts +0 -0
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Hides deleting exactly the rows of a partition that a read observed.
|
|
4
|
-
*
|
|
5
|
-
* A partition on a shared table can hold another adapter's rows, and a row can
|
|
6
|
-
* be rewritten between the read and the delete. A foreign row is left in place,
|
|
7
|
-
* each delete is pinned to the write id the read saw so a rewritten row
|
|
8
|
-
* survives, the rows of a unit are skipped once one of them is refused, and an
|
|
9
|
-
* object is released only once the row naming it is confirmed gone.
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.DELETE_CONCURRENCY = void 0;
|
|
13
|
-
exports.namedDescriptor = namedDescriptor;
|
|
14
|
-
exports.deletePartitionRows = deletePartitionRows;
|
|
15
|
-
exports.flushPendingDeletes = flushPendingDeletes;
|
|
16
|
-
const codec_1 = require("../codec/codec");
|
|
17
|
-
const offloader_1 = require("../codec/s3/offloader");
|
|
18
|
-
const concurrency_1 = require("../concurrency");
|
|
19
|
-
const errors_1 = require("../errors/errors");
|
|
20
|
-
const truncate_1 = require("../logging/truncate");
|
|
21
|
-
const abort_1 = require("./abort");
|
|
22
|
-
const batch_write_1 = require("./batch-write");
|
|
23
|
-
const idempotent_write_1 = require("./idempotent-write");
|
|
24
|
-
const paginate_1 = require("./paginate");
|
|
25
|
-
const retry_1 = require("./retry");
|
|
26
|
-
const table_schema_1 = require("./table-schema");
|
|
27
|
-
/**
|
|
28
|
-
* Conditional row deletes a partition-wide delete keeps in flight. Pinning a
|
|
29
|
-
* row on the write that produced it costs one request per row where a batch
|
|
30
|
-
* carried twenty-five, so issuing them one at a time would have paid a round
|
|
31
|
-
* trip per row; eight at once gives most of that back while keeping a
|
|
32
|
-
* partition of any size from opening a socket per row. A fixed value rather
|
|
33
|
-
* than a caller option: this is a maintenance path, and it has no other knob.
|
|
34
|
-
*
|
|
35
|
-
* Its own literal at the same value as `DEFAULT_READ_CONCURRENCY`
|
|
36
|
-
* (`src/shared/concurrency.ts`), not an alias of it — aliasing two limits
|
|
37
|
-
* would move one whenever the other is retuned (see
|
|
38
|
-
* `LIST_SCAN_WARN_THRESHOLD` (`src/shared/dynamodb/paginate.ts`)).
|
|
39
|
-
*/
|
|
40
|
-
exports.DELETE_CONCURRENCY = 8;
|
|
41
|
-
/**
|
|
42
|
-
* One row attribute read as a named descriptor, which is the only way this
|
|
43
|
-
* library fills a {@link NamedDescriptor}.
|
|
44
|
-
*
|
|
45
|
-
* Accepts: `row` — a row the partition read returned, whose attributes this
|
|
46
|
-
* library did not necessarily write. `attribute` — the name the payload would
|
|
47
|
-
* be held under.
|
|
48
|
-
*
|
|
49
|
-
* Returns: the named descriptor, or nothing when the row carries no usable one
|
|
50
|
-
* there. An absent attribute and one holding `null` are the same answer,
|
|
51
|
-
* because neither names a payload: the row contributes no id to pin on and no
|
|
52
|
-
* object to release. Narrowing here rather than at each caller is what keeps
|
|
53
|
-
* `descriptor` the non-null thing the type claims — a `null` cast into the
|
|
54
|
-
* array by a caller reached `pinFor`, which reads a write id off it.
|
|
55
|
-
*
|
|
56
|
-
* Throws: nothing.
|
|
57
|
-
*/
|
|
58
|
-
function namedDescriptor(row, attribute) {
|
|
59
|
-
const descriptor = row[attribute];
|
|
60
|
-
if (descriptor === null || descriptor === undefined)
|
|
61
|
-
return undefined;
|
|
62
|
-
return { attribute, descriptor };
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* The condition the read's own observation supports: the top-level id when the
|
|
66
|
-
* row carries one, else the id on the first descriptor that has one. A row
|
|
67
|
-
* observed with neither gets none and is deleted unconditionally — every row
|
|
68
|
-
* written before the id existed is such a row, and refusing those would leave a
|
|
69
|
-
* table upgraded in place impossible to empty.
|
|
70
|
-
*/
|
|
71
|
-
function pinFor(idAttribute, row, named) {
|
|
72
|
-
if (idAttribute !== undefined) {
|
|
73
|
-
const observed = row[idAttribute];
|
|
74
|
-
if (typeof observed === 'string')
|
|
75
|
-
return (0, idempotent_write_1.writeIdGuard)(idAttribute, observed);
|
|
76
|
-
}
|
|
77
|
-
for (const entry of named) {
|
|
78
|
-
const { writeId } = entry.descriptor;
|
|
79
|
-
if (writeId !== undefined)
|
|
80
|
-
return (0, idempotent_write_1.writeIdGuard)(entry.attribute, writeId, idempotent_write_1.WRITE_ID_ATTRIBUTE);
|
|
81
|
-
}
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
/** The row as a buffered delete: its key, its pin, its objects and its unit. */
|
|
85
|
-
function pendingDelete(options, row) {
|
|
86
|
-
const named = options.descriptorsOf(row);
|
|
87
|
-
return {
|
|
88
|
-
key: (0, table_schema_1.rowKeyOf)(row),
|
|
89
|
-
guard: pinFor(options.idAttribute, row, named),
|
|
90
|
-
descriptors: named.map((entry) => entry.descriptor),
|
|
91
|
-
unit: options.unitOf?.(row),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
/** Whether an earlier kind's refusal already settled this row's unit. */
|
|
95
|
-
function unitRefused(options, row, state) {
|
|
96
|
-
const unit = options.unitOf?.(row);
|
|
97
|
-
return unit !== undefined && state.units.has(unit);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* The cancel among a flush's failures, when the caller's signal fired. A row
|
|
101
|
-
* whose delete was cancelled is neither deleted nor failed, so reporting the
|
|
102
|
-
* pass as an incomplete delete told a caller branching on `ABORTED` that its
|
|
103
|
-
* own stop was a fault.
|
|
104
|
-
*/
|
|
105
|
-
function cancelAmong(failures) {
|
|
106
|
-
return failures.find(abort_1.isAbortError);
|
|
107
|
-
}
|
|
108
|
-
/** Delete the buffered rows, fold what they settled into the pass, and empty the buffer. */
|
|
109
|
-
async function flushBuffer(options, state) {
|
|
110
|
-
if (state.buffer.length === 0)
|
|
111
|
-
return;
|
|
112
|
-
const tally = await flushPendingDeletes(options, state.buffer.splice(0));
|
|
113
|
-
state.deleted += tally.deleted;
|
|
114
|
-
state.skipped += tally.refused;
|
|
115
|
-
// Refusals are deliberately out of this total. They are not rows the pass
|
|
116
|
-
// failed to delete; they are rows it was never entitled to delete, already
|
|
117
|
-
// counted as `skipped` and reported on their own line. Counting them here
|
|
118
|
-
// would make the error read `1/3 row(s) succeeded, 1 row(s) failed` and leave
|
|
119
|
-
// the reader to guess at the third.
|
|
120
|
-
state.attempted += tally.deleted + tally.failures.length;
|
|
121
|
-
for (const unit of tally.refusedUnits)
|
|
122
|
-
state.units.add(unit);
|
|
123
|
-
if (tally.failures.length === 0)
|
|
124
|
-
return;
|
|
125
|
-
const cancelled = cancelAmong(tally.failures);
|
|
126
|
-
if (cancelled !== undefined)
|
|
127
|
-
throw cancelled;
|
|
128
|
-
const { deleted, attempted } = state;
|
|
129
|
-
throw (0, errors_1.batchWriteAllIncompleteError)({
|
|
130
|
-
succeeded: deleted,
|
|
131
|
-
total: attempted,
|
|
132
|
-
failures: tally.failures,
|
|
133
|
-
succeededCount: deleted,
|
|
134
|
-
unit: 'row',
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Delete exactly the rows of one partition that this adapter's read observed.
|
|
139
|
-
*
|
|
140
|
-
* Accepts: `params` — the partition query, which carries no sort-key
|
|
141
|
-
* condition. `ownsSortKey` — decides per row; a row it rejects is left in
|
|
142
|
-
* place and reported at `warn`, which is what keeps a shared table's other
|
|
143
|
-
* adapters intact. `descriptorsOf` — the offloaded payloads a row references,
|
|
144
|
-
* each named by the attribute holding it. `idAttribute`, `unitOf` and `kindOf`
|
|
145
|
-
* — the per-write id, the unit and the kind boundary, for an adapter whose
|
|
146
|
-
* rows have them. `scope` — the partition's own leading S3 key parts; an object
|
|
147
|
-
* outside their path is never deleted. `signal` — stops the read between pages.
|
|
148
|
-
*
|
|
149
|
-
* Returns: how many rows were deleted, not counting the ones left in place.
|
|
150
|
-
*
|
|
151
|
-
* Throws: `ABORTED` when the signal fires, whether between pages or during
|
|
152
|
-
* a row's delete, unwrapped and with no further row issued — a cancel is not a
|
|
153
|
-
* delete that half-landed. Otherwise `BATCH_WRITE_INCOMPLETE` when
|
|
154
|
-
* a row's delete fails, carrying what did succeed across every earlier flush.
|
|
155
|
-
* S3 cleanup never throws, whatever it finds.
|
|
156
|
-
*
|
|
157
|
-
* Guarantees: every delete is pinned on the per-write id the read observed, so
|
|
158
|
-
* a row rewritten after that read is left in place and reported rather than
|
|
159
|
-
* erased with the object it names. A row observed carrying no id is deleted
|
|
160
|
-
* unconditionally, as it was before the pin existed. The read is deliberately
|
|
161
|
-
* uncapped (`maxItems` and `maxIterations` are `Infinity`), so a partition of
|
|
162
|
-
* any size is deleted to completion rather than truncated at the in-memory page
|
|
163
|
-
* caps — memory stays bounded because rows are flushed in batches of
|
|
164
|
-
* {@link BATCH_WRITE_MAX} and never accumulated. The carry-forward depends on
|
|
165
|
-
* the scan being **ascending**, which is the default the partition queries rely
|
|
166
|
-
* on: a kind's rows are settled before the next kind's are issued, so a refusal
|
|
167
|
-
* suppresses the rest of its unit. A failure part-way keeps the rows already
|
|
168
|
-
* deleted; this is a single pass over a quiescent partition, not a transaction.
|
|
169
|
-
*/
|
|
170
|
-
async function deletePartitionRows(options) {
|
|
171
|
-
const state = { buffer: [], deleted: 0, attempted: 0, skipped: 0, units: new Set() };
|
|
172
|
-
let kind;
|
|
173
|
-
const pages = (0, paginate_1.paginateQuery)({
|
|
174
|
-
client: options.client,
|
|
175
|
-
params: options.params,
|
|
176
|
-
retry: options.retry,
|
|
177
|
-
signal: options.signal,
|
|
178
|
-
maxItems: Number.POSITIVE_INFINITY,
|
|
179
|
-
maxIterations: Number.POSITIVE_INFINITY,
|
|
180
|
-
});
|
|
181
|
-
for await (const row of pages) {
|
|
182
|
-
const sortKey = row.SK;
|
|
183
|
-
if (!options.ownsSortKey(sortKey)) {
|
|
184
|
-
state.skipped += 1;
|
|
185
|
-
options.logger.warn(`${options.operation}: left a foreign row in place`, {
|
|
186
|
-
sortKey: (0, truncate_1.truncateForLog)(sortKey),
|
|
187
|
-
});
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
const rowKind = options.kindOf?.(row);
|
|
191
|
-
if (rowKind !== kind) {
|
|
192
|
-
await flushBuffer(options, state);
|
|
193
|
-
kind = rowKind;
|
|
194
|
-
}
|
|
195
|
-
if (unitRefused(options, row, state)) {
|
|
196
|
-
state.skipped += 1;
|
|
197
|
-
options.logger.warn(`${options.operation}: skipped a row whose unit was refused`, {
|
|
198
|
-
sortKey: (0, truncate_1.truncateForLog)(sortKey),
|
|
199
|
-
});
|
|
200
|
-
continue;
|
|
201
|
-
}
|
|
202
|
-
state.buffer.push(pendingDelete(options, row));
|
|
203
|
-
if (state.buffer.length >= batch_write_1.BATCH_WRITE_MAX)
|
|
204
|
-
await flushBuffer(options, state);
|
|
205
|
-
}
|
|
206
|
-
await flushBuffer(options, state);
|
|
207
|
-
const { deleted, skipped } = state;
|
|
208
|
-
options.logger.info(`${options.operation}: deleted rows`, { deleted, skipped });
|
|
209
|
-
return deleted;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Record a row the pin turned away: left in place, nothing released, reported.
|
|
213
|
-
*
|
|
214
|
-
* Reported *before* it is counted, deliberately. The report calls the caller's
|
|
215
|
-
* own `Logger`, and a `Logger` that throws makes this row's handling
|
|
216
|
-
* incomplete; {@link deleteRow} then files it as a failure. Counting it first
|
|
217
|
-
* would leave the same row counted as a refusal the pass also reports as a
|
|
218
|
-
* failure. One row, one outcome.
|
|
219
|
-
*/
|
|
220
|
-
function recordRefusal(deps, row, tally) {
|
|
221
|
-
deps.logger.warn(`${deps.operation}: left a row rewritten since the read`, {
|
|
222
|
-
sortKey: (0, truncate_1.truncateForLog)(row.key.SK),
|
|
223
|
-
});
|
|
224
|
-
tally.refused += 1;
|
|
225
|
-
if (row.unit !== undefined)
|
|
226
|
-
tally.refusedUnits.push(row.unit);
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Settle one row, turning a lost pin into an outcome rather than a rejection.
|
|
230
|
-
*
|
|
231
|
-
* A rejection carrying the row means it was rewritten after the read: the row
|
|
232
|
-
* stays, its objects stay, and the pass reports it. A rejection carrying no row
|
|
233
|
-
* means it is already gone — a racing delete, or this pass's own earlier
|
|
234
|
-
* attempt whose acknowledgement was lost — which is the outcome the caller
|
|
235
|
-
* asked for, so it counts as deleted and its objects are released. Anything
|
|
236
|
-
* else is a genuine failure and is rethrown, so the pass ends rather than
|
|
237
|
-
* reporting a delete it did not make.
|
|
238
|
-
*/
|
|
239
|
-
async function settleRow(deps, row, tally) {
|
|
240
|
-
try {
|
|
241
|
-
await (0, retry_1.withDynamoDBRetry)((request) => deps.client.delete({
|
|
242
|
-
TableName: deps.tableName,
|
|
243
|
-
Key: row.key,
|
|
244
|
-
...row.guard,
|
|
245
|
-
}, request), deps.retry);
|
|
246
|
-
}
|
|
247
|
-
catch (error) {
|
|
248
|
-
const rejection = error;
|
|
249
|
-
if (!(0, idempotent_write_1.isConditionalCheckFailed)(rejection))
|
|
250
|
-
throw rejection;
|
|
251
|
-
if ((0, idempotent_write_1.rejectedRow)(rejection) !== undefined) {
|
|
252
|
-
recordRefusal(deps, row, tally);
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
tally.deleted += 1;
|
|
257
|
-
tally.released.push(...row.descriptors);
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Delete one row, recording whatever stops it before letting the flush end.
|
|
261
|
-
*
|
|
262
|
-
* The recording wraps the whole of {@link settleRow} rather than sitting in the
|
|
263
|
-
* one branch that first needed it, because the delete's own rejection is not
|
|
264
|
-
* the only thing in there that can throw. Reading the row a rejection carries
|
|
265
|
-
* is a decode, and it fails on an `Item` that arrives already unmarshalled —
|
|
266
|
-
* which the stock document client does not produce, but a client wrapped
|
|
267
|
-
* through the documented injection seam can. Reporting a refusal is a call into
|
|
268
|
-
* the caller's own `Logger`, which is consumer code. Recorded only in that one
|
|
269
|
-
* branch, neither would reach `tally.failures`, and an empty `failures` is
|
|
270
|
-
* exactly what the pass reads as "nothing went wrong": one such throw would
|
|
271
|
-
* abandon the rest of the buffer and the pass would still resolve, reporting a
|
|
272
|
-
* thread deleted that was mostly still there.
|
|
273
|
-
*/
|
|
274
|
-
async function deleteRow(deps, row, tally) {
|
|
275
|
-
try {
|
|
276
|
-
await settleRow(deps, row, tally);
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
tally.failures.push(error);
|
|
280
|
-
throw error;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Delete a buffer of rows, each pinned on what the read observed of it, then
|
|
285
|
-
* release the objects of the rows that are confirmed gone.
|
|
286
|
-
*
|
|
287
|
-
* Accepts: `deps` — the client, the table, and the logging, retry and offload
|
|
288
|
-
* collaborators of the pass this flush belongs to. `rows` — the buffer,
|
|
289
|
-
* each row carrying its key, its pin and the objects it names.
|
|
290
|
-
*
|
|
291
|
-
* Returns: the tally — rows deleted, rows refused and the units they belonged
|
|
292
|
-
* to, the failures, and the descriptors released.
|
|
293
|
-
*
|
|
294
|
-
* Throws: nothing. Every failure stops the flush from starting further rows and
|
|
295
|
-
* is handed back in `failures` for the caller to end the pass with — the
|
|
296
|
-
* delete's own rejection, and equally a throw from decoding a rejection's
|
|
297
|
-
* attached row or from the caller's logger, neither of which is this pass's to
|
|
298
|
-
* absorb. A refusal never stops anything. S3 cleanup never throws either
|
|
299
|
-
* ({@link cleanUpS3Orphans}).
|
|
300
|
-
*
|
|
301
|
-
* Guarantees: an empty `failures` means every row of the buffer was settled.
|
|
302
|
-
* The flush cannot both lose a failure and hand back a clean tally, which is
|
|
303
|
-
* what let a pass log a deleted thread over a partition it had mostly left
|
|
304
|
-
* alone. At most {@link DELETE_CONCURRENCY} requests are in flight. There
|
|
305
|
-
* is one request per row - that is the price of a condition, which a batch
|
|
306
|
-
* write silently ignores - but they cost a bounded number of sequential rounds
|
|
307
|
-
* rather than one per row, and a partition of any size cannot open a socket
|
|
308
|
-
* per row. A row the pin
|
|
309
|
-
* turned away is left exactly as the racing writer left it, and nothing it
|
|
310
|
-
* names is released — a live row still names those objects.
|
|
311
|
-
*/
|
|
312
|
-
async function flushPendingDeletes(deps, rows) {
|
|
313
|
-
const tally = {
|
|
314
|
-
deleted: 0,
|
|
315
|
-
refused: 0,
|
|
316
|
-
refusedUnits: [],
|
|
317
|
-
failures: [],
|
|
318
|
-
released: [],
|
|
319
|
-
};
|
|
320
|
-
try {
|
|
321
|
-
await (0, concurrency_1.mapWithConcurrency)(rows, exports.DELETE_CONCURRENCY, (row) => deleteRow(deps, row, tally));
|
|
322
|
-
}
|
|
323
|
-
catch {
|
|
324
|
-
// The only thing that reaches here is {@link deleteRow}'s own rethrow, and
|
|
325
|
-
// it records every failure it rethrows — the delete's rejection, the decode
|
|
326
|
-
// of a rejection's attached row, and the caller's logger alike. So what is
|
|
327
|
-
// dropped here is a second reference to something already in
|
|
328
|
-
// `tally.failures`, never the only record of it, and the throw's remaining
|
|
329
|
-
// job was to stop further rows from being started.
|
|
330
|
-
}
|
|
331
|
-
if (deps.offloader) {
|
|
332
|
-
await (0, offloader_1.cleanUpS3Orphans)(deps.offloader, {
|
|
333
|
-
keys: (0, codec_1.collectS3Keys)(tally.released),
|
|
334
|
-
operation: deps.operation,
|
|
335
|
-
logger: deps.logger,
|
|
336
|
-
scope: deps.scope,
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
return tally;
|
|
340
|
-
}
|