local-serverless-stack 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -3
- package/dist/client/namespaces/lambdas.d.ts +1 -0
- package/dist/client/namespaces/lambdas.d.ts.map +1 -1
- package/dist/client/namespaces/lambdas.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/index.d.ts +8 -0
- package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/index.js +208 -7
- package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/transactions.d.ts +35 -0
- package/dist/server/engine/emulators/dynamodb/transactions.d.ts.map +1 -0
- package/dist/server/engine/emulators/dynamodb/transactions.js +153 -0
- package/dist/server/engine/emulators/dynamodb/transactions.js.map +1 -0
- package/dist/server/engine/emulators/events/index.js +2 -2
- package/dist/server/engine/emulators/events/index.js.map +1 -1
- package/dist/server/engine/emulators/lambda-ctl/index.js +5 -5
- package/dist/server/engine/emulators/lambda-ctl/index.js.map +1 -1
- package/dist/server/engine/emulators/opensearch/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/opensearch/index.js +5 -4
- package/dist/server/engine/emulators/opensearch/index.js.map +1 -1
- package/dist/server/engine/emulators/s3/index.js +5 -5
- package/dist/server/engine/emulators/s3/index.js.map +1 -1
- package/dist/server/engine/emulators/sns/index.js +2 -2
- package/dist/server/engine/emulators/sns/index.js.map +1 -1
- package/dist/server/engine/emulators/sqs/index.js +2 -2
- package/dist/server/engine/emulators/sqs/index.js.map +1 -1
- package/dist/server/engine/emulators/sts.js +2 -2
- package/dist/server/engine/emulators/sts.js.map +1 -1
- package/dist/server/engine/http/errors.d.ts +1 -0
- package/dist/server/engine/http/errors.d.ts.map +1 -1
- package/dist/server/engine/http/errors.js +12 -0
- package/dist/server/engine/http/errors.js.map +1 -1
- package/dist/server/runtime/log-capture.d.ts +7 -0
- package/dist/server/runtime/log-capture.d.ts.map +1 -0
- package/dist/server/runtime/log-capture.js +206 -0
- package/dist/server/runtime/log-capture.js.map +1 -0
- package/dist/server/runtime/runtime-worker.js +23 -14
- package/dist/server/runtime/runtime-worker.js.map +1 -1
- package/dist/server/services/lambda-runtime-manager.d.ts +2 -0
- package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
- package/dist/server/services/lambda-runtime-manager.js +19 -1
- package/dist/server/services/lambda-runtime-manager.js.map +1 -1
- package/dist/ui/assets/{ApisPage-C0xaNFQW.js → ApisPage-DyjG-weG.js} +1 -1
- package/dist/ui/assets/{BucketDetailPage-Bnny8S04.js → BucketDetailPage-Bvrk1L6q.js} +1 -1
- package/dist/ui/assets/{BucketsPage-Dd3Y4-gU.js → BucketsPage-KgeLoK6e.js} +1 -1
- package/dist/ui/assets/{DynamoPage-JzSF-4VI.js → DynamoPage-C8rwaEIi.js} +1 -1
- package/dist/ui/assets/{DynamoTablePage-uM0DXGCo.js → DynamoTablePage-CN5P5f7S.js} +1 -1
- package/dist/ui/assets/{LambdaDetailPage-CoR9ZXdb.js → LambdaDetailPage-BPhEkF44.js} +3 -3
- package/dist/ui/assets/{LambdasPage-CNMX_O5P.js → LambdasPage-Dz4wxjVd.js} +1 -1
- package/dist/ui/assets/{OpenSearchCollectionPage-D5FaSCF1.js → OpenSearchCollectionPage-B3s964oC.js} +1 -1
- package/dist/ui/assets/{OpenSearchPage-FEzLxaej.js → OpenSearchPage-0fTJJovd.js} +1 -1
- package/dist/ui/assets/{OverviewPage-0xvjT7Q0.js → OverviewPage-B13l71G0.js} +1 -1
- package/dist/ui/assets/{QueueDetailPage-B2GaNLLe.js → QueueDetailPage-peLph1_v.js} +1 -1
- package/dist/ui/assets/{QueuesPage-Ch5kGwrp.js → QueuesPage-CF9yiBkq.js} +1 -1
- package/dist/ui/assets/{ServiceDetailPage-DKiz21oo.js → ServiceDetailPage-ZGLPswmY.js} +1 -1
- package/dist/ui/assets/{ServicesPage-Cmi3UIfM.js → ServicesPage-DsoZBBxo.js} +1 -1
- package/dist/ui/assets/{index-MF9fVrsr.js → index-BP9zQ9L-.js} +2 -2
- package/dist/ui/index.html +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,11 +5,15 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [0.10.0] - 2026-07-
|
|
8
|
+
## [0.10.0] - 2026-07-13
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
DynamoDB transactions land on the self engine (`TransactWriteItems`/`TransactGetItems` with faithful `CancellationReasons`), and per-invocation Lambda log capture now works for structured loggers (pino/winston/bunyan) that write straight to the stream or file descriptor instead of `console.*`. Also: dashboard header split into a brand row + navigation row with the configured region pre-selected; the registered-services cache is now scoped per project — fixing orchestrators of one example silently binding (and stealing) another example's gateway ports; gateways recover automatically from port conflicts; each example runs in its own AWS region; `examples/localstack-ultimate` now exercises EventBridge, schedules and a DLQ, with its own VS Code task palette.
|
|
11
11
|
|
|
12
12
|
### Added
|
|
13
|
+
- **DynamoDB transactions on the self engine**: `TransactWriteItems` supports Put/Update/Delete/ConditionCheck with all-or-nothing semantics — every condition is evaluated against current state first, and any failure cancels the request with a `TransactionCanceledException` carrying per-item `CancellationReasons` (`Code`/`Message`, plus the old `Item` when `ReturnValuesOnConditionCheckFailure: ALL_OLD`), the shape clients inspect to map "condition failed on entry N" to domain errors (e.g. duplicate e-mail → 409 instead of an opaque 500). Committed writes emit stream records (so `stream`-triggered functions and the events relay see transactional writes); cancelled transactions emit none. Update computations are dry-run in the same pre-commit pass — a failing Update (type mismatch, invalid document path, post-update item over 400 KB) cancels the transaction with a `ValidationError` cancellation reason instead of half-applying it, while statically invalid updates (syntax errors, expressions touching a key attribute) reject the request up front. Duplicate targets ("multiple operations on one item"), the 100-item cap and per-member required fields are validated with AWS-worded errors, and `ClientRequestToken` gets real idempotency, namespaced per region: successful transactions replay from a 10-minute cache, token reuse with different parameters answers `IdempotentParameterMismatchException`, an overlapping in-flight attempt answers `TransactionInProgressException`, and cancelled transactions are not cached (a retry re-executes). `TransactGetItems` (ordered `Responses` read as one consistent snapshot, `{}` placeholders for misses, `ProjectionExpression` support, duplicate-item rejection, `ConsumedCapacity`) comes along. Previously any handler using `TransactWriteCommand` — signup flows enforcing e-mail uniqueness, refresh-token rotation — hit `NotImplemented` on the self engine, which generic HTTP error middlewares surface as a 500 with no logs to explain it.
|
|
14
|
+
- **Lambda log capture at the stream/fd level**: the runtime worker used to patch `console.*` only, so structured loggers that write JSON straight to the output stream or to file descriptor 1/2 — pino via sonic-boom (`fs.write(1, …)`), winston/bunyan via `process.stdout.write` — produced invocations with `"logs": []` in the dashboard and no output anywhere. Capture now intercepts `process.stdout/stderr.write` and `fs.write/writeSync/writev/writevSync` on fds 1/2 (new `src/server/runtime/log-capture.ts`), synchronously at the call site so `AsyncLocalStorage` still attributes each line to the invocation that emitted it; `console.*` keeps its `INFO`/`WARN`/`ERROR` level tags, partial lines are reassembled across chunks and flushed with the result, and cold-start module output attributes to the only in-flight invocation when unambiguous. Covered end to end by a test that forks the real worker and asserts pino-style fd writes land in the invocation record.
|
|
15
|
+
- **Worker stdout/stderr surfaces as service-level output**: unattributable worker output (logger transports on worker threads, child processes, writes after an invocation completed) used to be silently discarded; it now reaches the orchestrator log prefixed `[<service>:worker]`.
|
|
16
|
+
- **HTTP status on invocation records**: an invocation whose handler resolved an API-Gateway-shaped payload records its `statusCode`, and the dashboard's Recent invocations list badges 4xx (warning) and 5xx (danger) — a handler answering `{"error":"internal_error"}` with a 500 no longer reads as a healthy green invocation.
|
|
13
17
|
- **`examples/localstack-ultimate` expanded** to showcase the full LSS resource menu on the Pro path: an `AWS::Events::EventBus` (`ultimate-order-events`) receiving `order.processed` events from the SQS consumer, a new `auditEvents` function (eventBridge pattern trigger) persisting every matched event into a new `AuditTrail` table readable at `GET /audit`, a `purgeSessions` function on `schedule: rate(2 minutes)` that deletes expired sessions and emits `sessions.purged`, and an `OrderProcessingDLQ` with a `RedrivePolicy` (`maxReceiveCount: 3`) on the order queue — `processOrderQueue` now reports poison orders (missing `userId`, `total <= 0`) via `ReportBatchItemFailures` so they land in the DLQ and show up in the dashboard's Queues tab. Since LSS's provisioner does not yet apply `RedrivePolicy` from CloudFormation, `scripts/wire-dlq.js` (hooked into `npm run offline`) sets it on the live queue; native support is tracked as a follow-up. New `seeds/localstack-ultimate-Sessions.json` feeds the purge demo; README and the request-driver console gained flows for audit trail, poison order → DLQ and schedule observation.
|
|
14
18
|
- **VS Code tasks for `examples/localstack-ultimate`** (`.vscode/tasks.json`): setup, start (Docker + `LOCALSTACK_AUTH_TOKEN`), offline, seed, drive demo, drive catalog (OpenSearch) and stop — same style as the existing example task sections, which previously covered only `self-hosted` and `localstack-free`.
|
|
15
19
|
- **OpenSearch Serverless on LocalStack engines — the aoss sidecar**: no LocalStack edition emulates `aoss` (localstack/localstack#8707 is still backlog), so the orchestrator now serves the self engine's OpenSearch emulator **in-process** on a dedicated port (default `14567`) whenever the active engine is LocalStack. `AWS::OpenSearchServerless::Collection` resources provision into it transparently (`SecurityPolicy`/`AccessPolicy` stay accepted-and-skipped), the dashboard's resources/collections views work unchanged, and `GET /api/health` gains an `aossSidecar {enabled, running, port}` block. New optional config block `aossSidecar: { enabled?, port? }` (`enabled: false` opts out; never runs on the self engine, which serves aoss natively); data persists under `<stateDir>/aoss` (else `~/.lss/aoss`). Implementation reuses the engine store, OpenSearch emulator and AWS-wire router as-is (`src/server/engine/aoss-sidecar.ts`); documented in `docs/CONFIGURATION.md`. Verified end to end on the Pro image: collection provisioned on registration, full-text search/filters/aggregations served from the sidecar, `enabled/running` in health.
|
|
@@ -22,9 +26,10 @@ Dashboard header split into a brand row + navigation row with the configured reg
|
|
|
22
26
|
- **Each example now runs in its own region**: `localstack-free` → `sa-east-1`, `localstack-ultimate` → `eu-west-1`, `self-hosted` → `us-west-2` — config, `serverless.yml`s, SDK fallbacks, embedded ARNs and docs updated coherently (`examples/README.md` gained a Region column).
|
|
23
27
|
- `examples/localstack-ultimate` now lists `events` in `lss.config.json` `services` (EventBridge was missing from the LocalStack container's `SERVICES`).
|
|
24
28
|
- **`serverless-lss` peer dependency restored to `osls 4.0.0`** (the open-source Serverless Framework v3 fork — no auth token, unlike `serverless` v4, and not EOL like v3): an unreleased change had moved it to an optional `serverless >=3.40.0`. Example lockfiles re-synced accordingly, and the plugin's vestigial nested `package-lock.json` (npm workspaces ignore it, so it only drifted) was removed. `examples/localstack-ultimate` keeps its `overrides: { "serverless": "npm:osls@4.0.0" }` — that alias is what stops `serverless-offline`'s `serverless` peer from pulling the token-gated framework; the self-hosted example references no framework package besides `osls` itself.
|
|
25
|
-
- The root package version is now `0.10.0`; `serverless-lss`
|
|
29
|
+
- The root package version is now `0.10.0`; `serverless-lss` shipped as `0.2.2` (the version bump let the publish workflow ship the peer-dependency restore — the `0.2.0` on npm still carries the `serverless 3.40.0` peer).
|
|
26
30
|
|
|
27
31
|
### Fixed
|
|
32
|
+
- **`NotImplemented` errors no longer point at a dead end**: operation-level gaps in services the self engine serves (e.g. DynamoDB PartiQL) suggested `selfEngine.fallbackEndpoint`, but fallback only forwards *whole services* the engine does not serve — and the service's data lives in the self engine, so forwarding a single operation would read the wrong state (a `ResourceNotFoundException` from LocalStack for a table that exists in the engine). The message now says exactly that; the service-level variant (whole service unknown, where fallback genuinely applies) keeps the suggestion. Same fix for the OpenSearch data-plane `unsupported` message.
|
|
28
33
|
- **Cross-project service-cache contamination**: the registered-services cache lived flat in `~/.lss/orchestrator/cache`, keyed by service name only, and `rehydrateAll()` reactivated *every* cached entry at boot — so starting one example's orchestrator also bound the gateway ports of services registered by *other* projects (observed as `self-hosted`'s catalog-service `:3634` being held by the `localstack-free` orchestrator), and same-named services in two projects overwrote each other. The cache is now scoped per project under `cache/projects/<slug>-<hash-of-root>` — the project root is the config file's directory (symlink-resolved), falling back to the launch cwd when no project-local config exists, so no-config setups should keep starting the orchestrator from the same directory. Rehydration logs a note when a cached service's root lies outside the project root (a legitimate layout — config under `infra/`, services elsewhere) but still reactivates it. Existing flat-layout entries are ignored — re-register services once after upgrading.
|
|
29
34
|
- **Gateway port conflicts now self-heal**: on `EADDRINUSE` the listener still reports `port-conflict`, but LSS retries the bind every 5 s and flips the service back to online as soon as the port frees (previously the listener was disabled until re-registration, while registration still reported success).
|
|
30
35
|
- `examples/self-hosted/catalog-service/package.json` description said port `3641` (invoke `13641`); the real ports are `3634`/`13634`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambdas.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/lambdas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,aAAa,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzG;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,cAAc,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lambdas.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/lambdas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,aAAa,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzG;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,cAAc,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;IAEZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,2EAA2E;IAC3E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,sBAAsB,EAAE,CAAA;KAAE,CAAC,CAAC;CACxE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAQvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambdas.js","sourceRoot":"","sources":["../../../src/client/namespaces/lambdas.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"lambdas.js","sourceRoot":"","sources":["../../../src/client/namespaces/lambdas.ts"],"names":[],"mappings":";;AA0DA,4CAQC;AARD,SAAgB,gBAAgB,CAAC,IAAU;IACzC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1E,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;QAC5C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACzF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;KACvD,CAAC;AACJ,CAAC"}
|
|
@@ -6,6 +6,7 @@ export declare class DynamoDbEmulator implements TargetEmulator {
|
|
|
6
6
|
readonly jsonVersion: "1.0";
|
|
7
7
|
private readonly streams;
|
|
8
8
|
private readonly catalogs;
|
|
9
|
+
private readonly transactTokens;
|
|
9
10
|
constructor(ctx: EngineContext);
|
|
10
11
|
handle(operation: string, input: Record<string, unknown>, req: AwsRequest): Promise<object>;
|
|
11
12
|
getStreamArn(region: string, tableName: string): string | undefined;
|
|
@@ -36,11 +37,18 @@ export declare class DynamoDbEmulator implements TargetEmulator {
|
|
|
36
37
|
private getItem;
|
|
37
38
|
private deleteItem;
|
|
38
39
|
private updateItem;
|
|
40
|
+
private assertKeyUnchanged;
|
|
39
41
|
private topLevelUpdatedNames;
|
|
40
42
|
private query;
|
|
41
43
|
private scan;
|
|
42
44
|
private page;
|
|
43
45
|
private batchGetItem;
|
|
44
46
|
private batchWriteItem;
|
|
47
|
+
private ensureHydrated;
|
|
48
|
+
private transactDuplicateGuard;
|
|
49
|
+
private transactConsumedCapacity;
|
|
50
|
+
private transactWriteItems;
|
|
51
|
+
private executeTransactWrite;
|
|
52
|
+
private transactGetItems;
|
|
45
53
|
}
|
|
46
54
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/dynamodb/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACI,UAAU,EAAE,aAAa,EAAE,cAAc,EACxD,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/dynamodb/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACI,UAAU,EAAE,aAAa,EAAE,cAAc,EACxD,MAAM,gBAAgB,CAAC;AAuCxB,qBAAa,gBAAiB,YAAW,cAAc;IASzC,OAAO,CAAC,QAAQ,CAAC,GAAG;IARhC,QAAQ,CAAC,OAAO,EAAG,UAAU,CAAU;IACvC,QAAQ,CAAC,YAAY,uBAAuB;IAC5C,QAAQ,CAAC,WAAW,EAAG,KAAK,CAAU;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;gBAE9B,GAAG,EAAE,aAAa;IAIzC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBjG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUnE,UAAU,CACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,KAAK,EAAE,MAAM,GACZ;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE;IAMhD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAOlC,UAAU;YAYV,YAAY;YAgBZ,QAAQ;IAMtB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,WAAW;YAcL,WAAW;YAYX,aAAa;YAMb,WAAW;YAiBX,UAAU;YAkBV,gBAAgB;YAchB,kBAAkB;IAUhC,OAAO,CAAC,gBAAgB;YA8EV,OAAO;YA8BP,OAAO;YAmBP,UAAU;YAyBV,UAAU;IAsDxB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,oBAAoB;YAkBd,KAAK;YAKL,IAAI;YAKJ,IAAI;YAkBJ,YAAY;YA4BZ,cAAc;YAkDd,cAAc;IAQ5B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,wBAAwB;YAQlB,kBAAkB;YAyClB,oBAAoB;YAoHpB,gBAAgB;CAmC/B"}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
// expiration and change streams (streams.ts). All AWS-shaped failures are
|
|
4
4
|
// thrown as AwsError with the exact error names the provisioner's idempotency
|
|
5
5
|
// and the SDK's error mapping depend on (PRD RF2.4/RF3).
|
|
6
|
-
import { AwsError, dynamoError,
|
|
6
|
+
import { AwsError, dynamoError, notImplementedOperation, validationError } from '../../http/errors.js';
|
|
7
7
|
import { applyProjection, applyUpdate, assertPlaceholdersUsed, attributeValuesEqual, compileCondition, } from './expressions/index.js';
|
|
8
8
|
import { parseUpdateExpression } from './expressions/parser.js';
|
|
9
9
|
import { assertItemSize, buildTableRecord, canonicalKey, itemSizeBytes, keyMapOf, rejectLegacyParams, streamArnFor, tableArnFor, validateItemKey, validateProvidedKey, } from './schema.js';
|
|
10
10
|
import { executeQuery, executeScan, indexHasItem } from './query.js';
|
|
11
11
|
import { DynamoStreams } from './streams.js';
|
|
12
|
+
import { parseTransactGetItems, parseTransactWriteItems, TransactTokenCache, } from './transactions.js';
|
|
12
13
|
const DYNAMO_NS = 'com.amazonaws.dynamodb.v20120810';
|
|
13
14
|
const TTL_USER_IDENTITY = { type: 'Service', principalId: 'dynamodb.amazonaws.com' };
|
|
14
15
|
const DEFAULT_LIST_TABLES_LIMIT = 100;
|
|
@@ -21,6 +22,7 @@ export class DynamoDbEmulator {
|
|
|
21
22
|
jsonVersion = '1.0';
|
|
22
23
|
streams;
|
|
23
24
|
catalogs = new Map();
|
|
25
|
+
transactTokens = new TransactTokenCache();
|
|
24
26
|
constructor(ctx) {
|
|
25
27
|
this.ctx = ctx;
|
|
26
28
|
this.streams = new DynamoStreams(ctx);
|
|
@@ -42,7 +44,9 @@ export class DynamoDbEmulator {
|
|
|
42
44
|
case 'Scan': return this.scan(region, input);
|
|
43
45
|
case 'BatchGetItem': return this.batchGetItem(region, input);
|
|
44
46
|
case 'BatchWriteItem': return this.batchWriteItem(region, input);
|
|
45
|
-
|
|
47
|
+
case 'TransactWriteItems': return this.transactWriteItems(region, input);
|
|
48
|
+
case 'TransactGetItems': return this.transactGetItems(region, input);
|
|
49
|
+
default: throw notImplementedOperation('dynamodb', operation);
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
// -- dispatcher-facing stream API -----------------------------------------
|
|
@@ -420,11 +424,7 @@ export class DynamoDbEmulator {
|
|
|
420
424
|
else {
|
|
421
425
|
updated = structuredClone(base);
|
|
422
426
|
}
|
|
423
|
-
|
|
424
|
-
if (updated[AttributeName] === undefined || !attributeValuesEqual(updated[AttributeName], keyInput[AttributeName])) {
|
|
425
|
-
throw validationError(`One or more parameter values were invalid: Cannot update attribute ${AttributeName}. This attribute is part of the key`);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
427
|
+
this.assertKeyUnchanged(record, updated, keyInput);
|
|
428
428
|
assertItemSize(updated);
|
|
429
429
|
items.put(key, updated);
|
|
430
430
|
this.streams.append(region, record.tableName, {
|
|
@@ -453,6 +453,13 @@ export class DynamoDbEmulator {
|
|
|
453
453
|
this.addConsumedCapacity(response, input, record.tableName);
|
|
454
454
|
return response;
|
|
455
455
|
}
|
|
456
|
+
assertKeyUnchanged(record, updated, keyInput) {
|
|
457
|
+
for (const { AttributeName } of record.keySchema) {
|
|
458
|
+
if (updated[AttributeName] === undefined || !attributeValuesEqual(updated[AttributeName], keyInput[AttributeName])) {
|
|
459
|
+
throw validationError(`One or more parameter values were invalid: Cannot update attribute ${AttributeName}. This attribute is part of the key`);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
456
463
|
// Top-level attribute names touched by an UpdateExpression — the granularity
|
|
457
464
|
// AWS's UPDATED_OLD/UPDATED_NEW return values are keyed by.
|
|
458
465
|
topLevelUpdatedNames(expression, ctx) {
|
|
@@ -568,5 +575,199 @@ export class DynamoDbEmulator {
|
|
|
568
575
|
}
|
|
569
576
|
return { UnprocessedItems: {} };
|
|
570
577
|
}
|
|
578
|
+
// -- transactions ----------------------------------------------------------------
|
|
579
|
+
// The prepare loop awaits table/item hydration, which lets the store's
|
|
580
|
+
// memory-budget sweeper dehydrate a table hydrated earlier in the same
|
|
581
|
+
// request. The evaluate/commit phases must run synchronously against
|
|
582
|
+
// hydrated tables, so loop until one pass finds everything resident.
|
|
583
|
+
async ensureHydrated(tables) {
|
|
584
|
+
for (let pass = 0; pass < 10 && tables.some((table) => !table.isHydrated()); pass++) {
|
|
585
|
+
for (const table of tables) {
|
|
586
|
+
if (!table.isHydrated())
|
|
587
|
+
await table.hydrate();
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
transactDuplicateGuard() {
|
|
592
|
+
const seen = new Set();
|
|
593
|
+
return (record, canonical) => {
|
|
594
|
+
const target = JSON.stringify([record.tableName, canonical]);
|
|
595
|
+
if (seen.has(target)) {
|
|
596
|
+
throw validationError('Transaction request cannot include multiple operations on one item');
|
|
597
|
+
}
|
|
598
|
+
seen.add(target);
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
transactConsumedCapacity(response, input, tableNames) {
|
|
602
|
+
const mode = input.ReturnConsumedCapacity;
|
|
603
|
+
if (mode === 'TOTAL' || mode === 'INDEXES') {
|
|
604
|
+
response.ConsumedCapacity = [...new Set(tableNames)]
|
|
605
|
+
.map((tableName) => ({ TableName: tableName, CapacityUnits: 0 }));
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
async transactWriteItems(region, input) {
|
|
609
|
+
const ops = parseTransactWriteItems(input);
|
|
610
|
+
const token = input.ClientRequestToken;
|
|
611
|
+
if (token !== undefined && (typeof token !== 'string' || token.length === 0 || token.length > 36)) {
|
|
612
|
+
throw validationError('ClientRequestToken must be a non-empty string with a maximum length of 36');
|
|
613
|
+
}
|
|
614
|
+
// Idempotency is namespaced per region — DynamoDB is a regional service,
|
|
615
|
+
// and one emulator instance serves every region.
|
|
616
|
+
const tokenKey = typeof token === 'string' ? JSON.stringify([region, token]) : undefined;
|
|
617
|
+
if (tokenKey !== undefined) {
|
|
618
|
+
const replay = this.transactTokens.begin(tokenKey, JSON.stringify(input.TransactItems), {
|
|
619
|
+
mismatch: () => dynamoError('IdempotentParameterMismatchException', 'Request with the same client token already completed with different parameters'),
|
|
620
|
+
inProgress: () => dynamoError('TransactionInProgressException', 'The transaction with the given request token is currently in progress'),
|
|
621
|
+
});
|
|
622
|
+
if (replay)
|
|
623
|
+
return replay;
|
|
624
|
+
}
|
|
625
|
+
try {
|
|
626
|
+
const response = await this.executeTransactWrite(region, input, ops);
|
|
627
|
+
if (tokenKey !== undefined)
|
|
628
|
+
this.transactTokens.complete(tokenKey, response);
|
|
629
|
+
return response;
|
|
630
|
+
}
|
|
631
|
+
catch (err) {
|
|
632
|
+
// Failed transactions are not idempotency-cached — a retry re-executes.
|
|
633
|
+
if (tokenKey !== undefined)
|
|
634
|
+
this.transactTokens.abandon(tokenKey);
|
|
635
|
+
throw err;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
// All-or-nothing (PRD RF3): conditions AND the update computations are
|
|
639
|
+
// evaluated against current state first — in one synchronous block, so no
|
|
640
|
+
// other request interleaves between the checks and the writes — and any
|
|
641
|
+
// failure cancels the whole request with per-item CancellationReasons (the
|
|
642
|
+
// shape clients inspect to map "condition failed on entry N" to domain
|
|
643
|
+
// errors like duplicate e-mail). Only a fully clean pass applies the
|
|
644
|
+
// writes — each one emitting its stream record.
|
|
645
|
+
async executeTransactWrite(region, input, ops) {
|
|
646
|
+
const guardDuplicate = this.transactDuplicateGuard();
|
|
647
|
+
const prepared = [];
|
|
648
|
+
for (const op of ops) {
|
|
649
|
+
const record = await this.requireTable(region, op.tableName);
|
|
650
|
+
const items = await this.itemsFor(region, record.tableName);
|
|
651
|
+
let keyInput;
|
|
652
|
+
if (op.kind === 'Put') {
|
|
653
|
+
validateItemKey(record, op.item);
|
|
654
|
+
assertItemSize(op.item);
|
|
655
|
+
keyInput = keyMapOf(record, op.item);
|
|
656
|
+
}
|
|
657
|
+
else {
|
|
658
|
+
keyInput = validateProvidedKey(record, op.key);
|
|
659
|
+
}
|
|
660
|
+
assertPlaceholdersUsed([op.updateExpression, op.conditionExpression], op.ctx);
|
|
661
|
+
// Statically invalid updates reject the request up front (AWS
|
|
662
|
+
// behavior): syntax/placeholder errors and expressions that touch a
|
|
663
|
+
// key attribute. Runtime apply failures cancel the transaction below.
|
|
664
|
+
if (op.kind === 'Update') {
|
|
665
|
+
const touched = this.topLevelUpdatedNames(op.updateExpression, op.ctx);
|
|
666
|
+
for (const { AttributeName } of record.keySchema) {
|
|
667
|
+
if (touched.includes(AttributeName)) {
|
|
668
|
+
throw validationError(`One or more parameter values were invalid: Cannot update attribute ${AttributeName}. This attribute is part of the key`);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
guardDuplicate(record, canonicalKey(record, keyInput));
|
|
673
|
+
prepared.push({ op, record, items, canonical: canonicalKey(record, keyInput), keyInput });
|
|
674
|
+
}
|
|
675
|
+
await this.ensureHydrated(prepared.map((entry) => entry.items));
|
|
676
|
+
const reasons = prepared.map((entry) => {
|
|
677
|
+
const { op, record, keyInput } = entry;
|
|
678
|
+
entry.old = this.liveItem(region, record, entry.items, entry.canonical);
|
|
679
|
+
if (op.conditionExpression) {
|
|
680
|
+
const passed = compileCondition(op.conditionExpression, op.ctx).evaluate(entry.old ?? {});
|
|
681
|
+
if (!passed) {
|
|
682
|
+
const reason = { Code: 'ConditionalCheckFailed', Message: 'The conditional request failed' };
|
|
683
|
+
if (op.returnOldOnFail && entry.old)
|
|
684
|
+
reason.Item = structuredClone(entry.old);
|
|
685
|
+
return reason;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
if (op.kind === 'Put') {
|
|
689
|
+
entry.stored = structuredClone(op.item);
|
|
690
|
+
}
|
|
691
|
+
else if (op.kind === 'Update') {
|
|
692
|
+
// Dry-run the update NOW so a failing op cancels the transaction
|
|
693
|
+
// (AWS reports it as a ValidationError cancellation reason) instead
|
|
694
|
+
// of surfacing after earlier ops were already written.
|
|
695
|
+
try {
|
|
696
|
+
const base = entry.old ?? structuredClone(keyInput);
|
|
697
|
+
const stored = applyUpdate(op.updateExpression, base, op.ctx);
|
|
698
|
+
this.assertKeyUnchanged(record, stored, keyInput);
|
|
699
|
+
assertItemSize(stored);
|
|
700
|
+
entry.stored = stored;
|
|
701
|
+
}
|
|
702
|
+
catch (err) {
|
|
703
|
+
if (err instanceof AwsError && err.code === 'ValidationException') {
|
|
704
|
+
return { Code: 'ValidationError', Message: err.message };
|
|
705
|
+
}
|
|
706
|
+
throw err;
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
return { Code: 'None', Message: null };
|
|
710
|
+
});
|
|
711
|
+
if (reasons.some((reason) => reason.Code !== 'None')) {
|
|
712
|
+
throw new AwsError('TransactionCanceledException', `Transaction cancelled, please refer cancellation reasons for specific reasons [${reasons.map((r) => r.Code).join(', ')}]`, {
|
|
713
|
+
typeName: `${DYNAMO_NS}#TransactionCanceledException`,
|
|
714
|
+
extra: { CancellationReasons: reasons },
|
|
715
|
+
});
|
|
716
|
+
}
|
|
717
|
+
for (const { op, record, items, canonical, old, stored } of prepared) {
|
|
718
|
+
if (op.kind === 'ConditionCheck')
|
|
719
|
+
continue;
|
|
720
|
+
if (op.kind === 'Delete') {
|
|
721
|
+
if (old) {
|
|
722
|
+
items.delete(canonical);
|
|
723
|
+
this.streams.append(region, record.tableName, {
|
|
724
|
+
eventName: 'REMOVE',
|
|
725
|
+
keys: keyMapOf(record, old),
|
|
726
|
+
oldImage: old,
|
|
727
|
+
});
|
|
728
|
+
}
|
|
729
|
+
continue;
|
|
730
|
+
}
|
|
731
|
+
items.put(canonical, stored);
|
|
732
|
+
this.streams.append(region, record.tableName, {
|
|
733
|
+
eventName: old ? 'MODIFY' : 'INSERT',
|
|
734
|
+
keys: keyMapOf(record, stored),
|
|
735
|
+
oldImage: old,
|
|
736
|
+
newImage: stored,
|
|
737
|
+
});
|
|
738
|
+
}
|
|
739
|
+
const response = {};
|
|
740
|
+
this.transactConsumedCapacity(response, input, prepared.map((entry) => entry.record.tableName));
|
|
741
|
+
return response;
|
|
742
|
+
}
|
|
743
|
+
async transactGetItems(region, input) {
|
|
744
|
+
const gets = parseTransactGetItems(input);
|
|
745
|
+
const guardDuplicate = this.transactDuplicateGuard();
|
|
746
|
+
const prepared = [];
|
|
747
|
+
for (const get of gets) {
|
|
748
|
+
const record = await this.requireTable(region, get.tableName);
|
|
749
|
+
const items = await this.itemsFor(region, record.tableName);
|
|
750
|
+
const keyInput = validateProvidedKey(record, get.key);
|
|
751
|
+
assertPlaceholdersUsed([get.projectionExpression], get.ctx);
|
|
752
|
+
const canonical = canonicalKey(record, keyInput);
|
|
753
|
+
guardDuplicate(record, canonical);
|
|
754
|
+
prepared.push({ get, record, items, canonical });
|
|
755
|
+
}
|
|
756
|
+
await this.ensureHydrated(prepared.map((entry) => entry.items));
|
|
757
|
+
// One synchronous pass — the reads are a consistent snapshot, matching
|
|
758
|
+
// the operation's serializable-isolation contract.
|
|
759
|
+
const responses = prepared.map(({ get, record, items, canonical }) => {
|
|
760
|
+
const item = this.liveItem(region, record, items, canonical);
|
|
761
|
+
if (!item)
|
|
762
|
+
return {};
|
|
763
|
+
const clone = structuredClone(item);
|
|
764
|
+
return {
|
|
765
|
+
Item: get.projectionExpression ? applyProjection(get.projectionExpression, clone, get.ctx) : clone,
|
|
766
|
+
};
|
|
767
|
+
});
|
|
768
|
+
const response = { Responses: responses };
|
|
769
|
+
this.transactConsumedCapacity(response, input, prepared.map((entry) => entry.record.tableName));
|
|
770
|
+
return response;
|
|
771
|
+
}
|
|
571
772
|
}
|
|
572
773
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/dynamodb/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/dynamodb/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AttributeMap } from '../../types.js';
|
|
2
|
+
import type { ExpressionContext } from './expressions/expression-types.js';
|
|
3
|
+
export declare const MAX_TRANSACT_ITEMS = 100;
|
|
4
|
+
export type TransactWriteKind = 'Put' | 'Update' | 'Delete' | 'ConditionCheck';
|
|
5
|
+
export interface TransactWriteOp {
|
|
6
|
+
kind: TransactWriteKind;
|
|
7
|
+
tableName: string;
|
|
8
|
+
item?: AttributeMap;
|
|
9
|
+
key?: AttributeMap;
|
|
10
|
+
updateExpression?: string;
|
|
11
|
+
conditionExpression?: string;
|
|
12
|
+
returnOldOnFail: boolean;
|
|
13
|
+
ctx: ExpressionContext;
|
|
14
|
+
}
|
|
15
|
+
export interface TransactGetOp {
|
|
16
|
+
tableName: string;
|
|
17
|
+
key: AttributeMap;
|
|
18
|
+
projectionExpression?: string;
|
|
19
|
+
ctx: ExpressionContext;
|
|
20
|
+
}
|
|
21
|
+
export declare function parseTransactWriteItems(input: Record<string, unknown>): TransactWriteOp[];
|
|
22
|
+
export declare function parseTransactGetItems(input: Record<string, unknown>): TransactGetOp[];
|
|
23
|
+
export declare const TRANSACT_TOKEN_TTL_MS: number;
|
|
24
|
+
export interface TokenConflictErrors {
|
|
25
|
+
mismatch: () => Error;
|
|
26
|
+
inProgress: () => Error;
|
|
27
|
+
}
|
|
28
|
+
export declare class TransactTokenCache {
|
|
29
|
+
private readonly entries;
|
|
30
|
+
begin(token: string, digest: string, errors: TokenConflictErrors): object | undefined;
|
|
31
|
+
complete(token: string, response: object): void;
|
|
32
|
+
abandon(token: string): void;
|
|
33
|
+
private prune;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=transactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/dynamodb/transactions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG3E,eAAO,MAAM,kBAAkB,MAAM,CAAC;AActC,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAElB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,iBAAiB,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,EAAE,iBAAiB,CAAC;CACxB;AA0CD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,CAyCzF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,EAAE,CAkBrF;AASD,eAAO,MAAM,qBAAqB,QAAc,CAAC;AASjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,UAAU,EAAE,MAAM,KAAK,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IAKzD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS;IAYrF,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO/C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5B,OAAO,CAAC,KAAK;CAMd"}
|