graphddb 0.4.0 → 0.4.1

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.
@@ -7,7 +7,7 @@ import {
7
7
  buildMaintenanceGraph,
8
8
  buildPutInput,
9
9
  resolveModelClass
10
- } from "./chunk-72VZYOSG.js";
10
+ } from "./chunk-CPTV3H2U.js";
11
11
 
12
12
  // src/cdc/prng.ts
13
13
  var SeededRandom = class {
@@ -984,30 +984,46 @@ var TableMapping = class {
984
984
  };
985
985
 
986
986
  // src/define/param.ts
987
- function makeParam(kind, literals) {
988
- return literals === void 0 ? { kind } : { kind, literals };
987
+ function isParamOptions(value) {
988
+ return typeof value === "object" && value !== null;
989
+ }
990
+ function makeParam(kind, literals, description) {
991
+ const param2 = { kind };
992
+ if (literals !== void 0) param2.literals = literals;
993
+ if (description !== void 0) param2.description = description;
994
+ return param2;
989
995
  }
990
996
  var param = {
991
997
  /** A placeholder for a `string` value. */
992
- string() {
993
- return makeParam("string");
998
+ string(options) {
999
+ return makeParam("string", void 0, options?.description);
994
1000
  },
995
1001
  /** A placeholder for a `number` value. */
996
- number() {
997
- return makeParam("number");
1002
+ number(options) {
1003
+ return makeParam("number", void 0, options?.description);
998
1004
  },
999
1005
  /**
1000
1006
  * A placeholder constrained to one of the given literal values. The value
1001
1007
  * type of the resulting {@link Param} is the **union of the literals**, so it
1002
- * is preserved precisely in the IR and the inferred definition types.
1008
+ * is preserved precisely in the IR and the inferred definition types. A final
1009
+ * plain-object argument is read as {@link ParamOptions} (a `description`),
1010
+ * distinguished from the `string` / `number` literal values.
1003
1011
  *
1004
1012
  * @example
1005
1013
  * ```ts
1006
1014
  * param.literal('active', 'disabled'); // Param<'active' | 'disabled'>
1015
+ * param.literal('active', 'disabled', { description: 'Account state.' });
1007
1016
  * ```
1008
1017
  */
1009
- literal(...values) {
1010
- return makeParam("literal", values);
1018
+ literal(...valuesAndOptions) {
1019
+ const args = [...valuesAndOptions];
1020
+ const last = args[args.length - 1];
1021
+ const options = isParamOptions(last) ? args.pop() : void 0;
1022
+ return makeParam(
1023
+ "literal",
1024
+ args,
1025
+ options?.description
1026
+ );
1011
1027
  },
1012
1028
  /**
1013
1029
  * A placeholder for an **array** parameter whose elements have the given field
@@ -1020,8 +1036,10 @@ var param = {
1020
1036
  * // Param<{ userId: string; role: string }[]>
1021
1037
  * ```
1022
1038
  */
1023
- array(element) {
1024
- return { kind: "array", element };
1039
+ array(element, options) {
1040
+ const param2 = { kind: "array", element };
1041
+ if (options?.description !== void 0) param2.description = options.description;
1042
+ return param2;
1025
1043
  }
1026
1044
  };
1027
1045
  function isParam(value) {
@@ -42,7 +42,7 @@ import {
42
42
  serializeFieldValue,
43
43
  serializeRawCondition,
44
44
  skTemplate
45
- } from "./chunk-72VZYOSG.js";
45
+ } from "./chunk-CPTV3H2U.js";
46
46
 
47
47
  // src/spec/types.ts
48
48
  var SPEC_VERSION = "1.0";
@@ -111,7 +111,12 @@ function buildFields(metadata) {
111
111
  const fields = {};
112
112
  for (const field of metadata.fields) {
113
113
  const format = field.options?.format;
114
- fields[field.propertyName] = format ? { type: DYNAMO_TYPE_TO_FIELD_TYPE[field.dynamoType], format } : { type: DYNAMO_TYPE_TO_FIELD_TYPE[field.dynamoType] };
114
+ const description = field.options?.description;
115
+ fields[field.propertyName] = {
116
+ type: DYNAMO_TYPE_TO_FIELD_TYPE[field.dynamoType],
117
+ ...format ? { format } : {},
118
+ ...description !== void 0 ? { description } : {}
119
+ };
115
120
  }
116
121
  return sortedRecord(fields);
117
122
  }
@@ -123,7 +128,8 @@ function buildEntity(metadata) {
123
128
  fields: buildFields(metadata),
124
129
  key: buildKey(metadata.primaryKey),
125
130
  gsis: buildGsis(metadata),
126
- relations: buildRelations(metadata)
131
+ relations: buildRelations(metadata),
132
+ ...metadata.description !== void 0 ? { description: metadata.description } : {}
127
133
  };
128
134
  }
129
135
  function buildManifest(registry = MetadataRegistry) {
@@ -3572,7 +3578,8 @@ function buildQueryContract(methods) {
3572
3578
  op,
3573
3579
  resolution,
3574
3580
  inputArity,
3575
- __methodName: name
3581
+ __methodName: name,
3582
+ ...op.description !== void 0 ? { description: op.description } : {}
3576
3583
  };
3577
3584
  }
3578
3585
  const contract = { __isContract: true, kind: "query", methods: resolved };
@@ -3586,8 +3593,8 @@ function buildCommandContract(methods) {
3586
3593
  const resolved = {};
3587
3594
  for (const [name, body] of Object.entries(methods)) {
3588
3595
  if (isPublicWriteDescriptor(body)) {
3589
- const { plan: plan2, select, condition, mode } = writeDescriptorToPlan(name, body);
3590
- resolved[name] = finalizeDescriptorCommand(name, plan2, select, condition, mode);
3596
+ const { plan: plan2, select, condition, mode, description } = writeDescriptorToPlan(name, body);
3597
+ resolved[name] = finalizeDescriptorCommand(name, plan2, select, condition, mode, description);
3591
3598
  continue;
3592
3599
  }
3593
3600
  if (isPublicComposeDescriptor(body)) {
@@ -3597,7 +3604,8 @@ function buildCommandContract(methods) {
3597
3604
  body.command,
3598
3605
  select,
3599
3606
  void 0,
3600
- body.mode ?? "transaction"
3607
+ body.mode ?? "transaction",
3608
+ body.description
3601
3609
  );
3602
3610
  continue;
3603
3611
  }
@@ -3662,7 +3670,7 @@ function buildPlannedCommandMethod(name, planned) {
3662
3670
  ...returnSelection !== void 0 ? { returnSelection } : {}
3663
3671
  };
3664
3672
  }
3665
- function finalizeDescriptorCommand(name, plan2, select, condition, mode) {
3673
+ function finalizeDescriptorCommand(name, plan2, select, condition, mode, description) {
3666
3674
  const planned = {
3667
3675
  [PLANNED_COMMAND_BRAND]: true,
3668
3676
  plan: plan2,
@@ -3674,7 +3682,8 @@ function finalizeDescriptorCommand(name, plan2, select, condition, mode) {
3674
3682
  return {
3675
3683
  ...built,
3676
3684
  op,
3677
- mode
3685
+ mode,
3686
+ ...description !== void 0 ? { description } : {}
3678
3687
  };
3679
3688
  }
3680
3689
  function normalizeReturnSelection(select) {
@@ -3760,7 +3769,8 @@ function readDescriptorToOp(name, d) {
3760
3769
  keys,
3761
3770
  ...isQuery ? { keyFields: keyFieldNames2 } : {},
3762
3771
  ...select !== void 0 ? { select } : {},
3763
- ...compose.length > 0 ? { compose } : {}
3772
+ ...compose.length > 0 ? { compose } : {},
3773
+ ...d.description !== void 0 ? { description: d.description } : {}
3764
3774
  };
3765
3775
  }
3766
3776
  function writeDescriptorToPlan(name, d) {
@@ -3794,7 +3804,7 @@ function writeDescriptorToPlan(name, d) {
3794
3804
  });
3795
3805
  const select = d.result !== void 0 && d.result.select !== void 0 ? d.result.select : void 0;
3796
3806
  const condition = d.condition !== void 0 ? descriptorConditionRecord(d.condition, name) : void 0;
3797
- return { plan: plan2, select, condition, mode: d.mode ?? "transaction" };
3807
+ return { plan: plan2, select, condition, mode: d.mode ?? "transaction", description: d.description };
3798
3808
  }
3799
3809
 
3800
3810
  // src/spec/mutation-command.ts
@@ -5697,10 +5707,12 @@ function paramSpecs(params) {
5697
5707
  const out = {};
5698
5708
  for (const name of Object.keys(params).sort()) {
5699
5709
  const d = params[name];
5700
- out[name] = d.literals === void 0 ? { type: d.kind, required: d.required } : {
5710
+ out[name] = {
5701
5711
  type: d.kind,
5702
5712
  required: d.required,
5703
- literals: d.literals
5713
+ ...d.literals !== void 0 ? { literals: d.literals } : {},
5714
+ // Pure-documentation description (issue #154); absent → byte-identical spec.
5715
+ ...d.description !== void 0 ? { description: d.description } : {}
5704
5716
  };
5705
5717
  }
5706
5718
  return out;
@@ -5929,6 +5941,7 @@ function buildCommandSpec(def) {
5929
5941
  const params = paramSpecs(def.params);
5930
5942
  const entity = def.entity.name;
5931
5943
  const condition = extractCondition(def);
5944
+ const description = def.description !== void 0 ? { description: def.description } : {};
5932
5945
  if (def.operation === "put") {
5933
5946
  const item = templateRecord3(def.key);
5934
5947
  return {
@@ -5937,7 +5950,8 @@ function buildCommandSpec(def) {
5937
5950
  entity,
5938
5951
  params,
5939
5952
  item,
5940
- ...condition ? { condition } : {}
5953
+ ...condition ? { condition } : {},
5954
+ ...description
5941
5955
  };
5942
5956
  }
5943
5957
  if (def.operation === "delete") {
@@ -5947,7 +5961,8 @@ function buildCommandSpec(def) {
5947
5961
  entity,
5948
5962
  params,
5949
5963
  keyCondition: writeKeyCondition(metadata, def.key, entity),
5950
- ...condition ? { condition } : {}
5964
+ ...condition ? { condition } : {},
5965
+ ...description
5951
5966
  };
5952
5967
  }
5953
5968
  return {
@@ -5957,7 +5972,8 @@ function buildCommandSpec(def) {
5957
5972
  params,
5958
5973
  keyCondition: writeKeyCondition(metadata, def.key, entity),
5959
5974
  changes: templateRecord3(def.changes),
5960
- ...condition ? { condition } : {}
5975
+ ...condition ? { condition } : {},
5976
+ ...description
5961
5977
  };
5962
5978
  }
5963
5979
  function writeKeyCondition(metadata, key, entity) {
@@ -6024,7 +6040,9 @@ function buildQuerySpec(def) {
6024
6040
  operations,
6025
6041
  // `defineQuery` → a single entity object; `defineList` → a connection.
6026
6042
  cardinality: def.operation === "query" ? "one" : "many",
6027
- ...executionPlan !== void 0 ? { executionPlan } : {}
6043
+ ...executionPlan !== void 0 ? { executionPlan } : {},
6044
+ // Pure-documentation description (issue #154); absent → byte-identical spec.
6045
+ ...def.description !== void 0 ? { description: def.description } : {}
6028
6046
  };
6029
6047
  }
6030
6048
  function mergeSpecs(base, synthesized, kind) {
@@ -6788,7 +6806,9 @@ function serializeQueryContract(contractName, contract, querySpecs, contracts) {
6788
6806
  cardinality: method.resolution === "point" ? "one" : "many",
6789
6807
  operation: opName,
6790
6808
  ...compose.length > 0 ? { compose } : {},
6791
- ...compositionPlan !== void 0 ? { compositionPlan } : {}
6809
+ ...compositionPlan !== void 0 ? { compositionPlan } : {},
6810
+ // Pure-documentation description (issue #154); absent → byte-identical spec.
6811
+ ...method.description !== void 0 ? { description: method.description } : {}
6792
6812
  };
6793
6813
  }
6794
6814
  return {
@@ -6876,7 +6896,9 @@ function serializeCommandContract(contractName, contract, commandSpecs, transact
6876
6896
  result: method.result,
6877
6897
  single,
6878
6898
  ...batch !== void 0 ? { batch } : {},
6879
- ...returnSelection !== void 0 && Object.keys(returnSelection).length > 0 ? { returnSelection: sortedReturnSelection(returnSelection) } : {}
6899
+ ...returnSelection !== void 0 && Object.keys(returnSelection).length > 0 ? { returnSelection: sortedReturnSelection(returnSelection) } : {},
6900
+ // Pure-documentation description (issue #154); absent → byte-identical spec.
6901
+ ...method.description !== void 0 ? { description: method.description } : {}
6880
6902
  };
6881
6903
  }
6882
6904
  return {
package/dist/cli.js CHANGED
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  buildBridgeBundle,
4
4
  normalizeSelectSpec
5
- } from "./chunk-PC54CW5P.js";
5
+ } from "./chunk-G5RWWBAL.js";
6
6
  import {
7
7
  MetadataRegistry
8
- } from "./chunk-72VZYOSG.js";
8
+ } from "./chunk-CPTV3H2U.js";
9
9
 
10
10
  // src/cli.ts
11
11
  import { createRequire } from "module";
@@ -467,9 +467,16 @@ function pyTransactionParamType(txName, paramName, spec) {
467
467
  }
468
468
  return pyParamType(spec);
469
469
  }
470
+ function pyDocLine(text) {
471
+ return text.replace(/\\/g, "\\\\").replace(/"""/g, '\\"\\"\\"').replace(/\r?\n/g, " ").trim();
472
+ }
473
+ function pyCommentLine(text) {
474
+ return text.replace(/\r?\n/g, " ").trim();
475
+ }
470
476
  function collectResultTypes(manifest, entity, select, typeName, out, seen) {
471
477
  const meta = manifest.entities[entity];
472
478
  const fields = [];
479
+ const fieldDescriptions = {};
473
480
  for (const field of Object.keys(select).sort()) {
474
481
  const value = select[field];
475
482
  const relation = meta?.relations[field];
@@ -504,13 +511,23 @@ function collectResultTypes(manifest, entity, select, typeName, out, seen) {
504
511
  continue;
505
512
  }
506
513
  if (value === true) {
507
- const fieldType = meta?.fields[field]?.type ?? "string";
514
+ const manifestField = meta?.fields[field];
515
+ const fieldType = manifestField?.type ?? "string";
508
516
  fields.push([field, pyScalarType(fieldType)]);
517
+ if (manifestField?.description !== void 0) {
518
+ fieldDescriptions[field] = manifestField.description;
519
+ }
509
520
  }
510
521
  }
511
522
  if (!seen.has(typeName)) {
512
523
  seen.add(typeName);
513
- out.push({ name: typeName, fields });
524
+ out.push({
525
+ name: typeName,
526
+ fields,
527
+ ...Object.keys(fieldDescriptions).length > 0 ? { fieldDescriptions } : {},
528
+ // The entity's own description (issue #154) becomes the result class docstring.
529
+ ...meta?.description !== void 0 ? { docstring: meta.description } : {}
530
+ });
514
531
  }
515
532
  }
516
533
  function selectOf(def) {
@@ -519,29 +536,44 @@ function selectOf(def) {
519
536
  function queryResultTypeName(queryName) {
520
537
  return `${toPascalCase(queryName)}Result`;
521
538
  }
539
+ function classDocstringLines(cls) {
540
+ return cls.docstring !== void 0 ? [` """${pyDocLine(cls.docstring)}"""`] : [];
541
+ }
542
+ function withFieldComment(cls, name, line) {
543
+ const desc = cls.fieldDescriptions?.[name];
544
+ return desc !== void 0 ? `${line} # ${pyCommentLine(desc)}` : line;
545
+ }
522
546
  function renderTypedDict(cls) {
547
+ const doc = classDocstringLines(cls);
523
548
  if (cls.fields.length === 0) {
524
- return `class ${cls.name}(TypedDict):
549
+ return doc.length > 0 ? `class ${cls.name}(TypedDict):
550
+ ${doc.join("\n")}` : `class ${cls.name}(TypedDict):
525
551
  pass`;
526
552
  }
527
- const lines = cls.fields.map(([name, type]) => ` ${name}: ${type}`);
553
+ const lines = cls.fields.map(
554
+ ([name, type]) => withFieldComment(cls, name, ` ${name}: ${type}`)
555
+ );
528
556
  return `class ${cls.name}(TypedDict):
529
- ${lines.join("\n")}`;
557
+ ${[...doc, ...lines].join("\n")}`;
530
558
  }
531
559
  function renderDataclass(cls) {
560
+ const doc = classDocstringLines(cls);
532
561
  if (cls.fields.length === 0) {
533
- return `@dataclass
562
+ return doc.length > 0 ? `@dataclass
563
+ class ${cls.name}:
564
+ ${doc.join("\n")}` : `@dataclass
534
565
  class ${cls.name}:
535
566
  pass`;
536
567
  }
537
568
  const lines = cls.fields.map(
538
- ([name, type]) => type.endsWith("| None") ? ` ${name}: ${type} = None` : ` ${name}: ${type}`
569
+ ([name, type]) => type.endsWith("| None") ? withFieldComment(cls, name, ` ${name}: ${type} = None`) : withFieldComment(cls, name, ` ${name}: ${type}`)
539
570
  );
540
- const required = lines.filter((l) => !l.endsWith("= None"));
541
- const optional = lines.filter((l) => l.endsWith("= None"));
571
+ const isOptional = (l) => /:\s.*\| None\s*=\sNone(\s+#.*)?$/.test(l);
572
+ const required = lines.filter((l) => !isOptional(l));
573
+ const optional = lines.filter(isOptional);
542
574
  return `@dataclass
543
575
  class ${cls.name}:
544
- ${[...required, ...optional].join("\n")}`;
576
+ ${[...doc, ...required, ...optional].join("\n")}`;
545
577
  }
546
578
  function collectTransactionElementTypes(transactions, out, seen) {
547
579
  for (const txName of Object.keys(transactions).sort()) {
@@ -625,7 +657,8 @@ function collectRepositories(queries, commands) {
625
657
  params: methodParams(def),
626
658
  returnType: `${queryResultTypeName(name)} | None`,
627
659
  kind: "query",
628
- operationId: name
660
+ operationId: name,
661
+ ...def.description !== void 0 ? { description: def.description } : {}
629
662
  });
630
663
  }
631
664
  for (const name of Object.keys(commands).sort()) {
@@ -635,7 +668,8 @@ function collectRepositories(queries, commands) {
635
668
  params: methodParams(def),
636
669
  returnType: "None",
637
670
  kind: "command",
638
- operationId: name
671
+ operationId: name,
672
+ ...def.description !== void 0 ? { description: def.description } : {}
639
673
  });
640
674
  }
641
675
  return [...byEntity.keys()].sort().map((className) => ({
@@ -646,11 +680,13 @@ function collectRepositories(queries, commands) {
646
680
  function renderMethod(m) {
647
681
  const sig = m.params.map((p) => `${p.argName}: ${p.pyType}`).join(", ");
648
682
  const head = ` def ${m.methodName}(self${sig ? ", " + sig : ""}) -> ${m.returnType}:`;
683
+ const doc = m.description !== void 0 ? [` """${pyDocLine(m.description)}"""`] : [];
649
684
  const paramsDict = m.params.map((p) => `"${p.originalName}": ${p.argName}`).join(", ");
650
685
  const paramsArg = paramsDict ? `{${paramsDict}}` : "{}";
651
686
  if (m.kind === "query") {
652
687
  return [
653
688
  head,
689
+ ...doc,
654
690
  ` return self._runtime.execute_query(`,
655
691
  ` query_id="${m.operationId}",`,
656
692
  ` params=${paramsArg},`,
@@ -659,6 +695,7 @@ function renderMethod(m) {
659
695
  }
660
696
  return [
661
697
  head,
698
+ ...doc,
662
699
  ` self._runtime.execute_command(`,
663
700
  ` command_id="${m.operationId}",`,
664
701
  ` params=${paramsArg},`,
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SelectableOf, g as PrimaryKeyOf, h as RequestContext, i as Middleware, j as ReadRequestKind, k as CtxModel, l as ReadParams, m as ReadRequestCtx, D as DynamoDBOperation, I as Item, E as Executor, n as RetryPolicy, o as ExecutionPlanSpec, p as EntityMetadata, K as KeyDefinition, G as GsiDefinition, q as ModelKind, F as FieldOptions, r as DynamoType, s as ProjectionTransform, t as MaintainEvent, u as MembershipPredicate, v as MaintainConsistency, w as MaintainUpdateMode, x as MembershipPredicateOp, y as RelationOptions, A as AggregateOptions, z as AggregateValue, H as SelectBuilderSpec, J as RawCondition, L as TransactionSpec, N as Manifest, O as RetryOverride, Q as ExecutionPlan, V as FieldMetadata, X as ResolvedKey, R as ReadExecOptions, a as ExecutorResult, B as BatchGetExecInput, P as PutInput, W as WriteExecOptions, b as WriteResult, U as UpdateInput, c as DeleteInput, d as BatchWriteExecItem, e as BatchExecOptions, T as TransactWriteExecItem, Y as CdcEmulatorOptions, Z as ChangeHandler, _ as Unsubscribe, $ as FaultSpec, a0 as ConcurrentRecomputeRef, C as ChangeEvent, a1 as EventLog, a2 as ReplayOptions, a3 as ShardId, a4 as ViewDefinition, a5 as RelationMetadata, a6 as TransactionItemSpec, a7 as MaintainEffect, M as ModelStatic, f as DDBModel, a8 as Param, a9 as ParamDescriptor, aa as DefinitionMap, ab as OperationDefinition, ac as WriteDefinitionOptions, ad as PartialQueryKeyOf, ae as StrictSelectSpec, af as EntityInput, ag as UniqueQueryKeyOf, ah as EntityRef, ai as ConditionInput, aj as QueryModelContract, ak as QueryMethodSpec, al as CommandModelContract, am as CommandMethodSpec, an as ContractSpec, ao as QuerySpec, ap as CommandSpec, aq as ContextSpec, ar as OperationsDocument, as as AnyOperationDefinition, at as BridgeBundle, au as ConditionSpec } from './types-CpCo8yHP.js';
2
- export { av as AggregateMetadata, aw as BatchDeleteRequest, ax as BatchGetOptions, ay as BatchGetRequest, az as BatchGetResult, aA as BatchPutRequest, aB as BatchResult, aC as BatchWriteRequest, aD as CONTRACT_RANGE_FANOUT_CONCURRENCY, aE as CdcMode, aF as Change, aG as ChangeBatch, aH as ChangeEventName, aI as ClockMode, aJ as CollectionEffect, aK as CollectionOptions, aL as Column, aM as ColumnMap, aN as CommandContractMethodSpec, aO as CommandInputShape, aP as CommandMethod, aQ as CommandPlan, aR as CommandResolutionTarget, aS as CommandResultKind, aT as CommandSelectShape, aU as CompiledFragment, aV as ComposeSpec, aW as CondSlot, aX as ConditionCheckInput, aY as Connection, aZ as ContractCallSignature, a_ as ContractCardinality, a$ as ContractCommandParams, b0 as ContractCommandResult, b1 as ContractComposeNode, b2 as ContractFromRef, b3 as ContractInputArity, b4 as ContractItem, b5 as ContractKeyFieldRef, b6 as ContractKeyInput, b7 as ContractKeyRef, b8 as ContractKeySpec, b9 as ContractKind, ba as ContractMethodOp, bb as ContractParamRef, bc as ContractQueryParams, bd as ContractResolution, be as CounterAggregate, bf as CounterEffect, bg as CtxBase, bh as DEFAULT_MAX_ATTEMPTS, bi as DEFAULT_RETRY_POLICY, bj as DeleteOptions, bk as DeriveEffect, bl as DerivedEdgeWrite, bm as DerivedUpdate, bn as DescriptorBinding, bo as ENTITY_WRITES_MARKER, bp as EdgeEffect, bq as EffectPath, br as EmbeddedMetadata, bs as EmitEffect, bt as EntityWritesDefinition, bu as EntityWritesShape, bv as ExecutableCommandContract, bw as ExecutableQueryContract, bx as FilterInput, by as FilterSpec, bz as FragmentInput, bA as GsiDefinitionMarker, bB as GsiOptions, bC as IdempotencyEffect, bD as InProcessWriteDescriptor, bE as InputArity, bF as KeyDefinitionMarker, bG as KeySegment, bH as KeySlot, bI as KeyStructure, bJ as KeyedResult, bK as LIFECYCLE_CONTRACT_MARKER, bL as LifecycleContract, bM as LifecycleEffects, bN as LiteralParam, bO as MaintainItem, bP as MaintainTrigger, bQ as MaintenanceGraph, bR as ManifestEntity, bS as ManifestField, bT as ManifestFieldType, bU as ManifestGsi, bV as ManifestKey, bW as ManifestRelation, bX as ManifestTable, bY as MembershipEffect, bZ as ModelRef, b_ as MutateMode, b$ as MutateOptions, c0 as MutateParallelResult, c1 as MutateTransactionResult, c2 as MutationBody, c3 as MutationDescriptorMap, c4 as MutationFragment, c5 as MutationInputProxy, c6 as MutationInputRef, c7 as MutationIntent, c8 as NumberParam, c9 as OperationKind, ca as OperationSpec, cb as ParallelOpResult, cc as ParamKind, cd as ParamSpec, ce as ParamStructure, cf as PersistCtx, cg as PersistOrigin, ch as PlannedCommandMethod, ci as ProjectionMap, cj as ProjectionTransformOp, ck as PutOptions, cl as QueryContractMethodSpec, cm as QueryEnvelopeResult, cn as QueryKeyOf, co as QueryMethod, cp as QueryResult, cq as RangeConditionSpec, cr as ReadEnvelope, cs as ReadOpCtx, ct as ReadOpKind, cu as ReadOperationType, cv as ReadRouteDescriptor, cw as ReadRouteOptions, cx as ReadRouteResult, cy as RecordedCompose, cz as RelationBuilder, cA as RelationConsistency, cB as RelationLimitOptions, cC as RelationPattern, cD as RelationProjection, cE as RelationReadOptions, cF as RelationSelect, cG as RelationSpec, cH as RelationUpdateMode, cI as RelationWriteOptions, cJ as RequiresEffect, cK as Resolution, cL as RetryInfo, cM as RetryOperationKind, cN as SPEC_VERSION, cO as SegmentSpec, cP as SegmentedKey, cQ as SelectBuilder, cR as SelectOf, cS as SnapshotEffect, cT as StartingPosition, cU as StreamViewType, cV as StringParam, cW as TransactionContext, cX as TransactionItemType, cY as UniqueEffect, cZ as Updatable, c_ as UpdateOptions, c$ as ViewSourceSlice, d0 as WhenSpec, d1 as WriteCtx, d2 as WriteDescriptor, d3 as WriteEnvelope, d4 as WriteInput, d5 as WriteKind, d6 as WriteLifecyclePhase, d7 as WriteMiddleware, d8 as WriteOperationType, d9 as WriteRecorder, da as WriteResultProjection, db as attachModelClass, dc as buildDeleteInput, dd as buildMaintenanceGraph, de as buildPutInput, df as buildUpdateInput, dg as collectViewDefinitions, dh as compileFragment, di as compileMutationPlan, dj as compileSingleFragmentPlan, dk as cond, dl as contractOfMethodSpec, dm as definePlan, dn as entityWrites, dp as executeBatchGet, dq as executeBatchWrite, dr as executeCommandMethod, ds as executeDelete, dt as executeKeyedBatchGet, du as executePut, dv as executeQueryMethod, dw as executeRangeFanout, dx as executeTransaction, dy as executeUpdate, dz as from, dA as getEntityWrites, dB as gsi, dC as identity, dD as isColumn, dE as isCommandModelContract, dF as isCommandPlan, dG as isContractComposeNode, dH as isContractFromRef, dI as isContractKeyFieldRef, dJ as isContractKeyRef, dK as isContractParamRef, dL as isEntityWritesDefinition, dM as isKeySegment, dN as isLifecycleContract, dO as isMaintainTrigger, dP as isMutationFragment, dQ as isMutationInputRef, dR as isParam, dS as isPlannedCommandMethod, dT as isQueryModelContract, dU as isRetryableError, dV as isRetryableTransactionCancellation, dW as k, dX as key, dY as lifecyclePhaseForIntent, dZ as maintainTrigger, d_ as mintContractKeyFieldRef, d$ as mintContractParamRef, e0 as mutation, e1 as param, e2 as preview, e3 as publicCommandModel, e4 as publicQueryModel, e5 as query, e6 as resolveLifecycle, e7 as wholeKeysSentinel } from './types-CpCo8yHP.js';
1
+ import { S as SelectableOf, g as PrimaryKeyOf, h as RequestContext, i as Middleware, j as ReadRequestKind, k as CtxModel, l as ReadParams, m as ReadRequestCtx, D as DynamoDBOperation, I as Item, E as Executor, n as RetryPolicy, o as ExecutionPlanSpec, p as EntityMetadata, K as KeyDefinition, G as GsiDefinition, q as ModelKind, F as FieldOptions, r as DynamoType, s as ProjectionTransform, t as MaintainEvent, u as MembershipPredicate, v as MaintainConsistency, w as MaintainUpdateMode, x as MembershipPredicateOp, y as RelationOptions, A as AggregateOptions, z as AggregateValue, H as SelectBuilderSpec, J as RawCondition, L as TransactionSpec, N as Manifest, O as RetryOverride, Q as ExecutionPlan, V as FieldMetadata, X as ResolvedKey, R as ReadExecOptions, a as ExecutorResult, B as BatchGetExecInput, P as PutInput, W as WriteExecOptions, b as WriteResult, U as UpdateInput, c as DeleteInput, d as BatchWriteExecItem, e as BatchExecOptions, T as TransactWriteExecItem, Y as CdcEmulatorOptions, Z as ChangeHandler, _ as Unsubscribe, $ as FaultSpec, a0 as ConcurrentRecomputeRef, C as ChangeEvent, a1 as EventLog, a2 as ReplayOptions, a3 as ShardId, a4 as ViewDefinition, a5 as RelationMetadata, a6 as TransactionItemSpec, a7 as MaintainEffect, M as ModelStatic, f as DDBModel, a8 as Param, a9 as ParamDescriptor, aa as DefinitionMap, ab as OperationDefinition, ac as WriteDefinitionOptions, ad as PartialQueryKeyOf, ae as StrictSelectSpec, af as ReadDefinitionOptions, ag as EntityInput, ah as UniqueQueryKeyOf, ai as EntityRef, aj as ConditionInput, ak as QueryModelContract, al as QueryMethodSpec, am as CommandModelContract, an as CommandMethodSpec, ao as ContractSpec, ap as QuerySpec, aq as CommandSpec, ar as ContextSpec, as as OperationsDocument, at as AnyOperationDefinition, au as BridgeBundle, av as ConditionSpec } from './types-BWOrWcbd.js';
2
+ export { aw as AggregateMetadata, ax as BatchDeleteRequest, ay as BatchGetOptions, az as BatchGetRequest, aA as BatchGetResult, aB as BatchPutRequest, aC as BatchResult, aD as BatchWriteRequest, aE as CONTRACT_RANGE_FANOUT_CONCURRENCY, aF as CdcMode, aG as Change, aH as ChangeBatch, aI as ChangeEventName, aJ as ClockMode, aK as CollectionEffect, aL as CollectionOptions, aM as Column, aN as ColumnMap, aO as CommandContractMethodSpec, aP as CommandInputShape, aQ as CommandMethod, aR as CommandPlan, aS as CommandResolutionTarget, aT as CommandResultKind, aU as CommandSelectShape, aV as CompiledFragment, aW as ComposeSpec, aX as CondSlot, aY as ConditionCheckInput, aZ as Connection, a_ as ContractCallSignature, a$ as ContractCardinality, b0 as ContractCommandParams, b1 as ContractCommandResult, b2 as ContractComposeNode, b3 as ContractFromRef, b4 as ContractInputArity, b5 as ContractItem, b6 as ContractKeyFieldRef, b7 as ContractKeyInput, b8 as ContractKeyRef, b9 as ContractKeySpec, ba as ContractKind, bb as ContractMethodOp, bc as ContractParamRef, bd as ContractQueryParams, be as ContractResolution, bf as CounterAggregate, bg as CounterEffect, bh as CtxBase, bi as DEFAULT_MAX_ATTEMPTS, bj as DEFAULT_RETRY_POLICY, bk as DeleteOptions, bl as DeriveEffect, bm as DerivedEdgeWrite, bn as DerivedUpdate, bo as DescriptorBinding, bp as ENTITY_WRITES_MARKER, bq as EdgeEffect, br as EffectPath, bs as EmbeddedMetadata, bt as EmitEffect, bu as EntityWritesDefinition, bv as EntityWritesShape, bw as ExecutableCommandContract, bx as ExecutableQueryContract, by as FilterInput, bz as FilterSpec, bA as FragmentInput, bB as GsiDefinitionMarker, bC as GsiOptions, bD as IdempotencyEffect, bE as InProcessWriteDescriptor, bF as InputArity, bG as KeyDefinitionMarker, bH as KeySegment, bI as KeySlot, bJ as KeyStructure, bK as KeyedResult, bL as LIFECYCLE_CONTRACT_MARKER, bM as LifecycleContract, bN as LifecycleEffects, bO as LiteralParam, bP as MaintainItem, bQ as MaintainTrigger, bR as MaintenanceGraph, bS as ManifestEntity, bT as ManifestField, bU as ManifestFieldType, bV as ManifestGsi, bW as ManifestKey, bX as ManifestRelation, bY as ManifestTable, bZ as MembershipEffect, b_ as ModelRef, b$ as MutateMode, c0 as MutateOptions, c1 as MutateParallelResult, c2 as MutateTransactionResult, c3 as MutationBody, c4 as MutationDescriptorMap, c5 as MutationFragment, c6 as MutationInputProxy, c7 as MutationInputRef, c8 as MutationIntent, c9 as NumberParam, ca as OperationKind, cb as OperationSpec, cc as ParallelOpResult, cd as ParamKind, ce as ParamSpec, cf as ParamStructure, cg as PersistCtx, ch as PersistOrigin, ci as PlannedCommandMethod, cj as ProjectionMap, ck as ProjectionTransformOp, cl as PutOptions, cm as QueryContractMethodSpec, cn as QueryEnvelopeResult, co as QueryKeyOf, cp as QueryMethod, cq as QueryResult, cr as RangeConditionSpec, cs as ReadEnvelope, ct as ReadOpCtx, cu as ReadOpKind, cv as ReadOperationType, cw as ReadRouteDescriptor, cx as ReadRouteOptions, cy as ReadRouteResult, cz as RecordedCompose, cA as RelationBuilder, cB as RelationConsistency, cC as RelationLimitOptions, cD as RelationPattern, cE as RelationProjection, cF as RelationReadOptions, cG as RelationSelect, cH as RelationSpec, cI as RelationUpdateMode, cJ as RelationWriteOptions, cK as RequiresEffect, cL as Resolution, cM as RetryInfo, cN as RetryOperationKind, cO as SPEC_VERSION, cP as SegmentSpec, cQ as SegmentedKey, cR as SelectBuilder, cS as SelectOf, cT as SnapshotEffect, cU as StartingPosition, cV as StreamViewType, cW as StringParam, cX as TransactionContext, cY as TransactionItemType, cZ as UniqueEffect, c_ as Updatable, c$ as UpdateOptions, d0 as ViewSourceSlice, d1 as WhenSpec, d2 as WriteCtx, d3 as WriteDescriptor, d4 as WriteEnvelope, d5 as WriteInput, d6 as WriteKind, d7 as WriteLifecyclePhase, d8 as WriteMiddleware, d9 as WriteOperationType, da as WriteRecorder, db as WriteResultProjection, dc as attachModelClass, dd as buildDeleteInput, de as buildMaintenanceGraph, df as buildPutInput, dg as buildUpdateInput, dh as collectViewDefinitions, di as compileFragment, dj as compileMutationPlan, dk as compileSingleFragmentPlan, dl as cond, dm as contractOfMethodSpec, dn as definePlan, dp as entityWrites, dq as executeBatchGet, dr as executeBatchWrite, ds as executeCommandMethod, dt as executeDelete, du as executeKeyedBatchGet, dv as executePut, dw as executeQueryMethod, dx as executeRangeFanout, dy as executeTransaction, dz as executeUpdate, dA as from, dB as getEntityWrites, dC as gsi, dD as identity, dE as isColumn, dF as isCommandModelContract, dG as isCommandPlan, dH as isContractComposeNode, dI as isContractFromRef, dJ as isContractKeyFieldRef, dK as isContractKeyRef, dL as isContractParamRef, dM as isEntityWritesDefinition, dN as isKeySegment, dO as isLifecycleContract, dP as isMaintainTrigger, dQ as isMutationFragment, dR as isMutationInputRef, dS as isParam, dT as isPlannedCommandMethod, dU as isQueryModelContract, dV as isRetryableError, dW as isRetryableTransactionCancellation, dX as k, dY as key, dZ as lifecyclePhaseForIntent, d_ as maintainTrigger, d$ as mintContractKeyFieldRef, e0 as mintContractParamRef, e1 as mutation, e2 as param, e3 as preview, e4 as publicCommandModel, e5 as publicQueryModel, e6 as query, e7 as resolveLifecycle, e8 as wholeKeysSentinel } from './types-BWOrWcbd.js';
3
3
  import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
4
4
  import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
5
5
 
@@ -386,6 +386,13 @@ interface ModelOptions {
386
386
  * adapter validates this).
387
387
  */
388
388
  kind?: ModelKind;
389
+ /**
390
+ * Optional human-readable description of the entity (issue #154). Pure
391
+ * documentation metadata — recorded into {@link EntityMetadata.description} and
392
+ * propagated to `manifest.json` + the generated Python class docstring. It does
393
+ * NOT affect storage, keys, or any runtime behaviour. Omit for unchanged output.
394
+ */
395
+ description?: string;
389
396
  }
390
397
  declare function model(options: ModelOptions): (target: Function, context: ClassDecoratorContext) => void;
391
398
 
@@ -2262,13 +2269,13 @@ type EntityOf<M> = M extends ModelStatic<infer T, infer _C> ? T : never;
2262
2269
  * the model's unique-key boundary (`UniqueQueryKeyOf`); `select` is the strict
2263
2270
  * projection (#37) typed against the entity.
2264
2271
  */
2265
- declare function defineQuery<M extends ModelStatic<DDBModel, AnyModelClass>, const K extends Parameterize<UniqueQueryKeyOf<ClassOf<M>>>, const S extends SelectableOf<EntityOf<M>>>(model: M, key: K & ExactParam<UniqueQueryKeyOf<ClassOf<M>>, K>, select: S & StrictSelectSpec<EntityOf<M>, S>): OperationDefinition<EntityOf<M>, 'query', K, S, undefined, CollectParams<K>>;
2272
+ declare function defineQuery<M extends ModelStatic<DDBModel, AnyModelClass>, const K extends Parameterize<UniqueQueryKeyOf<ClassOf<M>>>, const S extends SelectableOf<EntityOf<M>>>(model: M, key: K & ExactParam<UniqueQueryKeyOf<ClassOf<M>>, K>, select: S & StrictSelectSpec<EntityOf<M>, S>, options?: ReadDefinitionOptions): OperationDefinition<EntityOf<M>, 'query', K, S, undefined, CollectParams<K>>;
2266
2273
  /**
2267
2274
  * Define a parameterized **partition read** (`list`). The `key` accepts a
2268
2275
  * partial (partition-key) input with {@link Param} placeholders; `select` is
2269
2276
  * the strict projection typed against the entity.
2270
2277
  */
2271
- declare function defineList<M extends ModelStatic<DDBModel, AnyModelClass>, const K extends Parameterize<PartialQueryKeyOf<ClassOf<M>>>, const S extends SelectableOf<EntityOf<M>>>(model: M, key: K & ExactParam<PartialQueryKeyOf<ClassOf<M>>, K>, select: S & StrictSelectSpec<EntityOf<M>, S>): OperationDefinition<EntityOf<M>, 'list', K, S, undefined, CollectParams<K>>;
2278
+ declare function defineList<M extends ModelStatic<DDBModel, AnyModelClass>, const K extends Parameterize<PartialQueryKeyOf<ClassOf<M>>>, const S extends SelectableOf<EntityOf<M>>>(model: M, key: K & ExactParam<PartialQueryKeyOf<ClassOf<M>>, K>, select: S & StrictSelectSpec<EntityOf<M>, S>, options?: ReadDefinitionOptions): OperationDefinition<EntityOf<M>, 'list', K, S, undefined, CollectParams<K>>;
2272
2279
  /**
2273
2280
  * Define a parameterized **put** (`put`). The `item` accepts {@link Param}
2274
2281
  * placeholders at scalar leaves and is otherwise checked against `EntityInput`
package/dist/index.js CHANGED
@@ -79,7 +79,7 @@ import {
79
79
  validateDepth,
80
80
  when,
81
81
  wholeKeysSentinel
82
- } from "./chunk-PC54CW5P.js";
82
+ } from "./chunk-G5RWWBAL.js";
83
83
  import {
84
84
  CdcEmulator,
85
85
  MAINT_OUTBOX_PK_PREFIX,
@@ -91,7 +91,7 @@ import {
91
91
  orderAndTrimCollection,
92
92
  pathField,
93
93
  projectFrom
94
- } from "./chunk-GWFZVNAV.js";
94
+ } from "./chunk-BROCT574.js";
95
95
  import {
96
96
  BATCH_GET_MAX_KEYS,
97
97
  BATCH_WRITE_MAX_ITEMS,
@@ -154,7 +154,7 @@ import {
154
154
  resolveModelClass,
155
155
  segmentFieldNames,
156
156
  serializeFieldValue
157
- } from "./chunk-72VZYOSG.js";
157
+ } from "./chunk-CPTV3H2U.js";
158
158
 
159
159
  // src/metadata/prefix.ts
160
160
  function derivePrefix(customPrefix, className) {
@@ -277,6 +277,7 @@ function model(options) {
277
277
  aggregates,
278
278
  embeddedFields,
279
279
  kind,
280
+ ...options.description !== void 0 ? { description: options.description } : {},
280
281
  maintainedFrom: maintainedFrom2
281
282
  });
282
283
  };
@@ -1596,7 +1597,15 @@ function collectParams(structure, out = {}) {
1596
1597
  return out;
1597
1598
  }
1598
1599
  function descriptorFromParam(name, value, existing) {
1599
- const descriptor = value.literals === void 0 ? { kind: value.kind, required: true } : { kind: value.kind, literals: value.literals, required: true };
1600
+ const descriptor = {
1601
+ kind: value.kind,
1602
+ ...value.literals !== void 0 ? { literals: value.literals } : {},
1603
+ // Pure-documentation description (issue #154); carried through verbatim. Does
1604
+ // not participate in the conflicting-kind check below (it is not part of the
1605
+ // execution-relevant descriptor identity).
1606
+ ...value.description !== void 0 ? { description: value.description } : {},
1607
+ required: true
1608
+ };
1600
1609
  if (existing !== void 0 && existing.kind !== descriptor.kind) {
1601
1610
  throw new Error(
1602
1611
  `Parameter '${name}' is declared with conflicting types ('${existing.kind}' and '${descriptor.kind}'). A parameter name must have a single type across a definition.`
@@ -1693,7 +1702,7 @@ function collectConditionTreeParams(obj, out) {
1693
1702
  }
1694
1703
  }
1695
1704
  }
1696
- function makeDefinition(model2, operation, key2, select, changes, condition) {
1705
+ function makeDefinition(model2, operation, key2, select, changes, condition, description) {
1697
1706
  const params = collectParams(key2);
1698
1707
  if (changes !== void 0) collectParams(changes, params);
1699
1708
  collectConditionParams(condition, params);
@@ -1705,25 +1714,30 @@ function makeDefinition(model2, operation, key2, select, changes, condition) {
1705
1714
  select,
1706
1715
  changes,
1707
1716
  ...condition !== void 0 ? { condition } : {},
1717
+ ...description !== void 0 ? { description } : {},
1708
1718
  params
1709
1719
  };
1710
1720
  }
1711
- function defineQuery(model2, key2, select) {
1721
+ function defineQuery(model2, key2, select, options) {
1712
1722
  return makeDefinition(
1713
1723
  model2,
1714
1724
  "query",
1715
1725
  key2,
1716
1726
  select,
1717
- void 0
1727
+ void 0,
1728
+ void 0,
1729
+ options?.description
1718
1730
  );
1719
1731
  }
1720
- function defineList(model2, key2, select) {
1732
+ function defineList(model2, key2, select, options) {
1721
1733
  return makeDefinition(
1722
1734
  model2,
1723
1735
  "list",
1724
1736
  key2,
1725
1737
  select,
1726
- void 0
1738
+ void 0,
1739
+ void 0,
1740
+ options?.description
1727
1741
  );
1728
1742
  }
1729
1743
  function definePut(model2, item, options) {
@@ -1733,7 +1747,8 @@ function definePut(model2, item, options) {
1733
1747
  item,
1734
1748
  void 0,
1735
1749
  void 0,
1736
- options?.condition
1750
+ options?.condition,
1751
+ options?.description
1737
1752
  );
1738
1753
  }
1739
1754
  function defineUpdate(model2, key2, changes, options) {
@@ -1743,7 +1758,8 @@ function defineUpdate(model2, key2, changes, options) {
1743
1758
  key2,
1744
1759
  void 0,
1745
1760
  changes,
1746
- options?.condition
1761
+ options?.condition,
1762
+ options?.description
1747
1763
  );
1748
1764
  }
1749
1765
  function defineDelete(model2, key2, options) {
@@ -1753,7 +1769,8 @@ function defineDelete(model2, key2, options) {
1753
1769
  key2,
1754
1770
  void 0,
1755
1771
  void 0,
1756
- options?.condition
1772
+ options?.condition,
1773
+ options?.description
1757
1774
  );
1758
1775
  }
1759
1776
  function defineQueries(definitions) {
@@ -1,4 +1,4 @@
1
- import { E as Executor, D as DynamoDBOperation, R as ReadExecOptions, a as ExecutorResult, B as BatchGetExecInput, P as PutInput, W as WriteExecOptions, b as WriteResult, U as UpdateInput, c as DeleteInput, d as BatchWriteExecItem, e as BatchExecOptions, T as TransactWriteExecItem, M as ModelStatic, f as DDBModel, C as ChangeEvent } from '../types-CpCo8yHP.js';
1
+ import { E as Executor, D as DynamoDBOperation, R as ReadExecOptions, a as ExecutorResult, B as BatchGetExecInput, P as PutInput, W as WriteExecOptions, b as WriteResult, U as UpdateInput, c as DeleteInput, d as BatchWriteExecItem, e as BatchExecOptions, T as TransactWriteExecItem, M as ModelStatic, f as DDBModel, C as ChangeEvent } from '../types-BWOrWcbd.js';
2
2
  import '@aws-sdk/client-dynamodb';
3
3
 
4
4
  /**
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createCdcEmulator
3
- } from "../chunk-GWFZVNAV.js";
3
+ } from "../chunk-BROCT574.js";
4
4
  import {
5
5
  ClientManager,
6
6
  MetadataRegistry,
7
7
  TableMapping,
8
8
  resolveModelClass
9
- } from "../chunk-72VZYOSG.js";
9
+ } from "../chunk-CPTV3H2U.js";
10
10
 
11
11
  // src/memory/memory-store.ts
12
12
  function deepClone(value) {
@@ -227,6 +227,16 @@ interface Param<out T> {
227
227
  * `{item.<field>}` templates. `undefined` for scalar params.
228
228
  */
229
229
  readonly element?: Readonly<Record<string, Param<unknown>>>;
230
+ /**
231
+ * Optional human-readable description of the parameter (issue #154), supplied
232
+ * via `param.string({ description })` etc. Pure documentation metadata — it does
233
+ * NOT affect the runtime descriptor (`kind` / `literals`) the planner reads for
234
+ * execution. When present it is propagated to the param's {@link
235
+ * import('./ir.js').ParamDescriptor} and then to the serialized
236
+ * {@link import('../spec/types.js').ParamSpec} in `operations.json`. Absent →
237
+ * unchanged output (backward compatible).
238
+ */
239
+ readonly description?: string;
230
240
  }
231
241
  /** A `Param` whose represented value type is `string`. */
232
242
  type StringParam = Param<string>;
@@ -249,26 +259,41 @@ type ArrayParam<E extends ArrayElementShape> = Param<ElementOf<E>[]> & {
249
259
  };
250
260
  /** Allowed scalar value types a placeholder may stand in for. */
251
261
  type ParamValue = string | number;
262
+ /**
263
+ * Options accepted by the placeholder factories (issue #154). Currently carries
264
+ * only the optional human-readable {@link Param.description} — pure documentation
265
+ * metadata that does not affect the runtime descriptor. The object form is
266
+ * additive: `param.string()` (no options) is unchanged.
267
+ */
268
+ interface ParamOptions {
269
+ /** Optional human-readable description, propagated to `operations.json`. */
270
+ readonly description?: string;
271
+ }
252
272
  /**
253
273
  * Placeholder factory. Each call returns a branded {@link Param} carrying both
254
- * the TypeScript value type and a runtime descriptor.
274
+ * the TypeScript value type and a runtime descriptor. Each scalar factory accepts
275
+ * an optional {@link ParamOptions} (issue #154) carrying a `description` — pure
276
+ * documentation propagated to `operations.json`; the no-argument call is unchanged.
255
277
  */
256
278
  declare const param: {
257
279
  /** A placeholder for a `string` value. */
258
- readonly string: () => StringParam;
280
+ readonly string: (options?: ParamOptions) => StringParam;
259
281
  /** A placeholder for a `number` value. */
260
- readonly number: () => NumberParam;
282
+ readonly number: (options?: ParamOptions) => NumberParam;
261
283
  /**
262
284
  * A placeholder constrained to one of the given literal values. The value
263
285
  * type of the resulting {@link Param} is the **union of the literals**, so it
264
- * is preserved precisely in the IR and the inferred definition types.
286
+ * is preserved precisely in the IR and the inferred definition types. A final
287
+ * plain-object argument is read as {@link ParamOptions} (a `description`),
288
+ * distinguished from the `string` / `number` literal values.
265
289
  *
266
290
  * @example
267
291
  * ```ts
268
292
  * param.literal('active', 'disabled'); // Param<'active' | 'disabled'>
293
+ * param.literal('active', 'disabled', { description: 'Account state.' });
269
294
  * ```
270
295
  */
271
- readonly literal: <const L extends readonly [ParamValue, ...ParamValue[]]>(...values: L) => LiteralParam<L[number]>;
296
+ readonly literal: <const L extends readonly [ParamValue, ...ParamValue[]]>(...valuesAndOptions: [...L] | [...L, ParamOptions]) => LiteralParam<L[number]>;
272
297
  /**
273
298
  * A placeholder for an **array** parameter whose elements have the given field
274
299
  * shape. Used by `defineTransaction`'s `tx.forEach(p.<arrayParam>, …)` to bind
@@ -280,7 +305,7 @@ declare const param: {
280
305
  * // Param<{ userId: string; role: string }[]>
281
306
  * ```
282
307
  */
283
- readonly array: <const E extends ArrayElementShape>(element: E) => ArrayParam<E>;
308
+ readonly array: <const E extends ArrayElementShape>(element: E, options?: ParamOptions) => ArrayParam<E>;
284
309
  };
285
310
  /** Runtime type guard: is `value` a parameter placeholder? */
286
311
  declare function isParam(value: unknown): value is Param<unknown>;
@@ -1765,6 +1790,21 @@ interface ConditionTree {
1765
1790
  interface WriteDefinitionOptions {
1766
1791
  /** Optional declarative write condition (subset). */
1767
1792
  readonly condition?: ConditionInput;
1793
+ /**
1794
+ * Optional human-readable description of the command use case (issue #154). Pure
1795
+ * documentation — propagated to `operations.json` and the generated Python
1796
+ * repository-method docstring. Omit for unchanged output.
1797
+ */
1798
+ readonly description?: string;
1799
+ }
1800
+ /** Options accepted by the read `define*` entry points (issue #154). */
1801
+ interface ReadDefinitionOptions {
1802
+ /**
1803
+ * Optional human-readable description of the query use case (issue #154). Pure
1804
+ * documentation — propagated to `operations.json` and the generated Python
1805
+ * repository-method docstring. Omit for unchanged output.
1806
+ */
1807
+ readonly description?: string;
1768
1808
  }
1769
1809
  /**
1770
1810
  * Identifies the entity an operation targets. `name` is the model class name
@@ -1790,6 +1830,13 @@ interface ParamDescriptor<T = unknown> {
1790
1830
  * descriptors. `undefined` for scalar params.
1791
1831
  */
1792
1832
  readonly element?: Readonly<Record<string, ParamDescriptor>>;
1833
+ /**
1834
+ * Optional human-readable description of the parameter (issue #154), carried
1835
+ * from a `param.*({ description })` placeholder. Pure documentation — it does
1836
+ * not affect `kind` / `literals` (the execution-relevant descriptor). Propagated
1837
+ * to the serialized {@link import('../spec/types.js').ParamSpec}.
1838
+ */
1839
+ readonly description?: string;
1793
1840
  /** Parameters are always required (no optional params in this phase). */
1794
1841
  readonly required: true;
1795
1842
  }
@@ -1843,6 +1890,15 @@ interface OperationDefinition<T extends DDBModel, Op extends OperationKind, K, S
1843
1890
  * when no condition is attached or for reads (issue #46).
1844
1891
  */
1845
1892
  readonly condition?: ConditionInput;
1893
+ /**
1894
+ * Optional human-readable description of the definition (issue #154), supplied
1895
+ * via the entry-point options (`defineQuery(..., { description })` etc.). Pure
1896
+ * documentation — propagated to the serialized {@link
1897
+ * import('../spec/types.js').QuerySpec.description} /
1898
+ * {@link import('../spec/types.js').CommandSpec.description} and to the generated
1899
+ * Python repository-method docstring. It does not affect execution.
1900
+ */
1901
+ readonly description?: string;
1846
1902
  /** Collected parameters: name → descriptor (value type preserved in `P`). */
1847
1903
  readonly params: P;
1848
1904
  /** @internal Phantom carrier so the entity type `T` is retained on the node. */
@@ -3023,6 +3079,13 @@ interface ManifestField {
3023
3079
  * mirroring the TS hydrator's `format`-driven `Date` reconstruction.
3024
3080
  */
3025
3081
  readonly format?: 'datetime' | 'date';
3082
+ /**
3083
+ * Optional human-readable description of the field (issue #154), from a field
3084
+ * decorator option (`@string({ description })`). Pure documentation — absent
3085
+ * unless declared, so a field with no description serializes byte-identically
3086
+ * to the pre-#154 manifest. Surfaces as a field comment in the generated Python.
3087
+ */
3088
+ readonly description?: string;
3026
3089
  }
3027
3090
  /** A key (PK or GSI) template descriptor in the manifest. */
3028
3091
  interface ManifestKey {
@@ -3056,6 +3119,13 @@ interface ManifestEntity {
3056
3119
  readonly key: ManifestKey | null;
3057
3120
  readonly gsis: readonly ManifestGsi[];
3058
3121
  readonly relations: Readonly<Record<string, ManifestRelation>>;
3122
+ /**
3123
+ * Optional human-readable description of the entity (issue #154), from
3124
+ * `@model({ description })`. Pure documentation — absent unless declared, so an
3125
+ * entity with no description serializes byte-identically to the pre-#154
3126
+ * manifest. Surfaces as the generated Python class docstring.
3127
+ */
3128
+ readonly description?: string;
3059
3129
  }
3060
3130
  interface ManifestTable {
3061
3131
  readonly physicalName: string;
@@ -3075,6 +3145,13 @@ interface ParamSpec {
3075
3145
  * descriptors (field name → element param spec). Omitted for scalar params.
3076
3146
  */
3077
3147
  readonly element?: Readonly<Record<string, ParamSpec>>;
3148
+ /**
3149
+ * Optional human-readable description of the parameter (issue #154), from a
3150
+ * `param.*({ description })` placeholder. Pure documentation — absent unless
3151
+ * declared, so a param with no description serializes byte-identically to the
3152
+ * pre-#154 spec. The Python runtime never reads it for execution.
3153
+ */
3154
+ readonly description?: string;
3078
3155
  }
3079
3156
  /** A `begins_with` range condition on a sort key (templated value). */
3080
3157
  interface RangeConditionSpec {
@@ -3183,6 +3260,13 @@ interface QuerySpec {
3183
3260
  * backward-compatible (plan-absent → sequential) fallback.
3184
3261
  */
3185
3262
  readonly executionPlan?: ExecutionPlanSpec;
3263
+ /**
3264
+ * Optional human-readable description of the query (issue #154), from
3265
+ * `defineQuery(..., { description })`. Pure documentation — absent unless
3266
+ * declared, so a query with no description serializes byte-identically to the
3267
+ * pre-#154 spec. Surfaces as the generated Python repository-method docstring.
3268
+ */
3269
+ readonly description?: string;
3186
3270
  }
3187
3271
  type WriteOperationType = 'PutItem' | 'UpdateItem' | 'DeleteItem';
3188
3272
  /**
@@ -3260,6 +3344,14 @@ interface CommandSpec {
3260
3344
  readonly changes?: Readonly<Record<string, string>>;
3261
3345
  /** Optional write condition (subset). */
3262
3346
  readonly condition?: ConditionSpec;
3347
+ /**
3348
+ * Optional human-readable description of the command (issue #154), from
3349
+ * `definePut`/`defineUpdate`/`defineDelete(..., { description })`. Pure
3350
+ * documentation — absent unless declared, so a command with no description
3351
+ * serializes byte-identically to the pre-#154 spec. Surfaces as the generated
3352
+ * Python repository-method docstring.
3353
+ */
3354
+ readonly description?: string;
3263
3355
  }
3264
3356
  /**
3265
3357
  * A declarative `when` guard on a transaction item (issue #46). Compares a
@@ -3610,6 +3702,14 @@ interface QueryContractMethodSpec {
3610
3702
  * call (chunk ≤100). Absent → resolve compositions sequentially (pre-#70).
3611
3703
  */
3612
3704
  readonly compositionPlan?: CompositionPlanSpec;
3705
+ /**
3706
+ * Optional human-readable description of the read use case (issue #154), from the
3707
+ * descriptor's `description`. Pure documentation — absent unless declared, so a
3708
+ * method with no description serializes byte-identically to the pre-#154 spec.
3709
+ * The same string appears in the TS contract IR and (via the SSoT) in any
3710
+ * generated binding, so TS↔Python carry an identical description.
3711
+ */
3712
+ readonly description?: string;
3613
3713
  }
3614
3714
  /**
3615
3715
  * How a contract command method resolves a single key vs. an array of keys to the
@@ -3676,6 +3776,12 @@ interface CommandContractMethodSpec {
3676
3776
  * {@link result} stays `'void'` / `'entity'` and it returns no projected item).
3677
3777
  */
3678
3778
  readonly returnSelection?: Readonly<Record<string, boolean>>;
3779
+ /**
3780
+ * Optional human-readable description of the write use case (issue #154), from
3781
+ * the descriptor's `description`. Pure documentation — absent unless declared, so
3782
+ * a method with no description serializes byte-identically to the pre-#154 spec.
3783
+ */
3784
+ readonly description?: string;
3679
3785
  }
3680
3786
  /**
3681
3787
  * A serialized contract — a keyed public read (`'query'`) or write (`'command'`)
@@ -4721,6 +4827,13 @@ interface ContractMethodOp<Op extends OperationKind = OperationKind> {
4721
4827
  * when the body declares no composition.
4722
4828
  */
4723
4829
  readonly compose?: readonly RecordedCompose[];
4830
+ /**
4831
+ * Optional human-readable description of the use case (issue #154), captured from
4832
+ * the descriptor's `description`. Pure documentation — carried on the op so the
4833
+ * serializer can emit it onto the contract method spec; it never affects the
4834
+ * recorded operation, key, or runtime behaviour.
4835
+ */
4836
+ readonly description?: string;
4724
4837
  }
4725
4838
  /**
4726
4839
  * A recorded External Query composition edge on a contract method op (#63). The
@@ -4803,6 +4916,12 @@ interface QueryMethodSpec<TKey, TParams, TResult, A extends InputArity = InputAr
4803
4916
  * the referenced contract name by identity ({@link contractOfMethodSpec}).
4804
4917
  */
4805
4918
  readonly __methodName?: string;
4919
+ /**
4920
+ * Optional human-readable description of the use case (issue #154), from the
4921
+ * descriptor's `description`. Pure documentation — propagated to the serialized
4922
+ * {@link import('../spec/types.js').QueryContractMethodSpec.description}.
4923
+ */
4924
+ readonly description?: string;
4806
4925
  /** @internal Phantom carrier retaining the formal `QueryMethod` type. */
4807
4926
  readonly __signature?: QueryMethod<TKey, TParams, TResult>;
4808
4927
  }
@@ -4955,6 +5074,12 @@ interface CommandMethodSpec<TKey, TParams, TResult> {
4955
5074
  * at least one stream maintainer; absent otherwise (no regression).
4956
5075
  */
4957
5076
  readonly maintainOutbox?: readonly DerivedMaintainOutbox[];
5077
+ /**
5078
+ * Optional human-readable description of the write use case (issue #154), from
5079
+ * the descriptor's `description`. Pure documentation — propagated to the
5080
+ * serialized {@link import('../spec/types.js').CommandContractMethodSpec.description}.
5081
+ */
5082
+ readonly description?: string;
4958
5083
  /** @internal Phantom carrier retaining the formal `CommandMethod` type. */
4959
5084
  readonly __signature?: CommandMethod<TKey, TParams, TResult>;
4960
5085
  }
@@ -5157,6 +5282,13 @@ interface PublicReadDescriptor {
5157
5282
  readonly key: Readonly<Record<string, unknown>>;
5158
5283
  readonly select: Readonly<Record<string, unknown>>;
5159
5284
  readonly options?: Readonly<Record<string, unknown>>;
5285
+ /**
5286
+ * Optional human-readable description of the read use case (issue #154). Pure
5287
+ * documentation — propagated to the serialized {@link
5288
+ * import('../spec/types.js').QueryContractMethodSpec.description} in
5289
+ * `operations.json`. Omit for unchanged output.
5290
+ */
5291
+ readonly description?: string;
5160
5292
  }
5161
5293
  /** A public **write** descriptor (issue #101): `{ create | update | remove: Model, key, input?, condition?, result?, mode? }`. */
5162
5294
  interface PublicWriteDescriptor {
@@ -5171,6 +5303,13 @@ interface PublicWriteDescriptor {
5171
5303
  readonly options?: unknown;
5172
5304
  };
5173
5305
  readonly mode?: CommandMode;
5306
+ /**
5307
+ * Optional human-readable description of the write use case (issue #154). Pure
5308
+ * documentation — propagated to the serialized {@link
5309
+ * import('../spec/types.js').CommandContractMethodSpec.description} in
5310
+ * `operations.json`. Omit for unchanged output.
5311
+ */
5312
+ readonly description?: string;
5174
5313
  }
5175
5314
  /**
5176
5315
  * A public **composite write** descriptor (issue #101) — the closure-free twin of
@@ -5188,6 +5327,12 @@ interface PublicComposeDescriptor {
5188
5327
  readonly options?: unknown;
5189
5328
  };
5190
5329
  readonly mode?: CommandMode;
5330
+ /**
5331
+ * Optional human-readable description of the composite write use case (issue
5332
+ * #154). Pure documentation — propagated to the serialized {@link
5333
+ * import('../spec/types.js').CommandContractMethodSpec.description}.
5334
+ */
5335
+ readonly description?: string;
5191
5336
  }
5192
5337
 
5193
5338
  /**
@@ -6060,6 +6205,15 @@ interface FieldOptions {
6060
6205
  readonly?: boolean;
6061
6206
  serialize?: (value: unknown) => unknown;
6062
6207
  deserialize?: (value: unknown) => unknown;
6208
+ /**
6209
+ * Optional human-readable description of the field (issue #154). Pure
6210
+ * documentation metadata — it does NOT affect storage, hydration, key handling,
6211
+ * or any runtime behaviour. When present it is propagated to the field entry in
6212
+ * `manifest.json` ({@link ManifestField.description}) and surfaces as a field
6213
+ * comment in the generated Python `types.py`. Absent → byte-for-byte unchanged
6214
+ * output (backward compatible).
6215
+ */
6216
+ description?: string;
6063
6217
  }
6064
6218
  interface FieldMetadata {
6065
6219
  propertyName: string;
@@ -6359,6 +6513,15 @@ interface EntityMetadata {
6359
6513
  * {@link maintainedFrom}.
6360
6514
  */
6361
6515
  kind?: ModelKind;
6516
+ /**
6517
+ * Optional human-readable description of the entity (issue #154), supplied via
6518
+ * `@model({ description })`. Pure documentation metadata — it does NOT affect
6519
+ * storage, keys, or any runtime behaviour. When present it is propagated to the
6520
+ * entity entry in `manifest.json` ({@link ManifestEntity.description}) and
6521
+ * surfaces as the class docstring in the generated Python `types.py`. Absent →
6522
+ * byte-for-byte unchanged output (backward compatible).
6523
+ */
6524
+ description?: string;
6362
6525
  /**
6363
6526
  * Class-level `@maintainedFrom(...)` declarations (issue #152). Non-empty only on
6364
6527
  * a `materializedView` / `sparseView` model; each is one source slice the view
@@ -6482,4 +6645,4 @@ interface CdcEmulatorOptions {
6482
6645
  }
6483
6646
  type ShardId = string;
6484
6647
 
6485
- 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 ContractCommandParams 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, type BatchPutRequest as aA, type BatchResult as aB, type BatchWriteRequest as aC, CONTRACT_RANGE_FANOUT_CONCURRENCY as aD, type CdcMode as aE, type Change as aF, type ChangeBatch as aG, type ChangeEventName as aH, type ClockMode as aI, type CollectionEffect as aJ, type CollectionOptions as aK, type Column as aL, type ColumnMap as aM, type CommandContractMethodSpec as aN, type CommandInputShape as aO, type CommandMethod as aP, type CommandPlan as aQ, type CommandResolutionTarget as aR, type CommandResultKind as aS, type CommandSelectShape as aT, type CompiledFragment as aU, type ComposeSpec as aV, type CondSlot as aW, type ConditionCheckInput as aX, type Connection as aY, type ContractCallSignature as aZ, type ContractCardinality as a_, type DefinitionMap as aa, type OperationDefinition as ab, type WriteDefinitionOptions as ac, type PartialQueryKeyOf as ad, type StrictSelectSpec as ae, type EntityInput as af, type UniqueQueryKeyOf as ag, type EntityRef as ah, type ConditionInput as ai, type QueryModelContract as aj, type QueryMethodSpec as ak, type CommandModelContract as al, type CommandMethodSpec as am, type ContractSpec as an, type QuerySpec as ao, type CommandSpec as ap, type ContextSpec as aq, type OperationsDocument as ar, type AnyOperationDefinition as as, type BridgeBundle as at, type ConditionSpec as au, type AggregateMetadata as av, type BatchDeleteRequest as aw, type BatchGetOptions as ax, type BatchGetRequest as ay, BatchGetResult as az, type WriteResult as b, type MutateOptions as b$, type ContractCommandResult as b0, type ContractComposeNode as b1, type ContractFromRef as b2, type ContractInputArity as b3, type ContractItem as b4, type ContractKeyFieldRef as b5, type ContractKeyInput as b6, type ContractKeyRef as b7, type ContractKeySpec as b8, type ContractKind as b9, type GsiDefinitionMarker as bA, type GsiOptions as bB, type IdempotencyEffect as bC, type InProcessWriteDescriptor as bD, type InputArity as bE, type KeyDefinitionMarker as bF, type KeySegment as bG, type KeySlot as bH, type KeyStructure as bI, type KeyedResult as bJ, LIFECYCLE_CONTRACT_MARKER as bK, type LifecycleContract as bL, type LifecycleEffects as bM, type LiteralParam as bN, type MaintainItem as bO, type MaintainTrigger as bP, type MaintenanceGraph as bQ, type ManifestEntity as bR, type ManifestField as bS, type ManifestFieldType as bT, type ManifestGsi as bU, type ManifestKey as bV, type ManifestRelation as bW, type ManifestTable as bX, type MembershipEffect as bY, type ModelRef as bZ, type MutateMode as b_, type ContractMethodOp as ba, type ContractParamRef as bb, type ContractQueryParams as bc, type ContractResolution as bd, type CounterAggregate as be, type CounterEffect as bf, type CtxBase as bg, DEFAULT_MAX_ATTEMPTS as bh, DEFAULT_RETRY_POLICY as bi, type DeleteOptions as bj, type DeriveEffect as bk, type DerivedEdgeWrite as bl, type DerivedUpdate as bm, type DescriptorBinding as bn, ENTITY_WRITES_MARKER as bo, type EdgeEffect as bp, type EffectPath as bq, type EmbeddedMetadata as br, type EmitEffect as bs, type EntityWritesDefinition as bt, type EntityWritesShape as bu, type ExecutableCommandContract as bv, type ExecutableQueryContract as bw, type FilterInput as bx, type FilterSpec as by, type FragmentInput as bz, type DeleteInput as c, type ViewSourceSlice as c$, type MutateParallelResult as c0, type MutateTransactionResult as c1, type MutationBody as c2, type MutationDescriptorMap as c3, type MutationFragment as c4, type MutationInputProxy as c5, type MutationInputRef as c6, type MutationIntent as c7, type NumberParam as c8, type OperationKind as c9, type RelationConsistency as cA, type RelationLimitOptions as cB, type RelationPattern as cC, type RelationProjection as cD, type RelationReadOptions as cE, type RelationSelect as cF, type RelationSpec as cG, type RelationUpdateMode as cH, type RelationWriteOptions as cI, type RequiresEffect as cJ, type Resolution as cK, type RetryInfo as cL, type RetryOperationKind as cM, SPEC_VERSION as cN, type SegmentSpec as cO, type SegmentedKey as cP, type SelectBuilder as cQ, type SelectOf as cR, type SnapshotEffect as cS, type StartingPosition as cT, type StreamViewType as cU, type StringParam as cV, TransactionContext as cW, type TransactionItemType as cX, type UniqueEffect as cY, type Updatable as cZ, type UpdateOptions as c_, type OperationSpec as ca, type ParallelOpResult as cb, type ParamKind as cc, type ParamSpec as cd, type ParamStructure as ce, type PersistCtx as cf, type PersistOrigin as cg, type PlannedCommandMethod as ch, type ProjectionMap as ci, type ProjectionTransformOp as cj, type PutOptions as ck, type QueryContractMethodSpec as cl, type QueryEnvelopeResult as cm, type QueryKeyOf as cn, type QueryMethod as co, type QueryResult as cp, type RangeConditionSpec as cq, type ReadEnvelope as cr, type ReadOpCtx as cs, type ReadOpKind as ct, type ReadOperationType as cu, type ReadRouteDescriptor as cv, type ReadRouteOptions as cw, type ReadRouteResult as cx, type RecordedCompose as cy, type RelationBuilder as cz, type BatchWriteExecItem as d, mintContractParamRef as d$, type WhenSpec as d0, type WriteCtx as d1, type WriteDescriptor as d2, type WriteEnvelope as d3, type WriteInput as d4, type WriteKind as d5, type WriteLifecyclePhase as d6, type WriteMiddleware as d7, type WriteOperationType as d8, type WriteRecorder as d9, getEntityWrites as dA, gsi as dB, identity as dC, isColumn as dD, isCommandModelContract as dE, isCommandPlan as dF, isContractComposeNode as dG, isContractFromRef as dH, isContractKeyFieldRef as dI, isContractKeyRef as dJ, isContractParamRef as dK, isEntityWritesDefinition as dL, isKeySegment as dM, isLifecycleContract as dN, isMaintainTrigger as dO, isMutationFragment as dP, isMutationInputRef as dQ, isParam as dR, isPlannedCommandMethod as dS, isQueryModelContract as dT, isRetryableError as dU, isRetryableTransactionCancellation as dV, k as dW, key as dX, lifecyclePhaseForIntent as dY, maintainTrigger as dZ, mintContractKeyFieldRef as d_, type WriteResultProjection as da, attachModelClass as db, buildDeleteInput as dc, buildMaintenanceGraph as dd, buildPutInput as de, buildUpdateInput as df, collectViewDefinitions as dg, compileFragment as dh, compileMutationPlan as di, compileSingleFragmentPlan as dj, cond as dk, contractOfMethodSpec as dl, definePlan as dm, entityWrites as dn, executeBatchGet as dp, executeBatchWrite as dq, executeCommandMethod as dr, executeDelete as ds, executeKeyedBatchGet as dt, executePut as du, executeQueryMethod as dv, executeRangeFanout as dw, executeTransaction as dx, executeUpdate as dy, from as dz, type BatchExecOptions as e, mutation as e0, param as e1, preview as e2, publicCommandModel as e3, publicQueryModel as e4, query as e5, resolveLifecycle as e6, wholeKeysSentinel as e7, 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 };
6648
+ 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphddb",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Graph data modeling on DynamoDB with adjacency list pattern",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",