@prisma/orm-framework 8.0.0-rc.12-dev.14 → 8.0.0-rc.12-dev.16
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.
- package/dist/ast-helpers-2XRnkQEO-BxG5qx3Q.mjs +386 -0
- package/dist/ast-helpers-2XRnkQEO-BxG5qx3Q.mjs.map +1 -0
- package/dist/authoring-BffMNBO5.d.mts +43 -0
- package/dist/authoring-BffMNBO5.d.mts.map +1 -0
- package/dist/authoring-DbG78eh2.mjs +88 -0
- package/dist/authoring-DbG78eh2.mjs.map +1 -0
- package/dist/{hashing-utils-DQgS3nOe.mjs → canonicalization-path-match-D88xLEq6-BFQC39ZG.mjs} +23 -3
- package/dist/canonicalization-path-match-D88xLEq6-BFQC39ZG.mjs.map +1 -0
- package/dist/{utils-DMAM0unR.mjs → canonicalize-json-ZPawceQR-Dua1VNEB.mjs} +2 -2
- package/dist/canonicalize-json-ZPawceQR-Dua1VNEB.mjs.map +1 -0
- package/dist/components.d.mts +6 -6
- package/dist/components.mjs +6 -6
- package/dist/components__authoring.d.mts +2 -2
- package/dist/components__authoring.mjs +2 -2
- package/dist/components__control.d.mts +2 -2
- package/dist/components__control.mjs +2 -2
- package/dist/components__psl-ast.d.mts +3 -3
- package/dist/components__psl-ast.mjs +2 -2
- package/dist/components__runtime.d.mts +2 -2
- package/dist/components__runtime.mjs +2 -2
- package/dist/components__utils.mjs +1 -1
- package/dist/{config-types-DgoEWkgA.d.mts → config-types-CWeyMWBV.d.mts} +17 -14
- package/dist/config-types-CWeyMWBV.d.mts.map +1 -0
- package/dist/{config-types-BZjCZ4qx.mjs → config-types-D0mYyP62.mjs} +25 -2
- package/dist/config-types-D0mYyP62.mjs.map +1 -0
- package/dist/config.d.mts +2 -2
- package/dist/config.mjs +2 -2
- package/dist/config__config-types.d.mts +2 -2
- package/dist/config__config-types.mjs +2 -2
- package/dist/contract-authoring.d.mts +1 -1
- package/dist/contract.d.mts +2 -2
- package/dist/contract.mjs +3 -4
- package/dist/contract__hashing-utils.mjs +1 -2
- package/dist/contract__hashing.d.mts +2 -2
- package/dist/contract__hashing.mjs +2 -2
- package/dist/{control-Bc_dos9-.d.mts → control-BTo8rNKi.d.mts} +23 -3
- package/dist/{control-Bc_dos9-.d.mts.map → control-BTo8rNKi.d.mts.map} +1 -1
- package/dist/{control-BjK3Jrmp.mjs → control-CS45l6kB.mjs} +5 -2
- package/dist/control-CS45l6kB.mjs.map +1 -0
- package/dist/{declarations-D79GooqC-CcAbqTsq.mjs → declarations-43E1JFHg-DGBa0YH_.mjs} +8 -388
- package/dist/declarations-43E1JFHg-DGBa0YH_.mjs.map +1 -0
- package/dist/errors.d.mts +1 -1
- package/dist/errors__execution.d.mts +1 -1
- package/dist/{execution-oqC6O8ES.d.mts → execution-BsiK0DjS.d.mts} +2 -2
- package/dist/{execution-oqC6O8ES.d.mts.map → execution-BsiK0DjS.d.mts.map} +1 -1
- package/dist/hashing-BAPc4zoz.d.mts +36 -0
- package/dist/hashing-BAPc4zoz.d.mts.map +1 -0
- package/dist/{hashing-BtIZVNYX.mjs → hashing-CjTNYBuj.mjs} +21 -3
- package/dist/hashing-CjTNYBuj.mjs.map +1 -0
- package/dist/{parse-SHpUIBnv-BvPsKLqw.d.mts → parse-DZRO_CK2-D8YAg23m.d.mts} +10 -18
- package/dist/{parse-SHpUIBnv-BvPsKLqw.d.mts.map → parse-DZRO_CK2-D8YAg23m.d.mts.map} +1 -1
- package/dist/{parse-DN-F4ASD-ClJdPlzj.mjs → parse-Km2Ne67K-CakfHP9f.mjs} +26 -29
- package/dist/parse-Km2Ne67K-CakfHP9f.mjs.map +1 -0
- package/dist/{psl-ast-BKF2fYgk-D6YxdCnP.d.mts → psl-ast-BePuKena-AYNqFKCE.d.mts} +8 -3
- package/dist/{psl-ast-BKF2fYgk-D6YxdCnP.d.mts.map → psl-ast-BePuKena-AYNqFKCE.d.mts.map} +1 -1
- package/dist/{psl-ast-Bu85Lu-k.d.mts → psl-ast-Cec7KbOn.d.mts} +2 -2
- package/dist/{psl-ast-Bu85Lu-k.d.mts.map → psl-ast-Cec7KbOn.d.mts.map} +1 -1
- package/dist/{psl-ast-DUCvVXbB.mjs → psl-ast-DYtFdynZ.mjs} +7 -2
- package/dist/psl-ast-DYtFdynZ.mjs.map +1 -0
- package/dist/psl-parser.d.mts +14 -7
- package/dist/psl-parser.d.mts.map +1 -1
- package/dist/psl-parser.mjs +10 -65
- package/dist/psl-parser.mjs.map +1 -1
- package/dist/psl-parser__format.mjs +23 -30
- package/dist/psl-parser__format.mjs.map +1 -1
- package/dist/psl-parser__interpret.d.mts +15 -7
- package/dist/psl-parser__interpret.d.mts.map +1 -1
- package/dist/psl-parser__interpret.mjs +24 -3
- package/dist/psl-parser__interpret.mjs.map +1 -1
- package/dist/psl-parser__syntax.d.mts +3 -3
- package/dist/psl-parser__syntax.mjs +3 -2
- package/dist/psl-parser__syntax.mjs.map +1 -1
- package/dist/psl-parser__tokenizer.d.mts +1 -1
- package/dist/psl-parser__tokenizer.mjs +1 -1
- package/dist/psl-printer.d.mts +8 -3
- package/dist/psl-printer.d.mts.map +1 -1
- package/dist/psl-printer.mjs +16 -9
- package/dist/psl-printer.mjs.map +1 -1
- package/dist/resolve-D_lZ54qh-DqOQkoMT.mjs +145 -0
- package/dist/resolve-D_lZ54qh-DqOQkoMT.mjs.map +1 -0
- package/dist/{runtime-Dnv06bEV.d.mts → runtime-CQ9-3czC.d.mts} +52 -2
- package/dist/runtime-CQ9-3czC.d.mts.map +1 -0
- package/dist/{runtime-DXmHIbAr.mjs → runtime-CpojufYS.mjs} +80 -2
- package/dist/{runtime-DXmHIbAr.mjs.map → runtime-CpojufYS.mjs.map} +1 -1
- package/dist/{symbol-table-DVPEY1fq-C5mC1wdG.d.mts → symbol-table-CRtoii4t-DubuO_5j.d.mts} +5 -5
- package/dist/{symbol-table-DVPEY1fq-C5mC1wdG.d.mts.map → symbol-table-CRtoii4t-DubuO_5j.d.mts.map} +1 -1
- package/dist/{tokenizer-CFsbtfFw-BnfUBepb.mjs → tokenizer-BMz7z2KR-J0yZ4im3.mjs} +11 -3
- package/dist/tokenizer-BMz7z2KR-J0yZ4im3.mjs.map +1 -0
- package/dist/{tokenizer-DcYI0Xrq-C-nNE9mE.d.mts → tokenizer-DW30uwhx-BHsWTwYk.d.mts} +8 -3
- package/dist/tokenizer-DW30uwhx-BHsWTwYk.d.mts.map +1 -0
- package/package.json +16 -15
- package/dist/authoring-D_Czkofy.mjs +0 -35
- package/dist/authoring-D_Czkofy.mjs.map +0 -1
- package/dist/authoring-DjeaZGzp.d.mts +0 -27
- package/dist/authoring-DjeaZGzp.d.mts.map +0 -1
- package/dist/canonicalization-path-match-CNgHuwM_-CCPBeUuk.mjs +0 -25
- package/dist/canonicalization-path-match-CNgHuwM_-CCPBeUuk.mjs.map +0 -1
- package/dist/config-types-BZjCZ4qx.mjs.map +0 -1
- package/dist/config-types-DgoEWkgA.d.mts.map +0 -1
- package/dist/control-BjK3Jrmp.mjs.map +0 -1
- package/dist/declarations-D79GooqC-CcAbqTsq.mjs.map +0 -1
- package/dist/diagnostic-Esyl8Qw1-Cd6SnWPN.mjs +0 -83
- package/dist/diagnostic-Esyl8Qw1-Cd6SnWPN.mjs.map +0 -1
- package/dist/hashing-BtIZVNYX.mjs.map +0 -1
- package/dist/hashing-WJflm0s1.d.mts +0 -25
- package/dist/hashing-WJflm0s1.d.mts.map +0 -1
- package/dist/hashing-utils-DQgS3nOe.mjs.map +0 -1
- package/dist/parse-DN-F4ASD-ClJdPlzj.mjs.map +0 -1
- package/dist/psl-ast-DUCvVXbB.mjs.map +0 -1
- package/dist/runtime-Dnv06bEV.d.mts.map +0 -1
- package/dist/tokenizer-CFsbtfFw-BnfUBepb.mjs.map +0 -1
- package/dist/tokenizer-DcYI0Xrq-C-nNE9mE.d.mts.map +0 -1
- package/dist/utils-DMAM0unR.mjs.map +0 -1
|
@@ -1,7 +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
|
-
import {
|
|
4
|
-
import {
|
|
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-43E1JFHg-DGBa0YH_.mjs";
|
|
5
|
+
import { o as parse } from "./parse-Km2Ne67K-CakfHP9f.mjs";
|
|
5
6
|
//#region ../../../1-framework/2-authoring/psl-parser/dist/format.mjs
|
|
6
7
|
function emitDocument(document, indentUnit, newline) {
|
|
7
8
|
const writer = new LineWriter(indentUnit, newline);
|
|
@@ -80,8 +81,8 @@ function spaceBetween(prev, cur, inQualifiedName) {
|
|
|
80
81
|
if (inQualifiedName) return false;
|
|
81
82
|
if (prev === "Ident" && cur === "StringLiteral") return false;
|
|
82
83
|
switch (cur) {
|
|
84
|
+
case "LBracket": return prev === "Colon" || prev === "Comma" || prev === "Equals";
|
|
83
85
|
case "LParen":
|
|
84
|
-
case "LBracket":
|
|
85
86
|
case "RParen":
|
|
86
87
|
case "RBracket":
|
|
87
88
|
case "Comma":
|
|
@@ -171,14 +172,13 @@ function emitBlockAttribute(writer, attribute) {
|
|
|
171
172
|
function emitKeyValue(writer, pair) {
|
|
172
173
|
return streamNode(writer, pair.syntax);
|
|
173
174
|
}
|
|
174
|
-
function leafMember(writer, category, print
|
|
175
|
+
function leafMember(writer, category, print) {
|
|
175
176
|
return {
|
|
176
177
|
category,
|
|
177
|
-
|
|
178
|
-
emit(trailing, endLine) {
|
|
178
|
+
emit(trailing) {
|
|
179
179
|
const continuation = print();
|
|
180
180
|
if (trailing !== void 0) writer.comment(trailing);
|
|
181
|
-
else
|
|
181
|
+
else writer.newline();
|
|
182
182
|
return continuation;
|
|
183
183
|
}
|
|
184
184
|
};
|
|
@@ -201,18 +201,13 @@ function emitCompositeType(writer, composite, trailing) {
|
|
|
201
201
|
if (attribute) return leafMember(writer, "blockAttribute", () => emitBlockAttribute(writer, attribute));
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
|
-
/**
|
|
205
|
-
* With the `prisma7` grammar a `view` body holds `FieldDeclaration` members, so they print through
|
|
206
|
-
* the model field path. With the `psl` grammar the same source line reads as several entries with
|
|
207
|
-
* no `=`; those entries keep the source line they share, so `id Int` does not become two lines.
|
|
208
|
-
*/
|
|
209
204
|
function emitGenericBlock(writer, block, trailing) {
|
|
210
205
|
const alignment = alignmentMap(block.syntax);
|
|
211
206
|
emitBlockBody(writer, block.syntax, trailing, (node) => {
|
|
212
207
|
const field = FieldDeclarationAst.cast(node);
|
|
213
208
|
if (field) return leafMember(writer, "regular", () => emitField(writer, field, alignment));
|
|
214
209
|
const entry = KeyValuePairAst.cast(node);
|
|
215
|
-
if (entry) return leafMember(writer, "regular", () => emitKeyValue(writer, entry)
|
|
210
|
+
if (entry) return leafMember(writer, "regular", () => emitKeyValue(writer, entry));
|
|
216
211
|
const attribute = ModelAttributeAst.cast(node);
|
|
217
212
|
if (attribute) return leafMember(writer, "blockAttribute", () => emitBlockAttribute(writer, attribute));
|
|
218
213
|
});
|
|
@@ -238,7 +233,6 @@ function emitTopLevel(writer, document) {
|
|
|
238
233
|
function nestedBlockMember(writer, block) {
|
|
239
234
|
return {
|
|
240
235
|
category: "nestedBlock",
|
|
241
|
-
keepsSourceLine: false,
|
|
242
236
|
emit(trailing) {
|
|
243
237
|
block(writer, trailing);
|
|
244
238
|
return 0;
|
|
@@ -264,18 +258,23 @@ function castTopLevelDeclaration(node) {
|
|
|
264
258
|
function emitBlockBody(writer, node, closingTrailing, classify) {
|
|
265
259
|
const children = Array.from(node.children());
|
|
266
260
|
const openIndex = children.findIndex((el) => !(el instanceof SyntaxNode) && el.kind === "LBrace");
|
|
267
|
-
streamHeader(writer, node);
|
|
268
|
-
const
|
|
269
|
-
if (
|
|
261
|
+
const headerComments = streamHeader(writer, node);
|
|
262
|
+
const openingComment = sameLineCommentAfter(children, openIndex);
|
|
263
|
+
if (openingComment !== void 0) headerComments.push(openingComment);
|
|
264
|
+
const [firstComment, ...otherComments] = headerComments;
|
|
265
|
+
if (firstComment !== void 0) writer.comment(firstComment);
|
|
270
266
|
else writer.newline();
|
|
271
267
|
writer.indent();
|
|
268
|
+
for (const comment of otherComments) writer.comment(comment);
|
|
272
269
|
walkRegion(writer, children, "RBrace", classify);
|
|
273
270
|
writer.unindent();
|
|
274
271
|
writer.writeRaw("}");
|
|
275
272
|
if (closingTrailing !== void 0) writer.comment(closingTrailing);
|
|
276
273
|
else writer.newline();
|
|
277
274
|
}
|
|
275
|
+
/** Writes the block header through `{` and returns the source comments found before the `{`. */
|
|
278
276
|
function streamHeader(writer, node) {
|
|
277
|
+
const comments = [];
|
|
279
278
|
let done = false;
|
|
280
279
|
const walk = (parent) => {
|
|
281
280
|
for (const child of parent.children()) {
|
|
@@ -284,7 +283,11 @@ function streamHeader(writer, node) {
|
|
|
284
283
|
walk(child);
|
|
285
284
|
continue;
|
|
286
285
|
}
|
|
287
|
-
if (child.kind === "
|
|
286
|
+
if (child.kind === "Comment") {
|
|
287
|
+
comments.push(child.text);
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
if (child.kind === "Whitespace" || child.kind === "Newline") continue;
|
|
288
291
|
const space = spaceBetween(writer.prevKind(), child.kind, false);
|
|
289
292
|
writer.write(child, space);
|
|
290
293
|
if (child.kind === "LBrace") {
|
|
@@ -294,6 +297,7 @@ function streamHeader(writer, node) {
|
|
|
294
297
|
}
|
|
295
298
|
};
|
|
296
299
|
walk(node);
|
|
300
|
+
return comments;
|
|
297
301
|
}
|
|
298
302
|
function walkRegion(writer, elements, closeKind, classify) {
|
|
299
303
|
let sawOpenBrace = closeKind === void 0;
|
|
@@ -313,8 +317,7 @@ function walkRegion(writer, elements, closeKind, classify) {
|
|
|
313
317
|
else if (separationBlankWanted(writer, member.category, sawContent, lastWasRegular)) writer.blank();
|
|
314
318
|
}
|
|
315
319
|
const trailing = sameLineTrailingComment(elements, i);
|
|
316
|
-
|
|
317
|
-
closeContinuation(writer, member.emit(trailing.text, endLine));
|
|
320
|
+
closeContinuation(writer, member.emit(trailing.text));
|
|
318
321
|
if (trailing.index !== void 0) i = trailing.index;
|
|
319
322
|
sawContent = true;
|
|
320
323
|
lastWasRegular = member.category !== "blockAttribute";
|
|
@@ -349,16 +352,6 @@ function walkRegion(writer, elements, closeKind, classify) {
|
|
|
349
352
|
}
|
|
350
353
|
}
|
|
351
354
|
}
|
|
352
|
-
function memberFollowsOnSameLine(elements, memberIndex) {
|
|
353
|
-
for (let i = memberIndex + 1; i < elements.length; i++) {
|
|
354
|
-
const element = elements[i];
|
|
355
|
-
if (element === void 0) continue;
|
|
356
|
-
if (element instanceof SyntaxNode) return true;
|
|
357
|
-
if (element.kind === "Whitespace") continue;
|
|
358
|
-
return false;
|
|
359
|
-
}
|
|
360
|
-
return false;
|
|
361
|
-
}
|
|
362
355
|
function separationBlankWanted(writer, category, sawContent, lastWasRegular) {
|
|
363
356
|
if (!sawContent || writer.lastIsBlank()) return false;
|
|
364
357
|
if (category === "nestedBlock") return true;
|
|
@@ -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 { a as KeyValuePairAst, c as NamespaceDeclarationAst, i as GenericBlockDeclarationAst, j as SyntaxNode, l as TypesBlockAst, o as ModelDeclarationAst, p as ModelAttributeAst, r as FieldDeclarationAst, s as NamedTypeDeclarationAst, t as CompositeTypeDeclarationAst } from \"./declarations-D79GooqC.mjs\";\nimport { t as parse } from \"./parse-DN-F4ASD.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 \"LParen\":\n\t\tcase \"LBracket\":\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, keepsSourceLine = false) {\n\treturn {\n\t\tcategory,\n\t\tkeepsSourceLine,\n\t\temit(trailing, endLine) {\n\t\t\tconst continuation = print();\n\t\t\tif (trailing !== void 0) writer.comment(trailing);\n\t\t\telse if (endLine) 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}\n/**\n* With the `prisma7` grammar a `view` body holds `FieldDeclaration` members, so they print through\n* the model field path. With the `psl` grammar the same source line reads as several entries with\n* no `=`; those entries keep the source line they share, so `id Int` does not become two lines.\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), entry.equals() === void 0);\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\tkeepsSourceLine: false,\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\tstreamHeader(writer, node);\n\tconst headerComment = sameLineCommentAfter(children, openIndex);\n\tif (headerComment !== void 0) writer.comment(headerComment);\n\telse writer.newline();\n\twriter.indent();\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}\nfunction streamHeader(writer, node) {\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 === \"Whitespace\" || child.kind === \"Newline\" || child.kind === \"Comment\") 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}\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\tconst endLine = !member.keepsSourceLine || !memberFollowsOnSameLine(elements, i);\n\t\t\tcloseContinuation(writer, member.emit(trailing.text, endLine));\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 memberFollowsOnSameLine(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) return true;\n\t\tif (element.kind === \"Whitespace\") continue;\n\t\treturn false;\n\t}\n\treturn false;\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-43E1JFHg.mjs\";\nimport { t as parse } from \"./parse-Km2Ne67K.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 { ct as PslSpan, m as AuthoringFieldPresetDescriptor, n as AuthoringArgumentDescriptor, xt as instantiateAuthoringFieldPreset } from "./framework-authoring-C9VTqnML-BXtBl2dJ.mjs";
|
|
3
|
-
import "./authoring-
|
|
2
|
+
import { ct as PslSpan, m as AuthoringFieldPresetDescriptor, n as AuthoringArgumentDescriptor, w as AuthoringPslBlockDescriptorNamespace, xt as instantiateAuthoringFieldPreset } from "./framework-authoring-C9VTqnML-BXtBl2dJ.mjs";
|
|
3
|
+
import "./authoring-BffMNBO5.mjs";
|
|
4
4
|
import { r as Result } from "./result-BYCOANWy.mjs";
|
|
5
|
-
import "./psl-ast-
|
|
6
|
-
import { c as ContractSourceProvider,
|
|
7
|
-
import {
|
|
8
|
-
import { d as ResolvedTypeConstructorCall, f as SymbolTable, i as FieldSymbol, l as ResolvedAttributeArg } from "./symbol-table-
|
|
5
|
+
import "./psl-ast-Cec7KbOn.mjs";
|
|
6
|
+
import { c as ContractSourceProvider, n as ContractSourceContext, o as ContractSourceDiagnostics, p as PslContractSourceProvider, r as ContractSourceDiagnostic } from "./config-types-CWeyMWBV.mjs";
|
|
7
|
+
import { F as PslDiagnostic, I as PslDiagnosticCollector, L as PslSources, d as DiagnosticSource, f as DocumentAst } from "./parse-DZRO_CK2-D8YAg23m.mjs";
|
|
8
|
+
import { d as ResolvedTypeConstructorCall, f as SymbolTable, i as FieldSymbol, l as ResolvedAttributeArg, t as BlockSymbol } from "./symbol-table-CRtoii4t-DubuO_5j.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: {
|
|
@@ -18,6 +18,9 @@ declare function mapPslHelperArgs(input: {
|
|
|
18
18
|
readonly entityLabel: string;
|
|
19
19
|
}): readonly unknown[] | undefined;
|
|
20
20
|
//#endregion
|
|
21
|
+
//#region src/enum-member-attributes.d.ts
|
|
22
|
+
declare function enumMemberAttributeDiagnostics(enumBlock: BlockSymbol, sources: PslSources): PslDiagnostic[];
|
|
23
|
+
//#endregion
|
|
21
24
|
//#region src/field-presets.d.ts
|
|
22
25
|
/**
|
|
23
26
|
* Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.
|
|
@@ -118,5 +121,10 @@ declare function requiredOneToOneBackrelationDiagnostic(input: {
|
|
|
118
121
|
readonly recordNoun: 'row' | 'document';
|
|
119
122
|
}): PslDiagnostic;
|
|
120
123
|
//#endregion
|
|
121
|
-
|
|
124
|
+
//#region src/unclaimed-blocks.d.ts
|
|
125
|
+
/** A generic block is read only when a composed descriptor claims its keyword. */
|
|
126
|
+
declare function claimedBlockKeywords(descriptors: AuthoringPslBlockDescriptorNamespace | undefined): ReadonlySet<string>;
|
|
127
|
+
declare function unsupportedBlockDiagnostic(block: BlockSymbol, sources: PslSources): PslDiagnostic;
|
|
128
|
+
//#endregion
|
|
129
|
+
export { type InvalidFkPairing, type PslInterpretCapable, type PslInterpretInput, claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };
|
|
122
130
|
//# sourceMappingURL=psl-parser__interpret.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psl-parser__interpret.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.d.mts"],"mappings":";;;;;;;;;;iBAQiB,iBAAiB;WACvB,eAAe;WACf,sBAAsB;WACtB;WACA,MAAM;WACN,aAAa;WACb,QAAQ;WACR
|
|
1
|
+
{"version":3,"file":"psl-parser__interpret.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.d.mts"],"mappings":";;;;;;;;;;iBAQiB,iBAAiB;WACvB,eAAe;WACf,sBAAsB;WACtB;WACA,MAAM;WACN,aAAa;WACb,QAAQ;WACR;;;;iBAIM,+BAA+B,WAAW,aAAa,SAAS,aAAa;;;;;;;;iBAQ7E,8BAA8B;WACpC;WACA;WACA,QAAQ;WACR,MAAM;IACb;iBACa,0BAA0B;WAChC;WACA;WACA,QAAQ;WACR,MAAM;WACN,aAAa;;;;;iBAKP,yBAAyB;WAC/B;WACA;WACA;WACA,QAAQ;WACR,MAAM;WACN,aAAa;;;;;;;iBAOP,0BAA0B;WAChC,MAAM;WACN,YAAY;WACZ,aAAa;WACb,QAAQ;WACR;IACP,kBAAkB;;;;;;;;UAQZ;WACC,oBAAoB;WACpB,SAAS;WACT,aAAa;;;;;;;;UAQd,4BAA4B;EACpC,UAAU,OAAO,mBAAmB,SAAS,wBAAwB,OAAO,UAAU;;;;;;;;iBAQvE,oBAAoB,QAAQ,OAAO,UAAU,4BAA4B,0BAA0B,6BAA6B,OAAO,UAAU;;iBAEjJ,kBAAkB,QAAQ,yBAAyB,UAAU;;;;;;;;KAQzE;WACM;WACA;;iBAEM,kBAAkB,4BAA4B;;;;;;iBAM9C,wBAAwB;WAC9B;GACR,iBAAiB,mBAAmB;iBACtB,uCAAuC;WAC7C;WACA,OAAO;WACP;WACA,SAAS;WACT;IACP;;;;iBAIa,qBAAqB,aAAa,mDAAmD;iBACrF,2BAA2B,OAAO,aAAa,SAAS,aAAa"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as notOk } from "./result-8OXF26MN.mjs";
|
|
2
|
-
import { f as instantiateAuthoringFieldPreset, j as validateAuthoringHelperArguments } from "./temporal-presets-DABMpaxB-DDEaCwpa.mjs";
|
|
3
|
-
import { r as diagnosticSource } from "./
|
|
2
|
+
import { f as instantiateAuthoringFieldPreset, j as validateAuthoringHelperArguments, v as isAuthoringPslBlockDescriptor } from "./temporal-presets-DABMpaxB-DDEaCwpa.mjs";
|
|
3
|
+
import { i as keywordPslSpan, o as nodePslSpan, r as diagnosticSource } from "./resolve-D_lZ54qh-DqOQkoMT.mjs";
|
|
4
4
|
//#region ../../../1-framework/2-authoring/psl-parser/dist/interpret.mjs
|
|
5
5
|
function unquoteStringLiteral(value) {
|
|
6
6
|
const trimmed = value.trim();
|
|
@@ -292,6 +292,14 @@ function mapPslHelperArgs(input) {
|
|
|
292
292
|
}
|
|
293
293
|
return mappedArgs;
|
|
294
294
|
}
|
|
295
|
+
function enumMemberAttributeDiagnostics(enumBlock, sources) {
|
|
296
|
+
const source = diagnosticSource(sources, enumBlock.node.syntax);
|
|
297
|
+
return Array.from(enumBlock.node.entries()).flatMap((member) => Array.from(member.attributes(), (attribute) => ({
|
|
298
|
+
code: "PSL_UNSUPPORTED_ENUM_MEMBER_ATTRIBUTE",
|
|
299
|
+
message: `enum "${enumBlock.block.name}": member "${member.key()?.name() ?? "?"}" carries @${attribute.name()?.path().join(".") ?? "?"}, but an enum member takes no attributes`,
|
|
300
|
+
...source.at(nodePslSpan(attribute.syntax, sources))
|
|
301
|
+
})));
|
|
302
|
+
}
|
|
295
303
|
/**
|
|
296
304
|
* Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.
|
|
297
305
|
*
|
|
@@ -401,7 +409,20 @@ function requiredOneToOneBackrelationDiagnostic(input) {
|
|
|
401
409
|
...diagnosticSource(sources, field.node.syntax).at(field.span)
|
|
402
410
|
};
|
|
403
411
|
}
|
|
412
|
+
/** A generic block is read only when a composed descriptor claims its keyword. */
|
|
413
|
+
function claimedBlockKeywords(descriptors) {
|
|
414
|
+
const keywords = /* @__PURE__ */ new Set();
|
|
415
|
+
for (const [keyword, value] of Object.entries(descriptors ?? {})) if (isAuthoringPslBlockDescriptor(value)) keywords.add(keyword);
|
|
416
|
+
return keywords;
|
|
417
|
+
}
|
|
418
|
+
function unsupportedBlockDiagnostic(block, sources) {
|
|
419
|
+
return {
|
|
420
|
+
code: "PSL_UNSUPPORTED_TOP_LEVEL_BLOCK",
|
|
421
|
+
message: `Unsupported top-level block "${block.keyword}"`,
|
|
422
|
+
...diagnosticSource(sources, block.node.syntax).at(keywordPslSpan(block.node.syntax, block.keyword, sources))
|
|
423
|
+
};
|
|
424
|
+
}
|
|
404
425
|
//#endregion
|
|
405
|
-
export { consumeInvalidFkPairing, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, withSeedDiagnostics };
|
|
426
|
+
export { claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };
|
|
406
427
|
|
|
407
428
|
//# sourceMappingURL=psl-parser__interpret.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psl-parser__interpret.mjs","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.mjs"],"sourcesContent":["import { r as diagnosticSource } from \"./diagnostic-Esyl8Qw1.mjs\";\nimport { instantiateAuthoringFieldPreset, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { notOk } from \"@internal/utils/result\";\n//#region src/authoring-arguments.ts\nfunction unquoteStringLiteral(value) {\n\tconst trimmed = value.trim();\n\tconst match = trimmed.match(/^(['\"])(.*)\\1$/);\n\tif (!match) return trimmed;\n\treturn match[2] ?? \"\";\n}\nconst INVALID_AUTHORING_ARGUMENT = Symbol(\"invalidAuthoringArgument\");\nfunction isIdentifierStartCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z_$]/.test(character);\n}\nfunction isIdentifierCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z0-9_$]/.test(character);\n}\nfunction parseJsLikeLiteral(value) {\n\tlet index = 0;\n\tfunction skipWhitespace() {\n\t\twhile (/\\s/.test(value[index] ?? \"\")) index += 1;\n\t}\n\tfunction parseIdentifier() {\n\t\tconst first = value[index];\n\t\tif (!isIdentifierStartCharacter(first)) return INVALID_AUTHORING_ARGUMENT;\n\t\tlet end = index + 1;\n\t\twhile (isIdentifierCharacter(value[end])) end += 1;\n\t\tconst identifier = value.slice(index, end);\n\t\tindex = end;\n\t\treturn identifier;\n\t}\n\tfunction parseString() {\n\t\tconst quote = value[index];\n\t\tif (quote !== \"\\\"\" && quote !== \"'\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tlet result = \"\";\n\t\twhile (index < value.length) {\n\t\t\tconst character = value[index];\n\t\t\tindex += 1;\n\t\t\tif (character === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tif (character === quote) return result;\n\t\t\tif (character !== \"\\\\\") {\n\t\t\t\tresult += character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst escaped = value[index];\n\t\t\tindex += 1;\n\t\t\tif (escaped === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tswitch (escaped) {\n\t\t\t\tcase \"'\":\n\t\t\t\tcase \"\\\"\":\n\t\t\t\tcase \"\\\\\":\n\t\t\t\tcase \"/\":\n\t\t\t\t\tresult += escaped;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"b\":\n\t\t\t\t\tresult += \"\\b\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"f\":\n\t\t\t\t\tresult += \"\\f\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"n\":\n\t\t\t\t\tresult += \"\\n\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"r\":\n\t\t\t\t\tresult += \"\\r\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"t\":\n\t\t\t\t\tresult += \"\t\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"u\": {\n\t\t\t\t\tconst hex = value.slice(index, index + 4);\n\t\t\t\t\tif (!/^[0-9A-Fa-f]{4}$/.test(hex)) return INVALID_AUTHORING_ARGUMENT;\n\t\t\t\t\tresult += String.fromCharCode(Number.parseInt(hex, 16));\n\t\t\t\t\tindex += 4;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t\t\t}\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseNumber() {\n\t\tconst raw = value.slice(index).match(/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/)?.[0];\n\t\tif (!raw) return INVALID_AUTHORING_ARGUMENT;\n\t\tconst parsed = Number(raw);\n\t\tif (!Number.isFinite(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += raw.length;\n\t\treturn parsed;\n\t}\n\tfunction parseArray() {\n\t\tif (value[index] !== \"[\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = [];\n\t\tskipWhitespace();\n\t\tif (value[index] === \"]\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult.push(entry);\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"]\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseObject() {\n\t\tif (value[index] !== \"{\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = {};\n\t\tskipWhitespace();\n\t\tif (value[index] === \"}\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tskipWhitespace();\n\t\t\tconst key = value[index] === \"\\\"\" || value[index] === \"'\" ? parseString() : parseIdentifier();\n\t\t\tif (key === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] !== \":\") return INVALID_AUTHORING_ARGUMENT;\n\t\t\tindex += 1;\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult[key] = entry;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"}\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseValue() {\n\t\tskipWhitespace();\n\t\tconst character = value[index];\n\t\tif (character === \"{\") return parseObject();\n\t\tif (character === \"[\") return parseArray();\n\t\tif (character === \"\\\"\" || character === \"'\") return parseString();\n\t\tif (character === \"-\" || /\\d/.test(character ?? \"\")) return parseNumber();\n\t\tconst identifier = parseIdentifier();\n\t\tif (identifier === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\tif (identifier === \"true\") return true;\n\t\tif (identifier === \"false\") return false;\n\t\tif (identifier === \"null\") return null;\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tskipWhitespace();\n\tconst parsed = parseValue();\n\tif (parsed === INVALID_AUTHORING_ARGUMENT) return parsed;\n\tskipWhitespace();\n\treturn index === value.length ? parsed : INVALID_AUTHORING_ARGUMENT;\n}\nfunction parseStringArrayLiteral(value) {\n\tconst parsed = parseJsLikeLiteral(value);\n\tif (parsed === INVALID_AUTHORING_ARGUMENT || !Array.isArray(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\tif (!parsed.every((item) => typeof item === \"string\")) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction isPlainObject(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction parsePslObjectLiteral(value) {\n\tconst trimmed = value.trim();\n\tif (!trimmed.startsWith(\"{\") || !trimmed.endsWith(\"}\")) return INVALID_AUTHORING_ARGUMENT;\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(trimmed);\n\t} catch {\n\t\tparsed = parseJsLikeLiteral(trimmed);\n\t\tif (parsed === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t}\n\tif (!isPlainObject(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction parsePslAuthoringArgumentValue(descriptor, rawValue) {\n\tswitch (descriptor.kind) {\n\t\tcase \"string\": return unquoteStringLiteral(rawValue);\n\t\tcase \"boolean\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\tif (trimmed === \"true\") return true;\n\t\t\tif (trimmed === \"false\") return false;\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tcase \"number\": {\n\t\t\tconst parsed = Number(unquoteStringLiteral(rawValue));\n\t\t\treturn Number.isNaN(parsed) ? INVALID_AUTHORING_ARGUMENT : parsed;\n\t\t}\n\t\tcase \"stringArray\": return parseStringArrayLiteral(rawValue);\n\t\tcase \"object\": return parsePslObjectLiteral(rawValue);\n\t\tcase \"option\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\treturn /^[A-Za-z_][A-Za-z0-9_]*$/.test(trimmed) ? trimmed : INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t}\n}\nfunction pushInvalidPslHelperArgument(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `${input.entityLabel} ${input.helperLabel} ${input.message}`,\n\t\t...input.source.at(input.span)\n\t});\n}\nfunction mapPslHelperArgs(input) {\n\tconst mappedArgs = input.descriptors.map(() => void 0);\n\tconst positionalArgs = input.args.filter((arg) => arg.kind === \"positional\");\n\tconst namedArgs = input.args.filter((arg) => arg.kind === \"named\");\n\tif (positionalArgs.length > input.descriptors.length) return pushInvalidPslHelperArgument({\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tspan: input.span,\n\t\tentityLabel: input.entityLabel,\n\t\thelperLabel: input.helperLabel,\n\t\tmessage: `accepts at most ${input.descriptors.length} argument(s), received ${positionalArgs.length}.`\n\t});\n\tfor (const [index, argument] of positionalArgs.entries()) {\n\t\tconst descriptor = input.descriptors[index];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define positional argument #${index + 1}.`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse argument #${index + 1} for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[index] = value;\n\t}\n\tfor (const argument of namedArgs) {\n\t\tconst descriptorIndex = input.descriptors.findIndex((descriptor) => descriptor.name === argument.name);\n\t\tif (descriptorIndex < 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received unknown named argument \"${argument.name}\".`\n\t\t});\n\t\tif (mappedArgs[descriptorIndex] !== void 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received duplicate value for argument \"${argument.name}\".`\n\t\t});\n\t\tconst descriptor = input.descriptors[descriptorIndex];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define named argument \"${argument.name}\".`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse named argument \"${argument.name}\" for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[descriptorIndex] = value;\n\t}\n\treturn mappedArgs;\n}\n//#endregion\n//#region src/field-presets.ts\n/**\n* Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.\n*\n* The `data` payload carries the missing namespace so machine consumers (agents, IDE extensions, CLI auto-fix) don't have to parse the prose.\n*/\nfunction uncomposedNamespaceDiagnostic(input) {\n\treturn {\n\t\tcode: \"PSL_EXTENSION_NAMESPACE_NOT_COMPOSED\",\n\t\tmessage: `${input.subjectLabel} uses unrecognized namespace \"${input.namespace}\". Add extension pack \"${input.namespace}\" to extensions in prisma.config.ts.`,\n\t\t...input.source.at(input.span),\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\tsuggestedPack: input.namespace\n\t\t}\n\t};\n}\nfunction reportUncomposedNamespace(input) {\n\tinput.diagnostics.push(uncomposedNamespaceDiagnostic({\n\t\tsubjectLabel: input.subjectLabel,\n\t\tnamespace: input.namespace,\n\t\tsource: input.source,\n\t\tspan: input.span\n\t}));\n}\n/**\n* Pushes the canonical `PSL_UNKNOWN_FIELD_PRESET` diagnostic when a typoed preset name is referenced inside a registered field-preset namespace. The `data` payload exposes the namespace and full helper path so machine consumers (agents, IDE extensions) don't have to parse the prose.\n*/\nfunction reportUnknownFieldPreset(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_UNKNOWN_FIELD_PRESET\",\n\t\tmessage: `${input.entityLabel} references unknown field preset \"${input.helperPath}\". Check the spelling against the available presets in the \"${input.namespace}\" namespace.`,\n\t\t...input.source.at(input.span),\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\thelperPath: input.helperPath\n\t\t}\n\t});\n}\n/**\n* Instantiates a field-preset call against its descriptor, coercing PSL AST arguments into the descriptor's typed argument shape and returning the preset's full set of contract contributions.\n*\n* PSL → typed-args coercion happens here (via `mapPslHelperArgs`) so that `instantiateAuthoringFieldPreset` itself stays typed-input-only and TS keeps its zero-runtime-validation cost.\n*/\nfunction instantiatePslFieldPreset(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\tconst args = mapPslHelperArgs({\n\t\targs: input.call.args,\n\t\tdescriptors: input.descriptor.args ?? [],\n\t\thelperLabel: `preset \"${helperPath}\"`,\n\t\tspan: input.call.span,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tentityLabel: input.entityLabel\n\t});\n\tif (!args) return;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\treturn instantiateAuthoringFieldPreset(input.descriptor, args);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} preset \"${helperPath}\" ${message}`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn;\n\t}\n}\n//#endregion\n//#region src/interpret.ts\n/**\n* Merges caller-side diagnostics (e.g. parse / symbol-table findings) into an\n* interpretation result. The authored headline is deliberately uniform — it\n* reports how many errors the schema has, never which pipeline stage found\n* them.\n*/\nfunction withSeedDiagnostics(result, seedDiagnostics) {\n\tif (seedDiagnostics.length === 0) return result;\n\tconst diagnostics = result.ok ? seedDiagnostics : [...seedDiagnostics, ...result.failure.diagnostics];\n\treturn notOk({\n\t\tsummary: `Schema has ${diagnostics.length} error${diagnostics.length === 1 ? \"\" : \"s\"}`,\n\t\tdiagnostics,\n\t\t...result.ok || result.failure.meta === void 0 ? {} : { meta: result.failure.meta }\n\t});\n}\n/** The single seam that narrows a contract source to the interpret capability. */\nfunction hasPslInterpreter(source) {\n\treturn source.format === \"psl\" && \"interpret\" in source && typeof source.interpret === \"function\";\n}\n//#endregion\n//#region src/relation-backrelations.ts\nfunction fkRelationPairKey(declaringModelName, targetModelName) {\n\treturn `${declaringModelName}::${targetModelName}`;\n}\n/**\n* Claims the one rejected FK side that pairs with this back-relation candidate: same model pair\n* and the same relation name, where an unnamed candidate pairs only with an unnamed FK side.\n* A claimed pairing is removed, so a second candidate on the same pair reports its own problem.\n*/\nfunction consumeInvalidFkPairing(candidate, pairKey, invalidFkPairings) {\n\tconst index = invalidFkPairings.findIndex((pairing) => pairing.pairKey === pairKey && pairing.relationName === candidate.relationName);\n\tif (index === -1) return false;\n\tinvalidFkPairings.splice(index, 1);\n\treturn true;\n}\nfunction requiredOneToOneBackrelationDiagnostic(input) {\n\tconst { modelName, field, targetModelName, sources, recordNoun } = input;\n\treturn {\n\t\tcode: \"PSL_REQUIRED_ONE_TO_ONE_BACKRELATION\",\n\t\tmessage: `Backrelation field \"${modelName}.${field.name}\" is required, but \"${targetModelName}\" holds the relation fields, so nothing in storage guarantees a \"${targetModelName}\" ${recordNoun} exists. Make it optional: \"${field.name} ${targetModelName}?\".`,\n\t\t...diagnosticSource(sources, field.node.syntax).at(field.span)\n\t};\n}\n//#endregion\nexport { consumeInvalidFkPairing, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, withSeedDiagnostics };\n\n//# sourceMappingURL=interpret.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"psl-parser__interpret.mjs","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.mjs"],"sourcesContent":["import { c as diagnosticSource, n as nodePslSpan, t as keywordPslSpan } from \"./resolve-D_lZ54qh.mjs\";\nimport { instantiateAuthoringFieldPreset, isAuthoringPslBlockDescriptor, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { notOk } from \"@internal/utils/result\";\n//#region src/authoring-arguments.ts\nfunction unquoteStringLiteral(value) {\n\tconst trimmed = value.trim();\n\tconst match = trimmed.match(/^(['\"])(.*)\\1$/);\n\tif (!match) return trimmed;\n\treturn match[2] ?? \"\";\n}\nconst INVALID_AUTHORING_ARGUMENT = Symbol(\"invalidAuthoringArgument\");\nfunction isIdentifierStartCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z_$]/.test(character);\n}\nfunction isIdentifierCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z0-9_$]/.test(character);\n}\nfunction parseJsLikeLiteral(value) {\n\tlet index = 0;\n\tfunction skipWhitespace() {\n\t\twhile (/\\s/.test(value[index] ?? \"\")) index += 1;\n\t}\n\tfunction parseIdentifier() {\n\t\tconst first = value[index];\n\t\tif (!isIdentifierStartCharacter(first)) return INVALID_AUTHORING_ARGUMENT;\n\t\tlet end = index + 1;\n\t\twhile (isIdentifierCharacter(value[end])) end += 1;\n\t\tconst identifier = value.slice(index, end);\n\t\tindex = end;\n\t\treturn identifier;\n\t}\n\tfunction parseString() {\n\t\tconst quote = value[index];\n\t\tif (quote !== \"\\\"\" && quote !== \"'\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tlet result = \"\";\n\t\twhile (index < value.length) {\n\t\t\tconst character = value[index];\n\t\t\tindex += 1;\n\t\t\tif (character === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tif (character === quote) return result;\n\t\t\tif (character !== \"\\\\\") {\n\t\t\t\tresult += character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst escaped = value[index];\n\t\t\tindex += 1;\n\t\t\tif (escaped === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tswitch (escaped) {\n\t\t\t\tcase \"'\":\n\t\t\t\tcase \"\\\"\":\n\t\t\t\tcase \"\\\\\":\n\t\t\t\tcase \"/\":\n\t\t\t\t\tresult += escaped;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"b\":\n\t\t\t\t\tresult += \"\\b\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"f\":\n\t\t\t\t\tresult += \"\\f\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"n\":\n\t\t\t\t\tresult += \"\\n\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"r\":\n\t\t\t\t\tresult += \"\\r\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"t\":\n\t\t\t\t\tresult += \"\t\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"u\": {\n\t\t\t\t\tconst hex = value.slice(index, index + 4);\n\t\t\t\t\tif (!/^[0-9A-Fa-f]{4}$/.test(hex)) return INVALID_AUTHORING_ARGUMENT;\n\t\t\t\t\tresult += String.fromCharCode(Number.parseInt(hex, 16));\n\t\t\t\t\tindex += 4;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t\t\t}\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseNumber() {\n\t\tconst raw = value.slice(index).match(/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/)?.[0];\n\t\tif (!raw) return INVALID_AUTHORING_ARGUMENT;\n\t\tconst parsed = Number(raw);\n\t\tif (!Number.isFinite(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += raw.length;\n\t\treturn parsed;\n\t}\n\tfunction parseArray() {\n\t\tif (value[index] !== \"[\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = [];\n\t\tskipWhitespace();\n\t\tif (value[index] === \"]\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult.push(entry);\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"]\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseObject() {\n\t\tif (value[index] !== \"{\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = {};\n\t\tskipWhitespace();\n\t\tif (value[index] === \"}\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tskipWhitespace();\n\t\t\tconst key = value[index] === \"\\\"\" || value[index] === \"'\" ? parseString() : parseIdentifier();\n\t\t\tif (key === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] !== \":\") return INVALID_AUTHORING_ARGUMENT;\n\t\t\tindex += 1;\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult[key] = entry;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"}\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseValue() {\n\t\tskipWhitespace();\n\t\tconst character = value[index];\n\t\tif (character === \"{\") return parseObject();\n\t\tif (character === \"[\") return parseArray();\n\t\tif (character === \"\\\"\" || character === \"'\") return parseString();\n\t\tif (character === \"-\" || /\\d/.test(character ?? \"\")) return parseNumber();\n\t\tconst identifier = parseIdentifier();\n\t\tif (identifier === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\tif (identifier === \"true\") return true;\n\t\tif (identifier === \"false\") return false;\n\t\tif (identifier === \"null\") return null;\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tskipWhitespace();\n\tconst parsed = parseValue();\n\tif (parsed === INVALID_AUTHORING_ARGUMENT) return parsed;\n\tskipWhitespace();\n\treturn index === value.length ? parsed : INVALID_AUTHORING_ARGUMENT;\n}\nfunction parseStringArrayLiteral(value) {\n\tconst parsed = parseJsLikeLiteral(value);\n\tif (parsed === INVALID_AUTHORING_ARGUMENT || !Array.isArray(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\tif (!parsed.every((item) => typeof item === \"string\")) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction isPlainObject(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction parsePslObjectLiteral(value) {\n\tconst trimmed = value.trim();\n\tif (!trimmed.startsWith(\"{\") || !trimmed.endsWith(\"}\")) return INVALID_AUTHORING_ARGUMENT;\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(trimmed);\n\t} catch {\n\t\tparsed = parseJsLikeLiteral(trimmed);\n\t\tif (parsed === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t}\n\tif (!isPlainObject(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction parsePslAuthoringArgumentValue(descriptor, rawValue) {\n\tswitch (descriptor.kind) {\n\t\tcase \"string\": return unquoteStringLiteral(rawValue);\n\t\tcase \"boolean\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\tif (trimmed === \"true\") return true;\n\t\t\tif (trimmed === \"false\") return false;\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tcase \"number\": {\n\t\t\tconst parsed = Number(unquoteStringLiteral(rawValue));\n\t\t\treturn Number.isNaN(parsed) ? INVALID_AUTHORING_ARGUMENT : parsed;\n\t\t}\n\t\tcase \"stringArray\": return parseStringArrayLiteral(rawValue);\n\t\tcase \"object\": return parsePslObjectLiteral(rawValue);\n\t\tcase \"option\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\treturn /^[A-Za-z_][A-Za-z0-9_]*$/.test(trimmed) ? trimmed : INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t}\n}\nfunction pushInvalidPslHelperArgument(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `${input.entityLabel} ${input.helperLabel} ${input.message}`,\n\t\t...input.source.at(input.span)\n\t});\n}\nfunction mapPslHelperArgs(input) {\n\tconst mappedArgs = input.descriptors.map(() => void 0);\n\tconst positionalArgs = input.args.filter((arg) => arg.kind === \"positional\");\n\tconst namedArgs = input.args.filter((arg) => arg.kind === \"named\");\n\tif (positionalArgs.length > input.descriptors.length) return pushInvalidPslHelperArgument({\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tspan: input.span,\n\t\tentityLabel: input.entityLabel,\n\t\thelperLabel: input.helperLabel,\n\t\tmessage: `accepts at most ${input.descriptors.length} argument(s), received ${positionalArgs.length}.`\n\t});\n\tfor (const [index, argument] of positionalArgs.entries()) {\n\t\tconst descriptor = input.descriptors[index];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define positional argument #${index + 1}.`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse argument #${index + 1} for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[index] = value;\n\t}\n\tfor (const argument of namedArgs) {\n\t\tconst descriptorIndex = input.descriptors.findIndex((descriptor) => descriptor.name === argument.name);\n\t\tif (descriptorIndex < 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received unknown named argument \"${argument.name}\".`\n\t\t});\n\t\tif (mappedArgs[descriptorIndex] !== void 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received duplicate value for argument \"${argument.name}\".`\n\t\t});\n\t\tconst descriptor = input.descriptors[descriptorIndex];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define named argument \"${argument.name}\".`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse named argument \"${argument.name}\" for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[descriptorIndex] = value;\n\t}\n\treturn mappedArgs;\n}\n//#endregion\n//#region src/enum-member-attributes.ts\nfunction enumMemberAttributeDiagnostics(enumBlock, sources) {\n\tconst source = diagnosticSource(sources, enumBlock.node.syntax);\n\treturn Array.from(enumBlock.node.entries()).flatMap((member) => Array.from(member.attributes(), (attribute) => ({\n\t\tcode: \"PSL_UNSUPPORTED_ENUM_MEMBER_ATTRIBUTE\",\n\t\tmessage: `enum \"${enumBlock.block.name}\": member \"${member.key()?.name() ?? \"?\"}\" carries @${attribute.name()?.path().join(\".\") ?? \"?\"}, but an enum member takes no attributes`,\n\t\t...source.at(nodePslSpan(attribute.syntax, sources))\n\t})));\n}\n//#endregion\n//#region src/field-presets.ts\n/**\n* Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.\n*\n* The `data` payload carries the missing namespace so machine consumers (agents, IDE extensions, CLI auto-fix) don't have to parse the prose.\n*/\nfunction uncomposedNamespaceDiagnostic(input) {\n\treturn {\n\t\tcode: \"PSL_EXTENSION_NAMESPACE_NOT_COMPOSED\",\n\t\tmessage: `${input.subjectLabel} uses unrecognized namespace \"${input.namespace}\". Add extension pack \"${input.namespace}\" to extensions in prisma.config.ts.`,\n\t\t...input.source.at(input.span),\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\tsuggestedPack: input.namespace\n\t\t}\n\t};\n}\nfunction reportUncomposedNamespace(input) {\n\tinput.diagnostics.push(uncomposedNamespaceDiagnostic({\n\t\tsubjectLabel: input.subjectLabel,\n\t\tnamespace: input.namespace,\n\t\tsource: input.source,\n\t\tspan: input.span\n\t}));\n}\n/**\n* Pushes the canonical `PSL_UNKNOWN_FIELD_PRESET` diagnostic when a typoed preset name is referenced inside a registered field-preset namespace. The `data` payload exposes the namespace and full helper path so machine consumers (agents, IDE extensions) don't have to parse the prose.\n*/\nfunction reportUnknownFieldPreset(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_UNKNOWN_FIELD_PRESET\",\n\t\tmessage: `${input.entityLabel} references unknown field preset \"${input.helperPath}\". Check the spelling against the available presets in the \"${input.namespace}\" namespace.`,\n\t\t...input.source.at(input.span),\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\thelperPath: input.helperPath\n\t\t}\n\t});\n}\n/**\n* Instantiates a field-preset call against its descriptor, coercing PSL AST arguments into the descriptor's typed argument shape and returning the preset's full set of contract contributions.\n*\n* PSL → typed-args coercion happens here (via `mapPslHelperArgs`) so that `instantiateAuthoringFieldPreset` itself stays typed-input-only and TS keeps its zero-runtime-validation cost.\n*/\nfunction instantiatePslFieldPreset(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\tconst args = mapPslHelperArgs({\n\t\targs: input.call.args,\n\t\tdescriptors: input.descriptor.args ?? [],\n\t\thelperLabel: `preset \"${helperPath}\"`,\n\t\tspan: input.call.span,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tentityLabel: input.entityLabel\n\t});\n\tif (!args) return;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\treturn instantiateAuthoringFieldPreset(input.descriptor, args);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} preset \"${helperPath}\" ${message}`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn;\n\t}\n}\n//#endregion\n//#region src/interpret.ts\n/**\n* Merges caller-side diagnostics (e.g. parse / symbol-table findings) into an\n* interpretation result. The authored headline is deliberately uniform — it\n* reports how many errors the schema has, never which pipeline stage found\n* them.\n*/\nfunction withSeedDiagnostics(result, seedDiagnostics) {\n\tif (seedDiagnostics.length === 0) return result;\n\tconst diagnostics = result.ok ? seedDiagnostics : [...seedDiagnostics, ...result.failure.diagnostics];\n\treturn notOk({\n\t\tsummary: `Schema has ${diagnostics.length} error${diagnostics.length === 1 ? \"\" : \"s\"}`,\n\t\tdiagnostics,\n\t\t...result.ok || result.failure.meta === void 0 ? {} : { meta: result.failure.meta }\n\t});\n}\n/** The single seam that narrows a contract source to the interpret capability. */\nfunction hasPslInterpreter(source) {\n\treturn source.format === \"psl\" && \"interpret\" in source && typeof source.interpret === \"function\";\n}\n//#endregion\n//#region src/relation-backrelations.ts\nfunction fkRelationPairKey(declaringModelName, targetModelName) {\n\treturn `${declaringModelName}::${targetModelName}`;\n}\n/**\n* Claims the one rejected FK side that pairs with this back-relation candidate: same model pair\n* and the same relation name, where an unnamed candidate pairs only with an unnamed FK side.\n* A claimed pairing is removed, so a second candidate on the same pair reports its own problem.\n*/\nfunction consumeInvalidFkPairing(candidate, pairKey, invalidFkPairings) {\n\tconst index = invalidFkPairings.findIndex((pairing) => pairing.pairKey === pairKey && pairing.relationName === candidate.relationName);\n\tif (index === -1) return false;\n\tinvalidFkPairings.splice(index, 1);\n\treturn true;\n}\nfunction requiredOneToOneBackrelationDiagnostic(input) {\n\tconst { modelName, field, targetModelName, sources, recordNoun } = input;\n\treturn {\n\t\tcode: \"PSL_REQUIRED_ONE_TO_ONE_BACKRELATION\",\n\t\tmessage: `Backrelation field \"${modelName}.${field.name}\" is required, but \"${targetModelName}\" holds the relation fields, so nothing in storage guarantees a \"${targetModelName}\" ${recordNoun} exists. Make it optional: \"${field.name} ${targetModelName}?\".`,\n\t\t...diagnosticSource(sources, field.node.syntax).at(field.span)\n\t};\n}\n//#endregion\n//#region src/unclaimed-blocks.ts\n/** A generic block is read only when a composed descriptor claims its keyword. */\nfunction claimedBlockKeywords(descriptors) {\n\tconst keywords = /* @__PURE__ */ new Set();\n\tfor (const [keyword, value] of Object.entries(descriptors ?? {})) if (isAuthoringPslBlockDescriptor(value)) keywords.add(keyword);\n\treturn keywords;\n}\nfunction unsupportedBlockDiagnostic(block, sources) {\n\treturn {\n\t\tcode: \"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\",\n\t\tmessage: `Unsupported top-level block \"${block.keyword}\"`,\n\t\t...diagnosticSource(sources, block.node.syntax).at(keywordPslSpan(block.node.syntax, block.keyword, sources))\n\t};\n}\n//#endregion\nexport { claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };\n\n//# sourceMappingURL=interpret.mjs.map"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as TokenKind } from "./tokenizer-
|
|
2
|
-
import {
|
|
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-D8YAg23m.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 {
|
|
@@ -27,5 +27,5 @@ declare function skipTriviaToken(token: SyntaxToken, direction: Direction): Synt
|
|
|
27
27
|
*/
|
|
28
28
|
declare function nonTriviaSibling(element: SyntaxElement, direction: Direction): SyntaxElement | undefined;
|
|
29
29
|
//#endregion
|
|
30
|
-
export { ArrayLiteralAst, type AstNode, AttributeArgAst, AttributeArgListAst, type AttributeAst, type BlockMemberAst, BooleanLiteralExprAst, type BracedBlock, CompositeTypeDeclarationAst, type DeclarationAst, type Direction, DocumentAst, type ExpressionAst, FieldAttributeAst, FieldDeclarationAst, FunctionCallAst, GenericBlockDeclarationAst, type GenericBlockMemberAst, type GreenElement, type GreenNode, GreenNodeBuilder, type GreenToken, IdentifierAst, KeyValuePairAst, ModelAttributeAst, ModelDeclarationAst, NamedTypeDeclarationAst, NamespaceDeclarationAst, type NamespaceMemberAst, NumberLiteralExprAst, ObjectFieldAst, ObjectLiteralExprAst, type ParseDiagnostic, type
|
|
30
|
+
export { ArrayLiteralAst, type AstNode, AttributeArgAst, AttributeArgListAst, type AttributeAst, type BlockMemberAst, BooleanLiteralExprAst, type BracedBlock, CompositeTypeDeclarationAst, type DeclarationAst, type Direction, DocumentAst, type ExpressionAst, FieldAttributeAst, FieldDeclarationAst, FunctionCallAst, GenericBlockDeclarationAst, type GenericBlockMemberAst, type GreenElement, type GreenNode, GreenNodeBuilder, type GreenToken, IdentifierAst, KeyValuePairAst, ModelAttributeAst, ModelDeclarationAst, NamedTypeDeclarationAst, NamespaceDeclarationAst, type NamespaceMemberAst, NumberLiteralExprAst, ObjectFieldAst, ObjectLiteralExprAst, type ParseDiagnostic, type ParseResult, type Position, PslSources, QualifiedNameAst, type Range, SourceFile, StringLiteralExprAst, type StringLiteralQuote, type SyntaxElement, type SyntaxKind, SyntaxNode, SyntaxToken, TaggedLiteralExprAst, TokenAtOffset, TypeAnnotationAst, TypesBlockAst, any, castExpression, createSyntaxTree, filterChildren, findChildToken, findFirstChild, greenNode, greenToken, isTrivia, isTriviaKind, nonTriviaSibling, parse, printSyntax, skipTriviaToken };
|
|
31
31
|
//# sourceMappingURL=psl-parser__syntax.d.mts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as
|
|
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-43E1JFHg-DGBa0YH_.mjs";
|
|
3
|
+
import { a as greenToken, i as greenNode, n as PslSources, o as parse, r as SourceFile, t as GreenNodeBuilder } from "./parse-Km2Ne67K-CakfHP9f.mjs";
|
|
3
4
|
//#region ../../../1-framework/2-authoring/psl-parser/dist/syntax.mjs
|
|
4
5
|
const TRIVIA_KINDS = /* @__PURE__ */ new Set([
|
|
5
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 {
|
|
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-43E1JFHg.mjs\";\nimport { a as PslSources, i as greenToken, n as GreenNodeBuilder, o as SourceFile, r as greenNode, t as parse } from \"./parse-Km2Ne67K.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,2 +1,2 @@
|
|
|
1
|
-
import { n as TokenKind, r as Tokenizer, t as Token } from "./tokenizer-
|
|
1
|
+
import { n as TokenKind, r as Tokenizer, t as Token } from "./tokenizer-DW30uwhx-BHsWTwYk.mjs";
|
|
2
2
|
export { type Token, type TokenKind, Tokenizer };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Tokenizer } from "./tokenizer-
|
|
1
|
+
import { t as Tokenizer } from "./tokenizer-BMz7z2KR-J0yZ4im3.mjs";
|
|
2
2
|
export { Tokenizer };
|
package/dist/psl-printer.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { f as CodecLookup } from "./codec-types-C4Bx6jXr-C2MBP0-0.mjs";
|
|
2
2
|
import { w as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-C9VTqnML-BXtBl2dJ.mjs";
|
|
3
|
-
import "./authoring-
|
|
3
|
+
import "./authoring-BffMNBO5.mjs";
|
|
4
4
|
import "./codec-D5McQin0.mjs";
|
|
5
|
-
import { m as PslDocumentAst } from "./psl-ast-
|
|
6
|
-
import "./psl-ast-
|
|
5
|
+
import { m as PslDocumentAst } from "./psl-ast-BePuKena-AYNqFKCE.mjs";
|
|
6
|
+
import "./psl-ast-Cec7KbOn.mjs";
|
|
7
7
|
//#region ../../../1-framework/2-authoring/psl-printer/dist/index.d.mts
|
|
8
8
|
//#region src/print-psl.d.ts
|
|
9
9
|
type PslBlockDescriptorsNamespace = AuthoringPslBlockDescriptorNamespace;
|
|
@@ -30,6 +30,11 @@ interface PrintPslOptions {
|
|
|
30
30
|
* emitted as-is.
|
|
31
31
|
*/
|
|
32
32
|
readonly codecLookup?: CodecLookup;
|
|
33
|
+
/**
|
|
34
|
+
* One line saying where the file came from. The printed file opens with the
|
|
35
|
+
* `// use prisma-8` marker, then this line as a comment.
|
|
36
|
+
*/
|
|
37
|
+
readonly description?: string;
|
|
33
38
|
}
|
|
34
39
|
declare function printPslFromAst(ast: PslDocumentAst, options?: PrintPslOptions): string;
|
|
35
40
|
//#endregion
|