graphddb 0.5.0 → 0.5.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 +9 -0
- package/dist/{chunk-J5A665UW.js → chunk-H5TUW2WR.js} +69 -153
- package/dist/chunk-MCKGQKYU.js +15 -0
- package/dist/{chunk-7NPG5R7O.js → chunk-QBXLQNXY.js} +1 -1
- package/dist/{chunk-FMJIWFIS.js → chunk-W3GEJPPV.js} +258 -3
- package/dist/cli.js +314 -12
- package/dist/index.d.ts +99 -4
- package/dist/index.js +40 -8
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +3 -2
- package/dist/{types-B-F7jw9f.d.ts → types-m1Ect6hG.d.ts} +306 -114
- package/dist/typescript-ZUQEBJRV.js +210764 -0
- package/docs/cdc-projection.md +167 -0
- package/docs/design-patterns.md +18 -13
- package/docs/spec.md +9 -4
- package/package.json +4 -1
|
@@ -724,11 +724,26 @@ interface GsiDefinitionMarker<T extends Record<string, unknown> = Record<string,
|
|
|
724
724
|
readonly segmented: SegmentedKey;
|
|
725
725
|
readonly inputFieldNames: string[];
|
|
726
726
|
readonly unique: U;
|
|
727
|
+
/**
|
|
728
|
+
* Optional human-readable description of the GSI (issue #166, follow-up of #154),
|
|
729
|
+
* from `gsi(name, key, { description })`. Pure documentation — the registry copies
|
|
730
|
+
* it onto {@link GsiDefinition} (→ `manifest.json` + generated Python). Absent
|
|
731
|
+
* unless declared.
|
|
732
|
+
*/
|
|
733
|
+
readonly description?: string;
|
|
727
734
|
/** @internal Phantom field for type-level input type extraction. */
|
|
728
735
|
readonly _phantom?: T;
|
|
729
736
|
}
|
|
730
737
|
interface GsiOptions {
|
|
731
738
|
unique?: boolean;
|
|
739
|
+
/**
|
|
740
|
+
* Optional human-readable description of the index (issue #166, follow-up of #154).
|
|
741
|
+
* Pure documentation metadata — it does NOT affect the index key, projection, or any
|
|
742
|
+
* runtime behaviour. Propagated to `manifest.json` ({@link ManifestGsi.description})
|
|
743
|
+
* and surfaces as the docstring of a generated Python query method that reads through
|
|
744
|
+
* this index. Omit for byte-identical output.
|
|
745
|
+
*/
|
|
746
|
+
description?: string;
|
|
732
747
|
}
|
|
733
748
|
type GsiBuilder<T extends Record<string, unknown>> = (c: {
|
|
734
749
|
readonly [K in keyof T]-?: Column<T[K], T>;
|
|
@@ -3099,6 +3114,14 @@ interface ManifestKey {
|
|
|
3099
3114
|
interface ManifestGsi extends ManifestKey {
|
|
3100
3115
|
readonly indexName: string;
|
|
3101
3116
|
readonly unique: boolean;
|
|
3117
|
+
/**
|
|
3118
|
+
* Optional human-readable description of the index (issue #166, follow-up of #154),
|
|
3119
|
+
* from `gsi(name, key, { description })`. Pure documentation — absent unless declared,
|
|
3120
|
+
* so a GSI with no description serializes byte-identically to the pre-#166 manifest.
|
|
3121
|
+
* The Python codegen surfaces it as the docstring of a generated query method that
|
|
3122
|
+
* reads through this index.
|
|
3123
|
+
*/
|
|
3124
|
+
readonly description?: string;
|
|
3102
3125
|
}
|
|
3103
3126
|
interface ManifestRelation {
|
|
3104
3127
|
readonly type: 'hasMany' | 'hasOne' | 'belongsTo';
|
|
@@ -3106,6 +3129,14 @@ interface ManifestRelation {
|
|
|
3106
3129
|
readonly target: string;
|
|
3107
3130
|
/** target field → source field (on this entity). */
|
|
3108
3131
|
readonly keyBinding: Readonly<Record<string, string>>;
|
|
3132
|
+
/**
|
|
3133
|
+
* Optional human-readable description of the relation (issue #166, follow-up of
|
|
3134
|
+
* #154), from `@hasMany/@belongsTo/@hasOne(..., { description })`. Pure documentation
|
|
3135
|
+
* — absent unless declared, so a relation with no description serializes
|
|
3136
|
+
* byte-identically to the pre-#166 manifest. The Python codegen surfaces it as a
|
|
3137
|
+
* trailing `# …` comment on the relation's field in the generated result type.
|
|
3138
|
+
*/
|
|
3139
|
+
readonly description?: string;
|
|
3109
3140
|
}
|
|
3110
3141
|
interface ManifestEntity {
|
|
3111
3142
|
/** Declared (logical) table name. */
|
|
@@ -5992,6 +6023,189 @@ type MutateParallelResult<E extends WriteEnvelope> = {
|
|
|
5992
6023
|
readonly [K in keyof E]: BulkWrap<E[K], ParallelResultOf<E[K]>>;
|
|
5993
6024
|
};
|
|
5994
6025
|
|
|
6026
|
+
/**
|
|
6027
|
+
* CDC emulator types (issue #72). These types are **cdc-module-owned**; core
|
|
6028
|
+
* never references them. The {@link ChangeEvent} shape mirrors DynamoDB Streams
|
|
6029
|
+
* (`NEW_AND_OLD_IMAGES`) so a consumer written against the emulator runs
|
|
6030
|
+
* unchanged against real Streams in production (spec §4).
|
|
6031
|
+
*/
|
|
6032
|
+
/** Stream view type. Fixed to `NEW_AND_OLD_IMAGES` — incremental aggregation
|
|
6033
|
+
* needs both images (spec §4). */
|
|
6034
|
+
type StreamViewType = 'NEW_AND_OLD_IMAGES';
|
|
6035
|
+
/** Stream event kind, matching DynamoDB Streams. */
|
|
6036
|
+
type ChangeEventName = 'INSERT' | 'MODIFY' | 'REMOVE';
|
|
6037
|
+
/**
|
|
6038
|
+
* A single change event. Within one shard, `sequenceNumber` is monotonically
|
|
6039
|
+
* increasing; across shards order is independent (spec §6).
|
|
6040
|
+
*/
|
|
6041
|
+
interface ChangeEvent<T = Record<string, unknown>> {
|
|
6042
|
+
eventName: ChangeEventName;
|
|
6043
|
+
table: string;
|
|
6044
|
+
/** Resolved model name when known. */
|
|
6045
|
+
model?: string;
|
|
6046
|
+
keys: {
|
|
6047
|
+
pk: string;
|
|
6048
|
+
sk: string;
|
|
6049
|
+
};
|
|
6050
|
+
/** Present for MODIFY / REMOVE. */
|
|
6051
|
+
oldImage?: T;
|
|
6052
|
+
/** Present for INSERT / MODIFY. */
|
|
6053
|
+
newImage?: T;
|
|
6054
|
+
/** Deterministic-clock-derived creation time (ISO 8601). */
|
|
6055
|
+
approximateCreationTime: string;
|
|
6056
|
+
/** Monotonic within a shard (zero-padded for lexicographic ordering). */
|
|
6057
|
+
sequenceNumber: string;
|
|
6058
|
+
/** Partition = hash(pk). */
|
|
6059
|
+
shardId: string;
|
|
6060
|
+
}
|
|
6061
|
+
/** A delivered batch. Records of the same shard are in `sequenceNumber` order. */
|
|
6062
|
+
interface ChangeBatch<T = Record<string, unknown>> {
|
|
6063
|
+
records: ChangeEvent<T>[];
|
|
6064
|
+
}
|
|
6065
|
+
/**
|
|
6066
|
+
* The consumer's response to a batch (spec §6, `ReportBatchItemFailures`
|
|
6067
|
+
* equivalent). Returning the `sequenceNumber`s of records that failed lets the
|
|
6068
|
+
* emulator advance the checkpoint past the successful prefix and redeliver only
|
|
6069
|
+
* the failures.
|
|
6070
|
+
*/
|
|
6071
|
+
interface BatchResult {
|
|
6072
|
+
/** `sequenceNumber`s of records the consumer failed to process. */
|
|
6073
|
+
batchItemFailures?: string[];
|
|
6074
|
+
}
|
|
6075
|
+
/** The consumer handler. */
|
|
6076
|
+
type ChangeHandler = (batch: ChangeBatch) => Promise<BatchResult | void>;
|
|
6077
|
+
/** Unsubscribe handle. */
|
|
6078
|
+
type Unsubscribe = () => void;
|
|
6079
|
+
/** Where a fresh subscriber begins reading. */
|
|
6080
|
+
type StartingPosition = 'TRIM_HORIZON' | 'LATEST';
|
|
6081
|
+
/** Clock mode. `virtual` makes time deterministic via `advanceClock`. */
|
|
6082
|
+
type ClockMode = 'real' | 'virtual';
|
|
6083
|
+
/** Delivery mode (spec §7). */
|
|
6084
|
+
type CdcMode = 'inline' | 'queued' | 'record' | 'replay';
|
|
6085
|
+
/** Deterministic fault-injection spec (spec §8). All probabilities are seeded. */
|
|
6086
|
+
interface FaultSpec {
|
|
6087
|
+
/** Probability [0,1] a delivered record is also re-delivered (duplicate). */
|
|
6088
|
+
duplicate?: number;
|
|
6089
|
+
/** Shuffle within-shard order on delivery (invariant-violation testing). */
|
|
6090
|
+
reorder?: boolean;
|
|
6091
|
+
/** Per-record virtual-time delivery delay range (ms). Requires queued mode. */
|
|
6092
|
+
delay?: {
|
|
6093
|
+
min: number;
|
|
6094
|
+
max: number;
|
|
6095
|
+
};
|
|
6096
|
+
/** Probability [0,1] a record is dropped on first delivery then redelivered. */
|
|
6097
|
+
dropThenRedeliver?: number;
|
|
6098
|
+
/** Probability [0,1] a record is reported as a partial-batch failure. */
|
|
6099
|
+
partialBatchFailure?: number;
|
|
6100
|
+
}
|
|
6101
|
+
/** A reference whose recompute should be forced to race a mark (spec §8, §7). */
|
|
6102
|
+
interface ConcurrentRecomputeRef {
|
|
6103
|
+
/** Opaque node ref the harness recomputes concurrently with marking. */
|
|
6104
|
+
ref: string;
|
|
6105
|
+
}
|
|
6106
|
+
/** A persisted event log (spec §10, record/replay). */
|
|
6107
|
+
interface EventLog {
|
|
6108
|
+
seed: number;
|
|
6109
|
+
events: ChangeEvent[];
|
|
6110
|
+
}
|
|
6111
|
+
/** Replay options (spec §10). */
|
|
6112
|
+
interface ReplayOptions {
|
|
6113
|
+
/** Deliver events in a deterministic shuffled order (any-order replay). */
|
|
6114
|
+
shuffle?: boolean;
|
|
6115
|
+
/** Probability [0,1] each event is delivered twice during replay. */
|
|
6116
|
+
duplicate?: number;
|
|
6117
|
+
}
|
|
6118
|
+
/** Constructor options (spec §11). */
|
|
6119
|
+
interface CdcEmulatorOptions {
|
|
6120
|
+
/** Stream-enabled model classes (opt-in; default none). */
|
|
6121
|
+
models?: Function[];
|
|
6122
|
+
/** Delivery mode. Default `inline`. */
|
|
6123
|
+
mode?: CdcMode;
|
|
6124
|
+
/** Clock mode. Default `virtual` for queued, `real` otherwise. */
|
|
6125
|
+
clock?: ClockMode;
|
|
6126
|
+
/** Records per delivered batch. Default 100. */
|
|
6127
|
+
batchSize?: number;
|
|
6128
|
+
/** Max redelivery attempts before a record goes to the DLQ. Default 3. */
|
|
6129
|
+
maxRetries?: number;
|
|
6130
|
+
/** Where a subscriber starts. Default `TRIM_HORIZON`. */
|
|
6131
|
+
startingPosition?: StartingPosition;
|
|
6132
|
+
/** Seed for fault injection / shard assignment determinism. Default 1. */
|
|
6133
|
+
seed?: number;
|
|
6134
|
+
/** Number of shards events are partitioned across. Default 8. */
|
|
6135
|
+
shardCount?: number;
|
|
6136
|
+
}
|
|
6137
|
+
type ShardId = string;
|
|
6138
|
+
|
|
6139
|
+
/**
|
|
6140
|
+
* `subscribe` — the declarative, batch CDC consumer builder (issue #153).
|
|
6141
|
+
*
|
|
6142
|
+
* The third sibling of `query` / `mutate` (GraphQL's query / mutation /
|
|
6143
|
+
* **subscription**). Unlike them, `subscribe` DOES NOT subscribe and does not hit
|
|
6144
|
+
* DynamoDB: it *returns* a {@link ChangeHandler} the consumer mounts on their own
|
|
6145
|
+
* stream source (the CDC emulator locally, DynamoDB Streams → Lambda in
|
|
6146
|
+
* production). Delivery — the actual subscription, the sink write, the dedup /
|
|
6147
|
+
* idempotency store — lives OUTSIDE the boundary, in consumer code (see
|
|
6148
|
+
* `docs/cdc-projection.md`). `DDBModel.subscribe` delegates here.
|
|
6149
|
+
*
|
|
6150
|
+
* The returned handler:
|
|
6151
|
+
*
|
|
6152
|
+
* - loops the batch and routes each event to its owning model by `event.model` /
|
|
6153
|
+
* `keys.pk` (via {@link parseChange});
|
|
6154
|
+
* - typed-parses that event's `oldImage` / `newImage` into `[old, new]` and calls
|
|
6155
|
+
* the matching handler;
|
|
6156
|
+
* - if a handler throws, records the event's `sequenceNumber` into
|
|
6157
|
+
* `batchItemFailures` (the Streams / Lambda `ReportBatchItemFailures` redelivery
|
|
6158
|
+
* protocol) and CONTINUES the batch — a single failing record never aborts the
|
|
6159
|
+
* whole batch. This mirrors how `mutate({ mode: 'parallel' })` aggregates per-op
|
|
6160
|
+
* ok/error; it is the delivery *protocol* shape, not delivery *semantics*, so it
|
|
6161
|
+
* stays inside the boundary;
|
|
6162
|
+
* - NEVER writes a sink and NEVER dedups.
|
|
6163
|
+
*/
|
|
6164
|
+
|
|
6165
|
+
/**
|
|
6166
|
+
* One handler in the {@link SubscribeHandlers} map: given the parsed
|
|
6167
|
+
* `[oldRecord, newRecord]` for an event routed to this model, project it (the body
|
|
6168
|
+
* is CONSUMER code — a sink write, a diff, a log). May be async; a thrown error is
|
|
6169
|
+
* caught by the batch loop and turned into a `batchItemFailures` entry. `old` / `new`
|
|
6170
|
+
* are `T | null` (one side is null per event kind — INSERT / MODIFY / REMOVE).
|
|
6171
|
+
*/
|
|
6172
|
+
type SubscribeHandler<T> = (oldRecord: T | null, newRecord: T | null) => void | Promise<unknown>;
|
|
6173
|
+
/**
|
|
6174
|
+
* The envelope-style handler map `subscribe` accepts, keyed by model name. Typed
|
|
6175
|
+
* against the generated {@link import('../index.js').CdcModelRegistry} at the
|
|
6176
|
+
* `DDBModel.subscribe` surface so keys are constrained to `@cdcProjected` models
|
|
6177
|
+
* and each handler's `old` / `new` is inferred from the key. The runtime here is
|
|
6178
|
+
* name-string driven (the type map is a compile-time-only concern).
|
|
6179
|
+
*/
|
|
6180
|
+
type SubscribeHandlers = Record<string, SubscribeHandler<never>>;
|
|
6181
|
+
/**
|
|
6182
|
+
* Build the batch {@link ChangeHandler} from an envelope-style handler map. The
|
|
6183
|
+
* runtime core behind `DDBModel.subscribe`.
|
|
6184
|
+
*/
|
|
6185
|
+
declare function buildSubscribeHandler(handlers: SubscribeHandlers): ChangeHandler;
|
|
6186
|
+
|
|
6187
|
+
/**
|
|
6188
|
+
* The generated **model name → model type** map (issue #153). graphddb ships it
|
|
6189
|
+
* EMPTY; the codegen (`aaac generate`) emits a `declare module 'graphddb' { interface
|
|
6190
|
+
* CdcModelRegistry { OrderModel: OrderModel; … } }` augmentation listing exactly the
|
|
6191
|
+
* `@cdcProjected` models (see `docs/cdc-projection.md` §4). With the augmentation in
|
|
6192
|
+
* scope, {@link DDBModel.subscribe}'s handler keys are constrained to the registry
|
|
6193
|
+
* (typos / unknown or non-`@cdcProjected` model names are compile errors) and each
|
|
6194
|
+
* handler's `old` / `new` are inferred from the key. Without it (no codegen run), the
|
|
6195
|
+
* registry is empty and `subscribe` falls back to a permissive name→instance map.
|
|
6196
|
+
*/
|
|
6197
|
+
interface CdcModelRegistry {
|
|
6198
|
+
}
|
|
6199
|
+
/**
|
|
6200
|
+
* The handler map `DDBModel.subscribe` accepts (issue #153). When the generated
|
|
6201
|
+
* {@link CdcModelRegistry} is populated, keys are constrained to its model names and
|
|
6202
|
+
* each handler's `(old, new)` is inferred from the mapped instance type. An empty
|
|
6203
|
+
* registry (no codegen run) degrades to a permissive `Record` so authoring is not
|
|
6204
|
+
* blocked before the augmentation is generated.
|
|
6205
|
+
*/
|
|
6206
|
+
type CdcSubscribeHandlers = keyof CdcModelRegistry extends never ? Record<string, SubscribeHandler<object>> : {
|
|
6207
|
+
[K in keyof CdcModelRegistry]?: SubscribeHandler<CdcModelRegistry[K]>;
|
|
6208
|
+
};
|
|
5995
6209
|
declare abstract class DDBModel {
|
|
5996
6210
|
/** @internal Type brand — prevents primitives from structurally matching DDBModel. */
|
|
5997
6211
|
private readonly __brand;
|
|
@@ -6071,6 +6285,45 @@ declare abstract class DDBModel {
|
|
|
6071
6285
|
static mutate<const E extends WriteEnvelope>(envelope: E, options: {
|
|
6072
6286
|
mode: 'parallel';
|
|
6073
6287
|
}): Promise<MutateParallelResult<E>>;
|
|
6288
|
+
/**
|
|
6289
|
+
* Parse a single CDC {@link ChangeEvent} into the `[oldRecord, newRecord]` tuple
|
|
6290
|
+
* for THIS model (issue #153 — the pure `(event) => [old, new]` typed mapper).
|
|
6291
|
+
* It reuses the read path's `hydrate` on `oldImage` / `newImage` (ISO 8601 →
|
|
6292
|
+
* `Date` for `@datetime`, embedded reconstruction) and returns typed instances of
|
|
6293
|
+
* this model — **all fields**, no projection (narrowing does not reduce cost; the
|
|
6294
|
+
* image is already on the stream).
|
|
6295
|
+
*
|
|
6296
|
+
* Routing + parse in one call: an event for a DIFFERENT model returns
|
|
6297
|
+
* `[null, null]` (a valid event for this model always has ≥1 non-null side, so
|
|
6298
|
+
* `[null, null]` is an unambiguous "not for this class" signal — no separate
|
|
6299
|
+
* `owns()` guard). The present side per event kind mirrors DynamoDB Streams:
|
|
6300
|
+
* INSERT → `[null, new]`, MODIFY → `[old, new]`, REMOVE → `[old, null]`.
|
|
6301
|
+
*
|
|
6302
|
+
* Only callable on a `@cdcProjected` model — the generated {@link CdcModelRegistry}
|
|
6303
|
+
* types this at the `subscribe` surface, and at runtime a non-`@cdcProjected` model
|
|
6304
|
+
* throws (loudly, never silently returning `[null, null]`, which would masquerade
|
|
6305
|
+
* as a routing miss). Delivery / sink writes / dedup are the consumer's, outside
|
|
6306
|
+
* this boundary (see `docs/cdc-projection.md`).
|
|
6307
|
+
*/
|
|
6308
|
+
static fromChange<C extends abstract new (...args: never[]) => DDBModel>(this: C, event: ChangeEvent): [InstanceType<C> | null, InstanceType<C> | null];
|
|
6309
|
+
/**
|
|
6310
|
+
* Build a batch CDC {@link ChangeHandler} from an envelope-style handler map keyed
|
|
6311
|
+
* by model name (issue #153 — the GraphQL query/mutation/**subscription** trio's
|
|
6312
|
+
* third sibling). Unlike `query` / `mutate`, `subscribe` DOES NOT subscribe and
|
|
6313
|
+
* does not hit DynamoDB: it *returns* a `(batch) => Promise<BatchResult>` the
|
|
6314
|
+
* consumer mounts on their own stream source (the CDC emulator locally, DynamoDB
|
|
6315
|
+
* Streams → Lambda in production) — delivery lives outside the boundary.
|
|
6316
|
+
*
|
|
6317
|
+
* The returned handler loops the batch, routes each event to its owning model by
|
|
6318
|
+
* `event.model` / `keys.pk`, typed-parses via that model's `fromChange`, calls the
|
|
6319
|
+
* matching handler, and — if a handler throws — records the event's
|
|
6320
|
+
* `sequenceNumber` into `batchItemFailures` (the `ReportBatchItemFailures`
|
|
6321
|
+
* redelivery protocol) and continues. It NEVER writes a sink and NEVER dedups
|
|
6322
|
+
* (both are consumer concerns). Handler keys are constrained to the generated
|
|
6323
|
+
* {@link CdcModelRegistry} (`@cdcProjected` models only); a key that is not a
|
|
6324
|
+
* registered `@cdcProjected` model throws at build time.
|
|
6325
|
+
*/
|
|
6326
|
+
static subscribe(handlers: CdcSubscribeHandlers): ChangeHandler;
|
|
6074
6327
|
/**
|
|
6075
6328
|
* Multi-key, multi-model batch read. Each {@link BatchGetRequest} contributes its
|
|
6076
6329
|
* keys to a chunked `BatchGetItem` per physical table; results are re-grouped by
|
|
@@ -6303,6 +6556,24 @@ interface MaintainedFromMetadata {
|
|
|
6303
6556
|
when?: MembershipPredicate;
|
|
6304
6557
|
consistency?: MaintainConsistency;
|
|
6305
6558
|
updateMode?: MaintainUpdateMode;
|
|
6559
|
+
/**
|
|
6560
|
+
* Optional human-readable description of this maintained-from source slice (issue
|
|
6561
|
+
* #166, follow-up of #154), supplied via
|
|
6562
|
+
* `@maintainedFrom(() => Source, (self, source) => ({ description, ... }))`. Pure
|
|
6563
|
+
* documentation metadata — it does NOT affect the maintenance IR (`keyBind` /
|
|
6564
|
+
* `project` / `on` / `collection` / `when`) or any runtime behaviour.
|
|
6565
|
+
*
|
|
6566
|
+
* NOTE (representation): the maintenance IR is deliberately kept OFF the
|
|
6567
|
+
* serializable `manifest.json` / `operations.json` — the {@link Manifest} carries
|
|
6568
|
+
* only the physical shape (table / keys / GSIs / relation navigation), NOT the
|
|
6569
|
+
* maintenance graph (see `detectStreamMaintenance` in `src/codegen/cloudformation.ts`).
|
|
6570
|
+
* There is therefore no manifest / operations / generated-Python site for a
|
|
6571
|
+
* maintained-from source; this description is captured at the metadata layer only
|
|
6572
|
+
* (mirroring where #154 captured its descriptions before propagation), available to
|
|
6573
|
+
* any future consumer that DOES surface `@maintainedFrom` (e.g. the CDC-projection
|
|
6574
|
+
* typed-consumer path, #153). Absent → byte-for-byte unchanged metadata.
|
|
6575
|
+
*/
|
|
6576
|
+
description?: string;
|
|
6306
6577
|
}
|
|
6307
6578
|
interface KeyDefinition {
|
|
6308
6579
|
/** The canonical structured key (PK/SK segment lists). */
|
|
@@ -6315,6 +6586,17 @@ interface GsiDefinition {
|
|
|
6315
6586
|
segmented: SegmentedKey;
|
|
6316
6587
|
inputFieldNames: string[];
|
|
6317
6588
|
unique: boolean;
|
|
6589
|
+
/**
|
|
6590
|
+
* Optional human-readable description of the GSI (issue #166, follow-up of #154),
|
|
6591
|
+
* supplied via `gsi(name, key, { description })`. Pure documentation metadata — it
|
|
6592
|
+
* does NOT affect the index key, projection, or any runtime behaviour. When present
|
|
6593
|
+
* it is propagated to the index entry in `manifest.json`
|
|
6594
|
+
* ({@link ManifestGsi.description}) and surfaces as the docstring of any generated
|
|
6595
|
+
* Python query method that reads through this index (a query carrying the GSI's
|
|
6596
|
+
* `indexName`, when the query itself declares no description). Absent →
|
|
6597
|
+
* byte-for-byte unchanged output (backward compatible).
|
|
6598
|
+
*/
|
|
6599
|
+
description?: string;
|
|
6318
6600
|
}
|
|
6319
6601
|
interface RelationLimitOptions {
|
|
6320
6602
|
default: number;
|
|
@@ -6413,6 +6695,16 @@ type RelationProjection = Readonly<Record<string, ProjectionTransform | string>>
|
|
|
6413
6695
|
interface RelationOptions {
|
|
6414
6696
|
limit?: RelationLimitOptions;
|
|
6415
6697
|
order?: 'ASC' | 'DESC';
|
|
6698
|
+
/**
|
|
6699
|
+
* Optional human-readable description of the relation (issue #166, follow-up of
|
|
6700
|
+
* #154), supplied via `@hasMany/@belongsTo/@hasOne(() => T, keyBind, { description })`.
|
|
6701
|
+
* Pure documentation metadata — it does NOT affect navigation, key binding, or any
|
|
6702
|
+
* runtime behaviour. When present it is propagated to the relation entry in
|
|
6703
|
+
* `manifest.json` ({@link ManifestRelation.description}) and surfaces as a trailing
|
|
6704
|
+
* `# …` comment on the relation's field in the generated Python result TypedDict /
|
|
6705
|
+
* dataclass. Absent → byte-for-byte unchanged output (backward compatible).
|
|
6706
|
+
*/
|
|
6707
|
+
description?: string;
|
|
6416
6708
|
/**
|
|
6417
6709
|
* Named maintenance preset (Epic #118). Omitted = plain read-only navigation,
|
|
6418
6710
|
* fully backward compatible with the historical relation decorators.
|
|
@@ -6559,6 +6851,19 @@ interface EntityMetadata {
|
|
|
6559
6851
|
* Absent / empty for a plain entity.
|
|
6560
6852
|
*/
|
|
6561
6853
|
maintainedFrom?: MaintainedFromMetadata[];
|
|
6854
|
+
/**
|
|
6855
|
+
* Whether the model is flagged **CDC-parseable** by `@cdcProjected()` (issue
|
|
6856
|
+
* #153). It carries NO runtime side effect — it is purely a compile-/registration-
|
|
6857
|
+
* time capability marker: `Model.fromChange(event)` (and, transitively,
|
|
6858
|
+
* `DDBModel.subscribe` routing to this model) is gated on it, and it is the SSoT
|
|
6859
|
+
* the codegen reads to emit the `CdcModelRegistry` module augmentation that types
|
|
6860
|
+
* `subscribe`'s handlers by model name. `true` only on a model carrying the
|
|
6861
|
+
* decorator; absent (⇒ falsy) for every plain entity, so a non-`@cdcProjected`
|
|
6862
|
+
* model is byte-for-byte unchanged (backward compatible). Deliberately kept OFF
|
|
6863
|
+
* the manifest / bridge (it is a host-runtime + TS-typing concern, like the
|
|
6864
|
+
* maintenance signals — not a physical-schema fact like {@link ttlAttribute}).
|
|
6865
|
+
*/
|
|
6866
|
+
cdcProjected?: boolean;
|
|
6562
6867
|
/**
|
|
6563
6868
|
* The physical attribute name of the model's `@ttl` field, when one is declared
|
|
6564
6869
|
* (issue #172, Epic #167 — CFn generator C4). DynamoDB TTL requires a single
|
|
@@ -6574,117 +6879,4 @@ interface EntityMetadata {
|
|
|
6574
6879
|
ttlAttribute?: string;
|
|
6575
6880
|
}
|
|
6576
6881
|
|
|
6577
|
-
|
|
6578
|
-
* CDC emulator types (issue #72). These types are **cdc-module-owned**; core
|
|
6579
|
-
* never references them. The {@link ChangeEvent} shape mirrors DynamoDB Streams
|
|
6580
|
-
* (`NEW_AND_OLD_IMAGES`) so a consumer written against the emulator runs
|
|
6581
|
-
* unchanged against real Streams in production (spec §4).
|
|
6582
|
-
*/
|
|
6583
|
-
/** Stream view type. Fixed to `NEW_AND_OLD_IMAGES` — incremental aggregation
|
|
6584
|
-
* needs both images (spec §4). */
|
|
6585
|
-
type StreamViewType = 'NEW_AND_OLD_IMAGES';
|
|
6586
|
-
/** Stream event kind, matching DynamoDB Streams. */
|
|
6587
|
-
type ChangeEventName = 'INSERT' | 'MODIFY' | 'REMOVE';
|
|
6588
|
-
/**
|
|
6589
|
-
* A single change event. Within one shard, `sequenceNumber` is monotonically
|
|
6590
|
-
* increasing; across shards order is independent (spec §6).
|
|
6591
|
-
*/
|
|
6592
|
-
interface ChangeEvent<T = Record<string, unknown>> {
|
|
6593
|
-
eventName: ChangeEventName;
|
|
6594
|
-
table: string;
|
|
6595
|
-
/** Resolved model name when known. */
|
|
6596
|
-
model?: string;
|
|
6597
|
-
keys: {
|
|
6598
|
-
pk: string;
|
|
6599
|
-
sk: string;
|
|
6600
|
-
};
|
|
6601
|
-
/** Present for MODIFY / REMOVE. */
|
|
6602
|
-
oldImage?: T;
|
|
6603
|
-
/** Present for INSERT / MODIFY. */
|
|
6604
|
-
newImage?: T;
|
|
6605
|
-
/** Deterministic-clock-derived creation time (ISO 8601). */
|
|
6606
|
-
approximateCreationTime: string;
|
|
6607
|
-
/** Monotonic within a shard (zero-padded for lexicographic ordering). */
|
|
6608
|
-
sequenceNumber: string;
|
|
6609
|
-
/** Partition = hash(pk). */
|
|
6610
|
-
shardId: string;
|
|
6611
|
-
}
|
|
6612
|
-
/** A delivered batch. Records of the same shard are in `sequenceNumber` order. */
|
|
6613
|
-
interface ChangeBatch<T = Record<string, unknown>> {
|
|
6614
|
-
records: ChangeEvent<T>[];
|
|
6615
|
-
}
|
|
6616
|
-
/**
|
|
6617
|
-
* The consumer's response to a batch (spec §6, `ReportBatchItemFailures`
|
|
6618
|
-
* equivalent). Returning the `sequenceNumber`s of records that failed lets the
|
|
6619
|
-
* emulator advance the checkpoint past the successful prefix and redeliver only
|
|
6620
|
-
* the failures.
|
|
6621
|
-
*/
|
|
6622
|
-
interface BatchResult {
|
|
6623
|
-
/** `sequenceNumber`s of records the consumer failed to process. */
|
|
6624
|
-
batchItemFailures?: string[];
|
|
6625
|
-
}
|
|
6626
|
-
/** The consumer handler. */
|
|
6627
|
-
type ChangeHandler = (batch: ChangeBatch) => Promise<BatchResult | void>;
|
|
6628
|
-
/** Unsubscribe handle. */
|
|
6629
|
-
type Unsubscribe = () => void;
|
|
6630
|
-
/** Where a fresh subscriber begins reading. */
|
|
6631
|
-
type StartingPosition = 'TRIM_HORIZON' | 'LATEST';
|
|
6632
|
-
/** Clock mode. `virtual` makes time deterministic via `advanceClock`. */
|
|
6633
|
-
type ClockMode = 'real' | 'virtual';
|
|
6634
|
-
/** Delivery mode (spec §7). */
|
|
6635
|
-
type CdcMode = 'inline' | 'queued' | 'record' | 'replay';
|
|
6636
|
-
/** Deterministic fault-injection spec (spec §8). All probabilities are seeded. */
|
|
6637
|
-
interface FaultSpec {
|
|
6638
|
-
/** Probability [0,1] a delivered record is also re-delivered (duplicate). */
|
|
6639
|
-
duplicate?: number;
|
|
6640
|
-
/** Shuffle within-shard order on delivery (invariant-violation testing). */
|
|
6641
|
-
reorder?: boolean;
|
|
6642
|
-
/** Per-record virtual-time delivery delay range (ms). Requires queued mode. */
|
|
6643
|
-
delay?: {
|
|
6644
|
-
min: number;
|
|
6645
|
-
max: number;
|
|
6646
|
-
};
|
|
6647
|
-
/** Probability [0,1] a record is dropped on first delivery then redelivered. */
|
|
6648
|
-
dropThenRedeliver?: number;
|
|
6649
|
-
/** Probability [0,1] a record is reported as a partial-batch failure. */
|
|
6650
|
-
partialBatchFailure?: number;
|
|
6651
|
-
}
|
|
6652
|
-
/** A reference whose recompute should be forced to race a mark (spec §8, §7). */
|
|
6653
|
-
interface ConcurrentRecomputeRef {
|
|
6654
|
-
/** Opaque node ref the harness recomputes concurrently with marking. */
|
|
6655
|
-
ref: string;
|
|
6656
|
-
}
|
|
6657
|
-
/** A persisted event log (spec §10, record/replay). */
|
|
6658
|
-
interface EventLog {
|
|
6659
|
-
seed: number;
|
|
6660
|
-
events: ChangeEvent[];
|
|
6661
|
-
}
|
|
6662
|
-
/** Replay options (spec §10). */
|
|
6663
|
-
interface ReplayOptions {
|
|
6664
|
-
/** Deliver events in a deterministic shuffled order (any-order replay). */
|
|
6665
|
-
shuffle?: boolean;
|
|
6666
|
-
/** Probability [0,1] each event is delivered twice during replay. */
|
|
6667
|
-
duplicate?: number;
|
|
6668
|
-
}
|
|
6669
|
-
/** Constructor options (spec §11). */
|
|
6670
|
-
interface CdcEmulatorOptions {
|
|
6671
|
-
/** Stream-enabled model classes (opt-in; default none). */
|
|
6672
|
-
models?: Function[];
|
|
6673
|
-
/** Delivery mode. Default `inline`. */
|
|
6674
|
-
mode?: CdcMode;
|
|
6675
|
-
/** Clock mode. Default `virtual` for queued, `real` otherwise. */
|
|
6676
|
-
clock?: ClockMode;
|
|
6677
|
-
/** Records per delivered batch. Default 100. */
|
|
6678
|
-
batchSize?: number;
|
|
6679
|
-
/** Max redelivery attempts before a record goes to the DLQ. Default 3. */
|
|
6680
|
-
maxRetries?: number;
|
|
6681
|
-
/** Where a subscriber starts. Default `TRIM_HORIZON`. */
|
|
6682
|
-
startingPosition?: StartingPosition;
|
|
6683
|
-
/** Seed for fault injection / shard assignment determinism. Default 1. */
|
|
6684
|
-
seed?: number;
|
|
6685
|
-
/** Number of shards events are partitioned across. Default 8. */
|
|
6686
|
-
shardCount?: number;
|
|
6687
|
-
}
|
|
6688
|
-
type ShardId = string;
|
|
6689
|
-
|
|
6690
|
-
export { type FaultSpec as $, type AggregateOptions as A, type BatchGetExecInput as B, type ChangeEvent as C, type DynamoDBOperation as D, type Executor as E, type FieldOptions as F, type GsiDefinition as G, type SelectBuilderSpec as H, type Item as I, type RawCondition as J, type KeyDefinition as K, type TransactionSpec as L, type ModelStatic as M, type Manifest as N, type RetryOverride as O, type PutInput as P, type ExecutionPlan as Q, type ReadExecOptions as R, type SelectableOf as S, type TransactWriteExecItem as T, type UpdateInput as U, type FieldMetadata as V, type WriteExecOptions as W, type ResolvedKey as X, type CdcEmulatorOptions as Y, type ChangeHandler as Z, type Unsubscribe as _, type ExecutorResult as a, type ContractCardinality as a$, type ConcurrentRecomputeRef as a0, type EventLog as a1, type ReplayOptions as a2, type ShardId as a3, type ViewDefinition as a4, type RelationMetadata as a5, type TransactionItemSpec as a6, type MaintainEffect as a7, type Param as a8, type ParamDescriptor as a9, BatchGetResult as aA, type BatchPutRequest as aB, type BatchResult as aC, type BatchWriteRequest as aD, CONTRACT_RANGE_FANOUT_CONCURRENCY as aE, type CdcMode as aF, type Change as aG, type ChangeBatch as aH, type ChangeEventName as aI, type ClockMode as aJ, type CollectionEffect as aK, type CollectionOptions as aL, type Column as aM, type ColumnMap as aN, type CommandContractMethodSpec as aO, type CommandInputShape as aP, type CommandMethod as aQ, type CommandPlan as aR, type CommandResolutionTarget as aS, type CommandResultKind as aT, type CommandSelectShape as aU, type CompiledFragment as aV, type ComposeSpec as aW, type CondSlot as aX, type ConditionCheckInput as aY, type Connection as aZ, type ContractCallSignature as a_, type DefinitionMap as aa, type OperationDefinition as ab, type WriteDefinitionOptions as ac, type PartialQueryKeyOf as ad, type StrictSelectSpec as ae, type ReadDefinitionOptions as af, type EntityInput as ag, type UniqueQueryKeyOf as ah, type EntityRef as ai, type ConditionInput as aj, type QueryModelContract as ak, type QueryMethodSpec as al, type CommandModelContract as am, type CommandMethodSpec as an, type ContractSpec as ao, type QuerySpec as ap, type CommandSpec as aq, type ContextSpec as ar, type OperationsDocument as as, type AnyOperationDefinition as at, type BridgeBundle as au, type ConditionSpec as av, type AggregateMetadata as aw, type BatchDeleteRequest as ax, type BatchGetOptions as ay, type BatchGetRequest as az, type WriteResult as b, type MutateMode as b$, type ContractCommandParams as b0, type ContractCommandResult as b1, type ContractComposeNode as b2, type ContractFromRef as b3, type ContractInputArity as b4, type ContractItem as b5, type ContractKeyFieldRef as b6, type ContractKeyInput as b7, type ContractKeyRef as b8, type ContractKeySpec as b9, type FragmentInput as bA, type GsiDefinitionMarker as bB, type GsiOptions as bC, type IdempotencyEffect as bD, type InProcessWriteDescriptor as bE, type InputArity as bF, type KeyDefinitionMarker as bG, type KeySegment as bH, type KeySlot as bI, type KeyStructure as bJ, type KeyedResult as bK, LIFECYCLE_CONTRACT_MARKER as bL, type LifecycleContract as bM, type LifecycleEffects as bN, type LiteralParam as bO, type MaintainItem as bP, type MaintainTrigger as bQ, type MaintenanceGraph as bR, type ManifestEntity as bS, type ManifestField as bT, type ManifestFieldType as bU, type ManifestGsi as bV, type ManifestKey as bW, type ManifestRelation as bX, type ManifestTable as bY, type MembershipEffect as bZ, type ModelRef as b_, type ContractKind as ba, type ContractMethodOp as bb, type ContractParamRef as bc, type ContractQueryParams as bd, type ContractResolution as be, type CounterAggregate as bf, type CounterEffect as bg, type CtxBase as bh, DEFAULT_MAX_ATTEMPTS as bi, DEFAULT_RETRY_POLICY as bj, type DeleteOptions as bk, type DeriveEffect as bl, type DerivedEdgeWrite as bm, type DerivedUpdate as bn, type DescriptorBinding as bo, ENTITY_WRITES_MARKER as bp, type EdgeEffect as bq, type EffectPath as br, type EmbeddedMetadata as bs, type EmitEffect as bt, type EntityWritesDefinition as bu, type EntityWritesShape as bv, type ExecutableCommandContract as bw, type ExecutableQueryContract as bx, type FilterInput as by, type FilterSpec as bz, type DeleteInput as c, type UpdateOptions as c$, type MutateOptions as c0, type MutateParallelResult as c1, type MutateTransactionResult as c2, type MutationBody as c3, type MutationDescriptorMap as c4, type MutationFragment as c5, type MutationInputProxy as c6, type MutationInputRef as c7, type MutationIntent as c8, type NumberParam as c9, type RelationBuilder as cA, type RelationConsistency as cB, type RelationLimitOptions as cC, type RelationPattern as cD, type RelationProjection as cE, type RelationReadOptions as cF, type RelationSelect as cG, type RelationSpec as cH, type RelationUpdateMode as cI, type RelationWriteOptions as cJ, type RequiresEffect as cK, type Resolution as cL, type RetryInfo as cM, type RetryOperationKind as cN, SPEC_VERSION as cO, type SegmentSpec as cP, type SegmentedKey as cQ, type SelectBuilder as cR, type SelectOf as cS, type SnapshotEffect as cT, type StartingPosition as cU, type StreamViewType as cV, type StringParam as cW, TransactionContext as cX, type TransactionItemType as cY, type UniqueEffect as cZ, type Updatable as c_, type OperationKind as ca, type OperationSpec as cb, type ParallelOpResult as cc, type ParamKind as cd, type ParamSpec as ce, type ParamStructure as cf, type PersistCtx as cg, type PersistOrigin as ch, type PlannedCommandMethod as ci, type ProjectionMap as cj, type ProjectionTransformOp as ck, type PutOptions as cl, type QueryContractMethodSpec as cm, type QueryEnvelopeResult as cn, type QueryKeyOf as co, type QueryMethod as cp, type QueryResult as cq, type RangeConditionSpec as cr, type ReadEnvelope as cs, type ReadOpCtx as ct, type ReadOpKind as cu, type ReadOperationType as cv, type ReadRouteDescriptor as cw, type ReadRouteOptions as cx, type ReadRouteResult as cy, type RecordedCompose as cz, type BatchWriteExecItem as d, mintContractKeyFieldRef as d$, type ViewSourceSlice as d0, type WhenSpec as d1, type WriteCtx as d2, type WriteDescriptor as d3, type WriteEnvelope as d4, type WriteInput as d5, type WriteKind as d6, type WriteLifecyclePhase as d7, type WriteMiddleware as d8, type WriteOperationType as d9, from as dA, getEntityWrites as dB, gsi as dC, identity as dD, isColumn as dE, isCommandModelContract as dF, isCommandPlan as dG, isContractComposeNode as dH, isContractFromRef as dI, isContractKeyFieldRef as dJ, isContractKeyRef as dK, isContractParamRef as dL, isEntityWritesDefinition as dM, isKeySegment as dN, isLifecycleContract as dO, isMaintainTrigger as dP, isMutationFragment as dQ, isMutationInputRef as dR, isParam as dS, isPlannedCommandMethod as dT, isQueryModelContract as dU, isRetryableError as dV, isRetryableTransactionCancellation as dW, k as dX, key as dY, lifecyclePhaseForIntent as dZ, maintainTrigger as d_, type WriteRecorder as da, type WriteResultProjection as db, attachModelClass as dc, buildDeleteInput as dd, buildMaintenanceGraph as de, buildPutInput as df, buildUpdateInput as dg, collectViewDefinitions as dh, compileFragment as di, compileMutationPlan as dj, compileSingleFragmentPlan as dk, cond as dl, contractOfMethodSpec as dm, definePlan as dn, entityWrites as dp, executeBatchGet as dq, executeBatchWrite as dr, executeCommandMethod as ds, executeDelete as dt, executeKeyedBatchGet as du, executePut as dv, executeQueryMethod as dw, executeRangeFanout as dx, executeTransaction as dy, executeUpdate as dz, type BatchExecOptions as e, mintContractParamRef as e0, mutation as e1, param as e2, preview as e3, publicCommandModel as e4, publicQueryModel as e5, query as e6, resolveLifecycle as e7, wholeKeysSentinel as e8, DDBModel as f, type PrimaryKeyOf as g, type RequestContext as h, type Middleware as i, type ReadRequestKind as j, type CtxModel as k, type ReadParams as l, type ReadRequestCtx as m, type RetryPolicy as n, type ExecutionPlanSpec as o, type EntityMetadata as p, type ModelKind as q, type DynamoType as r, type ProjectionTransform as s, type MaintainEvent as t, type MembershipPredicate as u, type MaintainConsistency as v, type MaintainUpdateMode as w, type MembershipPredicateOp as x, type RelationOptions as y, type AggregateValue as z };
|
|
6882
|
+
export { type FaultSpec as $, type AggregateOptions as A, type BatchGetExecInput as B, type ChangeEvent as C, type DynamoDBOperation as D, type Executor as E, type FieldOptions as F, type GsiDefinition as G, type SelectBuilderSpec as H, type Item as I, type RawCondition as J, type KeyDefinition as K, type TransactionSpec as L, type ModelStatic as M, type Manifest as N, type RetryOverride as O, type PutInput as P, type ExecutionPlan as Q, type ReadExecOptions as R, type SelectableOf as S, type TransactWriteExecItem as T, type UpdateInput as U, type FieldMetadata as V, type WriteExecOptions as W, type ResolvedKey as X, type CdcEmulatorOptions as Y, type ChangeHandler as Z, type Unsubscribe as _, type ExecutorResult as a, type Connection as a$, type ConcurrentRecomputeRef as a0, type EventLog as a1, type ReplayOptions as a2, type ShardId as a3, type ViewDefinition as a4, type RelationMetadata as a5, type TransactionItemSpec as a6, type MaintainEffect as a7, type Param as a8, type ParamDescriptor as a9, BatchGetResult as aA, type BatchPutRequest as aB, type BatchResult as aC, type BatchWriteRequest as aD, CONTRACT_RANGE_FANOUT_CONCURRENCY as aE, type CdcMode as aF, type CdcModelRegistry as aG, type CdcSubscribeHandlers as aH, type Change as aI, type ChangeBatch as aJ, type ChangeEventName as aK, type ClockMode as aL, type CollectionEffect as aM, type CollectionOptions as aN, type Column as aO, type ColumnMap as aP, type CommandContractMethodSpec as aQ, type CommandInputShape as aR, type CommandMethod as aS, type CommandPlan as aT, type CommandResolutionTarget as aU, type CommandResultKind as aV, type CommandSelectShape as aW, type CompiledFragment as aX, type ComposeSpec as aY, type CondSlot as aZ, type ConditionCheckInput as a_, type DefinitionMap as aa, type OperationDefinition as ab, type WriteDefinitionOptions as ac, type PartialQueryKeyOf as ad, type StrictSelectSpec as ae, type ReadDefinitionOptions as af, type EntityInput as ag, type UniqueQueryKeyOf as ah, type EntityRef as ai, type ConditionInput as aj, type QueryModelContract as ak, type QueryMethodSpec as al, type CommandModelContract as am, type CommandMethodSpec as an, type ContractSpec as ao, type QuerySpec as ap, type CommandSpec as aq, type ContextSpec as ar, type OperationsDocument as as, type AnyOperationDefinition as at, type BridgeBundle as au, type ConditionSpec as av, type AggregateMetadata as aw, type BatchDeleteRequest as ax, type BatchGetOptions as ay, type BatchGetRequest as az, type WriteResult as b, type MembershipEffect as b$, type ContractCallSignature as b0, type ContractCardinality as b1, type ContractCommandParams as b2, type ContractCommandResult as b3, type ContractComposeNode as b4, type ContractFromRef as b5, type ContractInputArity as b6, type ContractItem as b7, type ContractKeyFieldRef as b8, type ContractKeyInput as b9, type FilterInput as bA, type FilterSpec as bB, type FragmentInput as bC, type GsiDefinitionMarker as bD, type GsiOptions as bE, type IdempotencyEffect as bF, type InProcessWriteDescriptor as bG, type InputArity as bH, type KeyDefinitionMarker as bI, type KeySegment as bJ, type KeySlot as bK, type KeyStructure as bL, type KeyedResult as bM, LIFECYCLE_CONTRACT_MARKER as bN, type LifecycleContract as bO, type LifecycleEffects as bP, type LiteralParam as bQ, type MaintainItem as bR, type MaintainTrigger as bS, type MaintenanceGraph as bT, type ManifestEntity as bU, type ManifestField as bV, type ManifestFieldType as bW, type ManifestGsi as bX, type ManifestKey as bY, type ManifestRelation as bZ, type ManifestTable as b_, type ContractKeyRef as ba, type ContractKeySpec as bb, type ContractKind as bc, type ContractMethodOp as bd, type ContractParamRef as be, type ContractQueryParams as bf, type ContractResolution as bg, type CounterAggregate as bh, type CounterEffect as bi, type CtxBase as bj, DEFAULT_MAX_ATTEMPTS as bk, DEFAULT_RETRY_POLICY as bl, type DeleteOptions as bm, type DeriveEffect as bn, type DerivedEdgeWrite as bo, type DerivedUpdate as bp, type DescriptorBinding as bq, ENTITY_WRITES_MARKER as br, type EdgeEffect as bs, type EffectPath as bt, type EmbeddedMetadata as bu, type EmitEffect as bv, type EntityWritesDefinition as bw, type EntityWritesShape as bx, type ExecutableCommandContract as by, type ExecutableQueryContract as bz, type DeleteInput as c, TransactionContext as c$, type ModelRef as c0, type MutateMode as c1, type MutateOptions as c2, type MutateParallelResult as c3, type MutateTransactionResult as c4, type MutationBody as c5, type MutationDescriptorMap as c6, type MutationFragment as c7, type MutationInputProxy as c8, type MutationInputRef as c9, type ReadRouteResult as cA, type RecordedCompose as cB, type RelationBuilder as cC, type RelationConsistency as cD, type RelationLimitOptions as cE, type RelationPattern as cF, type RelationProjection as cG, type RelationReadOptions as cH, type RelationSelect as cI, type RelationSpec as cJ, type RelationUpdateMode as cK, type RelationWriteOptions as cL, type RequiresEffect as cM, type Resolution as cN, type RetryInfo as cO, type RetryOperationKind as cP, SPEC_VERSION as cQ, type SegmentSpec as cR, type SegmentedKey as cS, type SelectBuilder as cT, type SelectOf as cU, type SnapshotEffect as cV, type StartingPosition as cW, type StreamViewType as cX, type StringParam as cY, type SubscribeHandler as cZ, type SubscribeHandlers as c_, type MutationIntent as ca, type NumberParam as cb, type OperationKind as cc, type OperationSpec as cd, type ParallelOpResult as ce, type ParamKind as cf, type ParamSpec as cg, type ParamStructure as ch, type PersistCtx as ci, type PersistOrigin as cj, type PlannedCommandMethod as ck, type ProjectionMap as cl, type ProjectionTransformOp as cm, type PutOptions as cn, type QueryContractMethodSpec as co, type QueryEnvelopeResult as cp, type QueryKeyOf as cq, type QueryMethod as cr, type QueryResult as cs, type RangeConditionSpec as ct, type ReadEnvelope as cu, type ReadOpCtx as cv, type ReadOpKind as cw, type ReadOperationType as cx, type ReadRouteDescriptor as cy, type ReadRouteOptions as cz, type BatchWriteExecItem as d, isRetryableTransactionCancellation as d$, type TransactionItemType as d0, type UniqueEffect as d1, type Updatable as d2, type UpdateOptions as d3, type ViewSourceSlice as d4, type WhenSpec as d5, type WriteCtx as d6, type WriteDescriptor as d7, type WriteEnvelope as d8, type WriteInput as d9, executePut as dA, executeQueryMethod as dB, executeRangeFanout as dC, executeTransaction as dD, executeUpdate as dE, from as dF, getEntityWrites as dG, gsi as dH, identity as dI, isColumn as dJ, isCommandModelContract as dK, isCommandPlan as dL, isContractComposeNode as dM, isContractFromRef as dN, isContractKeyFieldRef as dO, isContractKeyRef as dP, isContractParamRef as dQ, isEntityWritesDefinition as dR, isKeySegment as dS, isLifecycleContract as dT, isMaintainTrigger as dU, isMutationFragment as dV, isMutationInputRef as dW, isParam as dX, isPlannedCommandMethod as dY, isQueryModelContract as dZ, isRetryableError as d_, type WriteKind as da, type WriteLifecyclePhase as db, type WriteMiddleware as dc, type WriteOperationType as dd, type WriteRecorder as de, type WriteResultProjection as df, attachModelClass as dg, buildDeleteInput as dh, buildMaintenanceGraph as di, buildPutInput as dj, buildSubscribeHandler as dk, buildUpdateInput as dl, collectViewDefinitions as dm, compileFragment as dn, compileMutationPlan as dp, compileSingleFragmentPlan as dq, cond as dr, contractOfMethodSpec as ds, definePlan as dt, entityWrites as du, executeBatchGet as dv, executeBatchWrite as dw, executeCommandMethod as dx, executeDelete as dy, executeKeyedBatchGet as dz, type BatchExecOptions as e, k as e0, key as e1, lifecyclePhaseForIntent as e2, maintainTrigger as e3, mintContractKeyFieldRef as e4, mintContractParamRef as e5, mutation as e6, param as e7, preview as e8, publicCommandModel as e9, publicQueryModel as ea, query as eb, resolveLifecycle as ec, wholeKeysSentinel as ed, DDBModel as f, type PrimaryKeyOf as g, type RequestContext as h, type Middleware as i, type ReadRequestKind as j, type CtxModel as k, type ReadParams as l, type ReadRequestCtx as m, type RetryPolicy as n, type ExecutionPlanSpec as o, type EntityMetadata as p, type ModelKind as q, type DynamoType as r, type ProjectionTransform as s, type MaintainEvent as t, type MembershipPredicate as u, type MaintainConsistency as v, type MaintainUpdateMode as w, type MembershipPredicateOp as x, type RelationOptions as y, type AggregateValue as z };
|