@photon-grove/evt 0.1.1 → 0.1.2
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 +39 -4
- package/dist/aggregate.d.ts +26 -0
- package/dist/aggregate.d.ts.map +1 -1
- package/dist/aggregate.js.map +1 -1
- package/dist/dynamodb/index.d.ts +1 -0
- package/dist/dynamodb/index.d.ts.map +1 -1
- package/dist/dynamodb/index.js +1 -0
- package/dist/dynamodb/index.js.map +1 -1
- package/dist/dynamodb/repository.d.ts.map +1 -1
- package/dist/dynamodb/repository.js +24 -7
- package/dist/dynamodb/repository.js.map +1 -1
- package/dist/dynamodb/requests.d.ts +5 -2
- package/dist/dynamodb/requests.d.ts.map +1 -1
- package/dist/dynamodb/requests.js +19 -4
- package/dist/dynamodb/requests.js.map +1 -1
- package/dist/dynamodb/views.d.ts +18 -0
- package/dist/dynamodb/views.d.ts.map +1 -0
- package/dist/dynamodb/views.js +56 -0
- package/dist/dynamodb/views.js.map +1 -0
- package/dist/errors.d.ts +14 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/postgres/client.d.ts +32 -0
- package/dist/postgres/client.d.ts.map +1 -0
- package/dist/postgres/client.js +4 -0
- package/dist/postgres/client.js.map +1 -0
- package/dist/postgres/index.d.ts +4 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +6 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/repository.d.ts +55 -0
- package/dist/postgres/repository.d.ts.map +1 -0
- package/dist/postgres/repository.js +527 -0
- package/dist/postgres/repository.js.map +1 -0
- package/dist/postgres/schema.d.ts +81 -0
- package/dist/postgres/schema.d.ts.map +1 -0
- package/dist/postgres/schema.js +233 -0
- package/dist/postgres/schema.js.map +1 -0
- package/dist/repository.d.ts +26 -6
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +21 -5
- package/dist/repository.js.map +1 -1
- package/dist/store.d.ts +4 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +31 -6
- package/dist/store.js.map +1 -1
- package/package.json +5 -1
- package/src/aggregate.ts +28 -0
- package/src/dynamodb/index.ts +1 -0
- package/src/dynamodb/repository.ts +29 -6
- package/src/dynamodb/requests.ts +24 -4
- package/src/dynamodb/views.ts +67 -0
- package/src/errors.ts +23 -0
- package/src/index.ts +4 -0
- package/src/postgres/client.ts +37 -0
- package/src/postgres/index.ts +23 -0
- package/src/postgres/repository.ts +773 -0
- package/src/postgres/schema.ts +286 -0
- package/src/repository.ts +52 -7
- package/src/store.ts +58 -8
package/README.md
CHANGED
|
@@ -11,9 +11,9 @@ held to the fixtures Go and Rust generate, byte for byte.
|
|
|
11
11
|
npm install @photon-grove/evt
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
So far it has the core, the in-memory and
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
So far it has the core, the in-memory, DynamoDB and PostgreSQL backends, and the testing helpers.
|
|
15
|
+
Commit-wide projectors, command outcomes and multi-stream transactions come in later releases, and
|
|
16
|
+
the
|
|
17
17
|
[feature matrix](https://github.com/photon-grove/evt/blob/main/docs/reference/feature-matrix.md)
|
|
18
18
|
tracks each one. The
|
|
19
19
|
[getting started guide](https://github.com/photon-grove/evt/blob/main/docs/guide/getting-started.md#the-same-model-in-typescript)
|
|
@@ -26,7 +26,8 @@ builds a bank account aggregate with it, end to end.
|
|
|
26
26
|
| `@photon-grove/evt` | Aggregates, codecs, upcasters, the `Store`, retry, and the wire codecs |
|
|
27
27
|
| `@photon-grove/evt/memory` | `MemRepository`, the in-memory backend for tests and local development |
|
|
28
28
|
| `@photon-grove/evt/testing` | `scenario` and `Fixture`, the given/when/then helpers over `MemRepository` |
|
|
29
|
-
| `@photon-grove/evt/dynamodb` | `DynamoRepository`, and the
|
|
29
|
+
| `@photon-grove/evt/dynamodb` | `DynamoRepository`, `viewProjector`, and the item and request codecs |
|
|
30
|
+
| `@photon-grove/evt/postgres` | `PgRepository`, and the schema: table names, relations and `schemaDdl` |
|
|
30
31
|
|
|
31
32
|
## DynamoDB
|
|
32
33
|
|
|
@@ -59,6 +60,35 @@ hasn't loaded the stream gets a conflict, and its retry passes. TTL deletes item
|
|
|
59
60
|
use retention only for short-lived streams that nothing replays, and declare the retained types in
|
|
60
61
|
the feature manifest from Go or Rust, so that their writers refuse read fences on them.
|
|
61
62
|
|
|
63
|
+
`viewProjector('views')`, listed in an aggregate's `projectors`, puts the entity's view row with
|
|
64
|
+
every commit, in the same transaction: `pk = {type}#{id}`, `sk = VIEW`, and the state as its
|
|
65
|
+
codec encodes it, as Go's `dynamo.NewViewProjector` does.
|
|
66
|
+
|
|
67
|
+
## PostgreSQL
|
|
68
|
+
|
|
69
|
+
`PgRepository` takes a pool shaped like `pg`'s `Pool`, and writes the tables the
|
|
70
|
+
[PostgreSQL guide](https://github.com/photon-grove/evt/blob/main/docs/guide/postgres.md) describes,
|
|
71
|
+
as Go's and Rust's repositories do:
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
import {Store} from '@photon-grove/evt'
|
|
75
|
+
import {PgRepository} from '@photon-grove/evt/postgres'
|
|
76
|
+
import {Pool} from 'pg'
|
|
77
|
+
|
|
78
|
+
const repository = new PgRepository(new Pool({connectionString: process.env.DATABASE_URL}))
|
|
79
|
+
await repository.ensureSchema() // idempotent, safe on every start
|
|
80
|
+
const store = new Store(repository)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The package imports no driver: Neon's serverless `Pool` works too, and so does a single connection
|
|
84
|
+
without `connect()`, such as PGlite, which the repository runs one operation at a time on. Every
|
|
85
|
+
value it sends is a string and every column it reads is text, so no driver's type parsing touches a
|
|
86
|
+
stored value. `{eventsTable, snapshotsTable}` let several event logs share a database. A writer
|
|
87
|
+
initializes a fresh store itself on its first write, as Go's and Rust's do, and `initialize()` is
|
|
88
|
+
there for a deploy step that treats every backend alike. Every transaction runs at `READ
|
|
89
|
+
COMMITTED`, whatever the server's default. An abort is checked between statements and rolls the
|
|
90
|
+
transaction back.
|
|
91
|
+
|
|
62
92
|
## Runtimes
|
|
63
93
|
|
|
64
94
|
The package is ESM only and has no runtime dependencies. CI runs it on Node 26, Node 22.12, Bun and
|
|
@@ -103,6 +133,11 @@ of `AbortSignal`, which the DOM library, `@types/node`, and Bun's and Deno's typ
|
|
|
103
133
|
refuses an entity type the manifest declares history-dependent. `MemRepository` declares the
|
|
104
134
|
required `stream-heads` feature on a fresh store's first write, and `initialize()` declares it
|
|
105
135
|
up front.
|
|
136
|
+
- **Projectors.** An aggregate's `projectors` run on the state after each commit's events, and
|
|
137
|
+
the operations they return are written in the commit's own transaction, by the backend they
|
|
138
|
+
name. `MemRepository` budgets them and writes none, as Go's in-memory repository does, so code
|
|
139
|
+
with projectors runs on it unchanged. A commit with operations but no events is refused with a
|
|
140
|
+
`ProjectorOnlyCommitError`.
|
|
106
141
|
- **Rebuilds.** While a projection rebuild holds the store, every commit fails with a
|
|
107
142
|
`RebuildInProgressError`. It's retryable, so `executeWithRetry` runs the command again after its
|
|
108
143
|
backoff, though a rebuild usually outlasts the default policy's attempts.
|
package/dist/aggregate.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Codec } from './codec.js';
|
|
2
2
|
import type { SerializedEvent } from './event.js';
|
|
3
3
|
import { type JsonValue } from './json.js';
|
|
4
|
+
import type { ProjectorGroup } from './repository.js';
|
|
4
5
|
/**
|
|
5
6
|
* Migrates a stored payload of its event type before it is decoded, taking an event at the
|
|
6
7
|
* upcaster's from version to its to version. An event type's upcasters run in declaration order,
|
|
@@ -68,6 +69,31 @@ export interface AggregateDefinition<S, C, D extends EventDefinitions> {
|
|
|
68
69
|
* snapshots.
|
|
69
70
|
*/
|
|
70
71
|
readonly snapshotInterval?: number | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* The projectors whose operations every commit of this type writes in the same transaction as
|
|
74
|
+
* its events, in this order, such as the DynamoDB backend's `viewProjector`.
|
|
75
|
+
*/
|
|
76
|
+
readonly projectors?: readonly Projector<S>[] | undefined;
|
|
77
|
+
}
|
|
78
|
+
/** What a projector sees of a commit: its entity, the state after its events, and the events. */
|
|
79
|
+
export interface Projection<S> {
|
|
80
|
+
readonly entityType: string;
|
|
81
|
+
readonly entityId: string;
|
|
82
|
+
/** The state after the commit's events. */
|
|
83
|
+
readonly state: S;
|
|
84
|
+
/** The state as the aggregate's state codec encodes it, as a snapshot stores it. */
|
|
85
|
+
readonly encodedState: Uint8Array;
|
|
86
|
+
/** Copies of the commit's events, as they are stored. */
|
|
87
|
+
readonly events: readonly Readonly<SerializedEvent>[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Builds the operations a commit writes beside its events, in the same transaction, such as a
|
|
91
|
+
* view of the entity's state. Its group names the backend that writes it. `project` returns null
|
|
92
|
+
* when the commit needs none. It runs only for a commit with events, again on every retry, and it
|
|
93
|
+
* must not fail or change the state.
|
|
94
|
+
*/
|
|
95
|
+
export interface Projector<S> {
|
|
96
|
+
project(projection: Projection<S>): ProjectorGroup | null;
|
|
71
97
|
}
|
|
72
98
|
/** A checked aggregate type. */
|
|
73
99
|
export type Aggregate<S, C, D extends EventDefinitions> = Readonly<AggregateDefinition<S, C, D>>;
|
package/dist/aggregate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAErC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAC,KAAK,SAAS,EAA2B,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
|
package/dist/aggregate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,gFAAgF;AAGhF,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,aAAa,CAAA;AAE5D,OAAO,EAAiB,SAAS,EAAE,aAAa,EAAC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
|
package/dist/dynamodb/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export { type AttributeValue, type Item, DEFAULT_VIEW_SORT_KEY, HEAD_SORT_KEY, S
|
|
|
2
2
|
export { type ConditionCheckAction, type DeleteAction, type DynamoClient, type Expressions, type GetItemInput, type Page, type PutAction, type PutItemInput, type QueryInput, type RequestOptions, type ScanInput, type TransactItem, type UpdateAction, } from './client.js';
|
|
3
3
|
export { FEATURES_PK, REBUILD_LOCK_PK, manifestFromItem, markerItem } from './marker.js';
|
|
4
4
|
export { DynamoRepository, type DynamoRepositoryOptions } from './repository.js';
|
|
5
|
+
export { DYNAMODB_BACKEND, transactItemSize, viewProjector } from './views.js';
|
|
5
6
|
export { type CommitTtl, type SnapshotTtl, commitTransaction, snapshotTransaction, } from './requests.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAAE,KAAK,uBAAuB,EAAC,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAAE,KAAK,uBAAuB,EAAC,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA;AAC5E,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAA"}
|
package/dist/dynamodb/index.js
CHANGED
|
@@ -4,5 +4,6 @@ export { DEFAULT_VIEW_SORT_KEY, HEAD_SORT_KEY, SNAPSHOT_SORT_KEY, eventFromItem,
|
|
|
4
4
|
export {} from './client.js';
|
|
5
5
|
export { FEATURES_PK, REBUILD_LOCK_PK, manifestFromItem, markerItem } from './marker.js';
|
|
6
6
|
export { DynamoRepository } from './repository.js';
|
|
7
|
+
export { DYNAMODB_BACKEND, transactItemSize, viewProjector } from './views.js';
|
|
7
8
|
export { commitTransaction, snapshotTransaction, } from './requests.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,+FAA+F;AAE/F,OAAO,EAGL,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAcN,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAA+B,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAGL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,+FAA+F;AAE/F,OAAO,EAGL,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAcN,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACtF,OAAO,EAAC,gBAAgB,EAA+B,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA;AAC5E,OAAO,EAGL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAA;AASpE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,gBAAgB,EAMtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,YAAY,EAAqC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAA;AASpE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,gBAAgB,EAMtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,YAAY,EAAqC,MAAM,aAAa,CAAA;AAsBjF,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1E;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACrB;AAoBD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,UAAU,EAAE,gBAAgB;;IAgBnE,YAAY,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,EAO3F;IAED,+CAA+C;IAC/C,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBxD;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BjE;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAEhF;IAEK,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAmB3F;IAEK,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAI1F;IAEK,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAgEvF;IAEK,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C5F;CAukBF"}
|
|
@@ -14,7 +14,8 @@ import { int64Argument } from '../fields.js';
|
|
|
14
14
|
import { checkBudget, checkNotReserved, commitSizes, isReserved, validateCommit, } from '../repository.js';
|
|
15
15
|
import { HEAD_SORT_KEY, eventFromItem, expiry, headFromItem, snapshotFromItem, sortKey, ttlFromItem, } from './item.js';
|
|
16
16
|
import { FEATURES_PK, manifestFromItem, markerItem } from './marker.js';
|
|
17
|
-
import {
|
|
17
|
+
import { DYNAMODB_BACKEND, transactItemSize } from './views.js';
|
|
18
|
+
import { commitTransaction, controlKey, headKey, projectorItems, snapshotTransaction, } from './requests.js';
|
|
18
19
|
// A declaration is a read-modify-write; racing declarations retry this many times.
|
|
19
20
|
const MAX_DECLARE_ATTEMPTS = 8;
|
|
20
21
|
// Each page of a scan that only has to find one item.
|
|
@@ -101,7 +102,12 @@ export class DynamoRepository {
|
|
|
101
102
|
const entityType = commit.events[0].entityType;
|
|
102
103
|
const ttl = this.#ttlFor(entityType);
|
|
103
104
|
// Every backend budgets a commit the same way, so an oversized one fails before any request.
|
|
104
|
-
|
|
105
|
+
// The projector operations are sized from the actions this repository sends, which refuses a
|
|
106
|
+
// group for another backend here too.
|
|
107
|
+
const sizes = projectorItems(commit).map(transactItemSize);
|
|
108
|
+
const group = { backend: DYNAMODB_BACKEND, operations: sizes, sizes };
|
|
109
|
+
const budgeted = { ...commit, projections: [group] };
|
|
110
|
+
checkBudget(commitSizes(budgeted, (type) => (type === entityType ? ttl : undefined)));
|
|
105
111
|
const request = requestOptions(options);
|
|
106
112
|
const version = await this.#markerVersion(request);
|
|
107
113
|
const items = commitTransaction(this.#table, commit, version, this.#commitTtl(commit, ttl));
|
|
@@ -379,8 +385,10 @@ export class DynamoRepository {
|
|
|
379
385
|
if (codes[1] === CONDITION_FAILED) {
|
|
380
386
|
return new RebuildInProgressError();
|
|
381
387
|
}
|
|
382
|
-
// The stream's head update,
|
|
383
|
-
|
|
388
|
+
// The projector operations, then the stream's head update, its event puts and its snapshot
|
|
389
|
+
// put.
|
|
390
|
+
const projected = projectorItems(commit).length;
|
|
391
|
+
const head = 2 + projected;
|
|
384
392
|
const eventsEnd = head + 1 + commit.events.length;
|
|
385
393
|
const eventFailed = codes.slice(head + 1, eventsEnd).includes(CONDITION_FAILED);
|
|
386
394
|
const { entityId } = commit;
|
|
@@ -399,11 +407,18 @@ export class DynamoRepository {
|
|
|
399
407
|
// The head update passed and an event put failed: an event sits above the head. With
|
|
400
408
|
// retention, TTL can delete the head before an expired event, so a create passes its head
|
|
401
409
|
// condition and fails on the leftover item: a conflict until TTL deletes the rest.
|
|
410
|
+
// The probe already read the remaining items when it found the head item absent below the
|
|
411
|
+
// head its log derives; read them only if it didn't.
|
|
402
412
|
const verdict = await this.#probe(entityId, retained, request);
|
|
403
|
-
|
|
413
|
+
const expired = retained && (verdict.expired ?? (await this.#remainingItemsExpired(entityId, request)));
|
|
414
|
+
if (!expired) {
|
|
404
415
|
return verdict.drift ?? drift(entityId, verdict.head, verdict.derived);
|
|
405
416
|
}
|
|
406
417
|
}
|
|
418
|
+
// Only a projector operation's condition failed: its own error, as Go reports it.
|
|
419
|
+
if (failed < head && !codes.slice(head).includes(CONDITION_FAILED)) {
|
|
420
|
+
return error;
|
|
421
|
+
}
|
|
407
422
|
return new ConflictError(entityId, 'conditional check failed: the sequence or snapshot changed since it was read');
|
|
408
423
|
}
|
|
409
424
|
// Classifies a stream whose head update failed, as the failure-path probe does: a stored head
|
|
@@ -416,8 +431,10 @@ export class DynamoRepository {
|
|
|
416
431
|
const head = (await this.#readHead(entityId, request))?.head ?? null;
|
|
417
432
|
const stored = head ?? 0n;
|
|
418
433
|
if (stored < derived) {
|
|
419
|
-
if (retained && head === null
|
|
420
|
-
|
|
434
|
+
if (retained && head === null) {
|
|
435
|
+
const expired = await this.#remainingItemsExpired(entityId, request);
|
|
436
|
+
const drifted = expired ? null : drift(entityId, head, derived);
|
|
437
|
+
return { healthy: false, drift: drifted, stored, head, derived, expired };
|
|
421
438
|
}
|
|
422
439
|
return { healthy: false, drift: drift(entityId, head, derived), stored, head, derived };
|
|
423
440
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/dynamodb/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,8 +52,9 @@ export interface SnapshotTtl {
|
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* The actions of a commit with at least one event, in order, by a writer that validated the
|
|
55
|
-
* feature manifest at `markerVersion`. `ttl` is given only for a stream with retention.
|
|
56
|
-
* for
|
|
55
|
+
* feature manifest at `markerVersion`. `ttl` is given only for a stream with retention. A projector
|
|
56
|
+
* group for any backend but DynamoDB is refused. Exported for the compatibility fixtures: its
|
|
57
|
+
* signature changes when commits span streams.
|
|
57
58
|
*/
|
|
58
59
|
export declare function commitTransaction(table: string, commit: Commit, markerVersion: bigint, ttl?: CommitTtl): TransactItem[];
|
|
59
60
|
/**
|
|
@@ -62,4 +63,6 @@ export declare function commitTransaction(table: string, commit: Commit, markerV
|
|
|
62
63
|
* only for a stream with retention. Exported for the compatibility fixtures.
|
|
63
64
|
*/
|
|
64
65
|
export declare function snapshotTransaction(table: string, snapshot: SerializedSnapshot, markerVersion: bigint, ttl?: SnapshotTtl): TransactItem[];
|
|
66
|
+
/** The DynamoDB actions of a commit's projector groups, in order. */
|
|
67
|
+
export declare function projectorItems(commit: Commit): TransactItem[];
|
|
65
68
|
//# sourceMappingURL=requests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/dynamodb/requests.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,kBAAkB,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/dynamodb/requests.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,kBAAkB,EAAC,MAAM,aAAa,CAAA;AAGpE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAgB,KAAK,IAAI,EAA6C,MAAM,WAAW,CAAA;AAI9F,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,6CAA6C,CAAA;AAEhF,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,6BAA6B,CAAA;AAEhE,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,6BAA6B,CAAA;AAE7D,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AAEnE,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,iBAAiB,CAAA;AAEtD,0FAA0F;AAC1F,eAAO,MAAM,8BAA8B,+CAA+C,CAAA;AAE1F,kGAAkG;AAClG,eAAO,MAAM,8BAA8B,kBAAkB,CAAA;AAE7D,kGAAkG;AAClG,eAAO,MAAM,iCAAiC,gEACiB,CAAA;AAE/D,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,uDAAuD,CAAA;AAE5F,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,uCAAuC;AACvC,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CASxE;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAQ5D;AAED,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,SAAS,GACd,YAAY,EAAE,CA4BhB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,WAAW,GAChB,YAAY,EAAE,CAehB;AAuCD,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAa7D"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// The `TransactWriteItems` actions of a commit and of a snapshot write, built from the storage
|
|
2
2
|
// format alone (storage format, "Writes"). Every commit opens with the two control checks, the
|
|
3
|
-
// feature marker's and the rebuild lock's, then writes the stream:
|
|
4
|
-
// puts, and its snapshot put when it has one.
|
|
3
|
+
// feature marker's and the rebuild lock's, then its projector operations, then writes the stream:
|
|
4
|
+
// its head update, its event puts, and its snapshot put when it has one.
|
|
5
5
|
import { int64Argument, safeIntegerArgument } from '../fields.js';
|
|
6
|
+
import { EvtError } from '../errors.js';
|
|
6
7
|
import { headUpdate } from './head.js';
|
|
7
8
|
import { HEAD_SORT_KEY, SNAPSHOT_SORT_KEY, eventItem, snapshotItem } from './item.js';
|
|
8
9
|
import { FEATURES_PK, REBUILD_LOCK_PK } from './marker.js';
|
|
10
|
+
import { DYNAMODB_BACKEND } from './views.js';
|
|
9
11
|
/** The marker check of a writer that validated the manifest at version `:v`. */
|
|
10
12
|
export const MARKER_CHECK_CONDITION = 'attribute_not_exists(pk) OR version = :v';
|
|
11
13
|
/** The rebuild-lock check: no lock row, so the rebuild generation is settled. */
|
|
@@ -57,8 +59,9 @@ export function rebuildLockCheck(table) {
|
|
|
57
59
|
}
|
|
58
60
|
/**
|
|
59
61
|
* The actions of a commit with at least one event, in order, by a writer that validated the
|
|
60
|
-
* feature manifest at `markerVersion`. `ttl` is given only for a stream with retention.
|
|
61
|
-
* for
|
|
62
|
+
* feature manifest at `markerVersion`. `ttl` is given only for a stream with retention. A projector
|
|
63
|
+
* group for any backend but DynamoDB is refused. Exported for the compatibility fixtures: its
|
|
64
|
+
* signature changes when commits span streams.
|
|
62
65
|
*/
|
|
63
66
|
export function commitTransaction(table, commit, markerVersion, ttl) {
|
|
64
67
|
const first = commit.events[0];
|
|
@@ -67,6 +70,7 @@ export function commitTransaction(table, commit, markerVersion, ttl) {
|
|
|
67
70
|
throw new RangeError('a commit transaction needs at least one event');
|
|
68
71
|
}
|
|
69
72
|
const items = [markerCheck(table, markerVersion), rebuildLockCheck(table)];
|
|
73
|
+
items.push(...projectorItems(commit));
|
|
70
74
|
const head = headUpdate(commit.entityId, first.sequence, last.sequence, ttl?.head);
|
|
71
75
|
items.push(headUpdateItem(table, head));
|
|
72
76
|
for (const event of commit.events) {
|
|
@@ -133,6 +137,17 @@ function snapshotGuard(table, entityId, eventSequence, ttl) {
|
|
|
133
137
|
},
|
|
134
138
|
};
|
|
135
139
|
}
|
|
140
|
+
/** The DynamoDB actions of a commit's projector groups, in order. */
|
|
141
|
+
export function projectorItems(commit) {
|
|
142
|
+
const items = [];
|
|
143
|
+
for (const group of commit.projections ?? []) {
|
|
144
|
+
if (group.backend !== DYNAMODB_BACKEND) {
|
|
145
|
+
throw new EvtError('invalidCommit', `invalid commit: a DynamoDB repository can't write a ${group.backend} projector group`);
|
|
146
|
+
}
|
|
147
|
+
items.push(...group.operations);
|
|
148
|
+
}
|
|
149
|
+
return items;
|
|
150
|
+
}
|
|
136
151
|
function headUpdateItem(table, action) {
|
|
137
152
|
const update = {
|
|
138
153
|
TableName: table,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/dynamodb/requests.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,+FAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/dynamodb/requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Projector } from '../aggregate.js';
|
|
2
|
+
import type { TransactItem } from './client.js';
|
|
3
|
+
/** The backend name of the projector groups the DynamoDB repository writes. */
|
|
4
|
+
export declare const DYNAMODB_BACKEND = "dynamodb";
|
|
5
|
+
/**
|
|
6
|
+
* A projector that puts the entity's view row in `viewsTable` with every commit:
|
|
7
|
+
* `pk = {entityType}#{entityId}`, `sk = "VIEW"`, and the encoded state as its payload, as Go's
|
|
8
|
+
* `dynamo.NewViewProjector` writes it. The put is unconditional, so the row is the state after the
|
|
9
|
+
* entity's latest commit.
|
|
10
|
+
*/
|
|
11
|
+
export declare function viewProjector<S>(viewsTable: string): Projector<S>;
|
|
12
|
+
/**
|
|
13
|
+
* An action's size in the commit budget: a put counts its item, and an update, delete or condition
|
|
14
|
+
* check counts its key plus its expression strings, name placeholders (the placeholder and the
|
|
15
|
+
* name) and attribute values.
|
|
16
|
+
*/
|
|
17
|
+
export declare function transactItemSize(action: TransactItem): number;
|
|
18
|
+
//# sourceMappingURL=views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/dynamodb/views.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAE1D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AAG7C,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAE1C;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAkBjE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAsB7D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// The per-entity view projector: one row per entity in a views table, its state as the aggregate's
|
|
2
|
+
// codec encodes it, put in the same transaction as the commit's events (storage format, "Views").
|
|
3
|
+
// Commit-wide projectors, which own their keys, supersede it in Go and Rust, but a TypeScript
|
|
4
|
+
// writer of an entity type that a Go service projects this way must write the row too.
|
|
5
|
+
import { utf8Length } from '../utf8.js';
|
|
6
|
+
import { itemSize, viewItem } from './item.js';
|
|
7
|
+
/** The backend name of the projector groups the DynamoDB repository writes. */
|
|
8
|
+
export const DYNAMODB_BACKEND = 'dynamodb';
|
|
9
|
+
/**
|
|
10
|
+
* A projector that puts the entity's view row in `viewsTable` with every commit:
|
|
11
|
+
* `pk = {entityType}#{entityId}`, `sk = "VIEW"`, and the encoded state as its payload, as Go's
|
|
12
|
+
* `dynamo.NewViewProjector` writes it. The put is unconditional, so the row is the state after the
|
|
13
|
+
* entity's latest commit.
|
|
14
|
+
*/
|
|
15
|
+
export function viewProjector(viewsTable) {
|
|
16
|
+
if (viewsTable === '') {
|
|
17
|
+
throw new RangeError('a view projector needs a views table');
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
project({ entityType, entityId, encodedState }) {
|
|
21
|
+
if (entityId === '') {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const put = {
|
|
25
|
+
Put: { TableName: viewsTable, Item: viewItem(entityType, entityId, encodedState) },
|
|
26
|
+
};
|
|
27
|
+
return { backend: DYNAMODB_BACKEND, operations: [put], sizes: [transactItemSize(put)] };
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* An action's size in the commit budget: a put counts its item, and an update, delete or condition
|
|
33
|
+
* check counts its key plus its expression strings, name placeholders (the placeholder and the
|
|
34
|
+
* name) and attribute values.
|
|
35
|
+
*/
|
|
36
|
+
export function transactItemSize(action) {
|
|
37
|
+
if (action.Put) {
|
|
38
|
+
return itemSize(action.Put.Item);
|
|
39
|
+
}
|
|
40
|
+
const body = action.Update ?? action.Delete ?? action.ConditionCheck;
|
|
41
|
+
if (!body) {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
let size = itemSize(body.Key) + utf8Length(body.ConditionExpression ?? '');
|
|
45
|
+
if (action.Update) {
|
|
46
|
+
size += utf8Length(action.Update.UpdateExpression);
|
|
47
|
+
}
|
|
48
|
+
for (const [placeholder, name] of Object.entries(body.ExpressionAttributeNames ?? {})) {
|
|
49
|
+
size += utf8Length(placeholder) + utf8Length(name);
|
|
50
|
+
}
|
|
51
|
+
for (const [placeholder, value] of Object.entries(body.ExpressionAttributeValues ?? {})) {
|
|
52
|
+
size += utf8Length(placeholder) + itemSize({ '': value });
|
|
53
|
+
}
|
|
54
|
+
return size;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/dynamodb/views.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,kGAAkG;AAClG,8FAA8F;AAC9F,uFAAuF;AAGvF,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAErC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAA;AAE5C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAI,UAAkB;IACjD,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACL,OAAO,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAgB;YACzD,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,GAAG,GAAiB;gBACxB,GAAG,EAAE,EAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAC;aACjF,CAAA;YAED,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAC,CAAA;QACvF,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc,CAAA;IACpE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;IAC1E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACpD,CAAC;IACD,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC,EAAE,CAAC;QACtF,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IACD,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,IAAI,EAAE,CAAC,EAAE,CAAC;QACxF,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|