local-serverless-stack 0.9.0 → 0.11.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.
Files changed (76) hide show
  1. package/CHANGELOG.md +21 -3
  2. package/dist/client/namespaces/lambdas.d.ts +1 -0
  3. package/dist/client/namespaces/lambdas.d.ts.map +1 -1
  4. package/dist/client/namespaces/lambdas.js.map +1 -1
  5. package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
  6. package/dist/server/engine/backends/self-backend.js +4 -2
  7. package/dist/server/engine/backends/self-backend.js.map +1 -1
  8. package/dist/server/engine/emulators/dynamodb/index.d.ts +8 -0
  9. package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
  10. package/dist/server/engine/emulators/dynamodb/index.js +208 -7
  11. package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
  12. package/dist/server/engine/emulators/dynamodb/transactions.d.ts +35 -0
  13. package/dist/server/engine/emulators/dynamodb/transactions.d.ts.map +1 -0
  14. package/dist/server/engine/emulators/dynamodb/transactions.js +153 -0
  15. package/dist/server/engine/emulators/dynamodb/transactions.js.map +1 -0
  16. package/dist/server/engine/emulators/events/index.js +2 -2
  17. package/dist/server/engine/emulators/events/index.js.map +1 -1
  18. package/dist/server/engine/emulators/lambda-ctl/index.js +5 -5
  19. package/dist/server/engine/emulators/lambda-ctl/index.js.map +1 -1
  20. package/dist/server/engine/emulators/opensearch/index.d.ts.map +1 -1
  21. package/dist/server/engine/emulators/opensearch/index.js +5 -4
  22. package/dist/server/engine/emulators/opensearch/index.js.map +1 -1
  23. package/dist/server/engine/emulators/s3/index.d.ts +2 -0
  24. package/dist/server/engine/emulators/s3/index.d.ts.map +1 -1
  25. package/dist/server/engine/emulators/s3/index.js +91 -5
  26. package/dist/server/engine/emulators/s3/index.js.map +1 -1
  27. package/dist/server/engine/emulators/s3/multipart.d.ts +9 -0
  28. package/dist/server/engine/emulators/s3/multipart.d.ts.map +1 -0
  29. package/dist/server/engine/emulators/s3/multipart.js +88 -0
  30. package/dist/server/engine/emulators/s3/multipart.js.map +1 -0
  31. package/dist/server/engine/emulators/secretsmanager/index.d.ts +29 -0
  32. package/dist/server/engine/emulators/secretsmanager/index.d.ts.map +1 -0
  33. package/dist/server/engine/emulators/secretsmanager/index.js +450 -0
  34. package/dist/server/engine/emulators/secretsmanager/index.js.map +1 -0
  35. package/dist/server/engine/emulators/sns/index.js +2 -2
  36. package/dist/server/engine/emulators/sns/index.js.map +1 -1
  37. package/dist/server/engine/emulators/sqs/index.js +2 -2
  38. package/dist/server/engine/emulators/sqs/index.js.map +1 -1
  39. package/dist/server/engine/emulators/sts.js +2 -2
  40. package/dist/server/engine/emulators/sts.js.map +1 -1
  41. package/dist/server/engine/http/errors.d.ts +1 -0
  42. package/dist/server/engine/http/errors.d.ts.map +1 -1
  43. package/dist/server/engine/http/errors.js +12 -0
  44. package/dist/server/engine/http/errors.js.map +1 -1
  45. package/dist/server/engine/http/router.d.ts.map +1 -1
  46. package/dist/server/engine/http/router.js +4 -0
  47. package/dist/server/engine/http/router.js.map +1 -1
  48. package/dist/server/engine/types.d.ts +1 -1
  49. package/dist/server/engine/types.d.ts.map +1 -1
  50. package/dist/server/runtime/log-capture.d.ts +7 -0
  51. package/dist/server/runtime/log-capture.d.ts.map +1 -0
  52. package/dist/server/runtime/log-capture.js +206 -0
  53. package/dist/server/runtime/log-capture.js.map +1 -0
  54. package/dist/server/runtime/runtime-worker.js +23 -14
  55. package/dist/server/runtime/runtime-worker.js.map +1 -1
  56. package/dist/server/services/lambda-runtime-manager.d.ts +2 -0
  57. package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
  58. package/dist/server/services/lambda-runtime-manager.js +19 -1
  59. package/dist/server/services/lambda-runtime-manager.js.map +1 -1
  60. package/dist/ui/assets/{ApisPage-C0xaNFQW.js → ApisPage-DyjG-weG.js} +1 -1
  61. package/dist/ui/assets/{BucketDetailPage-Bnny8S04.js → BucketDetailPage-Bvrk1L6q.js} +1 -1
  62. package/dist/ui/assets/{BucketsPage-Dd3Y4-gU.js → BucketsPage-KgeLoK6e.js} +1 -1
  63. package/dist/ui/assets/{DynamoPage-JzSF-4VI.js → DynamoPage-C8rwaEIi.js} +1 -1
  64. package/dist/ui/assets/{DynamoTablePage-uM0DXGCo.js → DynamoTablePage-CN5P5f7S.js} +1 -1
  65. package/dist/ui/assets/{LambdaDetailPage-CoR9ZXdb.js → LambdaDetailPage-BPhEkF44.js} +3 -3
  66. package/dist/ui/assets/{LambdasPage-CNMX_O5P.js → LambdasPage-Dz4wxjVd.js} +1 -1
  67. package/dist/ui/assets/{OpenSearchCollectionPage-D5FaSCF1.js → OpenSearchCollectionPage-B3s964oC.js} +1 -1
  68. package/dist/ui/assets/{OpenSearchPage-FEzLxaej.js → OpenSearchPage-0fTJJovd.js} +1 -1
  69. package/dist/ui/assets/{OverviewPage-0xvjT7Q0.js → OverviewPage-B13l71G0.js} +1 -1
  70. package/dist/ui/assets/{QueueDetailPage-B2GaNLLe.js → QueueDetailPage-peLph1_v.js} +1 -1
  71. package/dist/ui/assets/{QueuesPage-Ch5kGwrp.js → QueuesPage-CF9yiBkq.js} +1 -1
  72. package/dist/ui/assets/{ServiceDetailPage-DKiz21oo.js → ServiceDetailPage-ZGLPswmY.js} +1 -1
  73. package/dist/ui/assets/{ServicesPage-Cmi3UIfM.js → ServicesPage-DsoZBBxo.js} +1 -1
  74. package/dist/ui/assets/{index-MF9fVrsr.js → index-BP9zQ9L-.js} +2 -2
  75. package/dist/ui/index.html +1 -1
  76. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,11 +5,28 @@ 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-12
8
+ ## [0.11.0] - 2026-07-13
9
9
 
10
- 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.
10
+ Two self-engine capabilities that let a project drop LocalStack (and the Docker-in-Docker it needs) from the daily loop: a **Secrets Manager** emulator and **S3 presigned POST**. Together they remove the last reasons a self-engine setup had to keep `selfEngine.fallbackEndpoint` pointed at a LocalStack container the RS256 signing key an identity service reads at boot, and the browser form uploads a storage service hands out.
11
11
 
12
12
  ### Added
13
+ - **Secrets Manager emulator** (`src/server/engine/emulators/secretsmanager/`), served by the self engine over AWS JSON 1.1 under the `secretsmanager` SigV4 scope / `X-Amz-Target`: `CreateSecret`, `GetSecretValue`, `PutSecretValue`, `UpdateSecret`, `DescribeSecret`, `DeleteSecret` (recovery window or `ForceDeleteWithoutRecovery`), `RestoreSecret`, `ListSecrets`, `TagResource`/`UntagResource`, `GetRandomPassword`. Real version staging — a new value promotes to `AWSCURRENT` and demotes the old holder to `AWSPREVIOUS`, and `GetSecretValue` resolves by `VersionStage` or `VersionId`; `SecretString` and `SecretBinary` both round-trip; `ClientRequestToken` gives idempotent create/put; secrets are scoped per region and persist in a catalog (not encrypted locally — `KmsKeyId` is accepted and ignored). Errors carry the names the SDK branches on (`ResourceNotFoundException`, `ResourceExistsException`, `InvalidParameterException`, `InvalidRequestException`). This retires the LocalStack Secrets Manager the self engine previously reached only by proxying through `fallbackEndpoint`. Registered in the router (`secretsmanager` → JSON 1.1), the `/_localstack/health` alias and `healthDetail().services`.
14
+ - **S3 presigned POST** (browser form upload): the S3 emulator now handles `POST /<bucket>` with `multipart/form-data` — the `key` field (with `${filename}` substitution), `Content-Type`, `success_action_status` (200/201-with-`PostResponse`/204) and `success_action_redirect` (303 with `bucket`/`key`/`etag` appended), plus `x-amz-meta-*` fields as object metadata. The upload stores the object exactly like `PutObject` (content-addressed blob, index entry) and emits an `s3:ObjectCreated:Post` event, so bucket-notification Lambdas fire. Backed by a new dependency-free, byte-accurate multipart parser (`src/server/engine/emulators/s3/multipart.ts`). The POST policy/signature fields are accepted but not verified — the engine never verifies SigV4 either.
15
+ - **Full-stack wire conformance tests** (`tests/unit/engine/wire-secretsmanager-s3post.test.ts`): boot the real `SelfEngineBackend` HTTP front door and drive both features exactly as the AWS SDK / a browser would — the integration layer no unit test previously covered, which is the class of gap that let earlier omissions reach users. Plus focused unit suites for the Secrets Manager emulator, the S3 POST handler and the multipart parser.
16
+
17
+ ### Known gaps (tracked follow-ups)
18
+ - **CloudFormation `AWS::SecretsManager::Secret` is not yet provisioned on registration** — declare-and-forget secrets in `resources:` are not created; create them via the SDK (`CreateSecret`, e.g. in a bootstrap step) for now. Wiring the provisioner (and its `@aws-sdk/client-secrets-manager` dependency) is a follow-up.
19
+ - **Examples don't yet exercise transactions, Secrets Manager or presigned POST.** The examples are demos, not the conformance surface — the unit + wire tests above are. Extending an example (the `self-hosted` one, the "drop LocalStack" target) to demonstrate these is a follow-up.
20
+
21
+ ## [0.10.0] - 2026-07-13
22
+
23
+ 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.
24
+
25
+ ### Added
26
+ - **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.
27
+ - **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.
28
+ - **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]`.
29
+ - **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
30
  - **`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
31
  - **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
32
  - **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 +39,10 @@ Dashboard header split into a brand row + navigation row with the configured reg
22
39
  - **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
40
  - `examples/localstack-ultimate` now lists `events` in `lss.config.json` `services` (EventBridge was missing from the LocalStack container's `SERVICES`).
24
41
  - **`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` is now `0.2.1` (the version bump lets the publish workflow ship the peer-dependency restore — the `0.2.0` on npm still carries the `serverless 3.40.0` peer).
42
+ - 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
43
 
27
44
  ### Fixed
45
+ - **`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
46
  - **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
47
  - **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
48
  - `examples/self-hosted/catalog-service/package.json` description said port `3641` (invoke `13641`); the real ports are `3634`/`13634`.
@@ -45,6 +45,7 @@ export interface LambdaInvocationRecord {
45
45
  at: number;
46
46
  functionName: string;
47
47
  ok: boolean;
48
+ statusCode?: number;
48
49
  durationMs: number;
49
50
  logs: string[];
50
51
  }
@@ -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;IACZ,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
+ {"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":";;AAwDA,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"self-backend.d.ts","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAoBhG,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAS;gBAIZ,SAAS,GAAE,OAAO,CAAC,wBAAwB,CAAM;IAIvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuFtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC3B,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,MAAM;IAIrB,SAAS,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAQhH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYvC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,kBAAkB;CAU3B"}
1
+ {"version":3,"file":"self-backend.d.ts","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAqBhG,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAS;gBAIZ,SAAS,GAAE,OAAO,CAAC,wBAAwB,CAAM;IAIvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwFtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC3B,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,MAAM;IAIrB,SAAS,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAQhH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYvC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,kBAAkB;CAU3B"}
@@ -16,11 +16,12 @@ import { S3Emulator } from '../emulators/s3/index.js';
16
16
  import { EventsEmulator } from '../emulators/events/index.js';
17
17
  import { SnsEmulator } from '../emulators/sns/index.js';
18
18
  import { StsEmulator } from '../emulators/sts.js';
19
+ import { SecretsManagerEmulator } from '../emulators/secretsmanager/index.js';
19
20
  import { LambdaCtlEmulator } from '../emulators/lambda-ctl/index.js';
20
21
  import { OpenSearchEmulator } from '../emulators/opensearch/index.js';
21
22
  import { EngineDispatcher } from '../dispatch/dispatcher.js';
22
23
  import { EngineScheduler } from '../dispatch/scheduler.js';
23
- const SERVICES = ['dynamodb', 'sqs', 'sns', 's3', 'events', 'lambda', 'sts', 'aoss'];
24
+ const SERVICES = ['dynamodb', 'sqs', 'sns', 's3', 'events', 'lambda', 'sts', 'secretsmanager', 'aoss'];
24
25
  const SQS_SNAPSHOT_FILE = 'sqs-messages.snapshot.json';
25
26
  export class SelfEngineBackend {
26
27
  kind = 'self';
@@ -67,6 +68,7 @@ export class SelfEngineBackend {
67
68
  const events = new EventsEmulator(ctx);
68
69
  const sns = new SnsEmulator(ctx);
69
70
  const sts = new StsEmulator(ctx);
71
+ const secretsManager = new SecretsManagerEmulator(ctx);
70
72
  const lambdaCtl = new LambdaCtlEmulator(ctx);
71
73
  const opensearch = new OpenSearchEmulator(ctx);
72
74
  this.sqs = sqs;
@@ -90,7 +92,7 @@ export class SelfEngineBackend {
90
92
  store.startSweeper();
91
93
  const handler = createEngineRequestHandler({
92
94
  ctx,
93
- emulators: [dynamo, sqs, s3, events, sns, sts, lambdaCtl, opensearch],
95
+ emulators: [dynamo, sqs, s3, events, sns, sts, secretsManager, lambdaCtl, opensearch],
94
96
  });
95
97
  const server = http.createServer(handler);
96
98
  server.on('connection', socket => {
@@ -1 +1 @@
1
- {"version":3,"file":"self-backend.js","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"self-backend.js","sourceRoot":"","sources":["../../../../src/server/engine/backends/self-backend.ts"],"names":[],"mappings":"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"}
@@ -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;AAmCxB,qBAAa,gBAAiB,YAAW,cAAc;IAQzC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAPhC,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;gBAE5C,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;IAuBjG,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;IA8DxB,OAAO,CAAC,oBAAoB;YAkBd,KAAK;YAKL,IAAI;YAKJ,IAAI;YAkBJ,YAAY;YA4BZ,cAAc;CA2C7B"}
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, notImplemented, validationError } from '../../http/errors.js';
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
- default: throw notImplemented('dynamodb', operation);
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
- for (const { AttributeName } of record.keySchema) {
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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"}