@farukada/aws-langgraph-dynamodb-ts 1.0.0-rc.1 → 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 +1820 -290
- package/dist/cjs/backfill/backfill.d.ts +171 -0
- package/dist/cjs/backfill/backfill.js +177 -0
- package/dist/cjs/checkpointer/actions/delete-thread.d.ts +50 -0
- package/dist/cjs/checkpointer/actions/delete-thread.js +26 -0
- package/dist/cjs/checkpointer/actions/get-tuple.d.ts +36 -0
- package/dist/cjs/checkpointer/actions/get-tuple.js +22 -0
- package/dist/cjs/checkpointer/actions/list.d.ts +55 -0
- package/dist/cjs/checkpointer/actions/list.js +70 -0
- package/dist/cjs/checkpointer/actions/put-writes.d.ts +49 -0
- package/dist/cjs/checkpointer/actions/put-writes.js +21 -0
- package/dist/cjs/checkpointer/actions/put.d.ts +95 -0
- package/dist/cjs/checkpointer/actions/put.js +79 -0
- package/dist/cjs/checkpointer/internal/delta-history.d.ts +124 -0
- package/dist/cjs/checkpointer/internal/delta-history.js +131 -0
- package/dist/cjs/checkpointer/internal/listing.d.ts +149 -0
- package/dist/cjs/checkpointer/internal/listing.js +104 -0
- package/dist/cjs/checkpointer/internal/parse.d.ts +298 -0
- package/dist/cjs/checkpointer/internal/parse.js +184 -0
- package/dist/cjs/checkpointer/internal/pending-writes.d.ts +314 -0
- package/dist/cjs/checkpointer/internal/pending-writes.js +241 -0
- package/dist/cjs/checkpointer/internal/read.d.ts +135 -0
- package/dist/cjs/checkpointer/internal/read.js +132 -0
- package/dist/cjs/checkpointer/internal/rows.d.ts +644 -0
- package/dist/cjs/checkpointer/internal/rows.js +356 -0
- package/dist/cjs/checkpointer/internal/setup.d.ts +47 -0
- package/dist/cjs/checkpointer/internal/setup.js +25 -0
- package/dist/cjs/checkpointer/saver.d.ts +306 -0
- package/dist/cjs/checkpointer/saver.js +56 -0
- package/dist/cjs/checkpointer/types.d.ts +51 -0
- package/dist/cjs/factory/factory.d.ts +154 -0
- package/dist/cjs/factory/factory.js +137 -0
- package/dist/{factory → cjs/factory}/types.d.ts +33 -14
- package/dist/cjs/history/actions/add-messages.d.ts +51 -0
- package/dist/cjs/history/actions/add-messages.js +17 -0
- package/dist/cjs/history/actions/clear.d.ts +52 -0
- package/dist/cjs/history/actions/clear.js +29 -0
- package/dist/cjs/history/actions/get-messages.d.ts +60 -0
- package/dist/cjs/history/actions/get-messages.js +58 -0
- package/dist/cjs/history/actions/list-sessions.d.ts +55 -0
- package/dist/cjs/history/actions/list-sessions.js +67 -0
- package/dist/cjs/history/actions/reconcile-count.d.ts +49 -0
- package/dist/cjs/history/actions/reconcile-count.js +8 -0
- package/dist/cjs/history/chat-message-history.d.ts +267 -0
- package/dist/cjs/history/chat-message-history.js +61 -0
- package/dist/cjs/history/internal/append.d.ts +244 -0
- package/dist/cjs/history/internal/append.js +267 -0
- package/dist/cjs/history/internal/message-read.d.ts +84 -0
- package/dist/cjs/history/internal/message-read.js +93 -0
- package/dist/cjs/history/internal/parse.d.ts +153 -0
- package/dist/cjs/history/internal/parse.js +113 -0
- package/dist/cjs/history/internal/rows.d.ts +196 -0
- package/dist/cjs/history/internal/rows.js +96 -0
- package/dist/cjs/history/internal/session.d.ts +350 -0
- package/dist/cjs/history/internal/session.js +296 -0
- package/dist/cjs/history/internal/setup.d.ts +64 -0
- package/dist/cjs/history/internal/setup.js +60 -0
- package/dist/cjs/history/session-adapter.d.ts +112 -0
- package/dist/cjs/history/session-adapter.js +38 -0
- package/dist/cjs/history/types.d.ts +102 -0
- package/dist/cjs/index.d.ts +53 -0
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/shared/adapter.d.ts +146 -0
- package/dist/cjs/shared/adapter.js +70 -0
- package/dist/cjs/shared/clock.d.ts +52 -0
- package/dist/cjs/shared/clock.js +14 -0
- package/dist/cjs/shared/codec/codec.d.ts +336 -0
- package/dist/cjs/shared/codec/codec.js +162 -0
- package/dist/cjs/shared/codec/compression.d.ts +66 -0
- package/dist/cjs/shared/codec/compression.js +45 -0
- package/dist/cjs/shared/codec/json-serde.d.ts +80 -0
- package/dist/cjs/shared/codec/json-serde.js +58 -0
- package/dist/{shared → cjs/shared}/codec/s3/client-types.d.ts +22 -2
- package/dist/{shared → cjs/shared}/codec/s3/client-types.js +0 -1
- package/dist/cjs/shared/codec/s3/client.d.ts +63 -0
- package/dist/cjs/shared/codec/s3/client.js +78 -0
- package/dist/cjs/shared/codec/s3/config.d.ts +260 -0
- package/dist/cjs/shared/codec/s3/config.js +92 -0
- package/dist/cjs/shared/codec/s3/lifecycle.d.ts +220 -0
- package/dist/cjs/shared/codec/s3/lifecycle.js +223 -0
- package/dist/cjs/shared/codec/s3/offloader.d.ts +428 -0
- package/dist/cjs/shared/codec/s3/offloader.js +289 -0
- package/dist/cjs/shared/concurrency.d.ts +43 -0
- package/dist/{shared → cjs/shared}/concurrency.js +10 -9
- package/dist/cjs/shared/dynamodb/abort.d.ts +47 -0
- package/dist/cjs/shared/dynamodb/abort.js +16 -0
- package/dist/cjs/shared/dynamodb/batch-write.d.ts +86 -0
- package/dist/cjs/shared/dynamodb/batch-write.js +79 -0
- package/dist/cjs/shared/dynamodb/cancellation.d.ts +124 -0
- package/dist/cjs/shared/dynamodb/cancellation.js +37 -0
- package/dist/cjs/shared/dynamodb/client.d.ts +177 -0
- package/dist/{shared → cjs/shared}/dynamodb/client.js +12 -14
- package/dist/cjs/shared/dynamodb/idempotent-write.d.ts +596 -0
- package/dist/cjs/shared/dynamodb/idempotent-write.js +173 -0
- package/dist/cjs/shared/dynamodb/paginate.d.ts +111 -0
- package/dist/cjs/shared/dynamodb/paginate.js +90 -0
- package/dist/cjs/shared/dynamodb/partition-delete.d.ts +204 -0
- package/dist/cjs/shared/dynamodb/partition-delete.js +177 -0
- package/dist/cjs/shared/dynamodb/recency-index.d.ts +243 -0
- package/dist/cjs/shared/dynamodb/recency-index.js +146 -0
- package/dist/cjs/shared/dynamodb/retry.d.ts +317 -0
- 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/cjs/shared/dynamodb/table-schema.d.ts +199 -0
- package/dist/cjs/shared/dynamodb/table-schema.js +52 -0
- package/dist/cjs/shared/errors/base-error.d.ts +231 -0
- package/dist/cjs/shared/errors/base-error.js +73 -0
- package/dist/cjs/shared/errors/boundary.d.ts +86 -0
- 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/cjs/shared/errors/error-code.d.ts +95 -0
- package/dist/{shared → cjs/shared}/errors/error-code.js +12 -2
- package/dist/cjs/shared/errors/errors.d.ts +233 -0
- package/dist/cjs/shared/errors/errors.js +123 -0
- package/dist/cjs/shared/logging/logger.d.ts +80 -0
- package/dist/cjs/shared/logging/logger.js +30 -0
- package/dist/cjs/shared/logging/redaction.d.ts +123 -0
- package/dist/cjs/shared/logging/redaction.js +145 -0
- package/dist/cjs/shared/logging/secret-patterns.d.ts +227 -0
- package/dist/cjs/shared/logging/secret-patterns.js +93 -0
- package/dist/cjs/shared/logging/truncate.d.ts +197 -0
- package/dist/cjs/shared/logging/truncate.js +31 -0
- package/dist/cjs/shared/options.d.ts +100 -0
- package/dist/cjs/shared/ulid.d.ts +80 -0
- package/dist/{shared → cjs/shared}/ulid.js +7 -21
- package/dist/cjs/shared/validation/collaborators.d.ts +160 -0
- package/dist/cjs/shared/validation/collaborators.js +79 -0
- package/dist/cjs/shared/validation/option-shape.d.ts +91 -0
- package/dist/cjs/shared/validation/option-shape.js +31 -0
- package/dist/cjs/shared/validation/options.d.ts +145 -0
- package/dist/cjs/shared/validation/options.js +166 -0
- package/dist/cjs/shared/validation/primitives.d.ts +292 -0
- package/dist/cjs/shared/validation/primitives.js +114 -0
- package/dist/cjs/shared/validation/ttl.d.ts +94 -0
- package/dist/cjs/shared/validation/ttl.js +52 -0
- package/dist/cjs/store/actions/list-namespaces.d.ts +79 -0
- package/dist/cjs/store/actions/list-namespaces.js +92 -0
- package/dist/cjs/store/actions/put.d.ts +43 -0
- package/dist/cjs/store/actions/put.js +49 -0
- package/dist/cjs/store/actions/reconcile-vector-index.d.ts +38 -0
- package/dist/cjs/store/actions/reconcile-vector-index.js +13 -0
- package/dist/cjs/store/actions/search.d.ts +38 -0
- 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/cjs/store/internal/filter.d.ts +43 -0
- 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/cjs/store/internal/item-write.d.ts +270 -0
- package/dist/cjs/store/internal/item-write.js +181 -0
- package/dist/cjs/store/internal/parse.d.ts +230 -0
- package/dist/cjs/store/internal/parse.js +180 -0
- package/dist/cjs/store/internal/rows.d.ts +359 -0
- package/dist/cjs/store/internal/rows.js +166 -0
- package/dist/cjs/store/internal/semantic-search.d.ts +168 -0
- package/dist/{store/internal/text-path.js → cjs/store/internal/semantic-search.js} +92 -28
- package/dist/cjs/store/internal/setup.d.ts +96 -0
- package/dist/cjs/store/internal/setup.js +103 -0
- package/dist/cjs/store/internal/table-search.d.ts +100 -0
- package/dist/cjs/store/internal/table-search.js +123 -0
- package/dist/cjs/store/internal/vector-index.d.ts +258 -0
- package/dist/cjs/store/internal/vector-index.js +269 -0
- package/dist/cjs/store/store.d.ts +329 -0
- package/dist/cjs/store/store.js +97 -0
- package/dist/cjs/store/types.d.ts +111 -0
- package/dist/cjs/store/vector-backend.d.ts +104 -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/esm/checkpointer/actions/delete-thread.d.ts +50 -0
- package/dist/esm/checkpointer/actions/delete-thread.js +23 -0
- package/dist/esm/checkpointer/actions/get-tuple.d.ts +36 -0
- 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/esm/checkpointer/actions/put-writes.d.ts +49 -0
- 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/esm/checkpointer/internal/listing.d.ts +149 -0
- 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/esm/checkpointer/saver.d.ts +306 -0
- 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/esm/history/actions/add-messages.d.ts +51 -0
- package/dist/esm/history/actions/add-messages.js +14 -0
- package/dist/esm/history/actions/clear.d.ts +52 -0
- 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/esm/history/actions/reconcile-count.d.ts +49 -0
- package/dist/esm/history/actions/reconcile-count.js +5 -0
- package/dist/esm/history/chat-message-history.d.ts +267 -0
- 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/esm/history/internal/rows.d.ts +196 -0
- 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/esm/history/session-adapter.d.ts +112 -0
- 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/esm/shared/clock.d.ts +52 -0
- 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/esm/shared/codec/s3/config.d.ts +260 -0
- 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/esm/shared/concurrency.d.ts +43 -0
- package/dist/esm/shared/concurrency.js +27 -0
- package/dist/esm/shared/dynamodb/abort.d.ts +47 -0
- 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/esm/shared/dynamodb/cancellation.d.ts +124 -0
- package/dist/esm/shared/dynamodb/cancellation.js +30 -0
- package/dist/esm/shared/dynamodb/client.d.ts +177 -0
- package/dist/esm/shared/dynamodb/client.js +35 -0
- package/dist/esm/shared/dynamodb/idempotent-write.d.ts +596 -0
- 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/esm/shared/dynamodb/table-schema.d.ts +199 -0
- 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/esm/shared/errors/error-code.d.ts +95 -0
- package/dist/esm/shared/errors/error-code.js +24 -0
- package/dist/esm/shared/errors/errors.d.ts +233 -0
- package/dist/esm/shared/errors/errors.js +110 -0
- package/dist/esm/shared/logging/logger.d.ts +80 -0
- 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/esm/shared/logging/secret-patterns.d.ts +227 -0
- package/dist/esm/shared/logging/secret-patterns.js +83 -0
- package/dist/esm/shared/logging/truncate.d.ts +197 -0
- 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/esm/shared/ulid.d.ts +80 -0
- package/dist/esm/shared/ulid.js +77 -0
- package/dist/esm/shared/validation/collaborators.d.ts +160 -0
- package/dist/esm/shared/validation/collaborators.js +70 -0
- package/dist/esm/shared/validation/option-shape.d.ts +91 -0
- 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/esm/shared/validation/primitives.d.ts +292 -0
- 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/esm/store/actions/reconcile-vector-index.d.ts +38 -0
- 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/esm/store/internal/rows.d.ts +359 -0
- 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/esm/store/store.d.ts +329 -0
- 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 +68 -46
- package/dist/checkpointer/actions/delete-thread.d.ts +0 -10
- package/dist/checkpointer/actions/delete-thread.js +0 -38
- package/dist/checkpointer/actions/get-tuple.d.ts +0 -11
- package/dist/checkpointer/actions/get-tuple.js +0 -25
- package/dist/checkpointer/actions/list.d.ts +0 -20
- package/dist/checkpointer/actions/list.js +0 -113
- package/dist/checkpointer/actions/put-writes.d.ts +0 -15
- package/dist/checkpointer/actions/put-writes.js +0 -62
- package/dist/checkpointer/actions/put.d.ts +0 -17
- package/dist/checkpointer/actions/put.js +0 -73
- package/dist/checkpointer/internal/assemble.d.ts +0 -17
- package/dist/checkpointer/internal/assemble.js +0 -38
- package/dist/checkpointer/internal/checkpoint-write-verify.d.ts +0 -24
- package/dist/checkpointer/internal/checkpoint-write-verify.js +0 -67
- package/dist/checkpointer/internal/configurable.d.ts +0 -12
- package/dist/checkpointer/internal/configurable.js +0 -24
- package/dist/checkpointer/internal/fetch.d.ts +0 -19
- package/dist/checkpointer/internal/fetch.js +0 -88
- package/dist/checkpointer/internal/filter-match.d.ts +0 -13
- package/dist/checkpointer/internal/filter-match.js +0 -15
- package/dist/checkpointer/internal/item-reader.d.ts +0 -66
- package/dist/checkpointer/internal/item-reader.js +0 -113
- package/dist/checkpointer/internal/item-writer.d.ts +0 -35
- package/dist/checkpointer/internal/item-writer.js +0 -107
- package/dist/checkpointer/internal/keys.d.ts +0 -41
- package/dist/checkpointer/internal/keys.js +0 -117
- package/dist/checkpointer/internal/list-scope.d.ts +0 -61
- package/dist/checkpointer/internal/list-scope.js +0 -108
- package/dist/checkpointer/internal/pending-sends.d.ts +0 -13
- package/dist/checkpointer/internal/pending-sends.js +0 -29
- package/dist/checkpointer/internal/query.d.ts +0 -21
- package/dist/checkpointer/internal/query.js +0 -42
- package/dist/checkpointer/internal/regular-write.d.ts +0 -28
- package/dist/checkpointer/internal/regular-write.js +0 -66
- package/dist/checkpointer/internal/setup.d.ts +0 -33
- package/dist/checkpointer/internal/setup.js +0 -38
- package/dist/checkpointer/internal/special-write-cas.d.ts +0 -29
- package/dist/checkpointer/internal/special-write-cas.js +0 -104
- package/dist/checkpointer/internal/special-write-cleanup.d.ts +0 -23
- package/dist/checkpointer/internal/special-write-cleanup.js +0 -50
- package/dist/checkpointer/internal/special-write-verify.d.ts +0 -53
- package/dist/checkpointer/internal/special-write-verify.js +0 -80
- package/dist/checkpointer/internal/stored-channels.d.ts +0 -31
- package/dist/checkpointer/internal/stored-channels.js +0 -70
- package/dist/checkpointer/internal/validation.d.ts +0 -18
- package/dist/checkpointer/internal/validation.js +0 -40
- package/dist/checkpointer/internal/write-guard.d.ts +0 -20
- package/dist/checkpointer/internal/write-guard.js +0 -48
- package/dist/checkpointer/internal/write-index.d.ts +0 -36
- package/dist/checkpointer/internal/write-index.js +0 -41
- package/dist/checkpointer/saver.d.ts +0 -70
- package/dist/checkpointer/saver.js +0 -105
- package/dist/checkpointer/types.d.ts +0 -58
- package/dist/factory/factory.d.ts +0 -40
- package/dist/factory/factory.js +0 -87
- package/dist/history/actions/add-messages.d.ts +0 -15
- package/dist/history/actions/add-messages.js +0 -77
- package/dist/history/actions/clear.d.ts +0 -10
- package/dist/history/actions/clear.js +0 -34
- package/dist/history/actions/get-messages.d.ts +0 -17
- package/dist/history/actions/get-messages.js +0 -79
- package/dist/history/actions/list-sessions.d.ts +0 -13
- package/dist/history/actions/list-sessions.js +0 -53
- package/dist/history/actions/reconcile-count.d.ts +0 -12
- package/dist/history/actions/reconcile-count.js +0 -64
- package/dist/history/chat-message-history.d.ts +0 -73
- package/dist/history/chat-message-history.js +0 -111
- package/dist/history/internal/append-saga.d.ts +0 -25
- package/dist/history/internal/append-saga.js +0 -79
- package/dist/history/internal/compensation.d.ts +0 -25
- package/dist/history/internal/compensation.js +0 -92
- package/dist/history/internal/item-mapper.d.ts +0 -9
- package/dist/history/internal/item-mapper.js +0 -27
- package/dist/history/internal/keys.d.ts +0 -16
- package/dist/history/internal/keys.js +0 -48
- package/dist/history/internal/message-chunker.d.ts +0 -13
- package/dist/history/internal/message-chunker.js +0 -67
- package/dist/history/internal/message-transaction.d.ts +0 -25
- package/dist/history/internal/message-transaction.js +0 -61
- package/dist/history/internal/message-window.d.ts +0 -17
- package/dist/history/internal/message-window.js +0 -49
- package/dist/history/internal/query.d.ts +0 -23
- package/dist/history/internal/query.js +0 -39
- package/dist/history/internal/session-count.d.ts +0 -47
- package/dist/history/internal/session-count.js +0 -115
- package/dist/history/internal/session-title.d.ts +0 -19
- package/dist/history/internal/session-title.js +0 -43
- package/dist/history/internal/session-update.d.ts +0 -27
- package/dist/history/internal/session-update.js +0 -69
- package/dist/history/internal/setup.d.ts +0 -31
- package/dist/history/internal/setup.js +0 -43
- package/dist/history/internal/title-generator.d.ts +0 -12
- package/dist/history/internal/title-generator.js +0 -41
- package/dist/history/internal/ttl-anchor.d.ts +0 -24
- package/dist/history/internal/ttl-anchor.js +0 -38
- package/dist/history/internal/validation.d.ts +0 -25
- package/dist/history/internal/validation.js +0 -53
- package/dist/history/session-adapter.d.ts +0 -29
- package/dist/history/session-adapter.js +0 -35
- package/dist/history/types.d.ts +0 -69
- package/dist/index.d.ts +0 -29
- package/dist/index.js +0 -32
- package/dist/shared/clock.d.ts +0 -8
- package/dist/shared/clock.js +0 -16
- package/dist/shared/codec/codec.d.ts +0 -53
- package/dist/shared/codec/codec.js +0 -66
- package/dist/shared/codec/compression.d.ts +0 -24
- package/dist/shared/codec/compression.js +0 -48
- package/dist/shared/codec/descriptor-keys.d.ts +0 -12
- package/dist/shared/codec/descriptor-keys.js +0 -14
- package/dist/shared/codec/encode.d.ts +0 -13
- package/dist/shared/codec/encode.js +0 -43
- package/dist/shared/codec/json-serde.d.ts +0 -7
- package/dist/shared/codec/json-serde.js +0 -17
- package/dist/shared/codec/payload-loss.d.ts +0 -12
- package/dist/shared/codec/payload-loss.js +0 -38
- package/dist/shared/codec/s3/adapter-config.d.ts +0 -13
- package/dist/shared/codec/s3/adapter-config.js +0 -22
- package/dist/shared/codec/s3/bounded-body.d.ts +0 -14
- package/dist/shared/codec/s3/bounded-body.js +0 -47
- package/dist/shared/codec/s3/client.d.ts +0 -18
- package/dist/shared/codec/s3/client.js +0 -46
- package/dist/shared/codec/s3/config.d.ts +0 -51
- package/dist/shared/codec/s3/config.js +0 -58
- package/dist/shared/codec/s3/delete.d.ts +0 -7
- package/dist/shared/codec/s3/delete.js +0 -28
- package/dist/shared/codec/s3/key-scope.d.ts +0 -23
- package/dist/shared/codec/s3/key-scope.js +0 -44
- package/dist/shared/codec/s3/lifecycle.d.ts +0 -14
- package/dist/shared/codec/s3/lifecycle.js +0 -63
- package/dist/shared/codec/s3/offloader.d.ts +0 -44
- package/dist/shared/codec/s3/offloader.js +0 -118
- package/dist/shared/codec/s3/orphans.d.ts +0 -23
- package/dist/shared/codec/s3/orphans.js +0 -71
- package/dist/shared/codec/s3/read-write.d.ts +0 -18
- package/dist/shared/codec/s3/read-write.js +0 -51
- package/dist/shared/codec/s3/retry.d.ts +0 -5
- package/dist/shared/codec/s3/retry.js +0 -22
- package/dist/shared/concurrency.d.ts +0 -6
- package/dist/shared/constants.d.ts +0 -112
- package/dist/shared/constants.js +0 -115
- package/dist/shared/dynamodb/abort.d.ts +0 -9
- package/dist/shared/dynamodb/abort.js +0 -27
- package/dist/shared/dynamodb/backoff.d.ts +0 -15
- package/dist/shared/dynamodb/backoff.js +0 -48
- package/dist/shared/dynamodb/batch-write.d.ts +0 -22
- package/dist/shared/dynamodb/batch-write.js +0 -53
- package/dist/shared/dynamodb/cancellation.d.ts +0 -6
- package/dist/shared/dynamodb/cancellation.js +0 -7
- package/dist/shared/dynamodb/client.d.ts +0 -28
- package/dist/shared/dynamodb/conditional-put.d.ts +0 -67
- package/dist/shared/dynamodb/conditional-put.js +0 -76
- package/dist/shared/dynamodb/drain-unprocessed.d.ts +0 -21
- package/dist/shared/dynamodb/drain-unprocessed.js +0 -43
- package/dist/shared/dynamodb/expiry.d.ts +0 -16
- package/dist/shared/dynamodb/expiry.js +0 -29
- package/dist/shared/dynamodb/paginate-core.d.ts +0 -24
- package/dist/shared/dynamodb/paginate-core.js +0 -82
- package/dist/shared/dynamodb/paginate.d.ts +0 -14
- package/dist/shared/dynamodb/paginate.js +0 -19
- package/dist/shared/dynamodb/partition-delete.d.ts +0 -39
- package/dist/shared/dynamodb/partition-delete.js +0 -71
- package/dist/shared/dynamodb/retry-classifier.d.ts +0 -17
- package/dist/shared/dynamodb/retry-classifier.js +0 -118
- package/dist/shared/dynamodb/retry-policy.d.ts +0 -26
- package/dist/shared/dynamodb/retry-policy.js +0 -22
- package/dist/shared/dynamodb/retry.d.ts +0 -31
- package/dist/shared/dynamodb/retry.js +0 -57
- package/dist/shared/dynamodb/scan.d.ts +0 -14
- package/dist/shared/dynamodb/scan.js +0 -19
- package/dist/shared/dynamodb/types.d.ts +0 -23
- package/dist/shared/errors/base-error.d.ts +0 -30
- package/dist/shared/errors/base-error.js +0 -27
- package/dist/shared/errors/boundary.d.ts +0 -18
- package/dist/shared/errors/boundary.js +0 -46
- package/dist/shared/errors/error-code.d.ts +0 -13
- package/dist/shared/errors/errors.d.ts +0 -68
- package/dist/shared/errors/errors.js +0 -114
- package/dist/shared/errors/upstream-error.d.ts +0 -16
- package/dist/shared/errors/upstream-error.js +0 -27
- package/dist/shared/errors/wrap-error.d.ts +0 -7
- package/dist/shared/errors/wrap-error.js +0 -15
- package/dist/shared/logging/logger.d.ts +0 -18
- package/dist/shared/logging/logger.js +0 -15
- package/dist/shared/logging/redaction-walk.d.ts +0 -23
- package/dist/shared/logging/redaction-walk.js +0 -112
- package/dist/shared/logging/redaction.d.ts +0 -39
- package/dist/shared/logging/redaction.js +0 -75
- package/dist/shared/logging/secret-patterns.d.ts +0 -92
- package/dist/shared/logging/secret-patterns.js +0 -133
- package/dist/shared/options.d.ts +0 -37
- package/dist/shared/ulid.d.ts +0 -23
- package/dist/shared/validation/options.d.ts +0 -8
- package/dist/shared/validation/options.js +0 -90
- package/dist/shared/validation/primitives.d.ts +0 -29
- package/dist/shared/validation/primitives.js +0 -82
- package/dist/shared/validation/ttl.d.ts +0 -28
- package/dist/shared/validation/ttl.js +0 -52
- package/dist/store/actions/get.d.ts +0 -13
- package/dist/store/actions/get.js +0 -73
- package/dist/store/actions/list-namespaces.d.ts +0 -8
- package/dist/store/actions/list-namespaces.js +0 -59
- package/dist/store/actions/put.d.ts +0 -10
- package/dist/store/actions/put.js +0 -96
- package/dist/store/actions/reconcile-vector-index.d.ts +0 -18
- package/dist/store/actions/reconcile-vector-index.js +0 -26
- package/dist/store/actions/search.d.ts +0 -9
- package/dist/store/actions/search.js +0 -34
- package/dist/store/internal/backend-search.d.ts +0 -4
- package/dist/store/internal/backend-search.js +0 -74
- package/dist/store/internal/batch-plan.d.ts +0 -11
- package/dist/store/internal/batch-plan.js +0 -52
- package/dist/store/internal/candidates.d.ts +0 -23
- package/dist/store/internal/candidates.js +0 -94
- package/dist/store/internal/filter.d.ts +0 -9
- package/dist/store/internal/filter.js +0 -85
- package/dist/store/internal/index-reconcile.d.ts +0 -21
- package/dist/store/internal/index-reconcile.js +0 -118
- package/dist/store/internal/index-sync.d.ts +0 -10
- package/dist/store/internal/index-sync.js +0 -25
- package/dist/store/internal/item-mapper.d.ts +0 -27
- package/dist/store/internal/item-mapper.js +0 -61
- package/dist/store/internal/keys.d.ts +0 -17
- package/dist/store/internal/keys.js +0 -41
- package/dist/store/internal/namespace-match.d.ts +0 -11
- package/dist/store/internal/namespace-match.js +0 -40
- package/dist/store/internal/option-validation.d.ts +0 -13
- package/dist/store/internal/option-validation.js +0 -77
- package/dist/store/internal/overwrite-swap.d.ts +0 -32
- package/dist/store/internal/overwrite-swap.js +0 -68
- package/dist/store/internal/persist.d.ts +0 -28
- package/dist/store/internal/persist.js +0 -64
- package/dist/store/internal/query.d.ts +0 -11
- package/dist/store/internal/query.js +0 -48
- package/dist/store/internal/ranker.d.ts +0 -18
- package/dist/store/internal/ranker.js +0 -39
- package/dist/store/internal/read-existing.d.ts +0 -23
- package/dist/store/internal/read-existing.js +0 -41
- package/dist/store/internal/score-direction.d.ts +0 -31
- package/dist/store/internal/score-direction.js +0 -38
- package/dist/store/internal/search-filter.d.ts +0 -3
- package/dist/store/internal/search-filter.js +0 -10
- package/dist/store/internal/semantic-search.d.ts +0 -34
- package/dist/store/internal/semantic-search.js +0 -87
- package/dist/store/internal/setup.d.ts +0 -36
- package/dist/store/internal/setup.js +0 -40
- package/dist/store/internal/text-path.d.ts +0 -17
- package/dist/store/internal/validation.d.ts +0 -18
- package/dist/store/internal/validation.js +0 -51
- package/dist/store/internal/write-verify.d.ts +0 -42
- package/dist/store/internal/write-verify.js +0 -71
- package/dist/store/store.d.ts +0 -61
- package/dist/store/store.js +0 -107
- package/dist/store/types.d.ts +0 -50
- package/dist/store/types.js +0 -2
- package/dist/store/vector-backend.d.ts +0 -43
- package/dist/store/vector-backend.js +0 -2
- /package/dist/{checkpointer → cjs/checkpointer}/types.js +0 -0
- /package/dist/{factory → cjs/factory}/types.js +0 -0
- /package/dist/{history → cjs/history}/types.js +0 -0
- /package/dist/{shared → cjs/shared}/options.js +0 -0
- /package/dist/{shared/dynamodb → cjs/store}/types.js +0 -0
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { DynamoDBDocument, QueryCommandInput } from '@aws-sdk/lib-dynamodb';
|
|
2
|
-
import type { PayloadDescriptor } from '../codec/codec';
|
|
3
|
-
import type { S3Offloader } from '../codec/s3/offloader';
|
|
4
|
-
import type { Logger } from '../logging/logger';
|
|
5
|
-
import type { RetryOptions } from './retry';
|
|
6
|
-
import type { DocItem } from './types';
|
|
7
|
-
/** Collaborators and per-adapter policy for one partition-wide delete. */
|
|
8
|
-
export interface PartitionDeleteOptions {
|
|
9
|
-
client: DynamoDBDocument;
|
|
10
|
-
tableName: string;
|
|
11
|
-
params: QueryCommandInput;
|
|
12
|
-
logger: Logger;
|
|
13
|
-
/** The adapter's retry options for the page reads and batch deletes. */
|
|
14
|
-
retry?: RetryOptions;
|
|
15
|
-
/** Aborting it stops the read between pages and rejects with the library's AbortError. */
|
|
16
|
-
signal?: AbortSignal;
|
|
17
|
-
offloader?: S3Offloader;
|
|
18
|
-
/** Label for log lines and S3-cleanup diagnostics, e.g. `deleteThread`. */
|
|
19
|
-
operation: string;
|
|
20
|
-
/**
|
|
21
|
-
* True when a sort key belongs to the calling adapter. A partition query
|
|
22
|
-
* carries no sort-key condition, so without this a shared-table partition
|
|
23
|
-
* holding a foreign row would have that row deleted too.
|
|
24
|
-
*/
|
|
25
|
-
ownsSortKey: (sortKey: string) => boolean;
|
|
26
|
-
/** The offloaded payload descriptors a row references, if any. */
|
|
27
|
-
descriptorsOf: (row: DocItem) => (PayloadDescriptor | undefined)[];
|
|
28
|
-
/** The partition's own leading S3 key parts; objects outside their path are never deleted. */
|
|
29
|
-
scope: readonly string[];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Delete every row in a partition that belongs to the calling adapter,
|
|
33
|
-
* best-effort deleting any offloaded S3 objects. Streams the partition with
|
|
34
|
-
* unbounded pagination and flushes in batches, so a partition of any size is
|
|
35
|
-
* deleted to completion with bounded memory — never silently truncated at the
|
|
36
|
-
* in-memory page caps, and never discarding already-flushed progress if a
|
|
37
|
-
* later batch fails. Returns the number of rows deleted.
|
|
38
|
-
*/
|
|
39
|
-
export declare function deletePartitionRows(options: PartitionDeleteOptions): Promise<number>;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deletePartitionRows = deletePartitionRows;
|
|
4
|
-
const descriptor_keys_1 = require("../codec/descriptor-keys");
|
|
5
|
-
const orphans_1 = require("../codec/s3/orphans");
|
|
6
|
-
const constants_1 = require("../constants");
|
|
7
|
-
const errors_1 = require("../errors/errors");
|
|
8
|
-
const batch_write_1 = require("./batch-write");
|
|
9
|
-
const paginate_1 = require("./paginate");
|
|
10
|
-
/** Delete the buffered keys, best-effort clean their S3 objects, then clear it. */
|
|
11
|
-
async function flushBuffer(options, buffer, progress) {
|
|
12
|
-
if (buffer.keys.length === 0)
|
|
13
|
-
return;
|
|
14
|
-
const chunks = Math.ceil(buffer.keys.length / constants_1.BATCH_WRITE_MAX);
|
|
15
|
-
try {
|
|
16
|
-
await (0, batch_write_1.batchWriteAll)(options.client, options.tableName, buffer.keys.map((Key) => ({ DeleteRequest: { Key } })), { retry: options.retry, signal: options.signal });
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
/** batchWriteAll's only throw is a BatchWriteAllIncompleteError (see batch-write.ts). */
|
|
20
|
-
const failure = error;
|
|
21
|
-
throw new errors_1.BatchWriteAllIncompleteError(progress.succeededChunks + failure.succeededChunks, progress.totalChunks + failure.totalChunks, failure.failedChunks, progress.writes + failure.succeededCount);
|
|
22
|
-
}
|
|
23
|
-
progress.writes += buffer.keys.length;
|
|
24
|
-
progress.succeededChunks += chunks;
|
|
25
|
-
progress.totalChunks += chunks;
|
|
26
|
-
if (options.offloader) {
|
|
27
|
-
await (0, orphans_1.cleanUpS3Orphans)(options.offloader, (0, descriptor_keys_1.collectS3Keys)(buffer.descriptors), options.operation, options.logger, { scope: options.scope });
|
|
28
|
-
}
|
|
29
|
-
buffer.keys = [];
|
|
30
|
-
buffer.descriptors = [];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Delete every row in a partition that belongs to the calling adapter,
|
|
34
|
-
* best-effort deleting any offloaded S3 objects. Streams the partition with
|
|
35
|
-
* unbounded pagination and flushes in batches, so a partition of any size is
|
|
36
|
-
* deleted to completion with bounded memory — never silently truncated at the
|
|
37
|
-
* in-memory page caps, and never discarding already-flushed progress if a
|
|
38
|
-
* later batch fails. Returns the number of rows deleted.
|
|
39
|
-
*/
|
|
40
|
-
async function deletePartitionRows(options) {
|
|
41
|
-
const buffer = { keys: [], descriptors: [] };
|
|
42
|
-
const progress = { writes: 0, succeededChunks: 0, totalChunks: 0 };
|
|
43
|
-
let skipped = 0;
|
|
44
|
-
const pages = (0, paginate_1.paginateQuery)({
|
|
45
|
-
client: options.client,
|
|
46
|
-
params: options.params,
|
|
47
|
-
retry: options.retry,
|
|
48
|
-
signal: options.signal,
|
|
49
|
-
maxItems: Number.POSITIVE_INFINITY,
|
|
50
|
-
maxIterations: Number.POSITIVE_INFINITY,
|
|
51
|
-
});
|
|
52
|
-
for await (const row of pages) {
|
|
53
|
-
if (!options.ownsSortKey(row.SK)) {
|
|
54
|
-
skipped += 1;
|
|
55
|
-
options.logger.warn(`${options.operation}: left a foreign row in place`, {
|
|
56
|
-
sortKey: row.SK,
|
|
57
|
-
});
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
buffer.keys.push({ PK: row.PK, SK: row.SK });
|
|
61
|
-
for (const descriptor of options.descriptorsOf(row)) {
|
|
62
|
-
if (descriptor)
|
|
63
|
-
buffer.descriptors.push(descriptor);
|
|
64
|
-
}
|
|
65
|
-
if (buffer.keys.length >= constants_1.BATCH_WRITE_MAX)
|
|
66
|
-
await flushBuffer(options, buffer, progress);
|
|
67
|
-
}
|
|
68
|
-
await flushBuffer(options, buffer, progress);
|
|
69
|
-
options.logger.info(`${options.operation}: deleted rows`, { deleted: progress.writes, skipped });
|
|
70
|
-
return progress.writes;
|
|
71
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default retryable transient signals. TransactionCanceledException is
|
|
3
|
-
* intentionally absent (its reasons include permanent failures);
|
|
4
|
-
* TransactionConflictException (transient row contention) IS retryable.
|
|
5
|
-
*/
|
|
6
|
-
export declare const DEFAULT_RETRYABLE_ERRORS: readonly string[];
|
|
7
|
-
/**
|
|
8
|
-
* True when `error` (or any cause in its chain) is transient: a transaction
|
|
9
|
-
* cancellation whose every reason is transient (that verdict takes precedence,
|
|
10
|
-
* because a permanent reason arrives with the same statuses as a transient
|
|
11
|
-
* one), an HTTP status in {@link TRANSIENT_HTTP_STATUSES}, the SDK's
|
|
12
|
-
* `$retryable` trait, or an exact match of a `name`/`code`/`errno`/`syscall`
|
|
13
|
-
* token against `retryableErrors`. Exact, not substring: the fields are
|
|
14
|
-
* whole tokens, and a substring rule would let an unrelated name that merely
|
|
15
|
-
* contains one ride along.
|
|
16
|
-
*/
|
|
17
|
-
export declare function isRetryableError(error: Error, retryableErrors: readonly string[]): boolean;
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_RETRYABLE_ERRORS = void 0;
|
|
4
|
-
exports.isRetryableError = isRetryableError;
|
|
5
|
-
const cancellation_1 = require("./cancellation");
|
|
6
|
-
const MAX_CAUSE_DEPTH = 32;
|
|
7
|
-
/**
|
|
8
|
-
* Default retryable transient signals. TransactionCanceledException is
|
|
9
|
-
* intentionally absent (its reasons include permanent failures);
|
|
10
|
-
* TransactionConflictException (transient row contention) IS retryable.
|
|
11
|
-
*/
|
|
12
|
-
exports.DEFAULT_RETRYABLE_ERRORS = [
|
|
13
|
-
'ProvisionedThroughputExceededException',
|
|
14
|
-
'ThrottlingException',
|
|
15
|
-
'RequestLimitExceeded',
|
|
16
|
-
'InternalServerError',
|
|
17
|
-
'ServiceUnavailable',
|
|
18
|
-
'TransactionConflictException',
|
|
19
|
-
'TransactionInProgressException',
|
|
20
|
-
'RequestTimeout',
|
|
21
|
-
'RequestTimeoutException',
|
|
22
|
-
'ECONNRESET',
|
|
23
|
-
'ECONNREFUSED',
|
|
24
|
-
'ETIMEDOUT',
|
|
25
|
-
'EPIPE',
|
|
26
|
-
'EAI_AGAIN',
|
|
27
|
-
'NetworkingError',
|
|
28
|
-
'TimeoutError',
|
|
29
|
-
'EHOSTUNREACH',
|
|
30
|
-
'ENETUNREACH',
|
|
31
|
-
'ENOTFOUND',
|
|
32
|
-
];
|
|
33
|
-
/**
|
|
34
|
-
* HTTP statuses the AWS SDK retries regardless of the error name: throttling
|
|
35
|
-
* (429) and the transient server statuses. They matter most for an error the
|
|
36
|
-
* SDK could not map to a modeled exception (an intermediary's HTML 503, a
|
|
37
|
-
* truncated body), which arrives as `name: 'Unknown'` with only its status.
|
|
38
|
-
*/
|
|
39
|
-
const TRANSIENT_HTTP_STATUSES = [429, 500, 502, 503, 504];
|
|
40
|
-
/**
|
|
41
|
-
* Cancellation reason codes (from a `TransactionCanceledException`'s
|
|
42
|
-
* `CancellationReasons`) that are transient and safe to retry. `None` marks an
|
|
43
|
-
* item that was not the cause and is ignored.
|
|
44
|
-
*/
|
|
45
|
-
const TRANSIENT_CANCELLATION_REASONS = [
|
|
46
|
-
'None',
|
|
47
|
-
'TransactionConflict',
|
|
48
|
-
'ThrottlingError',
|
|
49
|
-
'ProvisionedThroughputExceeded',
|
|
50
|
-
];
|
|
51
|
-
/**
|
|
52
|
-
* When `error` is a transaction cancellation carrying reasons, return whether
|
|
53
|
-
* every reason is transient; otherwise undefined so normal signal matching
|
|
54
|
-
* applies. A bare cancellation with no reasons is treated as non-retryable.
|
|
55
|
-
*/
|
|
56
|
-
function transactionCancellationRetryable(error) {
|
|
57
|
-
const reasons = (0, cancellation_1.getCancellationReasons)(error);
|
|
58
|
-
if (!reasons)
|
|
59
|
-
return undefined;
|
|
60
|
-
/**
|
|
61
|
-
* `length > 0` is load-bearing: `.every()` is vacuously true on an empty
|
|
62
|
-
* array, which would make a reason-less cancellation retryable — the exact
|
|
63
|
-
* opposite of what this function documents. AWS populates one reason per
|
|
64
|
-
* `TransactItems` entry, so an empty array should not occur; if it ever
|
|
65
|
-
* does, the conservative answer is not to retry.
|
|
66
|
-
*/
|
|
67
|
-
return (reasons.length > 0 &&
|
|
68
|
-
reasons.every((reason) => reason.Code === undefined || TRANSIENT_CANCELLATION_REASONS.includes(reason.Code)));
|
|
69
|
-
}
|
|
70
|
-
/** Add one node's signal tokens, HTTP status and retryable trait to `evidence`. */
|
|
71
|
-
function recordNode(fields, evidence) {
|
|
72
|
-
for (const value of [fields.name, fields.code, fields.errno, fields.syscall]) {
|
|
73
|
-
if (typeof value === 'string')
|
|
74
|
-
evidence.signals.push(value);
|
|
75
|
-
}
|
|
76
|
-
if (typeof fields.$metadata?.httpStatusCode === 'number') {
|
|
77
|
-
evidence.statuses.push(fields.$metadata.httpStatusCode);
|
|
78
|
-
}
|
|
79
|
-
if (fields.$retryable !== undefined && fields.$retryable !== null)
|
|
80
|
-
evidence.retryableByTrait = true;
|
|
81
|
-
}
|
|
82
|
-
function collectEvidence(error) {
|
|
83
|
-
const seen = new WeakSet();
|
|
84
|
-
const evidence = { signals: [], statuses: [], retryableByTrait: false };
|
|
85
|
-
const walk = (node, depth) => {
|
|
86
|
-
if (depth > MAX_CAUSE_DEPTH || node === null || typeof node !== 'object' || seen.has(node)) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
seen.add(node);
|
|
90
|
-
const fields = node;
|
|
91
|
-
recordNode(fields, evidence);
|
|
92
|
-
if (fields.cause)
|
|
93
|
-
walk(fields.cause, depth + 1);
|
|
94
|
-
};
|
|
95
|
-
walk(error, 0);
|
|
96
|
-
return evidence;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* True when `error` (or any cause in its chain) is transient: a transaction
|
|
100
|
-
* cancellation whose every reason is transient (that verdict takes precedence,
|
|
101
|
-
* because a permanent reason arrives with the same statuses as a transient
|
|
102
|
-
* one), an HTTP status in {@link TRANSIENT_HTTP_STATUSES}, the SDK's
|
|
103
|
-
* `$retryable` trait, or an exact match of a `name`/`code`/`errno`/`syscall`
|
|
104
|
-
* token against `retryableErrors`. Exact, not substring: the fields are
|
|
105
|
-
* whole tokens, and a substring rule would let an unrelated name that merely
|
|
106
|
-
* contains one ride along.
|
|
107
|
-
*/
|
|
108
|
-
function isRetryableError(error, retryableErrors) {
|
|
109
|
-
const cancellation = transactionCancellationRetryable(error);
|
|
110
|
-
if (cancellation !== undefined)
|
|
111
|
-
return cancellation;
|
|
112
|
-
const evidence = collectEvidence(error);
|
|
113
|
-
if (evidence.retryableByTrait)
|
|
114
|
-
return true;
|
|
115
|
-
if (evidence.statuses.some((status) => TRANSIENT_HTTP_STATUSES.includes(status)))
|
|
116
|
-
return true;
|
|
117
|
-
return evidence.signals.some((signal) => retryableErrors.includes(signal));
|
|
118
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { Logger } from '../logging/logger';
|
|
2
|
-
import type { RetryOptions } from './retry';
|
|
3
|
-
/**
|
|
4
|
-
* Caller-facing retry tunables for every DynamoDB call an adapter makes. The
|
|
5
|
-
* schedule is full-jitter exponential backoff: `baseDelayMs` doubling per
|
|
6
|
-
* attempt, capped at `maxDelayMs`, for `maxAttempts` attempts. The
|
|
7
|
-
* message-append path never goes below its own contention floor.
|
|
8
|
-
*/
|
|
9
|
-
export interface RetryPolicy {
|
|
10
|
-
/** Attempts per call before `RetryExhaustedError` (default 5). */
|
|
11
|
-
maxAttempts?: number;
|
|
12
|
-
/** First backoff delay in milliseconds (default 100). */
|
|
13
|
-
baseDelayMs?: number;
|
|
14
|
-
/** Cap on a single backoff delay in milliseconds (default 5000). */
|
|
15
|
-
maxDelayMs?: number;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Resolve an adapter's retry policy once, attaching the context logger so
|
|
19
|
-
* every retry is visible at `debug` (attempt, the delay about to be slept, the
|
|
20
|
-
* error name) instead of only surfacing once the budget is exhausted.
|
|
21
|
-
*/
|
|
22
|
-
export declare function resolveRetryPolicy(policy: RetryPolicy | undefined, logger: Logger): RetryOptions;
|
|
23
|
-
/** The context's retry options plus a per-call cancellation signal, when one is given. */
|
|
24
|
-
export declare function retryFor(context: {
|
|
25
|
-
retry?: RetryOptions;
|
|
26
|
-
}, signal?: AbortSignal): RetryOptions | undefined;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveRetryPolicy = resolveRetryPolicy;
|
|
4
|
-
exports.retryFor = retryFor;
|
|
5
|
-
const constants_1 = require("../constants");
|
|
6
|
-
/**
|
|
7
|
-
* Resolve an adapter's retry policy once, attaching the context logger so
|
|
8
|
-
* every retry is visible at `debug` (attempt, the delay about to be slept, the
|
|
9
|
-
* error name) instead of only surfacing once the budget is exhausted.
|
|
10
|
-
*/
|
|
11
|
-
function resolveRetryPolicy(policy, logger) {
|
|
12
|
-
return {
|
|
13
|
-
maxAttempts: policy?.maxAttempts ?? constants_1.DEFAULT_RETRY_MAX_ATTEMPTS,
|
|
14
|
-
baseDelayMs: policy?.baseDelayMs ?? constants_1.INITIAL_BACKOFF_DELAY_MS,
|
|
15
|
-
maxDelayMs: policy?.maxDelayMs ?? constants_1.MAX_BACKOFF_DELAY_MS,
|
|
16
|
-
onRetry: ({ attempt, delayMs, error }) => logger.debug('retrying after a transient error', { attempt, delayMs, error: error.name }),
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/** The context's retry options plus a per-call cancellation signal, when one is given. */
|
|
20
|
-
function retryFor(context, signal) {
|
|
21
|
-
return signal === undefined ? context.retry : { ...context.retry, signal };
|
|
22
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/** What {@link RetryOptions.onRetry} learns before each backoff sleep. */
|
|
2
|
-
export interface RetryAttemptInfo {
|
|
3
|
-
attempt: number;
|
|
4
|
-
delayMs: number;
|
|
5
|
-
error: Error;
|
|
6
|
-
}
|
|
7
|
-
/** Options controlling {@link withRetry}. */
|
|
8
|
-
export interface RetryOptions {
|
|
9
|
-
maxAttempts?: number;
|
|
10
|
-
baseDelayMs?: number;
|
|
11
|
-
maxDelayMs?: number;
|
|
12
|
-
retryableErrors?: readonly string[];
|
|
13
|
-
/**
|
|
14
|
-
* Decides retryability instead of `retryableErrors`, so a call site can
|
|
15
|
-
* share one classifier (see `isTransientS3Error`) with paths that do not
|
|
16
|
-
* go through `withRetry`.
|
|
17
|
-
*/
|
|
18
|
-
isRetryable?: (error: Error) => boolean;
|
|
19
|
-
/** Called before every backoff sleep, so retries are visible before the budget is exhausted. */
|
|
20
|
-
onRetry?: (info: RetryAttemptInfo) => void;
|
|
21
|
-
signal?: AbortSignal;
|
|
22
|
-
rng?: () => number;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Run `fn`, retrying retryable transient errors with full-jitter exponential
|
|
26
|
-
* backoff. Non-retryable errors are re-thrown unchanged; exhaustion throws
|
|
27
|
-
* {@link RetryExhaustedError}; an aborted signal throws {@link AbortError}.
|
|
28
|
-
*/
|
|
29
|
-
export declare function withRetry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
|
|
30
|
-
/** {@link withRetry} preset for DynamoDB operations. */
|
|
31
|
-
export declare function withDynamoDBRetry<T>(fn: () => Promise<T>, overrides?: Partial<RetryOptions>): Promise<T>;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.withRetry = withRetry;
|
|
4
|
-
exports.withDynamoDBRetry = withDynamoDBRetry;
|
|
5
|
-
const constants_1 = require("../constants");
|
|
6
|
-
const errors_1 = require("../errors/errors");
|
|
7
|
-
const wrap_error_1 = require("../errors/wrap-error");
|
|
8
|
-
const secret_patterns_1 = require("../logging/secret-patterns");
|
|
9
|
-
const abort_1 = require("./abort");
|
|
10
|
-
const backoff_1 = require("./backoff");
|
|
11
|
-
const retry_classifier_1 = require("./retry-classifier");
|
|
12
|
-
function delayForAttempt(attempt, base, max, rng) {
|
|
13
|
-
const exponential = base * 2 ** (attempt - 1);
|
|
14
|
-
return (0, backoff_1.fullJitter)(Math.min(exponential, max), rng);
|
|
15
|
-
}
|
|
16
|
-
/** Apply defaults to {@link RetryOptions}. */
|
|
17
|
-
function resolveRetryOptions(options) {
|
|
18
|
-
return {
|
|
19
|
-
maxAttempts: options.maxAttempts ?? constants_1.DEFAULT_RETRY_MAX_ATTEMPTS,
|
|
20
|
-
baseDelayMs: options.baseDelayMs ?? constants_1.INITIAL_BACKOFF_DELAY_MS,
|
|
21
|
-
maxDelayMs: options.maxDelayMs ?? constants_1.MAX_BACKOFF_DELAY_MS,
|
|
22
|
-
isRetryable: options.isRetryable ??
|
|
23
|
-
((error) => (0, retry_classifier_1.isRetryableError)(error, options.retryableErrors ?? retry_classifier_1.DEFAULT_RETRYABLE_ERRORS)),
|
|
24
|
-
rng: options.rng ?? Math.random,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Run `fn`, retrying retryable transient errors with full-jitter exponential
|
|
29
|
-
* backoff. Non-retryable errors are re-thrown unchanged; exhaustion throws
|
|
30
|
-
* {@link RetryExhaustedError}; an aborted signal throws {@link AbortError}.
|
|
31
|
-
*/
|
|
32
|
-
async function withRetry(fn, options = {}) {
|
|
33
|
-
const { maxAttempts, baseDelayMs, maxDelayMs, isRetryable, rng } = resolveRetryOptions(options);
|
|
34
|
-
if (options.signal?.aborted)
|
|
35
|
-
throw (0, abort_1.abortErrorFrom)(options.signal);
|
|
36
|
-
let lastError = new Error('Retry failed without error');
|
|
37
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
38
|
-
try {
|
|
39
|
-
return await fn();
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
lastError = (0, wrap_error_1.toError)(error);
|
|
43
|
-
if (!isRetryable(lastError))
|
|
44
|
-
throw lastError;
|
|
45
|
-
if (attempt === maxAttempts)
|
|
46
|
-
break;
|
|
47
|
-
const delayMs = delayForAttempt(attempt, baseDelayMs, maxDelayMs, rng);
|
|
48
|
-
options.onRetry?.({ attempt, delayMs, error: lastError });
|
|
49
|
-
await (0, backoff_1.sleep)(delayMs, options.signal);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
throw new errors_1.RetryExhaustedError(`Operation failed after ${maxAttempts} attempts: ${(0, secret_patterns_1.redactedMessage)(lastError)}`, maxAttempts, lastError);
|
|
53
|
-
}
|
|
54
|
-
/** {@link withRetry} preset for DynamoDB operations. */
|
|
55
|
-
async function withDynamoDBRetry(fn, overrides) {
|
|
56
|
-
return withRetry(fn, { maxAttempts: constants_1.DEFAULT_RETRY_MAX_ATTEMPTS, ...overrides });
|
|
57
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { DynamoDBDocument, ScanCommandInput } from '@aws-sdk/lib-dynamodb';
|
|
2
|
-
import { type PaginateCoreOptions } from './paginate-core';
|
|
3
|
-
import type { DocItem } from './types';
|
|
4
|
-
/** Options for {@link paginateScan}. */
|
|
5
|
-
export interface ScanOptions extends PaginateCoreOptions {
|
|
6
|
-
client: DynamoDBDocument;
|
|
7
|
-
params: ScanCommandInput;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Drive a DynamoDB Scan across all pages, yielding each item. Shares the
|
|
11
|
-
* pagination core with {@link paginateQuery}: abort handling, retry per page,
|
|
12
|
-
* and runaway guards.
|
|
13
|
-
*/
|
|
14
|
-
export declare function paginateScan(options: ScanOptions): AsyncGenerator<DocItem>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.paginateScan = paginateScan;
|
|
4
|
-
const paginate_core_1 = require("./paginate-core");
|
|
5
|
-
const retry_1 = require("./retry");
|
|
6
|
-
/**
|
|
7
|
-
* Drive a DynamoDB Scan across all pages, yielding each item. Shares the
|
|
8
|
-
* pagination core with {@link paginateQuery}: abort handling, retry per page,
|
|
9
|
-
* and runaway guards.
|
|
10
|
-
*/
|
|
11
|
-
function paginateScan(options) {
|
|
12
|
-
return (0, paginate_core_1.paginatePages)(async (startKey) => {
|
|
13
|
-
const page = await (0, retry_1.withDynamoDBRetry)(() => options.client.scan({ ...options.params, ExclusiveStartKey: startKey }), { ...options.retry, signal: options.signal });
|
|
14
|
-
return {
|
|
15
|
-
items: page.Items ?? [],
|
|
16
|
-
lastKey: page.LastEvaluatedKey,
|
|
17
|
-
};
|
|
18
|
-
}, options);
|
|
19
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { NativeAttributeValue } from '@aws-sdk/lib-dynamodb';
|
|
2
|
-
/**
|
|
3
|
-
* A DynamoDB item as returned/accepted by the DocumentClient. Reads that we
|
|
4
|
-
* wrote ourselves are narrowed with a single structural `as` at the mapper
|
|
5
|
-
* boundary (never `as any`/`as unknown`); untrusted shared-table scans go
|
|
6
|
-
* through `narrowStoreRecord`.
|
|
7
|
-
*/
|
|
8
|
-
export type DocItem = Record<string, NativeAttributeValue>;
|
|
9
|
-
/** A BatchWriteItem PutRequest. */
|
|
10
|
-
interface PutWriteRequest {
|
|
11
|
-
PutRequest: {
|
|
12
|
-
Item: DocItem;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
/** A BatchWriteItem DeleteRequest. */
|
|
16
|
-
interface DeleteWriteRequest {
|
|
17
|
-
DeleteRequest: {
|
|
18
|
-
Key: DocItem;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
/** A single BatchWriteItem write request. */
|
|
22
|
-
export type WriteRequest = PutWriteRequest | DeleteWriteRequest;
|
|
23
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ErrorCode } from './error-code';
|
|
2
|
-
/**
|
|
3
|
-
* Structured, log-safe context attached to every library error. Identifiers
|
|
4
|
-
* and counts only — never a payload or a credential.
|
|
5
|
-
*/
|
|
6
|
-
export interface ErrorContext {
|
|
7
|
-
/** The DynamoDB table the operation targeted, when known. */
|
|
8
|
-
tableName?: string;
|
|
9
|
-
/** The public operation (`saver.put`, `store.batch`, …) or internal step that failed. */
|
|
10
|
-
operation?: string;
|
|
11
|
-
/** The option, argument or cap that failed validation or was exceeded. */
|
|
12
|
-
field?: string;
|
|
13
|
-
/** The S3 object key involved, for offload failures. */
|
|
14
|
-
key?: string;
|
|
15
|
-
/** Attempts made before a retry budget was exhausted. */
|
|
16
|
-
attempts?: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Base class for every error this library throws. Carries a branchable
|
|
20
|
-
* {@link ErrorCode}, structured {@link ErrorContext}, and a native `cause`
|
|
21
|
-
* chain. Detected via {@link isDynamoDBLangGraphError} (a symbol brand) rather
|
|
22
|
-
* than `instanceof`, which is banned repo-wide.
|
|
23
|
-
*/
|
|
24
|
-
export declare class DynamoDBLangGraphError extends Error {
|
|
25
|
-
readonly code: ErrorCode;
|
|
26
|
-
readonly context: ErrorContext;
|
|
27
|
-
constructor(message: string, code: ErrorCode, context?: ErrorContext, cause?: Error);
|
|
28
|
-
}
|
|
29
|
-
/** True when `value` is a {@link DynamoDBLangGraphError}, detected by brand. */
|
|
30
|
-
export declare function isDynamoDBLangGraphError(value: Error): value is DynamoDBLangGraphError;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DynamoDBLangGraphError = void 0;
|
|
4
|
-
exports.isDynamoDBLangGraphError = isDynamoDBLangGraphError;
|
|
5
|
-
const ERROR_BRAND = Symbol.for('@farukada/aws-langgraph-dynamodb-ts/error');
|
|
6
|
-
/**
|
|
7
|
-
* Base class for every error this library throws. Carries a branchable
|
|
8
|
-
* {@link ErrorCode}, structured {@link ErrorContext}, and a native `cause`
|
|
9
|
-
* chain. Detected via {@link isDynamoDBLangGraphError} (a symbol brand) rather
|
|
10
|
-
* than `instanceof`, which is banned repo-wide.
|
|
11
|
-
*/
|
|
12
|
-
class DynamoDBLangGraphError extends Error {
|
|
13
|
-
code;
|
|
14
|
-
context;
|
|
15
|
-
constructor(message, code, context = {}, cause) {
|
|
16
|
-
super(message, cause === undefined ? undefined : { cause });
|
|
17
|
-
this.name = 'DynamoDBLangGraphError';
|
|
18
|
-
this.code = code;
|
|
19
|
-
this.context = context;
|
|
20
|
-
Object.defineProperty(this, ERROR_BRAND, { value: true, enumerable: false });
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.DynamoDBLangGraphError = DynamoDBLangGraphError;
|
|
24
|
-
/** True when `value` is a {@link DynamoDBLangGraphError}, detected by brand. */
|
|
25
|
-
function isDynamoDBLangGraphError(value) {
|
|
26
|
-
return ERROR_BRAND in value;
|
|
27
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Normalise anything escaping a public method into the library's error model:
|
|
3
|
-
* a branded library error is returned unchanged (its code was assigned closer
|
|
4
|
-
* to the failure and wins), anything else becomes an {@link UpstreamError}.
|
|
5
|
-
*/
|
|
6
|
-
export declare function toPublicError(error: Error, operation: string): Error;
|
|
7
|
-
/**
|
|
8
|
-
* Run a public operation so that every rejection is a library error. Applied
|
|
9
|
-
* once, at each adapter class method, so internal code can keep rethrowing SDK
|
|
10
|
-
* errors verbatim (the retry classifier depends on their shape).
|
|
11
|
-
*/
|
|
12
|
-
export declare function guardPublic<T>(operation: string, fn: () => Promise<T>): Promise<T>;
|
|
13
|
-
/**
|
|
14
|
-
* The same guard for a streaming result: items pass through, a failure raised
|
|
15
|
-
* mid-iteration is wrapped, and a consumer that stops early still closes the
|
|
16
|
-
* source generator.
|
|
17
|
-
*/
|
|
18
|
-
export declare function guardPublicIterable<T>(operation: string, source: AsyncGenerator<T>): AsyncGenerator<T>;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toPublicError = toPublicError;
|
|
4
|
-
exports.guardPublic = guardPublic;
|
|
5
|
-
exports.guardPublicIterable = guardPublicIterable;
|
|
6
|
-
const base_error_1 = require("./base-error");
|
|
7
|
-
const upstream_error_1 = require("./upstream-error");
|
|
8
|
-
const wrap_error_1 = require("./wrap-error");
|
|
9
|
-
/**
|
|
10
|
-
* Normalise anything escaping a public method into the library's error model:
|
|
11
|
-
* a branded library error is returned unchanged (its code was assigned closer
|
|
12
|
-
* to the failure and wins), anything else becomes an {@link UpstreamError}.
|
|
13
|
-
*/
|
|
14
|
-
function toPublicError(error, operation) {
|
|
15
|
-
const normalized = (0, wrap_error_1.toError)(error);
|
|
16
|
-
return (0, base_error_1.isDynamoDBLangGraphError)(normalized)
|
|
17
|
-
? normalized
|
|
18
|
-
: new upstream_error_1.UpstreamError(normalized, operation);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Run a public operation so that every rejection is a library error. Applied
|
|
22
|
-
* once, at each adapter class method, so internal code can keep rethrowing SDK
|
|
23
|
-
* errors verbatim (the retry classifier depends on their shape).
|
|
24
|
-
*/
|
|
25
|
-
async function guardPublic(operation, fn) {
|
|
26
|
-
try {
|
|
27
|
-
return await fn();
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
throw toPublicError(error, operation);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* The same guard for a streaming result: items pass through, a failure raised
|
|
35
|
-
* mid-iteration is wrapped, and a consumer that stops early still closes the
|
|
36
|
-
* source generator.
|
|
37
|
-
*/
|
|
38
|
-
async function* guardPublicIterable(operation, source) {
|
|
39
|
-
try {
|
|
40
|
-
for await (const item of source)
|
|
41
|
-
yield item;
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
throw toPublicError(error, operation);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/** Stable, branchable classification for every error this library throws. */
|
|
2
|
-
export declare enum ErrorCode {
|
|
3
|
-
VALIDATION = "VALIDATION",
|
|
4
|
-
CONDITION_CONFLICT = "CONDITION_CONFLICT",
|
|
5
|
-
RETRY_EXHAUSTED = "RETRY_EXHAUSTED",
|
|
6
|
-
BATCH_WRITE_INCOMPLETE = "BATCH_WRITE_INCOMPLETE",
|
|
7
|
-
COMPRESSION_LIMIT = "COMPRESSION_LIMIT",
|
|
8
|
-
S3_OFFLOAD_FAILED = "S3_OFFLOAD_FAILED",
|
|
9
|
-
RESULT_TRUNCATED = "RESULT_TRUNCATED",
|
|
10
|
-
ABORTED = "ABORTED",
|
|
11
|
-
COMPENSATION_FAILED = "COMPENSATION_FAILED",
|
|
12
|
-
UPSTREAM = "UPSTREAM"
|
|
13
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type { WriteRequest } from '../dynamodb/types';
|
|
2
|
-
import { DynamoDBLangGraphError } from './base-error';
|
|
3
|
-
/** Input failed a validation rule before any AWS call was made; `context.field` names the input. */
|
|
4
|
-
export declare class ValidationError extends DynamoDBLangGraphError {
|
|
5
|
-
constructor(message: string, field?: string, cause?: Error);
|
|
6
|
-
}
|
|
7
|
-
/** A conditional write failed because the precondition no longer holds. */
|
|
8
|
-
export declare class ConflictError extends DynamoDBLangGraphError {
|
|
9
|
-
constructor(message: string, cause?: Error);
|
|
10
|
-
}
|
|
11
|
-
/** A retried operation exhausted its attempt budget. */
|
|
12
|
-
export declare class RetryExhaustedError extends DynamoDBLangGraphError {
|
|
13
|
-
constructor(message: string, attempts?: number, cause?: Error);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* A paginated read hit its runaway guard (item or iteration cap) while more
|
|
17
|
-
* data remained, so the result would have been silently truncated. Narrow the
|
|
18
|
-
* query (filter/prefix) or raise the cap rather than trusting a partial result.
|
|
19
|
-
* `context.field` names the cap that was hit.
|
|
20
|
-
*/
|
|
21
|
-
export declare class ResultTruncatedError extends DynamoDBLangGraphError {
|
|
22
|
-
constructor(cap: string, limit: number);
|
|
23
|
-
}
|
|
24
|
-
/** An operation was cancelled via its AbortSignal. */
|
|
25
|
-
export declare class AbortError extends DynamoDBLangGraphError {
|
|
26
|
-
constructor(message?: string, cause?: Error);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* A BatchWriteItem sequence could not drain its UnprocessedItems. Items NOT
|
|
30
|
-
* listed in {@link unprocessed} were acked by DynamoDB and persist — there is
|
|
31
|
-
* no rollback (drive reconciliation from `unprocessed`). `cause`, when given,
|
|
32
|
-
* is the underlying failure that interrupted the drain (e.g. a thrown,
|
|
33
|
-
* non-UnprocessedItems error from a retry round) rather than a clean exhaustion
|
|
34
|
-
* of the UnprocessedItems retry budget.
|
|
35
|
-
*/
|
|
36
|
-
export declare class BatchWriteIncompleteError extends DynamoDBLangGraphError {
|
|
37
|
-
readonly succeededCount: number;
|
|
38
|
-
readonly unprocessed: WriteRequest[];
|
|
39
|
-
constructor(succeededCount: number, unprocessed: WriteRequest[], retries: number, cause?: Error);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* batchWriteAll attempts every chunk rather than stopping at the first
|
|
43
|
-
* failure — a mid-sequence chunk failing does not abandon the chunks after
|
|
44
|
-
* it. `failedChunks` holds each failing chunk's own error (commonly a
|
|
45
|
-
* {@link BatchWriteIncompleteError}); every chunk not represented there
|
|
46
|
-
* drained successfully and its writes persist — there is no rollback.
|
|
47
|
-
* `succeededCount` is the exact number of individual write requests
|
|
48
|
-
* confirmed persisted across every chunk (full chunks plus any failed
|
|
49
|
-
* chunk's own partial drain), more precise than `succeededChunks` alone
|
|
50
|
-
* when a chunk partially drains before exhausting its retries.
|
|
51
|
-
*/
|
|
52
|
-
export declare class BatchWriteAllIncompleteError extends DynamoDBLangGraphError {
|
|
53
|
-
readonly succeededChunks: number;
|
|
54
|
-
readonly totalChunks: number;
|
|
55
|
-
readonly failedChunks: Error[];
|
|
56
|
-
readonly succeededCount: number;
|
|
57
|
-
constructor(succeededChunks: number, totalChunks: number, failedChunks: Error[], succeededCount?: number);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* A compensating rollback failed after an append-saga chunk error, so the
|
|
61
|
-
* trigger error could not be cleanly undone. Carries the original trigger as
|
|
62
|
-
* `cause` and the rollback failure as {@link rollbackError}; the session's
|
|
63
|
-
* `messageCount` may have drifted — repair it with `reconcileMessageCount`.
|
|
64
|
-
*/
|
|
65
|
-
export declare class CompensationFailedError extends DynamoDBLangGraphError {
|
|
66
|
-
readonly rollbackError: Error;
|
|
67
|
-
constructor(cause: Error, rollbackError: Error);
|
|
68
|
-
}
|