@prisma/orm-framework 8.0.0-rc.17-dev.17 → 8.0.0-rc.17-dev.19

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 (78) hide show
  1. package/dist/{authoring-Bk5x6Kvi.mjs → authoring-Bv-ExMUC.mjs} +2 -2
  2. package/dist/authoring-Bv-ExMUC.mjs.map +1 -0
  3. package/dist/{authoring-CiZ755jw.d.mts → authoring-Cdm02TLT.d.mts} +2 -2
  4. package/dist/{authoring-CiZ755jw.d.mts.map → authoring-Cdm02TLT.d.mts.map} +1 -1
  5. package/dist/{binder-C7GnHWyT-_H6i-B7e.d.mts → binder-C7GnHWyT-D-CMg2qt.d.mts} +6 -6
  6. package/dist/{binder-C7GnHWyT-_H6i-B7e.d.mts.map → binder-C7GnHWyT-D-CMg2qt.d.mts.map} +1 -1
  7. package/dist/{codec-p8FrxU53.mjs → codec-B-7ArtWI.mjs} +2 -2
  8. package/dist/{codec-p8FrxU53.mjs.map → codec-B-7ArtWI.mjs.map} +1 -1
  9. package/dist/components.d.mts +5 -5
  10. package/dist/components.mjs +5 -5
  11. package/dist/components__authoring.d.mts +3 -3
  12. package/dist/components__authoring.mjs +3 -3
  13. package/dist/components__codec.mjs +1 -1
  14. package/dist/components__control.d.mts +3 -3
  15. package/dist/components__control.mjs +2 -2
  16. package/dist/{config-types-B0n_v8BF.d.mts → config-types-DDmOiupw.d.mts} +4 -4
  17. package/dist/{config-types-B0n_v8BF.d.mts.map → config-types-DDmOiupw.d.mts.map} +1 -1
  18. package/dist/config.d.mts +1 -1
  19. package/dist/config__config-types.d.mts +1 -1
  20. package/dist/contract-authoring.d.mts +1 -1
  21. package/dist/contract-authoring.mjs +2 -2
  22. package/dist/{control-C4Q85sT5-CIjVNitX.mjs → control-C4Q85sT5-Dv75I30R.mjs} +2 -2
  23. package/dist/{control-C4Q85sT5-CIjVNitX.mjs.map → control-C4Q85sT5-Dv75I30R.mjs.map} +1 -1
  24. package/dist/{control-DhWsAbYJ-D9eWSlYE.d.mts → control-DhWsAbYJ-CrtxR4UW.d.mts} +2 -2
  25. package/dist/{control-DhWsAbYJ-D9eWSlYE.d.mts.map → control-DhWsAbYJ-CrtxR4UW.d.mts.map} +1 -1
  26. package/dist/{control-Bh3RtVrv.d.mts → control-DsRyU-u2.d.mts} +3 -3
  27. package/dist/{control-Bh3RtVrv.d.mts.map → control-DsRyU-u2.d.mts.map} +1 -1
  28. package/dist/control-JlpGbz6x.d.mts +1 -0
  29. package/dist/{control-COaCVAZw.mjs → control-c9xjy4Jm.mjs} +2 -2
  30. package/dist/{control-COaCVAZw.mjs.map → control-c9xjy4Jm.mjs.map} +1 -1
  31. package/dist/{declarations-DosoNVo9-Bnoie4Sr.mjs → declarations-DosoNVo9-qtyHBZ2H.mjs} +2 -2
  32. package/dist/{declarations-DosoNVo9-Bnoie4Sr.mjs.map → declarations-DosoNVo9-qtyHBZ2H.mjs.map} +1 -1
  33. package/dist/{dist-DtT9I2iL.mjs → dist-BHoPlvHD.mjs} +7 -3
  34. package/dist/dist-BHoPlvHD.mjs.map +1 -0
  35. package/dist/errors.d.mts +4 -4
  36. package/dist/errors.mjs +3 -3
  37. package/dist/errors__control.d.mts +2 -2
  38. package/dist/errors__control.mjs +1 -1
  39. package/dist/errors__execution.d.mts +1 -1
  40. package/dist/errors__execution.mjs +1 -1
  41. package/dist/errors__migration.d.mts +1 -1
  42. package/dist/errors__migration.mjs +1 -1
  43. package/dist/{execution-B6GZC7hD.mjs → execution-C19mSmeN.mjs} +2 -2
  44. package/dist/{execution-B6GZC7hD.mjs.map → execution-C19mSmeN.mjs.map} +1 -1
  45. package/dist/{execution-B82y8eTq.d.mts → execution-CodDd-o0.d.mts} +3 -3
  46. package/dist/{execution-B82y8eTq.d.mts.map → execution-CodDd-o0.d.mts.map} +1 -1
  47. package/dist/{index-DeSumOoq.d.mts → index-wEX7G1Bv.d.mts} +4 -2
  48. package/dist/{index-DeSumOoq.d.mts.map → index-wEX7G1Bv.d.mts.map} +1 -1
  49. package/dist/{migration-BMYBXx-x.mjs → migration-BBoKodRM.mjs} +2 -2
  50. package/dist/{migration-BMYBXx-x.mjs.map → migration-BBoKodRM.mjs.map} +1 -1
  51. package/dist/{migration-BRSTbjHJ.d.mts → migration-IPciO0V7.d.mts} +2 -2
  52. package/dist/{migration-BRSTbjHJ.d.mts.map → migration-IPciO0V7.d.mts.map} +1 -1
  53. package/dist/{parse-CKPyOsa_-k7l8eoV7.mjs → parse-CKPyOsa_-D_c5ZPeY.mjs} +2 -2
  54. package/dist/{parse-CKPyOsa_-k7l8eoV7.mjs.map → parse-CKPyOsa_-D_c5ZPeY.mjs.map} +1 -1
  55. package/dist/{parse-Dz0FUoAQ-CflUTYu0.d.mts → parse-Dz0FUoAQ-CKj_IY0g.d.mts} +4 -4
  56. package/dist/{parse-Dz0FUoAQ-CflUTYu0.d.mts.map → parse-Dz0FUoAQ-CKj_IY0g.d.mts.map} +1 -1
  57. package/dist/psl-parser.d.mts +5 -5
  58. package/dist/psl-parser.mjs +3 -3
  59. package/dist/psl-parser__format.d.mts +1 -1
  60. package/dist/psl-parser__format.mjs +2 -2
  61. package/dist/psl-parser__interpret.d.mts +4 -4
  62. package/dist/psl-parser__interpret.mjs +1 -1
  63. package/dist/psl-parser__syntax.d.mts +1 -1
  64. package/dist/psl-parser__syntax.mjs +2 -2
  65. package/dist/psl-printer.d.mts +1 -1
  66. package/dist/psl-printer.mjs +1 -1
  67. package/dist/{temporal-presets-CjxLjyl8-DhMFaNE2.mjs → temporal-presets-DEyPX8qQ-Bz4DdZ8v.mjs} +43 -3
  68. package/dist/temporal-presets-DEyPX8qQ-Bz4DdZ8v.mjs.map +1 -0
  69. package/dist/ts-render.d.mts +2 -2
  70. package/dist/ts-render.mjs +2 -2
  71. package/dist/{written-value-DdEQAH_R-yhLbzRP4.d.mts → written-value--KnOpj99-DByhg5hX.d.mts} +14 -3
  72. package/dist/written-value--KnOpj99-DByhg5hX.d.mts.map +1 -0
  73. package/package.json +15 -15
  74. package/dist/authoring-Bk5x6Kvi.mjs.map +0 -1
  75. package/dist/control-CXCnsj07.d.mts +0 -1
  76. package/dist/dist-DtT9I2iL.mjs.map +0 -1
  77. package/dist/temporal-presets-CjxLjyl8-DhMFaNE2.mjs.map +0 -1
  78. package/dist/written-value-DdEQAH_R-yhLbzRP4.d.mts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"control-COaCVAZw.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/control.mjs"],"sourcesContent":["import { n as runtimeError } from \"./runtime-error-BA9d7XjZ.mjs\";\nimport { n as assembleDataTypes, o as objectSchemaKeys } from \"./data-type-4xQlxYB5.mjs\";\nimport { n as codecDescriptorMissing, r as codecForRef } from \"./resolve-codec-qqMjZrmn.mjs\";\nimport { n as aggregateDescriptorKey, r as isAggregateDescriptor, t as mergeCapabilityMatrices } from \"./capabilities-CnCdDH1J.mjs\";\nimport { E as isAuthoringArgRef, L as tagEntryKey, M as isTagEntryKey, N as mergeAuthoringAttributeSpecs, O as isAuthoringFieldPresetDescriptor, P as mergeAuthoringNamespaces, _ as authoringEntryType, b as collectScalarTypeConstructors, c as TAGGED_LITERAL_MAX_BYTES, g as assertResolvableTypeConstructorTemplates, h as assertNoCrossRegistryCollisions, j as isAuthoringTypeConstructorDescriptor, m as resolveTemplateTagEscapes, p as resolvePslBacktickEscapes, s as timestampNowControlDescriptor, u as describeTaggedLiteralFailure, y as collectContributedDescriptorPaths } from \"./temporal-presets-CjxLjyl8.mjs\";\nimport \"./namespace-VUH2dgnS.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError, isInternalError } 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/** Whether the snapshot store can address `storageHash`. */\nfunction isStorageHashHex(storageHash) {\n\treturn STORAGE_HASH_PATTERN.test(storageHash);\n}\n/** Validate a storage hash for use as a directory name. */\nfunction storageHashHex(storageHash) {\n\tif (!isStorageHashHex(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-migration-types.ts\n/** The origin a plan from `contract` asserts, or `null` when it starts from no contract. */\nfunction planOriginOf(contract) {\n\treturn contract === null ? null : { storageHash: contract.storage.storageHash };\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/** Whether two markers hold the same hashes, `null` standing for no marker. */\nfunction sameMarkerHashes(a, b) {\n\tif (a === null || b === null) return a === b;\n\treturn a.storageHash === b.storageHash && a.profileHash === b.profileHash;\n}\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/** 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}\nfunction descriptorsIn(namespace, isLeaf, path = []) {\n\treturn Object.entries(namespace ?? {}).flatMap(([key, value]) => {\n\t\tconst currentPath = [...path, key];\n\t\tif (isLeaf(value)) return [{\n\t\t\tpath: currentPath.join(\".\"),\n\t\t\tdescriptor: value\n\t\t}];\n\t\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) return [];\n\t\treturn descriptorsIn(value, isLeaf, currentPath);\n\t});\n}\n/** Every type constructor and field preset a component contributes. */\nfunction contributedConstructors(descriptor) {\n\treturn [...descriptorsIn(descriptor.authoring?.type, isAuthoringTypeConstructorDescriptor), ...descriptorsIn(descriptor.authoring?.field, isAuthoringFieldPresetDescriptor)].map((entry) => ({\n\t\t...entry,\n\t\tcontributedBy: descriptor.id\n\t}));\n}\nfunction argumentMappedKeys(descriptor) {\n\treturn Object.entries(descriptor.output.typeParams ?? {}).flatMap(([key, template]) => isAuthoringArgRef(template) ? [key] : []);\n}\nfunction enforceConstructorInvariants(input) {\n\tconst inferredBy = /* @__PURE__ */ new Map();\n\tfor (const contributed of input.constructors) {\n\t\tconst { path, descriptor, contributedBy } = contributed;\n\t\tconst kind = descriptor.kind === \"typeConstructor\" ? \"Type constructor\" : \"Field preset\";\n\t\tconst codecId = descriptor.output.codecId;\n\t\tconst codec = input.codecDescriptorFor(codecId);\n\t\tif (codec === void 0) throw new InternalError(`${kind} \"${path}\" contributed by \"${contributedBy}\" names codec \"${codecId}\", which no component registers.`);\n\t\tif (descriptor.kind !== \"typeConstructor\") continue;\n\t\tconst codecKeys = codec.paramsSchema === void 0 ? [] : objectSchemaKeys(codec.paramsSchema);\n\t\tif (codecKeys !== void 0) {\n\t\t\tconst declared = /* @__PURE__ */ new Set([...codecKeys, ...objectSchemaKeys(input.lookup.get(codec.dataType)?.params) ?? []]);\n\t\t\tfor (const key of argumentMappedKeys(descriptor)) if (!declared.has(key)) throw new InternalError(`Type constructor \"${path}\" contributed by \"${contributedBy}\" maps an argument onto the parameter \"${key}\", which neither data type \"${codec.dataType}\" nor codec \"${codecId}\" declares.`);\n\t\t}\n\t\tif (descriptor.inferred !== true) continue;\n\t\tconst existing = inferredBy.get(codec.dataType);\n\t\tif (existing !== void 0) throw new InternalError(`Type constructors \"${existing.path}\" contributed by \"${existing.contributedBy}\" and \"${path}\" contributed by \"${contributedBy}\" are both marked inferred for data type \"${codec.dataType}\"; a data type has at most one.`);\n\t\tinferredBy.set(codec.dataType, contributed);\n\t}\n}\n/**\n* The 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* 5. every type constructor and field preset names a registered codec;\n* 6. a type constructor maps its arguments only onto parameters its data type or codec declares;\n* 7. at most one type constructor per data type is marked inferred.\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\tconst written = entry.written;\n\t\tconst tagType = written.kind === \"tag\" && \"type\" in written ? written.type : void 0;\n\t\tif (isTagEntryKey(key) || tagType !== void 0) {\n\t\t\tif (written.kind !== \"tag\" || tagType === void 0 || key !== tagEntryKey(written.tag)) throw runtimeError(\"CONTRACT.DATA_TYPE_ENTRY_KEY_INVALID\", `Authoring entry \"${key}\" contributed by \"${contributedBy}\" must sit under its tag's key and name the data type its body is, or sit under that data type's id and name none.`, {\n\t\t\t\tkey,\n\t\t\t\tcontributedBy\n\t\t\t});\n\t\t\tif (!input.lookup.has(tagType)) unregistered(contributedBy, tagType, `Authoring entry \"${key}\"`);\n\t\t\tcontinue;\n\t\t}\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 }) => [authoringEntryType(key, entry), ...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\tenforceConstructorInvariants(input);\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 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 (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 (error) {\n\t\t\t\tif (isInternalError(error)) throw error;\n\t\t\t}\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\tconst registry = {\n\t\tget: (id) => byId.get(id),\n\t\tforCodecRef(ref) {\n\t\t\treturn codecForRef(registry, ref) ?? codecDescriptorMissing(ref, \"CONTRACT.CODEC_DESCRIPTOR_MISSING\");\n\t\t},\n\t\tforColumn: () => void 0,\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\treturn registry;\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\tconstructors: allDescriptors.flatMap(contributedConstructors),\n\t\tcodecDescriptorFor: (codecId) => codecLookup.descriptorFor?.(codecId)\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\tdataTypes: {\n\t\t\tentries: authoringContributions.dataTypes,\n\t\t\tlookup: dataTypes.lookup\n\t\t},\n\t\tdeclaredDataTypes: dataTypes.declared,\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/migration-statements.ts\n/** A key that is equal for two subjects exactly when they name the same thing. */\nfunction migrationSubjectKey(subject) {\n\tswitch (subject.kind) {\n\t\tcase \"model\": return JSON.stringify([\n\t\t\t\"model\",\n\t\t\tsubject.namespaceId,\n\t\t\tsubject.model\n\t\t]);\n\t\tcase \"field\": return JSON.stringify([\n\t\t\t\"field\",\n\t\t\tsubject.namespaceId,\n\t\t\tsubject.model,\n\t\t\tsubject.field\n\t\t]);\n\t\tcase \"storage\": return JSON.stringify([\"storage\", subject.name]);\n\t}\n}\n/**\n* A model's name in messages: `namespace.Model`, or `Model` alone in the unbound namespace, whose\n* id is internal.\n*/\nfunction modelDisplayName(coordinate) {\n\treturn coordinate.namespaceId === \"__unbound__\" ? coordinate.model : `${coordinate.namespaceId}.${coordinate.model}`;\n}\nfunction modelName(contract, coordinate) {\n\treturn Object.keys(contract.domain.namespaces).length > 1 ? modelDisplayName(coordinate) : coordinate.model;\n}\nfunction coordinateJson(coordinate) {\n\tif (coordinate.namespaceId !== \"__unbound__\") return coordinate;\n\tconst { namespaceId: _unbound, ...rest } = coordinate;\n\treturn rest;\n}\n/** The statement as JSON output writes it. */\nfunction migrationStatementJson(statement) {\n\treturn statement.entity === \"model\" ? {\n\t\t...statement,\n\t\tfrom: coordinateJson(statement.from),\n\t\tto: coordinateJson(statement.to)\n\t} : {\n\t\t...statement,\n\t\tfrom: coordinateJson(statement.from),\n\t\tto: coordinateJson(statement.to)\n\t};\n}\n/** The subject as JSON output writes it. */\nfunction migrationSubjectJson(subject) {\n\tswitch (subject.kind) {\n\t\tcase \"model\": return {\n\t\t\tkind: \"model\",\n\t\t\t...coordinateJson({\n\t\t\t\tnamespaceId: subject.namespaceId,\n\t\t\t\tmodel: subject.model\n\t\t\t})\n\t\t};\n\t\tcase \"field\": return {\n\t\t\tkind: \"field\",\n\t\t\t...coordinateJson({\n\t\t\t\tnamespaceId: subject.namespaceId,\n\t\t\t\tmodel: subject.model,\n\t\t\t\tfield: subject.field\n\t\t\t})\n\t\t};\n\t\tcase \"storage\": return subject;\n\t}\n}\n/**\n* The text that reports a statement, in domain names: a model or field is named with its\n* namespace only when its contract has more than one. A renamed field is named through its model as\n* the destination contract names it, as the statement itself is written.\n*/\nfunction describeMigrationStatement(statement, fromContract, contract) {\n\tif (statement.entity === \"model\") return `rename model \"${modelName(fromContract, statement.from)}\" to \"${modelName(contract, statement.to)}\"`;\n\tconst model = modelName(contract, statement.to);\n\treturn `rename field \"${model}.${statement.from.field}\" to \"${model}.${statement.to.field}\"`;\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\t...ifDefined(\"explanation\", node.explainMismatch?.(void 0))\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\t...ifDefined(\"explanation\", expected.explainMismatch?.(actual))\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\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, assertUniqueCodecOwner, buildExtensionLoadOrder, contractSnapshotJsonSpecifier, contractSnapshotTypesSpecifier, createControlStack, describeMigrationStatement, describeTaggedLiteralFailure, diffSchemas, dispositionForCategory, enforceDataTypeInvariants, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractQueryOperationTypeImports, hasMigrations, hasOperationPreview, hasPslContractBuild, hasPslContractInfer, hasSchemaSubjectClassifier, hasSchemaView, isStorageHashHex, issueOutcome, migrationStatementJson, migrationSubjectJson, migrationSubjectKey, modelDisplayName, orderIssuesByDependencies, planOriginOf, resolvePslBacktickEscapes, resolveTemplateTagEscapes, sameMarkerHashes, storageHashHex, timestampNowControlDescriptor };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"control-c9xjy4Jm.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/control.mjs"],"sourcesContent":["import { n as runtimeError } from \"./runtime-error-BA9d7XjZ.mjs\";\nimport { n as assembleDataTypes, o as objectSchemaKeys } from \"./data-type-4xQlxYB5.mjs\";\nimport { n as codecDescriptorMissing, r as codecForRef } from \"./resolve-codec-qqMjZrmn.mjs\";\nimport { n as aggregateDescriptorKey, r as isAggregateDescriptor, t as mergeCapabilityMatrices } from \"./capabilities-CnCdDH1J.mjs\";\nimport { D as isAuthoringArgRef, F as mergeAuthoringNamespaces, M as isAuthoringTypeConstructorDescriptor, N as isTagEntryKey, P as mergeAuthoringAttributeSpecs, R as tagEntryKey, _ as assertResolvableTypeConstructorTemplates, b as collectContributedDescriptorPaths, c as TAGGED_LITERAL_MAX_BYTES, g as assertNoCrossRegistryCollisions, k as isAuthoringFieldPresetDescriptor, m as resolveTemplateTagEscapes, p as resolvePslBacktickEscapes, s as timestampNowControlDescriptor, u as describeTaggedLiteralFailure, v as authoringEntryType, x as collectScalarTypeConstructors } from \"./temporal-presets-DEyPX8qQ.mjs\";\nimport \"./namespace-VUH2dgnS.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError, isInternalError } 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/** Whether the snapshot store can address `storageHash`. */\nfunction isStorageHashHex(storageHash) {\n\treturn STORAGE_HASH_PATTERN.test(storageHash);\n}\n/** Validate a storage hash for use as a directory name. */\nfunction storageHashHex(storageHash) {\n\tif (!isStorageHashHex(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-migration-types.ts\n/** The origin a plan from `contract` asserts, or `null` when it starts from no contract. */\nfunction planOriginOf(contract) {\n\treturn contract === null ? null : { storageHash: contract.storage.storageHash };\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/** Whether two markers hold the same hashes, `null` standing for no marker. */\nfunction sameMarkerHashes(a, b) {\n\tif (a === null || b === null) return a === b;\n\treturn a.storageHash === b.storageHash && a.profileHash === b.profileHash;\n}\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/** 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}\nfunction descriptorsIn(namespace, isLeaf, path = []) {\n\treturn Object.entries(namespace ?? {}).flatMap(([key, value]) => {\n\t\tconst currentPath = [...path, key];\n\t\tif (isLeaf(value)) return [{\n\t\t\tpath: currentPath.join(\".\"),\n\t\t\tdescriptor: value\n\t\t}];\n\t\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) return [];\n\t\treturn descriptorsIn(value, isLeaf, currentPath);\n\t});\n}\n/** Every type constructor and field preset a component contributes. */\nfunction contributedConstructors(descriptor) {\n\treturn [...descriptorsIn(descriptor.authoring?.type, isAuthoringTypeConstructorDescriptor), ...descriptorsIn(descriptor.authoring?.field, isAuthoringFieldPresetDescriptor)].map((entry) => ({\n\t\t...entry,\n\t\tcontributedBy: descriptor.id\n\t}));\n}\nfunction argumentMappedKeys(descriptor) {\n\treturn Object.entries(descriptor.output.typeParams ?? {}).flatMap(([key, template]) => isAuthoringArgRef(template) ? [key] : []);\n}\nfunction enforceConstructorInvariants(input) {\n\tconst inferredBy = /* @__PURE__ */ new Map();\n\tfor (const contributed of input.constructors) {\n\t\tconst { path, descriptor, contributedBy } = contributed;\n\t\tconst kind = descriptor.kind === \"typeConstructor\" ? \"Type constructor\" : \"Field preset\";\n\t\tconst codecId = descriptor.output.codecId;\n\t\tconst codec = input.codecDescriptorFor(codecId);\n\t\tif (codec === void 0) throw new InternalError(`${kind} \"${path}\" contributed by \"${contributedBy}\" names codec \"${codecId}\", which no component registers.`);\n\t\tif (descriptor.kind !== \"typeConstructor\") continue;\n\t\tconst codecKeys = codec.paramsSchema === void 0 ? [] : objectSchemaKeys(codec.paramsSchema);\n\t\tif (codecKeys !== void 0) {\n\t\t\tconst declared = /* @__PURE__ */ new Set([...codecKeys, ...objectSchemaKeys(input.lookup.get(codec.dataType)?.params) ?? []]);\n\t\t\tfor (const key of argumentMappedKeys(descriptor)) if (!declared.has(key)) throw new InternalError(`Type constructor \"${path}\" contributed by \"${contributedBy}\" maps an argument onto the parameter \"${key}\", which neither data type \"${codec.dataType}\" nor codec \"${codecId}\" declares.`);\n\t\t}\n\t\tif (descriptor.inferred !== true) continue;\n\t\tconst existing = inferredBy.get(codec.dataType);\n\t\tif (existing !== void 0) throw new InternalError(`Type constructors \"${existing.path}\" contributed by \"${existing.contributedBy}\" and \"${path}\" contributed by \"${contributedBy}\" are both marked inferred for data type \"${codec.dataType}\"; a data type has at most one.`);\n\t\tinferredBy.set(codec.dataType, contributed);\n\t}\n}\n/**\n* The 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* 5. every type constructor and field preset names a registered codec;\n* 6. a type constructor maps its arguments only onto parameters its data type or codec declares;\n* 7. at most one type constructor per data type is marked inferred.\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\tconst written = entry.written;\n\t\tconst tagType = written.kind === \"tag\" && \"type\" in written ? written.type : void 0;\n\t\tif (isTagEntryKey(key) || tagType !== void 0) {\n\t\t\tif (written.kind !== \"tag\" || tagType === void 0 || key !== tagEntryKey(written.tag)) throw runtimeError(\"CONTRACT.DATA_TYPE_ENTRY_KEY_INVALID\", `Authoring entry \"${key}\" contributed by \"${contributedBy}\" must sit under its tag's key and name the data type its body is, or sit under that data type's id and name none.`, {\n\t\t\t\tkey,\n\t\t\t\tcontributedBy\n\t\t\t});\n\t\t\tif (!input.lookup.has(tagType)) unregistered(contributedBy, tagType, `Authoring entry \"${key}\"`);\n\t\t\tcontinue;\n\t\t}\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 }) => [authoringEntryType(key, entry), ...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\tenforceConstructorInvariants(input);\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 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 (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 (error) {\n\t\t\t\tif (isInternalError(error)) throw error;\n\t\t\t}\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\tconst registry = {\n\t\tget: (id) => byId.get(id),\n\t\tforCodecRef(ref) {\n\t\t\treturn codecForRef(registry, ref) ?? codecDescriptorMissing(ref, \"CONTRACT.CODEC_DESCRIPTOR_MISSING\");\n\t\t},\n\t\tforColumn: () => void 0,\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\treturn registry;\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\tconstructors: allDescriptors.flatMap(contributedConstructors),\n\t\tcodecDescriptorFor: (codecId) => codecLookup.descriptorFor?.(codecId)\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\tdataTypes: {\n\t\t\tentries: authoringContributions.dataTypes,\n\t\t\tlookup: dataTypes.lookup\n\t\t},\n\t\tdeclaredDataTypes: dataTypes.declared,\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/migration-statements.ts\n/** A key that is equal for two subjects exactly when they name the same thing. */\nfunction migrationSubjectKey(subject) {\n\tswitch (subject.kind) {\n\t\tcase \"model\": return JSON.stringify([\n\t\t\t\"model\",\n\t\t\tsubject.namespaceId,\n\t\t\tsubject.model\n\t\t]);\n\t\tcase \"field\": return JSON.stringify([\n\t\t\t\"field\",\n\t\t\tsubject.namespaceId,\n\t\t\tsubject.model,\n\t\t\tsubject.field\n\t\t]);\n\t\tcase \"storage\": return JSON.stringify([\"storage\", subject.name]);\n\t}\n}\n/**\n* A model's name in messages: `namespace.Model`, or `Model` alone in the unbound namespace, whose\n* id is internal.\n*/\nfunction modelDisplayName(coordinate) {\n\treturn coordinate.namespaceId === \"__unbound__\" ? coordinate.model : `${coordinate.namespaceId}.${coordinate.model}`;\n}\nfunction modelName(contract, coordinate) {\n\treturn Object.keys(contract.domain.namespaces).length > 1 ? modelDisplayName(coordinate) : coordinate.model;\n}\nfunction coordinateJson(coordinate) {\n\tif (coordinate.namespaceId !== \"__unbound__\") return coordinate;\n\tconst { namespaceId: _unbound, ...rest } = coordinate;\n\treturn rest;\n}\n/** The statement as JSON output writes it. */\nfunction migrationStatementJson(statement) {\n\treturn statement.entity === \"model\" ? {\n\t\t...statement,\n\t\tfrom: coordinateJson(statement.from),\n\t\tto: coordinateJson(statement.to)\n\t} : {\n\t\t...statement,\n\t\tfrom: coordinateJson(statement.from),\n\t\tto: coordinateJson(statement.to)\n\t};\n}\n/** The subject as JSON output writes it. */\nfunction migrationSubjectJson(subject) {\n\tswitch (subject.kind) {\n\t\tcase \"model\": return {\n\t\t\tkind: \"model\",\n\t\t\t...coordinateJson({\n\t\t\t\tnamespaceId: subject.namespaceId,\n\t\t\t\tmodel: subject.model\n\t\t\t})\n\t\t};\n\t\tcase \"field\": return {\n\t\t\tkind: \"field\",\n\t\t\t...coordinateJson({\n\t\t\t\tnamespaceId: subject.namespaceId,\n\t\t\t\tmodel: subject.model,\n\t\t\t\tfield: subject.field\n\t\t\t})\n\t\t};\n\t\tcase \"storage\": return subject;\n\t}\n}\n/**\n* The text that reports a statement, in domain names: a model or field is named with its\n* namespace only when its contract has more than one. A renamed field is named through its model as\n* the destination contract names it, as the statement itself is written.\n*/\nfunction describeMigrationStatement(statement, fromContract, contract) {\n\tif (statement.entity === \"model\") return `rename model \"${modelName(fromContract, statement.from)}\" to \"${modelName(contract, statement.to)}\"`;\n\tconst model = modelName(contract, statement.to);\n\treturn `rename field \"${model}.${statement.from.field}\" to \"${model}.${statement.to.field}\"`;\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\t...ifDefined(\"explanation\", node.explainMismatch?.(void 0))\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\t...ifDefined(\"explanation\", expected.explainMismatch?.(actual))\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\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, assertUniqueCodecOwner, buildExtensionLoadOrder, contractSnapshotJsonSpecifier, contractSnapshotTypesSpecifier, createControlStack, describeMigrationStatement, describeTaggedLiteralFailure, diffSchemas, dispositionForCategory, enforceDataTypeInvariants, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractQueryOperationTypeImports, hasMigrations, hasOperationPreview, hasPslContractBuild, hasPslContractInfer, hasSchemaSubjectClassifier, hasSchemaView, isStorageHashHex, issueOutcome, migrationStatementJson, migrationSubjectJson, migrationSubjectKey, modelDisplayName, orderIssuesByDependencies, planOriginOf, resolvePslBacktickEscapes, resolveTemplateTagEscapes, sameMarkerHashes, storageHashHex, timestampNowControlDescriptor };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { c as canonicalizeTaggedLiteralBody, j as resolvePslBacktickEscapes } from "./temporal-presets-CjxLjyl8-DhMFaNE2.mjs";
1
+ import { c as canonicalizeTaggedLiteralBody, j as resolvePslBacktickEscapes } from "./temporal-presets-DEyPX8qQ-Bz4DdZ8v.mjs";
2
2
  import { r as isTerminatedStringLiteral } from "./tokenizer-BMz7z2KR-J0yZ4im3.mjs";
3
3
  import { c as findFirstChild, o as filterChildren, s as findChildToken, t as SyntaxNode, u as readDocComment } from "./ast-helpers-CzydMPdh-Mi0SrZRa.mjs";
4
4
  //#region ../../../1-framework/2-authoring/psl-parser/dist/declarations-DosoNVo9.mjs
@@ -822,4 +822,4 @@ var NamedTypeDeclarationAst = class NamedTypeDeclarationAst {
822
822
  //#endregion
823
823
  export { TaggedLiteralExprAst as C, dottedPathsIn as D, castExpression as E, StringLiteralExprAst as S, TypesBlockAst as T, NumberLiteralExprAst as _, CompositeTypeDeclarationAst as a, PathExprAst as b, FieldDeclarationAst as c, IdentifierAst as d, KeyValuePairAst as f, NamespaceDeclarationAst as g, NamedTypeDeclarationAst as h, BooleanLiteralExprAst as i, FunctionCallAst as l, ModelDeclarationAst as m, AttributeArgAst as n, DocumentAst as o, ModelAttributeAst as p, AttributeArgListAst as r, FieldAttributeAst as s, ArrayLiteralAst as t, GenericBlockDeclarationAst as u, ObjectFieldAst as v, TypeAnnotationAst as w, QualifiedNameAst as x, ObjectLiteralExprAst as y };
824
824
 
825
- //# sourceMappingURL=declarations-DosoNVo9-Bnoie4Sr.mjs.map
825
+ //# sourceMappingURL=declarations-DosoNVo9-qtyHBZ2H.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"declarations-DosoNVo9-Bnoie4Sr.mjs","names":["#segmentBefore","#segmentAfter","#separatorCount","#questionTokens"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/declarations-DosoNVo9.mjs"],"sourcesContent":["import { r as isTerminatedStringLiteral } from \"./tokenizer-BMz7z2KR.mjs\";\nimport { i as findFirstChild, n as filterChildren, o as readDocComment, r as findChildToken, s as SyntaxNode } from \"./ast-helpers-CzydMPdh.mjs\";\nimport { canonicalizeTaggedLiteralBody } from \"@internal/framework-components/authoring\";\nimport { resolvePslBacktickEscapes } from \"@internal/framework-components/control\";\n//#region src/syntax/ast/identifier.ts\nvar IdentifierAst = class IdentifierAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn this.token()?.text;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Identifier\" ? new IdentifierAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/qualified-name.ts\n/** A namespace-qualified name, e.g. `pgvector.Vector` or `supabase:auth.User`. */\nvar QualifiedNameAst = class QualifiedNameAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t#segmentBefore(boundary) {\n\t\tlet found;\n\t\tfor (const segment of filterChildren(this.syntax, IdentifierAst.cast)) {\n\t\t\tif (segment.syntax.offset >= boundary) break;\n\t\t\tfound = segment;\n\t\t}\n\t\treturn found;\n\t}\n\t#segmentAfter(boundary) {\n\t\tfor (const segment of filterChildren(this.syntax, IdentifierAst.cast)) if (segment.syntax.offset > boundary) return segment;\n\t}\n\t#separatorCount(kind) {\n\t\tlet count = 0;\n\t\tfor (const child of this.syntax.children()) if (!(child instanceof SyntaxNode) && child.kind === kind) count++;\n\t\treturn count;\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tdot() {\n\t\treturn findChildToken(this.syntax, \"Dot\");\n\t}\n\tspace() {\n\t\tconst colon = this.colon();\n\t\tif (!colon) return void 0;\n\t\treturn this.#segmentBefore(colon.offset);\n\t}\n\tnamespace() {\n\t\tconst dot = this.dot();\n\t\tif (!dot) return void 0;\n\t\treturn this.#segmentBefore(dot.offset);\n\t}\n\tidentifier() {\n\t\tconst dot = this.dot();\n\t\tif (dot) return this.#segmentAfter(dot.offset);\n\t\tconst colon = this.colon();\n\t\tif (colon) return this.#segmentAfter(colon.offset);\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tsegments() {\n\t\treturn filterChildren(this.syntax, IdentifierAst.cast);\n\t}\n\t/**\n\t* Every identifier segment, in source order. A bare `Vector` yields\n\t* `['Vector']`; a qualified `pgvector.Vector` yields `['pgvector', 'Vector']`.\n\t*/\n\tpath() {\n\t\tconst segments = [];\n\t\tfor (const segment of this.segments()) {\n\t\t\tconst text = segment.token()?.text;\n\t\t\tif (text !== void 0) segments.push(text);\n\t\t}\n\t\treturn segments;\n\t}\n\t/** True iff this is a single unqualified identifier whose text equals `name`. */\n\tisSimpleName(name) {\n\t\tif (this.dot() !== void 0 || this.colon() !== void 0) return false;\n\t\treturn this.identifier()?.token()?.text === name;\n\t}\n\t/**\n\t* Flags a malformed name with more qualifier segments than allowed (a second\n\t* `:`-space or a second `.`-namespace).\n\t*/\n\tisOverQualified() {\n\t\treturn this.#separatorCount(\"Dot\") > 1 || this.#separatorCount(\"Colon\") > 1;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"QualifiedName\" ? new QualifiedNameAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/expressions.ts\nvar FunctionCallAst = class FunctionCallAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t/** The callee when it is a bare name, such as `now` in `now()`; `undefined` when the callee is dotted. */\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/**\n\t* The callee's segments, in source order. A bare `Vector(…)` yields\n\t* `['Vector']`; `pgvector.Vector(…)` yields `['pgvector', 'Vector']`;\n\t* `address.geo.lat(…)` yields `['address', 'geo', 'lat']`. Empty when the\n\t* call carries no identifier.\n\t*/\n\tpath() {\n\t\treturn segmentNames((this.name() ?? this.memberPath())?.syntax ?? this.syntax);\n\t}\n\t/** The callee when it is dotted, such as `address.city` in `address.city(sort: Asc)`; `undefined` for a bare callee. */\n\tmemberPath() {\n\t\treturn findFirstChild(this.syntax, PathExprAst.cast);\n\t}\n\tlparen() {\n\t\treturn findChildToken(this.syntax, \"LParen\");\n\t}\n\trparen() {\n\t\treturn findChildToken(this.syntax, \"RParen\");\n\t}\n\t*args() {\n\t\tyield* filterChildren(this.syntax, AttributeArgAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FunctionCall\" ? new FunctionCallAst(node) : void 0;\n\t}\n};\nfunction segmentNames(node) {\n\tconst segments = [];\n\tfor (const segment of filterChildren(node, IdentifierAst.cast)) {\n\t\tconst text = segment.token()?.text;\n\t\tif (text !== void 0) segments.push(text);\n\t}\n\treturn segments;\n}\n/** A dotted member path in expression position, such as `address.city` in `@@index([address.city])`. */\nvar PathExprAst = class PathExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t*segments() {\n\t\tyield* filterChildren(this.syntax, IdentifierAst.cast);\n\t}\n\t/**\n\t* The segment names, in source order: `['address', 'city']` for `address.city`. A path that ends\n\t* in a `.` with no name after it, as in `address.`, ends in an empty name.\n\t*/\n\tpath() {\n\t\tconst segments = segmentNames(this.syntax);\n\t\treturn this.syntax.lastToken?.kind === \"Dot\" ? [...segments, \"\"] : segments;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"PathExpr\" ? new PathExprAst(node) : void 0;\n\t}\n};\nvar ArrayLiteralAst = class ArrayLiteralAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlbracket() {\n\t\treturn findChildToken(this.syntax, \"LBracket\");\n\t}\n\trbracket() {\n\t\treturn findChildToken(this.syntax, \"RBracket\");\n\t}\n\t*elements() {\n\t\tyield* filterChildren(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ArrayLiteral\" ? new ArrayLiteralAst(node) : void 0;\n\t}\n};\nconst HEX = /^[0-9a-fA-F]+$/;\nfunction decodeFixedHex(raw, start, width) {\n\tif (start + width > raw.length) return void 0;\n\tconst hex = raw.slice(start, start + width);\n\tif (!HEX.test(hex)) return void 0;\n\treturn String.fromCharCode(Number.parseInt(hex, 16));\n}\nfunction decodeStringLiteral(raw) {\n\tlet out = \"\";\n\tlet i = 0;\n\twhile (i < raw.length) {\n\t\tconst ch = raw.charAt(i);\n\t\tif (ch !== \"\\\\\" || i + 1 >= raw.length) {\n\t\t\tout += ch;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tconst next = raw.charAt(i + 1);\n\t\tswitch (next) {\n\t\t\tcase \"/\":\n\t\t\t\tout += \"/\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"b\":\n\t\t\t\tout += \"\\b\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"f\":\n\t\t\t\tout += \"\\f\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"n\":\n\t\t\t\tout += \"\\n\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"r\":\n\t\t\t\tout += \"\\r\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"t\":\n\t\t\t\tout += \"\t\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"\\\"\":\n\t\t\t\tout += \"\\\"\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"'\":\n\t\t\t\tout += \"'\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"\\\\\":\n\t\t\t\tout += \"\\\\\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"x\": {\n\t\t\t\tconst decoded = decodeFixedHex(raw, i + 2, 2);\n\t\t\t\tif (decoded === void 0) {\n\t\t\t\t\tout += \"\\\\x\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout += decoded;\n\t\t\t\ti += 4;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase \"u\": {\n\t\t\t\tconst decoded = decodeFixedHex(raw, i + 2, 4);\n\t\t\t\tif (decoded === void 0) {\n\t\t\t\t\tout += \"\\\\u\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout += decoded;\n\t\t\t\ti += 6;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tout += `\\\\${next}`;\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\treturn out;\n}\nvar StringLiteralExprAst = class StringLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"StringLiteral\");\n\t}\n\tquote() {\n\t\tconst quote = this.token()?.text.charAt(0);\n\t\treturn quote === \"\\\"\" || quote === \"'\" || quote === \"`\" ? quote : void 0;\n\t}\n\t/**\n\t* The decoded string. A `\"` or `'` string resolves the usual escapes; a backtick string resolves\n\t* only `` \\` `` and `\\\\`, keeping every other backslash sequence as written.\n\t*/\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\tconst raw = isTerminatedStringLiteral(tok.text) ? tok.text.slice(1, -1) : tok.text.slice(1);\n\t\treturn this.quote() === \"`\" ? resolvePslBacktickEscapes(raw) : decodeStringLiteral(raw);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"StringLiteralExpr\" ? new StringLiteralExprAst(node) : void 0;\n\t}\n};\n/** `` tag`body` ``, `tag\"body\"`, or `tag'body'`: a qualified-name tag followed by a string literal. */\nvar TaggedLiteralExprAst = class TaggedLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttag() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/** The tag without trivia, e.g. `postgis.geometry`. */\n\ttagName() {\n\t\tconst tag = this.tag();\n\t\tconst space = tag?.space()?.name();\n\t\tconst namespace = tag?.namespace()?.name();\n\t\treturn (space === void 0 ? \"\" : `${space}:`) + (namespace === void 0 ? \"\" : `${namespace}.`) + (tag?.identifier()?.name() ?? \"\");\n\t}\n\tliteral() {\n\t\treturn findFirstChild(this.syntax, StringLiteralExprAst.cast);\n\t}\n\tcanonicalization() {\n\t\treturn canonicalizeTaggedLiteralBody(this.literal()?.value() ?? \"\");\n\t}\n\t/** The canonical text shared with the TypeScript `sql` tag, or `undefined` when canonicalization fails. */\n\ttext() {\n\t\tconst result = this.canonicalization();\n\t\treturn result.ok ? result.text : void 0;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TaggedLiteral\" ? new TaggedLiteralExprAst(node) : void 0;\n\t}\n};\nvar NumberLiteralExprAst = class NumberLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"NumberLiteral\");\n\t}\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\treturn Number(tok.text);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"NumberLiteralExpr\" ? new NumberLiteralExprAst(node) : void 0;\n\t}\n};\nvar BooleanLiteralExprAst = class BooleanLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\tif (tok.text === \"true\") return true;\n\t\tif (tok.text === \"false\") return false;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"BooleanLiteralExpr\" ? new BooleanLiteralExprAst(node) : void 0;\n\t}\n};\nvar ObjectLiteralExprAst = class ObjectLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, ObjectFieldAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ObjectLiteralExpr\" ? new ObjectLiteralExprAst(node) : void 0;\n\t}\n};\nvar ObjectFieldAst = class ObjectFieldAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkey() {\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Colon\") break;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn IdentifierAst.cast(child);\n\t\t}\n\t}\n\t/**\n\t* The field's logical key name, unquoted. An identifier key (`length:`) yields\n\t* its text; a string-literal key (`\"length\":`) yields the decoded string.\n\t* `undefined` when the field carries no key node.\n\t*/\n\tkeyName() {\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Colon\") break;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst identifier = IdentifierAst.cast(child);\n\t\t\tif (identifier) return identifier.token()?.text;\n\t\t\tconst stringKey = StringLiteralExprAst.cast(child);\n\t\t\tif (stringKey) return stringKey.value();\n\t\t\treturn;\n\t\t}\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tvalue() {\n\t\tif (this.colon()) {\n\t\t\tlet pastColon = false;\n\t\t\tfor (const child of this.syntax.children()) {\n\t\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\t\tif (child.kind === \"Colon\") pastColon = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (pastColon) {\n\t\t\t\t\tconst expr = castExpression(child);\n\t\t\t\t\tif (expr) return expr;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn findFirstChild(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ObjectField\" ? new ObjectFieldAst(node) : void 0;\n\t}\n};\n/** Every dotted path in an expression: the expression itself, a dotted callee, or a path inside a list, record or call argument. */\nfunction dottedPathsIn(expression) {\n\tconst paths = [];\n\tfor (const element of expression.syntax.descendants()) {\n\t\tconst path = element instanceof SyntaxNode ? PathExprAst.cast(element) : void 0;\n\t\tif (path !== void 0) paths.push(path);\n\t}\n\treturn paths;\n}\nfunction castExpression(node) {\n\treturn FunctionCallAst.cast(node) ?? ArrayLiteralAst.cast(node) ?? StringLiteralExprAst.cast(node) ?? TaggedLiteralExprAst.cast(node) ?? NumberLiteralExprAst.cast(node) ?? BooleanLiteralExprAst.cast(node) ?? ObjectLiteralExprAst.cast(node) ?? PathExprAst.cast(node) ?? IdentifierAst.cast(node);\n}\nvar AttributeArgAst = class AttributeArgAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\tif (!this.colon()) return void 0;\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tvalue() {\n\t\tif (this.colon()) {\n\t\t\tlet pastColon = false;\n\t\t\tfor (const child of this.syntax.children()) {\n\t\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\t\tif (child.kind === \"Colon\") pastColon = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (pastColon) {\n\t\t\t\t\tconst expr = castExpression(child);\n\t\t\t\t\tif (expr) return expr;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn findFirstChild(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"AttributeArg\" ? new AttributeArgAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/attributes.ts\nvar AttributeArgListAst = class AttributeArgListAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlparen() {\n\t\treturn findChildToken(this.syntax, \"LParen\");\n\t}\n\trparen() {\n\t\treturn findChildToken(this.syntax, \"RParen\");\n\t}\n\t*args() {\n\t\tyield* filterChildren(this.syntax, AttributeArgAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"AttributeArgList\" ? new AttributeArgListAst(node) : void 0;\n\t}\n};\nvar FieldAttributeAst = class FieldAttributeAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tat() {\n\t\treturn findChildToken(this.syntax, \"At\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FieldAttribute\" ? new FieldAttributeAst(node) : void 0;\n\t}\n};\nvar ModelAttributeAst = class ModelAttributeAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tdoubleAt() {\n\t\treturn findChildToken(this.syntax, \"DoubleAt\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ModelAttribute\" ? new ModelAttributeAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/type-annotation.ts\nvar TypeAnnotationAst = class TypeAnnotationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t/** The annotation's reference, doubling as the constructor callee when an {@link argList} follows. */\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/** Present when the annotation is a constructor (`Vector(1536)`) rather than a plain reference. */\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tisConstructor() {\n\t\treturn this.argList() !== void 0;\n\t}\n\tlbracket() {\n\t\treturn findChildToken(this.syntax, \"LBracket\");\n\t}\n\trbracket() {\n\t\treturn findChildToken(this.syntax, \"RBracket\");\n\t}\n\tquestionMark() {\n\t\treturn findChildToken(this.syntax, \"Question\");\n\t}\n\tisList() {\n\t\treturn this.lbracket() !== void 0;\n\t}\n\t/**\n\t* The list/field axis: a `?` after `]` (list nullable) or, when this is not a\n\t* list, the sole field-level `?`. A `?` before `[` is the element axis and\n\t* does not count here.\n\t*/\n\tisOptional() {\n\t\tconst lbracket = this.lbracket();\n\t\tif (lbracket === void 0) return this.questionMark() !== void 0;\n\t\tconst anchor = this.rbracket() ?? lbracket;\n\t\treturn this.#questionTokens().some((question) => question.index > anchor.index);\n\t}\n\t/** The element axis: a `?` positioned before `[`, meaningful only for lists. */\n\tisElementOptional() {\n\t\tconst lbracket = this.lbracket();\n\t\tif (lbracket === void 0) return false;\n\t\treturn this.#questionTokens().some((question) => question.index < lbracket.index);\n\t}\n\t#questionTokens() {\n\t\tconst result = [];\n\t\tfor (const child of this.syntax.children()) if (!(child instanceof SyntaxNode) && child.kind === \"Question\") result.push(child);\n\t\treturn result;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TypeAnnotation\" ? new TypeAnnotationAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/declarations.ts\nfunction castNamespaceMember(node) {\n\treturn ModelDeclarationAst.cast(node) ?? CompositeTypeDeclarationAst.cast(node) ?? GenericBlockDeclarationAst.cast(node);\n}\nvar DocumentAst = class DocumentAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, (node) => castNamespaceMember(node) ?? TypesBlockAst.cast(node) ?? NamespaceDeclarationAst.cast(node));\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Document\" ? new DocumentAst(node) : void 0;\n\t}\n};\nvar ModelDeclarationAst = class ModelDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => FieldDeclarationAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ModelDeclaration\" ? new ModelDeclarationAst(node) : void 0;\n\t}\n};\nvar CompositeTypeDeclarationAst = class CompositeTypeDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => FieldDeclarationAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"CompositeTypeDeclaration\" ? new CompositeTypeDeclarationAst(node) : void 0;\n\t}\n};\nvar NamespaceDeclarationAst = class NamespaceDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, castNamespaceMember);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Namespace\" ? new NamespaceDeclarationAst(node) : void 0;\n\t}\n};\nvar TypesBlockAst = class TypesBlockAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, NamedTypeDeclarationAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TypesBlock\" ? new TypesBlockAst(node) : void 0;\n\t}\n};\nvar GenericBlockDeclarationAst = class GenericBlockDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*entries() {\n\t\tyield* filterChildren(this.syntax, KeyValuePairAst.cast);\n\t}\n\t/** Field lines of a `view` body. Empty for every other generic block. */\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => KeyValuePairAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"GenericBlockDeclaration\" ? new GenericBlockDeclarationAst(node) : void 0;\n\t}\n};\nvar KeyValuePairAst = class KeyValuePairAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkey() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tequals() {\n\t\treturn findChildToken(this.syntax, \"Equals\");\n\t}\n\tvalue() {\n\t\tlet pastEquals = false;\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Equals\") pastEquals = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (pastEquals) {\n\t\t\t\tconst expr = castExpression(child);\n\t\t\t\tif (expr) return expr;\n\t\t\t}\n\t\t}\n\t}\n\t/** `@` attributes after the key or value, as in `USER @map(\"user\")`. */\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"KeyValuePair\" ? new KeyValuePairAst(node) : void 0;\n\t}\n};\nvar FieldDeclarationAst = class FieldDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\ttypeAnnotation() {\n\t\treturn findFirstChild(this.syntax, TypeAnnotationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FieldDeclaration\" ? new FieldDeclarationAst(node) : void 0;\n\t}\n};\nvar NamedTypeDeclarationAst = class NamedTypeDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tequals() {\n\t\treturn findChildToken(this.syntax, \"Equals\");\n\t}\n\ttypeAnnotation() {\n\t\treturn findFirstChild(this.syntax, TypeAnnotationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"NamedTypeDeclaration\" ? new NamedTypeDeclarationAst(node) : void 0;\n\t}\n};\n//#endregion\nexport { TaggedLiteralExprAst as C, IdentifierAst as D, QualifiedNameAst as E, StringLiteralExprAst as S, dottedPathsIn as T, FunctionCallAst as _, KeyValuePairAst as a, ObjectLiteralExprAst as b, NamespaceDeclarationAst as c, AttributeArgListAst as d, FieldAttributeAst as f, BooleanLiteralExprAst as g, AttributeArgAst as h, GenericBlockDeclarationAst as i, TypesBlockAst as l, ArrayLiteralAst as m, DocumentAst as n, ModelDeclarationAst as o, ModelAttributeAst as p, FieldDeclarationAst as r, NamedTypeDeclarationAst as s, CompositeTypeDeclarationAst as t, TypeAnnotationAst as u, NumberLiteralExprAst as v, castExpression as w, PathExprAst as x, ObjectFieldAst as y };\n\n//# sourceMappingURL=declarations-DosoNVo9.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"declarations-DosoNVo9-qtyHBZ2H.mjs","names":["#segmentBefore","#segmentAfter","#separatorCount","#questionTokens"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/declarations-DosoNVo9.mjs"],"sourcesContent":["import { r as isTerminatedStringLiteral } from \"./tokenizer-BMz7z2KR.mjs\";\nimport { i as findFirstChild, n as filterChildren, o as readDocComment, r as findChildToken, s as SyntaxNode } from \"./ast-helpers-CzydMPdh.mjs\";\nimport { canonicalizeTaggedLiteralBody } from \"@internal/framework-components/authoring\";\nimport { resolvePslBacktickEscapes } from \"@internal/framework-components/control\";\n//#region src/syntax/ast/identifier.ts\nvar IdentifierAst = class IdentifierAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn this.token()?.text;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Identifier\" ? new IdentifierAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/qualified-name.ts\n/** A namespace-qualified name, e.g. `pgvector.Vector` or `supabase:auth.User`. */\nvar QualifiedNameAst = class QualifiedNameAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t#segmentBefore(boundary) {\n\t\tlet found;\n\t\tfor (const segment of filterChildren(this.syntax, IdentifierAst.cast)) {\n\t\t\tif (segment.syntax.offset >= boundary) break;\n\t\t\tfound = segment;\n\t\t}\n\t\treturn found;\n\t}\n\t#segmentAfter(boundary) {\n\t\tfor (const segment of filterChildren(this.syntax, IdentifierAst.cast)) if (segment.syntax.offset > boundary) return segment;\n\t}\n\t#separatorCount(kind) {\n\t\tlet count = 0;\n\t\tfor (const child of this.syntax.children()) if (!(child instanceof SyntaxNode) && child.kind === kind) count++;\n\t\treturn count;\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tdot() {\n\t\treturn findChildToken(this.syntax, \"Dot\");\n\t}\n\tspace() {\n\t\tconst colon = this.colon();\n\t\tif (!colon) return void 0;\n\t\treturn this.#segmentBefore(colon.offset);\n\t}\n\tnamespace() {\n\t\tconst dot = this.dot();\n\t\tif (!dot) return void 0;\n\t\treturn this.#segmentBefore(dot.offset);\n\t}\n\tidentifier() {\n\t\tconst dot = this.dot();\n\t\tif (dot) return this.#segmentAfter(dot.offset);\n\t\tconst colon = this.colon();\n\t\tif (colon) return this.#segmentAfter(colon.offset);\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tsegments() {\n\t\treturn filterChildren(this.syntax, IdentifierAst.cast);\n\t}\n\t/**\n\t* Every identifier segment, in source order. A bare `Vector` yields\n\t* `['Vector']`; a qualified `pgvector.Vector` yields `['pgvector', 'Vector']`.\n\t*/\n\tpath() {\n\t\tconst segments = [];\n\t\tfor (const segment of this.segments()) {\n\t\t\tconst text = segment.token()?.text;\n\t\t\tif (text !== void 0) segments.push(text);\n\t\t}\n\t\treturn segments;\n\t}\n\t/** True iff this is a single unqualified identifier whose text equals `name`. */\n\tisSimpleName(name) {\n\t\tif (this.dot() !== void 0 || this.colon() !== void 0) return false;\n\t\treturn this.identifier()?.token()?.text === name;\n\t}\n\t/**\n\t* Flags a malformed name with more qualifier segments than allowed (a second\n\t* `:`-space or a second `.`-namespace).\n\t*/\n\tisOverQualified() {\n\t\treturn this.#separatorCount(\"Dot\") > 1 || this.#separatorCount(\"Colon\") > 1;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"QualifiedName\" ? new QualifiedNameAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/expressions.ts\nvar FunctionCallAst = class FunctionCallAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t/** The callee when it is a bare name, such as `now` in `now()`; `undefined` when the callee is dotted. */\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/**\n\t* The callee's segments, in source order. A bare `Vector(…)` yields\n\t* `['Vector']`; `pgvector.Vector(…)` yields `['pgvector', 'Vector']`;\n\t* `address.geo.lat(…)` yields `['address', 'geo', 'lat']`. Empty when the\n\t* call carries no identifier.\n\t*/\n\tpath() {\n\t\treturn segmentNames((this.name() ?? this.memberPath())?.syntax ?? this.syntax);\n\t}\n\t/** The callee when it is dotted, such as `address.city` in `address.city(sort: Asc)`; `undefined` for a bare callee. */\n\tmemberPath() {\n\t\treturn findFirstChild(this.syntax, PathExprAst.cast);\n\t}\n\tlparen() {\n\t\treturn findChildToken(this.syntax, \"LParen\");\n\t}\n\trparen() {\n\t\treturn findChildToken(this.syntax, \"RParen\");\n\t}\n\t*args() {\n\t\tyield* filterChildren(this.syntax, AttributeArgAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FunctionCall\" ? new FunctionCallAst(node) : void 0;\n\t}\n};\nfunction segmentNames(node) {\n\tconst segments = [];\n\tfor (const segment of filterChildren(node, IdentifierAst.cast)) {\n\t\tconst text = segment.token()?.text;\n\t\tif (text !== void 0) segments.push(text);\n\t}\n\treturn segments;\n}\n/** A dotted member path in expression position, such as `address.city` in `@@index([address.city])`. */\nvar PathExprAst = class PathExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t*segments() {\n\t\tyield* filterChildren(this.syntax, IdentifierAst.cast);\n\t}\n\t/**\n\t* The segment names, in source order: `['address', 'city']` for `address.city`. A path that ends\n\t* in a `.` with no name after it, as in `address.`, ends in an empty name.\n\t*/\n\tpath() {\n\t\tconst segments = segmentNames(this.syntax);\n\t\treturn this.syntax.lastToken?.kind === \"Dot\" ? [...segments, \"\"] : segments;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"PathExpr\" ? new PathExprAst(node) : void 0;\n\t}\n};\nvar ArrayLiteralAst = class ArrayLiteralAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlbracket() {\n\t\treturn findChildToken(this.syntax, \"LBracket\");\n\t}\n\trbracket() {\n\t\treturn findChildToken(this.syntax, \"RBracket\");\n\t}\n\t*elements() {\n\t\tyield* filterChildren(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ArrayLiteral\" ? new ArrayLiteralAst(node) : void 0;\n\t}\n};\nconst HEX = /^[0-9a-fA-F]+$/;\nfunction decodeFixedHex(raw, start, width) {\n\tif (start + width > raw.length) return void 0;\n\tconst hex = raw.slice(start, start + width);\n\tif (!HEX.test(hex)) return void 0;\n\treturn String.fromCharCode(Number.parseInt(hex, 16));\n}\nfunction decodeStringLiteral(raw) {\n\tlet out = \"\";\n\tlet i = 0;\n\twhile (i < raw.length) {\n\t\tconst ch = raw.charAt(i);\n\t\tif (ch !== \"\\\\\" || i + 1 >= raw.length) {\n\t\t\tout += ch;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tconst next = raw.charAt(i + 1);\n\t\tswitch (next) {\n\t\t\tcase \"/\":\n\t\t\t\tout += \"/\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"b\":\n\t\t\t\tout += \"\\b\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"f\":\n\t\t\t\tout += \"\\f\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"n\":\n\t\t\t\tout += \"\\n\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"r\":\n\t\t\t\tout += \"\\r\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"t\":\n\t\t\t\tout += \"\t\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"\\\"\":\n\t\t\t\tout += \"\\\"\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"'\":\n\t\t\t\tout += \"'\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"\\\\\":\n\t\t\t\tout += \"\\\\\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"x\": {\n\t\t\t\tconst decoded = decodeFixedHex(raw, i + 2, 2);\n\t\t\t\tif (decoded === void 0) {\n\t\t\t\t\tout += \"\\\\x\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout += decoded;\n\t\t\t\ti += 4;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase \"u\": {\n\t\t\t\tconst decoded = decodeFixedHex(raw, i + 2, 4);\n\t\t\t\tif (decoded === void 0) {\n\t\t\t\t\tout += \"\\\\u\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout += decoded;\n\t\t\t\ti += 6;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tout += `\\\\${next}`;\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\treturn out;\n}\nvar StringLiteralExprAst = class StringLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"StringLiteral\");\n\t}\n\tquote() {\n\t\tconst quote = this.token()?.text.charAt(0);\n\t\treturn quote === \"\\\"\" || quote === \"'\" || quote === \"`\" ? quote : void 0;\n\t}\n\t/**\n\t* The decoded string. A `\"` or `'` string resolves the usual escapes; a backtick string resolves\n\t* only `` \\` `` and `\\\\`, keeping every other backslash sequence as written.\n\t*/\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\tconst raw = isTerminatedStringLiteral(tok.text) ? tok.text.slice(1, -1) : tok.text.slice(1);\n\t\treturn this.quote() === \"`\" ? resolvePslBacktickEscapes(raw) : decodeStringLiteral(raw);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"StringLiteralExpr\" ? new StringLiteralExprAst(node) : void 0;\n\t}\n};\n/** `` tag`body` ``, `tag\"body\"`, or `tag'body'`: a qualified-name tag followed by a string literal. */\nvar TaggedLiteralExprAst = class TaggedLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttag() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/** The tag without trivia, e.g. `postgis.geometry`. */\n\ttagName() {\n\t\tconst tag = this.tag();\n\t\tconst space = tag?.space()?.name();\n\t\tconst namespace = tag?.namespace()?.name();\n\t\treturn (space === void 0 ? \"\" : `${space}:`) + (namespace === void 0 ? \"\" : `${namespace}.`) + (tag?.identifier()?.name() ?? \"\");\n\t}\n\tliteral() {\n\t\treturn findFirstChild(this.syntax, StringLiteralExprAst.cast);\n\t}\n\tcanonicalization() {\n\t\treturn canonicalizeTaggedLiteralBody(this.literal()?.value() ?? \"\");\n\t}\n\t/** The canonical text shared with the TypeScript `sql` tag, or `undefined` when canonicalization fails. */\n\ttext() {\n\t\tconst result = this.canonicalization();\n\t\treturn result.ok ? result.text : void 0;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TaggedLiteral\" ? new TaggedLiteralExprAst(node) : void 0;\n\t}\n};\nvar NumberLiteralExprAst = class NumberLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"NumberLiteral\");\n\t}\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\treturn Number(tok.text);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"NumberLiteralExpr\" ? new NumberLiteralExprAst(node) : void 0;\n\t}\n};\nvar BooleanLiteralExprAst = class BooleanLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\tif (tok.text === \"true\") return true;\n\t\tif (tok.text === \"false\") return false;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"BooleanLiteralExpr\" ? new BooleanLiteralExprAst(node) : void 0;\n\t}\n};\nvar ObjectLiteralExprAst = class ObjectLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, ObjectFieldAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ObjectLiteralExpr\" ? new ObjectLiteralExprAst(node) : void 0;\n\t}\n};\nvar ObjectFieldAst = class ObjectFieldAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkey() {\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Colon\") break;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn IdentifierAst.cast(child);\n\t\t}\n\t}\n\t/**\n\t* The field's logical key name, unquoted. An identifier key (`length:`) yields\n\t* its text; a string-literal key (`\"length\":`) yields the decoded string.\n\t* `undefined` when the field carries no key node.\n\t*/\n\tkeyName() {\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Colon\") break;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst identifier = IdentifierAst.cast(child);\n\t\t\tif (identifier) return identifier.token()?.text;\n\t\t\tconst stringKey = StringLiteralExprAst.cast(child);\n\t\t\tif (stringKey) return stringKey.value();\n\t\t\treturn;\n\t\t}\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tvalue() {\n\t\tif (this.colon()) {\n\t\t\tlet pastColon = false;\n\t\t\tfor (const child of this.syntax.children()) {\n\t\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\t\tif (child.kind === \"Colon\") pastColon = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (pastColon) {\n\t\t\t\t\tconst expr = castExpression(child);\n\t\t\t\t\tif (expr) return expr;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn findFirstChild(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ObjectField\" ? new ObjectFieldAst(node) : void 0;\n\t}\n};\n/** Every dotted path in an expression: the expression itself, a dotted callee, or a path inside a list, record or call argument. */\nfunction dottedPathsIn(expression) {\n\tconst paths = [];\n\tfor (const element of expression.syntax.descendants()) {\n\t\tconst path = element instanceof SyntaxNode ? PathExprAst.cast(element) : void 0;\n\t\tif (path !== void 0) paths.push(path);\n\t}\n\treturn paths;\n}\nfunction castExpression(node) {\n\treturn FunctionCallAst.cast(node) ?? ArrayLiteralAst.cast(node) ?? StringLiteralExprAst.cast(node) ?? TaggedLiteralExprAst.cast(node) ?? NumberLiteralExprAst.cast(node) ?? BooleanLiteralExprAst.cast(node) ?? ObjectLiteralExprAst.cast(node) ?? PathExprAst.cast(node) ?? IdentifierAst.cast(node);\n}\nvar AttributeArgAst = class AttributeArgAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\tif (!this.colon()) return void 0;\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tvalue() {\n\t\tif (this.colon()) {\n\t\t\tlet pastColon = false;\n\t\t\tfor (const child of this.syntax.children()) {\n\t\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\t\tif (child.kind === \"Colon\") pastColon = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (pastColon) {\n\t\t\t\t\tconst expr = castExpression(child);\n\t\t\t\t\tif (expr) return expr;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn findFirstChild(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"AttributeArg\" ? new AttributeArgAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/attributes.ts\nvar AttributeArgListAst = class AttributeArgListAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlparen() {\n\t\treturn findChildToken(this.syntax, \"LParen\");\n\t}\n\trparen() {\n\t\treturn findChildToken(this.syntax, \"RParen\");\n\t}\n\t*args() {\n\t\tyield* filterChildren(this.syntax, AttributeArgAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"AttributeArgList\" ? new AttributeArgListAst(node) : void 0;\n\t}\n};\nvar FieldAttributeAst = class FieldAttributeAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tat() {\n\t\treturn findChildToken(this.syntax, \"At\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FieldAttribute\" ? new FieldAttributeAst(node) : void 0;\n\t}\n};\nvar ModelAttributeAst = class ModelAttributeAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tdoubleAt() {\n\t\treturn findChildToken(this.syntax, \"DoubleAt\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ModelAttribute\" ? new ModelAttributeAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/type-annotation.ts\nvar TypeAnnotationAst = class TypeAnnotationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t/** The annotation's reference, doubling as the constructor callee when an {@link argList} follows. */\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/** Present when the annotation is a constructor (`Vector(1536)`) rather than a plain reference. */\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tisConstructor() {\n\t\treturn this.argList() !== void 0;\n\t}\n\tlbracket() {\n\t\treturn findChildToken(this.syntax, \"LBracket\");\n\t}\n\trbracket() {\n\t\treturn findChildToken(this.syntax, \"RBracket\");\n\t}\n\tquestionMark() {\n\t\treturn findChildToken(this.syntax, \"Question\");\n\t}\n\tisList() {\n\t\treturn this.lbracket() !== void 0;\n\t}\n\t/**\n\t* The list/field axis: a `?` after `]` (list nullable) or, when this is not a\n\t* list, the sole field-level `?`. A `?` before `[` is the element axis and\n\t* does not count here.\n\t*/\n\tisOptional() {\n\t\tconst lbracket = this.lbracket();\n\t\tif (lbracket === void 0) return this.questionMark() !== void 0;\n\t\tconst anchor = this.rbracket() ?? lbracket;\n\t\treturn this.#questionTokens().some((question) => question.index > anchor.index);\n\t}\n\t/** The element axis: a `?` positioned before `[`, meaningful only for lists. */\n\tisElementOptional() {\n\t\tconst lbracket = this.lbracket();\n\t\tif (lbracket === void 0) return false;\n\t\treturn this.#questionTokens().some((question) => question.index < lbracket.index);\n\t}\n\t#questionTokens() {\n\t\tconst result = [];\n\t\tfor (const child of this.syntax.children()) if (!(child instanceof SyntaxNode) && child.kind === \"Question\") result.push(child);\n\t\treturn result;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TypeAnnotation\" ? new TypeAnnotationAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/declarations.ts\nfunction castNamespaceMember(node) {\n\treturn ModelDeclarationAst.cast(node) ?? CompositeTypeDeclarationAst.cast(node) ?? GenericBlockDeclarationAst.cast(node);\n}\nvar DocumentAst = class DocumentAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, (node) => castNamespaceMember(node) ?? TypesBlockAst.cast(node) ?? NamespaceDeclarationAst.cast(node));\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Document\" ? new DocumentAst(node) : void 0;\n\t}\n};\nvar ModelDeclarationAst = class ModelDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => FieldDeclarationAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ModelDeclaration\" ? new ModelDeclarationAst(node) : void 0;\n\t}\n};\nvar CompositeTypeDeclarationAst = class CompositeTypeDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => FieldDeclarationAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"CompositeTypeDeclaration\" ? new CompositeTypeDeclarationAst(node) : void 0;\n\t}\n};\nvar NamespaceDeclarationAst = class NamespaceDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, castNamespaceMember);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Namespace\" ? new NamespaceDeclarationAst(node) : void 0;\n\t}\n};\nvar TypesBlockAst = class TypesBlockAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, NamedTypeDeclarationAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TypesBlock\" ? new TypesBlockAst(node) : void 0;\n\t}\n};\nvar GenericBlockDeclarationAst = class GenericBlockDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*entries() {\n\t\tyield* filterChildren(this.syntax, KeyValuePairAst.cast);\n\t}\n\t/** Field lines of a `view` body. Empty for every other generic block. */\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => KeyValuePairAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"GenericBlockDeclaration\" ? new GenericBlockDeclarationAst(node) : void 0;\n\t}\n};\nvar KeyValuePairAst = class KeyValuePairAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkey() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tequals() {\n\t\treturn findChildToken(this.syntax, \"Equals\");\n\t}\n\tvalue() {\n\t\tlet pastEquals = false;\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Equals\") pastEquals = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (pastEquals) {\n\t\t\t\tconst expr = castExpression(child);\n\t\t\t\tif (expr) return expr;\n\t\t\t}\n\t\t}\n\t}\n\t/** `@` attributes after the key or value, as in `USER @map(\"user\")`. */\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"KeyValuePair\" ? new KeyValuePairAst(node) : void 0;\n\t}\n};\nvar FieldDeclarationAst = class FieldDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\ttypeAnnotation() {\n\t\treturn findFirstChild(this.syntax, TypeAnnotationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FieldDeclaration\" ? new FieldDeclarationAst(node) : void 0;\n\t}\n};\nvar NamedTypeDeclarationAst = class NamedTypeDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tequals() {\n\t\treturn findChildToken(this.syntax, \"Equals\");\n\t}\n\ttypeAnnotation() {\n\t\treturn findFirstChild(this.syntax, TypeAnnotationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tdocComment() {\n\t\treturn readDocComment(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"NamedTypeDeclaration\" ? new NamedTypeDeclarationAst(node) : void 0;\n\t}\n};\n//#endregion\nexport { TaggedLiteralExprAst as C, IdentifierAst as D, QualifiedNameAst as E, StringLiteralExprAst as S, dottedPathsIn as T, FunctionCallAst as _, KeyValuePairAst as a, ObjectLiteralExprAst as b, NamespaceDeclarationAst as c, AttributeArgListAst as d, FieldAttributeAst as f, BooleanLiteralExprAst as g, AttributeArgAst as h, GenericBlockDeclarationAst as i, TypesBlockAst as l, ArrayLiteralAst as m, DocumentAst as n, ModelDeclarationAst as o, ModelAttributeAst as p, FieldDeclarationAst as r, NamedTypeDeclarationAst as s, CompositeTypeDeclarationAst as t, TypeAnnotationAst as u, NumberLiteralExprAst as v, castExpression as w, PathExprAst as x, ObjectFieldAst as y };\n\n//# sourceMappingURL=declarations-DosoNVo9.mjs.map"],"mappings":"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"}
@@ -24,7 +24,11 @@ function tsStringLiteral(value) {
24
24
  */
25
25
  function tsQuotedTextSource(text) {
26
26
  if (!(text.includes("'") && text.includes("\"")) || needsEscapeSequence(text)) return tsStringLiteral(text);
27
- return `\`${text.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${")}\``;
27
+ return `\`${tsTemplateText(text)}\``;
28
+ }
29
+ /** `text` escaped for the inside of a TypeScript template literal: `\`, a backtick and `${` are escaped; nothing else is. */
30
+ function tsTemplateText(text) {
31
+ return text.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${");
28
32
  }
29
33
  function needsEscapeSequence(text) {
30
34
  for (const char of text) {
@@ -270,6 +274,6 @@ function buildAttributesClause(attrs) {
270
274
  */
271
275
  var TsExpression = class {};
272
276
  //#endregion
273
- export { tsObjectSource as a, tsArraySource as i, jsonToTsSource as n, tsQuotedTextSource as o, renderImports as r, tsStringLiteral as s, TsExpression as t };
277
+ export { tsObjectSource as a, tsTemplateText as c, tsArraySource as i, jsonToTsSource as n, tsQuotedTextSource as o, renderImports as r, tsStringLiteral as s, TsExpression as t };
274
278
 
275
- //# sourceMappingURL=dist-DtT9I2iL.mjs.map
279
+ //# sourceMappingURL=dist-BHoPlvHD.mjs.map