@prisma/orm-framework 8.0.0-rc.11-dev.29 → 8.0.0-rc.11-dev.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/authoring-SDt_yd7K.d.mts +1 -0
  2. package/dist/{components-DDqd0vap.d.mts → components-CIlPUXgy.d.mts} +2 -2
  3. package/dist/{components-DDqd0vap.d.mts.map → components-CIlPUXgy.d.mts.map} +1 -1
  4. package/dist/components.d.mts +9 -9
  5. package/dist/components.mjs +2 -2
  6. package/dist/components__authoring.d.mts +2 -2
  7. package/dist/components__components.d.mts +2 -2
  8. package/dist/components__control.d.mts +3 -3
  9. package/dist/components__control.mjs +2 -2
  10. package/dist/components__execution.d.mts +1 -1
  11. package/dist/components__psl-ast.d.mts +3 -3
  12. package/dist/{config-types-DrtGQDEz.d.mts → config-types-BiBG9LUM.d.mts} +4 -4
  13. package/dist/{config-types-DrtGQDEz.d.mts.map → config-types-BiBG9LUM.d.mts.map} +1 -1
  14. package/dist/config.d.mts +1 -1
  15. package/dist/config__config-types.d.mts +1 -1
  16. package/dist/contract-authoring.d.mts +2 -2
  17. package/dist/{control-CjjQjy_6.d.mts → control-FO0yGN-e.d.mts} +36 -5
  18. package/dist/{control-CjjQjy_6.d.mts.map → control-FO0yGN-e.d.mts.map} +1 -1
  19. package/dist/{control-DR0zF1b7.mjs → control-LZyLwXWd.mjs} +126 -2
  20. package/dist/control-LZyLwXWd.mjs.map +1 -0
  21. package/dist/{declarations-C8gJnWQp-CnufYOCF.mjs → declarations-ApW55O9s-DmbPATJi.mjs} +47 -5
  22. package/dist/declarations-ApW55O9s-DmbPATJi.mjs.map +1 -0
  23. package/dist/errors.d.mts +1 -1
  24. package/dist/errors__execution.d.mts +1 -1
  25. package/dist/{execution-B2UDS4t7.d.mts → execution-DU2yN6tS.d.mts} +2 -2
  26. package/dist/{execution-B2UDS4t7.d.mts.map → execution-DU2yN6tS.d.mts.map} +1 -1
  27. package/dist/{execution-DEt8KBE9.d.mts → execution-DfMCQMDy.d.mts} +2 -2
  28. package/dist/{execution-DEt8KBE9.d.mts.map → execution-DfMCQMDy.d.mts.map} +1 -1
  29. package/dist/{framework-authoring-Cs5_Ovws-C3gC-7Ln.d.mts → framework-authoring-b__TyQDU-C9cYpYdv.d.mts} +15 -6
  30. package/dist/framework-authoring-b__TyQDU-C9cYpYdv.d.mts.map +1 -0
  31. package/dist/{framework-components-CukAi30h-DMnprolg.d.mts → framework-components-Bu5LfryO-CAg5kbVT.d.mts} +24 -4
  32. package/dist/framework-components-Bu5LfryO-CAg5kbVT.d.mts.map +1 -0
  33. package/dist/{parse-BPOOpARs-COpO0wc7.mjs → parse-BRwiZ0nC-B9AArxQM.mjs} +28 -5
  34. package/dist/parse-BRwiZ0nC-B9AArxQM.mjs.map +1 -0
  35. package/dist/{parse-Di31RMVM-DJPkmFtA.d.mts → parse-D6t27bbJ-CBRfL6kk.d.mts} +27 -7
  36. package/dist/parse-D6t27bbJ-CBRfL6kk.d.mts.map +1 -0
  37. package/dist/{psl-ast-Dv4jFRE5-TV1K0L2x.d.mts → psl-ast-26UDyLzV-D0CaiBMi.d.mts} +3 -3
  38. package/dist/{psl-ast-Dv4jFRE5-TV1K0L2x.d.mts.map → psl-ast-26UDyLzV-D0CaiBMi.d.mts.map} +1 -1
  39. package/dist/{psl-ast-CcBU8yUe.d.mts → psl-ast-Cfiro8sP.d.mts} +3 -3
  40. package/dist/{psl-ast-CcBU8yUe.d.mts.map → psl-ast-Cfiro8sP.d.mts.map} +1 -1
  41. package/dist/psl-parser.d.mts +35 -12
  42. package/dist/psl-parser.d.mts.map +1 -1
  43. package/dist/psl-parser.mjs +48 -21
  44. package/dist/psl-parser.mjs.map +1 -1
  45. package/dist/psl-parser__format.mjs +3 -2
  46. package/dist/psl-parser__format.mjs.map +1 -1
  47. package/dist/psl-parser__interpret.d.mts +3 -3
  48. package/dist/psl-parser__syntax.d.mts +2 -2
  49. package/dist/psl-parser__syntax.mjs +3 -3
  50. package/dist/psl-parser__syntax.mjs.map +1 -1
  51. package/dist/psl-parser__tokenizer.mjs +1 -1
  52. package/dist/psl-printer.d.mts +4 -4
  53. package/dist/{symbol-table-BsJpsMzi-BpjAGtCb.d.mts → symbol-table-ajt1Djeq-CFc0j55c.d.mts} +10 -8
  54. package/dist/symbol-table-ajt1Djeq-CFc0j55c.d.mts.map +1 -0
  55. package/dist/{tokenizer-1hAHZzmp-QGPORvmA.mjs → tokenizer-D4sywyzm-gPsD7tYP.mjs} +40 -6
  56. package/dist/tokenizer-D4sywyzm-gPsD7tYP.mjs.map +1 -0
  57. package/package.json +15 -15
  58. package/dist/authoring-D-YstG17.d.mts +0 -1
  59. package/dist/control-DR0zF1b7.mjs.map +0 -1
  60. package/dist/declarations-C8gJnWQp-CnufYOCF.mjs.map +0 -1
  61. package/dist/framework-authoring-Cs5_Ovws-C3gC-7Ln.d.mts.map +0 -1
  62. package/dist/framework-components-CukAi30h-DMnprolg.d.mts.map +0 -1
  63. package/dist/parse-BPOOpARs-COpO0wc7.mjs.map +0 -1
  64. package/dist/parse-Di31RMVM-DJPkmFtA.d.mts.map +0 -1
  65. package/dist/symbol-table-BsJpsMzi-BpjAGtCb.d.mts.map +0 -1
  66. package/dist/tokenizer-1hAHZzmp-QGPORvmA.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenizer-1hAHZzmp-QGPORvmA.mjs","names":["#source","#pos","#buffer","#scanNext"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/tokenizer-1hAHZzmp.mjs"],"sourcesContent":["//#region src/tokenizer.ts\nvar Tokenizer = class {\n\t#source;\n\t#pos;\n\t#buffer;\n\tconstructor(source) {\n\t\tthis.#source = source;\n\t\tthis.#pos = 0;\n\t\tthis.#buffer = [];\n\t}\n\tnext() {\n\t\tconst next = this.#buffer.shift();\n\t\tif (next) return next;\n\t\treturn this.#scanNext();\n\t}\n\tpeek(offset = 0) {\n\t\tif (offset > this.#buffer.length) {\n\t\t\tconst last = this.#buffer.at(-1);\n\t\t\tif (last?.kind === \"Eof\") return last;\n\t\t}\n\t\tconst token = this.#buffer[offset];\n\t\tif (token) return token;\n\t\twhile (this.#buffer.length <= offset) {\n\t\t\tconst token = this.#scanNext();\n\t\t\tif (token.kind === \"Eof\") return token;\n\t\t\tthis.#buffer.push(token);\n\t\t}\n\t\treturn this.#buffer[offset];\n\t}\n\t#scanNext() {\n\t\tconst token = scan(this.#source, this.#pos);\n\t\tthis.#pos += token.text.length;\n\t\treturn token;\n\t}\n};\nfunction scan(source, pos) {\n\tif (pos >= source.length) return {\n\t\tkind: \"Eof\",\n\t\ttext: \"\"\n\t};\n\treturn scanNewline(source, pos) ?? scanWhitespace(source, pos) ?? scanComment(source, pos) ?? scanAt(source, pos) ?? scanKeywordNumber(source, pos) ?? scanIdent(source, pos) ?? scanNumber(source, pos) ?? scanString(source, pos) ?? scanPunctuation(source, pos) ?? {\n\t\tkind: \"Invalid\",\n\t\ttext: readChar(source, pos)\n\t};\n}\nfunction scanNewline(source, pos) {\n\tconst ch = source.charAt(pos);\n\tif (ch !== \"\\r\" && ch !== \"\\n\") return void 0;\n\tif (ch === \"\\r\" && source.charAt(pos + 1) === \"\\n\") return {\n\t\tkind: \"Newline\",\n\t\ttext: \"\\r\\n\"\n\t};\n\treturn {\n\t\tkind: \"Newline\",\n\t\ttext: ch\n\t};\n}\nfunction scanWhitespace(source, pos) {\n\tconst ch = source.charAt(pos);\n\tif (ch !== \" \" && ch !== \"\t\") return void 0;\n\tlet end = pos + 1;\n\twhile (end < source.length) {\n\t\tconst c = source.charAt(end);\n\t\tif (c !== \" \" && c !== \"\t\") break;\n\t\tend++;\n\t}\n\treturn {\n\t\tkind: \"Whitespace\",\n\t\ttext: source.slice(pos, end)\n\t};\n}\nfunction scanComment(source, pos) {\n\tif (source.charAt(pos) !== \"/\" || source.charAt(pos + 1) !== \"/\") return void 0;\n\tlet end = pos + 2;\n\twhile (end < source.length) {\n\t\tconst c = source.charAt(end);\n\t\tif (c === \"\\n\" || c === \"\\r\") break;\n\t\tend++;\n\t}\n\treturn {\n\t\tkind: \"Comment\",\n\t\ttext: source.slice(pos, end)\n\t};\n}\nfunction scanAt(source, pos) {\n\tif (source.charAt(pos) !== \"@\") return void 0;\n\tif (source.charAt(pos + 1) === \"@\") return {\n\t\tkind: \"DoubleAt\",\n\t\ttext: \"@@\"\n\t};\n\treturn {\n\t\tkind: \"At\",\n\t\ttext: \"@\"\n\t};\n}\nfunction scanIdent(source, pos) {\n\tconst ch = readChar(source, pos);\n\tif (!isIdentStart(ch)) return void 0;\n\tlet end = pos + ch.length;\n\twhile (end < source.length) {\n\t\tconst c = readChar(source, end);\n\t\tif (isIdentPart(c)) end += c.length;\n\t\telse break;\n\t}\n\treturn {\n\t\tkind: \"Ident\",\n\t\ttext: source.slice(pos, end)\n\t};\n}\nconst KEYWORD_NUMBERS = [\n\t\"-Infinity\",\n\t\"Infinity\",\n\t\"NaN\"\n];\nfunction scanKeywordNumber(source, pos) {\n\tfor (const word of KEYWORD_NUMBERS) {\n\t\tif (!source.startsWith(word, pos)) continue;\n\t\tconst after = readChar(source, pos + word.length);\n\t\tif (after !== \"\" && isIdentPart(after)) return void 0;\n\t\treturn {\n\t\t\tkind: \"NumberLiteral\",\n\t\t\ttext: word\n\t\t};\n\t}\n}\nfunction scanNumber(source, pos) {\n\tlet end = pos;\n\tif (source.charAt(end) === \"-\") {\n\t\tif (end + 1 >= source.length || !isDigit(source.charAt(end + 1))) return void 0;\n\t\tend++;\n\t} else if (!isDigit(source.charAt(end))) return;\n\tend++;\n\twhile (end < source.length && isDigit(source.charAt(end))) end++;\n\tif (source.charAt(end) === \".\" && end + 1 < source.length && isDigit(source.charAt(end + 1))) {\n\t\tend++;\n\t\twhile (end < source.length && isDigit(source.charAt(end))) end++;\n\t}\n\treturn {\n\t\tkind: \"NumberLiteral\",\n\t\ttext: source.slice(pos, end)\n\t};\n}\nfunction scanString(source, pos) {\n\tconst quote = source.charAt(pos);\n\tif (quote !== \"\\\"\" && quote !== \"'\") return void 0;\n\tlet end = pos + 1;\n\twhile (end < source.length) {\n\t\tconst c = source.charAt(end);\n\t\tif (c === \"\\\\\" && end + 1 < source.length) {\n\t\t\tend += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === quote) {\n\t\t\tend++;\n\t\t\treturn {\n\t\t\t\tkind: \"StringLiteral\",\n\t\t\t\ttext: source.slice(pos, end)\n\t\t\t};\n\t\t}\n\t\tif (c === \"\\n\" || c === \"\\r\") return {\n\t\t\tkind: \"StringLiteral\",\n\t\t\ttext: source.slice(pos, end)\n\t\t};\n\t\tend++;\n\t}\n\treturn {\n\t\tkind: \"StringLiteral\",\n\t\ttext: source.slice(pos, end)\n\t};\n}\n/**\n* `scanString` emits the same `StringLiteral` kind for well-formed and\n* unterminated strings, so callers ask here to tell them apart.\n*\n* The closing quote is unescaped iff an **even** number of backslashes precede\n* it (each `\\\\` pair cancels; an odd run leaves the final `\\` escaping the\n* quote), so counting the trailing backslash run suffices — no full re-scan:\n*\n* - `\"ok\"` → 0 backslashes (even) → terminated\n* - `'a\\'` → 1 backslash (odd) → the quote is escaped → unterminated\n* - `\"a\\\\\"` → 2 backslashes (even) → escaped `\\`, real `\"` → terminated\n*/\nfunction isTerminatedStringLiteral(text) {\n\tconst quote = text.charAt(0);\n\tif (quote !== \"\\\"\" && quote !== \"'\") return false;\n\tif (text.length < 2 || text.charAt(text.length - 1) !== quote) return false;\n\tlet backslashes = 0;\n\tfor (let i = text.length - 2; i >= 1 && text.charAt(i) === \"\\\\\"; i--) backslashes++;\n\treturn backslashes % 2 === 0;\n}\nfunction scanPunctuation(source, pos) {\n\tconst kind = PUNCTUATION[source.charAt(pos)];\n\tif (kind === void 0) return void 0;\n\treturn {\n\t\tkind,\n\t\ttext: source.charAt(pos)\n\t};\n}\nfunction readChar(source, pos) {\n\tconst cp = source.codePointAt(pos);\n\treturn cp !== void 0 ? String.fromCodePoint(cp) : \"\";\n}\nfunction isIdentStart(ch) {\n\treturn /\\p{L}/u.test(ch) || ch === \"_\";\n}\nfunction isIdentPart(ch) {\n\treturn isIdentStart(ch) || isDigit(ch) || ch === \"-\";\n}\nfunction isDigit(ch) {\n\treturn ch >= \"0\" && ch <= \"9\";\n}\nconst PUNCTUATION = {\n\t\"{\": \"LBrace\",\n\t\"}\": \"RBrace\",\n\t\"(\": \"LParen\",\n\t\")\": \"RParen\",\n\t\"[\": \"LBracket\",\n\t\"]\": \"RBracket\",\n\t\"=\": \"Equals\",\n\t\"?\": \"Question\",\n\t\".\": \"Dot\",\n\t\",\": \"Comma\",\n\t\":\": \"Colon\"\n};\n//#endregion\nexport { isTerminatedStringLiteral as n, Tokenizer as t };\n\n//# sourceMappingURL=tokenizer-1hAHZzmp.mjs.map"],"mappings":"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"}