@prisma/orm-target-sqlite 8.0.0-rc.14-dev.28 → 8.0.0-rc.14-dev.30

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 (119) hide show
  1. package/dist/{adapter-Bp_4Bjff-pcUMeUp5.d.mts → adapter-Bp_4Bjff-Ce3oZAN1.d.mts} +6 -6
  2. package/dist/{adapter-Bp_4Bjff-pcUMeUp5.d.mts.map → adapter-Bp_4Bjff-Ce3oZAN1.d.mts.map} +1 -1
  3. package/dist/adapter-C-sqCgrP.d.mts +2 -0
  4. package/dist/{adapter-Dt53y-dI-CIzvNqp8.mjs → adapter-DUwfMiE4-C-kTEDXO.mjs} +4 -5
  5. package/dist/adapter-DUwfMiE4-C-kTEDXO.mjs.map +1 -0
  6. package/dist/adapter.d.mts +10 -10
  7. package/dist/adapter.mjs +2 -2
  8. package/dist/adapter__adapter.d.mts +3 -3
  9. package/dist/adapter__adapter.mjs +1 -1
  10. package/dist/adapter__codec-types.d.mts +3 -3
  11. package/dist/adapter__control.d.mts +2 -2
  12. package/dist/adapter__control.mjs +5 -81
  13. package/dist/adapter__control.mjs.map +1 -1
  14. package/dist/adapter__runtime.d.mts +1 -1
  15. package/dist/adapter__runtime.mjs +3 -3
  16. package/dist/adapter__runtime.mjs.map +1 -1
  17. package/dist/adapter__sql-renderer.d.mts +2 -2
  18. package/dist/adapter__sql-renderer.mjs +1 -1
  19. package/dist/adapter__types.d.mts +3 -3
  20. package/dist/{codec-descriptor-CWJAw6Ck-BksOSxiO.mjs → codec-descriptor-BX2XRz4V-DxUIN3j3.mjs} +7 -12
  21. package/dist/codec-descriptor-BX2XRz4V-DxUIN3j3.mjs.map +1 -0
  22. package/dist/{codec-descriptor-CDLhtrcE-CloMgVh6.d.mts → codec-descriptor-Bux_tjPl-DBQU4lFR.d.mts} +14 -5
  23. package/dist/codec-descriptor-Bux_tjPl-DBQU4lFR.d.mts.map +1 -0
  24. package/dist/codec-descriptor-C-BCHOOC-BGr23_XM.d.mts +1 -0
  25. package/dist/codec-descriptor-OJw51BEj.d.mts +2 -0
  26. package/dist/codec-types-BXwJkshK.d.mts +2 -0
  27. package/dist/{codec-types-7LGtuhFP-DzL26PY-.d.mts → codec-types-B_IhsOl9-WPSRXocH.d.mts} +5 -5
  28. package/dist/{codec-types-7LGtuhFP-DzL26PY-.d.mts.map → codec-types-B_IhsOl9-WPSRXocH.d.mts.map} +1 -1
  29. package/dist/codec-types-BhSj11Hl.d.mts +1 -0
  30. package/dist/codecs-DSZbU8RG.d.mts +1 -0
  31. package/dist/{codecs-BXELYOY1.mjs → codecs-DlI8SadA.mjs} +3 -3
  32. package/dist/{codecs-BXELYOY1.mjs.map → codecs-DlI8SadA.mjs.map} +1 -1
  33. package/dist/{codecs-IMTHRn2Y-B8c1e4wg.d.mts → codecs-hLsmWJRa-DfMCx_nO.d.mts} +3 -11
  34. package/dist/codecs-hLsmWJRa-DfMCx_nO.d.mts.map +1 -0
  35. package/dist/{codecs-yYxIwGIT-BHW7sSHn.mjs → codecs-r7gY3BuR-B6lXeFyH.mjs} +16 -18
  36. package/dist/codecs-r7gY3BuR-B6lXeFyH.mjs.map +1 -0
  37. package/dist/control-CEsPGd0f.mjs +484 -0
  38. package/dist/control-CEsPGd0f.mjs.map +1 -0
  39. package/dist/{control-DAys3o_s.d.mts → control-Cg2ATcBk.d.mts} +71 -2
  40. package/dist/control-Cg2ATcBk.d.mts.map +1 -0
  41. package/dist/{control-DrJxxfn2.d.mts → control-DgI8tIaw.d.mts} +3 -5
  42. package/dist/control-DgI8tIaw.d.mts.map +1 -0
  43. package/dist/{data-types-D9CwP8vB.mjs → data-type-entries-CL0a2goH-BCEztwoX.mjs} +5 -4
  44. package/dist/data-type-entries-CL0a2goH-BCEztwoX.mjs.map +1 -0
  45. package/dist/data-types-Bs4y7eZb-B00ws2B6.mjs +111 -0
  46. package/dist/data-types-Bs4y7eZb-B00ws2B6.mjs.map +1 -0
  47. package/dist/data-types-ZsgBg_Zg.d.mts +34 -0
  48. package/dist/data-types-ZsgBg_Zg.d.mts.map +1 -0
  49. package/dist/{descriptor-meta-D1v5O3db-BN-I6Xfn.mjs → descriptor-meta-AG8POta2-D-k13ZOE.mjs} +9 -16
  50. package/dist/descriptor-meta-AG8POta2-D-k13ZOE.mjs.map +1 -0
  51. package/dist/{descriptor-meta-CqCH7n4c-Bx_S6IIu.mjs → descriptor-meta-CFPBLIHW-BwigY92R.mjs} +4 -6
  52. package/dist/descriptor-meta-CFPBLIHW-BwigY92R.mjs.map +1 -0
  53. package/dist/{descriptor-meta-runtime-BkXK3OjD-CxZdKHCw.mjs → descriptor-meta-runtime-CIrdwmEr-3T3t3kjc.mjs} +5 -3
  54. package/dist/descriptor-meta-runtime-CIrdwmEr-3T3t3kjc.mjs.map +1 -0
  55. package/dist/{migration-EUIIVcIm.mjs → migration-BA5np0wx.mjs} +2 -2
  56. package/dist/{migration-EUIIVcIm.mjs.map → migration-BA5np0wx.mjs.map} +1 -1
  57. package/dist/{op-factory-call-CfKnEpob-DTd2gbc-.mjs → op-factory-call-V6Wu86U8-B1Y4idhr.mjs} +18 -13
  58. package/dist/op-factory-call-V6Wu86U8-B1Y4idhr.mjs.map +1 -0
  59. package/dist/{pack-DYq6t0MG.d.mts → pack-B1iD7wyf.d.mts} +4 -6
  60. package/dist/pack-B1iD7wyf.d.mts.map +1 -0
  61. package/dist/{planner-JsIIYFEw-CDOZsE9T.mjs → planner-Cm5kqc7I-CKSYA8QU.mjs} +5 -5
  62. package/dist/{planner-JsIIYFEw-CDOZsE9T.mjs.map → planner-Cm5kqc7I-CKSYA8QU.mjs.map} +1 -1
  63. package/dist/{planner-produced-sqlite-migration-ChcV97kS-CPuxa8bt.mjs → planner-produced-sqlite-migration-DWsg0vgl-N6_jUi2G.mjs} +3 -3
  64. package/dist/{planner-produced-sqlite-migration-ChcV97kS-CPuxa8bt.mjs.map → planner-produced-sqlite-migration-DWsg0vgl-N6_jUi2G.mjs.map} +1 -1
  65. package/dist/{runtime-Bjrj3hM2.d.mts → runtime-CG71EORy.d.mts} +2 -2
  66. package/dist/{runtime-Bjrj3hM2.d.mts.map → runtime-CG71EORy.d.mts.map} +1 -1
  67. package/dist/sql-renderer-eeiux6H6.d.mts +1 -0
  68. package/dist/{sqlite-migration-BZqbD0_M-CSqiljPs.mjs → sqlite-migration-CindFauZ-BM2X6Ha3.mjs} +34 -44
  69. package/dist/sqlite-migration-CindFauZ-BM2X6Ha3.mjs.map +1 -0
  70. package/dist/target.d.mts +10 -10
  71. package/dist/target.mjs +12 -11
  72. package/dist/target__codec-descriptor.d.mts +2 -2
  73. package/dist/target__codec-descriptor.mjs +1 -1
  74. package/dist/target__codec-types.d.mts +3 -3
  75. package/dist/target__codecs.d.mts +2 -2
  76. package/dist/target__codecs.mjs +2 -2
  77. package/dist/target__control.d.mts +2 -2
  78. package/dist/target__control.mjs +3 -433
  79. package/dist/target__data-types.d.mts +2 -2
  80. package/dist/target__data-types.mjs +3 -3
  81. package/dist/target__migration.mjs +2 -2
  82. package/dist/target__op-factory-call.mjs +1 -1
  83. package/dist/target__pack.d.mts +1 -1
  84. package/dist/target__pack.mjs +1 -1
  85. package/dist/target__planner-produced-sqlite-migration.mjs +1 -1
  86. package/dist/target__planner.mjs +1 -1
  87. package/dist/target__runtime.mjs +1 -1
  88. package/dist/target__runtime.mjs.map +1 -1
  89. package/dist/types-CJW_JAJf.d.mts +2 -0
  90. package/dist/{types-RJMd2PlL-Dqp0xeHo.d.mts → types-RJMd2PlL-CD7b6qkb.d.mts} +3 -3
  91. package/dist/{types-RJMd2PlL-Dqp0xeHo.d.mts.map → types-RJMd2PlL-CD7b6qkb.d.mts.map} +1 -1
  92. package/package.json +9 -9
  93. package/dist/adapter-CTFBoRww.d.mts +0 -2
  94. package/dist/adapter-Dt53y-dI-CIzvNqp8.mjs.map +0 -1
  95. package/dist/codec-descriptor-3-wupJWh.d.mts +0 -2
  96. package/dist/codec-descriptor-C6M9ScCy-BqG7e8Oz.d.mts +0 -1
  97. package/dist/codec-descriptor-CDLhtrcE-CloMgVh6.d.mts.map +0 -1
  98. package/dist/codec-descriptor-CWJAw6Ck-BksOSxiO.mjs.map +0 -1
  99. package/dist/codec-types-1ZdfJ3rh.d.mts +0 -2
  100. package/dist/codec-types-BQrWed-7.d.mts +0 -1
  101. package/dist/codecs-CRiL94qi.d.mts +0 -1
  102. package/dist/codecs-IMTHRn2Y-B8c1e4wg.d.mts.map +0 -1
  103. package/dist/codecs-yYxIwGIT-BHW7sSHn.mjs.map +0 -1
  104. package/dist/control-DAys3o_s.d.mts.map +0 -1
  105. package/dist/control-DrJxxfn2.d.mts.map +0 -1
  106. package/dist/data-types-B6gYWauJ-DPJUc7_Z.mjs +0 -70
  107. package/dist/data-types-B6gYWauJ-DPJUc7_Z.mjs.map +0 -1
  108. package/dist/data-types-BuIx2aG3.d.mts +0 -24
  109. package/dist/data-types-BuIx2aG3.d.mts.map +0 -1
  110. package/dist/data-types-D9CwP8vB.mjs.map +0 -1
  111. package/dist/descriptor-meta-CqCH7n4c-Bx_S6IIu.mjs.map +0 -1
  112. package/dist/descriptor-meta-D1v5O3db-BN-I6Xfn.mjs.map +0 -1
  113. package/dist/descriptor-meta-runtime-BkXK3OjD-CxZdKHCw.mjs.map +0 -1
  114. package/dist/op-factory-call-CfKnEpob-DTd2gbc-.mjs.map +0 -1
  115. package/dist/pack-DYq6t0MG.d.mts.map +0 -1
  116. package/dist/sql-renderer-DESroHws.d.mts +0 -1
  117. package/dist/sqlite-migration-BZqbD0_M-CSqiljPs.mjs.map +0 -1
  118. package/dist/target__control.mjs.map +0 -1
  119. package/dist/types-B1tXBpPk.d.mts +0 -2
@@ -1,7 +1,8 @@
1
- import { c as sqliteReal, l as sqliteText, o as sqliteInteger, s as sqliteJson, t as sqliteBigint } from "./data-types-B6gYWauJ-DPJUc7_Z.mjs";
2
- import { createNumberClassifier, numeralText, parseJsonBody, printJsonBody, signedRange } from "@prisma/orm-family-sql/relational-core/ast";
1
+ import { d as sqliteReal, f as sqliteText, l as sqliteInteger, t as sqliteBigint, u as sqliteJson } from "./data-types-Bs4y7eZb-B00ws2B6.mjs";
3
2
  import { SAFE_INTEGER_BIGINT_RANGE } from "@prisma/orm-framework/components/codec";
4
- //#region ../../../3-targets/3-targets/sqlite/dist/data-types.mjs
3
+ import { numeralText } from "@prisma/orm-family-sql/contract/data-type";
4
+ import { createNumberClassifier, parseJsonBody, printJsonBody, signedRange } from "@prisma/orm-family-sql/contract/data-type-support";
5
+ //#region ../../../3-targets/3-targets/sqlite/dist/data-type-entries-CL0a2goH.mjs
5
6
  /**
6
7
  * A whole number within the range a double holds exactly is an `integer`, a wider one up to 64 bits
7
8
  * is a `bigint`, and a number with a fraction is a `real`. Anything else — a whole number past 64
@@ -64,4 +65,4 @@ function sqliteDataTypeEntries() {
64
65
  //#endregion
65
66
  export { sqliteDataTypeEntries as t };
66
67
 
67
- //# sourceMappingURL=data-types-D9CwP8vB.mjs.map
68
+ //# sourceMappingURL=data-type-entries-CL0a2goH-BCEztwoX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-type-entries-CL0a2goH-BCEztwoX.mjs","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/data-type-entries-CL0a2goH.mjs"],"sourcesContent":["import { d as sqliteReal, f as sqliteText, l as sqliteInteger, t as sqliteBigint, u as sqliteJson } from \"./data-types-Bs4y7eZb.mjs\";\nimport { SAFE_INTEGER_BIGINT_RANGE } from \"@internal/framework-components/codec\";\nimport { numeralText } from \"@internal/sql-contract/data-type\";\nimport { createNumberClassifier, parseJsonBody, printJsonBody, signedRange } from \"@internal/sql-contract/data-type-support\";\n//#region src/core/data-type-entries.ts\n/**\n* A whole number within the range a double holds exactly is an `integer`, a wider one up to 64 bits\n* is a `bigint`, and a number with a fraction is a `real`. Anything else — a whole number past 64\n* bits, or one of the three words — has no SQLite type, so it is refused.\n*/\nconst classifySqliteNumber = createNumberClassifier({\n\tintegers: [{\n\t\ttype: sqliteInteger.id,\n\t\tform: \"number\",\n\t\t...SAFE_INTEGER_BIGINT_RANGE\n\t}, {\n\t\ttype: sqliteBigint.id,\n\t\tform: \"text\",\n\t\t...signedRange(64)\n\t}],\n\tfraction: {\n\t\ttype: sqliteReal.id,\n\t\tform: \"number\"\n\t}\n});\nfunction printNumber(value) {\n\treturn typeof value === \"number\" ? numeralText(value) : String(value);\n}\nfunction sqliteDataTypeEntries() {\n\treturn {\n\t\t[sqliteText.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"plain\",\n\t\t\t\tsyntax: \"string\",\n\t\t\t\tparse: (text) => text\n\t\t\t},\n\t\t\tprint: (value) => String(value),\n\t\t\tdocumentation: \"Text.\"\n\t\t},\n\t\t[sqliteReal.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"plain\",\n\t\t\t\tsyntax: \"number\",\n\t\t\t\ttypes: [\n\t\t\t\t\tsqliteInteger.id,\n\t\t\t\t\tsqliteBigint.id,\n\t\t\t\t\tsqliteReal.id\n\t\t\t\t],\n\t\t\t\tclassify: classifySqliteNumber\n\t\t\t},\n\t\t\tprint: printNumber,\n\t\t\tdocumentation: \"A number, whose type comes from its own size and precision.\"\n\t\t},\n\t\t[sqliteJson.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"tag\",\n\t\t\t\ttag: \"json\",\n\t\t\t\tparse: parseJsonBody\n\t\t\t},\n\t\t\tprint: printJsonBody,\n\t\t\tdocumentation: \"Reads the text as a JSON document and stores it as the default value.\"\n\t\t}\n\t};\n}\n//#endregion\nexport { sqliteDataTypeEntries as t };\n\n//# sourceMappingURL=data-type-entries-CL0a2goH.mjs.map"],"mappings":";;;;;;;;;;AAUA,MAAM,uBAAuB,uBAAuB;CACnD,UAAU,CAAC;EACV,MAAM,cAAc;EACpB,MAAM;EACN,GAAG;CACJ,GAAG;EACF,MAAM,aAAa;EACnB,MAAM;EACN,GAAG,YAAY,EAAE;CAClB,CAAC;CACD,UAAU;EACT,MAAM,WAAW;EACjB,MAAM;CACP;AACD,CAAC;AACD,SAAS,YAAY,OAAO;CAC3B,OAAO,OAAO,UAAU,WAAW,YAAY,KAAK,IAAI,OAAO,KAAK;AACrE;AACA,SAAS,wBAAwB;CAChC,OAAO;GACL,WAAW,KAAK;GAChB,SAAS;IACR,MAAM;IACN,QAAQ;IACR,QAAQ,SAAS;GAClB;GACA,QAAQ,UAAU,OAAO,KAAK;GAC9B,eAAe;EAChB;GACC,WAAW,KAAK;GAChB,SAAS;IACR,MAAM;IACN,QAAQ;IACR,OAAO;KACN,cAAc;KACd,aAAa;KACb,WAAW;IACZ;IACA,UAAU;GACX;GACA,OAAO;GACP,eAAe;EAChB;GACC,WAAW,KAAK;GAChB,SAAS;IACR,MAAM;IACN,KAAK;IACL,OAAO;GACR;GACA,OAAO;GACP,eAAe;EAChB;CACD;AACD"}
@@ -0,0 +1,111 @@
1
+ import { structuredError } from "@prisma/orm-framework/utils/structured-error";
2
+ import { numeralText, sqlDataType } from "@prisma/orm-family-sql/contract/data-type";
3
+ import { canonicalDateTime, integerTextCanonicalForm } from "@prisma/orm-family-sql/contract/data-type-support";
4
+ import { type } from "arktype";
5
+ //#region ../../../3-targets/3-targets/sqlite/dist/data-types-Bs4y7eZb.mjs
6
+ const unchanged = (value) => value;
7
+ function wrongShape(value, expected) {
8
+ throw structuredError("CONTRACT.CAST_REFUSED", `Expected ${expected}, got ${JSON.stringify(value)}.`, {
9
+ why: "A cast reads the canonical form of the type it takes values of.",
10
+ fix: "Hand the cast a value in the shape its source type stores."
11
+ });
12
+ }
13
+ const asNumeralText = (value) => typeof value === "number" ? numeralText(value) : wrongShape(value, "a number");
14
+ /**
15
+ * A number as `real` stores it. A magnitude past what a double holds is refused rather than
16
+ * rounded, for the reason the target's other numeric casts give.
17
+ */
18
+ const asReal = (value) => {
19
+ if (typeof value === "number") return value;
20
+ if (typeof value !== "string") return wrongShape(value, "a number or digit text");
21
+ const converted = Number(value);
22
+ if (Number.isFinite(converted)) return converted;
23
+ throw structuredError("CONTRACT.CAST_REFUSED", `${value} is out of range: no double holds a number that large.`, {
24
+ why: "A real stores a double, which holds magnitudes up to about 1.8e308.",
25
+ fix: "Use a number a double holds."
26
+ });
27
+ };
28
+ /** A type written by `name` and nothing else. */
29
+ const writtenAs = (id, name, casts = {}) => sqlDataType(id, {
30
+ texts: [{
31
+ text: name,
32
+ written: true
33
+ }],
34
+ casts
35
+ });
36
+ const sqliteText = writtenAs("sqlite/text", "text");
37
+ const sqliteJson = writtenAs("sqlite/json", "text");
38
+ const sqliteInteger = writtenAs("sqlite/integer", "integer");
39
+ /**
40
+ * The canonical form of `sqlite/datetime` (ADR 254), from ISO 8601 text with a UTC offset. The range
41
+ * and the millisecond precision are those of a JavaScript `Date`, the codec's value.
42
+ */
43
+ const sqliteDatetimeCanonical = (text) => canonicalDateTime(text, {
44
+ shape: "instant",
45
+ dataTypeId: "sqlite/datetime",
46
+ maxFractionDigits: 3,
47
+ range: {
48
+ earliest: "-271821-04-20T00:00:00Z",
49
+ latest: "+275760-09-13T00:00:00Z"
50
+ }
51
+ });
52
+ const datetimeCanonicalForm = (value) => typeof value === "string" ? sqliteDatetimeCanonical(value) : wrongShape(value, "text");
53
+ const sqliteDatetime = sqlDataType("sqlite/datetime", {
54
+ texts: [{
55
+ text: "text",
56
+ written: true
57
+ }],
58
+ toCanonicalForm: datetimeCanonicalForm,
59
+ casts: { [sqliteText.id]: datetimeCanonicalForm }
60
+ });
61
+ const sqliteBlob = writtenAs("sqlite/blob", "blob", { [sqliteText.id]: unchanged });
62
+ const sqliteBigint = sqlDataType("sqlite/bigint", {
63
+ texts: [{
64
+ text: "integer",
65
+ written: true
66
+ }],
67
+ toCanonicalForm: integerTextCanonicalForm,
68
+ casts: { [sqliteInteger.id]: asNumeralText }
69
+ });
70
+ const sqliteReal = writtenAs("sqlite/real", "real", {
71
+ [sqliteInteger.id]: asReal,
72
+ [sqliteBigint.id]: asReal
73
+ });
74
+ /** The length of `character` and `character varying`, which SQLite accepts and does not enforce. */
75
+ const sqliteCharacterLengthParams = type({ "length?": "number.integer >= 1" });
76
+ /** A character type is written without its length, so its normal form has none. */
77
+ const withoutLength = ({ length: _length, ...rest }) => rest;
78
+ const sqliteCharacter = sqlDataType("sqlite/character", {
79
+ params: sqliteCharacterLengthParams,
80
+ texts: [{
81
+ text: "character",
82
+ written: true
83
+ }],
84
+ normalize: withoutLength,
85
+ casts: { [sqliteText.id]: unchanged }
86
+ });
87
+ const sqliteCharacterVarying = sqlDataType("sqlite/character-varying", {
88
+ params: sqliteCharacterLengthParams,
89
+ texts: [{
90
+ text: "character varying",
91
+ written: true
92
+ }],
93
+ normalize: withoutLength,
94
+ casts: { [sqliteText.id]: unchanged }
95
+ });
96
+ /** Every data type this target registers. */
97
+ const sqliteDataTypes = [
98
+ sqliteText,
99
+ sqliteJson,
100
+ sqliteInteger,
101
+ sqliteDatetime,
102
+ sqliteBlob,
103
+ sqliteBigint,
104
+ sqliteReal,
105
+ sqliteCharacter,
106
+ sqliteCharacterVarying
107
+ ];
108
+ //#endregion
109
+ export { sqliteCharacterVarying as a, sqliteDatetimeCanonical as c, sqliteReal as d, sqliteText as f, sqliteCharacterLengthParams as i, sqliteInteger as l, sqliteBlob as n, sqliteDataTypes as o, sqliteCharacter as r, sqliteDatetime as s, sqliteBigint as t, sqliteJson as u };
110
+
111
+ //# sourceMappingURL=data-types-Bs4y7eZb-B00ws2B6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-types-Bs4y7eZb-B00ws2B6.mjs","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/data-types-Bs4y7eZb.mjs"],"sourcesContent":["import { numeralText, sqlDataType } from \"@internal/sql-contract/data-type\";\nimport { canonicalDateTime, integerTextCanonicalForm } from \"@internal/sql-contract/data-type-support\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { type } from \"arktype\";\n//#region src/core/data-types.ts\nconst unchanged = (value) => value;\nfunction wrongShape(value, expected) {\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", `Expected ${expected}, got ${JSON.stringify(value)}.`, {\n\t\twhy: \"A cast reads the canonical form of the type it takes values of.\",\n\t\tfix: \"Hand the cast a value in the shape its source type stores.\"\n\t});\n}\nconst asNumeralText = (value) => typeof value === \"number\" ? numeralText(value) : wrongShape(value, \"a number\");\n/**\n* A number as `real` stores it. A magnitude past what a double holds is refused rather than\n* rounded, for the reason the target's other numeric casts give.\n*/\nconst asReal = (value) => {\n\tif (typeof value === \"number\") return value;\n\tif (typeof value !== \"string\") return wrongShape(value, \"a number or digit text\");\n\tconst converted = Number(value);\n\tif (Number.isFinite(converted)) return converted;\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", `${value} is out of range: no double holds a number that large.`, {\n\t\twhy: \"A real stores a double, which holds magnitudes up to about 1.8e308.\",\n\t\tfix: \"Use a number a double holds.\"\n\t});\n};\n/** A type written by `name` and nothing else. */\nconst writtenAs = (id, name, casts = {}) => sqlDataType(id, {\n\ttexts: [{\n\t\ttext: name,\n\t\twritten: true\n\t}],\n\tcasts\n});\nconst sqliteText = writtenAs(\"sqlite/text\", \"text\");\nconst sqliteJson = writtenAs(\"sqlite/json\", \"text\");\nconst sqliteInteger = writtenAs(\"sqlite/integer\", \"integer\");\n/**\n* The canonical form of `sqlite/datetime` (ADR 254), from ISO 8601 text with a UTC offset. The range\n* and the millisecond precision are those of a JavaScript `Date`, the codec's value.\n*/\nconst sqliteDatetimeCanonical = (text) => canonicalDateTime(text, {\n\tshape: \"instant\",\n\tdataTypeId: \"sqlite/datetime\",\n\tmaxFractionDigits: 3,\n\trange: {\n\t\tearliest: \"-271821-04-20T00:00:00Z\",\n\t\tlatest: \"+275760-09-13T00:00:00Z\"\n\t}\n});\nconst datetimeCanonicalForm = (value) => typeof value === \"string\" ? sqliteDatetimeCanonical(value) : wrongShape(value, \"text\");\nconst sqliteDatetime = sqlDataType(\"sqlite/datetime\", {\n\ttexts: [{\n\t\ttext: \"text\",\n\t\twritten: true\n\t}],\n\ttoCanonicalForm: datetimeCanonicalForm,\n\tcasts: { [sqliteText.id]: datetimeCanonicalForm }\n});\nconst sqliteBlob = writtenAs(\"sqlite/blob\", \"blob\", { [sqliteText.id]: unchanged });\nconst sqliteBigint = sqlDataType(\"sqlite/bigint\", {\n\ttexts: [{\n\t\ttext: \"integer\",\n\t\twritten: true\n\t}],\n\ttoCanonicalForm: integerTextCanonicalForm,\n\tcasts: { [sqliteInteger.id]: asNumeralText }\n});\nconst sqliteReal = writtenAs(\"sqlite/real\", \"real\", {\n\t[sqliteInteger.id]: asReal,\n\t[sqliteBigint.id]: asReal\n});\n/** The length of `character` and `character varying`, which SQLite accepts and does not enforce. */\nconst sqliteCharacterLengthParams = type({ \"length?\": \"number.integer >= 1\" });\n/** A character type is written without its length, so its normal form has none. */\nconst withoutLength = ({ length: _length, ...rest }) => rest;\nconst sqliteCharacter = sqlDataType(\"sqlite/character\", {\n\tparams: sqliteCharacterLengthParams,\n\ttexts: [{\n\t\ttext: \"character\",\n\t\twritten: true\n\t}],\n\tnormalize: withoutLength,\n\tcasts: { [sqliteText.id]: unchanged }\n});\nconst sqliteCharacterVarying = sqlDataType(\"sqlite/character-varying\", {\n\tparams: sqliteCharacterLengthParams,\n\ttexts: [{\n\t\ttext: \"character varying\",\n\t\twritten: true\n\t}],\n\tnormalize: withoutLength,\n\tcasts: { [sqliteText.id]: unchanged }\n});\n/** Every data type this target registers. */\nconst sqliteDataTypes = [\n\tsqliteText,\n\tsqliteJson,\n\tsqliteInteger,\n\tsqliteDatetime,\n\tsqliteBlob,\n\tsqliteBigint,\n\tsqliteReal,\n\tsqliteCharacter,\n\tsqliteCharacterVarying\n];\n//#endregion\nexport { sqliteCharacterVarying as a, sqliteDatetimeCanonical as c, sqliteReal as d, sqliteText as f, sqliteCharacterLengthParams as i, sqliteInteger as l, sqliteBlob as n, sqliteDataTypes as o, sqliteCharacter as r, sqliteDatetime as s, sqliteBigint as t, sqliteJson as u };\n\n//# sourceMappingURL=data-types-Bs4y7eZb.mjs.map"],"mappings":";;;;;AAKA,MAAM,aAAa,UAAU;AAC7B,SAAS,WAAW,OAAO,UAAU;CACpC,MAAM,gBAAgB,yBAAyB,YAAY,SAAS,QAAQ,KAAK,UAAU,KAAK,EAAE,IAAI;EACrG,KAAK;EACL,KAAK;CACN,CAAC;AACF;AACA,MAAM,iBAAiB,UAAU,OAAO,UAAU,WAAW,YAAY,KAAK,IAAI,WAAW,OAAO,UAAU;;;;;AAK9G,MAAM,UAAU,UAAU;CACzB,IAAI,OAAO,UAAU,UAAU,OAAO;CACtC,IAAI,OAAO,UAAU,UAAU,OAAO,WAAW,OAAO,wBAAwB;CAChF,MAAM,YAAY,OAAO,KAAK;CAC9B,IAAI,OAAO,SAAS,SAAS,GAAG,OAAO;CACvC,MAAM,gBAAgB,yBAAyB,GAAG,MAAM,yDAAyD;EAChH,KAAK;EACL,KAAK;CACN,CAAC;AACF;;AAEA,MAAM,aAAa,IAAI,MAAM,QAAQ,CAAC,MAAM,YAAY,IAAI;CAC3D,OAAO,CAAC;EACP,MAAM;EACN,SAAS;CACV,CAAC;CACD;AACD,CAAC;AACD,MAAM,aAAa,UAAU,eAAe,MAAM;AAClD,MAAM,aAAa,UAAU,eAAe,MAAM;AAClD,MAAM,gBAAgB,UAAU,kBAAkB,SAAS;;;;;AAK3D,MAAM,2BAA2B,SAAS,kBAAkB,MAAM;CACjE,OAAO;CACP,YAAY;CACZ,mBAAmB;CACnB,OAAO;EACN,UAAU;EACV,QAAQ;CACT;AACD,CAAC;AACD,MAAM,yBAAyB,UAAU,OAAO,UAAU,WAAW,wBAAwB,KAAK,IAAI,WAAW,OAAO,MAAM;AAC9H,MAAM,iBAAiB,YAAY,mBAAmB;CACrD,OAAO,CAAC;EACP,MAAM;EACN,SAAS;CACV,CAAC;CACD,iBAAiB;CACjB,OAAO,GAAG,WAAW,KAAK,sBAAsB;AACjD,CAAC;AACD,MAAM,aAAa,UAAU,eAAe,QAAQ,GAAG,WAAW,KAAK,UAAU,CAAC;AAClF,MAAM,eAAe,YAAY,iBAAiB;CACjD,OAAO,CAAC;EACP,MAAM;EACN,SAAS;CACV,CAAC;CACD,iBAAiB;CACjB,OAAO,GAAG,cAAc,KAAK,cAAc;AAC5C,CAAC;AACD,MAAM,aAAa,UAAU,eAAe,QAAQ;EAClD,cAAc,KAAK;EACnB,aAAa,KAAK;AACpB,CAAC;;AAED,MAAM,8BAA8B,KAAK,EAAE,WAAW,sBAAsB,CAAC;;AAE7E,MAAM,iBAAiB,EAAE,QAAQ,SAAS,GAAG,WAAW;AACxD,MAAM,kBAAkB,YAAY,oBAAoB;CACvD,QAAQ;CACR,OAAO,CAAC;EACP,MAAM;EACN,SAAS;CACV,CAAC;CACD,WAAW;CACX,OAAO,GAAG,WAAW,KAAK,UAAU;AACrC,CAAC;AACD,MAAM,yBAAyB,YAAY,4BAA4B;CACtE,QAAQ;CACR,OAAO,CAAC;EACP,MAAM;EACN,SAAS;CACV,CAAC;CACD,WAAW;CACX,OAAO,GAAG,WAAW,KAAK,UAAU;AACrC,CAAC;;AAED,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD"}
@@ -0,0 +1,34 @@
1
+ import { DataType } from "@prisma/orm-framework/components/codec";
2
+ import { DataTypeAuthoringEntry } from "@prisma/orm-framework/components/authoring";
3
+ //#region ../../../3-targets/3-targets/sqlite/dist/data-types.d.mts
4
+ //#region src/core/data-type-entries.d.ts
5
+ declare function sqliteDataTypeEntries(): Readonly<Record<string, DataTypeAuthoringEntry>>;
6
+ //#endregion
7
+ //#region src/core/data-types.d.ts
8
+ declare const sqliteText: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<Readonly<Record<string, unknown>>>;
9
+ declare const sqliteJson: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<Readonly<Record<string, unknown>>>;
10
+ declare const sqliteInteger: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<Readonly<Record<string, unknown>>>;
11
+ /**
12
+ * The canonical form of `sqlite/datetime` (ADR 254), from ISO 8601 text with a UTC offset. The range
13
+ * and the millisecond precision are those of a JavaScript `Date`, the codec's value.
14
+ */
15
+ declare const sqliteDatetimeCanonical: (text: string) => string;
16
+ declare const sqliteDatetime: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<Readonly<Record<string, unknown>>>;
17
+ declare const sqliteBlob: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<Readonly<Record<string, unknown>>>;
18
+ declare const sqliteBigint: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<Readonly<Record<string, unknown>>>;
19
+ declare const sqliteReal: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<Readonly<Record<string, unknown>>>;
20
+ /** The length of `character` and `character varying`, which SQLite accepts and does not enforce. */
21
+ declare const sqliteCharacterLengthParams: import("arktype/internal/variants/object.ts").ObjectType<{
22
+ length?: number;
23
+ }, {}>;
24
+ declare const sqliteCharacter: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<{
25
+ length?: number;
26
+ }>;
27
+ declare const sqliteCharacterVarying: import("@prisma/orm-family-sql/contract/data-type").SqlDataType<{
28
+ length?: number;
29
+ }>;
30
+ /** Every data type this target registers. */
31
+ declare const sqliteDataTypes: readonly DataType[];
32
+ //#endregion
33
+ export { sqliteCharacterVarying as a, sqliteDatetime as c, sqliteJson as d, sqliteReal as f, sqliteCharacterLengthParams as i, sqliteDatetimeCanonical as l, sqliteBlob as n, sqliteDataTypeEntries as o, sqliteText as p, sqliteCharacter as r, sqliteDataTypes as s, sqliteBigint as t, sqliteInteger as u };
34
+ //# sourceMappingURL=data-types-ZsgBg_Zg.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-types-ZsgBg_Zg.d.mts","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/data-types.d.mts"],"mappings":";;;;iBAGiB,yBAAyB,SAAS,eAAe;;;cAGpD,uDAAuD,YAAY,SAAS;cAC5E,uDAAuD,YAAY,SAAS;cAC5E,0DAA0D,YAAY,SAAS;;;;;cAK/E,0BAA0B;cAC1B,2DAA2D,YAAY,SAAS;cAChF,uDAAuD,YAAY,SAAS;cAC5E,yDAAyD,YAAY,SAAS;cAC9E,uDAAuD,YAAY,SAAS;;cAE5E,2EAA2E;EACvF;;cAEY,4DAA4D;EACxE;;cAEY,mEAAmE;EAC/E;;;cAGY,0BAA0B"}
@@ -1,24 +1,16 @@
1
- import { t as sqliteTargetDescriptorMetaRuntime } from "./descriptor-meta-runtime-BkXK3OjD-CxZdKHCw.mjs";
1
+ import { t as sqliteDataTypeEntries } from "./data-type-entries-CL0a2goH-BCEztwoX.mjs";
2
+ import { t as sqliteTargetDescriptorMetaRuntime } from "./descriptor-meta-runtime-CIrdwmEr-3T3t3kjc.mjs";
2
3
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
3
4
  import { temporalAuthoringPresets, temporalCodecPreset } from "@prisma/orm-framework/components/authoring";
4
- //#region ../../../3-targets/3-targets/sqlite/dist/descriptor-meta-D1v5O3db.mjs
5
+ //#region ../../../3-targets/3-targets/sqlite/dist/descriptor-meta-AG8POta2.mjs
5
6
  const sqliteAuthoringTypes = { BigIntNumber: {
6
7
  kind: "typeConstructor",
7
8
  documentation: "A SQLite integer represented as a JavaScript number within its safe integer range.",
8
- output: {
9
- codecId: "sqlite/bigintnumber@1",
10
- nativeType: "integer"
11
- }
9
+ output: { codecId: "sqlite/bigintnumber@1" }
12
10
  } };
13
11
  const sqliteAuthoringFieldPresets = { temporal: {
14
- .../* @__PURE__ */ temporalAuthoringPresets({
15
- codecId: "sqlite/datetime@1",
16
- nativeType: "text"
17
- }),
18
- datetime: /* @__PURE__ */ temporalCodecPreset({
19
- codecId: "sqlite/datetime@1",
20
- nativeType: "text"
21
- })
12
+ .../* @__PURE__ */ temporalAuthoringPresets({ codecId: "sqlite/datetime@1" }),
13
+ datetime: /* @__PURE__ */ temporalCodecPreset({ codecId: "sqlite/datetime@1" })
22
14
  } };
23
15
  const sqliteTargetDescriptorMeta = {
24
16
  ...sqliteTargetDescriptorMetaRuntime,
@@ -26,10 +18,11 @@ const sqliteTargetDescriptorMeta = {
26
18
  supportsNamespaces: false,
27
19
  authoring: {
28
20
  type: sqliteAuthoringTypes,
29
- field: sqliteAuthoringFieldPresets
21
+ field: sqliteAuthoringFieldPresets,
22
+ dataTypes: sqliteDataTypeEntries()
30
23
  }
31
24
  };
32
25
  //#endregion
33
26
  export { sqliteTargetDescriptorMeta as t };
34
27
 
35
- //# sourceMappingURL=descriptor-meta-D1v5O3db-BN-I6Xfn.mjs.map
28
+ //# sourceMappingURL=descriptor-meta-AG8POta2-D-k13ZOE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor-meta-AG8POta2-D-k13ZOE.mjs","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/descriptor-meta-AG8POta2.mjs"],"sourcesContent":["import { t as sqliteDataTypeEntries } from \"./data-type-entries-CL0a2goH.mjs\";\nimport { t as sqliteTargetDescriptorMetaRuntime } from \"./descriptor-meta-runtime-CIrdwmEr.mjs\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { temporalAuthoringPresets, temporalCodecPreset } from \"@internal/framework-components/authoring\";\n//#region src/core/authoring.ts\nconst sqliteAuthoringTypes = { BigIntNumber: {\n\tkind: \"typeConstructor\",\n\tdocumentation: \"A SQLite integer represented as a JavaScript number within its safe integer range.\",\n\toutput: { codecId: \"sqlite/bigintnumber@1\" }\n} };\nconst sqliteAuthoringFieldPresets = { temporal: {\n\t.../* @__PURE__ */ temporalAuthoringPresets({ codecId: \"sqlite/datetime@1\" }),\n\tdatetime: /* @__PURE__ */ temporalCodecPreset({ codecId: \"sqlite/datetime@1\" })\n} };\nconst sqliteTargetDescriptorMeta = {\n\t...sqliteTargetDescriptorMetaRuntime,\n\tdefaultNamespaceId: UNBOUND_NAMESPACE_ID,\n\tsupportsNamespaces: false,\n\tauthoring: {\n\t\ttype: sqliteAuthoringTypes,\n\t\tfield: sqliteAuthoringFieldPresets,\n\t\tdataTypes: sqliteDataTypeEntries()\n\t}\n};\n//#endregion\nexport { sqliteTargetDescriptorMeta as t };\n\n//# sourceMappingURL=descriptor-meta-AG8POta2.mjs.map"],"mappings":";;;;;AAKA,MAAM,uBAAuB,EAAE,cAAc;CAC5C,MAAM;CACN,eAAe;CACf,QAAQ,EAAE,SAAS,wBAAwB;AAC5C,EAAE;AACF,MAAM,8BAA8B,EAAE,UAAU;CAC/C,GAAmB,yCAAyB,EAAE,SAAS,oBAAoB,CAAC;CAC5E,UAA0B,oCAAoB,EAAE,SAAS,oBAAoB,CAAC;AAC/E,EAAE;AACF,MAAM,6BAA6B;CAClC,GAAG;CACH,oBAAoB;CACpB,oBAAoB;CACpB,WAAW;EACV,MAAM;EACN,OAAO;EACP,WAAW,sBAAsB;CAClC;AACD"}
@@ -1,7 +1,6 @@
1
1
  import { t as sqliteAggregateDescriptors } from "./aggregates-CATLYJxc.mjs";
2
- import { r as sqliteDataTypes } from "./data-types-B6gYWauJ-DPJUc7_Z.mjs";
3
- import { a as sqliteCodecRegistry } from "./codecs-BXELYOY1.mjs";
4
- //#region ../../../3-targets/6-adapters/sqlite/dist/descriptor-meta-CqCH7n4c.mjs
2
+ import { a as sqliteCodecRegistry } from "./codecs-DlI8SadA.mjs";
3
+ //#region ../../../3-targets/6-adapters/sqlite/dist/descriptor-meta-CFPBLIHW.mjs
5
4
  const sqliteAdapterDescriptorMeta = {
6
5
  kind: "adapter",
7
6
  familyId: "sql",
@@ -19,11 +18,10 @@ const sqliteAdapterDescriptorMeta = {
19
18
  insertOnConflictSkip: true,
20
19
  insertOnConflictWithoutTarget: true
21
20
  } },
22
- dataTypes: sqliteDataTypes,
23
21
  types: {
24
22
  aggregateDescriptors: sqliteAggregateDescriptors,
25
23
  codecTypes: {
26
- codecDescriptors: Array.from(sqliteCodecRegistry.values()).filter((d) => d.renderOutputType === void 0),
24
+ codecDescriptors: Array.from(sqliteCodecRegistry.values()),
27
25
  import: {
28
26
  package: "@internal/adapter-sqlite/codec-types",
29
27
  named: "CodecTypes",
@@ -35,4 +33,4 @@ const sqliteAdapterDescriptorMeta = {
35
33
  //#endregion
36
34
  export { sqliteAdapterDescriptorMeta as t };
37
35
 
38
- //# sourceMappingURL=descriptor-meta-CqCH7n4c-Bx_S6IIu.mjs.map
36
+ //# sourceMappingURL=descriptor-meta-CFPBLIHW-BwigY92R.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor-meta-CFPBLIHW-BwigY92R.mjs","names":[],"sources":["../../../../3-targets/6-adapters/sqlite/dist/descriptor-meta-CFPBLIHW.mjs"],"sourcesContent":["import { sqliteCodecRegistry } from \"@internal/target-sqlite/codecs\";\nimport { sqliteAggregateDescriptors } from \"@internal/target-sqlite/aggregates\";\n//#region src/core/descriptor-meta.ts\nconst sqliteAdapterDescriptorMeta = {\n\tkind: \"adapter\",\n\tfamilyId: \"sql\",\n\ttargetId: \"sqlite\",\n\tid: \"sqlite\",\n\tversion: \"0.0.1\",\n\tcapabilities: { sql: {\n\t\torderBy: true,\n\t\tlimit: true,\n\t\tlateral: false,\n\t\tjsonAgg: true,\n\t\treturning: true,\n\t\tforeignKeys: true,\n\t\tenums: false,\n\t\tinsertOnConflictSkip: true,\n\t\tinsertOnConflictWithoutTarget: true\n\t} },\n\ttypes: {\n\t\taggregateDescriptors: sqliteAggregateDescriptors,\n\t\tcodecTypes: {\n\t\t\tcodecDescriptors: Array.from(sqliteCodecRegistry.values()),\n\t\t\timport: {\n\t\t\t\tpackage: \"@internal/adapter-sqlite/codec-types\",\n\t\t\t\tnamed: \"CodecTypes\",\n\t\t\t\talias: \"SqliteTypes\"\n\t\t\t}\n\t\t}\n\t}\n};\n//#endregion\nexport { sqliteAdapterDescriptorMeta as t };\n\n//# sourceMappingURL=descriptor-meta-CFPBLIHW.mjs.map"],"mappings":";;;AAGA,MAAM,8BAA8B;CACnC,MAAM;CACN,UAAU;CACV,UAAU;CACV,IAAI;CACJ,SAAS;CACT,cAAc,EAAE,KAAK;EACpB,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,WAAW;EACX,aAAa;EACb,OAAO;EACP,sBAAsB;EACtB,+BAA+B;CAChC,EAAE;CACF,OAAO;EACN,sBAAsB;EACtB,YAAY;GACX,kBAAkB,MAAM,KAAK,oBAAoB,OAAO,CAAC;GACzD,QAAQ;IACP,SAAS;IACT,OAAO;IACP,OAAO;GACR;EACD;CACD;AACD"}
@@ -1,13 +1,15 @@
1
- //#region ../../../3-targets/3-targets/sqlite/dist/descriptor-meta-runtime-BkXK3OjD.mjs
1
+ import { o as sqliteDataTypes } from "./data-types-Bs4y7eZb-B00ws2B6.mjs";
2
+ //#region ../../../3-targets/3-targets/sqlite/dist/descriptor-meta-runtime-CIrdwmEr.mjs
2
3
  const sqliteTargetDescriptorMetaRuntime = {
3
4
  kind: "target",
4
5
  familyId: "sql",
5
6
  targetId: "sqlite",
6
7
  id: "sqlite",
7
8
  version: "0.0.1",
8
- capabilities: {}
9
+ capabilities: {},
10
+ dataTypes: sqliteDataTypes
9
11
  };
10
12
  //#endregion
11
13
  export { sqliteTargetDescriptorMetaRuntime as t };
12
14
 
13
- //# sourceMappingURL=descriptor-meta-runtime-BkXK3OjD-CxZdKHCw.mjs.map
15
+ //# sourceMappingURL=descriptor-meta-runtime-CIrdwmEr-3T3t3kjc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor-meta-runtime-CIrdwmEr-3T3t3kjc.mjs","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/descriptor-meta-runtime-CIrdwmEr.mjs"],"sourcesContent":["import { o as sqliteDataTypes } from \"./data-types-Bs4y7eZb.mjs\";\nconst sqliteTargetDescriptorMetaRuntime = {\n\tkind: \"target\",\n\tfamilyId: \"sql\",\n\ttargetId: \"sqlite\",\n\tid: \"sqlite\",\n\tversion: \"0.0.1\",\n\tcapabilities: {},\n\tdataTypes: sqliteDataTypes\n};\n//#endregion\nexport { sqliteTargetDescriptorMetaRuntime as t };\n\n//# sourceMappingURL=descriptor-meta-runtime-CIrdwmEr.mjs.map"],"mappings":";;AACA,MAAM,oCAAoC;CACzC,MAAM;CACN,UAAU;CACV,UAAU;CACV,IAAI;CACJ,SAAS;CACT,cAAc,CAAC;CACf,WAAW;AACZ"}
@@ -1,5 +1,5 @@
1
1
  import { t as buildTargetDetails } from "./planner-target-details-CIQ789Gc-C5U4yVY9.mjs";
2
- import { v as step } from "./op-factory-call-CfKnEpob-DTd2gbc-.mjs";
2
+ import { v as step } from "./op-factory-call-V6Wu86U8-B1Y4idhr.mjs";
3
3
  import { col as col$1, fn as fn$1, foreignKey, lit as lit$1, primaryKey, unique } from "@prisma/orm-family-sql/relational-core/contract-free";
4
4
  import { placeholder } from "@prisma/orm-framework/errors/migration";
5
5
  import { MigrationCLI } from "@prisma/orm-toolchain/cli/migration-cli";
@@ -44,4 +44,4 @@ function rawSql(op) {
44
44
  //#endregion
45
45
  export { foreignKey as a, primaryKey as c, fn$1 as i, rawSql as l, col$1 as n, lit$1 as o, dataTransform as r, placeholder as s, MigrationCLI as t, unique as u };
46
46
 
47
- //# sourceMappingURL=migration-EUIIVcIm.mjs.map
47
+ //# sourceMappingURL=migration-BA5np0wx.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-EUIIVcIm.mjs","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/migration.mjs"],"sourcesContent":["import { h as step } from \"./op-factory-call-CfKnEpob.mjs\";\nimport { t as SqliteMigration } from \"./sqlite-migration-BZqbD0_M.mjs\";\nimport { t as buildTargetDetails } from \"./planner-target-details-CIQ789Gc.mjs\";\nimport { placeholder } from \"@internal/errors/migration\";\nimport { col, fn, foreignKey, lit, primaryKey, unique } from \"@internal/sql-relational-core/contract-free\";\nimport { MigrationCLI } from \"@internal/cli/migration-cli\";\n//#region src/core/migrations/operations/data-transform.ts\n/**\n* User-facing `dataTransform` factory for the SQLite migration authoring\n* surface. Invoked directly inside a `migration.ts` file to supply a\n* user-authored SQL statement that runs with operation class `'data'`.\n*\n* Typical use: the planner emits a `DataTransformCall` stub when a NOT NULL\n* tightening requires a backfill. The rendered `migration.ts` exposes the\n* backfill as a `placeholder(\"…\")` slot the user fills in with an\n* `UPDATE … WHERE col IS NULL` statement. The filled-in `dataTransform(...)`\n* invocation returns a runnable operation the runner executes before the\n* subsequent recreate-table op copies data into the tightened schema.\n*/\nfunction dataTransform(opts) {\n\treturn {\n\t\tid: opts.id,\n\t\tlabel: opts.label,\n\t\tsummary: opts.description,\n\t\toperationClass: \"data\",\n\t\ttarget: {\n\t\t\tid: \"sqlite\",\n\t\t\tdetails: buildTargetDetails(\"table\", opts.table)\n\t\t},\n\t\tprecheck: [],\n\t\texecute: [step(opts.description, opts.run())],\n\t\tpostcheck: []\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/raw.ts\n/**\n* Identity factory for an already-materialized\n* `SqlMigrationPlanOperation<SqlitePlanTargetDetails>`. Mirrors the Postgres\n* `rawSql` factory: the planner uses this to carry ops produced by SQL-family\n* paths (codec lifecycle hooks, raw-SQL escape hatches) alongside structured\n* call IR without reverse-engineering their shape.\n*/\nfunction rawSql(op) {\n\treturn op;\n}\n//#endregion\nexport { SqliteMigration as Migration, MigrationCLI, col, dataTransform, fn, foreignKey, lit, placeholder, primaryKey, rawSql, unique };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,SAAS,cAAc,MAAM;CAC5B,OAAO;EACN,IAAI,KAAK;EACT,OAAO,KAAK;EACZ,SAAS,KAAK;EACd,gBAAgB;EAChB,QAAQ;GACP,IAAI;GACJ,SAAS,mBAAmB,SAAS,KAAK,KAAK;EAChD;EACA,UAAU,CAAC;EACX,SAAS,CAAC,KAAK,KAAK,aAAa,KAAK,IAAI,CAAC,CAAC;EAC5C,WAAW,CAAC;CACb;AACD;;;;;;;;AAUA,SAAS,OAAO,IAAI;CACnB,OAAO;AACR"}
1
+ {"version":3,"file":"migration-BA5np0wx.mjs","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/migration.mjs"],"sourcesContent":["import { h as step } from \"./op-factory-call-V6Wu86U8.mjs\";\nimport { t as SqliteMigration } from \"./sqlite-migration-CindFauZ.mjs\";\nimport { t as buildTargetDetails } from \"./planner-target-details-CIQ789Gc.mjs\";\nimport { placeholder } from \"@internal/errors/migration\";\nimport { col, fn, foreignKey, lit, primaryKey, unique } from \"@internal/sql-relational-core/contract-free\";\nimport { MigrationCLI } from \"@internal/cli/migration-cli\";\n//#region src/core/migrations/operations/data-transform.ts\n/**\n* User-facing `dataTransform` factory for the SQLite migration authoring\n* surface. Invoked directly inside a `migration.ts` file to supply a\n* user-authored SQL statement that runs with operation class `'data'`.\n*\n* Typical use: the planner emits a `DataTransformCall` stub when a NOT NULL\n* tightening requires a backfill. The rendered `migration.ts` exposes the\n* backfill as a `placeholder(\"…\")` slot the user fills in with an\n* `UPDATE … WHERE col IS NULL` statement. The filled-in `dataTransform(...)`\n* invocation returns a runnable operation the runner executes before the\n* subsequent recreate-table op copies data into the tightened schema.\n*/\nfunction dataTransform(opts) {\n\treturn {\n\t\tid: opts.id,\n\t\tlabel: opts.label,\n\t\tsummary: opts.description,\n\t\toperationClass: \"data\",\n\t\ttarget: {\n\t\t\tid: \"sqlite\",\n\t\t\tdetails: buildTargetDetails(\"table\", opts.table)\n\t\t},\n\t\tprecheck: [],\n\t\texecute: [step(opts.description, opts.run())],\n\t\tpostcheck: []\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/raw.ts\n/**\n* Identity factory for an already-materialized\n* `SqlMigrationPlanOperation<SqlitePlanTargetDetails>`. Mirrors the Postgres\n* `rawSql` factory: the planner uses this to carry ops produced by SQL-family\n* paths (codec lifecycle hooks, raw-SQL escape hatches) alongside structured\n* call IR without reverse-engineering their shape.\n*/\nfunction rawSql(op) {\n\treturn op;\n}\n//#endregion\nexport { SqliteMigration as Migration, MigrationCLI, col, dataTransform, fn, foreignKey, lit, placeholder, primaryKey, rawSql, unique };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,SAAS,cAAc,MAAM;CAC5B,OAAO;EACN,IAAI,KAAK;EACT,OAAO,KAAK;EACZ,SAAS,KAAK;EACd,gBAAgB;EAChB,QAAQ;GACP,IAAI;GACJ,SAAS,mBAAmB,SAAS,KAAK,KAAK;EAChD;EACA,UAAU,CAAC;EACX,SAAS,CAAC,KAAK,KAAK,aAAa,KAAK,IAAI,CAAC,CAAC;EAC5C,WAAW,CAAC;CACb;AACD;;;;;;;;AAUA,SAAS,OAAO,IAAI;CACnB,OAAO;AACR"}
@@ -1,5 +1,5 @@
1
1
  import { n as sqliteError } from "./errors-DnR-sMHS-KkMLIP2U.mjs";
2
- import { n as decodeSqliteDatetime, r as encodeSqliteDatetime } from "./codecs-yYxIwGIT-BHW7sSHn.mjs";
2
+ import { n as decodeSqliteDatetime, r as encodeSqliteDatetime } from "./codecs-r7gY3BuR-B6lXeFyH.mjs";
3
3
  import { i as tableExistsAst, n as createTable, r as indexExistsAst, t as columnExistsAst } from "./ddl-CXduXyOT-nlDP6DGx.mjs";
4
4
  import { r as stripOuterParens } from "./default-normalizer-Czg-VtmN-DEbkGbn7.mjs";
5
5
  import { n as quoteIdentifier, t as escapeLiteral } from "./sql-utils-C2O4zVkP-Dz3Hb85I.mjs";
@@ -7,26 +7,31 @@ import { t as buildTargetDetails } from "./planner-target-details-CIQ789Gc-C5U4y
7
7
  import { DdlColumn, FunctionColumnDefault, LiteralColumnDefault, opaqueSql } from "@prisma/orm-family-sql/relational-core/ast";
8
8
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
9
9
  import { blindCast } from "@prisma/orm-framework/utils/casts";
10
+ import { dataTypeParams, renderSqlTypeName, sqlDataTypeOfCodec } from "@prisma/orm-family-sql/contract/data-type";
10
11
  import { issueOutcome } from "@prisma/orm-framework/components/control";
11
12
  import { RelationalSchemaNodeKind } from "@prisma/orm-family-sql/schema-ir/types";
12
13
  import { assertNever } from "@prisma/orm-framework/utils/internal-error";
13
14
  import { errorMigrationOperationOptionRemoved, errorUnfilledPlaceholder } from "@prisma/orm-framework/errors/migration";
14
15
  import { REFERENTIAL_ACTION_SQL } from "@prisma/orm-family-sql/contract/referential-action-sql";
15
16
  import { TsExpression, jsonToTsSource, tsArraySource, tsObjectSource, tsQuotedTextSource } from "@prisma/orm-framework/ts-render";
16
- //#region ../../../3-targets/3-targets/sqlite/dist/op-factory-call-CfKnEpob.mjs
17
- const SAFE_NATIVE_TYPE_PATTERN = /^[a-zA-Z][a-zA-Z0-9_ ]*$/;
18
- function assertSafeNativeType(nativeType) {
19
- if (!SAFE_NATIVE_TYPE_PATTERN.test(nativeType)) throw sqliteError("CONTRACT.NATIVE_TYPE_INVALID", `Unsafe native type name in contract: "${nativeType}". Native type names must match /^[a-zA-Z][a-zA-Z0-9_ ]*\$/`, { meta: { nativeType } });
20
- }
17
+ //#region ../../../3-targets/3-targets/sqlite/dist/op-factory-call-V6Wu86U8.mjs
18
+ /**
19
+ * Low-level DDL fragment builders for SQLite migrations.
20
+ *
21
+ * These helpers consume `StorageColumn` (the contract shape, possibly with
22
+ * `typeRef`) and produce string fragments. They are called once per column
23
+ * at the call-construction boundary in `issue-planner.ts` / strategies to
24
+ * build flat `SqliteColumnSpec`s; the operation factories themselves never
25
+ * see `StorageColumn` or `storageTypes`.
26
+ */
21
27
  /**
22
- * Renders the column's DDL type token (e.g. `"INTEGER"`, `"TEXT"`).
23
- * Resolves `typeRef` against `storageTypes` and validates the resulting
24
- * native type against a safe-identifier pattern.
28
+ * Renders the column's DDL type token (e.g. `"INTEGER"`, `"TEXT"`): the name the data type of its
29
+ * codec is written with, in upper case. Resolves `typeRef` against `storageTypes`.
25
30
  */
26
- function buildColumnTypeSql(column, storageTypes = {}) {
31
+ function buildColumnTypeSql(column, types, storageTypes = {}) {
27
32
  const resolved = resolveColumnTypeMetadata(column, storageTypes);
28
- assertSafeNativeType(resolved.nativeType);
29
- return resolved.nativeType.toUpperCase();
33
+ const dataType = sqlDataTypeOfCodec(resolved.codecId, types);
34
+ return renderSqlTypeName(dataType, dataTypeParams(dataType, resolved.typeParams)).toUpperCase();
30
35
  }
31
36
  /**
32
37
  * A datetime default is the stored value itself in SQLite, which compares text byte by byte, so it
@@ -1006,4 +1011,4 @@ function renderPostcheck(postcheck) {
1006
1011
  //#endregion
1007
1012
  export { sqliteIdentifiersCollide as _, DropColumnCall as a, RawSqlCall as c, buildColumnTypeSql as d, buildRecreatePostchecks as f, sqliteDefaultToDdlColumnDefault as g, renderDefaultLiteral as h, DataTransformCall as i, RecreateTableCall as l, renameTableSteps as m, CreateIndexCall as n, DropIndexCall as o, buildRecreateSummary as p, CreateTableCall as r, DropTableCall as s, AddColumnCall as t, RenameTableCall as u, step as v };
1008
1013
 
1009
- //# sourceMappingURL=op-factory-call-CfKnEpob-DTd2gbc-.mjs.map
1014
+ //# sourceMappingURL=op-factory-call-V6Wu86U8-B1Y4idhr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op-factory-call-V6Wu86U8-B1Y4idhr.mjs","names":[],"sources":["../../../../3-targets/3-targets/sqlite/dist/op-factory-call-V6Wu86U8.mjs"],"sourcesContent":["import \"./codec-ids-KMliSCRp.mjs\";\nimport { n as sqliteError } from \"./errors-DnR-sMHS.mjs\";\nimport { n as decodeSqliteDatetime, r as encodeSqliteDatetime } from \"./codecs-r7gY3BuR.mjs\";\nimport { r as stripOuterParens } from \"./default-normalizer-Czg-VtmN.mjs\";\nimport { n as quoteIdentifier, t as escapeLiteral } from \"./sql-utils-C2O4zVkP.mjs\";\nimport { i as tableExistsAst, n as columnExistsAst, r as indexExistsAst, t as createTable } from \"./ddl-CXduXyOT.mjs\";\nimport { t as buildTargetDetails } from \"./planner-target-details-CIQ789Gc.mjs\";\nimport { DdlColumn, FunctionColumnDefault, LiteralColumnDefault, opaqueSql } from \"@internal/sql-relational-core/ast\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { dataTypeParams, renderSqlTypeName, sqlDataTypeOfCodec } from \"@internal/sql-contract/data-type\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { issueOutcome } from \"@internal/framework-components/control\";\nimport { RelationalSchemaNodeKind } from \"@internal/sql-schema-ir/types\";\nimport { assertNever } from \"@internal/utils/internal-error\";\nimport { errorMigrationOperationOptionRemoved, errorUnfilledPlaceholder } from \"@internal/errors/migration\";\nimport { REFERENTIAL_ACTION_SQL } from \"@internal/sql-contract/referential-action-sql\";\nimport { TsExpression, jsonToTsSource, tsArraySource, tsObjectSource, tsQuotedTextSource } from \"@internal/ts-render\";\n//#region src/core/migrations/planner-ddl-builders.ts\n/**\n* Low-level DDL fragment builders for SQLite migrations.\n*\n* These helpers consume `StorageColumn` (the contract shape, possibly with\n* `typeRef`) and produce string fragments. They are called once per column\n* at the call-construction boundary in `issue-planner.ts` / strategies to\n* build flat `SqliteColumnSpec`s; the operation factories themselves never\n* see `StorageColumn` or `storageTypes`.\n*/\n/**\n* Renders the column's DDL type token (e.g. `\"INTEGER\"`, `\"TEXT\"`): the name the data type of its\n* codec is written with, in upper case. Resolves `typeRef` against `storageTypes`.\n*/\nfunction buildColumnTypeSql(column, types, storageTypes = {}) {\n\tconst resolved = resolveColumnTypeMetadata(column, storageTypes);\n\tconst dataType = sqlDataTypeOfCodec(resolved.codecId, types);\n\treturn renderSqlTypeName(dataType, dataTypeParams(dataType, resolved.typeParams)).toUpperCase();\n}\n/**\n* A datetime default is the stored value itself in SQLite, which compares text byte by byte, so it\n* is written as the text the column's codec writes for every row, not as its canonical form.\n*/\nfunction renderDefaultLiteral(value, codecId) {\n\tif (value instanceof Date) return `'${escapeLiteral(encodeSqliteDatetime(value))}'`;\n\tif (typeof value === \"string\" && codecId === \"sqlite/datetime@1\") return `'${escapeLiteral(encodeSqliteDatetime(decodeSqliteDatetime(value)))}'`;\n\tif (typeof value === \"string\") return `'${escapeLiteral(value)}'`;\n\tif (typeof value === \"number\" || typeof value === \"bigint\") return String(value);\n\tif (typeof value === \"boolean\") return value ? \"1\" : \"0\";\n\tif (value === null) return \"NULL\";\n\treturn `'${escapeLiteral(JSON.stringify(value))}'`;\n}\nfunction buildCreateIndexSql(tableName, indexName, columns, unique = false) {\n\treturn `CREATE ${unique ? \"UNIQUE \" : \"\"}INDEX ${quoteIdentifier(indexName)} ON ${quoteIdentifier(tableName)} (${columns.map(quoteIdentifier).join(\", \")})`;\n}\nfunction buildDropIndexSql(indexName) {\n\treturn `DROP INDEX IF EXISTS ${quoteIdentifier(indexName)}`;\n}\nfunction resolveColumnTypeMetadata(column, storageTypes) {\n\tif (!column.typeRef) return column;\n\tconst referencedType = storageTypes[column.typeRef];\n\tif (!referencedType) throw sqliteError(\"CONTRACT.TYPE_UNKNOWN\", `Storage type \"${column.typeRef}\" referenced by column is not defined in storage.types.`, { meta: { typeRef: column.typeRef } });\n\treturn {\n\t\tcodecId: referencedType.codecId,\n\t\tnativeType: referencedType.nativeType,\n\t\ttypeParams: referencedType.typeParams\n\t};\n}\n//#endregion\n//#region src/core/migrations/identifier-case.ts\nfunction foldAsciiLetters(identifier) {\n\treturn identifier.replace(/[A-Z]/g, (letter) => letter.toLowerCase());\n}\n/**\n* Whether SQLite takes two identifiers for the same name. It compares table and index names without regard to the case of ASCII letters, and compares every other character exactly.\n*/\nfunction sqliteIdentifiersCollide(left, right) {\n\treturn foldAsciiLetters(left) === foldAsciiLetters(right);\n}\n//#endregion\n//#region src/core/migrations/operations/shared.ts\nfunction step(description, sql, params) {\n\treturn {\n\t\tdescription,\n\t\tsql,\n\t\t...ifDefined(\"params\", params)\n\t};\n}\n/** The DDL default of a contract default: `autoincrement()` is written as part of the column's type instead. */\nfunction sqliteDefaultToDdlColumnDefault(columnDefault) {\n\tif (!columnDefault) return void 0;\n\tswitch (columnDefault.kind) {\n\t\tcase \"literal\": return new LiteralColumnDefault(columnDefault.value);\n\t\tcase \"function\":\n\t\t\tif (columnDefault.expression === \"autoincrement()\") return void 0;\n\t\t\treturn new FunctionColumnDefault(opaqueSql(columnDefault.expression));\n\t\tdefault: {\n\t\t\tconst exhaustive = columnDefault;\n\t\t\treturn assertNever(exhaustive, `sqliteDefaultToDdlColumnDefault: unhandled kind \"${blindCast(exhaustive).kind}\"`);\n\t\t}\n\t}\n}\n/**\n* A column spec an earlier version wrote carries its default as SQL text in `defaultSql`, empty when it has none.\n*/\nfunction refuseEarlierColumnSpecs(operation, tableName, columns) {\n\tconst earlier = columns.find((column) => Object.hasOwn(column, \"defaultSql\"));\n\tif (earlier === void 0) return;\n\tthrow errorMigrationOperationOptionRemoved({\n\t\toperation,\n\t\toption: \"defaultSql\",\n\t\tsubject: `column ${JSON.stringify(earlier.name)} of table ${JSON.stringify(tableName)}`,\n\t\trewrite: \"Write the column's default as `default: { kind: 'literal', value }` or `default: { kind: 'function', expression }`, with the column's `codecRef`, in place of `defaultSql`, and delete an empty `defaultSql`.\",\n\t\tupgradeEntry: \"migration-ts-column-defaults\"\n\t});\n}\n/** The `DEFAULT …` clause the adapter writes for a column spec, `''` when it has none. */\nfunction renderSpecDefault$1(column, tableName, lowerer) {\n\tconst ddlDefault = column.inlineAutoincrementPrimaryKey ? void 0 : sqliteDefaultToDdlColumnDefault(column.default);\n\treturn lowerer.renderColumnDefault(new DdlColumn({\n\t\tname: column.name,\n\t\ttype: column.typeSql,\n\t\t...ifDefined(\"default\", ddlDefault),\n\t\t...ifDefined(\"codecRef\", column.codecRef)\n\t}), tableName);\n}\n/**\n* Renders a single column's inline DDL fragment within a `CREATE TABLE`\n* statement. Honours the `inlineAutoincrementPrimaryKey` flag — SQLite\n* treats `INTEGER PRIMARY KEY AUTOINCREMENT` as a special form that aliases\n* `rowid`, and the column must not carry a `DEFAULT` or repeat `NOT NULL`.\n*/\nfunction renderColumnDefinition(column, defaultClause) {\n\tconst parts = [quoteIdentifier(column.name), column.typeSql];\n\tif (column.inlineAutoincrementPrimaryKey) parts.push(\"PRIMARY KEY AUTOINCREMENT\");\n\telse {\n\t\tif (defaultClause) parts.push(defaultClause);\n\t\tif (!column.nullable) parts.push(\"NOT NULL\");\n\t}\n\treturn parts.join(\" \");\n}\n/**\n* Renders an inline FOREIGN KEY constraint clause for a `CREATE TABLE`\n* body. Every `SqliteForeignKeySpec` is constraint-bearing by construction\n* (`tableSpecFromNode` only ever builds specs from schema-IR FK nodes, which\n* are themselves constraint-only — a non-constraint FK contributes no node).\n*/\nfunction renderForeignKeyClause(fk) {\n\tlet sql = `${fk.name ? `CONSTRAINT ${quoteIdentifier(fk.name)} ` : \"\"}FOREIGN KEY (${fk.columns.map(quoteIdentifier).join(\", \")}) REFERENCES ${quoteIdentifier(fk.references.table)} (${fk.references.columns.map(quoteIdentifier).join(\", \")})`;\n\tif (fk.onDelete !== void 0) sql += ` ON DELETE ${REFERENTIAL_ACTION_SQL[fk.onDelete]}`;\n\tif (fk.onUpdate !== void 0) sql += ` ON UPDATE ${REFERENTIAL_ACTION_SQL[fk.onUpdate]}`;\n\treturn sql;\n}\n//#endregion\n//#region src/core/migrations/operations/columns.ts\nfunction addColumnExecuteSql(tableName, column, defaultClause) {\n\treturn [\n\t\t`ALTER TABLE ${quoteIdentifier(tableName)}`,\n\t\t`ADD COLUMN ${quoteIdentifier(column.name)} ${column.typeSql}`,\n\t\tdefaultClause,\n\t\tcolumn.nullable ? \"\" : \"NOT NULL\"\n\t].filter(Boolean).join(\" \");\n}\nfunction dropColumnExecuteSql(tableName, columnName) {\n\treturn `ALTER TABLE ${quoteIdentifier(tableName)} DROP COLUMN ${quoteIdentifier(columnName)}`;\n}\nasync function addColumn(tableName, column, lowerer) {\n\trefuseEarlierColumnSpecs(\"addColumn\", tableName, [column]);\n\tconst defaultClause = await renderSpecDefault$1(column, tableName, lowerer);\n\tconst checks = columnExistsAst(tableName, column.name);\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.columnAbsent());\n\tconst present = await lowerer.lowerToExecuteRequest(checks.columnPresent());\n\treturn {\n\t\tid: `column.${tableName}.${column.name}`,\n\t\tlabel: `Add column ${column.name} on ${tableName}`,\n\t\tsummary: `Adds column ${column.name} on ${tableName}`,\n\t\toperationClass: \"additive\",\n\t\ttarget: {\n\t\t\tid: \"sqlite\",\n\t\t\tdetails: buildTargetDetails(\"column\", column.name, tableName)\n\t\t},\n\t\tprecheck: [step(`ensure column \"${column.name}\" is missing`, absent.sql, absent.params)],\n\t\texecute: [step(`add column \"${column.name}\"`, addColumnExecuteSql(tableName, column, defaultClause))],\n\t\tpostcheck: [step(`verify column \"${column.name}\" exists`, present.sql, present.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/tables.ts\nasync function tableExistsSteps(lowerer, tableName) {\n\tconst checks = tableExistsAst(tableName);\n\treturn {\n\t\tpresent: await lowerer.lowerToExecuteRequest(checks.tablePresent()),\n\t\tabsent: await lowerer.lowerToExecuteRequest(checks.tableAbsent())\n\t};\n}\n/**\n* Renders the body of a `CREATE TABLE <name> ( … )` statement from a flat\n* `SqliteTableSpec`. SQLite's `INTEGER PRIMARY KEY AUTOINCREMENT` form is\n* inline on the column; the table-level PRIMARY KEY clause is emitted only\n* when no column carries `inlineAutoincrementPrimaryKey`.\n*/\nfunction renderCreateTableSql(tableName, spec, defaultClauses) {\n\tconst columnDefs = spec.columns.map((column, index) => renderColumnDefinition(column, defaultClauses[index] ?? \"\"));\n\tconst constraintDefs = [];\n\tconst hasInlinePk = spec.columns.some((c) => c.inlineAutoincrementPrimaryKey);\n\tif (spec.primaryKey && !hasInlinePk) constraintDefs.push(`PRIMARY KEY (${spec.primaryKey.columns.map(quoteIdentifier).join(\", \")})`);\n\tfor (const u of spec.uniques ?? []) {\n\t\tconst name = u.name ? `CONSTRAINT ${quoteIdentifier(u.name)} ` : \"\";\n\t\tconstraintDefs.push(`${name}UNIQUE (${u.columns.map(quoteIdentifier).join(\", \")})`);\n\t}\n\tfor (const fk of spec.foreignKeys ?? []) {\n\t\tconst clause = renderForeignKeyClause(fk);\n\t\tif (clause) constraintDefs.push(clause);\n\t}\n\tconst allDefs = [...columnDefs, ...constraintDefs];\n\treturn `CREATE TABLE ${quoteIdentifier(tableName)} (\\n ${allDefs.join(\",\\n \")}\\n)`;\n}\nfunction renameTableViaName(toName) {\n\treturn `_prisma_rename_${toName}`;\n}\nfunction renameChangesOnlyCase(fromName, toName) {\n\treturn sqliteIdentifiersCollide(fromName, toName);\n}\n/**\n* SQLite takes names that differ only in the case of ASCII letters for the\n* same name, so such a rename (`userProfile` to `UserProfile`) is refused as\n* \"already exists\" when done in one statement. It goes through a temporary name.\n*/\nfunction renameTableSteps(fromName, toName) {\n\tconst from = quoteIdentifier(fromName);\n\tconst to = quoteIdentifier(toName);\n\tif (!renameChangesOnlyCase(fromName, toName)) return [step(`rename table \"${fromName}\" to \"${toName}\"`, `ALTER TABLE ${from} RENAME TO ${to}`)];\n\tconst viaName = renameTableViaName(toName);\n\tconst via = quoteIdentifier(viaName);\n\treturn [step(`rename table \"${fromName}\" to \"${viaName}\" (SQLite table names are case-insensitive)`, `ALTER TABLE ${from} RENAME TO ${via}`), step(`rename table \"${viaName}\" to \"${toName}\"`, `ALTER TABLE ${via} RENAME TO ${to}`)];\n}\nasync function recreateTable(args, lowerer) {\n\tconst { tableName, contractTable, schemaColumnNames, indexes, summary, postchecks, operationClass } = args;\n\trefuseEarlierColumnSpecs(\"recreateTable\", tableName, contractTable.columns);\n\tconst tempName = `_prisma_new_${tableName}`;\n\tconst liveSet = new Set(schemaColumnNames);\n\tconst sharedColumns = contractTable.columns.filter((c) => liveSet.has(c.name)).map((c) => c.name);\n\tconst columnList = sharedColumns.map(quoteIdentifier).join(\", \");\n\tconst indexStatements = indexes.map((idx) => ({\n\t\tdescription: `recreate index \"${idx.name}\" on \"${tableName}\"`,\n\t\tsql: buildCreateIndexSql(tableName, idx.name, idx.columns)\n\t}));\n\tconst copyStep = sharedColumns.length > 0 ? [step(`copy data from \"${tableName}\" to \"${tempName}\"`, `INSERT INTO ${quoteIdentifier(tempName)} (${columnList}) SELECT ${columnList} FROM ${quoteIdentifier(tableName)}`)] : [];\n\tconst defaultClauses = await renderSpecDefaults(contractTable, tableName, lowerer);\n\tconst clauseByColumn = new Map(contractTable.columns.map((column, index) => [column.name, defaultClauses[index] ?? \"\"]));\n\tconst tableSteps = await tableExistsSteps(lowerer, tableName);\n\tconst tempSteps = await tableExistsSteps(lowerer, tempName);\n\treturn {\n\t\tid: `recreateTable.${tableName}`,\n\t\tlabel: `Recreate table ${tableName}`,\n\t\tsummary,\n\t\toperationClass,\n\t\ttarget: {\n\t\t\tid: \"sqlite\",\n\t\t\tdetails: buildTargetDetails(\"table\", tableName)\n\t\t},\n\t\tprecheck: [step(`ensure table \"${tableName}\" exists`, tableSteps.present.sql, tableSteps.present.params), step(`ensure temp table \"${tempName}\" does not exist`, tempSteps.absent.sql, tempSteps.absent.params)],\n\t\texecute: [\n\t\t\tstep(`create new table \"${tempName}\" with desired schema`, renderCreateTableSql(tempName, contractTable, defaultClauses)),\n\t\t\t...copyStep,\n\t\t\tstep(`drop old table \"${tableName}\"`, `DROP TABLE ${quoteIdentifier(tableName)}`),\n\t\t\tstep(`rename \"${tempName}\" to \"${tableName}\"`, `ALTER TABLE ${quoteIdentifier(tempName)} RENAME TO ${quoteIdentifier(tableName)}`),\n\t\t\t...indexStatements\n\t\t],\n\t\tpostcheck: [\n\t\t\tstep(`verify table \"${tableName}\" exists`, tableSteps.present.sql, tableSteps.present.params),\n\t\t\tstep(`verify temp table \"${tempName}\" is gone`, tempSteps.absent.sql, tempSteps.absent.params),\n\t\t\t...postchecks.flatMap((check) => \"sql\" in check ? [check] : defaultPostcheck(tableName, check, clauseByColumn.get(check.columnDefault)))\n\t\t]\n\t};\n}\nfunction renderSpecDefaults(spec, tableName, lowerer) {\n\treturn Promise.all(spec.columns.map((column) => renderSpecDefault$1(column, tableName, lowerer)));\n}\n/**\n* Checks the column's default is the text of its `DEFAULT …` clause. SQLite's\n* `pragma_table_info.dflt_value` strips the outer parentheses of an expression\n* default, so `(strftime('%Y-%m-%dT%H:%M:%fZ','now'))` is stored as `strftime('%Y-%m-%dT%H:%M:%fZ','now')`; they are\n* stripped here too.\n*/\nfunction defaultPostcheck(tableName, check, clause) {\n\tif (clause === void 0 || !clause.startsWith(\"DEFAULT \")) return [];\n\tconst expectedRaw = stripOuterParens(clause.slice(8));\n\treturn [{\n\t\tdescription: check.description,\n\t\tsql: `SELECT COUNT(*) > 0 FROM pragma_table_info('${escapeLiteral(tableName)}') WHERE name = '${escapeLiteral(check.columnDefault)}' AND dflt_value = '${escapeLiteral(expectedRaw)}'`\n\t}];\n}\n/**\n* Build a one-line summary of a recreate-table operation from the schema-diff\n* issues that triggered it. Lives next to `recreateTable` so the planner\n* (which has the issues) can produce the same description the factory\n* used to build inline. Keeping the formatting target-side keeps\n* `RecreateTableCall` issue-free at the IR layer. `SchemaDiffIssue` carries\n* no rendered message, so this renders one from each issue's path.\n*/\nfunction buildRecreateSummary(tableName, issues) {\n\treturn `Recreates table ${tableName} to apply schema changes: ${issues.map((i) => i.path.join(\"/\")).join(\"; \")}`;\n}\nfunction nodeKindOf(issue) {\n\tconst node = issue.expected ?? issue.actual;\n\tif (node === void 0) return void 0;\n\treturn blindCast(node).nodeKind;\n}\n/** Mirrors `SqlColumnIR.isEqualTo`'s type comparison, isolated so a `not-equal` column issue's postcheck can target type drift and nullability drift independently. */\nfunction columnTypeChanged(expected, actual) {\n\tif (expected.resolvedNativeType !== void 0 && actual.resolvedNativeType !== void 0) return expected.resolvedNativeType !== actual.resolvedNativeType;\n\treturn expected.nativeType !== actual.nativeType || Boolean(expected.many) !== Boolean(actual.many);\n}\n/**\n* Returns the columns the contract expects as the table's primary key. Picks\n* up SQLite's inline `INTEGER PRIMARY KEY AUTOINCREMENT` form when no\n* explicit `primaryKey` clause is set on the spec.\n*/\nfunction expectedPrimaryKeyColumns(spec) {\n\tif (spec.primaryKey) return spec.primaryKey.columns;\n\tconst inlinePk = spec.columns.find((c) => c.inlineAutoincrementPrimaryKey);\n\treturn inlinePk ? [inlinePk.name] : [];\n}\nfunction quoteSqlList(values) {\n\treturn values.map((v) => `'${escapeLiteral(v)}'`).join(\", \");\n}\n/**\n* A condition on the index aliased `l`: it covers exactly these columns. Order is not checked, because SQLite identifies a unique index by its column set.\n*/\nfunction indexCoversExactly(columns) {\n\treturn `(SELECT COUNT(*) FROM pragma_index_info(l.name)) = ${columns.length} AND (SELECT COUNT(*) FROM pragma_index_info(l.name) WHERE name IN (${quoteSqlList(columns)})) = ${columns.length}`;\n}\nfunction columnNameFromNode(issue) {\n\tconst node = issue.expected ?? issue.actual;\n\tif (node === void 0) return void 0;\n\treturn blindCast(node).name;\n}\n/**\n* A column-default issue's own node has no back-reference to its owning\n* column — it's a transient child built by `SqlColumnIR.children()`. The\n* column's id (`column:<name>`) is always the diff path's second-to-last\n* segment for a default issue (`[..., tableId, columnId, 'default']`), so\n* the name is recovered from the path rather than the node.\n*/\nfunction columnNameFromDefaultIssuePath(issue) {\n\tconst columnId = issue.path[issue.path.length - 2];\n\tif (columnId === void 0) return void 0;\n\treturn columnId.startsWith(\"column:\") ? columnId.slice(7) : columnId;\n}\n/**\n* Per-issue postchecks verifying the recreated table's shape against the\n* expected spec. Column-level issues (`sql-column` `not-equal`,\n* `sql-column-default` any reason) emit one targeted check each;\n* constraint-level issues (`sql-primary-key`, `sql-unique`, `sql-foreign-key`,\n* any reason) emit one `pragma_*`-driven check per declared constraint in the\n* expected spec, so a recreated table with the right columns but the wrong\n* PK / unique / FK shape fails the postcheck instead of passing silently.\n* Exported so the planner can pre-build the list at construction time and\n* `RecreateTableCall` doesn't have to carry `SchemaDiffIssue` objects through\n* to render time.\n*/\nfunction buildRecreatePostchecks(tableName, issues, spec) {\n\tconst checks = [];\n\tconst t = escapeLiteral(tableName);\n\tconst byName = new Map(spec.columns.map((c) => [c.name, c]));\n\tlet hasPkIssue = false;\n\tlet hasUniqueIssue = false;\n\tlet hasFkIssue = false;\n\tfor (const issue of issues) {\n\t\tconst nodeKind = nodeKindOf(issue);\n\t\tif (nodeKind === RelationalSchemaNodeKind.column && issueOutcome(issue) === \"not-equal\") {\n\t\t\tconst columnName = columnNameFromNode(issue);\n\t\t\tif (columnName === void 0) continue;\n\t\t\tconst c = escapeLiteral(columnName);\n\t\t\tconst expected = blindCast(issue.expected);\n\t\t\tconst actual = blindCast(issue.actual);\n\t\t\tif (expected.nullable !== actual.nullable) checks.push({\n\t\t\t\tdescription: `verify \"${columnName}\" nullability on \"${tableName}\"`,\n\t\t\t\tsql: `SELECT COUNT(*) > 0 FROM pragma_table_info('${t}') WHERE name = '${c}' AND \"notnull\" = ${expected.nullable ? 0 : 1}`\n\t\t\t});\n\t\t\tif (columnTypeChanged(expected, actual)) {\n\t\t\t\tconst colSpec = byName.get(columnName);\n\t\t\t\tif (colSpec) checks.push({\n\t\t\t\t\tdescription: `verify \"${columnName}\" type on \"${tableName}\"`,\n\t\t\t\t\tsql: `SELECT COUNT(*) > 0 FROM pragma_table_info('${t}') WHERE name = '${c}' AND LOWER(type) = '${escapeLiteral(colSpec.typeSql.toLowerCase())}'`\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (nodeKind === RelationalSchemaNodeKind.columnDefault) {\n\t\t\tconst columnName = columnNameFromDefaultIssuePath(issue);\n\t\t\tif (columnName === void 0) continue;\n\t\t\tconst c = escapeLiteral(columnName);\n\t\t\tif (issueOutcome(issue) === \"not-expected\") {\n\t\t\t\tchecks.push({\n\t\t\t\t\tdescription: `verify \"${columnName}\" has no default on \"${tableName}\"`,\n\t\t\t\t\tsql: `SELECT COUNT(*) > 0 FROM pragma_table_info('${t}') WHERE name = '${c}' AND dflt_value IS NULL`\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (byName.get(columnName)?.default !== void 0) checks.push({\n\t\t\t\tdescription: `verify \"${columnName}\" default on \"${tableName}\"`,\n\t\t\t\tcolumnDefault: columnName\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (nodeKind === RelationalSchemaNodeKind.primaryKey) hasPkIssue = true;\n\t\tif (nodeKind === RelationalSchemaNodeKind.unique) hasUniqueIssue = true;\n\t\tif (nodeKind === RelationalSchemaNodeKind.foreignKey) hasFkIssue = true;\n\t}\n\tif (hasPkIssue) {\n\t\tconst pkColumns = expectedPrimaryKeyColumns(spec);\n\t\tconst colCount = pkColumns.length;\n\t\tif (colCount === 0) checks.push({\n\t\t\tdescription: `verify \"${tableName}\" has no primary key`,\n\t\t\tsql: `SELECT (SELECT COUNT(*) FROM pragma_table_info('${t}') WHERE pk > 0) = 0`\n\t\t});\n\t\telse checks.push({\n\t\t\tdescription: `verify primary key on \"${tableName}\"`,\n\t\t\tsql: `SELECT (SELECT COUNT(*) FROM pragma_table_info('${t}') WHERE pk > 0) = ${colCount} AND (SELECT COUNT(*) FROM pragma_table_info('${t}') WHERE pk > 0 AND name IN (${quoteSqlList(pkColumns)})) = ${colCount}`\n\t\t});\n\t}\n\tif (hasUniqueIssue) for (const u of spec.uniques ?? []) {\n\t\tconst description = u.name ? `verify unique constraint \"${u.name}\" on \"${tableName}\"` : `verify unique constraint (${u.columns.join(\", \")}) on \"${tableName}\"`;\n\t\tchecks.push({\n\t\t\tdescription,\n\t\t\tsql: `SELECT EXISTS (SELECT 1 FROM pragma_index_list('${t}') l WHERE l.\"unique\" = 1 AND ${indexCoversExactly(u.columns)})`\n\t\t});\n\t}\n\tif (hasUniqueIssue) {\n\t\tconst expected = (spec.uniques ?? []).map((u) => `(${indexCoversExactly(u.columns)})`);\n\t\tchecks.push({\n\t\t\tdescription: `verify \"${tableName}\" has no unique constraint besides the expected ones`,\n\t\t\tsql: `SELECT NOT EXISTS (SELECT 1 FROM pragma_index_list('${t}') l WHERE l.origin = 'u' AND NOT (${expected.length === 0 ? \"0\" : expected.join(\" OR \")}))`\n\t\t});\n\t}\n\tif (hasFkIssue) {\n\t\tfor (const fk of spec.foreignKeys ?? []) {\n\t\t\tconst refTable = escapeLiteral(fk.references.table);\n\t\t\tconst colCount = fk.columns.length;\n\t\t\tconst tuples = fk.columns.map((from, i) => {\n\t\t\t\tconst to = fk.references.columns[i] ?? from;\n\t\t\t\treturn `('${escapeLiteral(from)}', '${escapeLiteral(to)}')`;\n\t\t\t}).join(\", \");\n\t\t\tconst description = `verify foreign key (${fk.columns.join(\", \")}) → ${fk.references.table}(${fk.references.columns.join(\", \")}) on \"${tableName}\"`;\n\t\t\tchecks.push({\n\t\t\t\tdescription,\n\t\t\t\tsql: `SELECT EXISTS (SELECT 1 FROM pragma_foreign_key_list('${t}') f WHERE f.\"table\" = '${refTable}' GROUP BY f.id HAVING COUNT(*) = ${colCount} AND SUM(CASE WHEN (f.\"from\", f.\"to\") IN (${tuples}) THEN 1 ELSE 0 END) = ${colCount})`\n\t\t\t});\n\t\t}\n\t\tconst expected = spec.foreignKeys?.length ?? 0;\n\t\tchecks.push({\n\t\t\tdescription: `verify \"${tableName}\" has exactly ${expected} foreign keys`,\n\t\t\tsql: `SELECT (SELECT COUNT(DISTINCT id) FROM pragma_foreign_key_list('${t}')) = ${expected}`\n\t\t});\n\t}\n\treturn checks;\n}\n//#endregion\n//#region src/core/migrations/op-factory-call.ts\nconst TARGET_MIGRATION_MODULE = \"@internal/sqlite/migration\";\nvar SqliteOpFactoryCallNode = class extends TsExpression {\n\timportRequirements() {\n\t\treturn [{\n\t\t\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\t\t\tsymbol: this.factoryName\n\t\t}];\n\t}\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nfunction renderDdlColumnDefault(def) {\n\tif (!def) return \"\";\n\tif (def.kind === \"literal\") return `lit(${jsonToTsSource(def.value)})`;\n\treturn `fn(${tsQuotedTextSource(def.expression.text)})`;\n}\nfunction renderDdlColumnAsTsCall(column) {\n\tconst opts = [];\n\tif (column.notNull) opts.push(\"notNull: true\");\n\tif (column.primaryKey) opts.push(\"primaryKey: true\");\n\tif (column.default) opts.push(`default: ${renderDdlColumnDefault(column.default)}`);\n\tif (column.codecRef) opts.push(`codecRef: ${jsonToTsSource(column.codecRef)}`);\n\tconst optsStr = opts.length > 0 ? `, { ${opts.join(\", \")} }` : \"\";\n\treturn `col(${jsonToTsSource(column.name)}, ${jsonToTsSource(column.type)}${optsStr})`;\n}\nfunction renderDdlConstraintAsTsCall(constraint) {\n\tswitch (constraint.kind) {\n\t\tcase \"primary-key\": {\n\t\t\tconst nameOpt = constraint.name ? `, { name: ${jsonToTsSource(constraint.name)} }` : \"\";\n\t\t\treturn `primaryKey(${jsonToTsSource(constraint.columns)}${nameOpt})`;\n\t\t}\n\t\tcase \"foreign-key\": {\n\t\t\tconst opts = [];\n\t\t\tif (constraint.name) opts.push(`name: ${jsonToTsSource(constraint.name)}`);\n\t\t\tif (constraint.onDelete) opts.push(`onDelete: ${jsonToTsSource(constraint.onDelete)}`);\n\t\t\tif (constraint.onUpdate) opts.push(`onUpdate: ${jsonToTsSource(constraint.onUpdate)}`);\n\t\t\tconst optsStr = opts.length > 0 ? `, { ${opts.join(\", \")} }` : \"\";\n\t\t\treturn `foreignKey(${jsonToTsSource(constraint.columns)}, ${jsonToTsSource(constraint.refTable)}, ${jsonToTsSource(constraint.refColumns)}${optsStr})`;\n\t\t}\n\t\tcase \"unique\": {\n\t\t\tconst nameOpt = constraint.name ? `, { name: ${jsonToTsSource(constraint.name)} }` : \"\";\n\t\t\treturn `unique(${jsonToTsSource(constraint.columns)}${nameOpt})`;\n\t\t}\n\t\tcase \"check-expression\": throw sqliteError(\"CONTRACT.CONSTRAINT_INVALID\", `The SQLite target does not support CHECK constraints (constraint \"${constraint.name}\"). The \"checkConstraint\" capability is Postgres-only — remove the \"@@check\" / \"check()\" declaration, or target Postgres.`, { meta: { constraintName: constraint.name } });\n\t}\n}\nfunction constraintImportSymbols(constraints) {\n\tif (!constraints || constraints.length === 0) return [];\n\tconst symbols = /* @__PURE__ */ new Set();\n\tfor (const c of constraints) if (c.kind === \"primary-key\") symbols.add(\"primaryKey\");\n\telse if (c.kind === \"foreign-key\") symbols.add(\"foreignKey\");\n\telse if (c.kind === \"unique\") symbols.add(\"unique\");\n\treturn [...symbols];\n}\nfunction defaultImportSymbols(columns) {\n\tconst symbols = /* @__PURE__ */ new Set();\n\tfor (const col of columns) if (col.default?.kind === \"literal\") symbols.add(\"lit\");\n\telse if (col.default?.kind === \"function\") symbols.add(\"fn\");\n\treturn [...symbols];\n}\nvar CreateTableCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"createTable\";\n\toperationClass = \"additive\";\n\ttableName;\n\tcolumns;\n\tconstraints;\n\tlabel;\n\tconstructor(tableName, columns, constraints) {\n\t\tsuper();\n\t\tthis.tableName = tableName;\n\t\tthis.columns = Object.freeze([...columns]);\n\t\tthis.constraints = constraints ? Object.freeze([...constraints]) : void 0;\n\t\tthis.label = `Create table ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `CreateTableCall.toOp: a DDL lowerer is required on the SQLite planner path (table \"${this.tableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.tableName\n\t\t} });\n\t\tconst ddlNode = createTable({\n\t\t\ttable: this.tableName,\n\t\t\tcolumns: this.columns,\n\t\t\t...ifDefined(\"constraints\", this.constraints)\n\t\t});\n\t\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\t\tconst tableName = this.tableName;\n\t\tconst tableChecks = tableExistsAst(tableName);\n\t\tconst absent = await lowerer.lowerToExecuteRequest(tableChecks.tableAbsent());\n\t\tconst present = await lowerer.lowerToExecuteRequest(tableChecks.tablePresent());\n\t\treturn {\n\t\t\tid: `table.${tableName}`,\n\t\t\tlabel: `Create table ${tableName}`,\n\t\t\tsummary: `Creates table ${tableName} with required columns`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: {\n\t\t\t\tid: \"sqlite\",\n\t\t\t\tdetails: buildTargetDetails(\"table\", tableName)\n\t\t\t},\n\t\t\tprecheck: [step(`ensure table \"${tableName}\" does not exist`, absent.sql, absent.params)],\n\t\t\texecute: [{\n\t\t\t\tdescription: `create table \"${tableName}\"`,\n\t\t\t\tsql: statement.sql,\n\t\t\t\tparams: statement.params ?? []\n\t\t\t}],\n\t\t\tpostcheck: [step(`verify table \"${tableName}\" exists`, present.sql, present.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\tconst columnsList = this.columns.map(renderDdlColumnAsTsCall).join(\", \");\n\t\tconst constraintsList = this.constraints ? this.constraints.map(renderDdlConstraintAsTsCall).join(\", \") : void 0;\n\t\tconst opts = [];\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`columns: [${columnsList}]`);\n\t\tif (constraintsList) opts.push(`constraints: [${constraintsList}]`);\n\t\treturn `this.createTable({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\tconst req = [];\n\t\tif (this.columns.length > 0) {\n\t\t\treq.push({\n\t\t\t\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\t\t\t\tsymbol: \"col\"\n\t\t\t});\n\t\t\tfor (const sym of defaultImportSymbols(this.columns)) req.push({\n\t\t\t\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\t\t\t\tsymbol: sym\n\t\t\t});\n\t\t}\n\t\tfor (const sym of constraintImportSymbols(this.constraints)) req.push({\n\t\t\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\t\t\tsymbol: sym\n\t\t});\n\t\treturn req;\n\t}\n};\nvar DropTableCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"dropTable\";\n\toperationClass = \"destructive\";\n\ttableName;\n\tlabel;\n\tconstructor(tableName) {\n\t\tsuper();\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Drop table ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `DropTableCall.toOp: a lowerer is required on the SQLite planner path (table \"${this.tableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.tableName\n\t\t} });\n\t\tconst checks = tableExistsAst(this.tableName);\n\t\tconst present = await lowerer.lowerToExecuteRequest(checks.tablePresent());\n\t\tconst absent = await lowerer.lowerToExecuteRequest(checks.tableAbsent());\n\t\treturn {\n\t\t\tid: `dropTable.${this.tableName}`,\n\t\t\tlabel: `Drop table ${this.tableName}`,\n\t\t\tsummary: `Drops table ${this.tableName} which is not in the contract`,\n\t\t\toperationClass: \"destructive\",\n\t\t\ttarget: {\n\t\t\t\tid: \"sqlite\",\n\t\t\t\tdetails: buildTargetDetails(\"table\", this.tableName)\n\t\t\t},\n\t\t\tprecheck: [step(`ensure table \"${this.tableName}\" exists`, present.sql, present.params)],\n\t\t\texecute: [step(`drop table \"${this.tableName}\"`, `DROP TABLE ${quoteIdentifier(this.tableName)}`)],\n\t\t\tpostcheck: [step(`verify table \"${this.tableName}\" is gone`, absent.sql, absent.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropTable({ table: ${jsonToTsSource(this.tableName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RenameTableCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"renameTable\";\n\toperationClass = \"widening\";\n\toldTableName;\n\t/** The new name: the table's contract-side identity after the rename. */\n\ttableName;\n\tlabel;\n\tconstructor(oldTableName, tableName) {\n\t\tsuper();\n\t\tthis.oldTableName = oldTableName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Rename table ${oldTableName} to ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `RenameTableCall.toOp: a lowerer is required on the SQLite planner path (table \"${this.oldTableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.oldTableName\n\t\t} });\n\t\tconst fromChecks = tableExistsAst(this.oldTableName);\n\t\tconst toChecks = tableExistsAst(this.tableName);\n\t\tconst fromPresent = await lowerer.lowerToExecuteRequest(fromChecks.tablePresent());\n\t\tconst toAbsent = await lowerer.lowerToExecuteRequest(toChecks.tableAbsent());\n\t\tconst viaName = renameTableViaName(this.tableName);\n\t\tconst viaAbsent = renameChangesOnlyCase(this.oldTableName, this.tableName) ? await lowerer.lowerToExecuteRequest(tableExistsAst(viaName).tableAbsent()) : void 0;\n\t\tconst toPresent = await lowerer.lowerToExecuteRequest(toChecks.tablePresent());\n\t\tconst fromAbsent = await lowerer.lowerToExecuteRequest(fromChecks.tableAbsent());\n\t\treturn {\n\t\t\tid: `renameTable.${this.oldTableName}`,\n\t\t\tlabel: this.label,\n\t\t\tsummary: `Renames table ${this.oldTableName} to ${this.tableName}, keeping its rows`,\n\t\t\toperationClass: \"widening\",\n\t\t\ttarget: {\n\t\t\t\tid: \"sqlite\",\n\t\t\t\tdetails: buildTargetDetails(\"table\", this.tableName)\n\t\t\t},\n\t\t\tprecheck: [\n\t\t\t\tstep(`ensure table \"${this.oldTableName}\" exists`, fromPresent.sql, fromPresent.params),\n\t\t\t\tstep(`ensure table \"${this.tableName}\" does not exist`, toAbsent.sql, toAbsent.params),\n\t\t\t\t...viaAbsent === void 0 ? [] : [step(`ensure table \"${viaName}\" does not exist (a rename that only changes case passes through this temporary name, because SQLite compares table names without case)`, viaAbsent.sql, viaAbsent.params)]\n\t\t\t],\n\t\t\texecute: renameTableSteps(this.oldTableName, this.tableName),\n\t\t\tpostcheck: [step(`verify table \"${this.tableName}\" exists`, toPresent.sql, toPresent.params), step(`verify table \"${this.oldTableName}\" no longer exists`, fromAbsent.sql, fromAbsent.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `...this.renameTable({ table: ${jsonToTsSource(this.oldTableName)}, to: ${jsonToTsSource(this.tableName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RecreateTableCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"recreateTable\";\n\toperationClass;\n\ttableName;\n\tcontractTable;\n\tschemaColumnNames;\n\tindexes;\n\tsummary;\n\tpostchecks;\n\tlabel;\n\tconstructor(args) {\n\t\tsuper();\n\t\tthis.tableName = args.tableName;\n\t\tthis.contractTable = args.contractTable;\n\t\tthis.schemaColumnNames = args.schemaColumnNames;\n\t\tthis.indexes = args.indexes;\n\t\tthis.summary = args.summary;\n\t\tthis.postchecks = args.postchecks;\n\t\tthis.operationClass = args.operationClass;\n\t\tthis.label = `Recreate table ${args.tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `RecreateTableCall.toOp: a lowerer is required on the SQLite planner path (table \"${this.tableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.tableName\n\t\t} });\n\t\treturn recreateTable({\n\t\t\ttableName: this.tableName,\n\t\t\tcontractTable: this.contractTable,\n\t\t\tschemaColumnNames: this.schemaColumnNames,\n\t\t\tindexes: this.indexes,\n\t\t\tsummary: this.summary,\n\t\t\tpostchecks: this.postchecks,\n\t\t\toperationClass: this.operationClass\n\t\t}, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.recreateTable(${tsObjectSource([\n\t\t\t[\"tableName\", jsonToTsSource(this.tableName)],\n\t\t\t[\"contractTable\", renderTableSpec(this.contractTable)],\n\t\t\t[\"schemaColumnNames\", jsonToTsSource(this.schemaColumnNames)],\n\t\t\t[\"indexes\", jsonToTsSource(this.indexes)],\n\t\t\t[\"summary\", jsonToTsSource(this.summary)],\n\t\t\t[\"postchecks\", tsArraySource(this.postchecks.map(renderPostcheck))],\n\t\t\t[\"operationClass\", jsonToTsSource(this.operationClass)]\n\t\t])})`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddColumnCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"addColumn\";\n\toperationClass = \"additive\";\n\ttableName;\n\tcolumnName;\n\tcolumn;\n\tlabel;\n\tconstructor(tableName, column) {\n\t\tsuper();\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = column.name;\n\t\tthis.column = column;\n\t\tthis.label = `Add column ${column.name} on ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `AddColumnCall.toOp: a lowerer is required on the SQLite planner path (column \"${this.column.name}\" on table \"${this.tableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.tableName,\n\t\t\tcolumnName: this.column.name\n\t\t} });\n\t\treturn addColumn(this.tableName, this.column, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addColumn({ table: ${jsonToTsSource(this.tableName)}, column: ${renderColumnSpec(this.column)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropColumnCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"dropColumn\";\n\toperationClass = \"destructive\";\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(tableName, columnName) {\n\t\tsuper();\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Drop column ${columnName} on ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `DropColumnCall.toOp: a lowerer is required on the SQLite planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.tableName,\n\t\t\tcolumnName: this.columnName\n\t\t} });\n\t\tconst checks = columnExistsAst(this.tableName, this.columnName);\n\t\tconst present = await lowerer.lowerToExecuteRequest(checks.columnPresent());\n\t\tconst absent = await lowerer.lowerToExecuteRequest(checks.columnAbsent());\n\t\treturn {\n\t\t\tid: `dropColumn.${this.tableName}.${this.columnName}`,\n\t\t\tlabel: `Drop column ${this.columnName} on ${this.tableName}`,\n\t\t\tsummary: `Drops column ${this.columnName} on ${this.tableName} which is not in the contract`,\n\t\t\toperationClass: \"destructive\",\n\t\t\ttarget: {\n\t\t\t\tid: \"sqlite\",\n\t\t\t\tdetails: buildTargetDetails(\"column\", this.columnName, this.tableName)\n\t\t\t},\n\t\t\tprecheck: [step(`ensure column \"${this.columnName}\" exists on \"${this.tableName}\"`, present.sql, present.params)],\n\t\t\texecute: [step(`drop column \"${this.columnName}\" from \"${this.tableName}\"`, dropColumnExecuteSql(this.tableName, this.columnName))],\n\t\t\tpostcheck: [step(`verify column \"${this.columnName}\" is gone from \"${this.tableName}\"`, absent.sql, absent.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropColumn({ table: ${jsonToTsSource(this.tableName)}, column: ${jsonToTsSource(this.columnName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar CreateIndexCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"createIndex\";\n\toperationClass = \"additive\";\n\ttableName;\n\tindexName;\n\tcolumns;\n\tlabel;\n\tconstructor(tableName, indexName, columns) {\n\t\tsuper();\n\t\tthis.tableName = tableName;\n\t\tthis.indexName = indexName;\n\t\tthis.columns = columns;\n\t\tthis.label = `Create index ${indexName} on ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `CreateIndexCall.toOp: a lowerer is required on the SQLite planner path (index \"${this.indexName}\" on table \"${this.tableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.tableName,\n\t\t\tindexName: this.indexName\n\t\t} });\n\t\tconst checks = indexExistsAst(this.indexName);\n\t\tconst absent = await lowerer.lowerToExecuteRequest(checks.indexAbsent());\n\t\tconst present = await lowerer.lowerToExecuteRequest(checks.indexPresent());\n\t\treturn {\n\t\t\tid: `index.${this.tableName}.${this.indexName}`,\n\t\t\tlabel: `Create index ${this.indexName} on ${this.tableName}`,\n\t\t\tsummary: `Creates index ${this.indexName} on ${this.tableName}`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: {\n\t\t\t\tid: \"sqlite\",\n\t\t\t\tdetails: buildTargetDetails(\"index\", this.indexName, this.tableName)\n\t\t\t},\n\t\t\tprecheck: [step(`ensure index \"${this.indexName}\" is missing`, absent.sql, absent.params)],\n\t\t\texecute: [step(`create index \"${this.indexName}\"`, buildCreateIndexSql(this.tableName, this.indexName, this.columns))],\n\t\t\tpostcheck: [step(`verify index \"${this.indexName}\" exists`, present.sql, present.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.createIndex({ table: ${jsonToTsSource(this.tableName)}, index: ${jsonToTsSource(this.indexName)}, columns: ${jsonToTsSource(this.columns)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropIndexCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"dropIndex\";\n\toperationClass = \"destructive\";\n\ttableName;\n\tindexName;\n\tlabel;\n\tconstructor(tableName, indexName) {\n\t\tsuper();\n\t\tthis.tableName = tableName;\n\t\tthis.indexName = indexName;\n\t\tthis.label = `Drop index ${indexName} on ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw sqliteError(\"MIGRATION.SQLITE_CONTROL_STACK_MISSING\", `DropIndexCall.toOp: a lowerer is required on the SQLite planner path (index \"${this.indexName}\" on table \"${this.tableName}\"). Pass the control adapter to createSqliteMigrationPlanner.`, { meta: {\n\t\t\tfactory: this.factoryName,\n\t\t\ttableName: this.tableName,\n\t\t\tindexName: this.indexName\n\t\t} });\n\t\tconst checks = indexExistsAst(this.indexName);\n\t\tconst present = await lowerer.lowerToExecuteRequest(checks.indexPresent());\n\t\tconst absent = await lowerer.lowerToExecuteRequest(checks.indexAbsent());\n\t\treturn {\n\t\t\tid: `dropIndex.${this.tableName}.${this.indexName}`,\n\t\t\tlabel: `Drop index ${this.indexName} on ${this.tableName}`,\n\t\t\tsummary: `Drops index ${this.indexName} on ${this.tableName} which is not in the contract`,\n\t\t\toperationClass: \"destructive\",\n\t\t\ttarget: {\n\t\t\t\tid: \"sqlite\",\n\t\t\t\tdetails: buildTargetDetails(\"index\", this.indexName, this.tableName)\n\t\t\t},\n\t\t\tprecheck: [step(`ensure index \"${this.indexName}\" exists`, present.sql, present.params)],\n\t\t\texecute: [step(`drop index \"${this.indexName}\"`, buildDropIndexSql(this.indexName))],\n\t\t\tpostcheck: [step(`verify index \"${this.indexName}\" is gone`, absent.sql, absent.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropIndex({ table: ${jsonToTsSource(this.tableName)}, index: ${jsonToTsSource(this.indexName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/**\n* A planner-generated data-transform stub. The current default strategy\n* (`nullabilityTighteningBackfillStrategy`) emits one of these with a\n* backfill-flavored `id`/`label` when the policy allows `'data'` and the\n* contract tightens a column's nullability, but the op itself is generic —\n* any future strategy that needs a placeholder data step can construct one\n* with its own id/label.\n*\n* `toOp()` always throws `MIGRATION.UNFILLED_PLACEHOLDER`: the planner cannot lower a stubbed\n* transform to a runtime op — the user must edit the rendered\n* `migration.ts` and re-emit.\n*/\nvar DataTransformCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"dataTransform\";\n\toperationClass = \"data\";\n\tid;\n\tlabel;\n\ttableName;\n\tcolumnName;\n\tconstructor(id, label, tableName, columnName) {\n\t\tsuper();\n\t\tthis.id = id;\n\t\tthis.label = label;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.freeze();\n\t}\n\ttoOp(_lowerer) {\n\t\tthrow errorUnfilledPlaceholder(this.label);\n\t}\n\trenderTypeScript() {\n\t\tconst slot = `${this.tableName}-${this.columnName}-backfill-sql`;\n\t\treturn [\n\t\t\t\"dataTransform({\",\n\t\t\t` id: ${jsonToTsSource(this.id)},`,\n\t\t\t` label: ${jsonToTsSource(this.label)},`,\n\t\t\t` table: ${jsonToTsSource(this.tableName)},`,\n\t\t\t` description: ${jsonToTsSource(`Backfill NULL ${this.columnName} values in ${this.tableName}`)},`,\n\t\t\t` run: () => placeholder(${jsonToTsSource(slot)}),`,\n\t\t\t\"})\"\n\t\t].join(\"\\n\");\n\t}\n\timportRequirements() {\n\t\treturn [{\n\t\t\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\t\t\tsymbol: this.factoryName\n\t\t}, {\n\t\t\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\t\t\tsymbol: \"placeholder\"\n\t\t}];\n\t}\n};\n/**\n* Laundered pre-built operation. Mirrors Postgres's `RawSqlCall`: wraps an\n* already-materialized `SqlMigrationPlanOperation` (typically produced by a\n* SQL-family helper or a codec lifecycle hook) so the planner can carry it\n* alongside structured call IR. `toOp()` returns the stored op unchanged;\n* `renderTypeScript()` emits `rawSql({...})` with the op serialized as a\n* JSON literal — round-tripping requires every field on the op to be\n* JSON-serializable (no closures).\n*/\nvar RawSqlCall = class extends SqliteOpFactoryCallNode {\n\tfactoryName = \"rawSql\";\n\toperationClass;\n\tlabel;\n\top;\n\tconstructor(op) {\n\t\tsuper();\n\t\tthis.op = op;\n\t\tthis.label = op.label;\n\t\tthis.operationClass = op.operationClass;\n\t\tthis.freeze();\n\t}\n\ttoOp(_lowerer) {\n\t\treturn this.op;\n\t}\n\trenderTypeScript() {\n\t\treturn `rawSql(${jsonToTsSource(this.op)})`;\n\t}\n};\nfunction definedSourceEntries(sources) {\n\treturn Object.entries(sources).flatMap(([key, source]) => source === void 0 ? [] : [[key, source]]);\n}\nfunction renderIfDefined(value) {\n\treturn value === void 0 ? void 0 : jsonToTsSource(value);\n}\nfunction renderColumnSpec(column) {\n\treturn tsObjectSource(definedSourceEntries({\n\t\tname: jsonToTsSource(column.name),\n\t\ttypeSql: jsonToTsSource(column.typeSql),\n\t\tdefault: column.default === void 0 ? void 0 : renderSpecDefault(column.default),\n\t\tcodecRef: renderIfDefined(column.codecRef),\n\t\tnullable: jsonToTsSource(column.nullable),\n\t\tinlineAutoincrementPrimaryKey: renderIfDefined(column.inlineAutoincrementPrimaryKey)\n\t}));\n}\nfunction renderTableSpec(table) {\n\treturn tsObjectSource(definedSourceEntries({\n\t\tcolumns: tsArraySource(table.columns.map(renderColumnSpec)),\n\t\tprimaryKey: renderIfDefined(table.primaryKey),\n\t\tuniques: renderIfDefined(table.uniques),\n\t\tforeignKeys: renderIfDefined(table.foreignKeys)\n\t}));\n}\nfunction renderSpecDefault(columnDefault) {\n\tif (columnDefault.kind === \"literal\") return jsonToTsSource(columnDefault);\n\treturn tsObjectSource(definedSourceEntries({\n\t\tkind: jsonToTsSource(columnDefault.kind),\n\t\texpression: tsQuotedTextSource(columnDefault.expression)\n\t}));\n}\nfunction renderPostcheck(postcheck) {\n\tif (\"sql\" in postcheck) return tsObjectSource(definedSourceEntries({\n\t\tdescription: jsonToTsSource(postcheck.description),\n\t\tsql: tsQuotedTextSource(postcheck.sql)\n\t}));\n\treturn tsObjectSource(definedSourceEntries({\n\t\tdescription: jsonToTsSource(postcheck.description),\n\t\tcolumnDefault: jsonToTsSource(postcheck.columnDefault)\n\t}));\n}\n//#endregion\nexport { buildColumnTypeSql as _, DropColumnCall as a, RawSqlCall as c, buildRecreatePostchecks as d, buildRecreateSummary as f, sqliteIdentifiersCollide as g, step as h, DataTransformCall as i, RecreateTableCall as l, sqliteDefaultToDdlColumnDefault as m, CreateIndexCall as n, DropIndexCall as o, renameTableSteps as p, CreateTableCall as r, DropTableCall as s, AddColumnCall as t, RenameTableCall as u, renderDefaultLiteral as v };\n\n//# sourceMappingURL=op-factory-call-V6Wu86U8.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,SAAS,mBAAmB,QAAQ,OAAO,eAAe,CAAC,GAAG;CAC7D,MAAM,WAAW,0BAA0B,QAAQ,YAAY;CAC/D,MAAM,WAAW,mBAAmB,SAAS,SAAS,KAAK;CAC3D,OAAO,kBAAkB,UAAU,eAAe,UAAU,SAAS,UAAU,CAAC,CAAC,CAAC,YAAY;AAC/F;;;;;AAKA,SAAS,qBAAqB,OAAO,SAAS;CAC7C,IAAI,iBAAiB,MAAM,OAAO,IAAI,cAAc,qBAAqB,KAAK,CAAC,EAAE;CACjF,IAAI,OAAO,UAAU,YAAY,YAAY,qBAAqB,OAAO,IAAI,cAAc,qBAAqB,qBAAqB,KAAK,CAAC,CAAC,EAAE;CAC9I,IAAI,OAAO,UAAU,UAAU,OAAO,IAAI,cAAc,KAAK,EAAE;CAC/D,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU,OAAO,OAAO,KAAK;CAC/E,IAAI,OAAO,UAAU,WAAW,OAAO,QAAQ,MAAM;CACrD,IAAI,UAAU,MAAM,OAAO;CAC3B,OAAO,IAAI,cAAc,KAAK,UAAU,KAAK,CAAC,EAAE;AACjD;AACA,SAAS,oBAAoB,WAAW,WAAW,SAAS,SAAS,OAAO;CAC3E,OAAO,UAAU,SAAS,YAAY,GAAG,QAAQ,gBAAgB,SAAS,EAAE,MAAM,gBAAgB,SAAS,EAAE,IAAI,QAAQ,IAAI,eAAe,CAAC,CAAC,KAAK,IAAI,EAAE;AAC1J;AACA,SAAS,kBAAkB,WAAW;CACrC,OAAO,wBAAwB,gBAAgB,SAAS;AACzD;AACA,SAAS,0BAA0B,QAAQ,cAAc;CACxD,IAAI,CAAC,OAAO,SAAS,OAAO;CAC5B,MAAM,iBAAiB,aAAa,OAAO;CAC3C,IAAI,CAAC,gBAAgB,MAAM,YAAY,yBAAyB,iBAAiB,OAAO,QAAQ,0DAA0D,EAAE,MAAM,EAAE,SAAS,OAAO,QAAQ,EAAE,CAAC;CAC/L,OAAO;EACN,SAAS,eAAe;EACxB,YAAY,eAAe;EAC3B,YAAY,eAAe;CAC5B;AACD;AAGA,SAAS,iBAAiB,YAAY;CACrC,OAAO,WAAW,QAAQ,WAAW,WAAW,OAAO,YAAY,CAAC;AACrE;;;;AAIA,SAAS,yBAAyB,MAAM,OAAO;CAC9C,OAAO,iBAAiB,IAAI,MAAM,iBAAiB,KAAK;AACzD;AAGA,SAAS,KAAK,aAAa,KAAK,QAAQ;CACvC,OAAO;EACN;EACA;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD;;AAEA,SAAS,gCAAgC,eAAe;CACvD,IAAI,CAAC,eAAe,OAAO,KAAK;CAChC,QAAQ,cAAc,MAAtB;EACC,KAAK,WAAW,OAAO,IAAI,qBAAqB,cAAc,KAAK;EACnE,KAAK;GACJ,IAAI,cAAc,eAAe,mBAAmB,OAAO,KAAK;GAChE,OAAO,IAAI,sBAAsB,UAAU,cAAc,UAAU,CAAC;EACrE,SAAS;GACR,MAAM,aAAa;GACnB,OAAO,YAAY,YAAY,oDAAoD,UAAU,UAAU,CAAC,CAAC,KAAK,EAAE;EACjH;CACD;AACD;;;;AAIA,SAAS,yBAAyB,WAAW,WAAW,SAAS;CAChE,MAAM,UAAU,QAAQ,MAAM,WAAW,OAAO,OAAO,QAAQ,YAAY,CAAC;CAC5E,IAAI,YAAY,KAAK,GAAG;CACxB,MAAM,qCAAqC;EAC1C;EACA,QAAQ;EACR,SAAS,UAAU,KAAK,UAAU,QAAQ,IAAI,EAAE,YAAY,KAAK,UAAU,SAAS;EACpF,SAAS;EACT,cAAc;CACf,CAAC;AACF;;AAEA,SAAS,oBAAoB,QAAQ,WAAW,SAAS;CACxD,MAAM,aAAa,OAAO,gCAAgC,KAAK,IAAI,gCAAgC,OAAO,OAAO;CACjH,OAAO,QAAQ,oBAAoB,IAAI,UAAU;EAChD,MAAM,OAAO;EACb,MAAM,OAAO;EACb,GAAG,UAAU,WAAW,UAAU;EAClC,GAAG,UAAU,YAAY,OAAO,QAAQ;CACzC,CAAC,GAAG,SAAS;AACd;;;;;;;AAOA,SAAS,uBAAuB,QAAQ,eAAe;CACtD,MAAM,QAAQ,CAAC,gBAAgB,OAAO,IAAI,GAAG,OAAO,OAAO;CAC3D,IAAI,OAAO,+BAA+B,MAAM,KAAK,2BAA2B;MAC3E;EACJ,IAAI,eAAe,MAAM,KAAK,aAAa;EAC3C,IAAI,CAAC,OAAO,UAAU,MAAM,KAAK,UAAU;CAC5C;CACA,OAAO,MAAM,KAAK,GAAG;AACtB;;;;;;;AAOA,SAAS,uBAAuB,IAAI;CACnC,IAAI,MAAM,GAAG,GAAG,OAAO,cAAc,gBAAgB,GAAG,IAAI,EAAE,KAAK,GAAG,eAAe,GAAG,QAAQ,IAAI,eAAe,CAAC,CAAC,KAAK,IAAI,EAAE,eAAe,gBAAgB,GAAG,WAAW,KAAK,EAAE,IAAI,GAAG,WAAW,QAAQ,IAAI,eAAe,CAAC,CAAC,KAAK,IAAI,EAAE;CAC9O,IAAI,GAAG,aAAa,KAAK,GAAG,OAAO,cAAc,uBAAuB,GAAG;CAC3E,IAAI,GAAG,aAAa,KAAK,GAAG,OAAO,cAAc,uBAAuB,GAAG;CAC3E,OAAO;AACR;AAGA,SAAS,oBAAoB,WAAW,QAAQ,eAAe;CAC9D,OAAO;EACN,eAAe,gBAAgB,SAAS;EACxC,cAAc,gBAAgB,OAAO,IAAI,EAAE,GAAG,OAAO;EACrD;EACA,OAAO,WAAW,KAAK;CACxB,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC3B;AACA,SAAS,qBAAqB,WAAW,YAAY;CACpD,OAAO,eAAe,gBAAgB,SAAS,EAAE,eAAe,gBAAgB,UAAU;AAC3F;AACA,eAAe,UAAU,WAAW,QAAQ,SAAS;CACpD,yBAAyB,aAAa,WAAW,CAAC,MAAM,CAAC;CACzD,MAAM,gBAAgB,MAAM,oBAAoB,QAAQ,WAAW,OAAO;CAC1E,MAAM,SAAS,gBAAgB,WAAW,OAAO,IAAI;CACrD,MAAM,SAAS,MAAM,QAAQ,sBAAsB,OAAO,aAAa,CAAC;CACxE,MAAM,UAAU,MAAM,QAAQ,sBAAsB,OAAO,cAAc,CAAC;CAC1E,OAAO;EACN,IAAI,UAAU,UAAU,GAAG,OAAO;EAClC,OAAO,cAAc,OAAO,KAAK,MAAM;EACvC,SAAS,eAAe,OAAO,KAAK,MAAM;EAC1C,gBAAgB;EAChB,QAAQ;GACP,IAAI;GACJ,SAAS,mBAAmB,UAAU,OAAO,MAAM,SAAS;EAC7D;EACA,UAAU,CAAC,KAAK,kBAAkB,OAAO,KAAK,eAAe,OAAO,KAAK,OAAO,MAAM,CAAC;EACvF,SAAS,CAAC,KAAK,eAAe,OAAO,KAAK,IAAI,oBAAoB,WAAW,QAAQ,aAAa,CAAC,CAAC;EACpG,WAAW,CAAC,KAAK,kBAAkB,OAAO,KAAK,WAAW,QAAQ,KAAK,QAAQ,MAAM,CAAC;CACvF;AACD;AAGA,eAAe,iBAAiB,SAAS,WAAW;CACnD,MAAM,SAAS,eAAe,SAAS;CACvC,OAAO;EACN,SAAS,MAAM,QAAQ,sBAAsB,OAAO,aAAa,CAAC;EAClE,QAAQ,MAAM,QAAQ,sBAAsB,OAAO,YAAY,CAAC;CACjE;AACD;;;;;;;AAOA,SAAS,qBAAqB,WAAW,MAAM,gBAAgB;CAC9D,MAAM,aAAa,KAAK,QAAQ,KAAK,QAAQ,UAAU,uBAAuB,QAAQ,eAAe,UAAU,EAAE,CAAC;CAClH,MAAM,iBAAiB,CAAC;CACxB,MAAM,cAAc,KAAK,QAAQ,MAAM,MAAM,EAAE,6BAA6B;CAC5E,IAAI,KAAK,cAAc,CAAC,aAAa,eAAe,KAAK,gBAAgB,KAAK,WAAW,QAAQ,IAAI,eAAe,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE;CACnI,KAAK,MAAM,KAAK,KAAK,WAAW,CAAC,GAAG;EACnC,MAAM,OAAO,EAAE,OAAO,cAAc,gBAAgB,EAAE,IAAI,EAAE,KAAK;EACjE,eAAe,KAAK,GAAG,KAAK,UAAU,EAAE,QAAQ,IAAI,eAAe,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE;CACnF;CACA,KAAK,MAAM,MAAM,KAAK,eAAe,CAAC,GAAG;EACxC,MAAM,SAAS,uBAAuB,EAAE;EACxC,IAAI,QAAQ,eAAe,KAAK,MAAM;CACvC;CACA,MAAM,UAAU,CAAC,GAAG,YAAY,GAAG,cAAc;CACjD,OAAO,gBAAgB,gBAAgB,SAAS,EAAE,QAAQ,QAAQ,KAAK,OAAO,EAAE;AACjF;AACA,SAAS,mBAAmB,QAAQ;CACnC,OAAO,kBAAkB;AAC1B;AACA,SAAS,sBAAsB,UAAU,QAAQ;CAChD,OAAO,yBAAyB,UAAU,MAAM;AACjD;;;;;;AAMA,SAAS,iBAAiB,UAAU,QAAQ;CAC3C,MAAM,OAAO,gBAAgB,QAAQ;CACrC,MAAM,KAAK,gBAAgB,MAAM;CACjC,IAAI,CAAC,sBAAsB,UAAU,MAAM,GAAG,OAAO,CAAC,KAAK,iBAAiB,SAAS,QAAQ,OAAO,IAAI,eAAe,KAAK,aAAa,IAAI,CAAC;CAC9I,MAAM,UAAU,mBAAmB,MAAM;CACzC,MAAM,MAAM,gBAAgB,OAAO;CACnC,OAAO,CAAC,KAAK,iBAAiB,SAAS,QAAQ,QAAQ,8CAA8C,eAAe,KAAK,aAAa,KAAK,GAAG,KAAK,iBAAiB,QAAQ,QAAQ,OAAO,IAAI,eAAe,IAAI,aAAa,IAAI,CAAC;AACrO;AACA,eAAe,cAAc,MAAM,SAAS;CAC3C,MAAM,EAAE,WAAW,eAAe,mBAAmB,SAAS,SAAS,YAAY,mBAAmB;CACtG,yBAAyB,iBAAiB,WAAW,cAAc,OAAO;CAC1E,MAAM,WAAW,eAAe;CAChC,MAAM,UAAU,IAAI,IAAI,iBAAiB;CACzC,MAAM,gBAAgB,cAAc,QAAQ,QAAQ,MAAM,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,IAAI;CAChG,MAAM,aAAa,cAAc,IAAI,eAAe,CAAC,CAAC,KAAK,IAAI;CAC/D,MAAM,kBAAkB,QAAQ,KAAK,SAAS;EAC7C,aAAa,mBAAmB,IAAI,KAAK,QAAQ,UAAU;EAC3D,KAAK,oBAAoB,WAAW,IAAI,MAAM,IAAI,OAAO;CAC1D,EAAE;CACF,MAAM,WAAW,cAAc,SAAS,IAAI,CAAC,KAAK,mBAAmB,UAAU,QAAQ,SAAS,IAAI,eAAe,gBAAgB,QAAQ,EAAE,IAAI,WAAW,WAAW,WAAW,QAAQ,gBAAgB,SAAS,GAAG,CAAC,IAAI,CAAC;CAC5N,MAAM,iBAAiB,MAAM,mBAAmB,eAAe,WAAW,OAAO;CACjF,MAAM,iBAAiB,IAAI,IAAI,cAAc,QAAQ,KAAK,QAAQ,UAAU,CAAC,OAAO,MAAM,eAAe,UAAU,EAAE,CAAC,CAAC;CACvH,MAAM,aAAa,MAAM,iBAAiB,SAAS,SAAS;CAC5D,MAAM,YAAY,MAAM,iBAAiB,SAAS,QAAQ;CAC1D,OAAO;EACN,IAAI,iBAAiB;EACrB,OAAO,kBAAkB;EACzB;EACA;EACA,QAAQ;GACP,IAAI;GACJ,SAAS,mBAAmB,SAAS,SAAS;EAC/C;EACA,UAAU,CAAC,KAAK,iBAAiB,UAAU,WAAW,WAAW,QAAQ,KAAK,WAAW,QAAQ,MAAM,GAAG,KAAK,sBAAsB,SAAS,mBAAmB,UAAU,OAAO,KAAK,UAAU,OAAO,MAAM,CAAC;EAC/M,SAAS;GACR,KAAK,qBAAqB,SAAS,wBAAwB,qBAAqB,UAAU,eAAe,cAAc,CAAC;GACxH,GAAG;GACH,KAAK,mBAAmB,UAAU,IAAI,cAAc,gBAAgB,SAAS,GAAG;GAChF,KAAK,WAAW,SAAS,QAAQ,UAAU,IAAI,eAAe,gBAAgB,QAAQ,EAAE,aAAa,gBAAgB,SAAS,GAAG;GACjI,GAAG;EACJ;EACA,WAAW;GACV,KAAK,iBAAiB,UAAU,WAAW,WAAW,QAAQ,KAAK,WAAW,QAAQ,MAAM;GAC5F,KAAK,sBAAsB,SAAS,YAAY,UAAU,OAAO,KAAK,UAAU,OAAO,MAAM;GAC7F,GAAG,WAAW,SAAS,UAAU,SAAS,QAAQ,CAAC,KAAK,IAAI,iBAAiB,WAAW,OAAO,eAAe,IAAI,MAAM,aAAa,CAAC,CAAC;EACxI;CACD;AACD;AACA,SAAS,mBAAmB,MAAM,WAAW,SAAS;CACrD,OAAO,QAAQ,IAAI,KAAK,QAAQ,KAAK,WAAW,oBAAoB,QAAQ,WAAW,OAAO,CAAC,CAAC;AACjG;;;;;;;AAOA,SAAS,iBAAiB,WAAW,OAAO,QAAQ;CACnD,IAAI,WAAW,KAAK,KAAK,CAAC,OAAO,WAAW,UAAU,GAAG,OAAO,CAAC;CACjE,MAAM,cAAc,iBAAiB,OAAO,MAAM,CAAC,CAAC;CACpD,OAAO,CAAC;EACP,aAAa,MAAM;EACnB,KAAK,+CAA+C,cAAc,SAAS,EAAE,mBAAmB,cAAc,MAAM,aAAa,EAAE,sBAAsB,cAAc,WAAW,EAAE;CACrL,CAAC;AACF;;;;;;;;;AASA,SAAS,qBAAqB,WAAW,QAAQ;CAChD,OAAO,mBAAmB,UAAU,4BAA4B,OAAO,KAAK,MAAM,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;AAC9G;AACA,SAAS,WAAW,OAAO;CAC1B,MAAM,OAAO,MAAM,YAAY,MAAM;CACrC,IAAI,SAAS,KAAK,GAAG,OAAO,KAAK;CACjC,OAAO,UAAU,IAAI,CAAC,CAAC;AACxB;;AAEA,SAAS,kBAAkB,UAAU,QAAQ;CAC5C,IAAI,SAAS,uBAAuB,KAAK,KAAK,OAAO,uBAAuB,KAAK,GAAG,OAAO,SAAS,uBAAuB,OAAO;CAClI,OAAO,SAAS,eAAe,OAAO,cAAc,QAAQ,SAAS,IAAI,MAAM,QAAQ,OAAO,IAAI;AACnG;;;;;;AAMA,SAAS,0BAA0B,MAAM;CACxC,IAAI,KAAK,YAAY,OAAO,KAAK,WAAW;CAC5C,MAAM,WAAW,KAAK,QAAQ,MAAM,MAAM,EAAE,6BAA6B;CACzE,OAAO,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC;AACtC;AACA,SAAS,aAAa,QAAQ;CAC7B,OAAO,OAAO,KAAK,MAAM,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI;AAC5D;;;;AAIA,SAAS,mBAAmB,SAAS;CACpC,OAAO,sDAAsD,QAAQ,OAAO,sEAAsE,aAAa,OAAO,EAAE,OAAO,QAAQ;AACxL;AACA,SAAS,mBAAmB,OAAO;CAClC,MAAM,OAAO,MAAM,YAAY,MAAM;CACrC,IAAI,SAAS,KAAK,GAAG,OAAO,KAAK;CACjC,OAAO,UAAU,IAAI,CAAC,CAAC;AACxB;;;;;;;;AAQA,SAAS,+BAA+B,OAAO;CAC9C,MAAM,WAAW,MAAM,KAAK,MAAM,KAAK,SAAS;CAChD,IAAI,aAAa,KAAK,GAAG,OAAO,KAAK;CACrC,OAAO,SAAS,WAAW,SAAS,IAAI,SAAS,MAAM,CAAC,IAAI;AAC7D;;;;;;;;;;;;;AAaA,SAAS,wBAAwB,WAAW,QAAQ,MAAM;CACzD,MAAM,SAAS,CAAC;CAChB,MAAM,IAAI,cAAc,SAAS;CACjC,MAAM,SAAS,IAAI,IAAI,KAAK,QAAQ,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3D,IAAI,aAAa;CACjB,IAAI,iBAAiB;CACrB,IAAI,aAAa;CACjB,KAAK,MAAM,SAAS,QAAQ;EAC3B,MAAM,WAAW,WAAW,KAAK;EACjC,IAAI,aAAa,yBAAyB,UAAU,aAAa,KAAK,MAAM,aAAa;GACxF,MAAM,aAAa,mBAAmB,KAAK;GAC3C,IAAI,eAAe,KAAK,GAAG;GAC3B,MAAM,IAAI,cAAc,UAAU;GAClC,MAAM,WAAW,UAAU,MAAM,QAAQ;GACzC,MAAM,SAAS,UAAU,MAAM,MAAM;GACrC,IAAI,SAAS,aAAa,OAAO,UAAU,OAAO,KAAK;IACtD,aAAa,WAAW,WAAW,oBAAoB,UAAU;IACjE,KAAK,+CAA+C,EAAE,mBAAmB,EAAE,oBAAoB,SAAS,WAAW,IAAI;GACxH,CAAC;GACD,IAAI,kBAAkB,UAAU,MAAM,GAAG;IACxC,MAAM,UAAU,OAAO,IAAI,UAAU;IACrC,IAAI,SAAS,OAAO,KAAK;KACxB,aAAa,WAAW,WAAW,aAAa,UAAU;KAC1D,KAAK,+CAA+C,EAAE,mBAAmB,EAAE,uBAAuB,cAAc,QAAQ,QAAQ,YAAY,CAAC,EAAE;IAChJ,CAAC;GACF;GACA;EACD;EACA,IAAI,aAAa,yBAAyB,eAAe;GACxD,MAAM,aAAa,+BAA+B,KAAK;GACvD,IAAI,eAAe,KAAK,GAAG;GAC3B,MAAM,IAAI,cAAc,UAAU;GAClC,IAAI,aAAa,KAAK,MAAM,gBAAgB;IAC3C,OAAO,KAAK;KACX,aAAa,WAAW,WAAW,uBAAuB,UAAU;KACpE,KAAK,+CAA+C,EAAE,mBAAmB,EAAE;IAC5E,CAAC;IACD;GACD;GACA,IAAI,OAAO,IAAI,UAAU,CAAC,EAAE,YAAY,KAAK,GAAG,OAAO,KAAK;IAC3D,aAAa,WAAW,WAAW,gBAAgB,UAAU;IAC7D,eAAe;GAChB,CAAC;GACD;EACD;EACA,IAAI,aAAa,yBAAyB,YAAY,aAAa;EACnE,IAAI,aAAa,yBAAyB,QAAQ,iBAAiB;EACnE,IAAI,aAAa,yBAAyB,YAAY,aAAa;CACpE;CACA,IAAI,YAAY;EACf,MAAM,YAAY,0BAA0B,IAAI;EAChD,MAAM,WAAW,UAAU;EAC3B,IAAI,aAAa,GAAG,OAAO,KAAK;GAC/B,aAAa,WAAW,UAAU;GAClC,KAAK,mDAAmD,EAAE;EAC3D,CAAC;OACI,OAAO,KAAK;GAChB,aAAa,0BAA0B,UAAU;GACjD,KAAK,mDAAmD,EAAE,qBAAqB,SAAS,gDAAgD,EAAE,+BAA+B,aAAa,SAAS,EAAE,OAAO;EACzM,CAAC;CACF;CACA,IAAI,gBAAgB,KAAK,MAAM,KAAK,KAAK,WAAW,CAAC,GAAG;EACvD,MAAM,cAAc,EAAE,OAAO,6BAA6B,EAAE,KAAK,QAAQ,UAAU,KAAK,6BAA6B,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,UAAU;EAC5J,OAAO,KAAK;GACX;GACA,KAAK,mDAAmD,EAAE,gCAAgC,mBAAmB,EAAE,OAAO,EAAE;EACzH,CAAC;CACF;CACA,IAAI,gBAAgB;EACnB,MAAM,YAAY,KAAK,WAAW,CAAC,EAAA,CAAG,KAAK,MAAM,IAAI,mBAAmB,EAAE,OAAO,EAAE,EAAE;EACrF,OAAO,KAAK;GACX,aAAa,WAAW,UAAU;GAClC,KAAK,uDAAuD,EAAE,qCAAqC,SAAS,WAAW,IAAI,MAAM,SAAS,KAAK,MAAM,EAAE;EACxJ,CAAC;CACF;CACA,IAAI,YAAY;EACf,KAAK,MAAM,MAAM,KAAK,eAAe,CAAC,GAAG;GACxC,MAAM,WAAW,cAAc,GAAG,WAAW,KAAK;GAClD,MAAM,WAAW,GAAG,QAAQ;GAC5B,MAAM,SAAS,GAAG,QAAQ,KAAK,MAAM,MAAM;IAC1C,MAAM,KAAK,GAAG,WAAW,QAAQ,MAAM;IACvC,OAAO,KAAK,cAAc,IAAI,EAAE,MAAM,cAAc,EAAE,EAAE;GACzD,CAAC,CAAC,CAAC,KAAK,IAAI;GACZ,MAAM,cAAc,uBAAuB,GAAG,QAAQ,KAAK,IAAI,EAAE,MAAM,GAAG,WAAW,MAAM,GAAG,GAAG,WAAW,QAAQ,KAAK,IAAI,EAAE,QAAQ,UAAU;GACjJ,OAAO,KAAK;IACX;IACA,KAAK,yDAAyD,EAAE,0BAA0B,SAAS,oCAAoC,SAAS,4CAA4C,OAAO,yBAAyB,SAAS;GACtO,CAAC;EACF;EACA,MAAM,WAAW,KAAK,aAAa,UAAU;EAC7C,OAAO,KAAK;GACX,aAAa,WAAW,UAAU,gBAAgB,SAAS;GAC3D,KAAK,mEAAmE,EAAE,QAAQ;EACnF,CAAC;CACF;CACA,OAAO;AACR;AAGA,MAAM,0BAA0B;AAChC,IAAI,0BAA0B,cAAc,aAAa;CACxD,qBAAqB;EACpB,OAAO,CAAC;GACP,iBAAiB;GACjB,QAAQ,KAAK;EACd,CAAC;CACF;CACA,SAAS;EACR,OAAO,OAAO,IAAI;CACnB;AACD;AACA,SAAS,uBAAuB,KAAK;CACpC,IAAI,CAAC,KAAK,OAAO;CACjB,IAAI,IAAI,SAAS,WAAW,OAAO,OAAO,eAAe,IAAI,KAAK,EAAE;CACpE,OAAO,MAAM,mBAAmB,IAAI,WAAW,IAAI,EAAE;AACtD;AACA,SAAS,wBAAwB,QAAQ;CACxC,MAAM,OAAO,CAAC;CACd,IAAI,OAAO,SAAS,KAAK,KAAK,eAAe;CAC7C,IAAI,OAAO,YAAY,KAAK,KAAK,kBAAkB;CACnD,IAAI,OAAO,SAAS,KAAK,KAAK,YAAY,uBAAuB,OAAO,OAAO,GAAG;CAClF,IAAI,OAAO,UAAU,KAAK,KAAK,aAAa,eAAe,OAAO,QAAQ,GAAG;CAC7E,MAAM,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,MAAM;CAC/D,OAAO,OAAO,eAAe,OAAO,IAAI,EAAE,IAAI,eAAe,OAAO,IAAI,IAAI,QAAQ;AACrF;AACA,SAAS,4BAA4B,YAAY;CAChD,QAAQ,WAAW,MAAnB;EACC,KAAK,eAAe;GACnB,MAAM,UAAU,WAAW,OAAO,aAAa,eAAe,WAAW,IAAI,EAAE,MAAM;GACrF,OAAO,cAAc,eAAe,WAAW,OAAO,IAAI,QAAQ;EACnE;EACA,KAAK,eAAe;GACnB,MAAM,OAAO,CAAC;GACd,IAAI,WAAW,MAAM,KAAK,KAAK,SAAS,eAAe,WAAW,IAAI,GAAG;GACzE,IAAI,WAAW,UAAU,KAAK,KAAK,aAAa,eAAe,WAAW,QAAQ,GAAG;GACrF,IAAI,WAAW,UAAU,KAAK,KAAK,aAAa,eAAe,WAAW,QAAQ,GAAG;GACrF,MAAM,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,MAAM;GAC/D,OAAO,cAAc,eAAe,WAAW,OAAO,EAAE,IAAI,eAAe,WAAW,QAAQ,EAAE,IAAI,eAAe,WAAW,UAAU,IAAI,QAAQ;EACrJ;EACA,KAAK,UAAU;GACd,MAAM,UAAU,WAAW,OAAO,aAAa,eAAe,WAAW,IAAI,EAAE,MAAM;GACrF,OAAO,UAAU,eAAe,WAAW,OAAO,IAAI,QAAQ;EAC/D;EACA,KAAK,oBAAoB,MAAM,YAAY,+BAA+B,qEAAqE,WAAW,KAAK,4HAA4H,EAAE,MAAM,EAAE,gBAAgB,WAAW,KAAK,EAAE,CAAC;CACzU;AACD;AACA,SAAS,wBAAwB,aAAa;CAC7C,IAAI,CAAC,eAAe,YAAY,WAAW,GAAG,OAAO,CAAC;CACtD,MAAM,0BAA0B,IAAI,IAAI;CACxC,KAAK,MAAM,KAAK,aAAa,IAAI,EAAE,SAAS,eAAe,QAAQ,IAAI,YAAY;MAC9E,IAAI,EAAE,SAAS,eAAe,QAAQ,IAAI,YAAY;MACtD,IAAI,EAAE,SAAS,UAAU,QAAQ,IAAI,QAAQ;CAClD,OAAO,CAAC,GAAG,OAAO;AACnB;AACA,SAAS,qBAAqB,SAAS;CACtC,MAAM,0BAA0B,IAAI,IAAI;CACxC,KAAK,MAAM,OAAO,SAAS,IAAI,IAAI,SAAS,SAAS,WAAW,QAAQ,IAAI,KAAK;MAC5E,IAAI,IAAI,SAAS,SAAS,YAAY,QAAQ,IAAI,IAAI;CAC3D,OAAO,CAAC,GAAG,OAAO;AACnB;AACA,IAAI,kBAAkB,cAAc,wBAAwB;CAC3D,cAAc;CACd,iBAAiB;CACjB;CACA;CACA;CACA;CACA,YAAY,WAAW,SAAS,aAAa;EAC5C,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,UAAU,OAAO,OAAO,CAAC,GAAG,OAAO,CAAC;EACzC,KAAK,cAAc,cAAc,OAAO,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,KAAK;EACxE,KAAK,QAAQ,gBAAgB;EAC7B,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,sFAAsF,KAAK,UAAU,gEAAgE,EAAE,MAAM;GAChQ,SAAS,KAAK;GACd,WAAW,KAAK;EACjB,EAAE,CAAC;EACH,MAAM,UAAU,YAAY;GAC3B,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,GAAG,UAAU,eAAe,KAAK,WAAW;EAC7C,CAAC;EACD,MAAM,YAAY,MAAM,QAAQ,sBAAsB,OAAO;EAC7D,MAAM,YAAY,KAAK;EACvB,MAAM,cAAc,eAAe,SAAS;EAC5C,MAAM,SAAS,MAAM,QAAQ,sBAAsB,YAAY,YAAY,CAAC;EAC5E,MAAM,UAAU,MAAM,QAAQ,sBAAsB,YAAY,aAAa,CAAC;EAC9E,OAAO;GACN,IAAI,SAAS;GACb,OAAO,gBAAgB;GACvB,SAAS,iBAAiB,UAAU;GACpC,gBAAgB;GAChB,QAAQ;IACP,IAAI;IACJ,SAAS,mBAAmB,SAAS,SAAS;GAC/C;GACA,UAAU,CAAC,KAAK,iBAAiB,UAAU,mBAAmB,OAAO,KAAK,OAAO,MAAM,CAAC;GACxF,SAAS,CAAC;IACT,aAAa,iBAAiB,UAAU;IACxC,KAAK,UAAU;IACf,QAAQ,UAAU,UAAU,CAAC;GAC9B,CAAC;GACD,WAAW,CAAC,KAAK,iBAAiB,UAAU,WAAW,QAAQ,KAAK,QAAQ,MAAM,CAAC;EACpF;CACD;CACA,mBAAmB;EAClB,MAAM,cAAc,KAAK,QAAQ,IAAI,uBAAuB,CAAC,CAAC,KAAK,IAAI;EACvE,MAAM,kBAAkB,KAAK,cAAc,KAAK,YAAY,IAAI,2BAA2B,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK;EAC/G,MAAM,OAAO,CAAC;EACd,KAAK,KAAK,UAAU,eAAe,KAAK,SAAS,GAAG;EACpD,KAAK,KAAK,aAAa,YAAY,EAAE;EACrC,IAAI,iBAAiB,KAAK,KAAK,iBAAiB,gBAAgB,EAAE;EAClE,OAAO,sBAAsB,KAAK,KAAK,IAAI,EAAE;CAC9C;CACA,qBAAqB;EACpB,MAAM,MAAM,CAAC;EACb,IAAI,KAAK,QAAQ,SAAS,GAAG;GAC5B,IAAI,KAAK;IACR,iBAAiB;IACjB,QAAQ;GACT,CAAC;GACD,KAAK,MAAM,OAAO,qBAAqB,KAAK,OAAO,GAAG,IAAI,KAAK;IAC9D,iBAAiB;IACjB,QAAQ;GACT,CAAC;EACF;EACA,KAAK,MAAM,OAAO,wBAAwB,KAAK,WAAW,GAAG,IAAI,KAAK;GACrE,iBAAiB;GACjB,QAAQ;EACT,CAAC;EACD,OAAO;CACR;AACD;AACA,IAAI,gBAAgB,cAAc,wBAAwB;CACzD,cAAc;CACd,iBAAiB;CACjB;CACA;CACA,YAAY,WAAW;EACtB,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,QAAQ,cAAc;EAC3B,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,gFAAgF,KAAK,UAAU,gEAAgE,EAAE,MAAM;GAC1P,SAAS,KAAK;GACd,WAAW,KAAK;EACjB,EAAE,CAAC;EACH,MAAM,SAAS,eAAe,KAAK,SAAS;EAC5C,MAAM,UAAU,MAAM,QAAQ,sBAAsB,OAAO,aAAa,CAAC;EACzE,MAAM,SAAS,MAAM,QAAQ,sBAAsB,OAAO,YAAY,CAAC;EACvE,OAAO;GACN,IAAI,aAAa,KAAK;GACtB,OAAO,cAAc,KAAK;GAC1B,SAAS,eAAe,KAAK,UAAU;GACvC,gBAAgB;GAChB,QAAQ;IACP,IAAI;IACJ,SAAS,mBAAmB,SAAS,KAAK,SAAS;GACpD;GACA,UAAU,CAAC,KAAK,iBAAiB,KAAK,UAAU,WAAW,QAAQ,KAAK,QAAQ,MAAM,CAAC;GACvF,SAAS,CAAC,KAAK,eAAe,KAAK,UAAU,IAAI,cAAc,gBAAgB,KAAK,SAAS,GAAG,CAAC;GACjG,WAAW,CAAC,KAAK,iBAAiB,KAAK,UAAU,YAAY,OAAO,KAAK,OAAO,MAAM,CAAC;EACxF;CACD;CACA,mBAAmB;EAClB,OAAO,2BAA2B,eAAe,KAAK,SAAS,EAAE;CAClE;CACA,qBAAqB;EACpB,OAAO,CAAC;CACT;AACD;AACA,IAAI,kBAAkB,cAAc,wBAAwB;CAC3D,cAAc;CACd,iBAAiB;CACjB;;CAEA;CACA;CACA,YAAY,cAAc,WAAW;EACpC,MAAM;EACN,KAAK,eAAe;EACpB,KAAK,YAAY;EACjB,KAAK,QAAQ,gBAAgB,aAAa,MAAM;EAChD,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,kFAAkF,KAAK,aAAa,gEAAgE,EAAE,MAAM;GAC/P,SAAS,KAAK;GACd,WAAW,KAAK;EACjB,EAAE,CAAC;EACH,MAAM,aAAa,eAAe,KAAK,YAAY;EACnD,MAAM,WAAW,eAAe,KAAK,SAAS;EAC9C,MAAM,cAAc,MAAM,QAAQ,sBAAsB,WAAW,aAAa,CAAC;EACjF,MAAM,WAAW,MAAM,QAAQ,sBAAsB,SAAS,YAAY,CAAC;EAC3E,MAAM,UAAU,mBAAmB,KAAK,SAAS;EACjD,MAAM,YAAY,sBAAsB,KAAK,cAAc,KAAK,SAAS,IAAI,MAAM,QAAQ,sBAAsB,eAAe,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK;EAC/J,MAAM,YAAY,MAAM,QAAQ,sBAAsB,SAAS,aAAa,CAAC;EAC7E,MAAM,aAAa,MAAM,QAAQ,sBAAsB,WAAW,YAAY,CAAC;EAC/E,OAAO;GACN,IAAI,eAAe,KAAK;GACxB,OAAO,KAAK;GACZ,SAAS,iBAAiB,KAAK,aAAa,MAAM,KAAK,UAAU;GACjE,gBAAgB;GAChB,QAAQ;IACP,IAAI;IACJ,SAAS,mBAAmB,SAAS,KAAK,SAAS;GACpD;GACA,UAAU;IACT,KAAK,iBAAiB,KAAK,aAAa,WAAW,YAAY,KAAK,YAAY,MAAM;IACtF,KAAK,iBAAiB,KAAK,UAAU,mBAAmB,SAAS,KAAK,SAAS,MAAM;IACrF,GAAG,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,QAAQ,0IAA0I,UAAU,KAAK,UAAU,MAAM,CAAC;GACzO;GACA,SAAS,iBAAiB,KAAK,cAAc,KAAK,SAAS;GAC3D,WAAW,CAAC,KAAK,iBAAiB,KAAK,UAAU,WAAW,UAAU,KAAK,UAAU,MAAM,GAAG,KAAK,iBAAiB,KAAK,aAAa,qBAAqB,WAAW,KAAK,WAAW,MAAM,CAAC;EAC9L;CACD;CACA,mBAAmB;EAClB,OAAO,gCAAgC,eAAe,KAAK,YAAY,EAAE,QAAQ,eAAe,KAAK,SAAS,EAAE;CACjH;CACA,qBAAqB;EACpB,OAAO,CAAC;CACT;AACD;AACA,IAAI,oBAAoB,cAAc,wBAAwB;CAC7D,cAAc;CACd;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,YAAY,MAAM;EACjB,MAAM;EACN,KAAK,YAAY,KAAK;EACtB,KAAK,gBAAgB,KAAK;EAC1B,KAAK,oBAAoB,KAAK;EAC9B,KAAK,UAAU,KAAK;EACpB,KAAK,UAAU,KAAK;EACpB,KAAK,aAAa,KAAK;EACvB,KAAK,iBAAiB,KAAK;EAC3B,KAAK,QAAQ,kBAAkB,KAAK;EACpC,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,oFAAoF,KAAK,UAAU,gEAAgE,EAAE,MAAM;GAC9P,SAAS,KAAK;GACd,WAAW,KAAK;EACjB,EAAE,CAAC;EACH,OAAO,cAAc;GACpB,WAAW,KAAK;GAChB,eAAe,KAAK;GACpB,mBAAmB,KAAK;GACxB,SAAS,KAAK;GACd,SAAS,KAAK;GACd,YAAY,KAAK;GACjB,gBAAgB,KAAK;EACtB,GAAG,OAAO;CACX;CACA,mBAAmB;EAClB,OAAO,sBAAsB,eAAe;GAC3C,CAAC,aAAa,eAAe,KAAK,SAAS,CAAC;GAC5C,CAAC,iBAAiB,gBAAgB,KAAK,aAAa,CAAC;GACrD,CAAC,qBAAqB,eAAe,KAAK,iBAAiB,CAAC;GAC5D,CAAC,WAAW,eAAe,KAAK,OAAO,CAAC;GACxC,CAAC,WAAW,eAAe,KAAK,OAAO,CAAC;GACxC,CAAC,cAAc,cAAc,KAAK,WAAW,IAAI,eAAe,CAAC,CAAC;GAClE,CAAC,kBAAkB,eAAe,KAAK,cAAc,CAAC;EACvD,CAAC,EAAE;CACJ;CACA,qBAAqB;EACpB,OAAO,CAAC;CACT;AACD;AACA,IAAI,gBAAgB,cAAc,wBAAwB;CACzD,cAAc;CACd,iBAAiB;CACjB;CACA;CACA;CACA;CACA,YAAY,WAAW,QAAQ;EAC9B,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,aAAa,OAAO;EACzB,KAAK,SAAS;EACd,KAAK,QAAQ,cAAc,OAAO,KAAK,MAAM;EAC7C,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,iFAAiF,KAAK,OAAO,KAAK,cAAc,KAAK,UAAU,gEAAgE,EAAE,MAAM;GAC1R,SAAS,KAAK;GACd,WAAW,KAAK;GAChB,YAAY,KAAK,OAAO;EACzB,EAAE,CAAC;EACH,OAAO,UAAU,KAAK,WAAW,KAAK,QAAQ,OAAO;CACtD;CACA,mBAAmB;EAClB,OAAO,2BAA2B,eAAe,KAAK,SAAS,EAAE,YAAY,iBAAiB,KAAK,MAAM,EAAE;CAC5G;CACA,qBAAqB;EACpB,OAAO,CAAC;CACT;AACD;AACA,IAAI,iBAAiB,cAAc,wBAAwB;CAC1D,cAAc;CACd,iBAAiB;CACjB;CACA;CACA;CACA,YAAY,WAAW,YAAY;EAClC,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,aAAa;EAClB,KAAK,QAAQ,eAAe,WAAW,MAAM;EAC7C,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,kFAAkF,KAAK,WAAW,cAAc,KAAK,UAAU,gEAAgE,EAAE,MAAM;GAC1R,SAAS,KAAK;GACd,WAAW,KAAK;GAChB,YAAY,KAAK;EAClB,EAAE,CAAC;EACH,MAAM,SAAS,gBAAgB,KAAK,WAAW,KAAK,UAAU;EAC9D,MAAM,UAAU,MAAM,QAAQ,sBAAsB,OAAO,cAAc,CAAC;EAC1E,MAAM,SAAS,MAAM,QAAQ,sBAAsB,OAAO,aAAa,CAAC;EACxE,OAAO;GACN,IAAI,cAAc,KAAK,UAAU,GAAG,KAAK;GACzC,OAAO,eAAe,KAAK,WAAW,MAAM,KAAK;GACjD,SAAS,gBAAgB,KAAK,WAAW,MAAM,KAAK,UAAU;GAC9D,gBAAgB;GAChB,QAAQ;IACP,IAAI;IACJ,SAAS,mBAAmB,UAAU,KAAK,YAAY,KAAK,SAAS;GACtE;GACA,UAAU,CAAC,KAAK,kBAAkB,KAAK,WAAW,eAAe,KAAK,UAAU,IAAI,QAAQ,KAAK,QAAQ,MAAM,CAAC;GAChH,SAAS,CAAC,KAAK,gBAAgB,KAAK,WAAW,UAAU,KAAK,UAAU,IAAI,qBAAqB,KAAK,WAAW,KAAK,UAAU,CAAC,CAAC;GAClI,WAAW,CAAC,KAAK,kBAAkB,KAAK,WAAW,kBAAkB,KAAK,UAAU,IAAI,OAAO,KAAK,OAAO,MAAM,CAAC;EACnH;CACD;CACA,mBAAmB;EAClB,OAAO,4BAA4B,eAAe,KAAK,SAAS,EAAE,YAAY,eAAe,KAAK,UAAU,EAAE;CAC/G;CACA,qBAAqB;EACpB,OAAO,CAAC;CACT;AACD;AACA,IAAI,kBAAkB,cAAc,wBAAwB;CAC3D,cAAc;CACd,iBAAiB;CACjB;CACA;CACA;CACA;CACA,YAAY,WAAW,WAAW,SAAS;EAC1C,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,YAAY;EACjB,KAAK,UAAU;EACf,KAAK,QAAQ,gBAAgB,UAAU,MAAM;EAC7C,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,kFAAkF,KAAK,UAAU,cAAc,KAAK,UAAU,gEAAgE,EAAE,MAAM;GACzR,SAAS,KAAK;GACd,WAAW,KAAK;GAChB,WAAW,KAAK;EACjB,EAAE,CAAC;EACH,MAAM,SAAS,eAAe,KAAK,SAAS;EAC5C,MAAM,SAAS,MAAM,QAAQ,sBAAsB,OAAO,YAAY,CAAC;EACvE,MAAM,UAAU,MAAM,QAAQ,sBAAsB,OAAO,aAAa,CAAC;EACzE,OAAO;GACN,IAAI,SAAS,KAAK,UAAU,GAAG,KAAK;GACpC,OAAO,gBAAgB,KAAK,UAAU,MAAM,KAAK;GACjD,SAAS,iBAAiB,KAAK,UAAU,MAAM,KAAK;GACpD,gBAAgB;GAChB,QAAQ;IACP,IAAI;IACJ,SAAS,mBAAmB,SAAS,KAAK,WAAW,KAAK,SAAS;GACpE;GACA,UAAU,CAAC,KAAK,iBAAiB,KAAK,UAAU,eAAe,OAAO,KAAK,OAAO,MAAM,CAAC;GACzF,SAAS,CAAC,KAAK,iBAAiB,KAAK,UAAU,IAAI,oBAAoB,KAAK,WAAW,KAAK,WAAW,KAAK,OAAO,CAAC,CAAC;GACrH,WAAW,CAAC,KAAK,iBAAiB,KAAK,UAAU,WAAW,QAAQ,KAAK,QAAQ,MAAM,CAAC;EACzF;CACD;CACA,mBAAmB;EAClB,OAAO,6BAA6B,eAAe,KAAK,SAAS,EAAE,WAAW,eAAe,KAAK,SAAS,EAAE,aAAa,eAAe,KAAK,OAAO,EAAE;CACxJ;CACA,qBAAqB;EACpB,OAAO,CAAC;CACT;AACD;AACA,IAAI,gBAAgB,cAAc,wBAAwB;CACzD,cAAc;CACd,iBAAiB;CACjB;CACA;CACA;CACA,YAAY,WAAW,WAAW;EACjC,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,YAAY;EACjB,KAAK,QAAQ,cAAc,UAAU,MAAM;EAC3C,KAAK,OAAO;CACb;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,YAAY,KAAK,GAAG,MAAM,YAAY,0CAA0C,gFAAgF,KAAK,UAAU,cAAc,KAAK,UAAU,gEAAgE,EAAE,MAAM;GACvR,SAAS,KAAK;GACd,WAAW,KAAK;GAChB,WAAW,KAAK;EACjB,EAAE,CAAC;EACH,MAAM,SAAS,eAAe,KAAK,SAAS;EAC5C,MAAM,UAAU,MAAM,QAAQ,sBAAsB,OAAO,aAAa,CAAC;EACzE,MAAM,SAAS,MAAM,QAAQ,sBAAsB,OAAO,YAAY,CAAC;EACvE,OAAO;GACN,IAAI,aAAa,KAAK,UAAU,GAAG,KAAK;GACxC,OAAO,cAAc,KAAK,UAAU,MAAM,KAAK;GAC/C,SAAS,eAAe,KAAK,UAAU,MAAM,KAAK,UAAU;GAC5D,gBAAgB;GAChB,QAAQ;IACP,IAAI;IACJ,SAAS,mBAAmB,SAAS,KAAK,WAAW,KAAK,SAAS;GACpE;GACA,UAAU,CAAC,KAAK,iBAAiB,KAAK,UAAU,WAAW,QAAQ,KAAK,QAAQ,MAAM,CAAC;GACvF,SAAS,CAAC,KAAK,eAAe,KAAK,UAAU,IAAI,kBAAkB,KAAK,SAAS,CAAC,CAAC;GACnF,WAAW,CAAC,KAAK,iBAAiB,KAAK,UAAU,YAAY,OAAO,KAAK,OAAO,MAAM,CAAC;EACxF;CACD;CACA,mBAAmB;EAClB,OAAO,2BAA2B,eAAe,KAAK,SAAS,EAAE,WAAW,eAAe,KAAK,SAAS,EAAE;CAC5G;CACA,qBAAqB;EACpB,OAAO,CAAC;CACT;AACD;;;;;;;;;;;;;AAaA,IAAI,oBAAoB,cAAc,wBAAwB;CAC7D,cAAc;CACd,iBAAiB;CACjB;CACA;CACA;CACA;CACA,YAAY,IAAI,OAAO,WAAW,YAAY;EAC7C,MAAM;EACN,KAAK,KAAK;EACV,KAAK,QAAQ;EACb,KAAK,YAAY;EACjB,KAAK,aAAa;EAClB,KAAK,OAAO;CACb;CACA,KAAK,UAAU;EACd,MAAM,yBAAyB,KAAK,KAAK;CAC1C;CACA,mBAAmB;EAClB,MAAM,OAAO,GAAG,KAAK,UAAU,GAAG,KAAK,WAAW;EAClD,OAAO;GACN;GACA,SAAS,eAAe,KAAK,EAAE,EAAE;GACjC,YAAY,eAAe,KAAK,KAAK,EAAE;GACvC,YAAY,eAAe,KAAK,SAAS,EAAE;GAC3C,kBAAkB,eAAe,iBAAiB,KAAK,WAAW,aAAa,KAAK,WAAW,EAAE;GACjG,4BAA4B,eAAe,IAAI,EAAE;GACjD;EACD,CAAC,CAAC,KAAK,IAAI;CACZ;CACA,qBAAqB;EACpB,OAAO,CAAC;GACP,iBAAiB;GACjB,QAAQ,KAAK;EACd,GAAG;GACF,iBAAiB;GACjB,QAAQ;EACT,CAAC;CACF;AACD;;;;;;;;;;AAUA,IAAI,aAAa,cAAc,wBAAwB;CACtD,cAAc;CACd;CACA;CACA;CACA,YAAY,IAAI;EACf,MAAM;EACN,KAAK,KAAK;EACV,KAAK,QAAQ,GAAG;EAChB,KAAK,iBAAiB,GAAG;EACzB,KAAK,OAAO;CACb;CACA,KAAK,UAAU;EACd,OAAO,KAAK;CACb;CACA,mBAAmB;EAClB,OAAO,UAAU,eAAe,KAAK,EAAE,EAAE;CAC1C;AACD;AACA,SAAS,qBAAqB,SAAS;CACtC,OAAO,OAAO,QAAQ,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,YAAY,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;AACnG;AACA,SAAS,gBAAgB,OAAO;CAC/B,OAAO,UAAU,KAAK,IAAI,KAAK,IAAI,eAAe,KAAK;AACxD;AACA,SAAS,iBAAiB,QAAQ;CACjC,OAAO,eAAe,qBAAqB;EAC1C,MAAM,eAAe,OAAO,IAAI;EAChC,SAAS,eAAe,OAAO,OAAO;EACtC,SAAS,OAAO,YAAY,KAAK,IAAI,KAAK,IAAI,kBAAkB,OAAO,OAAO;EAC9E,UAAU,gBAAgB,OAAO,QAAQ;EACzC,UAAU,eAAe,OAAO,QAAQ;EACxC,+BAA+B,gBAAgB,OAAO,6BAA6B;CACpF,CAAC,CAAC;AACH;AACA,SAAS,gBAAgB,OAAO;CAC/B,OAAO,eAAe,qBAAqB;EAC1C,SAAS,cAAc,MAAM,QAAQ,IAAI,gBAAgB,CAAC;EAC1D,YAAY,gBAAgB,MAAM,UAAU;EAC5C,SAAS,gBAAgB,MAAM,OAAO;EACtC,aAAa,gBAAgB,MAAM,WAAW;CAC/C,CAAC,CAAC;AACH;AACA,SAAS,kBAAkB,eAAe;CACzC,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,aAAa;CACzE,OAAO,eAAe,qBAAqB;EAC1C,MAAM,eAAe,cAAc,IAAI;EACvC,YAAY,mBAAmB,cAAc,UAAU;CACxD,CAAC,CAAC;AACH;AACA,SAAS,gBAAgB,WAAW;CACnC,IAAI,SAAS,WAAW,OAAO,eAAe,qBAAqB;EAClE,aAAa,eAAe,UAAU,WAAW;EACjD,KAAK,mBAAmB,UAAU,GAAG;CACtC,CAAC,CAAC;CACF,OAAO,eAAe,qBAAqB;EAC1C,aAAa,eAAe,UAAU,WAAW;EACjD,eAAe,eAAe,UAAU,aAAa;CACtD,CAAC,CAAC;AACH"}