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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/{authoring-BfEjYZpO.d.mts → authoring-BYbSOseC.d.mts} +3 -3
  2. package/dist/{authoring-BfEjYZpO.d.mts.map → authoring-BYbSOseC.d.mts.map} +1 -1
  3. package/dist/{authoring-CL-ZB448.mjs → authoring-e9U_0LWr.mjs} +2 -2
  4. package/dist/authoring-e9U_0LWr.mjs.map +1 -0
  5. package/dist/{components-CY9U7x11.d.mts → components-ByqLhwPu.d.mts} +2 -2
  6. package/dist/{components-CY9U7x11.d.mts.map → components-ByqLhwPu.d.mts.map} +1 -1
  7. package/dist/components-Dzqm9cyw.mjs.map +1 -1
  8. package/dist/components.d.mts +13 -11
  9. package/dist/components.mjs +4 -4
  10. package/dist/components__authoring.d.mts +4 -4
  11. package/dist/components__authoring.mjs +3 -3
  12. package/dist/components__components.d.mts +4 -3
  13. package/dist/components__components.mjs +2 -1
  14. package/dist/components__control.d.mts +4 -4
  15. package/dist/components__control.mjs +2 -2
  16. package/dist/components__execution.d.mts +1 -1
  17. package/dist/components__psl-ast.d.mts +3 -3
  18. package/dist/components__runtime.d.mts +2 -1
  19. package/dist/{config-types-7cVcsDOV.d.mts → config-types-DmSch3ta.d.mts} +4 -4
  20. package/dist/{config-types-7cVcsDOV.d.mts.map → config-types-DmSch3ta.d.mts.map} +1 -1
  21. package/dist/config.d.mts +1 -1
  22. package/dist/config__config-types.d.mts +1 -1
  23. package/dist/contract-authoring.d.mts +2 -2
  24. package/dist/contract-authoring.mjs +1 -1
  25. package/dist/{control-CuhULO0T.d.mts → control-Bcsnrolt.d.mts} +15 -38
  26. package/dist/control-Bcsnrolt.d.mts.map +1 -0
  27. package/dist/{control-DdocW8ZP.mjs → control-D3KZOhJA.mjs} +5 -129
  28. package/dist/control-D3KZOhJA.mjs.map +1 -0
  29. package/dist/{declarations-BrSntcPa-BUYk6wxW.mjs → declarations-CcEBlusF-DXJwQ_ze.mjs} +4 -4
  30. package/dist/declarations-CcEBlusF-DXJwQ_ze.mjs.map +1 -0
  31. package/dist/errors.d.mts +1 -1
  32. package/dist/errors__execution.d.mts +1 -1
  33. package/dist/{execution-I2WAG4tH.d.mts → execution-CRDks27n.d.mts} +2 -2
  34. package/dist/{execution-I2WAG4tH.d.mts.map → execution-CRDks27n.d.mts.map} +1 -1
  35. package/dist/{execution-BFJC3QTj.d.mts → execution-DHCKWpXe.d.mts} +2 -2
  36. package/dist/{execution-BFJC3QTj.d.mts.map → execution-DHCKWpXe.d.mts.map} +1 -1
  37. package/dist/{framework-authoring-AkdL38SR-DRSNWmJT.d.mts → framework-authoring-Lssvcd3X-DsgKz6mc.d.mts} +14 -126
  38. package/dist/framework-authoring-Lssvcd3X-DsgKz6mc.d.mts.map +1 -0
  39. package/dist/{framework-components-DFsCsKDA-BzmfLX5I.d.mts → framework-components-DsX8Ixd8-x6Ii6iXZ.d.mts} +4 -3
  40. package/dist/framework-components-DsX8Ixd8-x6Ii6iXZ.d.mts.map +1 -0
  41. package/dist/mutation-default-types-BdWAzv0O-B51RYl-A.d.mts +88 -0
  42. package/dist/mutation-default-types-BdWAzv0O-B51RYl-A.d.mts.map +1 -0
  43. package/dist/{parse-CfZKsx8i-DpxGIwhF.mjs → parse-DAVL8A2m-CdprLvJq.mjs} +3 -3
  44. package/dist/{parse-CfZKsx8i-DpxGIwhF.mjs.map → parse-DAVL8A2m-CdprLvJq.mjs.map} +1 -1
  45. package/dist/{parse-DZRO_CK2-BtDklsaV.d.mts → parse-XbG2XDRs-BJvdVA-3.d.mts} +8 -7
  46. package/dist/parse-XbG2XDRs-BJvdVA-3.d.mts.map +1 -0
  47. package/dist/psl-ast-BOzFRzI0.d.mts +2 -0
  48. package/dist/{psl-ast-BjC549ky-CD7J2H0j.d.mts → psl-ast-Dte0XPl8-CXSWV9CL.d.mts} +3 -3
  49. package/dist/{psl-ast-BjC549ky-CD7J2H0j.d.mts.map → psl-ast-Dte0XPl8-CXSWV9CL.d.mts.map} +1 -1
  50. package/dist/psl-parser.d.mts +9 -7
  51. package/dist/psl-parser.d.mts.map +1 -1
  52. package/dist/psl-parser.mjs +2 -2
  53. package/dist/psl-parser.mjs.map +1 -1
  54. package/dist/psl-parser__format.mjs +2 -2
  55. package/dist/psl-parser__format.mjs.map +1 -1
  56. package/dist/psl-parser__interpret.d.mts +6 -6
  57. package/dist/psl-parser__interpret.mjs +2 -2
  58. package/dist/psl-parser__syntax.d.mts +1 -1
  59. package/dist/psl-parser__syntax.mjs +2 -2
  60. package/dist/psl-parser__syntax.mjs.map +1 -1
  61. package/dist/psl-printer.d.mts +4 -4
  62. package/dist/psl-printer.mjs +1 -1
  63. package/dist/{runtime-BWD7UzMV.d.mts → runtime-Bz3UqSoT.d.mts} +3 -18
  64. package/dist/runtime-Bz3UqSoT.d.mts.map +1 -0
  65. package/dist/runtime-error-CO4MA3Px-YW5SCUcH.d.mts +19 -0
  66. package/dist/runtime-error-CO4MA3Px-YW5SCUcH.d.mts.map +1 -0
  67. package/dist/{symbol-table-ikmivfwq-u2--jZQG.d.mts → symbol-table-uBpYeTjB-CYN4_SgJ.d.mts} +5 -5
  68. package/dist/{symbol-table-ikmivfwq-u2--jZQG.d.mts.map → symbol-table-uBpYeTjB-CYN4_SgJ.d.mts.map} +1 -1
  69. package/dist/{temporal-presets-MavBeaJC-BcqWVoBB.mjs → temporal-presets-DMRKrfIa-HElHwGB2.mjs} +141 -18
  70. package/dist/temporal-presets-DMRKrfIa-HElHwGB2.mjs.map +1 -0
  71. package/dist/{temporal-presets-CPQXhVhW-C05kwx7j.d.mts → temporal-presets-yQzaI_83-DfMU1Lm2.d.mts} +41 -4
  72. package/dist/temporal-presets-yQzaI_83-DfMU1Lm2.d.mts.map +1 -0
  73. package/package.json +15 -15
  74. package/dist/authoring-CL-ZB448.mjs.map +0 -1
  75. package/dist/control-CuhULO0T.d.mts.map +0 -1
  76. package/dist/control-DdocW8ZP.mjs.map +0 -1
  77. package/dist/declarations-BrSntcPa-BUYk6wxW.mjs.map +0 -1
  78. package/dist/framework-authoring-AkdL38SR-DRSNWmJT.d.mts.map +0 -1
  79. package/dist/framework-components-DFsCsKDA-BzmfLX5I.d.mts.map +0 -1
  80. package/dist/parse-DZRO_CK2-BtDklsaV.d.mts.map +0 -1
  81. package/dist/psl-ast-C90I4nkm.d.mts +0 -2
  82. package/dist/runtime-BWD7UzMV.d.mts.map +0 -1
  83. package/dist/temporal-presets-CPQXhVhW-C05kwx7j.d.mts.map +0 -1
  84. package/dist/temporal-presets-MavBeaJC-BcqWVoBB.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { o as structuredError } from "./structured-error-BXbihKQ-.mjs";
2
2
  import { t as InternalError } from "./internal-error-ChGYPVpq-DhUD05u0.mjs";
3
3
  import { t as SyntaxNode } from "./ast-helpers-2XRnkQEO-BxG5qx3Q.mjs";
4
- import { a as CompositeTypeDeclarationAst, c as FieldDeclarationAst, f as KeyValuePairAst, g as NamespaceDeclarationAst, h as NamedTypeDeclarationAst, m as ModelDeclarationAst, p as ModelAttributeAst, u as GenericBlockDeclarationAst, w as TypesBlockAst } from "./declarations-BrSntcPa-BUYk6wxW.mjs";
5
- import { o as parse } from "./parse-CfZKsx8i-DpxGIwhF.mjs";
4
+ import { a as CompositeTypeDeclarationAst, c as FieldDeclarationAst, f as KeyValuePairAst, g as NamespaceDeclarationAst, h as NamedTypeDeclarationAst, m as ModelDeclarationAst, p as ModelAttributeAst, u as GenericBlockDeclarationAst, w as TypesBlockAst } from "./declarations-CcEBlusF-DXJwQ_ze.mjs";
5
+ import { o as parse } from "./parse-DAVL8A2m-CdprLvJq.mjs";
6
6
  //#region ../../../1-framework/2-authoring/psl-parser/dist/format.mjs
7
7
  function emitDocument(document, indentUnit, newline) {
8
8
  const writer = new LineWriter(indentUnit, newline);
@@ -1 +1 @@
1
- {"version":3,"file":"psl-parser__format.mjs","names":["#indentUnit","#newline","#depth","#lastWasBlank","#lineOpen","#prevKind","#out","#line","#hasContent"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/format.mjs"],"sourcesContent":["import { o as SyntaxNode } from \"./ast-helpers-2XRnkQEO.mjs\";\nimport { a as KeyValuePairAst, c as NamespaceDeclarationAst, i as GenericBlockDeclarationAst, l as TypesBlockAst, o as ModelDeclarationAst, p as ModelAttributeAst, r as FieldDeclarationAst, s as NamedTypeDeclarationAst, t as CompositeTypeDeclarationAst } from \"./declarations-BrSntcPa.mjs\";\nimport { t as parse } from \"./parse-CfZKsx8i.mjs\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\n//#region src/format/emit.ts\nfunction emitDocument(document, indentUnit, newline) {\n\tconst writer = new LineWriter(indentUnit, newline);\n\temitTopLevel(writer, document);\n\treturn writer.finish();\n}\nvar LineWriter = class {\n\t#indentUnit;\n\t#newline;\n\t#out = [];\n\t#depth = 0;\n\t#line = \"\";\n\t#lineOpen = false;\n\t#prevKind;\n\t#lastWasBlank = false;\n\t#hasContent = false;\n\tconstructor(indentUnit, newline) {\n\t\tthis.#indentUnit = indentUnit;\n\t\tthis.#newline = newline;\n\t}\n\tindent() {\n\t\tthis.#depth += 1;\n\t}\n\tunindent() {\n\t\tthis.#depth = Math.max(0, this.#depth - 1);\n\t}\n\tlastIsBlank() {\n\t\treturn this.#lastWasBlank;\n\t}\n\tlineOpen() {\n\t\treturn this.#lineOpen;\n\t}\n\tprevKind() {\n\t\treturn this.#prevKind;\n\t}\n\tnewline() {\n\t\tif (!this.#lineOpen) return;\n\t\tthis.#out.push(`${this.#indentUnit.repeat(this.#depth)}${this.#line}`);\n\t\tthis.#line = \"\";\n\t\tthis.#lineOpen = false;\n\t\tthis.#prevKind = void 0;\n\t\tthis.#lastWasBlank = false;\n\t\tthis.#hasContent = true;\n\t}\n\tblank() {\n\t\tthis.newline();\n\t\tif (!this.#hasContent || this.#lastWasBlank) return;\n\t\tthis.#out.push(\"\");\n\t\tthis.#lastWasBlank = true;\n\t}\n\twrite(token, space, padTo) {\n\t\tif (this.#lineOpen && padTo !== void 0) this.#line = this.#line.padEnd(padTo);\n\t\telse if (this.#lineOpen && space) this.#line += \" \";\n\t\tthis.#line += token.text;\n\t\tthis.#lineOpen = true;\n\t\tthis.#prevKind = token.kind;\n\t}\n\twriteRaw(text) {\n\t\tthis.#line += text;\n\t\tthis.#lineOpen = true;\n\t}\n\tcomment(text) {\n\t\tif (this.#lineOpen) this.#line += ` ${text}`;\n\t\telse this.#line = text;\n\t\tthis.#lineOpen = true;\n\t\tthis.newline();\n\t}\n\tfinish() {\n\t\tthis.newline();\n\t\tconst body = this.#out.join(this.#newline);\n\t\treturn body.length > 0 ? `${body}${this.#newline}` : \"\";\n\t}\n};\nfunction spaceBetween(prev, cur, inQualifiedName) {\n\tif (prev === void 0) return false;\n\tif (inQualifiedName) return false;\n\tif (prev === \"Ident\" && cur === \"StringLiteral\") return false;\n\tswitch (cur) {\n\t\tcase \"LBracket\": return prev === \"Colon\" || prev === \"Comma\" || prev === \"Equals\";\n\t\tcase \"LParen\":\n\t\tcase \"RParen\":\n\t\tcase \"RBracket\":\n\t\tcase \"Comma\":\n\t\tcase \"Question\":\n\t\tcase \"Dot\":\n\t\tcase \"Colon\": return false;\n\t\tcase \"RBrace\": return prev !== \"LBrace\";\n\t\tdefault: break;\n\t}\n\tswitch (prev) {\n\t\tcase \"LParen\":\n\t\tcase \"LBracket\":\n\t\tcase \"Dot\":\n\t\tcase \"At\":\n\t\tcase \"DoubleAt\": return false;\n\t\tdefault: return true;\n\t}\n}\nfunction streamNode(writer, node, padTo) {\n\tlet continuation = 0;\n\tlet first = true;\n\tlet prevQualified = false;\n\tconst walk = (parent, qualified) => {\n\t\tfor (const child of parent.children()) {\n\t\t\tif (child instanceof SyntaxNode) {\n\t\t\t\twalk(child, qualified || child.kind === \"QualifiedName\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\") continue;\n\t\t\tif (child.kind === \"Comment\") {\n\t\t\t\twriter.comment(child.text);\n\t\t\t\twriter.indent();\n\t\t\t\tcontinuation += 1;\n\t\t\t\tprevQualified = false;\n\t\t\t\tfirst = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst pad = first ? padTo : void 0;\n\t\t\tconst space = spaceBetween(writer.prevKind(), child.kind, qualified && prevQualified);\n\t\t\twriter.write(child, space, writer.lineOpen() ? pad : void 0);\n\t\t\tprevQualified = qualified;\n\t\t\tfirst = false;\n\t\t}\n\t};\n\twalk(node, false);\n\treturn continuation;\n}\nfunction closeContinuation(writer, count) {\n\tfor (let i = 0; i < count; i++) writer.unindent();\n}\nfunction emitField(writer, field, alignmentColumns) {\n\treturn streamRow(writer, field.syntax, alignmentColumns);\n}\nfunction emitNamedType(writer, decl) {\n\treturn streamRow(writer, decl.syntax, void 0);\n}\nfunction streamRow(writer, row, alignmentColumns) {\n\tlet continuation = 0;\n\tlet sawAttribute = false;\n\tfor (const child of row.children()) {\n\t\tif (child instanceof SyntaxNode) {\n\t\t\tlet padTo;\n\t\t\tif (child.kind === \"TypeAnnotation\" && continuation === 0) padTo = alignmentColumns?.typeColumn;\n\t\t\telse if (child.kind === \"FieldAttribute\") {\n\t\t\t\tif (continuation > 0) writer.newline();\n\t\t\t\telse if (!sawAttribute) padTo = alignmentColumns?.attributeColumn;\n\t\t\t\tsawAttribute = true;\n\t\t\t}\n\t\t\tcontinuation += streamNode(writer, child, padTo);\n\t\t\tcontinue;\n\t\t}\n\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\") continue;\n\t\tif (child.kind === \"Comment\") {\n\t\t\twriter.comment(child.text);\n\t\t\twriter.indent();\n\t\t\tcontinuation += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst space = spaceBetween(writer.prevKind(), child.kind, false);\n\t\twriter.write(child, space);\n\t}\n\treturn continuation;\n}\nfunction emitBlockAttribute(writer, attribute) {\n\treturn streamNode(writer, attribute.syntax);\n}\nfunction emitKeyValue(writer, pair) {\n\treturn streamNode(writer, pair.syntax);\n}\nfunction leafMember(writer, category, print) {\n\treturn {\n\t\tcategory,\n\t\temit(trailing) {\n\t\t\tconst continuation = print();\n\t\t\tif (trailing !== void 0) writer.comment(trailing);\n\t\t\telse writer.newline();\n\t\t\treturn continuation;\n\t\t}\n\t};\n}\nfunction emitModel(writer, model, trailing) {\n\tconst alignmentColumns = alignmentMap(model.syntax);\n\temitBlockBody(writer, model.syntax, trailing, (node) => {\n\t\tconst field = FieldDeclarationAst.cast(node);\n\t\tif (field) return leafMember(writer, \"regular\", () => emitField(writer, field, alignmentColumns));\n\t\tconst attribute = ModelAttributeAst.cast(node);\n\t\tif (attribute) return leafMember(writer, \"blockAttribute\", () => emitBlockAttribute(writer, attribute));\n\t});\n}\nfunction emitCompositeType(writer, composite, trailing) {\n\tconst alignmentColumns = alignmentMap(composite.syntax);\n\temitBlockBody(writer, composite.syntax, trailing, (node) => {\n\t\tconst field = FieldDeclarationAst.cast(node);\n\t\tif (field) return leafMember(writer, \"regular\", () => emitField(writer, field, alignmentColumns));\n\t\tconst attribute = ModelAttributeAst.cast(node);\n\t\tif (attribute) return leafMember(writer, \"blockAttribute\", () => emitBlockAttribute(writer, attribute));\n\t});\n}\nfunction emitGenericBlock(writer, block, trailing) {\n\tconst alignment = alignmentMap(block.syntax);\n\temitBlockBody(writer, block.syntax, trailing, (node) => {\n\t\tconst field = FieldDeclarationAst.cast(node);\n\t\tif (field) return leafMember(writer, \"regular\", () => emitField(writer, field, alignment));\n\t\tconst entry = KeyValuePairAst.cast(node);\n\t\tif (entry) return leafMember(writer, \"regular\", () => emitKeyValue(writer, entry));\n\t\tconst attribute = ModelAttributeAst.cast(node);\n\t\tif (attribute) return leafMember(writer, \"blockAttribute\", () => emitBlockAttribute(writer, attribute));\n\t});\n}\nfunction emitNamespace(writer, namespace, trailing) {\n\temitBlockBody(writer, namespace.syntax, trailing, (node) => {\n\t\tconst declaration = castBlockDeclaration(node);\n\t\tif (declaration) return nestedBlockMember(writer, declaration);\n\t});\n}\nfunction emitTypesBlock(writer, block, trailing) {\n\temitBlockBody(writer, block.syntax, trailing, (node) => {\n\t\tconst named = NamedTypeDeclarationAst.cast(node);\n\t\tif (named) return leafMember(writer, \"regular\", () => emitNamedType(writer, named));\n\t});\n}\nfunction emitTopLevel(writer, document) {\n\twalkRegion(writer, Array.from(document.syntax.children()), void 0, (node) => {\n\t\tconst declaration = castTopLevelDeclaration(node);\n\t\tif (declaration) return nestedBlockMember(writer, declaration);\n\t});\n}\nfunction nestedBlockMember(writer, block) {\n\treturn {\n\t\tcategory: \"nestedBlock\",\n\t\temit(trailing) {\n\t\t\tblock(writer, trailing);\n\t\t\treturn 0;\n\t\t}\n\t};\n}\nfunction castBlockDeclaration(node) {\n\tconst model = ModelDeclarationAst.cast(node);\n\tif (model) return (writer, trailing) => emitModel(writer, model, trailing);\n\tconst composite = CompositeTypeDeclarationAst.cast(node);\n\tif (composite) return (writer, trailing) => emitCompositeType(writer, composite, trailing);\n\tconst generic = GenericBlockDeclarationAst.cast(node);\n\tif (generic) return (writer, trailing) => emitGenericBlock(writer, generic, trailing);\n}\nfunction castTopLevelDeclaration(node) {\n\tconst block = castBlockDeclaration(node);\n\tif (block) return block;\n\tconst namespace = NamespaceDeclarationAst.cast(node);\n\tif (namespace) return (writer, trailing) => emitNamespace(writer, namespace, trailing);\n\tconst types = TypesBlockAst.cast(node);\n\tif (types) return (writer, trailing) => emitTypesBlock(writer, types, trailing);\n}\nfunction emitBlockBody(writer, node, closingTrailing, classify) {\n\tconst children = Array.from(node.children());\n\tconst openIndex = children.findIndex((el) => !(el instanceof SyntaxNode) && el.kind === \"LBrace\");\n\tconst headerComments = streamHeader(writer, node);\n\tconst openingComment = sameLineCommentAfter(children, openIndex);\n\tif (openingComment !== void 0) headerComments.push(openingComment);\n\tconst [firstComment, ...otherComments] = headerComments;\n\tif (firstComment !== void 0) writer.comment(firstComment);\n\telse writer.newline();\n\twriter.indent();\n\tfor (const comment of otherComments) writer.comment(comment);\n\twalkRegion(writer, children, \"RBrace\", classify);\n\twriter.unindent();\n\twriter.writeRaw(\"}\");\n\tif (closingTrailing !== void 0) writer.comment(closingTrailing);\n\telse writer.newline();\n}\n/** Writes the block header through `{` and returns the source comments found before the `{`. */\nfunction streamHeader(writer, node) {\n\tconst comments = [];\n\tlet done = false;\n\tconst walk = (parent) => {\n\t\tfor (const child of parent.children()) {\n\t\t\tif (done) return;\n\t\t\tif (child instanceof SyntaxNode) {\n\t\t\t\twalk(child);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Comment\") {\n\t\t\t\tcomments.push(child.text);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\") continue;\n\t\t\tconst space = spaceBetween(writer.prevKind(), child.kind, false);\n\t\t\twriter.write(child, space);\n\t\t\tif (child.kind === \"LBrace\") {\n\t\t\t\tdone = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\twalk(node);\n\treturn comments;\n}\nfunction walkRegion(writer, elements, closeKind, classify) {\n\tlet sawOpenBrace = closeKind === void 0;\n\tlet sawContent = false;\n\tlet lastWasRegular = false;\n\tlet ledByComment = false;\n\tlet newlines = 0;\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst element = elements[i];\n\t\tif (element === void 0) continue;\n\t\tif (element instanceof SyntaxNode) {\n\t\t\tif (!sawOpenBrace) continue;\n\t\t\tconst member = classify(element);\n\t\t\tif (member === void 0) throw new InternalError(`Formatter has no rule for a ${element.kind} node at offset ${element.offset}; formatting would drop its text`);\n\t\t\tif (!ledByComment) {\n\t\t\t\tif (newlines >= 2 && sawContent && !writer.lastIsBlank()) writer.blank();\n\t\t\t\telse if (separationBlankWanted(writer, member.category, sawContent, lastWasRegular)) writer.blank();\n\t\t\t}\n\t\t\tconst trailing = sameLineTrailingComment(elements, i);\n\t\t\tcloseContinuation(writer, member.emit(trailing.text));\n\t\t\tif (trailing.index !== void 0) i = trailing.index;\n\t\t\tsawContent = true;\n\t\t\tlastWasRegular = member.category !== \"blockAttribute\";\n\t\t\tledByComment = false;\n\t\t\tnewlines = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (element.kind === \"LBrace\" && closeKind === \"RBrace\" && !sawOpenBrace) {\n\t\t\tsawOpenBrace = true;\n\t\t\tnewlines = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!sawOpenBrace) continue;\n\t\tif (closeKind === \"RBrace\" && element.kind === \"RBrace\") break;\n\t\tif (element.kind === \"Whitespace\") continue;\n\t\tif (element.kind === \"Newline\") {\n\t\t\tnewlines += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (element.kind === \"Comment\") {\n\t\t\tif (closeKind === \"RBrace\" && newlines === 0 && !sawContent) continue;\n\t\t\tif (newlines >= 2 && sawContent && !writer.lastIsBlank()) writer.blank();\n\t\t\telse if (!ledByComment) {\n\t\t\t\tconst led = leadingMemberAfter(elements, i, classify);\n\t\t\t\tif (led && separationBlankWanted(writer, led, sawContent, lastWasRegular)) writer.blank();\n\t\t\t}\n\t\t\twriter.writeRaw(element.text);\n\t\t\twriter.newline();\n\t\t\tsawContent = true;\n\t\t\tledByComment = true;\n\t\t\tnewlines = 0;\n\t\t}\n\t}\n}\nfunction separationBlankWanted(writer, category, sawContent, lastWasRegular) {\n\tif (!sawContent || writer.lastIsBlank()) return false;\n\tif (category === \"nestedBlock\") return true;\n\treturn category === \"blockAttribute\" && lastWasRegular;\n}\nfunction leadingMemberAfter(elements, commentIndex, classify) {\n\tfor (let i = commentIndex + 1; i < elements.length; i++) {\n\t\tconst element = elements[i];\n\t\tif (element === void 0) continue;\n\t\tif (element instanceof SyntaxNode) return classify(element)?.category;\n\t\tif (element.kind === \"RBrace\") return void 0;\n\t}\n}\nfunction sameLineTrailingComment(elements, memberIndex) {\n\tfor (let i = memberIndex + 1; i < elements.length; i++) {\n\t\tconst element = elements[i];\n\t\tif (element === void 0) continue;\n\t\tif (element instanceof SyntaxNode) break;\n\t\tif (element.kind === \"Whitespace\") continue;\n\t\tif (element.kind === \"Comment\") return {\n\t\t\ttext: element.text,\n\t\t\tindex: i\n\t\t};\n\t\tbreak;\n\t}\n\treturn {\n\t\ttext: void 0,\n\t\tindex: void 0\n\t};\n}\nfunction sameLineCommentAfter(children, openIndex) {\n\tfor (let i = openIndex + 1; i < children.length; i++) {\n\t\tconst child = children[i];\n\t\tif (child === void 0) continue;\n\t\tif (child instanceof SyntaxNode) return void 0;\n\t\tif (child.kind === \"Whitespace\") continue;\n\t\tif (child.kind === \"Comment\") return child.text;\n\t\treturn;\n\t}\n}\nfunction alignmentMap(block) {\n\tconst fields = [];\n\tfor (const element of block.children()) {\n\t\tif (!(element instanceof SyntaxNode)) continue;\n\t\tif (FieldDeclarationAst.cast(element) === void 0) continue;\n\t\tif (hasInteriorComment(element)) continue;\n\t\tfields.push(element);\n\t}\n\tif (fields.length === 0) return void 0;\n\treturn alignmentColumns(fields);\n}\nfunction alignmentColumns(rows) {\n\tlet nameWidth = 0;\n\tfor (const row of rows) {\n\t\tconst field = FieldDeclarationAst.cast(row);\n\t\tif (!field) continue;\n\t\tnameWidth = Math.max(nameWidth, renderTokens(field.name()?.syntax).length);\n\t}\n\tconst typeColumn = nameWidth + 1;\n\tlet cellEnd = 0;\n\tfor (const row of rows) {\n\t\tconst field = FieldDeclarationAst.cast(row);\n\t\tif (!field) continue;\n\t\tconst name = renderTokens(field.name()?.syntax);\n\t\tconst type = renderTokens(field.typeAnnotation()?.syntax);\n\t\tcellEnd = Math.max(cellEnd, type.length > 0 ? typeColumn + type.length : name.length);\n\t}\n\treturn {\n\t\ttypeColumn,\n\t\tattributeColumn: cellEnd + 1\n\t};\n}\nfunction hasInteriorComment(node) {\n\tfor (const token of node.tokens()) if (token.kind === \"Comment\") return true;\n\treturn false;\n}\nfunction renderTokens(node) {\n\tif (!node) return \"\";\n\tlet out = \"\";\n\tlet prev;\n\tlet prevQualified = false;\n\tconst walk = (parent, qualified) => {\n\t\tfor (const child of parent.children()) {\n\t\t\tif (child instanceof SyntaxNode) {\n\t\t\t\twalk(child, qualified || child.kind === \"QualifiedName\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\" || child.kind === \"Comment\") continue;\n\t\t\tif (spaceBetween(prev, child.kind, qualified && prevQualified)) out += \" \";\n\t\t\tout += child.text;\n\t\t\tprev = child.kind;\n\t\t\tprevQualified = qualified;\n\t\t}\n\t};\n\twalk(node, false);\n\treturn out;\n}\n//#endregion\n//#region src/format/error.ts\nfunction pslError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/format/options.ts\nfunction resolveFormatOptions(options) {\n\tconst indent = options?.indent ?? 2;\n\tif (indent !== \"tab\" && (typeof indent !== \"number\" || !Number.isInteger(indent) || indent < 1)) throw pslError(\"PSL.FORMAT_OPTION_INVALID\", `Invalid format options: indent must be a positive integer or 'tab', got ${String(indent)}`, { meta: {\n\t\toption: \"indent\",\n\t\treceived: String(indent)\n\t} });\n\tconst newline = options?.newline ?? \"LF\";\n\tif (newline !== \"LF\" && newline !== \"CRLF\") throw pslError(\"PSL.FORMAT_OPTION_INVALID\", `Invalid format options: newline must be 'LF' or 'CRLF', got ${String(newline)}`, { meta: {\n\t\toption: \"newline\",\n\t\treceived: String(newline)\n\t} });\n\treturn {\n\t\tindentUnit: indent === \"tab\" ? \"\t\" : \" \".repeat(indent),\n\t\tnewline: newline === \"CRLF\" ? \"\\r\\n\" : \"\\n\"\n\t};\n}\n//#endregion\n//#region src/format/format.ts\nfunction format(source, options) {\n\tconst resolved = resolveFormatOptions(options);\n\tconst { document, diagnostics } = parse(source, \"<format-input>.psl\");\n\tif (diagnostics.length > 0) throw pslError(\"PSL.PARSE_FAILED\", `Cannot format PSL with parse errors: ${diagnostics[0]?.message ?? \"unknown parse error\"}${diagnostics.length > 1 ? ` (and ${diagnostics.length - 1} more)` : \"\"}`, { meta: { diagnostics } });\n\treturn emitDocument(document, resolved.indentUnit, resolved.newline);\n}\n//#endregion\nexport { format };\n\n//# sourceMappingURL=format.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"psl-parser__format.mjs","names":["#indentUnit","#newline","#depth","#lastWasBlank","#lineOpen","#prevKind","#out","#line","#hasContent"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/format.mjs"],"sourcesContent":["import { o as SyntaxNode } from \"./ast-helpers-2XRnkQEO.mjs\";\nimport { a as KeyValuePairAst, c as NamespaceDeclarationAst, i as GenericBlockDeclarationAst, l as TypesBlockAst, o as ModelDeclarationAst, p as ModelAttributeAst, r as FieldDeclarationAst, s as NamedTypeDeclarationAst, t as CompositeTypeDeclarationAst } from \"./declarations-CcEBlusF.mjs\";\nimport { t as parse } from \"./parse-DAVL8A2m.mjs\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\n//#region src/format/emit.ts\nfunction emitDocument(document, indentUnit, newline) {\n\tconst writer = new LineWriter(indentUnit, newline);\n\temitTopLevel(writer, document);\n\treturn writer.finish();\n}\nvar LineWriter = class {\n\t#indentUnit;\n\t#newline;\n\t#out = [];\n\t#depth = 0;\n\t#line = \"\";\n\t#lineOpen = false;\n\t#prevKind;\n\t#lastWasBlank = false;\n\t#hasContent = false;\n\tconstructor(indentUnit, newline) {\n\t\tthis.#indentUnit = indentUnit;\n\t\tthis.#newline = newline;\n\t}\n\tindent() {\n\t\tthis.#depth += 1;\n\t}\n\tunindent() {\n\t\tthis.#depth = Math.max(0, this.#depth - 1);\n\t}\n\tlastIsBlank() {\n\t\treturn this.#lastWasBlank;\n\t}\n\tlineOpen() {\n\t\treturn this.#lineOpen;\n\t}\n\tprevKind() {\n\t\treturn this.#prevKind;\n\t}\n\tnewline() {\n\t\tif (!this.#lineOpen) return;\n\t\tthis.#out.push(`${this.#indentUnit.repeat(this.#depth)}${this.#line}`);\n\t\tthis.#line = \"\";\n\t\tthis.#lineOpen = false;\n\t\tthis.#prevKind = void 0;\n\t\tthis.#lastWasBlank = false;\n\t\tthis.#hasContent = true;\n\t}\n\tblank() {\n\t\tthis.newline();\n\t\tif (!this.#hasContent || this.#lastWasBlank) return;\n\t\tthis.#out.push(\"\");\n\t\tthis.#lastWasBlank = true;\n\t}\n\twrite(token, space, padTo) {\n\t\tif (this.#lineOpen && padTo !== void 0) this.#line = this.#line.padEnd(padTo);\n\t\telse if (this.#lineOpen && space) this.#line += \" \";\n\t\tthis.#line += token.text;\n\t\tthis.#lineOpen = true;\n\t\tthis.#prevKind = token.kind;\n\t}\n\twriteRaw(text) {\n\t\tthis.#line += text;\n\t\tthis.#lineOpen = true;\n\t}\n\tcomment(text) {\n\t\tif (this.#lineOpen) this.#line += ` ${text}`;\n\t\telse this.#line = text;\n\t\tthis.#lineOpen = true;\n\t\tthis.newline();\n\t}\n\tfinish() {\n\t\tthis.newline();\n\t\tconst body = this.#out.join(this.#newline);\n\t\treturn body.length > 0 ? `${body}${this.#newline}` : \"\";\n\t}\n};\nfunction spaceBetween(prev, cur, inQualifiedName) {\n\tif (prev === void 0) return false;\n\tif (inQualifiedName) return false;\n\tif (prev === \"Ident\" && cur === \"StringLiteral\") return false;\n\tswitch (cur) {\n\t\tcase \"LBracket\": return prev === \"Colon\" || prev === \"Comma\" || prev === \"Equals\";\n\t\tcase \"LParen\":\n\t\tcase \"RParen\":\n\t\tcase \"RBracket\":\n\t\tcase \"Comma\":\n\t\tcase \"Question\":\n\t\tcase \"Dot\":\n\t\tcase \"Colon\": return false;\n\t\tcase \"RBrace\": return prev !== \"LBrace\";\n\t\tdefault: break;\n\t}\n\tswitch (prev) {\n\t\tcase \"LParen\":\n\t\tcase \"LBracket\":\n\t\tcase \"Dot\":\n\t\tcase \"At\":\n\t\tcase \"DoubleAt\": return false;\n\t\tdefault: return true;\n\t}\n}\nfunction streamNode(writer, node, padTo) {\n\tlet continuation = 0;\n\tlet first = true;\n\tlet prevQualified = false;\n\tconst walk = (parent, qualified) => {\n\t\tfor (const child of parent.children()) {\n\t\t\tif (child instanceof SyntaxNode) {\n\t\t\t\twalk(child, qualified || child.kind === \"QualifiedName\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\") continue;\n\t\t\tif (child.kind === \"Comment\") {\n\t\t\t\twriter.comment(child.text);\n\t\t\t\twriter.indent();\n\t\t\t\tcontinuation += 1;\n\t\t\t\tprevQualified = false;\n\t\t\t\tfirst = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst pad = first ? padTo : void 0;\n\t\t\tconst space = spaceBetween(writer.prevKind(), child.kind, qualified && prevQualified);\n\t\t\twriter.write(child, space, writer.lineOpen() ? pad : void 0);\n\t\t\tprevQualified = qualified;\n\t\t\tfirst = false;\n\t\t}\n\t};\n\twalk(node, false);\n\treturn continuation;\n}\nfunction closeContinuation(writer, count) {\n\tfor (let i = 0; i < count; i++) writer.unindent();\n}\nfunction emitField(writer, field, alignmentColumns) {\n\treturn streamRow(writer, field.syntax, alignmentColumns);\n}\nfunction emitNamedType(writer, decl) {\n\treturn streamRow(writer, decl.syntax, void 0);\n}\nfunction streamRow(writer, row, alignmentColumns) {\n\tlet continuation = 0;\n\tlet sawAttribute = false;\n\tfor (const child of row.children()) {\n\t\tif (child instanceof SyntaxNode) {\n\t\t\tlet padTo;\n\t\t\tif (child.kind === \"TypeAnnotation\" && continuation === 0) padTo = alignmentColumns?.typeColumn;\n\t\t\telse if (child.kind === \"FieldAttribute\") {\n\t\t\t\tif (continuation > 0) writer.newline();\n\t\t\t\telse if (!sawAttribute) padTo = alignmentColumns?.attributeColumn;\n\t\t\t\tsawAttribute = true;\n\t\t\t}\n\t\t\tcontinuation += streamNode(writer, child, padTo);\n\t\t\tcontinue;\n\t\t}\n\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\") continue;\n\t\tif (child.kind === \"Comment\") {\n\t\t\twriter.comment(child.text);\n\t\t\twriter.indent();\n\t\t\tcontinuation += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst space = spaceBetween(writer.prevKind(), child.kind, false);\n\t\twriter.write(child, space);\n\t}\n\treturn continuation;\n}\nfunction emitBlockAttribute(writer, attribute) {\n\treturn streamNode(writer, attribute.syntax);\n}\nfunction emitKeyValue(writer, pair) {\n\treturn streamNode(writer, pair.syntax);\n}\nfunction leafMember(writer, category, print) {\n\treturn {\n\t\tcategory,\n\t\temit(trailing) {\n\t\t\tconst continuation = print();\n\t\t\tif (trailing !== void 0) writer.comment(trailing);\n\t\t\telse writer.newline();\n\t\t\treturn continuation;\n\t\t}\n\t};\n}\nfunction emitModel(writer, model, trailing) {\n\tconst alignmentColumns = alignmentMap(model.syntax);\n\temitBlockBody(writer, model.syntax, trailing, (node) => {\n\t\tconst field = FieldDeclarationAst.cast(node);\n\t\tif (field) return leafMember(writer, \"regular\", () => emitField(writer, field, alignmentColumns));\n\t\tconst attribute = ModelAttributeAst.cast(node);\n\t\tif (attribute) return leafMember(writer, \"blockAttribute\", () => emitBlockAttribute(writer, attribute));\n\t});\n}\nfunction emitCompositeType(writer, composite, trailing) {\n\tconst alignmentColumns = alignmentMap(composite.syntax);\n\temitBlockBody(writer, composite.syntax, trailing, (node) => {\n\t\tconst field = FieldDeclarationAst.cast(node);\n\t\tif (field) return leafMember(writer, \"regular\", () => emitField(writer, field, alignmentColumns));\n\t\tconst attribute = ModelAttributeAst.cast(node);\n\t\tif (attribute) return leafMember(writer, \"blockAttribute\", () => emitBlockAttribute(writer, attribute));\n\t});\n}\nfunction emitGenericBlock(writer, block, trailing) {\n\tconst alignment = alignmentMap(block.syntax);\n\temitBlockBody(writer, block.syntax, trailing, (node) => {\n\t\tconst field = FieldDeclarationAst.cast(node);\n\t\tif (field) return leafMember(writer, \"regular\", () => emitField(writer, field, alignment));\n\t\tconst entry = KeyValuePairAst.cast(node);\n\t\tif (entry) return leafMember(writer, \"regular\", () => emitKeyValue(writer, entry));\n\t\tconst attribute = ModelAttributeAst.cast(node);\n\t\tif (attribute) return leafMember(writer, \"blockAttribute\", () => emitBlockAttribute(writer, attribute));\n\t});\n}\nfunction emitNamespace(writer, namespace, trailing) {\n\temitBlockBody(writer, namespace.syntax, trailing, (node) => {\n\t\tconst declaration = castBlockDeclaration(node);\n\t\tif (declaration) return nestedBlockMember(writer, declaration);\n\t});\n}\nfunction emitTypesBlock(writer, block, trailing) {\n\temitBlockBody(writer, block.syntax, trailing, (node) => {\n\t\tconst named = NamedTypeDeclarationAst.cast(node);\n\t\tif (named) return leafMember(writer, \"regular\", () => emitNamedType(writer, named));\n\t});\n}\nfunction emitTopLevel(writer, document) {\n\twalkRegion(writer, Array.from(document.syntax.children()), void 0, (node) => {\n\t\tconst declaration = castTopLevelDeclaration(node);\n\t\tif (declaration) return nestedBlockMember(writer, declaration);\n\t});\n}\nfunction nestedBlockMember(writer, block) {\n\treturn {\n\t\tcategory: \"nestedBlock\",\n\t\temit(trailing) {\n\t\t\tblock(writer, trailing);\n\t\t\treturn 0;\n\t\t}\n\t};\n}\nfunction castBlockDeclaration(node) {\n\tconst model = ModelDeclarationAst.cast(node);\n\tif (model) return (writer, trailing) => emitModel(writer, model, trailing);\n\tconst composite = CompositeTypeDeclarationAst.cast(node);\n\tif (composite) return (writer, trailing) => emitCompositeType(writer, composite, trailing);\n\tconst generic = GenericBlockDeclarationAst.cast(node);\n\tif (generic) return (writer, trailing) => emitGenericBlock(writer, generic, trailing);\n}\nfunction castTopLevelDeclaration(node) {\n\tconst block = castBlockDeclaration(node);\n\tif (block) return block;\n\tconst namespace = NamespaceDeclarationAst.cast(node);\n\tif (namespace) return (writer, trailing) => emitNamespace(writer, namespace, trailing);\n\tconst types = TypesBlockAst.cast(node);\n\tif (types) return (writer, trailing) => emitTypesBlock(writer, types, trailing);\n}\nfunction emitBlockBody(writer, node, closingTrailing, classify) {\n\tconst children = Array.from(node.children());\n\tconst openIndex = children.findIndex((el) => !(el instanceof SyntaxNode) && el.kind === \"LBrace\");\n\tconst headerComments = streamHeader(writer, node);\n\tconst openingComment = sameLineCommentAfter(children, openIndex);\n\tif (openingComment !== void 0) headerComments.push(openingComment);\n\tconst [firstComment, ...otherComments] = headerComments;\n\tif (firstComment !== void 0) writer.comment(firstComment);\n\telse writer.newline();\n\twriter.indent();\n\tfor (const comment of otherComments) writer.comment(comment);\n\twalkRegion(writer, children, \"RBrace\", classify);\n\twriter.unindent();\n\twriter.writeRaw(\"}\");\n\tif (closingTrailing !== void 0) writer.comment(closingTrailing);\n\telse writer.newline();\n}\n/** Writes the block header through `{` and returns the source comments found before the `{`. */\nfunction streamHeader(writer, node) {\n\tconst comments = [];\n\tlet done = false;\n\tconst walk = (parent) => {\n\t\tfor (const child of parent.children()) {\n\t\t\tif (done) return;\n\t\t\tif (child instanceof SyntaxNode) {\n\t\t\t\twalk(child);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Comment\") {\n\t\t\t\tcomments.push(child.text);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\") continue;\n\t\t\tconst space = spaceBetween(writer.prevKind(), child.kind, false);\n\t\t\twriter.write(child, space);\n\t\t\tif (child.kind === \"LBrace\") {\n\t\t\t\tdone = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\twalk(node);\n\treturn comments;\n}\nfunction walkRegion(writer, elements, closeKind, classify) {\n\tlet sawOpenBrace = closeKind === void 0;\n\tlet sawContent = false;\n\tlet lastWasRegular = false;\n\tlet ledByComment = false;\n\tlet newlines = 0;\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst element = elements[i];\n\t\tif (element === void 0) continue;\n\t\tif (element instanceof SyntaxNode) {\n\t\t\tif (!sawOpenBrace) continue;\n\t\t\tconst member = classify(element);\n\t\t\tif (member === void 0) throw new InternalError(`Formatter has no rule for a ${element.kind} node at offset ${element.offset}; formatting would drop its text`);\n\t\t\tif (!ledByComment) {\n\t\t\t\tif (newlines >= 2 && sawContent && !writer.lastIsBlank()) writer.blank();\n\t\t\t\telse if (separationBlankWanted(writer, member.category, sawContent, lastWasRegular)) writer.blank();\n\t\t\t}\n\t\t\tconst trailing = sameLineTrailingComment(elements, i);\n\t\t\tcloseContinuation(writer, member.emit(trailing.text));\n\t\t\tif (trailing.index !== void 0) i = trailing.index;\n\t\t\tsawContent = true;\n\t\t\tlastWasRegular = member.category !== \"blockAttribute\";\n\t\t\tledByComment = false;\n\t\t\tnewlines = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (element.kind === \"LBrace\" && closeKind === \"RBrace\" && !sawOpenBrace) {\n\t\t\tsawOpenBrace = true;\n\t\t\tnewlines = 0;\n\t\t\tcontinue;\n\t\t}\n\t\tif (!sawOpenBrace) continue;\n\t\tif (closeKind === \"RBrace\" && element.kind === \"RBrace\") break;\n\t\tif (element.kind === \"Whitespace\") continue;\n\t\tif (element.kind === \"Newline\") {\n\t\t\tnewlines += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (element.kind === \"Comment\") {\n\t\t\tif (closeKind === \"RBrace\" && newlines === 0 && !sawContent) continue;\n\t\t\tif (newlines >= 2 && sawContent && !writer.lastIsBlank()) writer.blank();\n\t\t\telse if (!ledByComment) {\n\t\t\t\tconst led = leadingMemberAfter(elements, i, classify);\n\t\t\t\tif (led && separationBlankWanted(writer, led, sawContent, lastWasRegular)) writer.blank();\n\t\t\t}\n\t\t\twriter.writeRaw(element.text);\n\t\t\twriter.newline();\n\t\t\tsawContent = true;\n\t\t\tledByComment = true;\n\t\t\tnewlines = 0;\n\t\t}\n\t}\n}\nfunction separationBlankWanted(writer, category, sawContent, lastWasRegular) {\n\tif (!sawContent || writer.lastIsBlank()) return false;\n\tif (category === \"nestedBlock\") return true;\n\treturn category === \"blockAttribute\" && lastWasRegular;\n}\nfunction leadingMemberAfter(elements, commentIndex, classify) {\n\tfor (let i = commentIndex + 1; i < elements.length; i++) {\n\t\tconst element = elements[i];\n\t\tif (element === void 0) continue;\n\t\tif (element instanceof SyntaxNode) return classify(element)?.category;\n\t\tif (element.kind === \"RBrace\") return void 0;\n\t}\n}\nfunction sameLineTrailingComment(elements, memberIndex) {\n\tfor (let i = memberIndex + 1; i < elements.length; i++) {\n\t\tconst element = elements[i];\n\t\tif (element === void 0) continue;\n\t\tif (element instanceof SyntaxNode) break;\n\t\tif (element.kind === \"Whitespace\") continue;\n\t\tif (element.kind === \"Comment\") return {\n\t\t\ttext: element.text,\n\t\t\tindex: i\n\t\t};\n\t\tbreak;\n\t}\n\treturn {\n\t\ttext: void 0,\n\t\tindex: void 0\n\t};\n}\nfunction sameLineCommentAfter(children, openIndex) {\n\tfor (let i = openIndex + 1; i < children.length; i++) {\n\t\tconst child = children[i];\n\t\tif (child === void 0) continue;\n\t\tif (child instanceof SyntaxNode) return void 0;\n\t\tif (child.kind === \"Whitespace\") continue;\n\t\tif (child.kind === \"Comment\") return child.text;\n\t\treturn;\n\t}\n}\nfunction alignmentMap(block) {\n\tconst fields = [];\n\tfor (const element of block.children()) {\n\t\tif (!(element instanceof SyntaxNode)) continue;\n\t\tif (FieldDeclarationAst.cast(element) === void 0) continue;\n\t\tif (hasInteriorComment(element)) continue;\n\t\tfields.push(element);\n\t}\n\tif (fields.length === 0) return void 0;\n\treturn alignmentColumns(fields);\n}\nfunction alignmentColumns(rows) {\n\tlet nameWidth = 0;\n\tfor (const row of rows) {\n\t\tconst field = FieldDeclarationAst.cast(row);\n\t\tif (!field) continue;\n\t\tnameWidth = Math.max(nameWidth, renderTokens(field.name()?.syntax).length);\n\t}\n\tconst typeColumn = nameWidth + 1;\n\tlet cellEnd = 0;\n\tfor (const row of rows) {\n\t\tconst field = FieldDeclarationAst.cast(row);\n\t\tif (!field) continue;\n\t\tconst name = renderTokens(field.name()?.syntax);\n\t\tconst type = renderTokens(field.typeAnnotation()?.syntax);\n\t\tcellEnd = Math.max(cellEnd, type.length > 0 ? typeColumn + type.length : name.length);\n\t}\n\treturn {\n\t\ttypeColumn,\n\t\tattributeColumn: cellEnd + 1\n\t};\n}\nfunction hasInteriorComment(node) {\n\tfor (const token of node.tokens()) if (token.kind === \"Comment\") return true;\n\treturn false;\n}\nfunction renderTokens(node) {\n\tif (!node) return \"\";\n\tlet out = \"\";\n\tlet prev;\n\tlet prevQualified = false;\n\tconst walk = (parent, qualified) => {\n\t\tfor (const child of parent.children()) {\n\t\t\tif (child instanceof SyntaxNode) {\n\t\t\t\twalk(child, qualified || child.kind === \"QualifiedName\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (child.kind === \"Whitespace\" || child.kind === \"Newline\" || child.kind === \"Comment\") continue;\n\t\t\tif (spaceBetween(prev, child.kind, qualified && prevQualified)) out += \" \";\n\t\t\tout += child.text;\n\t\t\tprev = child.kind;\n\t\t\tprevQualified = qualified;\n\t\t}\n\t};\n\twalk(node, false);\n\treturn out;\n}\n//#endregion\n//#region src/format/error.ts\nfunction pslError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/format/options.ts\nfunction resolveFormatOptions(options) {\n\tconst indent = options?.indent ?? 2;\n\tif (indent !== \"tab\" && (typeof indent !== \"number\" || !Number.isInteger(indent) || indent < 1)) throw pslError(\"PSL.FORMAT_OPTION_INVALID\", `Invalid format options: indent must be a positive integer or 'tab', got ${String(indent)}`, { meta: {\n\t\toption: \"indent\",\n\t\treceived: String(indent)\n\t} });\n\tconst newline = options?.newline ?? \"LF\";\n\tif (newline !== \"LF\" && newline !== \"CRLF\") throw pslError(\"PSL.FORMAT_OPTION_INVALID\", `Invalid format options: newline must be 'LF' or 'CRLF', got ${String(newline)}`, { meta: {\n\t\toption: \"newline\",\n\t\treceived: String(newline)\n\t} });\n\treturn {\n\t\tindentUnit: indent === \"tab\" ? \"\t\" : \" \".repeat(indent),\n\t\tnewline: newline === \"CRLF\" ? \"\\r\\n\" : \"\\n\"\n\t};\n}\n//#endregion\n//#region src/format/format.ts\nfunction format(source, options) {\n\tconst resolved = resolveFormatOptions(options);\n\tconst { document, diagnostics } = parse(source, \"<format-input>.psl\");\n\tif (diagnostics.length > 0) throw pslError(\"PSL.PARSE_FAILED\", `Cannot format PSL with parse errors: ${diagnostics[0]?.message ?? \"unknown parse error\"}${diagnostics.length > 1 ? ` (and ${diagnostics.length - 1} more)` : \"\"}`, { meta: { diagnostics } });\n\treturn emitDocument(document, resolved.indentUnit, resolved.newline);\n}\n//#endregion\nexport { format };\n\n//# sourceMappingURL=format.mjs.map"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { t as Contract } from "./contract-types-Cdqr65a--BsYwlpQo.mjs";
2
- import { $ as PslSpan, a as AuthoringContributions, ft as instantiateAuthoringFieldPreset, m as AuthoringFieldPresetDescriptor, n as AuthoringArgumentDescriptor, w as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-AkdL38SR-DRSNWmJT.mjs";
3
- import "./authoring-BfEjYZpO.mjs";
2
+ import { C as AuthoringPslBlockDescriptorNamespace, Q as instantiateAuthoringFieldPreset, U as PslSpan, a as AuthoringContributions, n as AuthoringArgumentDescriptor, p as AuthoringFieldPresetDescriptor } from "./framework-authoring-Lssvcd3X-DsgKz6mc.mjs";
3
+ import "./authoring-BYbSOseC.mjs";
4
4
  import { r as Result } from "./result-BYCOANWy.mjs";
5
- import "./psl-ast-C90I4nkm.mjs";
6
- import { c as ContractSourceProvider, n as ContractSourceContext, o as ContractSourceDiagnostics, p as PslContractSourceProvider, r as ContractSourceDiagnostic } from "./config-types-7cVcsDOV.mjs";
7
- import { F as PslDiagnostic, I as PslDiagnosticCollector, L as PslSources, d as DiagnosticSource, f as DocumentAst } from "./parse-DZRO_CK2-BtDklsaV.mjs";
8
- import { d as ResolvedTypeConstructorCall, f as SymbolTable, i as FieldSymbol, l as ResolvedAttributeArg, t as BlockSymbol } from "./symbol-table-ikmivfwq-u2--jZQG.mjs";
5
+ import "./psl-ast-BOzFRzI0.mjs";
6
+ import { c as ContractSourceProvider, n as ContractSourceContext, o as ContractSourceDiagnostics, p as PslContractSourceProvider, r as ContractSourceDiagnostic } from "./config-types-DmSch3ta.mjs";
7
+ import { F as PslDiagnostic, I as PslDiagnosticCollector, L as PslSources, d as DiagnosticSource, f as DocumentAst } from "./parse-XbG2XDRs-BJvdVA-3.mjs";
8
+ import { d as ResolvedTypeConstructorCall, f as SymbolTable, i as FieldSymbol, l as ResolvedAttributeArg, t as BlockSymbol } from "./symbol-table-uBpYeTjB-CYN4_SgJ.mjs";
9
9
  //#region ../../../1-framework/2-authoring/psl-parser/dist/interpret.d.mts
10
10
  //#region src/authoring-arguments.d.ts
11
11
  declare function mapPslHelperArgs(input: {
@@ -1,6 +1,6 @@
1
1
  import { n as notOk } from "./result-8OXF26MN.mjs";
2
- import { f as instantiateAuthoringFieldPreset, j as validateAuthoringHelperArguments, v as isAuthoringPslBlockDescriptor } from "./temporal-presets-MavBeaJC-BcqWVoBB.mjs";
3
- import { n as fieldPresetSpellings } from "./authoring-CL-ZB448.mjs";
2
+ import { P as validateAuthoringHelperArguments, h as instantiateAuthoringFieldPreset, x as isAuthoringPslBlockDescriptor } from "./temporal-presets-DMRKrfIa-HElHwGB2.mjs";
3
+ import { n as fieldPresetSpellings } from "./authoring-e9U_0LWr.mjs";
4
4
  import { i as keywordPslSpan, o as nodePslSpan, r as diagnosticSource } from "./resolve-GE34dgM6-D33m6YEw.mjs";
5
5
  //#region ../../../1-framework/2-authoring/psl-parser/dist/interpret.mjs
6
6
  function unquoteStringLiteral(value) {
@@ -1,5 +1,5 @@
1
1
  import { n as TokenKind } from "./tokenizer-DW30uwhx-BHsWTwYk.mjs";
2
- import { A as ObjectFieldAst, B as SourceFile, C as KeyValuePairAst, D as NamespaceDeclarationAst, E as NamedTypeDeclarationAst, G as SyntaxNode, H as StringLiteralQuote, J as TokenAtOffset, K as SyntaxToken, L as PslSources, M as ParseDiagnostic, N as ParseResult, O as NamespaceMemberAst, P as Position, Q as castExpression, R as QualifiedNameAst, S as IdentifierAst, T as ModelDeclarationAst, U as SyntaxElement, V as StringLiteralExprAst, W as SyntaxKind, X as TypesBlockAst, Y as TypeAnnotationAst, Z as any, _ as GenericBlockDeclarationAst, a as AttributeAst, at as findFirstChild, b as GreenNode, c as BracedBlock, et as createSyntaxTree, f as DocumentAst, g as FunctionCallAst, h as FieldDeclarationAst, i as AttributeArgListAst, it as findChildToken, j as ObjectLiteralExprAst, k as NumberLiteralExprAst, l as CompositeTypeDeclarationAst, lt as parse, m as FieldAttributeAst, n as AstNode, o as BlockMemberAst, ot as greenNode, p as ExpressionAst, q as TaggedLiteralExprAst, r as AttributeArgAst, rt as filterChildren, s as BooleanLiteralExprAst, st as greenToken, t as ArrayLiteralAst, u as DeclarationAst, ut as printSyntax, v as GenericBlockMemberAst, w as ModelAttributeAst, x as GreenToken, y as GreenElement, z as Range } from "./parse-DZRO_CK2-BtDklsaV.mjs";
2
+ import { A as ObjectFieldAst, B as SourceFile, C as KeyValuePairAst, D as NamespaceDeclarationAst, E as NamedTypeDeclarationAst, G as SyntaxNode, H as StringLiteralQuote, J as TokenAtOffset, K as SyntaxToken, L as PslSources, M as ParseDiagnostic, N as ParseResult, O as NamespaceMemberAst, P as Position, Q as castExpression, R as QualifiedNameAst, S as IdentifierAst, T as ModelDeclarationAst, U as SyntaxElement, V as StringLiteralExprAst, W as SyntaxKind, X as TypesBlockAst, Y as TypeAnnotationAst, Z as any, _ as GenericBlockDeclarationAst, a as AttributeAst, at as findFirstChild, b as GreenNode, c as BracedBlock, et as createSyntaxTree, f as DocumentAst, g as FunctionCallAst, h as FieldDeclarationAst, i as AttributeArgListAst, it as findChildToken, j as ObjectLiteralExprAst, k as NumberLiteralExprAst, l as CompositeTypeDeclarationAst, lt as parse, m as FieldAttributeAst, n as AstNode, o as BlockMemberAst, ot as greenNode, p as ExpressionAst, q as TaggedLiteralExprAst, r as AttributeArgAst, rt as filterChildren, s as BooleanLiteralExprAst, st as greenToken, t as ArrayLiteralAst, u as DeclarationAst, ut as printSyntax, v as GenericBlockMemberAst, w as ModelAttributeAst, x as GreenToken, y as GreenElement, z as Range } from "./parse-XbG2XDRs-BJvdVA-3.mjs";
3
3
  //#region ../../../1-framework/2-authoring/psl-parser/dist/syntax.d.mts
4
4
  //#region src/syntax/green-builder.d.ts
5
5
  declare class GreenNodeBuilder {
@@ -1,6 +1,6 @@
1
1
  import { a as createSyntaxTree, c as findFirstChild, i as any, l as printSyntax, n as SyntaxToken, o as filterChildren, r as TokenAtOffset, s as findChildToken, t as SyntaxNode } from "./ast-helpers-2XRnkQEO-BxG5qx3Q.mjs";
2
- import { C as TypeAnnotationAst, S as TaggedLiteralExprAst, T as castExpression, _ as NumberLiteralExprAst, a as CompositeTypeDeclarationAst, b as QualifiedNameAst, c as FieldDeclarationAst, d as IdentifierAst, f as KeyValuePairAst, g as NamespaceDeclarationAst, h as NamedTypeDeclarationAst, i as BooleanLiteralExprAst, l as FunctionCallAst, m as ModelDeclarationAst, n as AttributeArgAst, o as DocumentAst, p as ModelAttributeAst, r as AttributeArgListAst, s as FieldAttributeAst, t as ArrayLiteralAst, u as GenericBlockDeclarationAst, v as ObjectFieldAst, w as TypesBlockAst, x as StringLiteralExprAst, y as ObjectLiteralExprAst } from "./declarations-BrSntcPa-BUYk6wxW.mjs";
3
- import { a as greenToken, i as greenNode, n as PslSources, o as parse, r as SourceFile, t as GreenNodeBuilder } from "./parse-CfZKsx8i-DpxGIwhF.mjs";
2
+ import { C as TypeAnnotationAst, S as TaggedLiteralExprAst, T as castExpression, _ as NumberLiteralExprAst, a as CompositeTypeDeclarationAst, b as QualifiedNameAst, c as FieldDeclarationAst, d as IdentifierAst, f as KeyValuePairAst, g as NamespaceDeclarationAst, h as NamedTypeDeclarationAst, i as BooleanLiteralExprAst, l as FunctionCallAst, m as ModelDeclarationAst, n as AttributeArgAst, o as DocumentAst, p as ModelAttributeAst, r as AttributeArgListAst, s as FieldAttributeAst, t as ArrayLiteralAst, u as GenericBlockDeclarationAst, v as ObjectFieldAst, w as TypesBlockAst, x as StringLiteralExprAst, y as ObjectLiteralExprAst } from "./declarations-CcEBlusF-DXJwQ_ze.mjs";
3
+ import { a as greenToken, i as greenNode, n as PslSources, o as parse, r as SourceFile, t as GreenNodeBuilder } from "./parse-DAVL8A2m-CdprLvJq.mjs";
4
4
  //#region ../../../1-framework/2-authoring/psl-parser/dist/syntax.mjs
5
5
  const TRIVIA_KINDS = /* @__PURE__ */ new Set([
6
6
  "Whitespace",
@@ -1 +1 @@
1
- {"version":3,"file":"psl-parser__syntax.mjs","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/syntax.mjs"],"sourcesContent":["import { a as printSyntax, c as TokenAtOffset, i as findFirstChild, l as createSyntaxTree, n as filterChildren, o as SyntaxNode, r as findChildToken, s as SyntaxToken, t as any } from \"./ast-helpers-2XRnkQEO.mjs\";\nimport { C as castExpression, S as TaggedLiteralExprAst, T as IdentifierAst, _ as FunctionCallAst, a as KeyValuePairAst, b as ObjectLiteralExprAst, c as NamespaceDeclarationAst, d as AttributeArgListAst, f as FieldAttributeAst, g as BooleanLiteralExprAst, h as AttributeArgAst, i as GenericBlockDeclarationAst, l as TypesBlockAst, m as ArrayLiteralAst, n as DocumentAst, o as ModelDeclarationAst, p as ModelAttributeAst, r as FieldDeclarationAst, s as NamedTypeDeclarationAst, t as CompositeTypeDeclarationAst, u as TypeAnnotationAst, v as NumberLiteralExprAst, w as QualifiedNameAst, x as StringLiteralExprAst, y as ObjectFieldAst } from \"./declarations-BrSntcPa.mjs\";\nimport { a as PslSources, i as greenToken, n as GreenNodeBuilder, o as SourceFile, r as greenNode, t as parse } from \"./parse-CfZKsx8i.mjs\";\n//#region src/syntax/navigation.ts\nconst TRIVIA_KINDS = /* @__PURE__ */ new Set([\n\t\"Whitespace\",\n\t\"Newline\",\n\t\"Comment\"\n]);\n/** Whether a token kind is trivia (whitespace, newline, or comment). */\nfunction isTriviaKind(kind) {\n\treturn TRIVIA_KINDS.has(kind);\n}\n/** Whether a token is trivia. */\nfunction isTrivia(token) {\n\treturn isTriviaKind(token.kind);\n}\n/**\n* The first non-trivia token at or beyond `token` in `direction`. Returns\n* `token` itself when it is already significant.\n*/\nfunction skipTriviaToken(token, direction) {\n\tlet current = token;\n\twhile (current !== void 0 && isTrivia(current)) current = direction === \"next\" ? current.nextToken : current.prevToken;\n\treturn current;\n}\n/**\n* The nearest sibling of `element` (within the same parent) in `direction` that\n* is not a trivia token. Nodes are always significant.\n*/\nfunction nonTriviaSibling(element, direction) {\n\tlet sibling = step(element, direction);\n\twhile (sibling !== void 0) {\n\t\tif (!(sibling instanceof SyntaxToken) || !isTrivia(sibling)) return sibling;\n\t\tsibling = step(sibling, direction);\n\t}\n}\nfunction step(element, direction) {\n\treturn direction === \"next\" ? element.nextSiblingOrToken : element.prevSiblingOrToken;\n}\n//#endregion\nexport { ArrayLiteralAst, AttributeArgAst, AttributeArgListAst, BooleanLiteralExprAst, CompositeTypeDeclarationAst, DocumentAst, FieldAttributeAst, FieldDeclarationAst, FunctionCallAst, GenericBlockDeclarationAst, GreenNodeBuilder, IdentifierAst, KeyValuePairAst, ModelAttributeAst, ModelDeclarationAst, NamedTypeDeclarationAst, NamespaceDeclarationAst, NumberLiteralExprAst, ObjectFieldAst, ObjectLiteralExprAst, PslSources, QualifiedNameAst, SourceFile, StringLiteralExprAst, SyntaxNode, SyntaxToken, TaggedLiteralExprAst, TokenAtOffset, TypeAnnotationAst, TypesBlockAst, any, castExpression, createSyntaxTree, filterChildren, findChildToken, findFirstChild, greenNode, greenToken, isTrivia, isTriviaKind, nonTriviaSibling, parse, printSyntax, skipTriviaToken };\n\n//# sourceMappingURL=syntax.mjs.map"],"mappings":";;;;AAIA,MAAM,+BAA+B,IAAI,IAAI;CAC5C;CACA;CACA;AACD,CAAC;;AAED,SAAS,aAAa,MAAM;CAC3B,OAAO,aAAa,IAAI,IAAI;AAC7B;;AAEA,SAAS,SAAS,OAAO;CACxB,OAAO,aAAa,MAAM,IAAI;AAC/B;;;;;AAKA,SAAS,gBAAgB,OAAO,WAAW;CAC1C,IAAI,UAAU;CACd,OAAO,YAAY,KAAK,KAAK,SAAS,OAAO,GAAG,UAAU,cAAc,SAAS,QAAQ,YAAY,QAAQ;CAC7G,OAAO;AACR;;;;;AAKA,SAAS,iBAAiB,SAAS,WAAW;CAC7C,IAAI,UAAU,KAAK,SAAS,SAAS;CACrC,OAAO,YAAY,KAAK,GAAG;EAC1B,IAAI,EAAE,mBAAmB,gBAAgB,CAAC,SAAS,OAAO,GAAG,OAAO;EACpE,UAAU,KAAK,SAAS,SAAS;CAClC;AACD;AACA,SAAS,KAAK,SAAS,WAAW;CACjC,OAAO,cAAc,SAAS,QAAQ,qBAAqB,QAAQ;AACpE"}
1
+ {"version":3,"file":"psl-parser__syntax.mjs","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/syntax.mjs"],"sourcesContent":["import { a as printSyntax, c as TokenAtOffset, i as findFirstChild, l as createSyntaxTree, n as filterChildren, o as SyntaxNode, r as findChildToken, s as SyntaxToken, t as any } from \"./ast-helpers-2XRnkQEO.mjs\";\nimport { C as castExpression, S as TaggedLiteralExprAst, T as IdentifierAst, _ as FunctionCallAst, a as KeyValuePairAst, b as ObjectLiteralExprAst, c as NamespaceDeclarationAst, d as AttributeArgListAst, f as FieldAttributeAst, g as BooleanLiteralExprAst, h as AttributeArgAst, i as GenericBlockDeclarationAst, l as TypesBlockAst, m as ArrayLiteralAst, n as DocumentAst, o as ModelDeclarationAst, p as ModelAttributeAst, r as FieldDeclarationAst, s as NamedTypeDeclarationAst, t as CompositeTypeDeclarationAst, u as TypeAnnotationAst, v as NumberLiteralExprAst, w as QualifiedNameAst, x as StringLiteralExprAst, y as ObjectFieldAst } from \"./declarations-CcEBlusF.mjs\";\nimport { a as PslSources, i as greenToken, n as GreenNodeBuilder, o as SourceFile, r as greenNode, t as parse } from \"./parse-DAVL8A2m.mjs\";\n//#region src/syntax/navigation.ts\nconst TRIVIA_KINDS = /* @__PURE__ */ new Set([\n\t\"Whitespace\",\n\t\"Newline\",\n\t\"Comment\"\n]);\n/** Whether a token kind is trivia (whitespace, newline, or comment). */\nfunction isTriviaKind(kind) {\n\treturn TRIVIA_KINDS.has(kind);\n}\n/** Whether a token is trivia. */\nfunction isTrivia(token) {\n\treturn isTriviaKind(token.kind);\n}\n/**\n* The first non-trivia token at or beyond `token` in `direction`. Returns\n* `token` itself when it is already significant.\n*/\nfunction skipTriviaToken(token, direction) {\n\tlet current = token;\n\twhile (current !== void 0 && isTrivia(current)) current = direction === \"next\" ? current.nextToken : current.prevToken;\n\treturn current;\n}\n/**\n* The nearest sibling of `element` (within the same parent) in `direction` that\n* is not a trivia token. Nodes are always significant.\n*/\nfunction nonTriviaSibling(element, direction) {\n\tlet sibling = step(element, direction);\n\twhile (sibling !== void 0) {\n\t\tif (!(sibling instanceof SyntaxToken) || !isTrivia(sibling)) return sibling;\n\t\tsibling = step(sibling, direction);\n\t}\n}\nfunction step(element, direction) {\n\treturn direction === \"next\" ? element.nextSiblingOrToken : element.prevSiblingOrToken;\n}\n//#endregion\nexport { ArrayLiteralAst, AttributeArgAst, AttributeArgListAst, BooleanLiteralExprAst, CompositeTypeDeclarationAst, DocumentAst, FieldAttributeAst, FieldDeclarationAst, FunctionCallAst, GenericBlockDeclarationAst, GreenNodeBuilder, IdentifierAst, KeyValuePairAst, ModelAttributeAst, ModelDeclarationAst, NamedTypeDeclarationAst, NamespaceDeclarationAst, NumberLiteralExprAst, ObjectFieldAst, ObjectLiteralExprAst, PslSources, QualifiedNameAst, SourceFile, StringLiteralExprAst, SyntaxNode, SyntaxToken, TaggedLiteralExprAst, TokenAtOffset, TypeAnnotationAst, TypesBlockAst, any, castExpression, createSyntaxTree, filterChildren, findChildToken, findFirstChild, greenNode, greenToken, isTrivia, isTriviaKind, nonTriviaSibling, parse, printSyntax, skipTriviaToken };\n\n//# sourceMappingURL=syntax.mjs.map"],"mappings":";;;;AAIA,MAAM,+BAA+B,IAAI,IAAI;CAC5C;CACA;CACA;AACD,CAAC;;AAED,SAAS,aAAa,MAAM;CAC3B,OAAO,aAAa,IAAI,IAAI;AAC7B;;AAEA,SAAS,SAAS,OAAO;CACxB,OAAO,aAAa,MAAM,IAAI;AAC/B;;;;;AAKA,SAAS,gBAAgB,OAAO,WAAW;CAC1C,IAAI,UAAU;CACd,OAAO,YAAY,KAAK,KAAK,SAAS,OAAO,GAAG,UAAU,cAAc,SAAS,QAAQ,YAAY,QAAQ;CAC7G,OAAO;AACR;;;;;AAKA,SAAS,iBAAiB,SAAS,WAAW;CAC7C,IAAI,UAAU,KAAK,SAAS,SAAS;CACrC,OAAO,YAAY,KAAK,GAAG;EAC1B,IAAI,EAAE,mBAAmB,gBAAgB,CAAC,SAAS,OAAO,GAAG,OAAO;EACpE,UAAU,KAAK,SAAS,SAAS;CAClC;AACD;AACA,SAAS,KAAK,SAAS,WAAW;CACjC,OAAO,cAAc,SAAS,QAAQ,qBAAqB,QAAQ;AACpE"}
@@ -1,7 +1,7 @@
1
- import { w as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-AkdL38SR-DRSNWmJT.mjs";
2
- import "./authoring-BfEjYZpO.mjs";
3
- import { f as PslDocumentAst } from "./psl-ast-BjC549ky-CD7J2H0j.mjs";
4
- import "./psl-ast-C90I4nkm.mjs";
1
+ import { C as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-Lssvcd3X-DsgKz6mc.mjs";
2
+ import "./authoring-BYbSOseC.mjs";
3
+ import { f as PslDocumentAst } from "./psl-ast-Dte0XPl8-CXSWV9CL.mjs";
4
+ import "./psl-ast-BOzFRzI0.mjs";
5
5
  //#region ../../../1-framework/2-authoring/psl-printer/dist/index.d.mts
6
6
  //#region src/print-psl.d.ts
7
7
  type PslBlockDescriptorsNamespace = AuthoringPslBlockDescriptorNamespace;
@@ -1,6 +1,6 @@
1
1
  import { t as ifDefined } from "./defined-BQWA85QH-BRSBMULx.mjs";
2
2
  import { o as structuredError } from "./structured-error-BXbihKQ-.mjs";
3
- import { v as isAuthoringPslBlockDescriptor } from "./temporal-presets-MavBeaJC-BcqWVoBB.mjs";
3
+ import { x as isAuthoringPslBlockDescriptor } from "./temporal-presets-DMRKrfIa-HElHwGB2.mjs";
4
4
  import { a as flatPslModels, c as namespacePslExtensionBlocks } from "./psl-ast-CyvE6CR-.mjs";
5
5
  //#region ../../../1-framework/2-authoring/psl-printer/dist/index.mjs
6
6
  function contractError(code, message, options) {
@@ -1,6 +1,7 @@
1
1
  import { G as PlanMeta } from "./domain-envelope-gHv58hD1-B8mta2A6.mjs";
2
2
  import { n as ContractExecutionSection } from "./contract-types-Cdqr65a--BsYwlpQo.mjs";
3
3
  import { a as CodecCallContext } from "./codec-types-DjklYAo0-DL7hUdjg.mjs";
4
+ import { t as RuntimeErrorEnvelope } from "./runtime-error-CO4MA3Px-YW5SCUcH.mjs";
4
5
  //#region ../../../1-framework/1-core/framework-components/dist/runtime.d.mts
5
6
  //#region src/annotations.d.ts
6
7
  /**
@@ -771,22 +772,6 @@ declare function assertMutationDefaultGeneratorsAvailable(execution: ContractExe
771
772
  */
772
773
  declare function applyMutationDefaults(execution: ContractExecutionSection | undefined, generatorRegistry: ReadonlyMap<string, RuntimeMutationDefaultGenerator>, options: MutationDefaultsOptions): ReadonlyArray<AppliedMutationDefault>;
773
774
  //#endregion
774
- //#region src/shared/runtime-error.d.ts
775
- interface RuntimeErrorEnvelope extends Error {
776
- readonly code: string;
777
- readonly category: 'PLAN' | 'CONTRACT' | 'LINT' | 'BUDGET' | 'RUNTIME' | 'DRIVER' | 'MIGRATION' | 'ORM';
778
- readonly severity: 'error';
779
- readonly details?: Record<string, unknown>;
780
- }
781
- /**
782
- * Type guard for the runtime-error envelope produced by `runtimeError`.
783
- *
784
- * Prefer this over duck-typing on `error.code` directly so consumers stay
785
- * insulated from the envelope's internal shape.
786
- */
787
- declare function isRuntimeError(error: unknown): error is RuntimeErrorEnvelope;
788
- declare function runtimeError(code: string, message: string, details?: Record<string, unknown>): RuntimeErrorEnvelope;
789
- //#endregion
790
775
  //#region src/execution/runtime-error.d.ts
791
776
  /**
792
777
  * Stable code emitted by the runtime when an in-flight `execute()`
@@ -1146,5 +1131,5 @@ interface LaneMetaBuilder<K extends OperationKind> extends MetaBuilder<K> {
1146
1131
  */
1147
1132
  declare function createMetaBuilder<K extends OperationKind>(kind: K, terminalName: string): LaneMetaBuilder<K>;
1148
1133
  //#endregion
1149
- export { runExecuteWithMiddleware as $, RuntimeExecuteOptions as A, ValidAnnotations as B, RelationKeys as C, RuntimeCore as D, RuntimeAbortedPhase as E, RuntimeMutationDefaultGenerator as F, checkMiddlewareCompatibility as G, assertAnnotationsApplicable as H, RuntimeStatementStats as I, defineAnnotation as J, collectMutationDefaultGenerators as K, Scalars as L, RuntimeLog as M, RuntimeMiddleware as N, RuntimeCoreOptions as O, RuntimeMiddlewareContext as P, runBeforeQueryChain as Q, Shape as R, RUNTIME_ABORTED as S, ResultType as T, assertMutationDefaultGeneratorsAvailable as U, applyMutationDefaults as V, checkAborted as W, raceAgainstAbort as X, isRuntimeError as Y, runBeforeExecuteChain as Z, MutationDefaultsOptions as _, AppliedMutationDefault as a, QueryInterceptResult as b, DefineAnnotationOptions as c, GeneratorStability as d, runQueryWithMiddleware as et, LaneMetaBuilder as f, MutationDefaultsOp as g, MutationDefaults as h, AnnotationValue as i, RuntimeExecutor as j, RuntimeErrorEnvelope as k, ExecuteInterceptResult as l, MutationDefaultGeneratorContributor as m, AfterQueryResult as n, runtimeError as nt, AsyncIterableResult as o, MetaBuilder as p, createMetaBuilder as q, AnnotationHandle as r, CrossFamilyMiddleware as s, AfterExecuteResult as t, runtimeAborted as tt, ExecutionPlan as u, OperationKind as v, RelationNamesOf as w, QueryPlan as x, ParamRefMutator as y, ShapeSpec as z };
1150
- //# sourceMappingURL=runtime-BWD7UzMV.d.mts.map
1134
+ export { runtimeAborted as $, RuntimeExecutor as A, applyMutationDefaults as B, RelationKeys as C, RuntimeCore as D, RuntimeAbortedPhase as E, RuntimeStatementStats as F, collectMutationDefaultGenerators as G, assertMutationDefaultGeneratorsAvailable as H, Scalars as I, raceAgainstAbort as J, createMetaBuilder as K, Shape as L, RuntimeMiddleware as M, RuntimeMiddlewareContext as N, RuntimeCoreOptions as O, RuntimeMutationDefaultGenerator as P, runQueryWithMiddleware as Q, ShapeSpec as R, RUNTIME_ABORTED as S, ResultType as T, checkAborted as U, assertAnnotationsApplicable as V, checkMiddlewareCompatibility as W, runBeforeQueryChain as X, runBeforeExecuteChain as Y, runExecuteWithMiddleware as Z, MutationDefaultsOptions as _, AppliedMutationDefault as a, QueryInterceptResult as b, DefineAnnotationOptions as c, GeneratorStability as d, LaneMetaBuilder as f, MutationDefaultsOp as g, MutationDefaults as h, AnnotationValue as i, RuntimeLog as j, RuntimeExecuteOptions as k, ExecuteInterceptResult as l, MutationDefaultGeneratorContributor as m, AfterQueryResult as n, AsyncIterableResult as o, MetaBuilder as p, defineAnnotation as q, AnnotationHandle as r, CrossFamilyMiddleware as s, AfterExecuteResult as t, ExecutionPlan as u, OperationKind as v, RelationNamesOf as w, QueryPlan as x, ParamRefMutator as y, ValidAnnotations as z };
1135
+ //# sourceMappingURL=runtime-Bz3UqSoT.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-Bz3UqSoT.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/runtime.d.mts"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ //#region ../../../1-framework/1-core/framework-components/dist/runtime-error-CO4MA3Px.d.mts
2
+ //#region src/shared/runtime-error.d.ts
3
+ interface RuntimeErrorEnvelope extends Error {
4
+ readonly code: string;
5
+ readonly category: 'PLAN' | 'CONTRACT' | 'LINT' | 'BUDGET' | 'RUNTIME' | 'DRIVER' | 'MIGRATION' | 'ORM';
6
+ readonly severity: 'error';
7
+ readonly details?: Record<string, unknown>;
8
+ }
9
+ /**
10
+ * Type guard for the runtime-error envelope produced by `runtimeError`.
11
+ *
12
+ * Prefer this over duck-typing on `error.code` directly so consumers stay
13
+ * insulated from the envelope's internal shape.
14
+ */
15
+ declare function isRuntimeError(error: unknown): error is RuntimeErrorEnvelope;
16
+ declare function runtimeError(code: string, message: string, details?: Record<string, unknown>): RuntimeErrorEnvelope;
17
+ //#endregion
18
+ export { isRuntimeError as n, runtimeError as r, RuntimeErrorEnvelope as t };
19
+ //# sourceMappingURL=runtime-error-CO4MA3Px-YW5SCUcH.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-error-CO4MA3Px-YW5SCUcH.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/runtime-error-CO4MA3Px.d.mts"],"mappings":";;UACU,6BAA6B;WAC5B;WACA;WACA;WACA,UAAU;;;;;;;;iBAQJ,eAAe,iBAAiB,SAAS;iBACzC,aAAa,cAAc,iBAAiB,UAAU,0BAA0B"}
@@ -1,7 +1,7 @@
1
- import { $ as PslSpan } from "./framework-authoring-AkdL38SR-DRSNWmJT.mjs";
2
- import "./psl-ast-C90I4nkm.mjs";
3
- import { D as NamespaceDeclarationAst, E as NamedTypeDeclarationAst, G as SyntaxNode, L as PslSources, M as ParseDiagnostic, T as ModelDeclarationAst, Y as TypeAnnotationAst, _ as GenericBlockDeclarationAst, f as DocumentAst, h as FieldDeclarationAst, l as CompositeTypeDeclarationAst, m as FieldAttributeAst, p as ExpressionAst, w as ModelAttributeAst } from "./parse-DZRO_CK2-BtDklsaV.mjs";
4
- //#region ../../../1-framework/2-authoring/psl-parser/dist/symbol-table-ikmivfwq.d.mts
1
+ import { U as PslSpan } from "./framework-authoring-Lssvcd3X-DsgKz6mc.mjs";
2
+ import "./psl-ast-BOzFRzI0.mjs";
3
+ import { D as NamespaceDeclarationAst, E as NamedTypeDeclarationAst, G as SyntaxNode, L as PslSources, M as ParseDiagnostic, T as ModelDeclarationAst, Y as TypeAnnotationAst, _ as GenericBlockDeclarationAst, f as DocumentAst, h as FieldDeclarationAst, l as CompositeTypeDeclarationAst, m as FieldAttributeAst, p as ExpressionAst, w as ModelAttributeAst } from "./parse-XbG2XDRs-BJvdVA-3.mjs";
4
+ //#region ../../../1-framework/2-authoring/psl-parser/dist/symbol-table-uBpYeTjB.d.mts
5
5
  //#region src/resolve.d.ts
6
6
  interface ResolvedAttributeArg {
7
7
  readonly kind: 'positional' | 'named';
@@ -120,4 +120,4 @@ interface SymbolTableResult {
120
120
  declare function buildSymbolTable(options: BuildSymbolTableOptions): SymbolTableResult;
121
121
  //#endregion
122
122
  export { nodePslSpan as _, ModelSymbol as a, readResolvedConstructorCall as b, ResolvedAttribute as c, ResolvedTypeConstructorCall as d, SymbolTable as f, keywordPslSpan as g, buildSymbolTable as h, FieldSymbol as i, ResolvedAttributeArg as l, TopLevelScope as m, BuildSymbolTableOptions as n, NamedTypeSymbol as o, SymbolTableResult as p, CompositeTypeSymbol as r, NamespaceSymbol as s, BlockSymbol as t, ResolvedNamedTypeBinding as u, readResolvedAttribute as v, readResolvedAttributes as y };
123
- //# sourceMappingURL=symbol-table-ikmivfwq-u2--jZQG.d.mts.map
123
+ //# sourceMappingURL=symbol-table-uBpYeTjB-CYN4_SgJ.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-table-ikmivfwq-u2--jZQG.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/symbol-table-ikmivfwq.d.mts"],"mappings":";;;;;UAGU;WACC;WACA;WACA;WACA,aAAa;WACb,MAAM;;UAEP,kBAAkB,cAAc,oBAAoB,oBAAoB,oBAAoB;WAC3F;WACA,eAAe;WACf,MAAM;WACN,MAAM;;UAEP;WACC;WACA,eAAe;WACf,MAAM;;iBAEA,sBAAsB,cAAc,oBAAoB,mBAAmB,WAAW,OAAO,SAAS,aAAa,kBAAkB;iBACrI,uBAAuB,cAAc,oBAAoB,mBAAmB,YAAY,SAAS,QAAQ,SAAS,sBAAsB,kBAAkB;iBAC1J,4BAA4B,YAAY,+BAA+B,SAAS,aAAa;iBAC7F,YAAY,MAAM,YAAY,SAAS,aAAa;;iBAEpD,eAAe,MAAM,YAAY,iBAAiB,SAAS,aAAa;;;UAG/E;WACC,UAAU;;UAEX;WACC,YAAY,eAAe;WAC3B,YAAY,eAAe;WAC3B,QAAQ,eAAe;WACvB,QAAQ,eAAe;WACvB,gBAAgB,eAAe;;UAEhC;WACC;WACA;WACA;aACE,MAAM;aACN,MAAM;;WAER,QAAQ,eAAe;WACvB,gBAAgB,eAAe;WAC/B,QAAQ,eAAe;;UAExB;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN,QAAQ,eAAe;WACvB,qBAAqB,kBAAkB;;UAExC;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN,QAAQ,eAAe;WACvB,qBAAqB,kBAAkB;;UAExC;WACC;WACA;WACA;WACA,MAAM;WACN,MAAM;;UAEP;WACC;WACA,kBAAkB;WAClB;WACA,qBAAqB,kBAAkB;;;;;;;UAOxC,wBAAwB;WACvB;WACA;WACA,MAAM;WACN,MAAM;;UAEP;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN;WACA;WACA;WACA;WACA;WACA,kBAAkB;WAClB,qBAAqB,kBAAkB;;WAEvC;;UAED;WACC,oBAAoB;WACpB,SAAS;;UAEV;WACC,aAAa;WACb,sBAAsB;;;;;;iBAMhB,iBAAiB,SAAS,0BAA0B"}
1
+ {"version":3,"file":"symbol-table-uBpYeTjB-CYN4_SgJ.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/symbol-table-uBpYeTjB.d.mts"],"mappings":";;;;;UAGU;WACC;WACA;WACA;WACA,aAAa;WACb,MAAM;;UAEP,kBAAkB,cAAc,oBAAoB,oBAAoB,oBAAoB;WAC3F;WACA,eAAe;WACf,MAAM;WACN,MAAM;;UAEP;WACC;WACA,eAAe;WACf,MAAM;;iBAEA,sBAAsB,cAAc,oBAAoB,mBAAmB,WAAW,OAAO,SAAS,aAAa,kBAAkB;iBACrI,uBAAuB,cAAc,oBAAoB,mBAAmB,YAAY,SAAS,QAAQ,SAAS,sBAAsB,kBAAkB;iBAC1J,4BAA4B,YAAY,+BAA+B,SAAS,aAAa;iBAC7F,YAAY,MAAM,YAAY,SAAS,aAAa;;iBAEpD,eAAe,MAAM,YAAY,iBAAiB,SAAS,aAAa;;;UAG/E;WACC,UAAU;;UAEX;WACC,YAAY,eAAe;WAC3B,YAAY,eAAe;WAC3B,QAAQ,eAAe;WACvB,QAAQ,eAAe;WACvB,gBAAgB,eAAe;;UAEhC;WACC;WACA;WACA;aACE,MAAM;aACN,MAAM;;WAER,QAAQ,eAAe;WACvB,gBAAgB,eAAe;WAC/B,QAAQ,eAAe;;UAExB;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN,QAAQ,eAAe;WACvB,qBAAqB,kBAAkB;;UAExC;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN,QAAQ,eAAe;WACvB,qBAAqB,kBAAkB;;UAExC;WACC;WACA;WACA;WACA,MAAM;WACN,MAAM;;UAEP;WACC;WACA,kBAAkB;WAClB;WACA,qBAAqB,kBAAkB;;;;;;;UAOxC,wBAAwB;WACvB;WACA;WACA,MAAM;WACN,MAAM;;UAEP;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN;WACA;WACA;WACA;WACA;WACA,kBAAkB;WAClB,qBAAqB,kBAAkB;;WAEvC;;UAED;WACC,oBAAoB;WACpB,SAAS;;UAEV;WACC,aAAa;WACb,sBAAsB;;;;;;iBAMhB,iBAAiB,SAAS,0BAA0B"}
@@ -4,7 +4,7 @@ import { d as isExecutionMutationDefaultValue, u as isColumnDefaultLiteralInputV
4
4
  import { t as InternalError } from "./internal-error-ChGYPVpq-DhUD05u0.mjs";
5
5
  import { n as invariant } from "./assertions-Dw1lZz_Q.mjs";
6
6
  import { n as runtimeError } from "./runtime-error-BA9d7XjZ-BlT8t6LB.mjs";
7
- //#region ../../../1-framework/1-core/framework-components/dist/temporal-presets-MavBeaJC.mjs
7
+ //#region ../../../1-framework/1-core/framework-components/dist/temporal-presets-DMRKrfIa.mjs
8
8
  const AUTHORING_WARNING_BATCH_THRESHOLD = 5;
9
9
  /**
10
10
  * Emits collected authoring warnings once per build, grouped by `code`:
@@ -79,21 +79,6 @@ function resolveEnumCodecId(block, ctx) {
79
79
  codecSpan: typeAttr.argSpans?.["codecId"] ?? typeAttr.span
80
80
  };
81
81
  }
82
- const LOWERING_ENTRY_PREFIX = "lowering:";
83
- /**
84
- * The key a lowering entry sits under. A data type id is `owner/name`, so a key carrying this
85
- * prefix can never collide with one.
86
- */
87
- function loweringEntryKey(tag) {
88
- return `${LOWERING_ENTRY_PREFIX}${tag}`;
89
- }
90
- function isLoweringEntryKey(key) {
91
- return key.startsWith(LOWERING_ENTRY_PREFIX);
92
- }
93
- /** Which of the two kinds of entry this is; the only place the discriminating key is named. */
94
- function isDataTypeLoweringEntry(entry) {
95
- return "lower" in entry && entry.lower !== void 0;
96
- }
97
82
  function isAuthoringArgRef(value) {
98
83
  if (typeof value !== "object" || value === null || value.kind !== "arg") return false;
99
84
  const { index, path } = value;
@@ -709,6 +694,144 @@ function instantiateAuthoringFieldPreset(descriptor, args) {
709
694
  unique: descriptor.output.unique ?? false
710
695
  };
711
696
  }
697
+ const TAGGED_LITERAL_MAX_BYTES = 65536;
698
+ /** The message a tagged literal's canonicalization failure is reported with, in PSL and in TypeScript. */
699
+ function describeTaggedLiteralFailure(reason) {
700
+ switch (reason) {
701
+ case "nul": return "Tagged literals must not contain NUL characters.";
702
+ case "too-large": return `Tagged literal exceeds ${TAGGED_LITERAL_MAX_BYTES} bytes.`;
703
+ }
704
+ }
705
+ const PSL_BACKTICK_ESCAPES = /* @__PURE__ */ new Set(["`", "\\"]);
706
+ const TEMPLATE_TAG_ESCAPES = /* @__PURE__ */ new Set([
707
+ "`",
708
+ "\\",
709
+ "$"
710
+ ]);
711
+ /** The escapes a PSL backtick string resolves: `` \` `` and `\\`. PSL has no interpolation, so `${` is ordinary text. */
712
+ function resolvePslBacktickEscapes(raw) {
713
+ return resolveEscapes(raw, PSL_BACKTICK_ESCAPES);
714
+ }
715
+ /** The escapes a TypeScript template tag resolves: the PSL two plus `\$`, the only way to write `${` in a template literal. */
716
+ function resolveTemplateTagEscapes(raw) {
717
+ return resolveEscapes(raw, TEMPLATE_TAG_ESCAPES);
718
+ }
719
+ /** Every other backslash sequence is kept as written, both characters, so a SQL body may contain `E'\n'` unchanged. */
720
+ function resolveEscapes(raw, escapes) {
721
+ let out = "";
722
+ let i = 0;
723
+ while (i < raw.length) {
724
+ const ch = raw.charAt(i);
725
+ const next = raw.charAt(i + 1);
726
+ if (ch === "\\" && escapes.has(next)) {
727
+ out += next;
728
+ i += 2;
729
+ continue;
730
+ }
731
+ out += ch;
732
+ i++;
733
+ }
734
+ return out;
735
+ }
736
+ const BLANK_LINE = /^[ \t]*$/;
737
+ const LEADING_INDENT = /^[ \t]*/;
738
+ const LINE_BREAK = /\r\n|\r|\n/g;
739
+ /**
740
+ * Turns the escape-resolved text of a tagged literal into its canonical body:
741
+ * newlines become `\n`, a blank first and last line are dropped, common leading
742
+ * whitespace is removed, internal blank lines become empty, and no trailing
743
+ * newline is added. Fails on a NUL character or when the result is larger than
744
+ * 65536 UTF-8 bytes.
745
+ */
746
+ function canonicalizeTaggedLiteralBody(resolved) {
747
+ const nul = resolved.indexOf("\0");
748
+ if (nul !== -1) return {
749
+ ok: false,
750
+ reason: "nul",
751
+ offset: nul
752
+ };
753
+ const lines = splitLines(resolved);
754
+ if (lines.length > 0 && BLANK_LINE.test(lines[0]?.text ?? "")) lines.shift();
755
+ if (lines.length > 0 && BLANK_LINE.test(lines.at(-1)?.text ?? "")) lines.pop();
756
+ const indent = commonIndent(lines);
757
+ const bodyLines = lines.map((line) => BLANK_LINE.test(line.text) ? {
758
+ text: "",
759
+ start: line.start
760
+ } : {
761
+ text: line.text.slice(indent),
762
+ start: line.start + indent
763
+ });
764
+ const excess = offsetWhereBytesExceed(bodyLines, TAGGED_LITERAL_MAX_BYTES);
765
+ if (excess !== void 0) return {
766
+ ok: false,
767
+ reason: "too-large",
768
+ offset: excess
769
+ };
770
+ return {
771
+ ok: true,
772
+ body: bodyLines.map((line) => line.text).join("\n")
773
+ };
774
+ }
775
+ function splitLines(text) {
776
+ const lines = [];
777
+ let start = 0;
778
+ for (const match of text.matchAll(LINE_BREAK)) {
779
+ lines.push({
780
+ text: text.slice(start, match.index),
781
+ start
782
+ });
783
+ start = match.index + match[0].length;
784
+ }
785
+ lines.push({
786
+ text: text.slice(start),
787
+ start
788
+ });
789
+ return lines;
790
+ }
791
+ function commonIndent(lines) {
792
+ let indent = Number.POSITIVE_INFINITY;
793
+ for (const line of lines) {
794
+ if (BLANK_LINE.test(line.text)) continue;
795
+ indent = Math.min(indent, LEADING_INDENT.exec(line.text)?.[0].length ?? 0);
796
+ }
797
+ return Number.isFinite(indent) ? indent : 0;
798
+ }
799
+ /** The resolved-text offset of the first character that pushes the body past `limit` bytes. */
800
+ function offsetWhereBytesExceed(lines, limit) {
801
+ let bytes = 0;
802
+ for (const [index, line] of lines.entries()) {
803
+ if (index > 0) {
804
+ bytes += 1;
805
+ if (bytes > limit) return line.start;
806
+ }
807
+ let offsetInLine = 0;
808
+ for (const char of line.text) {
809
+ bytes += utf8Length(char.codePointAt(0) ?? 0);
810
+ if (bytes > limit) return line.start + offsetInLine;
811
+ offsetInLine += char.length;
812
+ }
813
+ }
814
+ }
815
+ function utf8Length(codePoint) {
816
+ if (codePoint < 128) return 1;
817
+ if (codePoint < 2048) return 2;
818
+ if (codePoint < 65536) return 3;
819
+ return 4;
820
+ }
821
+ function escapeQuotedText(text) {
822
+ return text.replace(/\\/g, "\\\\").replace(/"/g, "\\\"").replace(/\n/g, "\\n").replace(/\r/g, "\\r");
823
+ }
824
+ /**
825
+ * The PSL text of a tagged literal whose canonical text is `text`: the backtick form, or the double-quote form when the
826
+ * text holds a backtick, which reads better than escaping each backtick. A multi-line text starts on the line after
827
+ * the opening backtick, so indentation a printer adds to an enclosing block is common to every line and the
828
+ * canonicalization removes it. ADR 129.
829
+ */
830
+ function printTaggedLiteral(tag, text) {
831
+ if (text.includes("`")) return `${tag}"${escapeQuotedText(text)}"`;
832
+ const fenced = text.replace(/\\/g, "\\\\");
833
+ return text.includes("\n") ? `${tag}\`\n${fenced}\n\`` : `${tag}\`${fenced}\``;
834
+ }
712
835
  /**
713
836
  * Canonical id for the wall-clock-now mutation default generator. It flows to the control-plane descriptor and the temporal field presets below, to each family's runtime generator, and to the authoring surfaces (PSL `temporal.updatedAt()`, TS `field.temporal.updatedAt()`) through the descriptor.
714
837
  */
@@ -812,6 +935,6 @@ function temporalCodecPreset(storage) {
812
935
  };
813
936
  }
814
937
  //#endregion
815
- export { timestampNowControlDescriptor as A, mergeAuthoringAttributeSpecs as C, temporalAuthoringPresets as D, resolveEnumCodecId as E, temporalCodecPreset as O, loweringEntryKey as S, resolveAuthoringTemplateValue as T, isAuthoringModelAttributeDescriptor as _, assertResolvableTypeConstructorTemplates as a, isDataTypeLoweringEntry as b, collectScalarTypeConstructors as c, instantiateAuthoringEntityType as d, instantiateAuthoringFieldPreset as f, isAuthoringFieldPresetDescriptor as g, isAuthoringEntityTypeDescriptor as h, assertNoCrossRegistryCollisions as i, validateAuthoringHelperArguments as j, temporalPhaseTemplate as k, flushAuthoringWarnings as l, isAuthoringArgRef as m, TEMPORAL_ON_UPDATE_ARG as n, classifyEnumMemberType as o, instantiateAuthoringTypeConstructor as p, TIMESTAMP_NOW_GENERATOR_ID as r, collectContributedDescriptorPaths as s, TEMPORAL_ON_CREATE_ARG as t, hasRegisteredFieldNamespace as u, isAuthoringPslBlockDescriptor as v, mergeAuthoringNamespaces as w, isLoweringEntryKey as x, isAuthoringTypeConstructorDescriptor as y };
938
+ export { temporalAuthoringPresets as A, mergeAuthoringAttributeSpecs as C, resolveEnumCodecId as D, resolveAuthoringTemplateValue as E, temporalPhaseTemplate as M, timestampNowControlDescriptor as N, resolvePslBacktickEscapes as O, validateAuthoringHelperArguments as P, isAuthoringTypeConstructorDescriptor as S, printTaggedLiteral as T, isAuthoringArgRef as _, assertNoCrossRegistryCollisions as a, isAuthoringModelAttributeDescriptor as b, classifyEnumMemberType as c, describeTaggedLiteralFailure as d, flushAuthoringWarnings as f, instantiateAuthoringTypeConstructor as g, instantiateAuthoringFieldPreset as h, TIMESTAMP_NOW_GENERATOR_ID as i, temporalCodecPreset as j, resolveTemplateTagEscapes as k, collectContributedDescriptorPaths as l, instantiateAuthoringEntityType as m, TEMPORAL_ON_CREATE_ARG as n, assertResolvableTypeConstructorTemplates as o, hasRegisteredFieldNamespace as p, TEMPORAL_ON_UPDATE_ARG as r, canonicalizeTaggedLiteralBody as s, TAGGED_LITERAL_MAX_BYTES as t, collectScalarTypeConstructors as u, isAuthoringEntityTypeDescriptor as v, mergeAuthoringNamespaces as w, isAuthoringPslBlockDescriptor as x, isAuthoringFieldPresetDescriptor as y };
816
939
 
817
- //# sourceMappingURL=temporal-presets-MavBeaJC-BcqWVoBB.mjs.map
940
+ //# sourceMappingURL=temporal-presets-DMRKrfIa-HElHwGB2.mjs.map