@prisma/orm-framework 8.0.0-rc.13-dev.11 → 8.0.0-rc.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/{authoring-DhT5W5e0.d.mts → authoring-BfEjYZpO.d.mts} +8 -4
  2. package/dist/authoring-BfEjYZpO.d.mts.map +1 -0
  3. package/dist/{authoring-DhgHAcho.mjs → authoring-CL-ZB448.mjs} +14 -3
  4. package/dist/authoring-CL-ZB448.mjs.map +1 -0
  5. package/dist/{codec-D5McQin0.d.mts → codec-BEFSHNvn.d.mts} +2 -2
  6. package/dist/{codec-D5McQin0.d.mts.map → codec-BEFSHNvn.d.mts.map} +1 -1
  7. package/dist/codec-BWFxotS7.mjs.map +1 -1
  8. package/dist/{codec-types-C4Bx6jXr-C2MBP0-0.d.mts → codec-types-DjklYAo0-DL7hUdjg.d.mts} +15 -3
  9. package/dist/codec-types-DjklYAo0-DL7hUdjg.d.mts.map +1 -0
  10. package/dist/{components-WdVKzR2I.d.mts → components-CY9U7x11.d.mts} +4 -4
  11. package/dist/{components-WdVKzR2I.d.mts.map → components-CY9U7x11.d.mts.map} +1 -1
  12. package/dist/components.d.mts +16 -16
  13. package/dist/components.mjs +6 -6
  14. package/dist/components__authoring.d.mts +4 -4
  15. package/dist/components__authoring.mjs +3 -3
  16. package/dist/components__codec.d.mts +3 -3
  17. package/dist/components__codec.mjs +1 -1
  18. package/dist/components__components.d.mts +3 -3
  19. package/dist/components__control.d.mts +3 -3
  20. package/dist/components__control.mjs +2 -2
  21. package/dist/components__emission.d.mts +3 -3
  22. package/dist/components__execution.d.mts +1 -1
  23. package/dist/components__psl-ast.d.mts +3 -3
  24. package/dist/components__runtime.d.mts +1 -1
  25. package/dist/components__runtime.mjs +1 -1
  26. package/dist/{config-types-ChFDZpdy.d.mts → config-types-7cVcsDOV.d.mts} +6 -6
  27. package/dist/{config-types-ChFDZpdy.d.mts.map → config-types-7cVcsDOV.d.mts.map} +1 -1
  28. package/dist/config.d.mts +1 -1
  29. package/dist/config__config-types.d.mts +1 -1
  30. package/dist/contract-authoring.d.mts +3 -3
  31. package/dist/contract-authoring.mjs +1 -1
  32. package/dist/{control-BCjP3x_F.d.mts → control-CuhULO0T.d.mts} +18 -8
  33. package/dist/control-CuhULO0T.d.mts.map +1 -0
  34. package/dist/{control-CJHZj7vF.mjs → control-DdocW8ZP.mjs} +8 -5
  35. package/dist/control-DdocW8ZP.mjs.map +1 -0
  36. package/dist/{declarations-BrSntcPa-Bm0uutX8.mjs → declarations-BrSntcPa-BUYk6wxW.mjs} +2 -2
  37. package/dist/{declarations-BrSntcPa-Bm0uutX8.mjs.map → declarations-BrSntcPa-BUYk6wxW.mjs.map} +1 -1
  38. package/dist/emission-JIkHzrsz.d.mts +2 -0
  39. package/dist/{emission-types-ByNBI5Lx-Cu73cjFg.d.mts → emission-types-Dw6MEgKF-C3SqCXsF.d.mts} +4 -4
  40. package/dist/{emission-types-ByNBI5Lx-Cu73cjFg.d.mts.map → emission-types-Dw6MEgKF-C3SqCXsF.d.mts.map} +1 -1
  41. package/dist/errors.d.mts +1 -1
  42. package/dist/errors__execution.d.mts +1 -1
  43. package/dist/{execution-BcrxxJSJ.d.mts → execution-BFJC3QTj.d.mts} +2 -2
  44. package/dist/{execution-BcrxxJSJ.d.mts.map → execution-BFJC3QTj.d.mts.map} +1 -1
  45. package/dist/{execution-DEsldtrH.d.mts → execution-I2WAG4tH.d.mts} +2 -2
  46. package/dist/{execution-DEsldtrH.d.mts.map → execution-I2WAG4tH.d.mts.map} +1 -1
  47. package/dist/{framework-authoring-BEHHwGOv-mQMbHGI_.d.mts → framework-authoring-AkdL38SR-DRSNWmJT.d.mts} +3 -3
  48. package/dist/{framework-authoring-BEHHwGOv-mQMbHGI_.d.mts.map → framework-authoring-AkdL38SR-DRSNWmJT.d.mts.map} +1 -1
  49. package/dist/{framework-components-PQoZtnmv-B_lFgPip.d.mts → framework-components-DFsCsKDA-BzmfLX5I.d.mts} +5 -5
  50. package/dist/{framework-components-PQoZtnmv-B_lFgPip.d.mts.map → framework-components-DFsCsKDA-BzmfLX5I.d.mts.map} +1 -1
  51. package/dist/ids.d.mts +1 -1
  52. package/dist/{parse-CfZKsx8i-D2Oz7q-X.mjs → parse-CfZKsx8i-DpxGIwhF.mjs} +2 -2
  53. package/dist/{parse-CfZKsx8i-D2Oz7q-X.mjs.map → parse-CfZKsx8i-DpxGIwhF.mjs.map} +1 -1
  54. package/dist/{parse-DZRO_CK2-Dxl0WwMz.d.mts → parse-DZRO_CK2-BtDklsaV.d.mts} +5 -5
  55. package/dist/{parse-DZRO_CK2-Dxl0WwMz.d.mts.map → parse-DZRO_CK2-BtDklsaV.d.mts.map} +1 -1
  56. package/dist/{psl-ast-CjO3JX8O-CyqkfgDM.d.mts → psl-ast-BjC549ky-CD7J2H0j.d.mts} +3 -3
  57. package/dist/{psl-ast-CjO3JX8O-CyqkfgDM.d.mts.map → psl-ast-BjC549ky-CD7J2H0j.d.mts.map} +1 -1
  58. package/dist/psl-ast-C90I4nkm.d.mts +2 -0
  59. package/dist/psl-parser.d.mts +7 -7
  60. package/dist/psl-parser.mjs +2 -2
  61. package/dist/psl-parser__format.mjs +2 -2
  62. package/dist/psl-parser__interpret.d.mts +7 -6
  63. package/dist/psl-parser__interpret.d.mts.map +1 -1
  64. package/dist/psl-parser__interpret.mjs +6 -3
  65. package/dist/psl-parser__interpret.mjs.map +1 -1
  66. package/dist/psl-parser__syntax.d.mts +1 -1
  67. package/dist/psl-parser__syntax.mjs +2 -2
  68. package/dist/psl-printer.d.mts +4 -4
  69. package/dist/psl-printer.mjs +1 -1
  70. package/dist/{resolve-codec-DWEkC3ya-DRYIta04.mjs → resolve-codec-C2_QCA7R-B0SgAw45.mjs} +4 -3
  71. package/dist/resolve-codec-C2_QCA7R-B0SgAw45.mjs.map +1 -0
  72. package/dist/{runtime-CQ9-3czC.d.mts → runtime-BWD7UzMV.d.mts} +3 -3
  73. package/dist/{runtime-CQ9-3czC.d.mts.map → runtime-BWD7UzMV.d.mts.map} +1 -1
  74. package/dist/{runtime-CpojufYS.mjs → runtime-DhUFoLHx.mjs} +22 -10
  75. package/dist/runtime-DhUFoLHx.mjs.map +1 -0
  76. package/dist/{symbol-table-ikmivfwq-ARLQDQxi.d.mts → symbol-table-ikmivfwq-u2--jZQG.d.mts} +4 -4
  77. package/dist/{symbol-table-ikmivfwq-ARLQDQxi.d.mts.map → symbol-table-ikmivfwq-u2--jZQG.d.mts.map} +1 -1
  78. package/dist/{temporal-presets-Cj9AecXJ-gUtNP82K.d.mts → temporal-presets-CPQXhVhW-C05kwx7j.d.mts} +3 -3
  79. package/dist/{temporal-presets-Cj9AecXJ-gUtNP82K.d.mts.map → temporal-presets-CPQXhVhW-C05kwx7j.d.mts.map} +1 -1
  80. package/dist/{temporal-presets-Cqi6Fnl--DNtY0oCw.mjs → temporal-presets-MavBeaJC-BcqWVoBB.mjs} +24 -15
  81. package/dist/{temporal-presets-Cqi6Fnl--DNtY0oCw.mjs.map → temporal-presets-MavBeaJC-BcqWVoBB.mjs.map} +1 -1
  82. package/dist/{types-import-spec-B15QNHY_-BkWCRWEb.d.mts → types-import-spec-DmTizf98-qPzF424S.d.mts} +3 -3
  83. package/dist/{types-import-spec-B15QNHY_-BkWCRWEb.d.mts.map → types-import-spec-DmTizf98-qPzF424S.d.mts.map} +1 -1
  84. package/package.json +15 -15
  85. package/dist/authoring-DhT5W5e0.d.mts.map +0 -1
  86. package/dist/authoring-DhgHAcho.mjs.map +0 -1
  87. package/dist/codec-types-C4Bx6jXr-C2MBP0-0.d.mts.map +0 -1
  88. package/dist/control-BCjP3x_F.d.mts.map +0 -1
  89. package/dist/control-CJHZj7vF.mjs.map +0 -1
  90. package/dist/emission-DH7lXuzu.d.mts +0 -2
  91. package/dist/psl-ast-f9IZqFG7.d.mts +0 -2
  92. package/dist/resolve-codec-DWEkC3ya-DRYIta04.mjs.map +0 -1
  93. package/dist/runtime-CpojufYS.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-CJHZj7vF.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/control.mjs"],"sourcesContent":["import { n as runtimeError } from \"./runtime-error-BA9d7XjZ.mjs\";\nimport { a as createDataTypeLookup, n as materializeCodec, r as resolveCodecDescriptorOrThrow, t as CONTRACT_CODEC_DESCRIPTOR_MISSING } from \"./resolve-codec-DWEkC3ya.mjs\";\nimport { n as aggregateDescriptorKey, r as isAggregateDescriptor, t as mergeCapabilityMatrices } from \"./capabilities-ByvrTdNS.mjs\";\nimport { D as mergeAuthoringAttributeSpecs, O as mergeAuthoringNamespaces, T as isLoweringEntryKey, c as assertNoCrossRegistryCollisions, d as collectContributedDescriptorPaths, f as collectScalarTypeConstructors, l as assertResolvableTypeConstructorTemplates, s as timestampNowControlDescriptor } from \"./temporal-presets-Cqi6Fnl-.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/control/contract-snapshot-layout.ts\nconst CONTRACT_SNAPSHOTS_DIRNAME = \"snapshots\";\nconst STORAGE_HASH_PATTERN = /^[0-9a-f]{64}$/;\n/** Validate a storage hash for use as a directory name. */\nfunction storageHashHex(storageHash) {\n\tif (!STORAGE_HASH_PATTERN.test(storageHash)) throw new InternalError(`Invalid storage hash \"${storageHash}\": expected 64 lowercase hex characters`);\n\treturn storageHash;\n}\n/** Module specifier for the store's `contract.json`, POSIX separators. */\nfunction contractSnapshotJsonSpecifier(snapshotsImportPath, storageHash) {\n\treturn `${snapshotsImportPath}/${storageHashHex(storageHash)}/contract.json`;\n}\n/** Type-only module specifier for the store's `contract.d.ts` (no extension). */\nfunction contractSnapshotTypesSpecifier(snapshotsImportPath, storageHash) {\n\treturn `${snapshotsImportPath}/${storageHashHex(storageHash)}/contract`;\n}\n//#endregion\n//#region src/control/control-capabilities.ts\nfunction hasMigrations(target) {\n\treturn \"migrations\" in target && !!target[\"migrations\"];\n}\nfunction hasSchemaView(instance) {\n\treturn \"toSchemaView\" in instance && typeof instance[\"toSchemaView\"] === \"function\";\n}\nfunction hasPslContractInfer(instance) {\n\treturn \"inferPslContract\" in instance && typeof instance[\"inferPslContract\"] === \"function\";\n}\nfunction hasPslContractBuild(instance) {\n\treturn \"buildPslContract\" in instance && typeof Reflect.get(instance, \"buildPslContract\") === \"function\";\n}\nfunction hasOperationPreview(instance) {\n\treturn \"toOperationPreview\" in instance && typeof instance[\"toOperationPreview\"] === \"function\";\n}\nfunction hasSchemaSubjectClassifier(instance) {\n\treturn \"classifySubjectGranularity\" in instance && typeof instance[\"classifySubjectGranularity\"] === \"function\" && \"classifyEntityKind\" in instance && typeof instance[\"classifyEntityKind\"] === \"function\";\n}\n//#endregion\n//#region src/control/control-operation-results.ts\nconst VERIFY_CODE_MARKER_MISSING = \"CONTRACT.MARKER_MISSING\";\nconst VERIFY_CODE_HASH_MISMATCH = \"CONTRACT.MARKER_MISMATCH\";\nconst VERIFY_CODE_TARGET_MISMATCH = \"CONTRACT.TARGET_MISMATCH\";\nconst VERIFY_CODE_SCHEMA_FAILURE = \"CONTRACT.SCHEMA_VERIFICATION_FAILED\";\n//#endregion\n//#region src/control/control-schema-view.ts\nvar SchemaTreeNode = class {\n\tkind;\n\tid;\n\tlabel;\n\tmeta;\n\tchildren;\n\tconstructor(options) {\n\t\tthis.kind = options.kind;\n\t\tthis.id = options.id;\n\t\tthis.label = options.label;\n\t\tif (options.meta !== void 0) this.meta = options.meta;\n\t\tif (options.children !== void 0) this.children = options.children;\n\t\tObject.freeze(this);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.visit(this);\n\t}\n};\n//#endregion\n//#region src/control/control-spaces.ts\n/**\n* Canonical control-plane identifiers for contract spaces.\n*\n* A contract space is the disjoint `(contract.json, migration-graph)` unit\n* the per-space planner / runner / verifier (project: extension contract\n* spaces, TML-2397) operates on. The application owns one well-known\n* space — the value below — and each loaded extension that contributes\n* schema owns a uniquely-named space.\n*\n* Lives in `framework-components/control` so every layer that has to\n* reason about space identity (the migration tooling, the SQL runtime's\n* marker reader, target-side statement builders, target-side adapters)\n* can import a single value rather than duplicating the literal. Raw\n* `'app'` string literals in framework / target / runtime / adapter\n* source code are forbidden and policed by\n* `scripts/lint-app-space-id.mjs` (wired into `pnpm lint:deps`).\n*\n* @see specs/framework-mechanism.spec.md § 3 — Layout convention (γ).\n*/\nconst APP_SPACE_ID = \"app\";\n//#endregion\n//#region src/control/control-stack.ts\nfunction addUniqueId(ids, seen, id) {\n\tif (!seen.has(id)) {\n\t\tids.push(id);\n\t\tseen.add(id);\n\t}\n}\nfunction assertUniqueCodecOwner(options) {\n\tconst existingOwner = options.owners.get(options.codecId);\n\tif (existingOwner !== void 0) throw new InternalError(`Duplicate ${options.entityLabel} for codecId \"${options.codecId}\". Descriptor \"${options.descriptorId}\" conflicts with \"${existingOwner}\". Each codecId can only have one ${options.entityOwnershipLabel}.`);\n}\nfunction extractCodecTypeImports(descriptors) {\n\tconst imports = [];\n\tfor (const descriptor of descriptors) {\n\t\tconst codecTypes = descriptor.types?.codecTypes;\n\t\tif (codecTypes?.import) imports.push(codecTypes.import);\n\t\tif (codecTypes?.typeImports) imports.push(...codecTypes.typeImports);\n\t}\n\treturn imports;\n}\nfunction extractQueryOperationTypeImports(descriptors) {\n\tconst imports = [];\n\tfor (const descriptor of descriptors) {\n\t\tconst queryOperationTypes = descriptor.types?.queryOperationTypes;\n\t\tif (queryOperationTypes?.import) imports.push(queryOperationTypes.import);\n\t}\n\treturn imports;\n}\nfunction extractComponentIds(family, target, adapter, extensions) {\n\tconst ids = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\taddUniqueId(ids, seen, family.id);\n\taddUniqueId(ids, seen, target.id);\n\tif (adapter) addUniqueId(ids, seen, adapter.id);\n\tfor (const ext of extensions) addUniqueId(ids, seen, ext.id);\n\treturn ids;\n}\nfunction assembleAuthoringContributions(descriptors) {\n\tconst field = {};\n\tconst type = {};\n\tconst entityTypes = {};\n\tconst pslBlockDescriptors = {};\n\tconst modelAttributes = {};\n\tconst attributeSpecs = {\n\t\tmodel: {},\n\t\tfield: {}\n\t};\n\tconst attributeSpecOwners = /* @__PURE__ */ new Map();\n\tconst pathOwners = /* @__PURE__ */ new Map();\n\tconst claimContributedPaths = (namespace, descriptorKind, label, descriptorId) => {\n\t\tfor (const path of collectContributedDescriptorPaths(namespace, descriptorKind)) {\n\t\t\tconst key = `${label}:${path}`;\n\t\t\tconst existingOwner = pathOwners.get(key);\n\t\t\tif (existingOwner !== void 0) throw new InternalError(`Duplicate authoring ${label} helper \"${path}\". Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`);\n\t\t\tpathOwners.set(key, descriptorId);\n\t\t}\n\t};\n\tlet valueObjectStorageDeclaration;\n\tfor (const descriptor of descriptors) {\n\t\tconst descriptorId = descriptor.id ?? \"<unknown>\";\n\t\tconst declaredValueObjectStorageType = descriptor.authoring?.valueObjectStorageType;\n\t\tif (declaredValueObjectStorageType !== void 0) {\n\t\t\tif (valueObjectStorageDeclaration !== void 0) throw new InternalError(`Duplicate authoring valueObjectStorageType declaration. Descriptor \"${descriptorId}\" conflicts with \"${valueObjectStorageDeclaration.ownerId}\". Exactly one composed component may declare the value-object storage type.`);\n\t\t\tvalueObjectStorageDeclaration = {\n\t\t\t\tname: declaredValueObjectStorageType,\n\t\t\t\townerId: descriptorId\n\t\t\t};\n\t\t}\n\t\tif (descriptor.authoring?.field) {\n\t\t\tclaimContributedPaths(descriptor.authoring.field, \"fieldPreset\", \"field\", descriptorId);\n\t\t\tmergeAuthoringNamespaces(field, descriptor.authoring.field, [], \"fieldPreset\", \"field\");\n\t\t}\n\t\tif (descriptor.authoring?.type) {\n\t\t\tclaimContributedPaths(descriptor.authoring.type, \"typeConstructor\", \"type\", descriptorId);\n\t\t\tassertResolvableTypeConstructorTemplates(descriptor.authoring.type, descriptorId);\n\t\t\tmergeAuthoringNamespaces(type, descriptor.authoring.type, [], \"typeConstructor\", \"type\");\n\t\t}\n\t\tif (descriptor.authoring?.entityTypes) {\n\t\t\tclaimContributedPaths(descriptor.authoring.entityTypes, \"entity\", \"entity\", descriptorId);\n\t\t\tmergeAuthoringNamespaces(entityTypes, descriptor.authoring.entityTypes, [], \"entity\", \"entity\");\n\t\t}\n\t\tif (descriptor.authoring?.pslBlockDescriptors) {\n\t\t\tclaimContributedPaths(descriptor.authoring.pslBlockDescriptors, \"pslBlock\", \"pslBlock\", descriptorId);\n\t\t\tmergeAuthoringNamespaces(pslBlockDescriptors, descriptor.authoring.pslBlockDescriptors, [], \"pslBlock\", \"pslBlock\");\n\t\t}\n\t\tif (descriptor.authoring?.modelAttributes) mergeAuthoringNamespaces(modelAttributes, descriptor.authoring.modelAttributes, [], \"modelAttribute\", \"modelAttribute\");\n\t\tif (descriptor.authoring?.attributeSpecs) mergeAuthoringAttributeSpecs(attributeSpecs, descriptor.authoring.attributeSpecs, descriptorId, attributeSpecOwners);\n\t}\n\tconst fieldNamespace = field;\n\tconst typeNamespace = type;\n\tconst entityTypeNamespace = entityTypes;\n\tconst pslBlockDescriptorNamespace = blindCast(pslBlockDescriptors);\n\tconst modelAttributeNamespace = blindCast(modelAttributes);\n\tassertNoCrossRegistryCollisions(typeNamespace, fieldNamespace, entityTypeNamespace, pslBlockDescriptorNamespace, modelAttributeNamespace);\n\tif (valueObjectStorageDeclaration !== void 0 && !collectScalarTypeConstructors(typeNamespace).has(valueObjectStorageDeclaration.name)) throw new InternalError(`Invalid authoring valueObjectStorageType \"${valueObjectStorageDeclaration.name}\" declared by descriptor \"${valueObjectStorageDeclaration.ownerId}\". The name must be a top-level bare-eligible type constructor in the assembled authoring namespace.`);\n\treturn {\n\t\tdataTypes: assembleAuthoringDataTypes(descriptors),\n\t\tfield: fieldNamespace,\n\t\ttype: typeNamespace,\n\t\tentityTypes: entityTypeNamespace,\n\t\tpslBlockDescriptors: pslBlockDescriptorNamespace,\n\t\tmodelAttributes: modelAttributeNamespace,\n\t\tattributeSpecs,\n\t\t...valueObjectStorageDeclaration !== void 0 ? { valueObjectStorageType: valueObjectStorageDeclaration.name } : {}\n\t};\n}\n/** Collect every data type the composed components register, refusing two declarations of one id. */\nfunction assembleDataTypes(descriptors) {\n\tconst declared = [];\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const descriptor of descriptors) {\n\t\tconst contributedBy = descriptor.id ?? \"<unknown>\";\n\t\tfor (const type of descriptor.dataTypes ?? []) {\n\t\t\tconst existingOwner = owners.get(type.id);\n\t\t\tif (existingOwner !== void 0) throw runtimeError(\"CONTRACT.DATA_TYPE_DUPLICATE\", `Duplicate data type \"${type.id}\". Component \"${contributedBy}\" conflicts with \"${existingOwner}\". Each data type has exactly one owner across the composed stack.`, {\n\t\t\t\tdataType: type.id,\n\t\t\t\tcontributedBy,\n\t\t\t\towner: existingOwner\n\t\t\t});\n\t\t\towners.set(type.id, contributedBy);\n\t\t\tdeclared.push({\n\t\t\t\ttype,\n\t\t\t\tcontributedBy\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\tlookup: createDataTypeLookup(declared.map((entry) => entry.type)),\n\t\tdeclared\n\t};\n}\n/** Merge every component's PSL support for its data types, refusing two claims on one key. */\nfunction assembleAuthoringDataTypes(descriptors) {\n\tconst merged = {};\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const descriptor of descriptors) {\n\t\tconst contributedBy = descriptor.id ?? \"<unknown>\";\n\t\tfor (const [key, entry] of Object.entries(descriptor.authoring?.dataTypes ?? {})) {\n\t\t\tconst existingOwner = owners.get(key);\n\t\t\tif (existingOwner !== void 0) throw runtimeError(\"CONTRACT.DATA_TYPE_ENTRY_DUPLICATE\", `Duplicate authoring entry for \"${key}\". Component \"${contributedBy}\" conflicts with \"${existingOwner}\".`, {\n\t\t\t\tkey,\n\t\t\t\tcontributedBy,\n\t\t\t\towner: existingOwner\n\t\t\t});\n\t\t\towners.set(key, contributedBy);\n\t\t\tmerged[key] = entry;\n\t\t}\n\t}\n\treturn merged;\n}\n/**\n* The four things assembly checks across packs, each naming the component and the id at fault:\n*\n* 1. every codec names a registered data type;\n* 2. every authoring entry, and every type a cast takes values of, names a registered data type;\n* 3. no two entries claim one tag or one plain form;\n* 4. every type a cast takes values of can be written, because a cast from a type nobody can write\n* is never exercised.\n*/\nfunction enforceDataTypeInvariants(input) {\n\tconst unregistered = (contributedBy, id, what) => {\n\t\tthrow runtimeError(\"CONTRACT.DATA_TYPE_UNREGISTERED\", `${what} names data type \"${id}\", which no component registers. Contributed by \"${contributedBy}\".`, {\n\t\t\tdataType: id,\n\t\t\tcontributedBy\n\t\t});\n\t};\n\tfor (const codec of input.codecs) if (!input.lookup.has(codec.dataType)) unregistered(codec.contributedBy, codec.dataType, `Codec \"${codec.codecId}\"`);\n\tfor (const { key, entry, contributedBy } of input.authoringEntries) {\n\t\tif (isLoweringEntryKey(key)) continue;\n\t\tif (!input.lookup.has(key)) unregistered(contributedBy, key, \"Authoring entry\");\n\t\tif (entry.written.kind === \"plain\" && entry.written.syntax === \"number\") {\n\t\t\tfor (const classified of entry.written.types) if (!input.lookup.has(classified)) unregistered(contributedBy, classified, `The classifier of authoring entry \"${key}\"`);\n\t\t}\n\t}\n\tconst writable = new Set(input.authoringEntries.flatMap(({ key, entry }) => isLoweringEntryKey(key) ? [] : [key, ...entry.written.kind === \"plain\" && entry.written.syntax === \"number\" ? entry.written.types : []]));\n\tfor (const { type, contributedBy } of input.declaredTypes) {\n\t\tconst sources = [...Object.keys(type.casts), ...type.listCast?.of ?? []];\n\t\tfor (const source of sources) {\n\t\t\tif (!input.lookup.has(source)) unregistered(contributedBy, source, `The casts of data type \"${type.id}\"`);\n\t\t\tif (!writable.has(source)) throw runtimeError(\"CONTRACT.DATA_TYPE_NOT_WRITABLE\", `Data type \"${type.id}\" casts from \"${source}\", which no contract source can write, so the cast is never exercised. Contributed by \"${contributedBy}\".`, {\n\t\t\t\tdataType: type.id,\n\t\t\t\tsource,\n\t\t\t\tcontributedBy\n\t\t\t});\n\t\t}\n\t}\n\tconst claimants = /* @__PURE__ */ new Map();\n\tfor (const { key, entry, contributedBy } of input.authoringEntries) {\n\t\tconst written = entry.written;\n\t\tconst claim = written.kind === \"tag\" ? `tag \"${written.tag}\"` : `plain ${written.syntax}`;\n\t\tconst existing = claimants.get(claim);\n\t\tif (existing !== void 0) throw runtimeError(\"CONTRACT.DATA_TYPE_WRITTEN_FORM_DUPLICATE\", `Two authoring entries claim the ${claim}: \"${key}\" from \"${contributedBy}\" conflicts with \"${existing.key}\" from \"${existing.contributedBy}\".`, {\n\t\t\tclaim,\n\t\t\tkey,\n\t\t\tcontributedBy,\n\t\t\towner: existing.key,\n\t\t\townerContributedBy: existing.contributedBy\n\t\t});\n\t\tclaimants.set(claim, {\n\t\t\tkey,\n\t\t\tcontributedBy\n\t\t});\n\t}\n}\nfunction assembleControlMutationDefaults(descriptors) {\n\tconst defaultFunctionRegistry = /* @__PURE__ */ new Map();\n\tconst functionOwners = /* @__PURE__ */ new Map();\n\tconst generatorMap = /* @__PURE__ */ new Map();\n\tconst generatorOwners = /* @__PURE__ */ new Map();\n\tfor (const descriptor of descriptors) {\n\t\tconst contributions = descriptor.controlMutationDefaults;\n\t\tif (!contributions) continue;\n\t\tconst descriptorId = descriptor.id ?? \"<unknown>\";\n\t\tfor (const generatorDescriptor of contributions.generatorDescriptors) {\n\t\t\tconst existingOwner = generatorOwners.get(generatorDescriptor.id);\n\t\t\tif (existingOwner !== void 0) throw new InternalError(`Duplicate mutation default generator id \"${generatorDescriptor.id}\". Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`);\n\t\t\tgeneratorMap.set(generatorDescriptor.id, generatorDescriptor);\n\t\t\tgeneratorOwners.set(generatorDescriptor.id, descriptorId);\n\t\t}\n\t\tfor (const [functionName, handler] of contributions.defaultFunctionRegistry) {\n\t\t\tconst existingOwner = functionOwners.get(functionName);\n\t\t\tif (existingOwner !== void 0) throw new InternalError(`Duplicate mutation default function \"${functionName}\". Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`);\n\t\t\tdefaultFunctionRegistry.set(functionName, handler);\n\t\t\tfunctionOwners.set(functionName, descriptorId);\n\t\t}\n\t}\n\treturn {\n\t\tdefaultFunctionRegistry,\n\t\tgeneratorDescriptors: Array.from(generatorMap.values())\n\t};\n}\n/**\n* Collect every contributed {@link AggregateDescriptor} across the composed components, rejecting malformed shapes and second claims on one `(operation, input)` overload.\n*\n* Both planes read the same contribution slot: emission derives result types from these descriptors, and family runtimes build their resolution registry from them. Rejections are user-facing — an extension author's bad contribution surfaces here first, during `contract emit` — so a malformed shape raises `CONTRACT.AGGREGATE_DESCRIPTOR_INVALID` and a second claim raises `CONTRACT.AGGREGATE_DESCRIPTOR_DUPLICATE`, each naming the contributing component.\n*/\nfunction collectAggregateDescriptors(descriptors) {\n\tconst collected = [];\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const descriptor of descriptors) {\n\t\tconst descriptorId = descriptor.id ?? \"<unknown>\";\n\t\tfor (const contributed of descriptor.types?.aggregateDescriptors ?? []) {\n\t\t\tif (!isAggregateDescriptor(contributed)) throw runtimeError(\"CONTRACT.AGGREGATE_DESCRIPTOR_INVALID\", `Malformed aggregate descriptor contributed by \"${descriptorId}\". A descriptor declares a non-empty \\`operation\\`, an \\`input\\` match of kind \\`none\\`/\\`any\\`/\\`codec\\`/\\`trait\\`, an \\`output\\` of kind \\`self\\`/\\`codec\\`, and a boolean \\`nullable\\` — plus \\`emptyResultJson\\`, in the result codec's canonical JSON, where \\`nullable\\` is false; a \\`self\\` output needs an input to reuse.`, {\n\t\t\t\tcontributedBy: descriptorId,\n\t\t\t\tdescriptor: contributed\n\t\t\t});\n\t\t\tconst key = aggregateDescriptorKey(contributed);\n\t\t\tconst existingOwner = owners.get(key);\n\t\t\tif (existingOwner !== void 0) throw runtimeError(\"CONTRACT.AGGREGATE_DESCRIPTOR_DUPLICATE\", `Duplicate aggregate descriptor for \"${key}\". Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\". Each operation/input pair can only have one provider.`, {\n\t\t\t\tkey,\n\t\t\t\tcontributedBy: descriptorId,\n\t\t\t\towner: existingOwner\n\t\t\t});\n\t\t\towners.set(key, descriptorId);\n\t\t\tcollected.push(contributed);\n\t\t}\n\t}\n\treturn collected;\n}\n/**\n* Flatten the codec descriptors the composed components contribute.\n*\n* A component may know a codec and still withhold it — an adapter that cannot name a codec's emitted type contributes the rest without it — so the contributed set is not always the set some component's own registry holds. Consumers whose output must agree with what the runtime resolves read this list rather than any one component's registry.\n*/\nfunction collectCodecDescriptors(descriptors) {\n\treturn descriptors.flatMap((descriptor) => descriptor.types?.codecTypes?.codecDescriptors ?? []);\n}\nfunction extractCodecLookup(descriptors) {\n\tconst byId = /* @__PURE__ */ new Map();\n\tconst descriptorsById = /* @__PURE__ */ new Map();\n\tconst targetTypesById = /* @__PURE__ */ new Map();\n\tconst renderersById = /* @__PURE__ */ new Map();\n\tconst inputRenderersById = /* @__PURE__ */ new Map();\n\tconst valueLiteralRenderersById = /* @__PURE__ */ new Map();\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const descriptor of descriptors) {\n\t\tconst codecTypes = descriptor.types?.codecTypes;\n\t\tconst descriptorId = descriptor.id;\n\t\tfor (const codecDescriptor of codecTypes?.codecDescriptors ?? []) {\n\t\t\tassertUniqueCodecOwner({\n\t\t\t\tcodecId: codecDescriptor.codecId,\n\t\t\t\towners,\n\t\t\t\tdescriptorId,\n\t\t\t\tentityLabel: \"codec descriptor\",\n\t\t\t\tentityOwnershipLabel: \"codec descriptor provider\"\n\t\t\t});\n\t\t\towners.set(codecDescriptor.codecId, descriptorId);\n\t\t\tdescriptorsById.set(codecDescriptor.codecId, codecDescriptor);\n\t\t\tif (Array.isArray(codecDescriptor.targetTypes)) targetTypesById.set(codecDescriptor.codecId, codecDescriptor.targetTypes);\n\t\t\tif (typeof codecDescriptor.renderOutputType === \"function\") renderersById.set(codecDescriptor.codecId, codecDescriptor.renderOutputType);\n\t\t\tif (typeof codecDescriptor.renderInputType === \"function\") inputRenderersById.set(codecDescriptor.codecId, codecDescriptor.renderInputType);\n\t\t\tif (typeof codecDescriptor.renderValueLiteral === \"function\") valueLiteralRenderersById.set(codecDescriptor.codecId, codecDescriptor.renderValueLiteral);\n\t\t\tif (!byId.has(codecDescriptor.codecId)) if (codecDescriptor.isParameterized) try {\n\t\t\t\tconst representative = codecDescriptor.factory({})({ name: `<lookup:${codecDescriptor.codecId}>` });\n\t\t\t\tbyId.set(codecDescriptor.codecId, representative);\n\t\t\t} catch {}\n\t\t\telse {\n\t\t\t\tconst representative = codecDescriptor.factory(void 0)({ name: `<lookup:${codecDescriptor.codecId}>` });\n\t\t\t\tbyId.set(codecDescriptor.codecId, representative);\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tget: (id) => byId.get(id),\n\t\tforCodecRef(ref) {\n\t\t\treturn materializeCodec(resolveCodecDescriptorOrThrow((id) => descriptorsById.get(id), ref, CONTRACT_CODEC_DESCRIPTOR_MISSING), ref, { name: `<ref:${ref.codecId}>` });\n\t\t},\n\t\tforColumn: () => void 0,\n\t\ttargetTypesFor: (id) => targetTypesById.get(id),\n\t\trenderOutputTypeFor: (id, params) => renderersById.get(id)?.(params),\n\t\trenderInputTypeFor: (id, params) => inputRenderersById.get(id)?.(params),\n\t\trenderValueLiteralFor: (id, value, side) => valueLiteralRenderersById.get(id)?.(value, side),\n\t\tdescriptorFor: (id) => descriptorsById.get(id)\n\t};\n}\nfunction assembleExtensionContracts(extensions) {\n\tconst result = /* @__PURE__ */ new Map();\n\tfor (const ext of extensions) {\n\t\tif (ext.contractSpace === void 0) continue;\n\t\tresult.set(ext.id, ext.contractSpace.contractJson);\n\t}\n\treturn result;\n}\nfunction readDeclaredDependencyIds(descriptor) {\n\tconst packs = descriptor.contractSpace?.contractJson?.extensions;\n\tif (packs === null || typeof packs !== \"object\") return [];\n\treturn Object.keys(packs);\n}\n/**\n* Builds a dependency-respecting load order for the given extension descriptors\n* using Kahn's topological sort algorithm. Dependencies (packs declared in\n* `contractSpace.contractJson.extensions`) are placed before the extensions\n* that depend on them.\n*\n* Throws if the dependency graph contains a cycle, with an error message that\n* names every extension involved in the cycle.\n*\n* Throws if any extension declares a dependency on a pack ID that is not present\n* in the provided list — add the missing pack to the `extensions` list to\n* resolve the error.\n*/\nfunction buildExtensionLoadOrder(extensions) {\n\tif (extensions.length === 0) return [];\n\tconst idSet = new Set(extensions.map((e) => e.id));\n\tconst inDegree = /* @__PURE__ */ new Map();\n\tconst dependents = /* @__PURE__ */ new Map();\n\tfor (const ext of extensions) {\n\t\tif (!inDegree.has(ext.id)) inDegree.set(ext.id, 0);\n\t\tif (!dependents.has(ext.id)) dependents.set(ext.id, []);\n\t}\n\tfor (const ext of extensions) for (const depId of readDeclaredDependencyIds(ext)) {\n\t\tif (!idSet.has(depId)) throw new InternalError(`Extension \"${ext.id}\" declares a dependency on \"${depId}\", but \"${depId}\" is not in the provided extension set. Add the missing space to extensions.`);\n\t\tinDegree.set(ext.id, (inDegree.get(ext.id) ?? 0) + 1);\n\t\tconst list = dependents.get(depId);\n\t\tif (list !== void 0) list.push(ext.id);\n\t}\n\tconst queue = [];\n\tfor (const [id, deg] of inDegree) if (deg === 0) queue.push(id);\n\tqueue.sort();\n\tconst result = [];\n\twhile (queue.length > 0) {\n\t\tconst id = queue.shift();\n\t\tif (id === void 0) break;\n\t\tresult.push(id);\n\t\tconst children = dependents.get(id) ?? [];\n\t\tchildren.sort();\n\t\tfor (const childId of children) {\n\t\t\tconst newDeg = (inDegree.get(childId) ?? 1) - 1;\n\t\t\tinDegree.set(childId, newDeg);\n\t\t\tif (newDeg === 0) queue.push(childId);\n\t\t}\n\t}\n\tif (result.length < extensions.length) throw new InternalError(`Extension dependency cycle detected. Cycle members: ${extensions.map((e) => e.id).filter((id) => !result.includes(id)).sort().map((id) => `\"${id}\"`).join(\", \")}.`);\n\treturn result;\n}\nfunction createControlStack(input) {\n\tconst { family, target, adapter, driver, extensions = [] } = input;\n\tconst orderedIds = buildExtensionLoadOrder(extensions);\n\tconst extensionById = new Map(extensions.map((ext) => [ext.id, ext]));\n\tconst orderedExtensions = orderedIds.map((id) => extensionById.get(id)).filter((ext) => ext !== void 0);\n\tconst allDescriptors = [\n\t\tfamily,\n\t\ttarget,\n\t\t...adapter ? [adapter] : [],\n\t\t...orderedExtensions\n\t];\n\tconst codecLookup = extractCodecLookup(allDescriptors);\n\tconst authoringContributions = assembleAuthoringContributions(allDescriptors);\n\tconst codecDescriptors = collectCodecDescriptors(allDescriptors);\n\tconst dataTypes = assembleDataTypes(allDescriptors);\n\tenforceDataTypeInvariants({\n\t\tlookup: dataTypes.lookup,\n\t\tdeclaredTypes: dataTypes.declared,\n\t\tcodecs: allDescriptors.flatMap((descriptor) => (descriptor.types?.codecTypes?.codecDescriptors ?? []).map((codecDescriptor) => ({\n\t\t\tcodecId: codecDescriptor.codecId,\n\t\t\tdataType: codecDescriptor.dataType,\n\t\t\tcontributedBy: descriptor.id\n\t\t}))),\n\t\tauthoringEntries: allDescriptors.flatMap((descriptor) => Object.entries(descriptor.authoring?.dataTypes ?? {}).map(([key, entry]) => ({\n\t\t\tkey,\n\t\t\tentry,\n\t\t\tcontributedBy: descriptor.id\n\t\t})))\n\t});\n\treturn {\n\t\tfamily,\n\t\ttarget,\n\t\tadapter,\n\t\tdriver,\n\t\textensions: orderedExtensions,\n\t\textensionContracts: assembleExtensionContracts(orderedExtensions),\n\t\tcodecTypeImports: extractCodecTypeImports(allDescriptors),\n\t\tqueryOperationTypeImports: extractQueryOperationTypeImports(allDescriptors),\n\t\textensionIds: extractComponentIds(family, target, adapter, orderedExtensions),\n\t\tcodecLookup,\n\t\tcodecDescriptors,\n\t\tdataTypeLookup: dataTypes.lookup,\n\t\taggregateDescriptors: collectAggregateDescriptors(allDescriptors),\n\t\tauthoringContributions,\n\t\tscalarTypes: [...collectScalarTypeConstructors(authoringContributions.type).keys()],\n\t\tcontrolMutationDefaults: assembleControlMutationDefaults(allDescriptors),\n\t\tcapabilities: mergeCapabilityMatrices({}, [\n\t\t\ttarget,\n\t\t\t...adapter ? [adapter] : [],\n\t\t\t...orderedExtensions\n\t\t])\n\t};\n}\n//#endregion\n//#region src/control/order-issues-by-dependencies.ts\nconst PATH_DELIMITER = \" \";\nfunction pathKey(path) {\n\treturn path.join(PATH_DELIMITER);\n}\n/**\n* Whether an issue's op builds its subject up (create or alter) rather than\n* only tearing it down. The differ sets `expected` on every create (`not-found`)\n* and alter (`not-equal`) issue and leaves it absent on a pure drop\n* (`not-expected`). This is the single signal the ordering law reads for edge\n* direction — never `reason`.\n*/\nfunction buildsUp(issue) {\n\treturn issue.expected !== void 0;\n}\n/**\n* The nearest strict-ancestor bucket of `path` — the surviving parent entity a\n* child is contained by. Walks the path's proper prefixes from longest to\n* shortest and returns the first prefix that maps to a bucket; a gap (a prefix\n* with no bucket) is skipped so containment always attaches to the closest real\n* parent.\n*\n* Returns a list because a path prefix can be shared by two siblings of\n* different `nodeKind` (a role and a namespace named alike); linking the child\n* to every candidate over-constrains safely (the extra edge points at a same-\n* direction op and never forms a cycle, since a parent never depends on its\n* child) rather than risk picking the wrong one.\n*/\nfunction nearestAncestors(path, byPath) {\n\tfor (let end = path.length - 1; end >= 1; end -= 1) {\n\t\tconst bucket = byPath.get(pathKey(path.slice(0, end)));\n\t\tif (bucket !== void 0) return bucket;\n\t}\n\treturn [];\n}\n/**\n* Orders schema-diff issues so that every dependency's op precedes its\n* dependent on the way up and follows it on the way down, breaking ties\n* deterministically by path.\n*\n* Edges come from two sources:\n* - **`dependsOn` cross-links** — the resolved issue-to-issue paths the differ\n* mirrors onto each issue (a node's declared structural prerequisites). A\n* path that resolves to no issue in this list is skipped (the dependency is\n* satisfied by reality); a path shared by two same-id/different-kind siblings\n* links to every match, over-constraining safely.\n* - **containment** — every issue depends on its nearest strict-ancestor issue\n* (a child entity on the parent entity that owns it). Subtree coalescing has\n* already removed the descendants of a whole create/drop, so this only links\n* the parent/child pairs that legitimately survive together.\n*\n* The ordering law reads each dependent's presence for direction: an issue that\n* builds up (`expected` present — a create or alter) needs its dependency\n* first; a pure drop needs its dependent removed first, so the edge reverses.\n* The graph is a DAG by construction (dependencies point from dependents to\n* their prerequisites, and prerequisites never point back), so a cycle is a\n* derivation or authoring bug: the topological sort asserts acyclicity and\n* throws, naming the issues it could not place.\n*/\nfunction orderIssuesByDependencies(issues) {\n\tif (issues.length <= 1) return issues;\n\tconst nodes = issues.map((issue) => ({\n\t\tissue,\n\t\tkey: pathKey(issue.path),\n\t\tbuildsUp: buildsUp(issue),\n\t\toutgoing: /* @__PURE__ */ new Set(),\n\t\tinDegree: 0\n\t}));\n\tconst nodesByPath = /* @__PURE__ */ new Map();\n\tfor (const node of nodes) {\n\t\tconst bucket = nodesByPath.get(node.key);\n\t\tif (bucket === void 0) nodesByPath.set(node.key, [node]);\n\t\telse bucket.push(node);\n\t}\n\tconst addEdge = (before, after) => {\n\t\tif (before.outgoing.has(after)) return;\n\t\tbefore.outgoing.add(after);\n\t\tafter.inDegree += 1;\n\t};\n\tconst addDependency = (dependent, dependency) => {\n\t\tif (dependent === dependency) return;\n\t\tif (dependent.buildsUp) addEdge(dependency, dependent);\n\t\telse addEdge(dependent, dependency);\n\t};\n\tfor (const node of nodes) {\n\t\tfor (const targetPath of node.issue.dependsOn ?? []) for (const target of nodesByPath.get(pathKey(targetPath)) ?? []) addDependency(node, target);\n\t\tfor (const ancestor of nearestAncestors(node.issue.path, nodesByPath)) addDependency(node, ancestor);\n\t}\n\tconst ready = nodes.filter((node) => node.inDegree === 0);\n\tconst order = [];\n\twhile (ready.length > 0) {\n\t\tlet best;\n\t\tfor (const candidate of ready) if (best === void 0 || candidate.key < best.key) best = candidate;\n\t\tif (best === void 0) break;\n\t\tready.splice(ready.indexOf(best), 1);\n\t\torder.push(best);\n\t\tfor (const next of best.outgoing) {\n\t\t\tnext.inDegree -= 1;\n\t\t\tif (next.inDegree === 0) ready.push(next);\n\t\t}\n\t}\n\tif (order.length !== nodes.length) {\n\t\tconst placed = new Set(order);\n\t\tthrow new InternalError(`orderIssuesByDependencies: dependency cycle among schema-diff issues (unresolved: ${nodes.filter((node) => !placed.has(node)).map((node) => node.issue.path.join(\"/\")).join(\", \")})`);\n\t}\n\treturn order.map((node) => node.issue);\n}\n//#endregion\n//#region src/control/schema-diff.ts\n/**\n* The outcome an issue represents, discriminated by presence rather than any\n* stored field — the single source of truth every consumer reads. An issue\n* always carries at least one side by construction; neither is a malformed\n* issue and throws.\n*/\nfunction issueOutcome(issue) {\n\tconst hasExpected = issue.expected !== void 0;\n\tconst hasActual = issue.actual !== void 0;\n\tif (hasExpected && hasActual) return \"not-equal\";\n\tif (hasExpected) return \"not-found\";\n\tif (hasActual) return \"not-expected\";\n\tthrow new InternalError(`issueOutcome: issue at \"${issue.path.join(\"/\")}\" carries neither an expected nor an actual node`);\n}\nfunction siblingKey(node) {\n\treturn JSON.stringify([node.nodeKind, node.id]);\n}\nfunction insertNode(map, node) {\n\tconst key = siblingKey(node);\n\tif (map.has(key)) throw new InternalError(`diffSchemas: duplicate id among siblings: ${node.nodeKind}/${node.id}`);\n\tmap.set(key, node);\n}\nfunction emitMissingSubtree(node, parentPath) {\n\tconst path = [...parentPath, node.id];\n\treturn [{\n\t\tpath,\n\t\texpected: node\n\t}, ...node.children().flatMap((c) => emitMissingSubtree(c, path))];\n}\nfunction emitExtraSubtree(node, parentPath) {\n\tconst path = [...parentPath, node.id];\n\treturn [{\n\t\tpath,\n\t\tactual: node\n\t}, ...node.children().flatMap((c) => emitExtraSubtree(c, path))];\n}\n/**\n* Diff two schema trees starting from their roots.\n*\n* The differ is **total**: every node-level difference is reported. An unmatched\n* non-leaf node emits its own issue and descends, emitting an issue for every\n* node in the missing/extra subtree. Coalescing a parent change over its\n* children is the planner's responsibility. Ownership filtering (dropping `extra`\n* issues in namespaces a contract doesn't own) is the caller's responsibility.\n*/\nfunction diffSchemas(expected, actual) {\n\treturn mirrorDependsOnOntoIssues(diffPair(expected, actual, []));\n}\nfunction schemaNodeRefKey(ref) {\n\treturn JSON.stringify(ref.map((step) => step.id));\n}\nfunction issuePathKey(path) {\n\treturn JSON.stringify(path);\n}\nfunction terminalNodeKind(issue) {\n\treturn (issue.expected ?? issue.actual)?.nodeKind;\n}\n/**\n* Copies each issue's node's `dependsOn` refs onto the issue itself, as\n* issue-to-issue path references. A ref is kept only when some emitted issue\n* sits at that exact path AND that issue's node `nodeKind` matches the ref's\n* last step — otherwise the ref is dropped (its target either didn't\n* change, or was never part of either tree; either way the dependency is\n* satisfied by reality, not by an operation this diff will produce).\n*\n* The path index is a multimap: two siblings may share an `id` under\n* different `nodeKind`s (a role and a namespace named alike), so an id-path\n* alone is ambiguous. The ref's terminal `nodeKind` disambiguates — the ref\n* resolves only against a same-path issue whose own node carries that kind.\n*/\nfunction mirrorDependsOnOntoIssues(issues) {\n\tconst issuesByPath = /* @__PURE__ */ new Map();\n\tfor (const issue of issues) {\n\t\tconst key = issuePathKey(issue.path);\n\t\tconst bucket = issuesByPath.get(key);\n\t\tif (bucket === void 0) issuesByPath.set(key, [issue]);\n\t\telse bucket.push(issue);\n\t}\n\treturn issues.map((issue) => {\n\t\tconst refs = (issue.expected ?? issue.actual)?.dependsOn;\n\t\tif (refs === void 0 || refs.length === 0) return issue;\n\t\tconst dependsOn = refs.flatMap((ref) => {\n\t\t\tconst lastStep = ref[ref.length - 1];\n\t\t\tif (lastStep === void 0) return [];\n\t\t\tif (!(issuesByPath.get(schemaNodeRefKey(ref)) ?? []).some((c) => terminalNodeKind(c) === lastStep.nodeKind)) return [];\n\t\t\treturn [ref.map((step) => step.id)];\n\t\t});\n\t\tif (dependsOn.length === 0) return issue;\n\t\treturn {\n\t\t\t...issue,\n\t\t\tdependsOn\n\t\t};\n\t});\n}\nfunction diffPair(expected, actual, parentPath) {\n\tconst path = [...parentPath, expected.id];\n\tconst issues = [];\n\tif (!expected.isEqualTo(actual)) issues.push({\n\t\tpath,\n\t\texpected,\n\t\tactual\n\t});\n\tissues.push(...diffChildren(expected.children(), actual.children(), path));\n\treturn issues;\n}\n/**\n* Align one level of nodes by `(nodeKind, id)`; emit issues in input order\n* and recurse.\n*\n* A missing node emits one issue for itself and one for every node in its\n* subtree (total descent). Same for extra nodes. A matched pair recurses via\n* `diffPair`.\n*/\nfunction diffChildren(expected, actual, parentPath) {\n\tconst expectedMap = /* @__PURE__ */ new Map();\n\tfor (const node of expected) insertNode(expectedMap, node);\n\tconst actualMap = /* @__PURE__ */ new Map();\n\tfor (const node of actual) insertNode(actualMap, node);\n\tconst issues = [];\n\tfor (const [key, expectedNode] of expectedMap) {\n\t\tconst actualNode = actualMap.get(key);\n\t\tif (actualNode === void 0) issues.push(...emitMissingSubtree(expectedNode, parentPath));\n\t\telse issues.push(...diffPair(expectedNode, actualNode, parentPath));\n\t}\n\tfor (const [key, actualNode] of actualMap) if (!expectedMap.has(key)) issues.push(...emitExtraSubtree(actualNode, parentPath));\n\treturn issues;\n}\n/**\n* The result of diffing a contract's expected schema against the introspected\n* actual schema: one node-typed issue list. Carries no verdict, verification\n* tree, or counts — those are the verifier's own presentation, built from the\n* same underlying comparison.\n*\n* `TNode` is the concrete schema-IR node the issues carry; it defaults to\n* `DiffableNode`, so this is purely additive — a caller that wants the\n* concrete node opts in (the Postgres planner uses the concrete node type),\n* everyone else keeps the default unchanged.\n*/\nvar SchemaDiff = class SchemaDiff {\n\tissues;\n\tconstructor(issues) {\n\t\tthis.issues = issues;\n\t}\n\t/** Returns a new `SchemaDiff` narrowed to the issues `keep` returns true for. */\n\tfilter(keep) {\n\t\treturn new SchemaDiff(this.issues.filter(keep));\n\t}\n};\n//#endregion\n//#region src/control/verifier-disposition.ts\n/**\n* Grades a target-neutral issue category against a control policy.\n*\n* - `observed` warns on everything.\n* - `tolerated` suppresses only an extra nested element (everything else fails).\n* - `external` suppresses every extra category and value drift (existence and\n* declared-shape divergences still fail).\n* - `managed` (and any other) fails.\n*/\nfunction dispositionForCategory(controlPolicy, category) {\n\tif (controlPolicy === \"observed\") return \"warn\";\n\tif (controlPolicy === \"tolerated\" && category === \"extraNestedElement\") return \"suppress\";\n\tif (controlPolicy === \"external\") {\n\t\tif (category === \"extraNestedElement\" || category === \"extraAuxiliary\" || category === \"extraTopLevelObject\" || category === \"valueDrift\") return \"suppress\";\n\t}\n\treturn \"fail\";\n}\n//#endregion\n//#region src/shared/tagged-literal.ts\nconst TAGGED_LITERAL_MAX_BYTES = 65536;\n/** The message a tagged literal's canonicalization failure is reported with, in PSL and in TypeScript. */\nfunction describeTaggedLiteralFailure(reason) {\n\tswitch (reason) {\n\t\tcase \"nul\": return \"Tagged literals must not contain NUL characters.\";\n\t\tcase \"too-large\": return `Tagged literal exceeds ${TAGGED_LITERAL_MAX_BYTES} bytes.`;\n\t}\n}\nconst PSL_BACKTICK_ESCAPES = /* @__PURE__ */ new Set([\"`\", \"\\\\\"]);\nconst TEMPLATE_TAG_ESCAPES = /* @__PURE__ */ new Set([\n\t\"`\",\n\t\"\\\\\",\n\t\"$\"\n]);\n/** The escapes a PSL backtick string resolves: `` \\` `` and `\\\\`. PSL has no interpolation, so `${` is ordinary text. */\nfunction resolvePslBacktickEscapes(raw) {\n\treturn resolveEscapes(raw, PSL_BACKTICK_ESCAPES);\n}\n/** The escapes a TypeScript template tag resolves: the PSL two plus `\\$`, the only way to write `${` in a template literal. */\nfunction resolveTemplateTagEscapes(raw) {\n\treturn resolveEscapes(raw, TEMPLATE_TAG_ESCAPES);\n}\n/** Every other backslash sequence is kept as written, both characters, so a SQL body may contain `E'\\n'` unchanged. */\nfunction resolveEscapes(raw, escapes) {\n\tlet out = \"\";\n\tlet i = 0;\n\twhile (i < raw.length) {\n\t\tconst ch = raw.charAt(i);\n\t\tconst next = raw.charAt(i + 1);\n\t\tif (ch === \"\\\\\" && escapes.has(next)) {\n\t\t\tout += next;\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tout += ch;\n\t\ti++;\n\t}\n\treturn out;\n}\nconst BLANK_LINE = /^[ \\t]*$/;\nconst LEADING_INDENT = /^[ \\t]*/;\nconst LINE_BREAK = /\\r\\n|\\r|\\n/g;\n/**\n* Turns the escape-resolved text of a tagged literal into its canonical body:\n* newlines become `\\n`, a blank first and last line are dropped, common leading\n* whitespace is removed, internal blank lines become empty, and no trailing\n* newline is added. Fails on a NUL character or when the result is larger than\n* 65536 UTF-8 bytes.\n*/\nfunction canonicalizeTaggedLiteralBody(resolved) {\n\tconst nul = resolved.indexOf(\"\\0\");\n\tif (nul !== -1) return {\n\t\tok: false,\n\t\treason: \"nul\",\n\t\toffset: nul\n\t};\n\tconst lines = splitLines(resolved);\n\tif (lines.length > 0 && BLANK_LINE.test(lines[0]?.text ?? \"\")) lines.shift();\n\tif (lines.length > 0 && BLANK_LINE.test(lines.at(-1)?.text ?? \"\")) lines.pop();\n\tconst indent = commonIndent(lines);\n\tconst bodyLines = lines.map((line) => BLANK_LINE.test(line.text) ? {\n\t\ttext: \"\",\n\t\tstart: line.start\n\t} : {\n\t\ttext: line.text.slice(indent),\n\t\tstart: line.start + indent\n\t});\n\tconst excess = offsetWhereBytesExceed(bodyLines, TAGGED_LITERAL_MAX_BYTES);\n\tif (excess !== void 0) return {\n\t\tok: false,\n\t\treason: \"too-large\",\n\t\toffset: excess\n\t};\n\treturn {\n\t\tok: true,\n\t\tbody: bodyLines.map((line) => line.text).join(\"\\n\")\n\t};\n}\nfunction splitLines(text) {\n\tconst lines = [];\n\tlet start = 0;\n\tfor (const match of text.matchAll(LINE_BREAK)) {\n\t\tlines.push({\n\t\t\ttext: text.slice(start, match.index),\n\t\t\tstart\n\t\t});\n\t\tstart = match.index + match[0].length;\n\t}\n\tlines.push({\n\t\ttext: text.slice(start),\n\t\tstart\n\t});\n\treturn lines;\n}\nfunction commonIndent(lines) {\n\tlet indent = Number.POSITIVE_INFINITY;\n\tfor (const line of lines) {\n\t\tif (BLANK_LINE.test(line.text)) continue;\n\t\tindent = Math.min(indent, LEADING_INDENT.exec(line.text)?.[0].length ?? 0);\n\t}\n\treturn Number.isFinite(indent) ? indent : 0;\n}\n/** The resolved-text offset of the first character that pushes the body past `limit` bytes. */\nfunction offsetWhereBytesExceed(lines, limit) {\n\tlet bytes = 0;\n\tfor (const [index, line] of lines.entries()) {\n\t\tif (index > 0) {\n\t\t\tbytes += 1;\n\t\t\tif (bytes > limit) return line.start;\n\t\t}\n\t\tlet offsetInLine = 0;\n\t\tfor (const char of line.text) {\n\t\t\tbytes += utf8Length(char.codePointAt(0) ?? 0);\n\t\t\tif (bytes > limit) return line.start + offsetInLine;\n\t\t\toffsetInLine += char.length;\n\t\t}\n\t}\n}\nfunction utf8Length(codePoint) {\n\tif (codePoint < 128) return 1;\n\tif (codePoint < 2048) return 2;\n\tif (codePoint < 65536) return 3;\n\treturn 4;\n}\n//#endregion\nexport { APP_SPACE_ID, CONTRACT_SNAPSHOTS_DIRNAME, SchemaDiff, SchemaTreeNode, TAGGED_LITERAL_MAX_BYTES, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_SCHEMA_FAILURE, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions, assembleAuthoringDataTypes, assembleControlMutationDefaults, assembleDataTypes, assertUniqueCodecOwner, buildExtensionLoadOrder, canonicalizeTaggedLiteralBody, contractSnapshotJsonSpecifier, contractSnapshotTypesSpecifier, createControlStack, describeTaggedLiteralFailure, diffSchemas, dispositionForCategory, enforceDataTypeInvariants, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractQueryOperationTypeImports, hasMigrations, hasOperationPreview, hasPslContractBuild, hasPslContractInfer, hasSchemaSubjectClassifier, hasSchemaView, issueOutcome, orderIssuesByDependencies, resolvePslBacktickEscapes, resolveTemplateTagEscapes, storageHashHex, timestampNowControlDescriptor };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import "./types-import-spec-B15QNHY_-BkWCRWEb.mjs";
2
- import "./emission-types-ByNBI5Lx-Cu73cjFg.mjs";
@@ -1,2 +0,0 @@
1
- import "./framework-authoring-BEHHwGOv-mQMbHGI_.mjs";
2
- import "./psl-ast-CjO3JX8O-CyqkfgDM.mjs";
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-codec-DWEkC3ya-DRYIta04.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/resolve-codec-DWEkC3ya.mjs"],"sourcesContent":["import { n as runtimeError } from \"./runtime-error-BA9d7XjZ.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/shared/data-type.ts\nconst DATA_TYPE_ID = /^[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-z0-9]+(?:-[a-z0-9]+)*$/;\n/** Read `id` as a data type id, refusing anything that is not `owner/name` in lower case. */\nfunction dataTypeId(id) {\n\tif (!DATA_TYPE_ID.test(id)) throw runtimeError(\"CONTRACT.DATA_TYPE_ID_INVALID\", `\"${id}\" is not a data type id. A data type id is \"owner/name\" in lower case and carries no version, as in \"owner/name\"; a versioned id names a codec.`, { id });\n\treturn blindCast(id);\n}\n/** Declare a data type. Every id it names, its own and each cast's source, is validated here. */\nfunction dataType(id, spec) {\n\tconst casts = {};\n\tfor (const [source, cast] of Object.entries(spec.casts ?? {})) casts[dataTypeId(source)] = cast;\n\tconst listCast = spec.listCast;\n\treturn {\n\t\tid: dataTypeId(id),\n\t\tcasts,\n\t\t...listCast === void 0 ? {} : { listCast: {\n\t\t\tof: listCast.of.map(dataTypeId),\n\t\t\tcast: listCast.cast\n\t\t} }\n\t};\n}\nfunction createDataTypeLookup(types) {\n\tconst byId = new Map(types.map((type) => [type.id, type]));\n\treturn {\n\t\tget: (id) => byId.get(id),\n\t\thas: (id) => byId.has(id)\n\t};\n}\n//#endregion\n//#region src/shared/resolve-codec.ts\nconst CONTRACT_CODEC_DESCRIPTOR_MISSING = \"CONTRACT.CODEC_DESCRIPTOR_MISSING\";\n/**\n* Look up a descriptor for `ref.codecId` using `descriptorFor`; throw\n* `code` if none is found. Each plane names its own error path: the control\n* plane resolves contract-stack descriptors (`CONTRACT.*`), the execution\n* plane resolves at query time (`RUNTIME.*`).\n*/\nfunction resolveCodecDescriptorOrThrow(descriptorFor, ref, code) {\n\tconst descriptor = descriptorFor(ref.codecId);\n\tif (!descriptor) throw runtimeError(code, `No codec descriptor registered for codecId '${ref.codecId}'.`, { codecId: ref.codecId });\n\treturn descriptor;\n}\nfunction isAbsentOrEmpty(typeParams) {\n\treturn typeParams === void 0 || typeof typeParams === \"object\" && typeParams !== null && !Array.isArray(typeParams) && Object.keys(typeParams).length === 0;\n}\n/**\n* Validates `ref.typeParams` against `descriptor.paramsSchema`.\n*\n* A codec without a `paramsSchema` takes no params: it accepts absent or empty\n* `typeParams` (a bare native-type alias carries `{}`) and rejects anything else.\n* A parameterized codec whose ref omits `typeParams` validates `{}` (mirrors\n* `ast-codec-resolver.ts` semantics). Throws `RUNTIME.TYPE_PARAMS_INVALID` when\n* params are given to a codec without params, or when the validator returns a\n* `Promise` or reports issues.\n*/\nfunction validateCodecTypeParams(descriptor, ref) {\n\tconst schema = descriptor.paramsSchema;\n\tif (schema === void 0) {\n\t\tif (!isAbsentOrEmpty(ref.typeParams)) throw runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Invalid typeParams for codec '${ref.codecId}': unexpected typeParams for non-parameterized codec`, {\n\t\t\tcodecId: ref.codecId,\n\t\t\ttypeParams: ref.typeParams\n\t\t});\n\t\treturn;\n\t}\n\tconst result = blindCast(schema[\"~standard\"].validate(ref.typeParams ?? {}));\n\tif (result instanceof Promise) throw runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `paramsSchema for codec '${ref.codecId}' returned a Promise; runtime validation requires a synchronous Standard Schema validator.`, {\n\t\tcodecId: ref.codecId,\n\t\ttypeParams: ref.typeParams\n\t});\n\tif (\"issues\" in result && result.issues) {\n\t\tconst messages = result.issues.map((issue) => issue.message).join(\"; \");\n\t\tthrow runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Invalid typeParams for codec '${ref.codecId}': ${messages}`, {\n\t\t\tcodecId: ref.codecId,\n\t\t\ttypeParams: ref.typeParams\n\t\t});\n\t}\n\treturn blindCast(result).value;\n}\n/**\n* Resolves a `Codec` instance: validates `ref.typeParams` via\n* {@link validateCodecTypeParams} then calls `descriptor.factory(validated)(ctx)`\n* as a method on `descriptor`, preserving `this` for factories that build\n* their returned codec from the descriptor instance (e.g. `new XCodec(this)`).\n*/\nfunction materializeCodec(descriptor, ref, ctx) {\n\tconst validated = validateCodecTypeParams(descriptor, ref);\n\treturn descriptor.factory(validated)(ctx);\n}\n//#endregion\nexport { createDataTypeLookup as a, validateCodecTypeParams as i, materializeCodec as n, dataType as o, resolveCodecDescriptorOrThrow as r, dataTypeId as s, CONTRACT_CODEC_DESCRIPTOR_MISSING as t };\n\n//# sourceMappingURL=resolve-codec-DWEkC3ya.mjs.map"],"mappings":";;;AAGA,MAAM,eAAe;;AAErB,SAAS,WAAW,IAAI;CACvB,IAAI,CAAC,aAAa,KAAK,EAAE,GAAG,MAAM,aAAa,iCAAiC,IAAI,GAAG,kJAAkJ,EAAE,GAAG,CAAC;CAC/O,OAAO,UAAU,EAAE;AACpB;;AAEA,SAAS,SAAS,IAAI,MAAM;CAC3B,MAAM,QAAQ,CAAC;CACf,KAAK,MAAM,CAAC,QAAQ,SAAS,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,GAAG,MAAM,WAAW,MAAM,KAAK;CAC3F,MAAM,WAAW,KAAK;CACtB,OAAO;EACN,IAAI,WAAW,EAAE;EACjB;EACA,GAAG,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE,UAAU;GACzC,IAAI,SAAS,GAAG,IAAI,UAAU;GAC9B,MAAM,SAAS;EAChB,EAAE;CACH;AACD;AACA,SAAS,qBAAqB,OAAO;CACpC,MAAM,OAAO,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;CACzD,OAAO;EACN,MAAM,OAAO,KAAK,IAAI,EAAE;EACxB,MAAM,OAAO,KAAK,IAAI,EAAE;CACzB;AACD;AAGA,MAAM,oCAAoC;;;;;;;AAO1C,SAAS,8BAA8B,eAAe,KAAK,MAAM;CAChE,MAAM,aAAa,cAAc,IAAI,OAAO;CAC5C,IAAI,CAAC,YAAY,MAAM,aAAa,MAAM,+CAA+C,IAAI,QAAQ,KAAK,EAAE,SAAS,IAAI,QAAQ,CAAC;CAClI,OAAO;AACR;AACA,SAAS,gBAAgB,YAAY;CACpC,OAAO,eAAe,KAAK,KAAK,OAAO,eAAe,YAAY,eAAe,QAAQ,CAAC,MAAM,QAAQ,UAAU,KAAK,OAAO,KAAK,UAAU,CAAC,CAAC,WAAW;AAC3J;;;;;;;;;;;AAWA,SAAS,wBAAwB,YAAY,KAAK;CACjD,MAAM,SAAS,WAAW;CAC1B,IAAI,WAAW,KAAK,GAAG;EACtB,IAAI,CAAC,gBAAgB,IAAI,UAAU,GAAG,MAAM,aAAa,+BAA+B,iCAAiC,IAAI,QAAQ,uDAAuD;GAC3L,SAAS,IAAI;GACb,YAAY,IAAI;EACjB,CAAC;EACD;CACD;CACA,MAAM,SAAS,UAAU,OAAO,YAAY,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC;CAC3E,IAAI,kBAAkB,SAAS,MAAM,aAAa,+BAA+B,2BAA2B,IAAI,QAAQ,6FAA6F;EACpN,SAAS,IAAI;EACb,YAAY,IAAI;CACjB,CAAC;CACD,IAAI,YAAY,UAAU,OAAO,QAAQ;EACxC,MAAM,WAAW,OAAO,OAAO,KAAK,UAAU,MAAM,OAAO,CAAC,CAAC,KAAK,IAAI;EACtE,MAAM,aAAa,+BAA+B,iCAAiC,IAAI,QAAQ,KAAK,YAAY;GAC/G,SAAS,IAAI;GACb,YAAY,IAAI;EACjB,CAAC;CACF;CACA,OAAO,UAAU,MAAM,CAAC,CAAC;AAC1B;;;;;;;AAOA,SAAS,iBAAiB,YAAY,KAAK,KAAK;CAC/C,MAAM,YAAY,wBAAwB,YAAY,GAAG;CACzD,OAAO,WAAW,QAAQ,SAAS,CAAC,CAAC,GAAG;AACzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-CpojufYS.mjs","names":["#kind","#terminalName","#annotations"],"sources":["../../../../1-framework/1-core/framework-components/dist/runtime.mjs"],"sourcesContent":["import { n as runtimeError, t as isRuntimeError } from \"./runtime-error-BA9d7XjZ.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/execution/runtime-error.ts\n/**\n* Stable code emitted by the runtime when an in-flight `execute()`\n* is cancelled via the per-query `AbortSignal`. The envelope's\n* `details.phase` distinguishes where the abort was observed:\n*\n* - `'encode'` — abort fired during `encodeParams` (SQL) or\n* `resolveValue` (Mongo).\n* - `'decode'` — abort fired during `decodeRow` / `decodeField`.\n* - `'stream'` — abort fired between rows or before any codec call\n* (already-aborted at entry).\n* - `'beforeQuery'` / `'beforeExecute'` / `'afterQuery'` /\n* `'afterExecute'` / `'onRow'` — abort fired on entry to or during\n* the corresponding middleware phase\n* (cooperative cancellation per the param-transform seam).\n*/\nconst RUNTIME_ABORTED = \"RUNTIME.ABORTED\";\n/**\n* Construct a `RUNTIME.ABORTED` envelope. Phase distinguishes where the\n* abort was observed — codec call sites (`encode` / `decode` / `stream`)\n* or operation-specific middleware seams, as\n* enumerated on {@link RuntimeAbortedPhase}. Cause carries\n* `signal.reason` verbatim from the platform — native abort produces a\n* `DOMException`, explicit `controller.abort(reason)` produces whatever\n* the caller passed. No synthesis happens here.\n*/\nfunction runtimeAborted(phase, cause) {\n\tconst envelope = runtimeError(RUNTIME_ABORTED, `Operation aborted during ${phase}`, { phase });\n\treturn Object.assign(envelope, { cause });\n}\n//#endregion\n//#region src/annotations.ts\n/**\n* Defines a typed annotation handle.\n*\n* Two-step call form. The first step takes the `Payload` type argument\n* (TypeScript cannot infer `Payload` from anything in the options, so it\n* must be supplied explicitly); the second step takes the runtime options\n* and infers `Kinds` from the `applicableTo` array via a `const` type\n* parameter, so the operation kinds appear exactly once at the call site.\n*\n* @example\n* ```typescript\n* // Read-only annotation. Lane terminals like `db.User.first(...)` accept\n* // it; `db.User.create(...)` rejects it at the type level.\n* const cacheAnnotation = defineAnnotation<{ ttl?: number; skip?: boolean }>()({\n* namespace: 'cache',\n* applicableTo: ['read'],\n* }); // Kinds inferred as 'read'\n*\n* // Write-only annotation. Mirror image.\n* const auditAnnotation = defineAnnotation<{ actor: string }>()({\n* namespace: 'audit',\n* applicableTo: ['write'],\n* }); // Kinds inferred as 'write'\n*\n* // Annotation applicable to both kinds (e.g. tracing).\n* const otelAnnotation = defineAnnotation<{ traceId: string }>()({\n* namespace: 'otel',\n* applicableTo: ['read', 'write'],\n* }); // Kinds inferred as 'read' | 'write'\n* ```\n*\n* **Reserved namespaces.** See `DefineAnnotationOptions.namespace` for the\n* list of framework-internal namespaces (`codecs`, target-specific keys).\n* `defineAnnotation` does not structurally prevent a user from naming a\n* reserved namespace, but the framework makes no compatibility guarantee\n* about handles that do.\n*/\nfunction defineAnnotation() {\n\treturn (options) => {\n\t\tconst namespace = options.namespace;\n\t\tconst applicableTo = Object.freeze(new Set(options.applicableTo));\n\t\tfunction handle(value) {\n\t\t\treturn Object.freeze({\n\t\t\t\t__annotation: true,\n\t\t\t\tnamespace,\n\t\t\t\tvalue,\n\t\t\t\tapplicableTo\n\t\t\t});\n\t\t}\n\t\tfunction read(plan) {\n\t\t\tconst stored = plan.meta.annotations?.[namespace];\n\t\t\tif (!isAnnotationValue(stored)) return;\n\t\t\tif (stored.namespace !== namespace) return;\n\t\t\treturn stored.value;\n\t\t}\n\t\treturn Object.freeze(Object.assign(handle, {\n\t\t\tnamespace,\n\t\t\tapplicableTo,\n\t\t\tread\n\t\t}));\n\t};\n}\n/**\n* Runtime applicability gate. Throws `RUNTIME.ANNOTATION_INAPPLICABLE` if\n* any annotation in `annotations` declares an `applicableTo` set that does\n* not include `kind`. Used by lane terminals (SQL DSL builders' `.build()`,\n* ORM `Collection` terminals) to fail closed when the type-level\n* `ValidAnnotations` gate is bypassed via cast / `any` / dynamic\n* invocation.\n*\n* Passes silently on:\n* - empty arrays\n* - annotations whose `applicableTo` includes `kind`\n*\n* Throws on:\n* - any annotation whose `applicableTo` does not include `kind`. The\n* error names the offending annotation's `namespace` and the\n* `terminalName` so users can locate the misuse.\n*\n* @example\n* ```typescript\n* // Inside an ORM read terminal:\n* assertAnnotationsApplicable(annotations, 'read', 'first');\n* ```\n*/\nfunction assertAnnotationsApplicable(annotations, kind, terminalName) {\n\tfor (const annotation of annotations) if (!annotation.applicableTo.has(kind)) throw runtimeError(\"RUNTIME.ANNOTATION_INAPPLICABLE\", `Annotation '${annotation.namespace}' is not applicable to '${kind}' operations (terminal: '${terminalName}'). The annotation declares applicableTo = [${Array.from(annotation.applicableTo).map((k) => `'${k}'`).join(\", \")}].`, {\n\t\tnamespace: annotation.namespace,\n\t\tterminalName,\n\t\tkind,\n\t\tapplicableTo: Array.from(annotation.applicableTo)\n\t});\n}\n/**\n* Type guard for branded annotation values stored in `plan.meta.annotations`.\n*\n* Internal — used by `AnnotationHandle.read` to distinguish user\n* annotations (created by calling a handle returned from\n* `defineAnnotation(...)`) from framework-internal metadata that may\n* happen to live under the same namespace key.\n*/\nfunction isAnnotationValue(value) {\n\tif (value === null || typeof value !== \"object\") return false;\n\treturn value.__annotation === true;\n}\n//#endregion\n//#region src/execution/async-iterable-result.ts\nvar AsyncIterableResult = class {\n\tgenerator;\n\tconsumed = false;\n\tconsumedBy;\n\tbufferedArrayPromise;\n\tconstructor(generator) {\n\t\tthis.generator = generator;\n\t}\n\t[Symbol.asyncIterator]() {\n\t\tif (this.consumed) throw runtimeError(\"RUNTIME.ITERATOR_CONSUMED\", `AsyncIterableResult iterator has already been consumed via ${this.consumedBy === \"bufferedArray\" ? \"toArray()/then()\" : \"for-await loop\"}. Each AsyncIterableResult can only be iterated once.`, {\n\t\t\tconsumedBy: this.consumedBy,\n\t\t\tsuggestion: this.consumedBy === \"bufferedArray\" ? \"If you need to iterate multiple times, store the results from toArray() in a variable and reuse that.\" : \"If you need to iterate multiple times, use toArray() to collect all results first.\"\n\t\t});\n\t\tthis.consumed = true;\n\t\tthis.consumedBy = \"iterator\";\n\t\treturn this.generator;\n\t}\n\ttoArray() {\n\t\tif (this.consumedBy === \"iterator\") return Promise.reject(runtimeError(\"RUNTIME.ITERATOR_CONSUMED\", \"AsyncIterableResult iterator has already been consumed via for-await loop. Each AsyncIterableResult can only be iterated once.\", {\n\t\t\tconsumedBy: this.consumedBy,\n\t\t\tsuggestion: \"The iterator was already consumed by a for-await loop. Use toArray() or await the result before iterating.\"\n\t\t}));\n\t\tif (this.bufferedArrayPromise) return this.bufferedArrayPromise;\n\t\tthis.consumed = true;\n\t\tthis.consumedBy = \"bufferedArray\";\n\t\tthis.bufferedArrayPromise = (async () => {\n\t\t\tconst out = [];\n\t\t\tfor await (const item of this.generator) out.push(item);\n\t\t\treturn out;\n\t\t})();\n\t\treturn this.bufferedArrayPromise;\n\t}\n\tasync first() {\n\t\treturn (await this.toArray())[0] ?? null;\n\t}\n\tasync firstOrThrow() {\n\t\tconst row = await this.first();\n\t\tif (row === null) throw runtimeError(\"RUNTIME.NO_ROWS\", \"Expected at least one row, but none were returned\", {});\n\t\treturn row;\n\t}\n\tthen(onfulfilled, onrejected) {\n\t\treturn this.toArray().then(onfulfilled, onrejected);\n\t}\n};\n//#endregion\n//#region src/execution/race-against-abort.ts\n/**\n* Throw a phase-tagged `RUNTIME.ABORTED` envelope if the supplied\n* context is already aborted at the precheck site. Centralises the\n* `if (ctx.signal?.aborted) throw runtimeAborted(...)` pattern that\n* every codec dispatch site (and the `beforeExecute` middleware phase)\n* repeats. Accepts both the framework `CodecCallContext` and the\n* `RuntimeMiddlewareContext`; both expose `signal?: AbortSignal`.\n*/\nfunction checkAborted(ctx, phase) {\n\tif (ctx.signal?.aborted) throw runtimeAborted(phase, ctx.signal.reason);\n}\n/**\n* Race a per-cell `Promise.all` (or any other in-flight work promise) against\n* the supplied abort signal so the runtime returns `RUNTIME.ABORTED` promptly\n* even when codec bodies ignore the signal. In-flight bodies that ignore the\n* signal are abandoned and run to completion in the background — the\n* cooperative-cancellation contract documented in ADR 204.\n*\n* Call sites still SHOULD pre-check `signal.aborted` and short-circuit with\n* a phase-tagged `RUNTIME.ABORTED` envelope before invoking this helper —\n* that path is the canonical \"aborted at entry\" surface and avoids\n* scheduling the work promise. As a defensive belt-and-braces, this helper\n* also handles the already-aborted case internally: `AbortSignal` does not\n* replay past abort events to listeners registered after the abort, so we\n* inspect `signal.aborted` synchronously and reject with the sentinel\n* before installing the listener. The rejection is still attributed to the\n* abort path via the sentinel-identity check.\n*\n* Distinguishing the rejection source is load-bearing for AC-ERR4\n* (`RUNTIME.ENCODE_FAILED` / `RUNTIME.DECODE_FAILED` pass through unchanged).\n* The semantically equivalent `abortable(signal)` helper in\n* `@internal/utils` rejects with `signal.reason ?? new DOMException(...)`,\n* which is not stably distinguishable from a codec-thrown error by identity\n* alone (a fresh fallback DOMException is allocated per call). We instead\n* track abort attribution with a unique sentinel: only the `onAbort` listener\n* installed here ever rejects with the sentinel, so an `error === sentinel`\n* identity check after the race is unambiguous.\n*\n* Lives in `framework-components` (rather than the SQL family, where it\n* originated in m2) so every family runtime that needs cooperative\n* cancellation around a codec-dispatch `Promise.all` (SQL encode + decode\n* today, Mongo encode in m3) shares the same attribution logic.\n*/\nasync function raceAgainstAbort(work, signal, phase) {\n\tif (signal === void 0) return await work;\n\tconst sentinel = { reason: void 0 };\n\tlet onAbort;\n\tconst abortPromise = new Promise((_, reject) => {\n\t\tif (signal.aborted) {\n\t\t\tsentinel.reason = signal.reason;\n\t\t\treject(sentinel);\n\t\t\treturn;\n\t\t}\n\t\tonAbort = () => {\n\t\t\tsentinel.reason = signal.reason;\n\t\t\treject(sentinel);\n\t\t};\n\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t});\n\ttry {\n\t\treturn await Promise.race([work, abortPromise]);\n\t} catch (error) {\n\t\tif (error === sentinel) throw runtimeAborted(phase, sentinel.reason);\n\t\tthrow error;\n\t} finally {\n\t\tif (onAbort) signal.removeEventListener(\"abort\", onAbort);\n\t}\n}\n//#endregion\n//#region src/execution/before-execute-chain.ts\n/**\n* Runs every middleware's `beforeQuery` hook in registration order,\n* threading through the (optional) family-specific `paramsMutator`.\n*\n* Why this lives outside {@link runQueryWithMiddleware}: middleware that\n* mutates parameter values (e.g. cipherstash's bulk-encrypt SDK\n* round-trip) must run *before* the family runtime encodes those\n* parameters to driver wire format. Family runtimes call\n* `runBeforeQueryChain` between the AST → plan lowering step and\n* the parameter encode step; the encode then observes the mutator's\n* `currentParams()` view. `runQueryWithMiddleware` retains the rest of\n* the query lifecycle (`interceptQuery`, driver/row source loop, `onRow`,\n* `afterQuery`) but no longer fires `beforeQuery` itself.\n*\n* Lifecycle within this helper:\n*\n* 1. For each middleware in registration order, if `beforeQuery`\n* is implemented:\n* - `checkAborted(ctx, 'beforeQuery')` short-circuits if the\n* caller already aborted at entry.\n* - The hook is invoked with `(plan, ctx, paramsMutator)`. A\n* middleware body that ignores the mutator stays compatible —\n* JavaScript allows extra positional arguments.\n* - If the hook returns a Promise, it is raced against\n* `ctx.signal` via {@link raceAgainstAbort} so cooperative\n* cancellation surfaces a `RUNTIME.ABORTED { phase:\n* 'beforeQuery' }` envelope even when the body itself\n* ignores the signal.\n*\n* Error propagation: any error thrown by a `beforeQuery` body\n* (or surfaced by the abort race) propagates out of this helper\n* unchanged. Family runtime entry points await this helper before invoking\n* `runQueryWithMiddleware`, so a rejection prevents the runner and its\n* `afterQuery` hook from running.\n*\n* Relationship to {@link runQueryWithMiddleware}: the framework's\n* `RuntimeCore.query` template calls this helper between\n* `lower(plan)` and `runQueryWithMiddleware(...)`. Family runtimes that\n* override query preparation (e.g. SQL, which inlines lower + encode for\n* direct mutator threading) call this helper themselves at the\n* equivalent point — between the family's AST → draft-plan\n* lowering and the parameter-encode step.\n*\n* Intercept ordering: this helper fires unconditionally before\n* `runQueryWithMiddleware`. `interceptQuery` (inside\n* `runQueryWithMiddleware`) therefore observes the post-`beforeQuery`\n* plan — mutator mutations are visible in the params interceptors see.\n* The trade-off is documented on `RuntimeMiddleware.interceptQuery`.\n*/\nfunction runBeforeQueryChain(plan, middleware, ctx, paramsMutator) {\n\treturn runBeforeChain(plan, middleware, ctx, paramsMutator, \"beforeQuery\", (mw) => mw.beforeQuery);\n}\n/**\n* Runs every middleware's `beforeExecute` hook in registration order,\n* threading through the (optional) family-specific `paramsMutator`.\n*\n* Why this lives outside {@link runExecuteWithMiddleware}: middleware that\n* mutates parameter values (e.g. cipherstash's bulk-encrypt SDK\n* round-trip) must run *before* the family runtime encodes those\n* parameters to driver wire format. Family runtimes call\n* `runBeforeExecuteChain` between the AST → plan lowering step and\n* the parameter encode step; the encode then observes the mutator's\n* `currentParams()` view. `runExecuteWithMiddleware` retains the rest of\n* the execute lifecycle (`interceptExecute`, driver statistics execution,\n* `afterExecute`) but no longer fires `beforeExecute` itself.\n*\n* Lifecycle within this helper:\n*\n* 1. For each middleware in registration order, if `beforeExecute`\n* is implemented:\n* - `checkAborted(ctx, 'beforeExecute')` short-circuits if the\n* caller already aborted at entry.\n* - The hook is invoked with `(plan, ctx, paramsMutator)`. A\n* middleware body that ignores the mutator stays compatible —\n* JavaScript allows extra positional arguments.\n* - If the hook returns a Promise, it is raced against\n* `ctx.signal` via {@link raceAgainstAbort} so cooperative\n* cancellation surfaces a `RUNTIME.ABORTED { phase:\n* 'beforeExecute' }` envelope even when the body itself\n* ignores the signal.\n*\n* Error propagation: any error thrown by a `beforeExecute` body\n* (or surfaced by the abort race) propagates out of this helper\n* unchanged. Family runtime entry points await this helper before invoking\n* `runExecuteWithMiddleware`, so a rejection prevents the runner and its\n* `afterExecute` hook from running.\n*\n* Relationship to {@link runExecuteWithMiddleware}: the framework's\n* `RuntimeCore.execute` template calls this helper between\n* `lower(plan)` and `runExecuteWithMiddleware(...)`. Family runtimes that\n* override execute (e.g. SQL, which inlines lower + encode for\n* direct mutator threading) call this helper themselves at the\n* equivalent point — between the family's AST → draft-plan\n* lowering and the parameter-encode step.\n*\n* Intercept ordering: this helper fires unconditionally before\n* `runExecuteWithMiddleware`. `interceptExecute` (inside\n* `runExecuteWithMiddleware`) therefore observes the post-`beforeExecute`\n* plan — mutator mutations are visible in the params interceptors see.\n* The trade-off is documented on `RuntimeMiddleware.interceptExecute`.\n*/\nfunction runBeforeExecuteChain(plan, middleware, ctx, paramsMutator) {\n\treturn runBeforeChain(plan, middleware, ctx, paramsMutator, \"beforeExecute\", (mw) => mw.beforeExecute);\n}\nasync function runBeforeChain(plan, middleware, ctx, paramsMutator, phase, selectHook) {\n\tfor (const mw of middleware) {\n\t\tconst hook = selectHook(mw);\n\t\tif (hook === void 0) continue;\n\t\tcheckAborted(ctx, phase);\n\t\tconst work = hook(plan, ctx, paramsMutator);\n\t\tif (work !== void 0) await raceAgainstAbort(Promise.resolve(work), ctx.signal, phase);\n\t}\n}\n//#endregion\n//#region src/execution/mutation-defaults.ts\n/** Registers every generator the contributors provide, by id. Two contributors providing one id is an error naming both. */\nfunction collectMutationDefaultGenerators(contributors) {\n\tconst generators = /* @__PURE__ */ new Map();\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const contributor of contributors) {\n\t\tconst nextGenerators = contributor.mutationDefaultGenerators?.() ?? [];\n\t\tfor (const generator of nextGenerators) {\n\t\t\tconst existingOwner = owners.get(generator.id);\n\t\t\tif (existingOwner !== void 0) throw runtimeError(\"RUNTIME.DUPLICATE_MUTATION_DEFAULT_GENERATOR\", `Duplicate mutation default generator '${generator.id}'.`, {\n\t\t\t\tid: generator.id,\n\t\t\t\texistingOwner,\n\t\t\t\tincomingOwner: contributor.id\n\t\t\t});\n\t\t\tgenerators.set(generator.id, generator);\n\t\t\towners.set(generator.id, contributor.id);\n\t\t}\n\t}\n\treturn generators;\n}\n/** Fails when the contract's mutation defaults name a generator the registry does not hold, listing every missing id. */\nfunction assertMutationDefaultGeneratorsAvailable(execution, generatorRegistry) {\n\tconst defaults = execution?.mutations.defaults ?? [];\n\tif (defaults.length === 0) return;\n\tconst missing = /* @__PURE__ */ new Set();\n\tfor (const mutationDefault of defaults) for (const phase of [mutationDefault.onCreate, mutationDefault.onUpdate]) {\n\t\tif (!phase) continue;\n\t\tif (phase.kind === \"generator\" && !generatorRegistry.has(phase.id)) missing.add(phase.id);\n\t}\n\tif (missing.size === 0) return;\n\tconst ids = Array.from(missing);\n\tthrow runtimeError(\"RUNTIME.MUTATION_DEFAULT_GENERATOR_MISSING\", `Contract requires mutation default generator(s) ${ids.map((id) => `'${id}'`).join(\", \")}, but no runtime component provides them.`, { ids });\n}\nfunction computeExecutionDefaultValue(spec, generatorRegistry) {\n\tconst generator = generatorRegistry.get(spec.id);\n\tif (!generator) throw runtimeError(\"RUNTIME.MUTATION_DEFAULT_GENERATOR_MISSING\", `Contract references mutation default generator '${spec.id}' but no runtime component provides it.`, { id: spec.id });\n\treturn generator.generate(spec.params);\n}\n/**\n* The defaults to write for one record: for each mutation default of the entry and namespace whose phase matches `op`, the generated value of every field the values do not carry. An update with no keys gets none.\n*/\nfunction applyMutationDefaults(execution, generatorRegistry, options) {\n\tconst defaults = execution?.mutations.defaults ?? [];\n\tif (defaults.length === 0) return [];\n\tconst isEmptyUpdate = options.op === \"update\" && Object.keys(options.values).length === 0;\n\tconst applied = [];\n\tconst appliedFields = /* @__PURE__ */ new Set();\n\tconst rowCache = /* @__PURE__ */ new Map();\n\tfor (const mutationDefault of defaults) {\n\t\tif (mutationDefault.ref.entry !== options.entry) continue;\n\t\tif (mutationDefault.ref.namespace !== options.namespace) continue;\n\t\tconst defaultSpec = options.op === \"create\" ? mutationDefault.onCreate : mutationDefault.onUpdate;\n\t\tif (!defaultSpec) continue;\n\t\tif (isEmptyUpdate) continue;\n\t\tconst fieldName = mutationDefault.ref.field;\n\t\tif (Object.hasOwn(options.values, fieldName) || appliedFields.has(fieldName)) continue;\n\t\tapplied.push({\n\t\t\tfield: fieldName,\n\t\t\tvalue: resolveScopedValue(defaultSpec, generatorRegistry, rowCache, options.defaultValueCache)\n\t\t});\n\t\tappliedFields.add(fieldName);\n\t}\n\treturn applied;\n}\nfunction resolveScopedValue(spec, generatorRegistry, rowCache, queryCache) {\n\tconst cache = scopedCache(generatorRegistry.get(spec.id)?.stability, rowCache, queryCache);\n\tif (!cache) return computeExecutionDefaultValue(spec, generatorRegistry);\n\tif (cache.has(spec.id)) return cache.get(spec.id);\n\tconst value = computeExecutionDefaultValue(spec, generatorRegistry);\n\tcache.set(spec.id, value);\n\treturn value;\n}\nfunction scopedCache(stability, rowCache, queryCache) {\n\tswitch (stability) {\n\t\tcase \"row\": return rowCache;\n\t\tcase \"query\": return queryCache;\n\t\tdefault: return;\n\t}\n}\n//#endregion\n//#region src/execution/run-with-middleware.ts\n/**\n* Drives a single query execution of `runDriver()` through the middleware\n* lifecycle's `interceptQuery` + row-source + termination phases.\n*\n* Lifecycle, in order:\n* 1. For each middleware in registration order: `interceptQuery(exec, ctx)`.\n* The first non-`undefined` result wins; subsequent middleware's\n* `interceptQuery` does not fire. On a hit, the runtime emits a\n* `middleware.interceptQuery` debug event naming the winning middleware,\n* switches the row source to the intercepted rows, and proceeds with\n* `source: 'middleware'`. On all-passthrough (every `interceptQuery`\n* returns `undefined` or is omitted), `source: 'driver'` is used and the\n* row source is `runDriver()`.\n* 2. Iterate the row source. On the driver path, for each row, for each\n* middleware in registration order: `onRow(row, exec, ctx)`; then yield\n* the row. On the intercepted hit path, `onRow` is skipped — intercepted\n* rows did not originate from a driver row stream — but rows are still\n* yielded to the consumer in order.\n* 3. On successful completion: for each middleware in registration order:\n* `afterQuery(exec, { rowCount, latencyMs, completed: true, source },\n* ctx)`.\n* 4. On any error thrown during steps 1–2: for each middleware in\n* registration order: `afterQuery(exec, { rowCount, latencyMs,\n* completed: false, source }, ctx)`. Errors thrown by `afterQuery`\n* during the error path are swallowed so they do not mask the original\n* error. The original error is then rethrown.\n*\n* `beforeQuery` is **not** fired here — see\n* {@link runBeforeQueryChain} in `before-execute-chain.ts`. Family runtimes\n* call that helper between the AST → plan lowering step and the parameter\n* encode step so middleware that mutates ParamRef values can have its\n* mutations visible to encode. `runQueryWithMiddleware` operates on the\n* fully-encoded plan; interceptors therefore observe a fully-mutated,\n* encoded plan.\n*\n* The `source` field on `AfterQueryResult` lets observers (telemetry, lints,\n* budgets) distinguish driver-served from middleware-served executions\n* without needing their own out-of-band signal.\n*\n* This helper is the single canonical implementation of the\n* intercept-and-row-source loop; family runtimes should not reimplement it.\n*/\nfunction runQueryWithMiddleware(exec, middleware, ctx, runDriver) {\n\tconst iterator = async function* () {\n\t\tconst startedAt = Date.now();\n\t\tlet rowCount = 0;\n\t\tlet completed = false;\n\t\tlet source = \"driver\";\n\t\tlet rowSource;\n\t\ttry {\n\t\t\tfor (const mw of middleware) {\n\t\t\t\tif (!mw.interceptQuery) continue;\n\t\t\t\tsource = \"middleware\";\n\t\t\t\tconst result = await mw.interceptQuery(exec, ctx);\n\t\t\t\tif (result === void 0) {\n\t\t\t\t\tsource = \"driver\";\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tctx.log.debug?.({\n\t\t\t\t\tevent: \"middleware.interceptQuery\",\n\t\t\t\t\tmiddleware: mw.name\n\t\t\t\t});\n\t\t\t\trowSource = blindCast(result.rows);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (source === \"driver\") rowSource = runDriver();\n\t\t\tfor await (const row of rowSource) {\n\t\t\t\tif (source === \"driver\") {\n\t\t\t\t\tfor (const mw of middleware) if (mw.onRow) await mw.onRow(row, exec, ctx);\n\t\t\t\t}\n\t\t\t\trowCount++;\n\t\t\t\tyield row;\n\t\t\t}\n\t\t\tcompleted = true;\n\t\t} catch (error) {\n\t\t\tawait notifyQueryCompletion(middleware, exec, ctx, {\n\t\t\t\trowCount,\n\t\t\t\tlatencyMs: Date.now() - startedAt,\n\t\t\t\tcompleted,\n\t\t\t\tsource\n\t\t\t}, true);\n\t\t\tthrow error;\n\t\t}\n\t\tawait notifyQueryCompletion(middleware, exec, ctx, {\n\t\t\trowCount,\n\t\t\tlatencyMs: Date.now() - startedAt,\n\t\t\tcompleted,\n\t\t\tsource\n\t\t}, false);\n\t};\n\treturn new AsyncIterableResult(iterator());\n}\n/**\n* Drives a single execute operation through the middleware\n* `interceptExecute` + statistics + termination phases.\n*\n* Lifecycle, in order:\n* 1. For each middleware in registration order: `interceptExecute(exec, ctx)`.\n* The first non-`undefined` result wins; subsequent middleware's\n* `interceptExecute` does not fire. On a hit, the runtime emits a\n* `middleware.interceptExecute` debug event naming the winning middleware,\n* uses the returned `stats`, and proceeds with `source: 'middleware'`.\n* On all-passthrough (every `interceptExecute` returns `undefined` or is\n* omitted), `source: 'driver'` is used and `runDriver()` supplies the\n* statistics.\n* 2. Execute operations return eager statistics. There is no row stream and\n* `onRow` does not fire.\n* 3. On successful completion: for each middleware in registration order:\n* `afterExecute(exec, { stats, latencyMs, completed: true, source }, ctx)`.\n* 4. On any error thrown during steps 1–2: for each middleware in\n* registration order: `afterExecute(exec, { latencyMs, completed: false,\n* source }, ctx)`. Errors thrown by `afterExecute` during the error path\n* are swallowed so they do not mask the original error. The original\n* error is then rethrown.\n*\n* `beforeExecute` is **not** fired here — see\n* {@link runBeforeExecuteChain} in `before-execute-chain.ts`. Family runtimes\n* call that helper between the AST → plan lowering step and the parameter\n* encode step so middleware that mutates ParamRef values can have its\n* mutations visible to encode. `runExecuteWithMiddleware` operates on the\n* fully-encoded plan; interceptors therefore observe a fully-mutated,\n* encoded plan.\n*\n* The `source` field on `AfterExecuteResult` lets observers (telemetry, lints,\n* budgets) distinguish driver-served from middleware-served executions\n* without needing their own out-of-band signal.\n*/\nasync function runExecuteWithMiddleware(exec, middleware, ctx, runDriver) {\n\tconst startedAt = Date.now();\n\tlet source = \"driver\";\n\tlet stats;\n\ttry {\n\t\tfor (const mw of middleware) {\n\t\t\tif (!mw.interceptExecute) continue;\n\t\t\tsource = \"middleware\";\n\t\t\tconst result = await mw.interceptExecute(exec, ctx);\n\t\t\tif (result === void 0) {\n\t\t\t\tsource = \"driver\";\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tctx.log.debug?.({\n\t\t\t\tevent: \"middleware.interceptExecute\",\n\t\t\t\tmiddleware: mw.name\n\t\t\t});\n\t\t\tstats = result.stats;\n\t\t\tbreak;\n\t\t}\n\t\tif (stats === void 0) stats = await runDriver();\n\t} catch (error) {\n\t\tconst latencyMs = Date.now() - startedAt;\n\t\tfor (const mw of middleware) {\n\t\t\tif (!mw.afterExecute) continue;\n\t\t\ttry {\n\t\t\t\tawait mw.afterExecute(exec, {\n\t\t\t\t\tlatencyMs,\n\t\t\t\t\tcompleted: false,\n\t\t\t\t\tsource\n\t\t\t\t}, ctx);\n\t\t\t} catch {}\n\t\t}\n\t\tthrow error;\n\t}\n\tconst latencyMs = Date.now() - startedAt;\n\tfor (const mw of middleware) if (mw.afterExecute) await mw.afterExecute(exec, {\n\t\tstats,\n\t\tlatencyMs,\n\t\tcompleted: true,\n\t\tsource\n\t}, ctx);\n\treturn stats;\n}\nasync function notifyQueryCompletion(middleware, exec, ctx, result, swallowErrors) {\n\tfor (const mw of middleware) {\n\t\tif (!mw.afterQuery) continue;\n\t\tif (swallowErrors) try {\n\t\t\tawait mw.afterQuery(exec, result, ctx);\n\t\t} catch {}\n\t\telse await mw.afterQuery(exec, result, ctx);\n\t}\n}\n//#endregion\n//#region src/execution/runtime-core.ts\n/**\n* Family-agnostic abstract runtime base.\n*\n* Defines the shared operation-specific middleware lifecycles:\n*\n* 1. `runBeforeCompile(plan)` — concrete; defaults to identity. SQL overrides\n* this to run its shared `beforeCompile` middleware-hook chain.\n* 2. `lower(plan)` — abstract. Each family produces its `*ExecutionPlan`\n* (SQL via `lowerSqlPlan`, Mongo via `adapter.lower`).\n* 3. Queries run `beforeQuery`; statements run `beforeExecute`. Both chains\n* run after lowering and before their matching driver terminal. Family\n* runtimes that expose a params mutator to downstream encoding override\n* the operation and call the matching helper at the pre-encode point.\n* 4. The matching runner processes `interceptQuery` or `interceptExecute`\n* before invoking the driver. Queries then fire `onRow` and `afterQuery`;\n* statements fire `afterExecute`.\n*\n* Concrete subclasses must implement `lower`, `runDriver`, `runExecute`, and\n* `close`.\n*\n* The class is generic over:\n* - `TPlan` — the family's pre-lowering plan type.\n* - `TExec` — the family's post-lowering (executable) plan type.\n* - `TMiddleware` — the family's middleware type. Constrained to\n* `RuntimeMiddleware<TExec>` because the operation-specific runners invoke\n* hooks with the lowered `TExec`. Middleware therefore sees the\n* post-lowering plan.\n*/\nvar RuntimeCore = class {\n\tmiddleware;\n\tctx;\n\tconstructor(options) {\n\t\tthis.middleware = options.middleware;\n\t\tthis.ctx = options.ctx;\n\t}\n\t/**\n\t* Pre-lowering hook for plan rewriting. Defaults to identity. Subclasses\n\t* may override to run a `beforeCompile` middleware chain (SQL does this\n\t* to support typed AST rewrites — see `before-compile-chain.ts`).\n\t*/\n\trunBeforeCompile(plan) {\n\t\treturn plan;\n\t}\n\tquery(plan, options) {\n\t\tconst self = this;\n\t\tconst signal = options?.signal;\n\t\tconst codecCtx = signal === void 0 ? {} : { signal };\n\t\tconst execCtx = {\n\t\t\t...self.ctx,\n\t\t\t...codecCtx,\n\t\t\tscope: options?.scope ?? self.ctx.scope,\n\t\t\tplanExecutionId: crypto.randomUUID()\n\t\t};\n\t\tasync function* generator() {\n\t\t\tcheckAborted(codecCtx, \"stream\");\n\t\t\tconst compiled = await self.runBeforeCompile(plan);\n\t\t\tconst exec = await self.lower(compiled, codecCtx);\n\t\t\tawait runBeforeQueryChain(exec, self.middleware, execCtx);\n\t\t\tyield* runQueryWithMiddleware(exec, self.middleware, execCtx, () => self.runDriver(exec));\n\t\t}\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\tasync execute(plan, options) {\n\t\tconst signal = options?.signal;\n\t\tconst codecCtx = signal === void 0 ? {} : { signal };\n\t\tconst execCtx = {\n\t\t\t...this.ctx,\n\t\t\t...codecCtx,\n\t\t\tscope: options?.scope ?? this.ctx.scope,\n\t\t\tplanExecutionId: crypto.randomUUID()\n\t\t};\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst compiled = await this.runBeforeCompile(plan);\n\t\tconst exec = await this.lower(compiled, codecCtx);\n\t\tawait runBeforeExecuteChain(exec, this.middleware, execCtx);\n\t\treturn runExecuteWithMiddleware(exec, this.middleware, execCtx, () => this.runExecute(exec));\n\t}\n};\n//#endregion\n//#region src/execution/runtime-middleware.ts\nfunction checkMiddlewareCompatibility(middleware, runtimeFamilyId, runtimeTargetId) {\n\tif (middleware.targetId !== void 0 && middleware.familyId === void 0) throw runtimeError(\"RUNTIME.MIDDLEWARE_INCOMPATIBLE\", `Middleware '${middleware.name}' specifies targetId '${middleware.targetId}' without familyId`, {\n\t\tmiddleware: middleware.name,\n\t\ttargetId: middleware.targetId\n\t});\n\tif (middleware.familyId !== void 0 && middleware.familyId !== runtimeFamilyId) throw runtimeError(\"RUNTIME.MIDDLEWARE_FAMILY_MISMATCH\", `Middleware '${middleware.name}' requires family '${middleware.familyId}' but the runtime is configured for family '${runtimeFamilyId}'`, {\n\t\tmiddleware: middleware.name,\n\t\tmiddlewareFamilyId: middleware.familyId,\n\t\truntimeFamilyId\n\t});\n\tif (middleware.targetId !== void 0 && middleware.targetId !== runtimeTargetId) throw runtimeError(\"RUNTIME.MIDDLEWARE_TARGET_MISMATCH\", `Middleware '${middleware.name}' requires target '${middleware.targetId}' but the runtime is configured for target '${runtimeTargetId}'`, {\n\t\tmiddleware: middleware.name,\n\t\tmiddlewareTargetId: middleware.targetId,\n\t\truntimeTargetId\n\t});\n}\n//#endregion\n//#region src/execution/shape.ts\n/**\n* Phantom key an emitted model type carries to name its relation properties.\n* Never present at runtime; `Scalars` and `Shape` read it to tell relations from fields.\n*/\nconst RelationKeys = Symbol(\"RelationKeys\");\n//#endregion\n//#region src/meta-builder.ts\nvar MetaBuilderImpl = class {\n\t#kind;\n\t#terminalName;\n\t#annotations = /* @__PURE__ */ new Map();\n\tconstructor(kind, terminalName) {\n\t\tthis.#kind = kind;\n\t\tthis.#terminalName = terminalName;\n\t}\n\tget annotations() {\n\t\treturn this.#annotations;\n\t}\n\tannotate(annotation) {\n\t\tconst value = annotation;\n\t\tassertAnnotationsApplicable([value], this.#kind, this.#terminalName);\n\t\tthis.#annotations.set(value.namespace, value);\n\t\treturn this;\n\t}\n};\n/**\n* Construct a lane-side meta builder for a terminal of operation kind `K`.\n*\n* Lane terminals call this with their `kind` (`'read'` or `'write'`) and a\n* `terminalName` for error messages, hand the resulting builder to the\n* user-supplied configurator callback (typed as `MetaBuilder<K>`, the\n* narrower public view), and read `meta.annotations` afterwards to thread\n* the recorded values into `plan.meta.annotations`.\n*/\nfunction createMetaBuilder(kind, terminalName) {\n\treturn new MetaBuilderImpl(kind, terminalName);\n}\n//#endregion\nexport { AsyncIterableResult, RUNTIME_ABORTED, RelationKeys, RuntimeCore, applyMutationDefaults, assertAnnotationsApplicable, assertMutationDefaultGeneratorsAvailable, checkAborted, checkMiddlewareCompatibility, collectMutationDefaultGenerators, createMetaBuilder, defineAnnotation, isRuntimeError, raceAgainstAbort, runBeforeExecuteChain, runBeforeQueryChain, runExecuteWithMiddleware, runQueryWithMiddleware, runtimeAborted, runtimeError };\n\n//# sourceMappingURL=runtime.mjs.map"],"mappings":"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"}