graphddb 0.7.8 → 0.7.9

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.
@@ -1385,10 +1385,12 @@ interface CtxBase {
1385
1385
  /**
1386
1386
  * The logical read kinds an {@link ReadRequestCtx} may carry (R1 / R4 / R5).
1387
1387
  *
1388
- * Only the kinds the runtime actually emits are advertised. A `query` route in
1389
- * the read envelope delegates to {@link import('../operations/query.js').executeQuery}
1390
- * (kind `'query'`), a `list` route to {@link import('../operations/list.js').executeList}
1391
- * (kind `'list'`), so there is no distinct `'envelopeRoute'` kind. `batchGet`
1388
+ * Only the kinds the runtime actually emits are advertised. Every read surface
1389
+ * (the ad-hoc `Model.query` / `Model.list`, a read-envelope route, a prepared
1390
+ * read) lowers to the unified internal read plan and executes through
1391
+ * {@link import('../runtime/read-plan.js').executeCompiledReadRoute} (issue
1392
+ * #249), which runs the single-item core (kind `'query'`) or the partition core
1393
+ * (kind `'list'`) — so there is no distinct `'envelopeRoute'` kind. `batchGet`
1392
1394
  * (`DDBModel.batchGet`, the public multi-key read primitive) fires request-level
1393
1395
  * hooks since issue #142 — its R1/R4/R5 carry kind `'batchGet'`; each underlying
1394
1396
  * physical `BatchGetItem` op fires R2/R3/R5 with op kind `'BatchGetItem'`.
@@ -6251,7 +6253,9 @@ declare function executeCommandMethod(contract: ExecutableCommandContract, metho
6251
6253
  *
6252
6254
  * - **READ** — `{ alias: { query | list: Model, key, select, options? } }`. Each
6253
6255
  * route runs **independently and in parallel** (`Promise.all`): a `query` route
6254
- * delegates to {@link executeQuery}, a `list` route to {@link executeList}. The
6256
+ * delegates to {@link executeAdHocQuery}, a `list` route to
6257
+ * {@link executeAdHocList} — the unified read-plan lowering (issue #249), the
6258
+ * same path `Model.query` / `Model.list` and `prepare` execute through. The
6255
6259
  * nested selection / relation resolution / optimisation under a route is the
6256
6260
  * existing read path, reused verbatim. Cross-route consistency is NOT guaranteed
6257
6261
  * (each route is its own read).
@@ -6431,6 +6435,96 @@ type MutateParallelResult<E extends WriteEnvelope> = {
6431
6435
  readonly [K in keyof E]: BulkWrap<E[K], ParallelResultOf<E[K]>>;
6432
6436
  };
6433
6437
 
6438
+ /**
6439
+ * The unified internal READ plan (issue #249) — every read surface lowers to ONE
6440
+ * internal route representation ({@link CompiledReadRoute}) and executes through
6441
+ * ONE executor ({@link executeCompiledReadRoute}).
6442
+ *
6443
+ * Before #249, reads had two paths: the prepared / AOT path lowered a declarative
6444
+ * route to a {@link CompiledReadRoute} (param-slot IR) and executed it, while the
6445
+ * ad-hoc surfaces (`Model.query` / `Model.list` / the `DDBModel.query` envelope)
6446
+ * called `executeQuery` / `executeList` DIRECTLY — the same surface-dependent
6447
+ * divergence that let #242/#243-class silent drops happen on the write side. This
6448
+ * module closes the read side:
6449
+ *
6450
+ * - {@link executeCompiledReadRoute} is the SINGLE funnel from a lowered route to
6451
+ * the physical read cores (`executeQuery` / `executeList`). The prepared
6452
+ * statement ({@link import('./prepared.js').PreparedReadStatement}), the AOT
6453
+ * loader, and the ad-hoc surfaces all execute through it — no read surface
6454
+ * calls the cores directly anymore.
6455
+ * - {@link executeAdHocQuery} / {@link executeAdHocList} lower an ad-hoc call to a
6456
+ * {@link CompiledReadRoute} first (each key FIELD becomes a same-named param
6457
+ * slot; the concrete values bind as params at execution — exactly the prepared
6458
+ * path's shape), then run the shared executor.
6459
+ *
6460
+ * ## Ad-hoc semantics are preserved EXACTLY
6461
+ *
6462
+ * The lowering adds a plan representation, never a behavior change: the caller's
6463
+ * option bag is threaded through verbatim (a shallow copy — including fields the
6464
+ * plan layer does not know about, so read middleware R1 hooks observe the same
6465
+ * bag), the select spec is passed through untouched (the physical cores own
6466
+ * `project(...)`-builder normalization / validation, as before), and per-call
6467
+ * host-side options (`updatable` / `hydrate` / `retry` / `context`) flow through
6468
+ * unchanged. A prepared route's slot-bound options take precedence over the
6469
+ * per-call bag — the prepared surface only ever passes `retry` / `context`
6470
+ * per-call, so both surfaces keep their existing semantics through the one
6471
+ * executor.
6472
+ *
6473
+ * ## Structural memoization (the #206-style hot-path guarantee)
6474
+ *
6475
+ * The ad-hoc lowering is memoized in a bounded LRU keyed by the query's
6476
+ * **structure** — model OBJECT identity (never a class name), route kind, key
6477
+ * field NAMES (values are params, not part of the key), and the select shape
6478
+ * (builder-aware; literal filter/option values inside a select are part of the
6479
+ * shape) — so the plan is compiled once per `(model, shape)`, not per call. A
6480
+ * select shape the serializer cannot prove stable (a function / symbol / class
6481
+ * instance at a leaf) is compiled fresh per call instead of risking a cache
6482
+ * collision — correctness over reuse.
6483
+ */
6484
+
6485
+ /**
6486
+ * A recorded binding: a value is either a param slot (bind from `params[name]`)
6487
+ * or a static literal (used verbatim). Discovered ONCE at lowering, replayed per
6488
+ * execution. Exported (@internal) for the prepared runtime
6489
+ * (`src/runtime/prepared.ts`), the #208 AOT emitter (`src/spec/prepared.ts`) and
6490
+ * loader (`src/runtime/prepared-loader.ts`), which serialize / rebind exactly
6491
+ * this structure.
6492
+ */
6493
+ type Slot = {
6494
+ readonly kind: 'param';
6495
+ readonly name: string;
6496
+ } | {
6497
+ readonly kind: 'literal';
6498
+ readonly value: unknown;
6499
+ };
6500
+ /**
6501
+ * The unified internal read plan — one `query` / `list` route lowered to its
6502
+ * params-independent products (resolved model class, select spec, key param
6503
+ * slots, static / slot-bound options). EVERY read surface produces one of these
6504
+ * before execution: the prepared runtime (`compileReadRoute`), the #208 AOT
6505
+ * loader (which reconstructs routes from the static plan artifact), and — since
6506
+ * #249 — the ad-hoc surfaces (`Model.query` / `Model.list` / the `DDBModel.query`
6507
+ * envelope) via {@link executeAdHocQuery} / {@link executeAdHocList}.
6508
+ * @internal
6509
+ */
6510
+ interface CompiledReadRoute {
6511
+ readonly alias: string;
6512
+ readonly kind: 'query' | 'list';
6513
+ readonly modelClass: Function;
6514
+ /** The static select spec (params-independent; may be a `project(...)` builder
6515
+ * on the ad-hoc surface — the physical cores own its normalization). */
6516
+ readonly select: Record<string, unknown>;
6517
+ readonly keySlots: Readonly<Record<string, Slot>>;
6518
+ /** Static option literals decided at lowering (maxDepth / order / filter). */
6519
+ readonly maxDepth?: number;
6520
+ readonly order?: 'ASC' | 'DESC';
6521
+ readonly filter?: Record<string, unknown>;
6522
+ /** Dynamic option slots (may bind a param or a literal). */
6523
+ readonly consistentReadSlot?: Slot;
6524
+ readonly limitSlot?: Slot;
6525
+ readonly afterSlot?: Slot;
6526
+ }
6527
+
6434
6528
  /**
6435
6529
  * Prepared statements — `DDBModel.prepare($ => ({...}))` → `.execute(params)`
6436
6530
  * (issue #205, design #203). The **runtime, fallback-B** implementation of the
@@ -6457,8 +6551,9 @@ type MutateParallelResult<E extends WriteEnvelope> = {
6457
6551
  * - **read** — the params-independent products (resolved model class, normalized
6458
6552
  * select + static filter, key-field NAMES, validated relation structure) are
6459
6553
  * computed once. `execute` binds the concrete key VALUES + per-call pagination /
6460
- * consistency and calls {@link executeQuery} / {@link executeListInternal} — the
6461
- * identical core `Model.query` / `Model.list` and `publicQueryModel` use. (The
6554
+ * consistency and runs the unified read-plan executor
6555
+ * (`executeCompiledReadRoute`, issue #249) — the identical core `Model.query` /
6556
+ * `Model.list` and `publicQueryModel` use. (The
6462
6557
  * `ExecutionPlan` bakes concrete key values into its `keyCondition`, so a single
6463
6558
  * compiled operation object is NOT reusable across param sets; the precompiled
6464
6559
  * product is the resolved model + normalized projection — exactly what the public
@@ -6568,20 +6663,6 @@ interface PreparedReadExecOptions {
6568
6663
  readonly retry?: RetryOverride;
6569
6664
  readonly context?: RequestContext;
6570
6665
  }
6571
- /**
6572
- * A recorded binding: a value is either a param slot (bind from `params[name]`) or
6573
- * a static literal (used verbatim). Discovered ONCE at prepare from the recording
6574
- * `$` proxy, replayed per `execute`. Exported (@internal) for the #208 AOT
6575
- * emitter (`src/spec/prepared.ts`) and loader (`src/runtime/prepared-loader.ts`),
6576
- * which serialize / rebind exactly this structure.
6577
- */
6578
- type Slot = {
6579
- readonly kind: 'param';
6580
- readonly name: string;
6581
- } | {
6582
- readonly kind: 'literal';
6583
- readonly value: unknown;
6584
- };
6585
6666
  interface CompiledWriteOp {
6586
6667
  readonly alias: string;
6587
6668
  readonly intent: Intent;
@@ -6591,25 +6672,6 @@ interface CompiledWriteOp {
6591
6672
  readonly conditionSlots?: Readonly<Record<string, Slot>>;
6592
6673
  readonly result?: PreparedWriteRoute['result'];
6593
6674
  }
6594
- /** @internal — exported for the #208 AOT loader, which reconstructs these
6595
- * routes from the static plan artifact and executes them through the SAME
6596
- * {@link PreparedReadStatement}. */
6597
- interface CompiledReadRoute {
6598
- readonly alias: string;
6599
- readonly kind: 'query' | 'list';
6600
- readonly modelClass: Function;
6601
- /** The normalized static select spec (params-independent). */
6602
- readonly select: Record<string, unknown>;
6603
- readonly keySlots: Readonly<Record<string, Slot>>;
6604
- /** Static option literals decided at prepare (maxDepth / order / filter). */
6605
- readonly maxDepth?: number;
6606
- readonly order?: 'ASC' | 'DESC';
6607
- readonly filter?: Record<string, unknown>;
6608
- /** Dynamic option slots (may bind a param or a literal). */
6609
- readonly consistentReadSlot?: Slot;
6610
- readonly limitSlot?: Slot;
6611
- readonly afterSlot?: Slot;
6612
- }
6613
6675
  /** A prepared **write** handle. `execute(params)` binds + runs the shared write core. */
6614
6676
  declare class PreparedWriteStatement {
6615
6677
  private readonly ops;
@@ -7535,4 +7597,4 @@ interface ViewDefinition {
7535
7597
  */
7536
7598
  declare function collectViewDefinitions(registry?: ReadonlyMap<Function, EntityMetadata>): ViewDefinition[];
7537
7599
 
7538
- export { type AnyOperationDefinition as $, type ContractSpec as A, type BatchResult as B, type CdcEmulatorOptions as C, type DynamoDBOperation as D, type EventLog as E, type FaultSpec as F, type QuerySpec as G, type CommandSpec as H, type TransactionSpec as I, type ContextSpec as J, SPEC_VERSION as K, type ParamSpec as L, type ModelStatic as M, type ParamDescriptor as N, type EntityRef as O, type PutInput as P, type QueryModelContract as Q, type ReplayOptions as R, type ShardId as S, type TransactWriteExecItem as T, type Unsubscribe as U, type ViewDefinition as V, type WriteExecOptions as W, type ConditionInput as X, type Param as Y, type DefinitionMap as Z, type OperationsDocument as _, type CdcMode as a, type FieldOptions as a$, type Manifest as a0, type BridgeBundle as a1, type ConditionSpec as a2, type PreparedBody as a3, type CommandContractMethodSpec as a4, type CommandResolutionTarget as a5, type CompiledFragment as a6, type CompiledMutationPlan as a7, type ComposeSpec as a8, type CompositionPlanSpec as a9, type QueryContractMethodSpec as aA, type RangeConditionSpec as aB, type ReadOperationType as aC, type TransactionItemSpec as aD, type TransactionItemType as aE, type WhenSpec as aF, type WriteOperationType as aG, assertNoCrossFragmentMaintainCollision as aH, compileFragment as aI, compileMutationPlan as aJ, compileSingleFragmentPlan as aK, resetMaintenanceGraphCache as aL, resolveLifecycle as aM, resolveMaintainers as aN, type SelectableOf as aO, type PrimaryKeyOf as aP, type RequestContext as aQ, type Middleware as aR, type ReadRequestKind as aS, type CtxModel as aT, type ReadParams as aU, type ReadRequestCtx as aV, type Item as aW, type RetryPolicy as aX, type KeyDefinition as aY, type GsiDefinition as aZ, type ModelKind as a_, type ContractCardinality as aa, type ContractCommandResult as ab, type ContractInputArity as ac, type ContractKeySpec as ad, type ContractKind as ae, type ContractResolution as af, type DerivedConditionCheck as ag, type DerivedEdgeWrite as ah, type DerivedIdempotencyGuard as ai, type DerivedMaintainOutbox as aj, type DerivedMaintainWrite as ak, type DerivedOutboxEvent as al, type DerivedUniqueGuard as am, type DerivedUpdate as an, type EntityRefResolver as ao, type ExecutionPlanSpec as ap, type FilterSpec as aq, MAX_TRANSACT_COMPOSE_ITEMS as ar, type ManifestEntity as as, type ManifestField as at, type ManifestFieldType as au, type ManifestGsi as av, type ManifestKey as aw, type ManifestRelation as ax, type ManifestTable as ay, type OperationSpec as az, type ChangeBatch as b, type ContractQueryParams as b$, type DynamoType as b0, type ProjectionTransform as b1, type MaintainEvent as b2, type MembershipPredicate as b3, type MaintainConsistency as b4, type MaintainUpdateMode as b5, type MembershipPredicateOp as b6, type RelationOptions as b7, type AggregateOptions as b8, type AggregateValue as b9, type BatchWriteRequest as bA, CONTRACT_RANGE_FANOUT_CONCURRENCY as bB, type CdcModelRegistry as bC, type CdcSubscribeHandlers as bD, type Change as bE, type CollectionEffect as bF, type CollectionOptions as bG, type Column as bH, type ColumnMap as bI, type CommandInputShape as bJ, type CommandMethod as bK, type CommandPlan as bL, type CommandResultKind as bM, type CommandSelectShape as bN, type CondSlot as bO, type ConditionCheckInput as bP, type Connection as bQ, type ContractCallSignature as bR, type ContractCommandParams as bS, type ContractComposeNode as bT, type ContractFromRef as bU, type ContractItem as bV, type ContractKeyFieldRef as bW, type ContractKeyInput as bX, type ContractKeyRef as bY, type ContractMethodOp as bZ, type ContractParamRef as b_, type SelectBuilderSpec as ba, type RawCondition as bb, type RetryOverride as bc, type ExecutionPlan as bd, type FieldMetadata as be, type ResolvedKey as bf, type Slot as bg, type PreparedWriteExecOptions as bh, type CommandReturn as bi, type ParallelOpResult as bj, type PreparedStatement as bk, type RelationMetadata as bl, type MaintainEffect as bm, type OperationDefinition as bn, type WriteDefinitionOptions as bo, type PartialQueryKeyOf as bp, type StrictSelectSpec as bq, type ReadDefinitionOptions as br, type EntityInput as bs, type UniqueQueryKeyOf as bt, type AggregateMetadata as bu, type BatchDeleteRequest as bv, type BatchGetOptions as bw, type BatchGetRequest as bx, BatchGetResult as by, type BatchPutRequest as bz, type ChangeEvent as c, PreparedReadStatement as c$, type CounterAggregate as c0, type CounterEffect as c1, type CtxBase as c2, DEFAULT_MAX_ATTEMPTS as c3, DEFAULT_RETRY_POLICY as c4, type DeleteOptions as c5, type DeriveEffect as c6, type DescriptorBinding as c7, ENTITY_WRITES_MARKER as c8, type EdgeEffect as c9, type MaintainItem as cA, type MaintainTrigger as cB, type MaintenanceGraph as cC, type MembershipEffect as cD, type ModelRef as cE, type MutateMode as cF, type MutateOptions as cG, type MutateParallelResult as cH, type MutateTransactionResult as cI, type MutationBody as cJ, type MutationDescriptorMap as cK, type MutationFragment as cL, type MutationInputProxy as cM, type MutationInputRef as cN, type MutationIntent as cO, type NumberParam as cP, type OperationKind as cQ, PREPARE_CACHE_MAX as cR, type ParamKind as cS, type ParamStructure as cT, type PersistCtx as cU, type PersistOrigin as cV, type PlannedCommandMethod as cW, type PreparedInputProxy as cX, type PreparedParamRef as cY, type PreparedReadExecOptions as cZ, type PreparedReadRoute as c_, type EffectPath as ca, type EmbeddedMetadata as cb, type EmitEffect as cc, type EntityWritesDefinition as cd, type EntityWritesShape as ce, type ExecutableCommandContract as cf, type ExecutableQueryContract as cg, type FilterInput as ch, type FragmentCondition as ci, type FragmentConditionOperatorObject as cj, type FragmentInput as ck, type GsiDefinitionMarker as cl, type GsiOptions as cm, type IdempotencyEffect as cn, type InProcessWriteDescriptor as co, type InlineSnapshotSpec as cp, type InputArity as cq, type KeyDefinitionMarker as cr, type KeySegment as cs, type KeySlot as ct, type KeyStructure as cu, type KeyedResult as cv, LIFECYCLE_CONTRACT_MARKER as cw, type LifecycleContract as cx, type LifecycleEffects as cy, type LiteralParam as cz, type ChangeEventName as d, executeCommandMethod as d$, type PreparedWriteRoute as d0, PreparedWriteStatement as d1, type ProjectionMap as d2, type ProjectionTransformOp as d3, type PutOptions as d4, type QueryEnvelopeResult as d5, type QueryKeyOf as d6, type QueryMethod as d7, type QueryResult as d8, type ReadEnvelope as d9, type StringParam as dA, TransactionContext as dB, type UniqueEffect as dC, type Updatable as dD, type UpdateOptions as dE, type ViewSourceSlice as dF, type WriteCtx as dG, type WriteDescriptor as dH, type WriteEnvelope as dI, type WriteInput as dJ, type WriteKind as dK, type WriteLifecyclePhase as dL, type WriteMiddleware as dM, type WriteRecorder as dN, type WriteResultProjection as dO, attachModelClass as dP, buildDeleteInput as dQ, buildMaintenanceGraph as dR, buildPutInput as dS, buildUpdateInput as dT, collectViewDefinitions as dU, cond as dV, contractOfMethodSpec as dW, definePlan as dX, entityWrites as dY, executeBatchGet as dZ, executeBatchWrite as d_, type ReadOpCtx as da, type ReadOpKind as db, type ReadRouteDescriptor as dc, type ReadRouteOptions as dd, type ReadRouteResult as de, type RecordedCompose as df, type RelationBuilder as dg, type RelationConsistency as dh, type RelationLimitOptions as di, type RelationPattern as dj, type RelationProjection as dk, type RelationReadOptions as dl, type RelationSelect as dm, type RelationSpec as dn, type RelationUpdateMode as dp, type RelationWriteOptions as dq, type RequiresEffect as dr, type Resolution as ds, type RetryInfo as dt, type RetryOperationKind as du, type SegmentSpec as dv, type SegmentedKey as dw, type SelectBuilder as dx, type SelectOf as dy, type SnapshotEffect as dz, type ChangeHandler as e, executeDelete as e0, executeKeyedBatchGet as e1, executePut as e2, executeQueryMethod as e3, executeRangeFanout as e4, executeTransaction as e5, executeUpdate as e6, from as e7, getEntityWrites as e8, gsi as e9, mintContractParamRef as eA, mutation as eB, param as eC, prepare as eD, preview as eE, publicCommandModel as eF, publicQueryModel as eG, query as eH, wholeKeysSentinel as eI, identity as ea, isColumn as eb, isCommandModelContract as ec, isCommandPlan as ed, isContractComposeNode as ee, isContractFromRef as ef, isContractKeyFieldRef as eg, isContractKeyRef as eh, isContractParamRef as ei, isEntityWritesDefinition as ej, isKeySegment as ek, isLifecycleContract as el, isMaintainTrigger as em, isMutationFragment as en, isMutationInputRef as eo, isParam as ep, isPlannedCommandMethod as eq, isPreparedParamRef as er, isQueryModelContract as es, isRetryableError as et, isRetryableTransactionCancellation as eu, k as ev, key as ew, lifecyclePhaseForIntent as ex, maintainTrigger as ey, mintContractKeyFieldRef as ez, type ClockMode as f, type ConcurrentRecomputeRef as g, type StartingPosition as h, type StreamViewType as i, type SubscribeHandler as j, type SubscribeHandlers as k, buildSubscribeHandler as l, type EntityMetadata as m, type Executor as n, type ReadExecOptions as o, type ExecutorResult as p, type BatchGetExecInput as q, type WriteResult as r, type UpdateInput as s, type DeleteInput as t, type BatchWriteExecItem as u, type BatchExecOptions as v, DDBModel as w, type QueryMethodSpec as x, type CommandModelContract as y, type CommandMethodSpec as z };
7600
+ export { type AnyOperationDefinition as $, type ContractSpec as A, type BatchResult as B, type CdcEmulatorOptions as C, type DynamoDBOperation as D, type EventLog as E, type FaultSpec as F, type QuerySpec as G, type CommandSpec as H, type TransactionSpec as I, type ContextSpec as J, SPEC_VERSION as K, type ParamSpec as L, type ModelStatic as M, type ParamDescriptor as N, type EntityRef as O, type PutInput as P, type QueryModelContract as Q, type ReplayOptions as R, type ShardId as S, type TransactWriteExecItem as T, type Unsubscribe as U, type ViewDefinition as V, type WriteExecOptions as W, type ConditionInput as X, type Param as Y, type DefinitionMap as Z, type OperationsDocument as _, type CdcMode as a, type ModelKind as a$, type Manifest as a0, type BridgeBundle as a1, type ConditionSpec as a2, type PreparedBody as a3, type CommandContractMethodSpec as a4, type CommandResolutionTarget as a5, type CompiledFragment as a6, type CompiledMutationPlan as a7, type ComposeSpec as a8, type CompositionPlanSpec as a9, type QueryContractMethodSpec as aA, type RangeConditionSpec as aB, type ReadOperationType as aC, type TransactionItemSpec as aD, type TransactionItemType as aE, type WhenSpec as aF, type WriteOperationType as aG, assertNoCrossFragmentMaintainCollision as aH, compileFragment as aI, compileMutationPlan as aJ, compileSingleFragmentPlan as aK, resetMaintenanceGraphCache as aL, resolveLifecycle as aM, resolveMaintainers as aN, type SelectableOf as aO, type PrimaryKeyOf as aP, type RequestContext as aQ, type Middleware as aR, type ReadRequestKind as aS, type CtxModel as aT, type ReadParams as aU, type ReadRequestCtx as aV, type Item as aW, type RetryPolicy as aX, type RetryOverride as aY, type KeyDefinition as aZ, type GsiDefinition as a_, type ContractCardinality as aa, type ContractCommandResult as ab, type ContractInputArity as ac, type ContractKeySpec as ad, type ContractKind as ae, type ContractResolution as af, type DerivedConditionCheck as ag, type DerivedEdgeWrite as ah, type DerivedIdempotencyGuard as ai, type DerivedMaintainOutbox as aj, type DerivedMaintainWrite as ak, type DerivedOutboxEvent as al, type DerivedUniqueGuard as am, type DerivedUpdate as an, type EntityRefResolver as ao, type ExecutionPlanSpec as ap, type FilterSpec as aq, MAX_TRANSACT_COMPOSE_ITEMS as ar, type ManifestEntity as as, type ManifestField as at, type ManifestFieldType as au, type ManifestGsi as av, type ManifestKey as aw, type ManifestRelation as ax, type ManifestTable as ay, type OperationSpec as az, type ChangeBatch as b, type ContractQueryParams as b$, type FieldOptions as b0, type DynamoType as b1, type ProjectionTransform as b2, type MaintainEvent as b3, type MembershipPredicate as b4, type MaintainConsistency as b5, type MaintainUpdateMode as b6, type MembershipPredicateOp as b7, type RelationOptions as b8, type AggregateOptions as b9, type BatchWriteRequest as bA, CONTRACT_RANGE_FANOUT_CONCURRENCY as bB, type CdcModelRegistry as bC, type CdcSubscribeHandlers as bD, type Change as bE, type CollectionEffect as bF, type CollectionOptions as bG, type Column as bH, type ColumnMap as bI, type CommandInputShape as bJ, type CommandMethod as bK, type CommandPlan as bL, type CommandResultKind as bM, type CommandSelectShape as bN, type CondSlot as bO, type ConditionCheckInput as bP, type Connection as bQ, type ContractCallSignature as bR, type ContractCommandParams as bS, type ContractComposeNode as bT, type ContractFromRef as bU, type ContractItem as bV, type ContractKeyFieldRef as bW, type ContractKeyInput as bX, type ContractKeyRef as bY, type ContractMethodOp as bZ, type ContractParamRef as b_, type AggregateValue as ba, type SelectBuilderSpec as bb, type RawCondition as bc, type ExecutionPlan as bd, type FieldMetadata as be, type ResolvedKey as bf, type Slot as bg, type PreparedWriteExecOptions as bh, type CommandReturn as bi, type ParallelOpResult as bj, type PreparedStatement as bk, type RelationMetadata as bl, type MaintainEffect as bm, type OperationDefinition as bn, type WriteDefinitionOptions as bo, type PartialQueryKeyOf as bp, type StrictSelectSpec as bq, type ReadDefinitionOptions as br, type EntityInput as bs, type UniqueQueryKeyOf as bt, type AggregateMetadata as bu, type BatchDeleteRequest as bv, type BatchGetOptions as bw, type BatchGetRequest as bx, BatchGetResult as by, type BatchPutRequest as bz, type ChangeEvent as c, PreparedReadStatement as c$, type CounterAggregate as c0, type CounterEffect as c1, type CtxBase as c2, DEFAULT_MAX_ATTEMPTS as c3, DEFAULT_RETRY_POLICY as c4, type DeleteOptions as c5, type DeriveEffect as c6, type DescriptorBinding as c7, ENTITY_WRITES_MARKER as c8, type EdgeEffect as c9, type MaintainItem as cA, type MaintainTrigger as cB, type MaintenanceGraph as cC, type MembershipEffect as cD, type ModelRef as cE, type MutateMode as cF, type MutateOptions as cG, type MutateParallelResult as cH, type MutateTransactionResult as cI, type MutationBody as cJ, type MutationDescriptorMap as cK, type MutationFragment as cL, type MutationInputProxy as cM, type MutationInputRef as cN, type MutationIntent as cO, type NumberParam as cP, type OperationKind as cQ, PREPARE_CACHE_MAX as cR, type ParamKind as cS, type ParamStructure as cT, type PersistCtx as cU, type PersistOrigin as cV, type PlannedCommandMethod as cW, type PreparedInputProxy as cX, type PreparedParamRef as cY, type PreparedReadExecOptions as cZ, type PreparedReadRoute as c_, type EffectPath as ca, type EmbeddedMetadata as cb, type EmitEffect as cc, type EntityWritesDefinition as cd, type EntityWritesShape as ce, type ExecutableCommandContract as cf, type ExecutableQueryContract as cg, type FilterInput as ch, type FragmentCondition as ci, type FragmentConditionOperatorObject as cj, type FragmentInput as ck, type GsiDefinitionMarker as cl, type GsiOptions as cm, type IdempotencyEffect as cn, type InProcessWriteDescriptor as co, type InlineSnapshotSpec as cp, type InputArity as cq, type KeyDefinitionMarker as cr, type KeySegment as cs, type KeySlot as ct, type KeyStructure as cu, type KeyedResult as cv, LIFECYCLE_CONTRACT_MARKER as cw, type LifecycleContract as cx, type LifecycleEffects as cy, type LiteralParam as cz, type ChangeEventName as d, executeCommandMethod as d$, type PreparedWriteRoute as d0, PreparedWriteStatement as d1, type ProjectionMap as d2, type ProjectionTransformOp as d3, type PutOptions as d4, type QueryEnvelopeResult as d5, type QueryKeyOf as d6, type QueryMethod as d7, type QueryResult as d8, type ReadEnvelope as d9, type StringParam as dA, TransactionContext as dB, type UniqueEffect as dC, type Updatable as dD, type UpdateOptions as dE, type ViewSourceSlice as dF, type WriteCtx as dG, type WriteDescriptor as dH, type WriteEnvelope as dI, type WriteInput as dJ, type WriteKind as dK, type WriteLifecyclePhase as dL, type WriteMiddleware as dM, type WriteRecorder as dN, type WriteResultProjection as dO, attachModelClass as dP, buildDeleteInput as dQ, buildMaintenanceGraph as dR, buildPutInput as dS, buildUpdateInput as dT, collectViewDefinitions as dU, cond as dV, contractOfMethodSpec as dW, definePlan as dX, entityWrites as dY, executeBatchGet as dZ, executeBatchWrite as d_, type ReadOpCtx as da, type ReadOpKind as db, type ReadRouteDescriptor as dc, type ReadRouteOptions as dd, type ReadRouteResult as de, type RecordedCompose as df, type RelationBuilder as dg, type RelationConsistency as dh, type RelationLimitOptions as di, type RelationPattern as dj, type RelationProjection as dk, type RelationReadOptions as dl, type RelationSelect as dm, type RelationSpec as dn, type RelationUpdateMode as dp, type RelationWriteOptions as dq, type RequiresEffect as dr, type Resolution as ds, type RetryInfo as dt, type RetryOperationKind as du, type SegmentSpec as dv, type SegmentedKey as dw, type SelectBuilder as dx, type SelectOf as dy, type SnapshotEffect as dz, type ChangeHandler as e, executeDelete as e0, executeKeyedBatchGet as e1, executePut as e2, executeQueryMethod as e3, executeRangeFanout as e4, executeTransaction as e5, executeUpdate as e6, from as e7, getEntityWrites as e8, gsi as e9, mintContractParamRef as eA, mutation as eB, param as eC, prepare as eD, preview as eE, publicCommandModel as eF, publicQueryModel as eG, query as eH, wholeKeysSentinel as eI, identity as ea, isColumn as eb, isCommandModelContract as ec, isCommandPlan as ed, isContractComposeNode as ee, isContractFromRef as ef, isContractKeyFieldRef as eg, isContractKeyRef as eh, isContractParamRef as ei, isEntityWritesDefinition as ej, isKeySegment as ek, isLifecycleContract as el, isMaintainTrigger as em, isMutationFragment as en, isMutationInputRef as eo, isParam as ep, isPlannedCommandMethod as eq, isPreparedParamRef as er, isQueryModelContract as es, isRetryableError as et, isRetryableTransactionCancellation as eu, k as ev, key as ew, lifecyclePhaseForIntent as ex, maintainTrigger as ey, mintContractKeyFieldRef as ez, type ClockMode as f, type ConcurrentRecomputeRef as g, type StartingPosition as h, type StreamViewType as i, type SubscribeHandler as j, type SubscribeHandlers as k, buildSubscribeHandler as l, type EntityMetadata as m, type Executor as n, type ReadExecOptions as o, type ExecutorResult as p, type BatchGetExecInput as q, type WriteResult as r, type UpdateInput as s, type DeleteInput as t, type BatchWriteExecItem as u, type BatchExecOptions as v, DDBModel as w, type QueryMethodSpec as x, type CommandModelContract as y, type CommandMethodSpec as z };
@@ -1,4 +1,4 @@
1
- import { m as EntityMetadata } from './maintenance-view-adapter-BCbgKG5d.js';
1
+ import { m as EntityMetadata } from './maintenance-view-adapter-BATUh_I8.js';
2
2
 
3
3
  interface LintRule {
4
4
  id: string;
@@ -1,4 +1,4 @@
1
- import { b as Linter, L as LintRule } from './registry-pAnFcc62.js';
1
+ import { b as Linter, L as LintRule } from './registry-CXhP4TaE.js';
2
2
 
3
3
  /**
4
4
  * Creates a Linter pre-loaded with rules safe for Entity registration.
@@ -1,4 +1,4 @@
1
- export { a1 as BridgeBundle, a4 as CommandContractMethodSpec, a5 as CommandResolutionTarget, H as CommandSpec, a6 as CompiledFragment, a7 as CompiledMutationPlan, a8 as ComposeSpec, a9 as CompositionPlanSpec, a2 as ConditionSpec, J as ContextSpec, aa as ContractCardinality, ab as ContractCommandResult, ac as ContractInputArity, ad as ContractKeySpec, ae as ContractKind, af as ContractResolution, A as ContractSpec, ag as DerivedConditionCheck, ah as DerivedEdgeWrite, ai as DerivedIdempotencyGuard, aj as DerivedMaintainOutbox, ak as DerivedMaintainWrite, al as DerivedOutboxEvent, am as DerivedUniqueGuard, an as DerivedUpdate, ao as EntityRefResolver, ap as ExecutionPlanSpec, aq as FilterSpec, ar as MAX_TRANSACT_COMPOSE_ITEMS, a0 as Manifest, as as ManifestEntity, at as ManifestField, au as ManifestFieldType, av as ManifestGsi, aw as ManifestKey, ax as ManifestRelation, ay as ManifestTable, az as OperationSpec, _ as OperationsDocument, L as ParamSpec, aA as QueryContractMethodSpec, G as QuerySpec, aB as RangeConditionSpec, aC as ReadOperationType, K as SPEC_VERSION, aD as TransactionItemSpec, aE as TransactionItemType, I as TransactionSpec, aF as WhenSpec, aG as WriteOperationType, aH as assertNoCrossFragmentMaintainCollision, aI as compileFragment, aJ as compileMutationPlan, aK as compileSingleFragmentPlan, aL as resetMaintenanceGraphCache, aM as resolveLifecycle, aN as resolveMaintainers } from '../maintenance-view-adapter-BCbgKG5d.js';
2
- export { A as AnyModelContract, B as BuiltContracts, C as ContextOwnership, b as ContextOwnershipMap, c as ContractBoundaryViolation, d as ContractInputs, e as ContractMap, f as ContractN1Violation, O as PREPARED_FORMAT_VERSION, Q as PreparedBindMap, g as PreparedBindSpec, a as PreparedPlanDocument, h as PreparedPlanSpec, i as PreparedReadRouteSpec, P as PreparedWriteOpSpec, s as assertBundleSerializable, t as assertContractBoundaries, u as assertContractN1Safe, v as assertJsonSerializable, w as assertSupportedCondition, x as buildBridgeBundle, y as buildContexts, z as buildContracts, D as buildManifest, E as buildOperations, R as buildPreparedPlanDocument, F as buildQuerySpec, G as buildTransactionSpec, H as buildTransactions, S as canonicalJson, I as collectContractBoundaryViolations, J as collectContractN1Violations, U as compilePreparedPlan, V as entityFingerprint, X as planFingerprint } from '../index-Deugy2sa.js';
3
- import '../registry-pAnFcc62.js';
1
+ export { a1 as BridgeBundle, a4 as CommandContractMethodSpec, a5 as CommandResolutionTarget, H as CommandSpec, a6 as CompiledFragment, a7 as CompiledMutationPlan, a8 as ComposeSpec, a9 as CompositionPlanSpec, a2 as ConditionSpec, J as ContextSpec, aa as ContractCardinality, ab as ContractCommandResult, ac as ContractInputArity, ad as ContractKeySpec, ae as ContractKind, af as ContractResolution, A as ContractSpec, ag as DerivedConditionCheck, ah as DerivedEdgeWrite, ai as DerivedIdempotencyGuard, aj as DerivedMaintainOutbox, ak as DerivedMaintainWrite, al as DerivedOutboxEvent, am as DerivedUniqueGuard, an as DerivedUpdate, ao as EntityRefResolver, ap as ExecutionPlanSpec, aq as FilterSpec, ar as MAX_TRANSACT_COMPOSE_ITEMS, a0 as Manifest, as as ManifestEntity, at as ManifestField, au as ManifestFieldType, av as ManifestGsi, aw as ManifestKey, ax as ManifestRelation, ay as ManifestTable, az as OperationSpec, _ as OperationsDocument, L as ParamSpec, aA as QueryContractMethodSpec, G as QuerySpec, aB as RangeConditionSpec, aC as ReadOperationType, K as SPEC_VERSION, aD as TransactionItemSpec, aE as TransactionItemType, I as TransactionSpec, aF as WhenSpec, aG as WriteOperationType, aH as assertNoCrossFragmentMaintainCollision, aI as compileFragment, aJ as compileMutationPlan, aK as compileSingleFragmentPlan, aL as resetMaintenanceGraphCache, aM as resolveLifecycle, aN as resolveMaintainers } from '../maintenance-view-adapter-BATUh_I8.js';
2
+ export { A as AnyModelContract, B as BuiltContracts, C as ContextOwnership, b as ContextOwnershipMap, c as ContractBoundaryViolation, d as ContractInputs, e as ContractMap, f as ContractN1Violation, O as PREPARED_FORMAT_VERSION, Q as PreparedBindMap, g as PreparedBindSpec, a as PreparedPlanDocument, h as PreparedPlanSpec, i as PreparedReadRouteSpec, P as PreparedWriteOpSpec, s as assertBundleSerializable, t as assertContractBoundaries, u as assertContractN1Safe, v as assertJsonSerializable, w as assertSupportedCondition, x as buildBridgeBundle, y as buildContexts, z as buildContracts, D as buildManifest, E as buildOperations, R as buildPreparedPlanDocument, F as buildQuerySpec, G as buildTransactionSpec, H as buildTransactions, S as canonicalJson, I as collectContractBoundaryViolations, J as collectContractN1Violations, U as compilePreparedPlan, V as entityFingerprint, X as planFingerprint } from '../index-CtPJSMrc.js';
3
+ import '../registry-CXhP4TaE.js';
4
4
  import '@aws-sdk/client-dynamodb';
@@ -29,8 +29,8 @@ import {
29
29
  resetMaintenanceGraphCache,
30
30
  resolveLifecycle,
31
31
  resolveMaintainers
32
- } from "../chunk-NZRCBEWS.js";
33
- import "../chunk-HFFIB77D.js";
32
+ } from "../chunk-NYM7K2ST.js";
33
+ import "../chunk-PFFPLD4B.js";
34
34
  import "../chunk-PDUVTYC5.js";
35
35
  export {
36
36
  MAX_TRANSACT_COMPOSE_ITEMS,
@@ -1,4 +1,4 @@
1
- import { n as Executor, D as DynamoDBOperation, o as ReadExecOptions, p as ExecutorResult, q as BatchGetExecInput, P as PutInput, W as WriteExecOptions, r as WriteResult, s as UpdateInput, t as DeleteInput, u as BatchWriteExecItem, v as BatchExecOptions, T as TransactWriteExecItem, M as ModelStatic, w as DDBModel, c as ChangeEvent } from '../maintenance-view-adapter-BCbgKG5d.js';
1
+ import { n as Executor, D as DynamoDBOperation, o as ReadExecOptions, p as ExecutorResult, q as BatchGetExecInput, P as PutInput, W as WriteExecOptions, r as WriteResult, s as UpdateInput, t as DeleteInput, u as BatchWriteExecItem, v as BatchExecOptions, T as TransactWriteExecItem, M as ModelStatic, w as DDBModel, c as ChangeEvent } from '../maintenance-view-adapter-BATUh_I8.js';
2
2
  import '@aws-sdk/client-dynamodb';
3
3
 
4
4
  /**
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createCdcEmulator
3
- } from "../chunk-IA6MW2HP.js";
3
+ } from "../chunk-ZPNRLOKA.js";
4
4
  import {
5
5
  ClientManager,
6
6
  MetadataRegistry,
7
7
  resolveModelClass
8
- } from "../chunk-HFFIB77D.js";
8
+ } from "../chunk-PFFPLD4B.js";
9
9
  import {
10
10
  TableMapping
11
11
  } from "../chunk-PDUVTYC5.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphddb",
3
- "version": "0.7.8",
3
+ "version": "0.7.9",
4
4
  "description": "Graph data modeling on DynamoDB with adjacency list pattern",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -135,6 +135,7 @@
135
135
  },
136
136
  "license": "MIT",
137
137
  "dependencies": {
138
+ "behavior-contracts": "0.1.2",
138
139
  "commander": "^15.0.0",
139
140
  "handlebars": "^4.7.9"
140
141
  },