@prisma/orm-framework 8.0.0-rc.1-dev.45 → 8.0.0-rc.10

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 (205) hide show
  1. package/README.md +1 -5
  2. package/dist/{apply-specifier-default-control-policy-CAxiXxKg.d.mts → apply-specifier-default-control-policy-C2Njpc_G.d.mts} +2 -2
  3. package/dist/apply-specifier-default-control-policy-C2Njpc_G.d.mts.map +1 -0
  4. package/dist/{assertions-Cz-GWH8P.mjs → assertions-Dw1lZz_Q.mjs} +2 -2
  5. package/dist/{assertions-Cz-GWH8P.mjs.map → assertions-Dw1lZz_Q.mjs.map} +1 -1
  6. package/dist/authoring-D2ngo2MB.d.mts +1 -0
  7. package/dist/{canonicalization-DFpB09nP-4OdB2nsy.d.mts → canonicalization-BAvRuZ2i-IwsqxGme.d.mts} +3 -3
  8. package/dist/{canonicalization-DFpB09nP-4OdB2nsy.d.mts.map → canonicalization-BAvRuZ2i-IwsqxGme.d.mts.map} +1 -1
  9. package/dist/{capabilities-BCEONw9w-C-lo3rF8.mjs → capabilities-BzwH_XMZ-CkgWaxF9.mjs} +3 -3
  10. package/dist/{capabilities-BCEONw9w-C-lo3rF8.mjs.map → capabilities-BzwH_XMZ-CkgWaxF9.mjs.map} +1 -1
  11. package/dist/{codec-Cd0QcxAx.mjs → codec-DWYH-Ra4.mjs} +3 -3
  12. package/dist/{codec-Cd0QcxAx.mjs.map → codec-DWYH-Ra4.mjs.map} +1 -1
  13. package/dist/{codec-Ce07W3Mz.d.mts → codec-DxAIshoO.d.mts} +6 -9
  14. package/dist/{codec-Ce07W3Mz.d.mts.map → codec-DxAIshoO.d.mts.map} +1 -1
  15. package/dist/{codec-types-D6VRj2RE-BLElXc-O.d.mts → codec-types-nVMtogur-CYBdUQUH.d.mts} +4 -4
  16. package/dist/{codec-types-D6VRj2RE-BLElXc-O.d.mts.map → codec-types-nVMtogur-CYBdUQUH.d.mts.map} +1 -1
  17. package/dist/{codec-types-DcNvNeY1-BO6kUiH0.mjs → codec-types-smcGzGq6-BohNffPc.mjs} +3 -3
  18. package/dist/{codec-types-DcNvNeY1-BO6kUiH0.mjs.map → codec-types-smcGzGq6-BohNffPc.mjs.map} +1 -1
  19. package/dist/{components-CGA_WwEG.d.mts → components-CQrZAxZu.d.mts} +4 -4
  20. package/dist/{components-CGA_WwEG.d.mts.map → components-CQrZAxZu.d.mts.map} +1 -1
  21. package/dist/{components-dZRz3T5y.mjs → components-CnV-6irM.mjs} +2 -2
  22. package/dist/{components-dZRz3T5y.mjs.map → components-CnV-6irM.mjs.map} +1 -1
  23. package/dist/components.d.mts +16 -16
  24. package/dist/components.mjs +10 -10
  25. package/dist/components__authoring.d.mts +3 -3
  26. package/dist/components__authoring.mjs +1 -1
  27. package/dist/components__codec.d.mts +2 -2
  28. package/dist/components__codec.mjs +3 -3
  29. package/dist/components__components.d.mts +3 -3
  30. package/dist/components__components.mjs +2 -2
  31. package/dist/components__control.d.mts +2 -2
  32. package/dist/components__control.mjs +1 -1
  33. package/dist/components__emission.d.mts +3 -3
  34. package/dist/components__execution.d.mts +1 -1
  35. package/dist/components__ir.d.mts +1 -1
  36. package/dist/components__ir.mjs +1 -1
  37. package/dist/components__psl-ast.d.mts +4 -4
  38. package/dist/components__runtime.d.mts +2 -2
  39. package/dist/components__runtime.mjs +2 -2
  40. package/dist/{config-types-CW4PDwMC.d.mts → config-types-CeduUYkY.d.mts} +12 -25
  41. package/dist/{config-types-CW4PDwMC.d.mts.map → config-types-CeduUYkY.d.mts.map} +1 -1
  42. package/dist/config-types-D_UCRNbm.mjs +38 -0
  43. package/dist/config-types-D_UCRNbm.mjs.map +1 -0
  44. package/dist/config.d.mts +2 -2
  45. package/dist/config.mjs +2 -2
  46. package/dist/config__config-types.d.mts +2 -2
  47. package/dist/config__config-types.mjs +2 -2
  48. package/dist/contract-authoring.d.mts +39 -4
  49. package/dist/contract-authoring.d.mts.map +1 -1
  50. package/dist/contract-authoring.mjs +66 -3
  51. package/dist/contract-authoring.mjs.map +1 -1
  52. package/dist/{contract-types-CkdMH7F7-9EHXSwbH.d.mts → contract-types-Bje5yT4f-0D1Z41Lq.d.mts} +7 -7
  53. package/dist/{contract-types-CkdMH7F7-9EHXSwbH.d.mts.map → contract-types-Bje5yT4f-0D1Z41Lq.d.mts.map} +1 -1
  54. package/dist/contract.d.mts +11 -11
  55. package/dist/contract.mjs +3 -3
  56. package/dist/contract__apply-specifier-default-control-policy.d.mts +1 -1
  57. package/dist/contract__default-namespace.mjs +1 -1
  58. package/dist/contract__enum-accessor.d.mts +1 -1
  59. package/dist/contract__hashing-utils.d.mts +1 -1
  60. package/dist/contract__hashing.d.mts +2 -2
  61. package/dist/contract__resolve-domain-model.d.mts +1 -1
  62. package/dist/contract__types.d.mts +5 -5
  63. package/dist/contract__types.mjs +2 -2
  64. package/dist/contract__validate-domain.d.mts +1 -1
  65. package/dist/contract__validate-domain.mjs +1 -1
  66. package/dist/{control-DLEm6u5m.mjs → control-DR0zF1b7.mjs} +12 -5
  67. package/dist/control-DR0zF1b7.mjs.map +1 -0
  68. package/dist/{control-C9JfxzPo-CxCL2sxo.mjs → control-ZdvxNTVU-cVV8u7aQ.mjs} +15 -15
  69. package/dist/control-ZdvxNTVU-cVV8u7aQ.mjs.map +1 -0
  70. package/dist/{control-BF8qzdnM.d.mts → control-eH2MIHqA.d.mts} +12 -11
  71. package/dist/{control-BF8qzdnM.d.mts.map → control-eH2MIHqA.d.mts.map} +1 -1
  72. package/dist/{control-ql9N9u4f-r3Vv41kZ.d.mts → control-ql9N9u4f-D5sGnPR-.d.mts} +2 -2
  73. package/dist/{control-ql9N9u4f-r3Vv41kZ.d.mts.map → control-ql9N9u4f-D5sGnPR-.d.mts.map} +1 -1
  74. package/dist/{default-namespace-D4vCwkXg-lzVN7gSc.mjs → default-namespace-D4vCwkXg-BEZbN38y.mjs} +2 -2
  75. package/dist/{default-namespace-D4vCwkXg-lzVN7gSc.mjs.map → default-namespace-D4vCwkXg-BEZbN38y.mjs.map} +1 -1
  76. package/dist/{dist-Dqbo77p7.mjs → dist-DUlexZHp.mjs} +3 -3
  77. package/dist/{dist-Dqbo77p7.mjs.map → dist-DUlexZHp.mjs.map} +1 -1
  78. package/dist/{domain-envelope-D6Wn9AmZ-BqZKTT9U.d.mts → domain-envelope-CENjHN4U-BIIt9bl4.d.mts} +17 -5
  79. package/dist/{domain-envelope-D6Wn9AmZ-BqZKTT9U.d.mts.map → domain-envelope-CENjHN4U-BIIt9bl4.d.mts.map} +1 -1
  80. package/dist/emission-BWD6Z6w9.d.mts +2 -0
  81. package/dist/{emission-types-DLXP34Ki-CFms3VrX.d.mts → emission-types-BoSJNKfQ-B_19ILPP.d.mts} +10 -6
  82. package/dist/emission-types-BoSJNKfQ-B_19ILPP.d.mts.map +1 -0
  83. package/dist/{enum-accessor-PH5vjghI.d.mts → enum-accessor-PSFq-BB1.d.mts} +3 -3
  84. package/dist/{enum-accessor-PH5vjghI.d.mts.map → enum-accessor-PSFq-BB1.d.mts.map} +1 -1
  85. package/dist/errors.d.mts +3 -3
  86. package/dist/errors.mjs +3 -3
  87. package/dist/errors__control.d.mts +1 -1
  88. package/dist/errors__control.mjs +1 -1
  89. package/dist/errors__execution.d.mts +1 -1
  90. package/dist/errors__execution.mjs +1 -1
  91. package/dist/errors__migration.d.mts +1 -1
  92. package/dist/errors__migration.mjs +1 -1
  93. package/dist/{execution-CSnQT8EX.d.mts → execution-BDzJVN0t.d.mts} +2 -2
  94. package/dist/{execution-CSnQT8EX.d.mts.map → execution-BDzJVN0t.d.mts.map} +1 -1
  95. package/dist/{execution-C_Bu-Fia.mjs → execution-BEVehm0I.mjs} +8 -8
  96. package/dist/execution-BEVehm0I.mjs.map +1 -0
  97. package/dist/{execution-Cyl2dXxX.d.mts → execution-BpT2YjbZ.d.mts} +4 -4
  98. package/dist/{execution-Cyl2dXxX.d.mts.map → execution-BpT2YjbZ.d.mts.map} +1 -1
  99. package/dist/{framework-authoring-BhctBwih-DQ_6noDM.d.mts → framework-authoring-BYgPL2X6-DMKO0Z_k.d.mts} +17 -12
  100. package/dist/framework-authoring-BYgPL2X6-DMKO0Z_k.d.mts.map +1 -0
  101. package/dist/{framework-authoring-CDEvlouU-DKklu-fL.mjs → framework-authoring-BvxZnsPY-DlD1nwU5.mjs} +34 -19
  102. package/dist/framework-authoring-BvxZnsPY-DlD1nwU5.mjs.map +1 -0
  103. package/dist/{framework-components-hZ2tO-KH-CdRXBOYd.d.mts → framework-components-CDppKaT_-DcMHokB8.d.mts} +9 -6
  104. package/dist/{framework-components-hZ2tO-KH-CdRXBOYd.d.mts.map → framework-components-CDppKaT_-DcMHokB8.d.mts.map} +1 -1
  105. package/dist/{hashing-CccSPELN.d.mts → hashing-BTx0s6Zw.d.mts} +3 -3
  106. package/dist/{hashing-CccSPELN.d.mts.map → hashing-BTx0s6Zw.d.mts.map} +1 -1
  107. package/dist/{hashing-utils-qKu59RSC.d.mts → hashing-utils-Bh9PVd4J.d.mts} +2 -2
  108. package/dist/{hashing-utils-qKu59RSC.d.mts.map → hashing-utils-Bh9PVd4J.d.mts.map} +1 -1
  109. package/dist/ids.d.mts +2 -2
  110. package/dist/ids.mjs +1 -1
  111. package/dist/ids__runtime.d.mts +1 -1
  112. package/dist/ids__runtime.mjs +1 -1
  113. package/dist/{internal-error-kK8QvlDE.d.mts → internal-error-2fJ9fcZX.d.mts} +2 -2
  114. package/dist/{internal-error-kK8QvlDE.d.mts.map → internal-error-2fJ9fcZX.d.mts.map} +1 -1
  115. package/dist/{internal-error-BIc-ehme-ouBQPoEL.mjs → internal-error-ChGYPVpq-DhUD05u0.mjs} +3 -3
  116. package/dist/internal-error-ChGYPVpq-DhUD05u0.mjs.map +1 -0
  117. package/dist/{ir-BvE7L9FK.d.mts → ir-BGaPKem0.d.mts} +2 -2
  118. package/dist/{ir-BvE7L9FK.d.mts.map → ir-BGaPKem0.d.mts.map} +1 -1
  119. package/dist/{ir-ChmSSAhX.mjs → ir-CV5d1FJ0.mjs} +2 -2
  120. package/dist/{ir-ChmSSAhX.mjs.map → ir-CV5d1FJ0.mjs.map} +1 -1
  121. package/dist/{migration-DOIs8GBr.d.mts → migration-Bdp-ucGZ.d.mts} +3 -3
  122. package/dist/{migration-DOIs8GBr.d.mts.map → migration-Bdp-ucGZ.d.mts.map} +1 -1
  123. package/dist/{migration-5zFMadnp.mjs → migration-S40Rgr7K.mjs} +5 -5
  124. package/dist/migration-S40Rgr7K.mjs.map +1 -0
  125. package/dist/operations.mjs +1 -1
  126. package/dist/{parse-0ZJjj_2N-DhQpSVmQ.d.mts → parse-B5xYL_oV-aGFgfM8N.d.mts} +5 -5
  127. package/dist/{parse-0ZJjj_2N-DhQpSVmQ.d.mts.map → parse-B5xYL_oV-aGFgfM8N.d.mts.map} +1 -1
  128. package/dist/{parse-GbZGfMUj-BFSrD2AN.mjs → parse-GbZGfMUj-C9tHGn-6.mjs} +2 -2
  129. package/dist/{parse-GbZGfMUj-BFSrD2AN.mjs.map → parse-GbZGfMUj-C9tHGn-6.mjs.map} +1 -1
  130. package/dist/{psl-ast-BXZoFQBk.d.mts → psl-ast-BkfQwHjE.d.mts} +4 -4
  131. package/dist/{psl-ast-BXZoFQBk.d.mts.map → psl-ast-BkfQwHjE.d.mts.map} +1 -1
  132. package/dist/{psl-ast-CWJQF8LA-Vr5JNPdn.d.mts → psl-ast-dnXw52MT-1jSUKlC9.d.mts} +4 -4
  133. package/dist/{psl-ast-CWJQF8LA-Vr5JNPdn.d.mts.map → psl-ast-dnXw52MT-1jSUKlC9.d.mts.map} +1 -1
  134. package/dist/psl-parser.d.mts +195 -74
  135. package/dist/psl-parser.d.mts.map +1 -1
  136. package/dist/psl-parser.mjs +213 -46
  137. package/dist/psl-parser.mjs.map +1 -1
  138. package/dist/psl-parser__format.mjs +2 -2
  139. package/dist/psl-parser__interpret.d.mts +32 -5
  140. package/dist/psl-parser__interpret.d.mts.map +1 -1
  141. package/dist/psl-parser__interpret.mjs +25 -2
  142. package/dist/psl-parser__interpret.mjs.map +1 -1
  143. package/dist/psl-parser__syntax.d.mts +1 -1
  144. package/dist/psl-parser__syntax.mjs +1 -1
  145. package/dist/psl-printer.d.mts +6 -6
  146. package/dist/psl-printer.mjs +20 -13
  147. package/dist/psl-printer.mjs.map +1 -1
  148. package/dist/{resolve-codec-BZF8TZh_-D-xORT9Q.mjs → resolve-codec-BLRGmP1f-CydhIhLP.mjs} +6 -9
  149. package/dist/{resolve-codec-BZF8TZh_-D-xORT9Q.mjs.map → resolve-codec-BLRGmP1f-CydhIhLP.mjs.map} +1 -1
  150. package/dist/{resolve-domain-model-BVSb5wS5-C6Yq0dsD.d.mts → resolve-domain-model-DXP2hfI2-D4fWewZQ.d.mts} +3 -3
  151. package/dist/resolve-domain-model-DXP2hfI2-D4fWewZQ.d.mts.map +1 -0
  152. package/dist/{result-CBZ8X9mU.mjs → result-C0NUq1Ok.mjs} +2 -2
  153. package/dist/{result-CBZ8X9mU.mjs.map → result-C0NUq1Ok.mjs.map} +1 -1
  154. package/dist/{runtime-Cuxw8obj.d.mts → runtime-DOHhUPFx.d.mts} +66 -4
  155. package/dist/{runtime-Cuxw8obj.d.mts.map → runtime-DOHhUPFx.d.mts.map} +1 -1
  156. package/dist/{runtime-BqzioOmU.mjs → runtime-DXmHIbAr.mjs} +7 -2
  157. package/dist/{runtime-BqzioOmU.mjs.map → runtime-DXmHIbAr.mjs.map} +1 -1
  158. package/dist/{structured-error-CgiSMpdU.mjs → structured-error-BXbihKQ-.mjs} +3 -3
  159. package/dist/{structured-error-CgiSMpdU.mjs.map → structured-error-BXbihKQ-.mjs.map} +1 -1
  160. package/dist/{structured-error-BsNT4Hun.d.mts → structured-error-Z4iE-fTI.d.mts} +4 -4
  161. package/dist/{structured-error-BsNT4Hun.d.mts.map → structured-error-Z4iE-fTI.d.mts.map} +1 -1
  162. package/dist/suppress-idle-connection-errors-CKrTbp5P.d.mts +18 -0
  163. package/dist/suppress-idle-connection-errors-CKrTbp5P.d.mts.map +1 -0
  164. package/dist/suppress-idle-connection-errors-DzApeUb3.mjs +22 -0
  165. package/dist/suppress-idle-connection-errors-DzApeUb3.mjs.map +1 -0
  166. package/dist/{symbol-table-CZ7EVCTL-CR-ncCpD.d.mts → symbol-table-BeOQBu3C-DduAXEh6.d.mts} +6 -6
  167. package/dist/{symbol-table-CZ7EVCTL-CR-ncCpD.d.mts.map → symbol-table-BeOQBu3C-DduAXEh6.d.mts.map} +1 -1
  168. package/dist/ts-render.mjs +1 -1
  169. package/dist/{types-ByeQhU9p.d.mts → types-BKJi4we0.d.mts} +2 -2
  170. package/dist/{types-ByeQhU9p.d.mts.map → types-BKJi4we0.d.mts.map} +1 -1
  171. package/dist/{types-BnH4zYvN.mjs → types-DG4qHrT8.mjs} +2 -2
  172. package/dist/{types-BnH4zYvN.mjs.map → types-DG4qHrT8.mjs.map} +1 -1
  173. package/dist/{types-import-spec-3mjbVBhI-DQI6BvKU.d.mts → types-import-spec-BijT0b-s-253rIcmj.d.mts} +4 -4
  174. package/dist/{types-import-spec-3mjbVBhI-DQI6BvKU.d.mts.map → types-import-spec-BijT0b-s-253rIcmj.d.mts.map} +1 -1
  175. package/dist/utils.d.mts +4 -3
  176. package/dist/utils.mjs +6 -5
  177. package/dist/utils__assertions.mjs +1 -1
  178. package/dist/utils__internal-error.d.mts +1 -1
  179. package/dist/utils__internal-error.mjs +1 -1
  180. package/dist/utils__result.mjs +1 -1
  181. package/dist/utils__structured-error.d.mts +1 -1
  182. package/dist/utils__structured-error.mjs +1 -1
  183. package/dist/utils__suppress-idle-connection-errors.d.mts +2 -0
  184. package/dist/utils__suppress-idle-connection-errors.mjs +2 -0
  185. package/dist/{validate-domain-BkvFlY3B.mjs → validate-domain-CaT6wlDH.mjs} +15 -1
  186. package/dist/validate-domain-CaT6wlDH.mjs.map +1 -0
  187. package/dist/{validate-domain-BNBs-TVv.d.mts → validate-domain-DJXNOlkP.d.mts} +9 -5
  188. package/dist/validate-domain-DJXNOlkP.d.mts.map +1 -0
  189. package/package.json +19 -18
  190. package/dist/apply-specifier-default-control-policy-CAxiXxKg.d.mts.map +0 -1
  191. package/dist/authoring-B2H-9qCv.d.mts +0 -1
  192. package/dist/config-types-BqhNxw0z.mjs +0 -67
  193. package/dist/config-types-BqhNxw0z.mjs.map +0 -1
  194. package/dist/control-C9JfxzPo-CxCL2sxo.mjs.map +0 -1
  195. package/dist/control-DLEm6u5m.mjs.map +0 -1
  196. package/dist/emission-CmUO03gQ.d.mts +0 -2
  197. package/dist/emission-types-DLXP34Ki-CFms3VrX.d.mts.map +0 -1
  198. package/dist/execution-C_Bu-Fia.mjs.map +0 -1
  199. package/dist/framework-authoring-BhctBwih-DQ_6noDM.d.mts.map +0 -1
  200. package/dist/framework-authoring-CDEvlouU-DKklu-fL.mjs.map +0 -1
  201. package/dist/internal-error-BIc-ehme-ouBQPoEL.mjs.map +0 -1
  202. package/dist/migration-5zFMadnp.mjs.map +0 -1
  203. package/dist/resolve-domain-model-BVSb5wS5-C6Yq0dsD.d.mts.map +0 -1
  204. package/dist/validate-domain-BNBs-TVv.d.mts.map +0 -1
  205. package/dist/validate-domain-BkvFlY3B.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ir-ChmSSAhX.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/ir.mjs"],"sourcesContent":["import { n as runtimeError } from \"./runtime-error-BA9d7XjZ.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { isPlainRecord } from \"@internal/contract/is-plain-record\";\n//#region src/ir/ir-node.ts\nvar IRNodeBase = class {};\n/**\n* Seal an IR class instance after its constructor has assigned all\n* fields. The free-helper form (rather than a `protected freeze()`\n* instance method) keeps the class type structurally narrow so emitted\n* contract literal types remain assignable to their class types.\n*\n* The helper name stays `freezeNode` — it operates on IR nodes\n* regardless of root naming.\n*/\nfunction freezeNode(node) {\n\tObject.freeze(node);\n\treturn node;\n}\n//#endregion\n//#region src/ir/namespace.ts\n/**\n* Reserved sentinel namespace id for the late-bound storage slot —\n* the slot whose binding the target resolves at connection time\n* rather than at authoring time. Postgres uses it for `search_path`\n* late binding; SQLite uses it for the trivial singleton; Mongo uses\n* it for the connection's `db` binding.\n*\n* Materialised target-side as a singleton subclass of the target's\n* `NamespaceBase` concretion that overrides the namespace's\n* qualifier-emission methods to elide the prefix entirely. Call sites\n* stay polymorphic and never branch on `id === UNBOUND_NAMESPACE_ID`\n* — the singleton's overrides drop the qualifier so emitted SQL / Mongo\n* commands look unqualified.\n*\n* The double-underscore decoration marks the id as a framework-reserved\n* coordinate when it appears in a JSON envelope (cold-read-as-reserved\n* — no realistic collision with user-declared namespace names).\n*\n* Encoded as an exported const (rather than scattered string literals)\n* so the sentinel-id invariant is single-sourced: any production-source\n* site that constructs an unbound-namespace singleton imports this\n* constant.\n*/\nconst UNBOUND_NAMESPACE_ID = \"__unbound__\";\nvar NamespaceBase = class extends IRNodeBase {\n\t/**\n\t* Answers \"am I the unbound namespace\" as node behavior, so consumers\n\t* never compare ids against the sentinel. This getter is the single\n\t* encapsulated place the {@link UNBOUND_NAMESPACE_ID} comparison lives.\n\t*/\n\tget isUnbound() {\n\t\treturn this.id === UNBOUND_NAMESPACE_ID;\n\t}\n};\n//#endregion\n//#region src/ir/contract-view.ts\n/**\n* Projects one namespace's `entries` into the view shape: each built-in kind\n* becomes a top-level slot (materialized empty if absent), and the remaining\n* pack-contributed kinds sit under `.entries`. Shared by the single-namespace\n* builder and the namespace-map builder.\n*/\nfunction promoteBuiltinKinds(entries, builtinKinds) {\n\tconst view = {};\n\tconst rest = {};\n\tfor (const [kind, kindMap] of Object.entries(entries)) if (builtinKinds.includes(kind)) view[kind] = kindMap;\n\telse rest[kind] = kindMap;\n\tfor (const kind of builtinKinds) if (!(kind in view)) view[kind] = {};\n\tview[\"entries\"] = rest;\n\treturn blindCast(view);\n}\n/**\n* Builds one namespace's entity view: promotes the given built-in kind slots to\n* top-level for the default (`UNBOUND_NAMESPACE_ID`) namespace. Single-namespace\n* targets (Mongo, SQLite) use this to unwrap their sole namespace to the root.\n*\n* Throws if the contract has no default (`UNBOUND_NAMESPACE_ID`) namespace.\n*/\nfunction buildSingleNamespaceView(storage, builtinKinds) {\n\tconst defaultNs = storage.namespaces[UNBOUND_NAMESPACE_ID];\n\tif (defaultNs === void 0) throw new InternalError(`ContractView: contract has no default namespace (${UNBOUND_NAMESPACE_ID})`);\n\treturn promoteBuiltinKinds(blindCast(defaultNs.entries), builtinKinds);\n}\n/**\n* Builds the namespace-keyed entity-view map (`{ <nsId>: SingleNamespaceView }`)\n* for every namespace in the storage, keyed by raw namespace id. Mirrors\n* `buildNamespacedEnums(domain)` — the storage-side twin.\n*/\nfunction buildNamespacedEntities(storage, builtinKinds) {\n\tconst out = {};\n\tfor (const [nsId, ns] of Object.entries(storage.namespaces)) out[nsId] = promoteBuiltinKinds(blindCast(ns.entries), builtinKinds);\n\treturn blindCast(out);\n}\n//#endregion\n//#region src/ir/domain.ts\n/**\n* Lazy walk over every named domain entity in a {@link ApplicationDomain},\n* yielded as {@link EntityCoordinate} tuples with `plane: 'domain'`.\n*\n* Same structural rules as {@link elementCoordinates} over storage: skip\n* scalar `id`; each other object-valued property is an entity-kind slot.\n*/\nfunction* domainElementCoordinates(domain) {\n\tfor (const [namespaceId, ns] of Object.entries(domain.namespaces)) for (const [entityKind, slot] of Object.entries(ns)) {\n\t\tif (entityKind === \"id\") continue;\n\t\tif (slot === null || typeof slot !== \"object\") continue;\n\t\tfor (const entityName of Object.keys(slot)) yield {\n\t\t\tplane: \"domain\",\n\t\t\tnamespaceId,\n\t\t\tentityKind,\n\t\t\tentityName\n\t\t};\n\t}\n}\n//#endregion\n//#region src/ir/entity-kind.ts\n/**\n* Hydrates a namespace's entities from raw JSON maps into IR class instances.\n*\n* For each kind in `entries`: if the descriptor map has a descriptor,\n* construct each inner-map value; otherwise freeze-and-carry (`'carry'`)\n* or throw naming the kind and nsId (`'fail'`).\n*\n* The single boundary cast hands `value` to `descriptor.construct` as its\n* `Input`. The value satisfies the kind's `Input` either by the\n* entries-input contract at authoring time or by prior `validateStorage`\n* validation at hydration time.\n*/\nfunction hydrateNamespaceEntities(entries, kinds, onUnknown, nsId) {\n\tconst result = {};\n\tfor (const [kind, rawMap] of Object.entries(entries)) {\n\t\tconst descriptor = kinds.get(kind);\n\t\tif (descriptor !== void 0) {\n\t\t\tconst built = {};\n\t\t\tfor (const [name, value] of Object.entries(rawMap)) built[name] = descriptor.construct(blindCast(value));\n\t\t\tresult[kind] = Object.freeze(built);\n\t\t} else if (onUnknown === \"carry\") result[kind] = Object.freeze(rawMap);\n\t\telse throw runtimeError(\"CONTRACT.ENTITY_KIND_UNKNOWN\", `Unknown entries key \"${kind}\" in namespace \"${nsId ?? \"?\"}\"; no hydration factory registered for this entity kind`);\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/ir/storage.ts\n/**\n* Lazy walk over every named storage entity in a `Storage`-shaped\n* value, yielded as {@link EntityCoordinate} tuples with\n* `plane: 'storage'` (the parameter type binds the plane).\n*\n* Iterates each namespace's `entries` kind maps structurally. Skips\n* non-object `entries`; `id` and `kind` are not walked (`kind` is\n* non-enumerable on concretions). For every entity-kind key under\n* `entries` whose value is a non-null object, yields one coordinate per\n* entity name in that map. No family-specific kind vocabulary is required.\n*/\nfunction* elementCoordinates(storage) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) {\n\t\tconst entries = ns.entries;\n\t\tif (entries === null || typeof entries !== \"object\") continue;\n\t\tfor (const [entityKind, kindMap] of Object.entries(entries)) {\n\t\t\tif (kindMap === null || typeof kindMap !== \"object\") continue;\n\t\t\tfor (const entityName of Object.keys(kindMap)) yield {\n\t\t\t\tplane: \"storage\",\n\t\t\t\tnamespaceId,\n\t\t\t\tentityKind,\n\t\t\t\tentityName\n\t\t\t};\n\t\t}\n\t}\n}\n/**\n* Canonical, collision-safe key for an {@link EntityCoordinate}. Encodes each\n* axis individually with `JSON.stringify` before joining with `-`, so no\n* namespace id, entity kind, or entity name can forge a collision by\n* embedding the delimiter itself (e.g. a delimiter of `:` would let\n* `('a', 'b:c', 'd')` collide with `('a:b', 'c', 'd')`) — each component is\n* quoted, and any `-` or `\"` inside it is escaped or safely inside those\n* quotes.\n*\n* The single shared key every coordinate-driven ownership/omission/collision\n* check should use — `contract infer`'s pack-described-element omission and\n* the migration tools' cross-space disjointness check both key on this.\n*/\nfunction coordinateKey(coordinate) {\n\treturn [\n\t\tcoordinate.namespaceId,\n\t\tcoordinate.entityKind,\n\t\tcoordinate.entityName\n\t].map((value) => JSON.stringify(value)).join(\"-\");\n}\n/**\n* Looks up a single entity in a `Storage`-shaped value by its full coordinate.\n* Returns `undefined` if the namespace, entity kind, or entity name is absent.\n* The type parameter is a caller assertion — the walk itself is structural\n* and cannot verify the entity's shape.\n*/\nfunction entityAt(storage, coord) {\n\tconst ns = storage.namespaces[coord.namespaceId];\n\tif (ns === void 0) return void 0;\n\tconst entries = ns.entries;\n\tif (!isPlainRecord(entries)) return void 0;\n\tconst kindMap = entries[coord.entityKind];\n\tif (!isPlainRecord(kindMap)) return void 0;\n\tif (!Object.hasOwn(kindMap, coord.entityName)) return void 0;\n\treturn blindCast(kindMap[coord.entityName]);\n}\n//#endregion\nexport { IRNodeBase, NamespaceBase, UNBOUND_NAMESPACE_ID, buildNamespacedEntities, buildSingleNamespaceView, coordinateKey, domainElementCoordinates, elementCoordinates, entityAt, freezeNode, hydrateNamespaceEntities, isPlainRecord, promoteBuiltinKinds };\n\n//# sourceMappingURL=ir.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"ir-CV5d1FJ0.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/ir.mjs"],"sourcesContent":["import { n as runtimeError } from \"./runtime-error-BA9d7XjZ.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { isPlainRecord } from \"@internal/contract/is-plain-record\";\n//#region src/ir/ir-node.ts\nvar IRNodeBase = class {};\n/**\n* Seal an IR class instance after its constructor has assigned all\n* fields. The free-helper form (rather than a `protected freeze()`\n* instance method) keeps the class type structurally narrow so emitted\n* contract literal types remain assignable to their class types.\n*\n* The helper name stays `freezeNode` — it operates on IR nodes\n* regardless of root naming.\n*/\nfunction freezeNode(node) {\n\tObject.freeze(node);\n\treturn node;\n}\n//#endregion\n//#region src/ir/namespace.ts\n/**\n* Reserved sentinel namespace id for the late-bound storage slot —\n* the slot whose binding the target resolves at connection time\n* rather than at authoring time. Postgres uses it for `search_path`\n* late binding; SQLite uses it for the trivial singleton; Mongo uses\n* it for the connection's `db` binding.\n*\n* Materialised target-side as a singleton subclass of the target's\n* `NamespaceBase` concretion that overrides the namespace's\n* qualifier-emission methods to elide the prefix entirely. Call sites\n* stay polymorphic and never branch on `id === UNBOUND_NAMESPACE_ID`\n* — the singleton's overrides drop the qualifier so emitted SQL / Mongo\n* commands look unqualified.\n*\n* The double-underscore decoration marks the id as a framework-reserved\n* coordinate when it appears in a JSON envelope (cold-read-as-reserved\n* — no realistic collision with user-declared namespace names).\n*\n* Encoded as an exported const (rather than scattered string literals)\n* so the sentinel-id invariant is single-sourced: any production-source\n* site that constructs an unbound-namespace singleton imports this\n* constant.\n*/\nconst UNBOUND_NAMESPACE_ID = \"__unbound__\";\nvar NamespaceBase = class extends IRNodeBase {\n\t/**\n\t* Answers \"am I the unbound namespace\" as node behavior, so consumers\n\t* never compare ids against the sentinel. This getter is the single\n\t* encapsulated place the {@link UNBOUND_NAMESPACE_ID} comparison lives.\n\t*/\n\tget isUnbound() {\n\t\treturn this.id === UNBOUND_NAMESPACE_ID;\n\t}\n};\n//#endregion\n//#region src/ir/contract-view.ts\n/**\n* Projects one namespace's `entries` into the view shape: each built-in kind\n* becomes a top-level slot (materialized empty if absent), and the remaining\n* pack-contributed kinds sit under `.entries`. Shared by the single-namespace\n* builder and the namespace-map builder.\n*/\nfunction promoteBuiltinKinds(entries, builtinKinds) {\n\tconst view = {};\n\tconst rest = {};\n\tfor (const [kind, kindMap] of Object.entries(entries)) if (builtinKinds.includes(kind)) view[kind] = kindMap;\n\telse rest[kind] = kindMap;\n\tfor (const kind of builtinKinds) if (!(kind in view)) view[kind] = {};\n\tview[\"entries\"] = rest;\n\treturn blindCast(view);\n}\n/**\n* Builds one namespace's entity view: promotes the given built-in kind slots to\n* top-level for the default (`UNBOUND_NAMESPACE_ID`) namespace. Single-namespace\n* targets (Mongo, SQLite) use this to unwrap their sole namespace to the root.\n*\n* Throws if the contract has no default (`UNBOUND_NAMESPACE_ID`) namespace.\n*/\nfunction buildSingleNamespaceView(storage, builtinKinds) {\n\tconst defaultNs = storage.namespaces[UNBOUND_NAMESPACE_ID];\n\tif (defaultNs === void 0) throw new InternalError(`ContractView: contract has no default namespace (${UNBOUND_NAMESPACE_ID})`);\n\treturn promoteBuiltinKinds(blindCast(defaultNs.entries), builtinKinds);\n}\n/**\n* Builds the namespace-keyed entity-view map (`{ <nsId>: SingleNamespaceView }`)\n* for every namespace in the storage, keyed by raw namespace id. Mirrors\n* `buildNamespacedEnums(domain)` — the storage-side twin.\n*/\nfunction buildNamespacedEntities(storage, builtinKinds) {\n\tconst out = {};\n\tfor (const [nsId, ns] of Object.entries(storage.namespaces)) out[nsId] = promoteBuiltinKinds(blindCast(ns.entries), builtinKinds);\n\treturn blindCast(out);\n}\n//#endregion\n//#region src/ir/domain.ts\n/**\n* Lazy walk over every named domain entity in a {@link ApplicationDomain},\n* yielded as {@link EntityCoordinate} tuples with `plane: 'domain'`.\n*\n* Same structural rules as {@link elementCoordinates} over storage: skip\n* scalar `id`; each other object-valued property is an entity-kind slot.\n*/\nfunction* domainElementCoordinates(domain) {\n\tfor (const [namespaceId, ns] of Object.entries(domain.namespaces)) for (const [entityKind, slot] of Object.entries(ns)) {\n\t\tif (entityKind === \"id\") continue;\n\t\tif (slot === null || typeof slot !== \"object\") continue;\n\t\tfor (const entityName of Object.keys(slot)) yield {\n\t\t\tplane: \"domain\",\n\t\t\tnamespaceId,\n\t\t\tentityKind,\n\t\t\tentityName\n\t\t};\n\t}\n}\n//#endregion\n//#region src/ir/entity-kind.ts\n/**\n* Hydrates a namespace's entities from raw JSON maps into IR class instances.\n*\n* For each kind in `entries`: if the descriptor map has a descriptor,\n* construct each inner-map value; otherwise freeze-and-carry (`'carry'`)\n* or throw naming the kind and nsId (`'fail'`).\n*\n* The single boundary cast hands `value` to `descriptor.construct` as its\n* `Input`. The value satisfies the kind's `Input` either by the\n* entries-input contract at authoring time or by prior `validateStorage`\n* validation at hydration time.\n*/\nfunction hydrateNamespaceEntities(entries, kinds, onUnknown, nsId) {\n\tconst result = {};\n\tfor (const [kind, rawMap] of Object.entries(entries)) {\n\t\tconst descriptor = kinds.get(kind);\n\t\tif (descriptor !== void 0) {\n\t\t\tconst built = {};\n\t\t\tfor (const [name, value] of Object.entries(rawMap)) built[name] = descriptor.construct(blindCast(value));\n\t\t\tresult[kind] = Object.freeze(built);\n\t\t} else if (onUnknown === \"carry\") result[kind] = Object.freeze(rawMap);\n\t\telse throw runtimeError(\"CONTRACT.ENTITY_KIND_UNKNOWN\", `Unknown entries key \"${kind}\" in namespace \"${nsId ?? \"?\"}\"; no hydration factory registered for this entity kind`);\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/ir/storage.ts\n/**\n* Lazy walk over every named storage entity in a `Storage`-shaped\n* value, yielded as {@link EntityCoordinate} tuples with\n* `plane: 'storage'` (the parameter type binds the plane).\n*\n* Iterates each namespace's `entries` kind maps structurally. Skips\n* non-object `entries`; `id` and `kind` are not walked (`kind` is\n* non-enumerable on concretions). For every entity-kind key under\n* `entries` whose value is a non-null object, yields one coordinate per\n* entity name in that map. No family-specific kind vocabulary is required.\n*/\nfunction* elementCoordinates(storage) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) {\n\t\tconst entries = ns.entries;\n\t\tif (entries === null || typeof entries !== \"object\") continue;\n\t\tfor (const [entityKind, kindMap] of Object.entries(entries)) {\n\t\t\tif (kindMap === null || typeof kindMap !== \"object\") continue;\n\t\t\tfor (const entityName of Object.keys(kindMap)) yield {\n\t\t\t\tplane: \"storage\",\n\t\t\t\tnamespaceId,\n\t\t\t\tentityKind,\n\t\t\t\tentityName\n\t\t\t};\n\t\t}\n\t}\n}\n/**\n* Canonical, collision-safe key for an {@link EntityCoordinate}. Encodes each\n* axis individually with `JSON.stringify` before joining with `-`, so no\n* namespace id, entity kind, or entity name can forge a collision by\n* embedding the delimiter itself (e.g. a delimiter of `:` would let\n* `('a', 'b:c', 'd')` collide with `('a:b', 'c', 'd')`) — each component is\n* quoted, and any `-` or `\"` inside it is escaped or safely inside those\n* quotes.\n*\n* The single shared key every coordinate-driven ownership/omission/collision\n* check should use — `contract infer`'s pack-described-element omission and\n* the migration tools' cross-space disjointness check both key on this.\n*/\nfunction coordinateKey(coordinate) {\n\treturn [\n\t\tcoordinate.namespaceId,\n\t\tcoordinate.entityKind,\n\t\tcoordinate.entityName\n\t].map((value) => JSON.stringify(value)).join(\"-\");\n}\n/**\n* Looks up a single entity in a `Storage`-shaped value by its full coordinate.\n* Returns `undefined` if the namespace, entity kind, or entity name is absent.\n* The type parameter is a caller assertion — the walk itself is structural\n* and cannot verify the entity's shape.\n*/\nfunction entityAt(storage, coord) {\n\tconst ns = storage.namespaces[coord.namespaceId];\n\tif (ns === void 0) return void 0;\n\tconst entries = ns.entries;\n\tif (!isPlainRecord(entries)) return void 0;\n\tconst kindMap = entries[coord.entityKind];\n\tif (!isPlainRecord(kindMap)) return void 0;\n\tif (!Object.hasOwn(kindMap, coord.entityName)) return void 0;\n\treturn blindCast(kindMap[coord.entityName]);\n}\n//#endregion\nexport { IRNodeBase, NamespaceBase, UNBOUND_NAMESPACE_ID, buildNamespacedEntities, buildSingleNamespaceView, coordinateKey, domainElementCoordinates, elementCoordinates, entityAt, freezeNode, hydrateNamespaceEntities, isPlainRecord, promoteBuiltinKinds };\n\n//# sourceMappingURL=ir.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as CliStructuredError } from "./control-ql9N9u4f-r3Vv41kZ.mjs";
1
+ import { r as CliStructuredError } from "./control-ql9N9u4f-D5sGnPR-.mjs";
2
2
  //#region ../../../1-framework/1-core/errors/dist/migration.d.mts
3
3
  //#region src/migration.d.ts
4
4
  /**
@@ -54,7 +54,7 @@ declare function errorMigrationFileMissing(dir: string): CliStructuredError;
54
54
  declare function errorMigrationInvalidDefaultExport(dir: string, actualExportDescription?: string): CliStructuredError;
55
55
  /**
56
56
  * The migration class declares one `targetId` but the loaded
57
- * `prisma-next.config.ts` declares another. Thrown by `MigrationCLI.run`
57
+ * `prisma.config.ts` declares another. Thrown by `MigrationCLI.run`
58
58
  * when a migration script is invoked against a config whose target
59
59
  * descriptor disagrees with the migration's own `targetId`. Distinct from generic
60
60
  * config-validation errors because the mismatch is between two valid
@@ -71,4 +71,4 @@ declare function errorMigrationTargetMismatch(options: {
71
71
  declare function errorMigrationPlanNotArray(dir: string, actualValueDescription?: string): CliStructuredError;
72
72
  //#endregion
73
73
  export { errorMigrationTargetMismatch as a, errorMigrationPlanNotArray as i, errorMigrationFileMissing as n, errorUnfilledPlaceholder as o, errorMigrationInvalidDefaultExport as r, placeholder as s, errorDataTransformContractMismatch as t };
74
- //# sourceMappingURL=migration-DOIs8GBr.d.mts.map
74
+ //# sourceMappingURL=migration-Bdp-ucGZ.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-DOIs8GBr.d.mts","names":[],"sources":["../../../../1-framework/1-core/errors/dist/migration.d.mts"],"mappings":";;;;;;;;;;iBASiB,yBAAyB,eAAe;;;;;;;;;;iBAUxC,YAAY;;;;;;;;;;;;;iBAaZ,mCAAmC;WACzC;WACA;WACA;IACP;;;;;;iBAMa,0BAA0B,cAAc;;;;;;;;;;iBAUxC,mCAAmC,aAAa,mCAAmC;;;;;;;;;iBASnF,6BAA6B;WACnC;WACA;IACP;;;;;iBAKa,2BAA2B,aAAa,kCAAkC"}
1
+ {"version":3,"file":"migration-Bdp-ucGZ.d.mts","names":[],"sources":["../../../../1-framework/1-core/errors/dist/migration.d.mts"],"mappings":";;;;;;;;;;iBASiB,yBAAyB,eAAe;;;;;;;;;;iBAUxC,YAAY;;;;;;;;;;;;;iBAaZ,mCAAmC;WACzC;WACA;WACA;IACP;;;;;;iBAMa,0BAA0B,cAAc;;;;;;;;;;iBAUxC,mCAAmC,aAAa,mCAAmC;;;;;;;;;iBASnF,6BAA6B;WACnC;WACA;IACP;;;;;iBAKa,2BAA2B,aAAa,kCAAkC"}
@@ -1,4 +1,4 @@
1
- import { t as CliStructuredError } from "./control-C9JfxzPo-CxCL2sxo.mjs";
1
+ import { t as CliStructuredError } from "./control-ZdvxNTVU-cVV8u7aQ.mjs";
2
2
  //#region ../../../1-framework/1-core/errors/dist/migration.mjs
3
3
  /**
4
4
  * A scaffolded migration contains a placeholder slot that was never filled in.
@@ -57,7 +57,7 @@ function errorDataTransformContractMismatch(options) {
57
57
  function errorMigrationFileMissing(dir) {
58
58
  return new CliStructuredError("MIGRATION.FILE_MISSING", "migration.ts not found", {
59
59
  why: `No migration.ts file was found at "${dir}"`,
60
- fix: "Scaffold one with `prisma-next migration new` or `prisma-next migration plan`.",
60
+ fix: "Scaffold one with `{bin} migration new` or `{bin} migration plan`.",
61
61
  nextActions: [{
62
62
  kind: "run-command",
63
63
  label: "Scaffold an empty migration",
@@ -91,7 +91,7 @@ function errorMigrationInvalidDefaultExport(dir, actualExportDescription) {
91
91
  }
92
92
  /**
93
93
  * The migration class declares one `targetId` but the loaded
94
- * `prisma-next.config.ts` declares another. Thrown by `MigrationCLI.run`
94
+ * `prisma.config.ts` declares another. Thrown by `MigrationCLI.run`
95
95
  * when a migration script is invoked against a config whose target
96
96
  * descriptor disagrees with the migration's own `targetId`. Distinct from generic
97
97
  * config-validation errors because the mismatch is between two valid
@@ -99,7 +99,7 @@ function errorMigrationInvalidDefaultExport(dir, actualExportDescription) {
99
99
  */
100
100
  function errorMigrationTargetMismatch(options) {
101
101
  return new CliStructuredError("MIGRATION.TARGET_MISMATCH", "Migration target does not match config target", {
102
- why: `This migration is for target "${options.migrationTargetId}" but the loaded prisma-next.config.ts declares target "${options.configTargetId}". The migration script can only be run against a config that targets the same database.`,
102
+ why: `This migration is for target "${options.migrationTargetId}" but the loaded prisma.config.ts declares target "${options.configTargetId}". The migration script can only be run against a config that targets the same database.`,
103
103
  fix: "Switch to a config whose `target` matches the migration's target, or pass `--config <path>` to point at the right config file.",
104
104
  meta: {
105
105
  migrationTargetId: options.migrationTargetId,
@@ -124,4 +124,4 @@ function errorMigrationPlanNotArray(dir, actualValueDescription) {
124
124
  //#endregion
125
125
  export { errorMigrationTargetMismatch as a, errorMigrationPlanNotArray as i, errorMigrationFileMissing as n, errorUnfilledPlaceholder as o, errorMigrationInvalidDefaultExport as r, placeholder as s, errorDataTransformContractMismatch as t };
126
126
 
127
- //# sourceMappingURL=migration-5zFMadnp.mjs.map
127
+ //# sourceMappingURL=migration-S40Rgr7K.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-S40Rgr7K.mjs","names":[],"sources":["../../../../1-framework/1-core/errors/dist/migration.mjs"],"sourcesContent":["import { t as CliStructuredError } from \"./control-ZdvxNTVU.mjs\";\n//#region src/migration.ts\n/**\n* A scaffolded migration contains a placeholder slot that was never filled in.\n*\n* Thrown at emit time (when `check.source()` or `run()` is invoked) via the\n* `placeholder(...)` utility. The `slot` identifies the exact location the\n* author still needs to edit, e.g. `\"backfill-product-status:check.source\"`.\n*/\nfunction errorUnfilledPlaceholder(slot) {\n\treturn new CliStructuredError(\"MIGRATION.UNFILLED_PLACEHOLDER\", \"Unfilled migration placeholder\", {\n\t\twhy: `The migration contains a placeholder that has not been filled in: ${slot}`,\n\t\tfix: \"Open migration.ts and replace the `placeholder(...)` call with your actual query.\",\n\t\tmeta: { slot }\n\t});\n}\n/**\n* Scaffolded `migration.ts` files call this wherever the scaffolder couldn't\n* emit a real query and the author is expected to fill one in. Always throws\n* a structured migration error (`MIGRATION.UNFILLED_PLACEHOLDER`).\n*\n* The return type `never` makes it assignable to any expected return type, so\n* a scaffolded `() => placeholder('...')` satisfies signatures like\n* `() => MongoQueryPlan` without polluting them with a sentinel union arm.\n*/\nfunction placeholder(slot) {\n\tthrow errorUnfilledPlaceholder(slot);\n}\n/**\n* A `dataTransform(endContract, …)` factory was handed a `SqlQueryPlan` whose\n* `meta.storageHash` does not match the `endContract.storage.storageHash` it\n* was configured with. This almost always means the user's query-builder\n* (`sql({ context: createExecutionContext({ contract: endContract, … }) })`)\n* was instantiated from a different contract reference than the one passed\n* to `dataTransform(endContract, …)`.\n*\n* Distinct from `errorHashMismatch` (`CONTRACT.MARKER_MISMATCH`) which\n* rejects a plan at runtime execution; this is an authoring-time rejection\n* so it lives in the `MIGRATION` namespace.\n*/\nfunction errorDataTransformContractMismatch(options) {\n\treturn new CliStructuredError(\"MIGRATION.DATA_TRANSFORM_CONTRACT_MISMATCH\", \"dataTransform query plan built against wrong contract\", {\n\t\twhy: `Data transform \"${options.dataTransformName}\" produced a query plan whose storage hash (${options.actual}) does not match the migration's contract (${options.expected}). The query builder was configured with a different contract than the one passed to dataTransform(endContract, ...).`,\n\t\tfix: \"Ensure the `endContract` imported at module scope (used for both `dataTransform(endContract, …)` and `sql({ context: createExecutionContext({ contract: endContract, … }) })`) is the same reference.\",\n\t\tmeta: {\n\t\t\tdataTransformName: options.dataTransformName,\n\t\t\texpected: options.expected,\n\t\t\tactual: options.actual\n\t\t}\n\t});\n}\n/**\n* `migration.ts` was expected at the given package directory but could not be\n* located. Thrown when consumers attempt to read a migration package that is\n* missing its source file.\n*/\nfunction errorMigrationFileMissing(dir) {\n\treturn new CliStructuredError(\"MIGRATION.FILE_MISSING\", \"migration.ts not found\", {\n\t\twhy: `No migration.ts file was found at \"${dir}\"`,\n\t\tfix: \"Scaffold one with `{bin} migration new` or `{bin} migration plan`.\",\n\t\tnextActions: [{\n\t\t\tkind: \"run-command\",\n\t\t\tlabel: \"Scaffold an empty migration\",\n\t\t\tcommand: \"{bin} migration new\"\n\t\t}, {\n\t\t\tkind: \"run-command\",\n\t\t\tlabel: \"Scaffold a migration from a contract diff\",\n\t\t\tcommand: \"{bin} migration plan\"\n\t\t}],\n\t\tmeta: { dir }\n\t});\n}\n/**\n* The `migration.ts` at the given package directory does not default-export a\n* valid migration shape. Two shapes are accepted: a `Migration` subclass, or a\n* factory function returning a `MigrationPlan`-shaped object (with at least\n* an `operations` array, plus `targetId` and `destination`). Thrown when the\n* default export is missing, is not a constructor/function, does not extend\n* `Migration`, or (for factory functions) returns a value that is not\n* `MigrationPlan`-shaped.\n*/\nfunction errorMigrationInvalidDefaultExport(dir, actualExportDescription) {\n\treturn new CliStructuredError(\"MIGRATION.INVALID_DEFAULT_EXPORT\", \"migration.ts default export is not a valid migration\", {\n\t\twhy: actualExportDescription !== void 0 ? `migration.ts at \"${dir}\" must default-export a Migration subclass or a factory function returning a MigrationPlan-shaped object; got ${actualExportDescription}` : `migration.ts at \"${dir}\" must default-export a Migration subclass or a factory function returning a MigrationPlan-shaped object.`,\n\t\tfix: \"Use `export default class extends Migration { ... }` or `export default () => ({ targetId, destination, operations })`.\",\n\t\tmeta: {\n\t\t\tdir,\n\t\t\t...actualExportDescription !== void 0 ? { actualExport: actualExportDescription } : {}\n\t\t}\n\t});\n}\n/**\n* The migration class declares one `targetId` but the loaded\n* `prisma.config.ts` declares another. Thrown by `MigrationCLI.run`\n* when a migration script is invoked against a config whose target\n* descriptor disagrees with the migration's own `targetId`. Distinct from generic\n* config-validation errors because the mismatch is between two valid\n* artifacts (the script and the config), not a malformed input.\n*/\nfunction errorMigrationTargetMismatch(options) {\n\treturn new CliStructuredError(\"MIGRATION.TARGET_MISMATCH\", \"Migration target does not match config target\", {\n\t\twhy: `This migration is for target \"${options.migrationTargetId}\" but the loaded prisma.config.ts declares target \"${options.configTargetId}\". The migration script can only be run against a config that targets the same database.`,\n\t\tfix: \"Switch to a config whose `target` matches the migration's target, or pass `--config <path>` to point at the right config file.\",\n\t\tmeta: {\n\t\t\tmigrationTargetId: options.migrationTargetId,\n\t\t\tconfigTargetId: options.configTargetId\n\t\t}\n\t});\n}\n/**\n* A `Migration.operations` getter returned a value that is not an array. Used\n* by emit capabilities after instantiating the authored migration.\n*/\nfunction errorMigrationPlanNotArray(dir, actualValueDescription) {\n\treturn new CliStructuredError(\"MIGRATION.PLAN_NOT_ARRAY\", \"Migration.operations must be an array of operations\", {\n\t\twhy: actualValueDescription !== void 0 ? `Migration.operations for migration.ts at \"${dir}\" was ${actualValueDescription}; an array of operations is required.` : `Migration.operations for migration.ts at \"${dir}\" is not an array of operations.`,\n\t\tfix: \"Ensure your `operations` getter returns an array of operations; see the data-migrations authoring guide.\",\n\t\tmeta: {\n\t\t\tdir,\n\t\t\t...actualValueDescription !== void 0 ? { actualValue: actualValueDescription } : {}\n\t\t}\n\t});\n}\n//#endregion\nexport { errorDataTransformContractMismatch, errorMigrationFileMissing, errorMigrationInvalidDefaultExport, errorMigrationPlanNotArray, errorMigrationTargetMismatch, errorUnfilledPlaceholder, placeholder };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;AASA,SAAS,yBAAyB,MAAM;CACvC,OAAO,IAAI,mBAAmB,kCAAkC,kCAAkC;EACjG,KAAK,qEAAqE;EAC1E,KAAK;EACL,MAAM,EAAE,KAAK;CACd,CAAC;AACF;;;;;;;;;;AAUA,SAAS,YAAY,MAAM;CAC1B,MAAM,yBAAyB,IAAI;AACpC;;;;;;;;;;;;;AAaA,SAAS,mCAAmC,SAAS;CACpD,OAAO,IAAI,mBAAmB,8CAA8C,yDAAyD;EACpI,KAAK,mBAAmB,QAAQ,kBAAkB,8CAA8C,QAAQ,OAAO,6CAA6C,QAAQ,SAAS;EAC7K,KAAK;EACL,MAAM;GACL,mBAAmB,QAAQ;GAC3B,UAAU,QAAQ;GAClB,QAAQ,QAAQ;EACjB;CACD,CAAC;AACF;;;;;;AAMA,SAAS,0BAA0B,KAAK;CACvC,OAAO,IAAI,mBAAmB,0BAA0B,0BAA0B;EACjF,KAAK,sCAAsC,IAAI;EAC/C,KAAK;EACL,aAAa,CAAC;GACb,MAAM;GACN,OAAO;GACP,SAAS;EACV,GAAG;GACF,MAAM;GACN,OAAO;GACP,SAAS;EACV,CAAC;EACD,MAAM,EAAE,IAAI;CACb,CAAC;AACF;;;;;;;;;;AAUA,SAAS,mCAAmC,KAAK,yBAAyB;CACzE,OAAO,IAAI,mBAAmB,oCAAoC,wDAAwD;EACzH,KAAK,4BAA4B,KAAK,IAAI,oBAAoB,IAAI,gHAAgH,4BAA4B,oBAAoB,IAAI;EACtO,KAAK;EACL,MAAM;GACL;GACA,GAAG,4BAA4B,KAAK,IAAI,EAAE,cAAc,wBAAwB,IAAI,CAAC;EACtF;CACD,CAAC;AACF;;;;;;;;;AASA,SAAS,6BAA6B,SAAS;CAC9C,OAAO,IAAI,mBAAmB,6BAA6B,iDAAiD;EAC3G,KAAK,iCAAiC,QAAQ,kBAAkB,qDAAqD,QAAQ,eAAe;EAC5I,KAAK;EACL,MAAM;GACL,mBAAmB,QAAQ;GAC3B,gBAAgB,QAAQ;EACzB;CACD,CAAC;AACF;;;;;AAKA,SAAS,2BAA2B,KAAK,wBAAwB;CAChE,OAAO,IAAI,mBAAmB,4BAA4B,uDAAuD;EAChH,KAAK,2BAA2B,KAAK,IAAI,6CAA6C,IAAI,QAAQ,uBAAuB,yCAAyC,6CAA6C,IAAI;EACnN,KAAK;EACL,MAAM;GACL;GACA,GAAG,2BAA2B,KAAK,IAAI,EAAE,aAAa,uBAAuB,IAAI,CAAC;EACnF;CACD,CAAC;AACF"}
@@ -1,4 +1,4 @@
1
- import { o as structuredError } from "./structured-error-CgiSMpdU.mjs";
1
+ import { o as structuredError } from "./structured-error-BXbihKQ-.mjs";
2
2
  //#region ../../../1-framework/1-core/operations/dist/index.mjs
3
3
  function contractError(code, message, options) {
4
4
  return structuredError(code, message, options);
@@ -1,7 +1,7 @@
1
- import { F as PslDiagnosticCode } from "./framework-authoring-BhctBwih-DQ_6noDM.mjs";
2
- import "./psl-ast-BXZoFQBk.mjs";
1
+ import { p as PslDiagnostic } from "./psl-ast-dnXw52MT-1jSUKlC9.mjs";
2
+ import "./psl-ast-BkfQwHjE.mjs";
3
3
  import { n as TokenKind, t as Token } from "./tokenizer-DcYI0Xrq-C-nNE9mE.mjs";
4
- //#region ../../../1-framework/2-authoring/psl-parser/dist/parse-0ZJjj_2N.d.mts
4
+ //#region ../../../1-framework/2-authoring/psl-parser/dist/parse-B5xYL_oV.d.mts
5
5
  //#region src/source-file.d.ts
6
6
  interface Position {
7
7
  readonly line: number;
@@ -408,7 +408,7 @@ declare class NamedTypeDeclarationAst implements AstNode {
408
408
  //#endregion
409
409
  //#region src/parse.d.ts
410
410
  interface ParseDiagnostic {
411
- readonly code: PslDiagnosticCode;
411
+ readonly code: PslDiagnostic['code'];
412
412
  readonly message: string;
413
413
  readonly range: Range;
414
414
  }
@@ -424,4 +424,4 @@ interface ParseResult {
424
424
  declare function parse(source: string): ParseResult;
425
425
  //#endregion
426
426
  export { parse as $, ObjectLiteralExprAst as A, SyntaxNode as B, ModelAttributeAst as C, NamespaceMemberAst as D, NamespaceDeclarationAst as E, Range as F, any as G, TokenAtOffset as H, SourceFile as I, filterChildren as J, castExpression as K, StringLiteralExprAst as L, ParseResult as M, Position as N, NumberLiteralExprAst as O, QualifiedNameAst as P, greenToken as Q, SyntaxElement as R, KeyValuePairAst as S, NamedTypeDeclarationAst as T, TypeAnnotationAst as U, SyntaxToken as V, TypesBlockAst as W, findFirstChild as X, findChildToken as Y, greenNode as Z, GenericBlockMemberAst as _, AttributeAst as a, GreenToken as b, BracedBlock as c, DocumentAst as d, printSyntax as et, ExpressionAst as f, GenericBlockDeclarationAst as g, FunctionCallAst as h, AttributeArgListAst as i, ParseDiagnostic as j, ObjectFieldAst as k, CompositeTypeDeclarationAst as l, FieldDeclarationAst as m, AstNode as n, BlockMemberAst as o, FieldAttributeAst as p, createSyntaxTree as q, AttributeArgAst as r, BooleanLiteralExprAst as s, ArrayLiteralAst as t, DeclarationAst as u, GreenElement as v, ModelDeclarationAst as w, IdentifierAst as x, GreenNode as y, SyntaxKind as z };
427
- //# sourceMappingURL=parse-0ZJjj_2N-DhQpSVmQ.d.mts.map
427
+ //# sourceMappingURL=parse-B5xYL_oV-aGFgfM8N.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-0ZJjj_2N-DhQpSVmQ.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/parse-0ZJjj_2N.d.mts"],"mappings":";;;;;UAGU;WACC;WACA;;UAED;WACC,OAAO;WACP,KAAK;;cAEF;;EAEZ,YAAY;MACR;MACA;MACA;EACJ;EACA,gBAAgB;EAChB,cAAc;EACd,WAAW,iBAAiB;EAC5B,SAAS,UAAU;;;;KAIhB;;;UAGK;WACC;WACA,MAAM;WACN;;UAED;WACC;WACA,MAAM;WACN,UAAU,cAAc;WACxB;;KAEN,eAAe,YAAY;iBACf,WAAW,MAAM,WAAW,eAAe;iBAC3C,UAAU,MAAM,YAAY,UAAU,cAAc,gBAAgB;;;;;;;;;;cAUvE,uBAAuB;WAC1B,OAAO;WACP,MAAM;WACN;WACA;WACA,QAAQ;;WAER;EACT,YAAY,OAAO,YAAY,gBAAgB,QAAQ,YAAY;MAC/D;MACA;;EAEJ,SAAS;EACT,UAAU;;MAEN,sBAAsB;;MAEtB,sBAAsB;;MAEtB,aAAa;;MAEb,aAAa;;KAEd,gBAAgB,aAAa;cACpB;;UAEJ;SACD,QAAQ;SACR,OAAO,OAAO,cAAc;SAC5B,QAAQ,MAAM,aAAa,OAAO,cAAc;MACnD;MACA;EACJ,cAAc;EACd,eAAe;;cAEH;WACH,OAAO;WACP;WACA,QAAQ;;WAER;EACT,YAAY,OAAO,WAAW,gBAAgB,QAAQ,wBAAwB;MAC1E,QAAQ;MACR;MACA;;EAEJ,SAAS;EACT,UAAU;MACN,cAAc;MACd,aAAa;MACb,eAAe;MACf,eAAe;;MAEf,sBAAsB;;MAEtB,sBAAsB;;MAEtB,cAAc;;MAEd,aAAa;EACjB,YAAY,SAAS;EACrB,cAAc,SAAS;EACvB,aAAa,SAAS;;EAEtB,aAAa,GAAG,OAAO,MAAM,eAAe,gBAAgB;EAC5D,eAAe,SAAS;EACxB,UAAU,SAAS;;;;;EAKnB,cAAc,iBAAiB;;;;;;EAM/B,gBAAgB,eAAe,cAAc;;iBAE9B,iBAAiB,OAAO,YAAY;;;UAG3C;WACC,QAAQ;;UAET,oBAAoB;EAC5B,UAAU;EACV,UAAU;;iBAEK,eAAe,MAAM,YAAY,MAAM,YAAY;iBACnD,eAAe,GAAG,MAAM,YAAY,OAAO,MAAM,eAAe,gBAAgB;iBAChF,eAAe,GAAG,MAAM,YAAY,OAAO,MAAM,eAAe,gBAAgB,SAAS;KACrG,WAAW,KAAK,YAAY,MAAM,qBAAqB,KAAK,QAAQ;iBACxD,IAAI,yBAAyB,MAAM,8BAA8B,OAAO,SAAS,MAAM,eAAe,WAAW;;;;;iBAKjH,YAAY,MAAM;;;cAGrB,yBAAyB;WAC5B,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;;;;cAKnB,4BAA4B;;WAE/B,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT,OAAO;EACP,SAAS;EACT,aAAa;EACb,cAAc;;;;;EAKd;;EAEA,aAAa;;;;;EAKb;SACO,KAAK,MAAM,aAAa;;;;cAInB,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;;EAEpB,QAAQ;;;;;;EAMR;EACA,UAAU;EACV,UAAU;EACV,QAAQ,SAAS;SACV,KAAK,MAAM,aAAa;;cAEnB,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;EACpB,YAAY;EACZ,YAAY;EACZ,YAAY,SAAS;SACd,KAAK,MAAM,aAAa;;cAEnB,gCAAgC;WACnC,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;cAEnB,gCAAgC;WACnC,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;cAEnB,iCAAiC;WACpC,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;cAEnB,gCAAgC;WACnC,QAAQ;EACjB,YAAY,QAAQ;EACpB,UAAU;EACV,UAAU;EACV,UAAU,SAAS;SACZ,KAAK,MAAM,aAAa;;cAEnB,0BAA0B;WAC7B,QAAQ;EACjB,YAAY,QAAQ;EACpB,OAAO;;;;;;EAMP;EACA,SAAS;EACT,SAAS;SACF,KAAK,MAAM,aAAa;;KAE5B,gBAAgB,kBAAkB,kBAAkB,uBAAuB,uBAAuB,wBAAwB,uBAAuB;iBACrI,eAAe,MAAM,aAAa;cACrC,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;EACpB,QAAQ;EACR,SAAS;EACT,SAAS;SACF,KAAK,MAAM,aAAa;;;;cAInB,+BAA+B;WAClC,QAAQ;EACjB,YAAY,QAAQ;EACpB,UAAU;EACV,UAAU;EACV,QAAQ,SAAS;SACV,KAAK,MAAM,aAAa;;cAEnB,6BAA6B;WAChC,QAAQ;EACjB,YAAY,QAAQ;EACpB,MAAM;EACN,QAAQ;EACR,WAAW;SACJ,KAAK,MAAM,aAAa;;cAEnB,6BAA6B;WAChC,QAAQ;EACjB,YAAY,QAAQ;EACpB,YAAY;EACZ,QAAQ;EACR,WAAW;SACJ,KAAK,MAAM,aAAa;;;;cAInB,6BAA6B;WAChC,QAAQ;EACjB,YAAY,QAAQ;;EAEpB,QAAQ;;EAER,WAAW;EACX;EACA,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB;EACA;SACO,KAAK,MAAM,aAAa;;;;;;;;;KAS5B,qBAAqB,sBAAsB,8BAA8B;KACzE,iBAAiB,qBAAqB,gBAAgB;KACtD,eAAe,oBAAoB;KACnC,iBAAiB,sBAAsB;KACvC,wBAAwB,kBAAkB;cACjC,uBAAuB;WAC1B,QAAQ;EACjB,YAAY,QAAQ;EACpB,gBAAgB,SAAS;SAClB,KAAK,MAAM,aAAa;;cAEnB,+BAA+B;WAClC,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,UAAU,SAAS;EACnB,cAAc,SAAS;EACvB,WAAW,SAAS;SACb,KAAK,MAAM,aAAa;;cAEnB,uCAAuC;WAC1C,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,UAAU,SAAS;EACnB,cAAc,SAAS;EACvB,WAAW,SAAS;SACb,KAAK,MAAM,aAAa;;cAEnB,mCAAmC;WACtC,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,gBAAgB,SAAS;SAClB,KAAK,MAAM,aAAa;;cAEnB,yBAAyB;WAC5B,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,UAAU;EACV,UAAU;EACV,gBAAgB,SAAS;SAClB,KAAK,MAAM,aAAa;;cAEnB,sCAAsC;WACzC,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,WAAW,SAAS;EACpB,cAAc,SAAS;EACvB,WAAW,SAAS;SACb,KAAK,MAAM,aAAa;;cAEnB,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;EACpB,OAAO;EACP,UAAU;EACV,SAAS;SACF,KAAK,MAAM,aAAa;;cAEnB,+BAA+B;WAClC,QAAQ;EACjB,YAAY,QAAQ;EACpB,QAAQ;EACR,kBAAkB;EAClB,cAAc,SAAS;SAChB,KAAK,MAAM,aAAa;;cAEnB,mCAAmC;WACtC,QAAQ;EACjB,YAAY,QAAQ;EACpB,QAAQ;EACR,UAAU;EACV,kBAAkB;EAClB,cAAc,SAAS;SAChB,KAAK,MAAM,aAAa;;;;UAIvB;WACC,MAAM;WACN;WACA,OAAO;;UAER;WACC,UAAU;WACV,sBAAsB;WACtB,YAAY;;;;;;iBAMN,MAAM,iBAAiB"}
1
+ {"version":3,"file":"parse-B5xYL_oV-aGFgfM8N.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/parse-B5xYL_oV.d.mts"],"mappings":";;;;;UAGU;WACC;WACA;;UAED;WACC,OAAO;WACP,KAAK;;cAEF;;EAEZ,YAAY;MACR;MACA;MACA;EACJ;EACA,gBAAgB;EAChB,cAAc;EACd,WAAW,iBAAiB;EAC5B,SAAS,UAAU;;;;KAIhB;;;UAGK;WACC;WACA,MAAM;WACN;;UAED;WACC;WACA,MAAM;WACN,UAAU,cAAc;WACxB;;KAEN,eAAe,YAAY;iBACf,WAAW,MAAM,WAAW,eAAe;iBAC3C,UAAU,MAAM,YAAY,UAAU,cAAc,gBAAgB;;;;;;;;;;cAUvE,uBAAuB;WAC1B,OAAO;WACP,MAAM;WACN;WACA;WACA,QAAQ;;WAER;EACT,YAAY,OAAO,YAAY,gBAAgB,QAAQ,YAAY;MAC/D;MACA;;EAEJ,SAAS;EACT,UAAU;;MAEN,sBAAsB;;MAEtB,sBAAsB;;MAEtB,aAAa;;MAEb,aAAa;;KAEd,gBAAgB,aAAa;cACpB;;UAEJ;SACD,QAAQ;SACR,OAAO,OAAO,cAAc;SAC5B,QAAQ,MAAM,aAAa,OAAO,cAAc;MACnD;MACA;EACJ,cAAc;EACd,eAAe;;cAEH;WACH,OAAO;WACP;WACA,QAAQ;;WAER;EACT,YAAY,OAAO,WAAW,gBAAgB,QAAQ,wBAAwB;MAC1E,QAAQ;MACR;MACA;;EAEJ,SAAS;EACT,UAAU;MACN,cAAc;MACd,aAAa;MACb,eAAe;MACf,eAAe;;MAEf,sBAAsB;;MAEtB,sBAAsB;;MAEtB,cAAc;;MAEd,aAAa;EACjB,YAAY,SAAS;EACrB,cAAc,SAAS;EACvB,aAAa,SAAS;;EAEtB,aAAa,GAAG,OAAO,MAAM,eAAe,gBAAgB;EAC5D,eAAe,SAAS;EACxB,UAAU,SAAS;;;;;EAKnB,cAAc,iBAAiB;;;;;;EAM/B,gBAAgB,eAAe,cAAc;;iBAE9B,iBAAiB,OAAO,YAAY;;;UAG3C;WACC,QAAQ;;UAET,oBAAoB;EAC5B,UAAU;EACV,UAAU;;iBAEK,eAAe,MAAM,YAAY,MAAM,YAAY;iBACnD,eAAe,GAAG,MAAM,YAAY,OAAO,MAAM,eAAe,gBAAgB;iBAChF,eAAe,GAAG,MAAM,YAAY,OAAO,MAAM,eAAe,gBAAgB,SAAS;KACrG,WAAW,KAAK,YAAY,MAAM,qBAAqB,KAAK,QAAQ;iBACxD,IAAI,yBAAyB,MAAM,8BAA8B,OAAO,SAAS,MAAM,eAAe,WAAW;;;;;iBAKjH,YAAY,MAAM;;;cAGrB,yBAAyB;WAC5B,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;;;;cAKnB,4BAA4B;;WAE/B,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT,OAAO;EACP,SAAS;EACT,aAAa;EACb,cAAc;;;;;EAKd;;EAEA,aAAa;;;;;EAKb;SACO,KAAK,MAAM,aAAa;;;;cAInB,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;;EAEpB,QAAQ;;;;;;EAMR;EACA,UAAU;EACV,UAAU;EACV,QAAQ,SAAS;SACV,KAAK,MAAM,aAAa;;cAEnB,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;EACpB,YAAY;EACZ,YAAY;EACZ,YAAY,SAAS;SACd,KAAK,MAAM,aAAa;;cAEnB,gCAAgC;WACnC,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;cAEnB,gCAAgC;WACnC,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;cAEnB,iCAAiC;WACpC,QAAQ;EACjB,YAAY,QAAQ;EACpB,SAAS;EACT;SACO,KAAK,MAAM,aAAa;;cAEnB,gCAAgC;WACnC,QAAQ;EACjB,YAAY,QAAQ;EACpB,UAAU;EACV,UAAU;EACV,UAAU,SAAS;SACZ,KAAK,MAAM,aAAa;;cAEnB,0BAA0B;WAC7B,QAAQ;EACjB,YAAY,QAAQ;EACpB,OAAO;;;;;;EAMP;EACA,SAAS;EACT,SAAS;SACF,KAAK,MAAM,aAAa;;KAE5B,gBAAgB,kBAAkB,kBAAkB,uBAAuB,uBAAuB,wBAAwB,uBAAuB;iBACrI,eAAe,MAAM,aAAa;cACrC,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;EACpB,QAAQ;EACR,SAAS;EACT,SAAS;SACF,KAAK,MAAM,aAAa;;;;cAInB,+BAA+B;WAClC,QAAQ;EACjB,YAAY,QAAQ;EACpB,UAAU;EACV,UAAU;EACV,QAAQ,SAAS;SACV,KAAK,MAAM,aAAa;;cAEnB,6BAA6B;WAChC,QAAQ;EACjB,YAAY,QAAQ;EACpB,MAAM;EACN,QAAQ;EACR,WAAW;SACJ,KAAK,MAAM,aAAa;;cAEnB,6BAA6B;WAChC,QAAQ;EACjB,YAAY,QAAQ;EACpB,YAAY;EACZ,QAAQ;EACR,WAAW;SACJ,KAAK,MAAM,aAAa;;;;cAInB,6BAA6B;WAChC,QAAQ;EACjB,YAAY,QAAQ;;EAEpB,QAAQ;;EAER,WAAW;EACX;EACA,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB;EACA;SACO,KAAK,MAAM,aAAa;;;;;;;;;KAS5B,qBAAqB,sBAAsB,8BAA8B;KACzE,iBAAiB,qBAAqB,gBAAgB;KACtD,eAAe,oBAAoB;KACnC,iBAAiB,sBAAsB;KACvC,wBAAwB,kBAAkB;cACjC,uBAAuB;WAC1B,QAAQ;EACjB,YAAY,QAAQ;EACpB,gBAAgB,SAAS;SAClB,KAAK,MAAM,aAAa;;cAEnB,+BAA+B;WAClC,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,UAAU,SAAS;EACnB,cAAc,SAAS;EACvB,WAAW,SAAS;SACb,KAAK,MAAM,aAAa;;cAEnB,uCAAuC;WAC1C,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,UAAU,SAAS;EACnB,cAAc,SAAS;EACvB,WAAW,SAAS;SACb,KAAK,MAAM,aAAa;;cAEnB,mCAAmC;WACtC,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,gBAAgB,SAAS;SAClB,KAAK,MAAM,aAAa;;cAEnB,yBAAyB;WAC5B,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,UAAU;EACV,UAAU;EACV,gBAAgB,SAAS;SAClB,KAAK,MAAM,aAAa;;cAEnB,sCAAsC;WACzC,QAAQ;EACjB,YAAY,QAAQ;EACpB,WAAW;EACX,QAAQ;EACR,UAAU;EACV,UAAU;EACV,WAAW,SAAS;EACpB,cAAc,SAAS;EACvB,WAAW,SAAS;SACb,KAAK,MAAM,aAAa;;cAEnB,2BAA2B;WAC9B,QAAQ;EACjB,YAAY,QAAQ;EACpB,OAAO;EACP,UAAU;EACV,SAAS;SACF,KAAK,MAAM,aAAa;;cAEnB,+BAA+B;WAClC,QAAQ;EACjB,YAAY,QAAQ;EACpB,QAAQ;EACR,kBAAkB;EAClB,cAAc,SAAS;SAChB,KAAK,MAAM,aAAa;;cAEnB,mCAAmC;WACtC,QAAQ;EACjB,YAAY,QAAQ;EACpB,QAAQ;EACR,UAAU;EACV,kBAAkB;EAClB,cAAc,SAAS;SAChB,KAAK,MAAM,aAAa;;;;UAIvB;WACC,MAAM;WACN;WACA,OAAO;;UAER;WACC,UAAU;WACV,sBAAsB;WACtB,YAAY;;;;;;iBAMN,MAAM,iBAAiB"}
@@ -1,4 +1,4 @@
1
- import { t as InternalError } from "./internal-error-BIc-ehme-ouBQPoEL.mjs";
1
+ import { t as InternalError } from "./internal-error-ChGYPVpq-DhUD05u0.mjs";
2
2
  import { n as UNSPECIFIED_PSL_NAMESPACE_ID } from "./psl-ast-DUCvVXbB.mjs";
3
3
  import { k as createSyntaxTree, o as DocumentAst } from "./declarations-DR6To8_k-BFwkCGeP.mjs";
4
4
  import { n as isTerminatedStringLiteral, t as Tokenizer } from "./tokenizer-1hAHZzmp-QGPORvmA.mjs";
@@ -618,4 +618,4 @@ function parseKeyValue(cursor) {
618
618
  //#endregion
619
619
  export { parse as a, greenToken as i, SourceFile as n, greenNode as r, GreenNodeBuilder as t };
620
620
 
621
- //# sourceMappingURL=parse-GbZGfMUj-BFSrD2AN.mjs.map
621
+ //# sourceMappingURL=parse-GbZGfMUj-C9tHGn-6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-GbZGfMUj-BFSrD2AN.mjs","names":["#text","#lineStarts","#lineIndexAt","#lineStartAt","#lineEndAt","#stack","#tokenizer","#sourceFile","#diagnostics","#offset","#depth","#builder","#advance"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/parse-GbZGfMUj.mjs"],"sourcesContent":["import { N as createSyntaxTree, n as DocumentAst } from \"./declarations-DR6To8_k.mjs\";\nimport { n as isTerminatedStringLiteral, t as Tokenizer } from \"./tokenizer-1hAHZzmp.mjs\";\nimport { UNSPECIFIED_PSL_NAMESPACE_ID } from \"@internal/framework-components/psl-ast\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/source-file.ts\nconst CARRIAGE_RETURN = 13;\nconst LINE_FEED = 10;\nvar SourceFile = class {\n\t#text;\n\t#lineStarts;\n\tconstructor(text) {\n\t\tthis.#text = text;\n\t\tconst lineStarts = [0];\n\t\tfor (let offset = 0; offset < text.length; offset++) if (text.charCodeAt(offset) === LINE_FEED) lineStarts.push(offset + 1);\n\t\tthis.#lineStarts = lineStarts;\n\t}\n\tget text() {\n\t\treturn this.#text;\n\t}\n\tget length() {\n\t\treturn this.#text.length;\n\t}\n\tget lineCount() {\n\t\treturn this.#lineStarts.length;\n\t}\n\tlineStartOffsets() {\n\t\treturn this.#lineStarts;\n\t}\n\tlineStartOffset(line) {\n\t\tif (line <= 0) return 0;\n\t\treturn this.#lineStarts[line] ?? this.#text.length;\n\t}\n\tlineEndOffset(line) {\n\t\tif (line < 0) return 0;\n\t\tconst nextLineStart = this.#lineStarts[line + 1];\n\t\tif (nextLineStart === void 0) return this.#text.length;\n\t\tconst lineFeedOffset = nextLineStart - 1;\n\t\tconst carriageReturnOffset = lineFeedOffset - 1;\n\t\treturn this.#text.charCodeAt(carriageReturnOffset) === CARRIAGE_RETURN ? carriageReturnOffset : lineFeedOffset;\n\t}\n\tpositionAt(offset) {\n\t\tconst clamped = clamp(offset, 0, this.#text.length);\n\t\tconst line = this.#lineIndexAt(clamped);\n\t\treturn {\n\t\t\tline,\n\t\t\tcharacter: clamped - this.#lineStartAt(line)\n\t\t};\n\t}\n\toffsetAt(position) {\n\t\tconst line = clamp(position.line, 0, this.#lineStarts.length - 1);\n\t\tconst lineStart = this.#lineStartAt(line);\n\t\tconst lineEnd = this.#lineEndAt(line);\n\t\treturn clamp(lineStart + position.character, lineStart, lineEnd);\n\t}\n\t#lineStartAt(line) {\n\t\treturn this.#lineStarts[line] ?? 0;\n\t}\n\t#lineEndAt(line) {\n\t\treturn line + 1 < this.#lineStarts.length ? this.#lineStartAt(line + 1) - 1 : this.#text.length;\n\t}\n\t#lineIndexAt(offset) {\n\t\tconst lineStarts = this.#lineStarts;\n\t\tlet low = 0;\n\t\tlet high = lineStarts.length - 1;\n\t\twhile (low < high) {\n\t\t\tconst mid = low + high + 1 >>> 1;\n\t\t\tif ((lineStarts[mid] ?? 0) <= offset) low = mid;\n\t\t\telse high = mid - 1;\n\t\t}\n\t\treturn low;\n\t}\n};\nfunction clamp(value, min, max) {\n\tif (value < min) return min;\n\tif (value > max) return max;\n\treturn value;\n}\n//#endregion\n//#region src/syntax/green.ts\nfunction greenToken(kind, text) {\n\treturn {\n\t\ttype: \"token\",\n\t\tkind,\n\t\ttext\n\t};\n}\nfunction greenNode(kind, children) {\n\tlet textLength = 0;\n\tfor (const child of children) textLength += child.type === \"token\" ? child.text.length : child.textLength;\n\treturn {\n\t\ttype: \"node\",\n\t\tkind,\n\t\tchildren,\n\t\ttextLength\n\t};\n}\n//#endregion\n//#region src/syntax/green-builder.ts\nvar GreenNodeBuilder = class {\n\t#stack = [];\n\tstartNode(kind) {\n\t\tthis.#stack.push({\n\t\t\tkind,\n\t\t\tchildren: []\n\t\t});\n\t}\n\ttoken(kind, text) {\n\t\tconst current = this.#stack.at(-1);\n\t\tif (!current) throw new InternalError(\"GreenNodeBuilder: token() called with no open node\");\n\t\tcurrent.children.push(greenToken(kind, text));\n\t}\n\tfinishNode() {\n\t\tconst completed = this.#stack.pop();\n\t\tif (!completed) throw new InternalError(\"GreenNodeBuilder: finishNode() called with no open node\");\n\t\tconst node = greenNode(completed.kind, completed.children);\n\t\tconst parent = this.#stack.at(-1);\n\t\tif (parent) parent.children.push(node);\n\t\treturn node;\n\t}\n};\n//#endregion\n//#region src/parse.ts\nconst TRIVIA_KINDS = /* @__PURE__ */ new Set([\n\t\"Whitespace\",\n\t\"Newline\",\n\t\"Comment\"\n]);\n/**\n* The fault-tolerant parser substrate the grammars drive. Trivia is flushed\n* into the enclosing open node, so every child node spans exactly its first\n* through last significant token.\n*/\nvar Cursor = class {\n\t#tokenizer;\n\t#sourceFile;\n\t#builder = new GreenNodeBuilder();\n\t#diagnostics = [];\n\t#offset = 0;\n\t#depth = 0;\n\tconstructor(source) {\n\t\tthis.#tokenizer = new Tokenizer(source);\n\t\tthis.#sourceFile = new SourceFile(source);\n\t}\n\tget diagnostics() {\n\t\treturn this.#diagnostics;\n\t}\n\tget sourceFile() {\n\t\treturn this.#sourceFile;\n\t}\n\tpeekKind(ahead = 0) {\n\t\treturn this.peekToken(ahead).kind;\n\t}\n\tpeekToken(ahead = 0) {\n\t\tlet rawIndex = 0;\n\t\tlet remaining = ahead;\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek(rawIndex);\n\t\t\tif (token.kind === \"Eof\") return token;\n\t\t\tif (TRIVIA_KINDS.has(token.kind)) {\n\t\t\t\trawIndex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (remaining === 0) return token;\n\t\t\tremaining--;\n\t\t\trawIndex++;\n\t\t}\n\t}\n\t/** Span of the significant token `lookahead` positions ahead (`mark(0)` = the next). */\n\tmark(lookahead = 0) {\n\t\tlet rawIndex = 0;\n\t\tlet offset = this.#offset;\n\t\tlet remaining = lookahead;\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek(rawIndex);\n\t\t\tif (token.kind === \"Eof\") return {\n\t\t\t\toffset,\n\t\t\t\tlength: token.text.length\n\t\t\t};\n\t\t\tif (!TRIVIA_KINDS.has(token.kind) && remaining === 0) return {\n\t\t\t\toffset,\n\t\t\t\tlength: token.text.length\n\t\t\t};\n\t\t\tif (!TRIVIA_KINDS.has(token.kind)) remaining--;\n\t\t\toffset += token.text.length;\n\t\t\trawIndex++;\n\t\t}\n\t}\n\t/**\n\t* Zero-width mark just past the last consumed significant token — anchors an\n\t* \"expected here\" diagnostic, e.g. the `{` missing after a declaration's name.\n\t*/\n\tmarkAfterLastToken() {\n\t\treturn {\n\t\t\toffset: this.#offset,\n\t\t\tlength: 0\n\t\t};\n\t}\n\tstartNode(kind) {\n\t\tif (this.#depth > 0) this.flushTrivia();\n\t\tthis.#builder.startNode(kind);\n\t\tthis.#depth++;\n\t}\n\tfinishNode() {\n\t\tthis.#depth--;\n\t\treturn this.#builder.finishNode();\n\t}\n\tbump() {\n\t\tthis.flushTrivia();\n\t\tconst token = this.#tokenizer.peek();\n\t\tif (token.kind === \"Eof\") return token;\n\t\tthis.#builder.token(token.kind, token.text);\n\t\tthis.#advance();\n\t\treturn token;\n\t}\n\trecoverToSyncPoint() {\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek();\n\t\t\tif (token.kind === \"Eof\" || token.kind === \"Newline\" || token.kind === \"RBrace\") return;\n\t\t\tthis.#builder.token(token.kind, token.text);\n\t\t\tthis.#advance();\n\t\t}\n\t}\n\tflushTrivia() {\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek();\n\t\t\tif (!TRIVIA_KINDS.has(token.kind)) return;\n\t\t\tthis.#builder.token(token.kind, token.text);\n\t\t\tthis.#advance();\n\t\t}\n\t}\n\tdiagnostic(code, message, mark) {\n\t\tconst start = mark.offset;\n\t\tconst end = start + mark.length;\n\t\tthis.#diagnostics.push({\n\t\t\tcode,\n\t\t\tmessage,\n\t\t\trange: {\n\t\t\t\tstart: this.#sourceFile.positionAt(start),\n\t\t\t\tend: this.#sourceFile.positionAt(end)\n\t\t\t}\n\t\t});\n\t}\n\t#advance() {\n\t\tthis.#offset += this.#tokenizer.next().text.length;\n\t}\n};\nfunction parseIdentifier(cursor) {\n\tcursor.startNode(\"Identifier\");\n\tcursor.bump();\n\tcursor.finishNode();\n}\n/**\n* Returns `undefined` when the next significant token does not start a\n* recognised expression, leaving recovery to the caller.\n*/\nfunction parseExpression(cursor) {\n\treturn parseStringLiteralExpr(cursor) ?? parseNumberLiteralExpr(cursor) ?? parseArrayLiteral(cursor) ?? parseObjectLiteralExpr(cursor) ?? parseFunctionCall(cursor) ?? parseBooleanLiteralExpr(cursor) ?? parseIdentifierExpr(cursor);\n}\nfunction parseStringLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"StringLiteral\") return void 0;\n\tconst stringMark = cursor.mark();\n\tconst text = cursor.peekToken().text;\n\tcursor.startNode(\"StringLiteralExpr\");\n\tcursor.bump();\n\tif (!isTerminatedStringLiteral(text)) cursor.diagnostic(\"PSL_UNTERMINATED_STRING\", \"Unterminated string literal\", stringMark);\n\treturn cursor.finishNode();\n}\nfunction parseNumberLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"NumberLiteral\") return void 0;\n\tcursor.startNode(\"NumberLiteralExpr\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\n/**\n* Parses a namespace-qualified name `[space ':']? Ident ('.' Ident)*`. The\n* caller guarantees a leading `Ident`.\n*\n* Parsing the whole chain up front lets a position decide\n* constructor-vs-reference by peeking exactly one token for `(`, with no scan of\n* the dotted chain's length.\n*/\nfunction parseQualifiedName(cursor) {\n\tcursor.startNode(\"QualifiedName\");\n\tparseIdentifier(cursor);\n\tparseQualifiedSegments(cursor, \"Colon\");\n\tparseQualifiedSegments(cursor, \"Dot\");\n\tcursor.finishNode();\n}\n/**\n* A well-formed name carries at most one colon space and one dot namespace, so\n* each separator past the first of its kind reports `PSL_INVALID_QUALIFIED_NAME`.\n* The separator is consumed regardless, keeping the lossless round-trip intact.\n*/\nfunction parseQualifiedSegments(cursor, separator) {\n\tlet seen = 0;\n\twhile (cursor.peekKind() === separator) {\n\t\tseen++;\n\t\tconst separatorMark = cursor.mark();\n\t\tcursor.bump();\n\t\tif (seen > 1) cursor.diagnostic(\"PSL_INVALID_QUALIFIED_NAME\", \"Qualified name has too many segments\", separatorMark);\n\t\tif (cursor.peekKind() === \"Ident\") parseIdentifier(cursor);\n\t\telse cursor.diagnostic(\"PSL_INVALID_QUALIFIED_NAME\", \"Qualified name is missing a name after the separator\", cursor.mark());\n\t}\n}\nfunction parseBooleanLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tconst text = cursor.peekToken().text;\n\tif (text !== \"true\" && text !== \"false\") return void 0;\n\tcursor.startNode(\"BooleanLiteralExpr\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseIdentifierExpr(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"Identifier\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseArrayLiteral(cursor) {\n\tif (cursor.peekKind() !== \"LBracket\") return void 0;\n\tcursor.startNode(\"ArrayLiteral\");\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RBracket\" && cursor.peekKind() !== \"Eof\") {\n\t\tif (!parseExpression(cursor)) break;\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RBracket\") cursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseObjectLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"LBrace\") return void 0;\n\tconst braceMark = cursor.mark();\n\tcursor.startNode(\"ObjectLiteralExpr\");\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RBrace\" && cursor.peekKind() !== \"Eof\") {\n\t\tparseObjectField(cursor);\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse if (cursor.peekKind() === \"Ident\") cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Expected \\\",\\\" between object-literal fields\", cursor.markAfterLastToken());\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RBrace\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Unterminated object literal\", braceMark);\n\treturn cursor.finishNode();\n}\nfunction parseObjectField(cursor) {\n\tcursor.startNode(\"ObjectField\");\n\tconst keyMark = cursor.mark();\n\tconst keyText = cursor.peekToken().text;\n\tif (cursor.peekKind() === \"Ident\") parseIdentifier(cursor);\n\telse if (cursor.peekKind() === \"StringLiteral\") parseStringLiteralExpr(cursor);\n\tif (cursor.peekKind() === \"Colon\") {\n\t\tcursor.bump();\n\t\tif (!parseExpression(cursor)) cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Expected a value after \\\":\\\"\", cursor.mark());\n\t} else {\n\t\tcursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", `Expected \":\" after \"${keyText}\"`, keyMark);\n\t\tif (!(cursor.peekKind() === \"Ident\" && cursor.peekKind(1) === \"Colon\")) parseExpression(cursor);\n\t}\n\treturn cursor.finishNode();\n}\n/**\n* Whether the next tokens open a call: a bare `Ident(` or a namespace-qualified\n* `Ident.Ident(`. The lookahead is deliberately bounded so a bare dotted\n* reference like `a.b` is not mistaken for a call, rather than scanning an\n* unbounded dotted chain ahead to find the paren.\n*/\nfunction isCallAhead(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return false;\n\tif (cursor.peekKind(1) === \"LParen\") return true;\n\treturn cursor.peekKind(1) === \"Dot\" && cursor.peekKind(2) === \"Ident\" && cursor.peekKind(3) === \"LParen\";\n}\n/**\n* Parses a function/constructor call — bare `autoincrement()` or qualified\n* `temporal.updatedAt()`. Returns `undefined` unless {@link isCallAhead}\n* confirms a trailing `(`, so the `parseExpression` chain falls through to the\n* boolean and bare-identifier forms.\n*/\nfunction parseFunctionCall(cursor) {\n\tif (!isCallAhead(cursor)) return void 0;\n\tcursor.startNode(\"FunctionCall\");\n\tparseQualifiedName(cursor);\n\tif (cursor.peekKind() === \"LParen\") parseParenArgs(cursor);\n\treturn cursor.finishNode();\n}\n/** Parses a parenthesised, comma-separated `AttributeArg` list into the currently open node. */\nfunction parseParenArgs(cursor) {\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RParen\" && cursor.peekKind() !== \"Eof\") {\n\t\tparseAttributeArg(cursor);\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RParen\") cursor.bump();\n}\nfunction parseAttributeArg(cursor) {\n\tconst kind = cursor.peekKind();\n\tif (kind !== \"Ident\" && kind !== \"StringLiteral\" && kind !== \"NumberLiteral\" && kind !== \"LBracket\" && kind !== \"LBrace\") return;\n\tcursor.startNode(\"AttributeArg\");\n\tif (cursor.peekKind() === \"Ident\" && cursor.peekKind(1) === \"Colon\") {\n\t\tparseIdentifier(cursor);\n\t\tcursor.bump();\n\t}\n\tparseArgValue(cursor);\n\tcursor.finishNode();\n}\nfunction parseArgValue(cursor) {\n\tparseExpression(cursor);\n}\nfunction parseAttributeArgList(cursor) {\n\tcursor.startNode(\"AttributeArgList\");\n\tparseParenArgs(cursor);\n\treturn cursor.finishNode();\n}\nfunction parseAttribute(cursor) {\n\tconst isBlockAttribute = cursor.peekKind() === \"DoubleAt\";\n\tconst attributeMark = cursor.mark();\n\tcursor.startNode(isBlockAttribute ? \"ModelAttribute\" : \"FieldAttribute\");\n\tcursor.bump();\n\tif (cursor.peekKind() === \"Ident\") parseQualifiedName(cursor);\n\telse cursor.diagnostic(\"PSL_INVALID_ATTRIBUTE_SYNTAX\", \"Attribute name expected\", attributeMark);\n\tif (cursor.peekKind() === \"LParen\") parseAttributeArgList(cursor);\n\treturn cursor.finishNode();\n}\n/**\n* A type annotation: `QualifiedName (argList)? ([])? (?)?`, e.g.\n* `pgvector.Vector(1536)[]?`. When the field has no type, no node is emitted —\n* a missing type is the absence of a `TypeAnnotation`, not a zero-width one.\n*/\nfunction parseTypeAnnotation(cursor) {\n\tconst kind = cursor.peekKind();\n\tif (kind !== \"Ident\" && kind !== \"LBracket\" && kind !== \"Question\") return;\n\tcursor.startNode(\"TypeAnnotation\");\n\tif (cursor.peekKind() === \"Ident\") {\n\t\tparseQualifiedName(cursor);\n\t\tif (cursor.peekKind() === \"LParen\") parseAttributeArgList(cursor);\n\t}\n\tif (cursor.peekKind() === \"LBracket\") {\n\t\tcursor.bump();\n\t\tif (cursor.peekKind() === \"RBracket\") cursor.bump();\n\t}\n\tif (cursor.peekKind() === \"Question\") cursor.bump();\n\tcursor.finishNode();\n}\n/**\n* Parses a full PSL document. Never throws — malformed input yields diagnostics\n* and a recovered tree, not an exception.\n*/\nfunction parse(source) {\n\tconst cursor = new Cursor(source);\n\tconst root = createSyntaxTree(parseDocument(cursor));\n\treturn {\n\t\tdocument: DocumentAst.cast(root) ?? new DocumentAst(root),\n\t\tdiagnostics: cursor.diagnostics,\n\t\tsourceFile: cursor.sourceFile\n\t};\n}\nfunction parseDocument(cursor) {\n\tcursor.startNode(\"Document\");\n\twhile (cursor.peekKind() !== \"Eof\") parseDeclaration(cursor, false);\n\tcursor.flushTrivia();\n\treturn cursor.finishNode();\n}\nconst RESERVED_BLOCK_KEYWORDS = /* @__PURE__ */ new Set([\n\t\"model\",\n\t\"namespace\",\n\t\"type\",\n\t\"types\"\n]);\nfunction keywordIs(cursor, keyword) {\n\treturn cursor.peekKind() === \"Ident\" && cursor.peekToken().text === keyword;\n}\n/**\n* Each alternative is a no-op on non-match, consuming nothing, so the\n* forward-only cursor is never left half-consumed by a rejected alternative.\n* Recovery runs via the `if (!node)` tail rather than as a `??` arm, because it\n* appends raw tokens to the open parent instead of returning a child node.\n*/\nfunction parseDeclaration(cursor, insideNamespace) {\n\tconst name = cursor.peekKind(1) === \"Ident\" ? cursor.peekToken(1).text : \"\";\n\tif (insideNamespace && keywordIs(cursor, \"namespace\")) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", `Recursive \"namespace ${name}\" block is not allowed; namespace blocks may not nest`, cursor.mark());\n\telse if (insideNamespace && keywordIs(cursor, \"types\")) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", \"`types` blocks must be declared at the document top level, not inside a namespace block\", cursor.mark());\n\telse if (keywordIs(cursor, \"namespace\") && name === UNSPECIFIED_PSL_NAMESPACE_ID) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", `Namespace name \"${UNSPECIFIED_PSL_NAMESPACE_ID}\" is reserved for the parser-synthesised bucket for top-level declarations`, cursor.mark(1));\n\tif (!(parseModel(cursor) ?? parseNamespace(cursor) ?? parseCompositeType(cursor) ?? parseTypesBlock(cursor) ?? parseGenericBlock(cursor))) parseUnsupportedTopLevel(cursor);\n}\n/**\n* Reports only the first missing piece — a missing name suppresses the\n* missing-brace diagnostic. `nameRequired` is false only for the `types` block.\n*/\nfunction parseBlock(cursor, kind, nameRequired, parseMember) {\n\tconst keyword = cursor.peekToken().text;\n\tconst keywordMark = cursor.mark();\n\tcursor.startNode(kind);\n\tcursor.bump();\n\tconst hasName = nameRequired && cursor.peekKind() === \"Ident\";\n\tif (hasName) parseIdentifier(cursor);\n\tif (nameRequired && !hasName) cursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected a name after \"${keyword}\"`, keywordMark);\n\telse if (cursor.peekKind() !== \"LBrace\") cursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected \"{\" to open the \"${keyword}\" block`, cursor.markAfterLastToken());\n\tif (cursor.peekKind() === \"LBrace\") parseBlockBody(cursor, parseMember);\n\telse cursor.recoverToSyncPoint();\n\treturn cursor.finishNode();\n}\nfunction parseModel(cursor) {\n\tif (!keywordIs(cursor, \"model\")) return void 0;\n\treturn parseBlock(cursor, \"ModelDeclaration\", true, parseModelMember);\n}\n/**\n* Excluding the reserved keywords keeps a malformed reserved block (e.g. `model\n* {` with no name) routed to its dedicated parser. The generic keyword set is\n* open, so a bare identifier with no brace (e.g. `oops`) is read as an unfinished\n* custom declaration rather than unsupported content.\n*/\nfunction parseGenericBlock(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tconst keyword = cursor.peekToken().text;\n\tif (RESERVED_BLOCK_KEYWORDS.has(keyword)) return void 0;\n\tconst hasName = cursor.peekKind(1) === \"Ident\" && cursor.peekKind(2) === \"LBrace\";\n\tcursor.startNode(\"GenericBlockDeclaration\");\n\tcursor.bump();\n\tif (hasName) parseIdentifier(cursor);\n\tif (cursor.peekKind() === \"LBrace\") parseBlockBody(cursor, parseKeyValueMember);\n\telse {\n\t\tcursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected \"{\" to open the \"${keyword}\" block`, cursor.markAfterLastToken());\n\t\tcursor.recoverToSyncPoint();\n\t}\n\treturn cursor.finishNode();\n}\nfunction parseNamespace(cursor) {\n\tif (!keywordIs(cursor, \"namespace\")) return void 0;\n\treturn parseBlock(cursor, \"Namespace\", true, (inner) => parseDeclaration(inner, true));\n}\nfunction parseCompositeType(cursor) {\n\tif (!keywordIs(cursor, \"type\")) return void 0;\n\treturn parseBlock(cursor, \"CompositeTypeDeclaration\", true, parseModelMember);\n}\n/** `types` (plural) is the no-name types block; the singular `type` is the composite type above. */\nfunction parseTypesBlock(cursor) {\n\tif (!keywordIs(cursor, \"types\")) return void 0;\n\treturn parseBlock(cursor, \"TypesBlock\", false, parseNamedTypeMember);\n}\n/** Every `parseMember` consumes at least one significant token, so the loop always terminates. */\nfunction parseBlockBody(cursor, parseMember) {\n\tconst braceMark = cursor.mark();\n\tcursor.bump();\n\tfor (;;) {\n\t\tconst kind = cursor.peekKind();\n\t\tif (kind === \"RBrace\" || kind === \"Eof\") break;\n\t\tparseMember(cursor);\n\t}\n\tif (cursor.peekKind() === \"RBrace\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_UNTERMINATED_BLOCK\", \"Unterminated block declaration\", braceMark);\n}\nfunction parseUnsupportedTopLevel(cursor) {\n\tconst offending = cursor.peekToken().text;\n\tconst message = cursor.peekKind(1) === \"LBrace\" ? `Unsupported top-level block \"${offending}\"` : `Unsupported top-level declaration \"${offending}\"`;\n\tcursor.diagnostic(\"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\", message, cursor.mark());\n\tcursor.bump();\n\tcursor.recoverToSyncPoint();\n}\n/**\n* Matches a leading `@@` block attribute, a no-op otherwise. Single-`@`\n* attributes belong to fields and are parsed inside `parseField`.\n*/\nfunction parseBlockAttribute(cursor) {\n\tif (cursor.peekKind() !== \"DoubleAt\") return void 0;\n\treturn parseAttribute(cursor);\n}\nfunction parseModelMember(cursor) {\n\tif (!(parseBlockAttribute(cursor) ?? parseField(cursor))) invalidMember(cursor, \"PSL_INVALID_MODEL_MEMBER\", `Invalid model member declaration \"${cursor.peekToken().text}\"`);\n}\nfunction parseNamedTypeMember(cursor) {\n\tif (!parseNamedType(cursor)) invalidMember(cursor, \"PSL_INVALID_TYPES_MEMBER\", `Invalid types declaration \"${cursor.peekToken().text}\"`);\n}\n/**\n* A generic-block member is either a `@@`-block attribute or a `key = value`\n* entry. The block-attribute alternative is purely syntactic — it does not judge\n* whether the attribute is valid for the block's kind.\n*/\nfunction parseKeyValueMember(cursor) {\n\tif (!(parseBlockAttribute(cursor) ?? parseKeyValue(cursor))) invalidMember(cursor, \"PSL_INVALID_EXTENSION_BLOCK_MEMBER\", \"Invalid block entry\");\n}\nfunction invalidMember(cursor, code, message) {\n\tcursor.diagnostic(code, message, cursor.mark());\n\tcursor.bump();\n\tcursor.recoverToSyncPoint();\n}\nfunction parseField(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"FieldDeclaration\");\n\tconst nameMark = cursor.mark();\n\tconst nameText = cursor.peekToken().text;\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() !== \"Ident\") cursor.diagnostic(\"PSL_INVALID_MODEL_MEMBER\", `Expected a type after field \"${nameText}\"`, nameMark);\n\tparseTypeAnnotation(cursor);\n\twhile (cursor.peekKind() === \"At\") parseAttribute(cursor);\n\treturn cursor.finishNode();\n}\nfunction parseNamedType(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"NamedTypeDeclaration\");\n\tconst nameMark = cursor.mark();\n\tconst nameText = cursor.peekToken().text;\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() === \"Equals\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_INVALID_TYPES_MEMBER\", `Expected \"=\" after \"${nameText}\"`, nameMark);\n\tparseTypeAnnotation(cursor);\n\twhile (cursor.peekKind() === \"At\") parseAttribute(cursor);\n\treturn cursor.finishNode();\n}\n/**\n* A generic-block entry is either `key = value` or a bare `key` (committing a\n* `KeyValuePair` carrying only the key). A `key =` with no following expression\n* is flagged.\n*/\nfunction parseKeyValue(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"KeyValuePair\");\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() === \"Equals\") {\n\t\tcursor.bump();\n\t\tif (!parseExpression(cursor)) cursor.diagnostic(\"PSL_INVALID_EXTENSION_BLOCK_MEMBER\", \"Expected a value after \\\"=\\\"\", cursor.mark());\n\t}\n\treturn cursor.finishNode();\n}\n//#endregion\nexport { SourceFile as a, greenToken as i, GreenNodeBuilder as n, greenNode as r, parse as t };\n\n//# sourceMappingURL=parse-GbZGfMUj.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"parse-GbZGfMUj-C9tHGn-6.mjs","names":["#text","#lineStarts","#lineIndexAt","#lineStartAt","#lineEndAt","#stack","#tokenizer","#sourceFile","#diagnostics","#offset","#depth","#builder","#advance"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/parse-GbZGfMUj.mjs"],"sourcesContent":["import { N as createSyntaxTree, n as DocumentAst } from \"./declarations-DR6To8_k.mjs\";\nimport { n as isTerminatedStringLiteral, t as Tokenizer } from \"./tokenizer-1hAHZzmp.mjs\";\nimport { UNSPECIFIED_PSL_NAMESPACE_ID } from \"@internal/framework-components/psl-ast\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/source-file.ts\nconst CARRIAGE_RETURN = 13;\nconst LINE_FEED = 10;\nvar SourceFile = class {\n\t#text;\n\t#lineStarts;\n\tconstructor(text) {\n\t\tthis.#text = text;\n\t\tconst lineStarts = [0];\n\t\tfor (let offset = 0; offset < text.length; offset++) if (text.charCodeAt(offset) === LINE_FEED) lineStarts.push(offset + 1);\n\t\tthis.#lineStarts = lineStarts;\n\t}\n\tget text() {\n\t\treturn this.#text;\n\t}\n\tget length() {\n\t\treturn this.#text.length;\n\t}\n\tget lineCount() {\n\t\treturn this.#lineStarts.length;\n\t}\n\tlineStartOffsets() {\n\t\treturn this.#lineStarts;\n\t}\n\tlineStartOffset(line) {\n\t\tif (line <= 0) return 0;\n\t\treturn this.#lineStarts[line] ?? this.#text.length;\n\t}\n\tlineEndOffset(line) {\n\t\tif (line < 0) return 0;\n\t\tconst nextLineStart = this.#lineStarts[line + 1];\n\t\tif (nextLineStart === void 0) return this.#text.length;\n\t\tconst lineFeedOffset = nextLineStart - 1;\n\t\tconst carriageReturnOffset = lineFeedOffset - 1;\n\t\treturn this.#text.charCodeAt(carriageReturnOffset) === CARRIAGE_RETURN ? carriageReturnOffset : lineFeedOffset;\n\t}\n\tpositionAt(offset) {\n\t\tconst clamped = clamp(offset, 0, this.#text.length);\n\t\tconst line = this.#lineIndexAt(clamped);\n\t\treturn {\n\t\t\tline,\n\t\t\tcharacter: clamped - this.#lineStartAt(line)\n\t\t};\n\t}\n\toffsetAt(position) {\n\t\tconst line = clamp(position.line, 0, this.#lineStarts.length - 1);\n\t\tconst lineStart = this.#lineStartAt(line);\n\t\tconst lineEnd = this.#lineEndAt(line);\n\t\treturn clamp(lineStart + position.character, lineStart, lineEnd);\n\t}\n\t#lineStartAt(line) {\n\t\treturn this.#lineStarts[line] ?? 0;\n\t}\n\t#lineEndAt(line) {\n\t\treturn line + 1 < this.#lineStarts.length ? this.#lineStartAt(line + 1) - 1 : this.#text.length;\n\t}\n\t#lineIndexAt(offset) {\n\t\tconst lineStarts = this.#lineStarts;\n\t\tlet low = 0;\n\t\tlet high = lineStarts.length - 1;\n\t\twhile (low < high) {\n\t\t\tconst mid = low + high + 1 >>> 1;\n\t\t\tif ((lineStarts[mid] ?? 0) <= offset) low = mid;\n\t\t\telse high = mid - 1;\n\t\t}\n\t\treturn low;\n\t}\n};\nfunction clamp(value, min, max) {\n\tif (value < min) return min;\n\tif (value > max) return max;\n\treturn value;\n}\n//#endregion\n//#region src/syntax/green.ts\nfunction greenToken(kind, text) {\n\treturn {\n\t\ttype: \"token\",\n\t\tkind,\n\t\ttext\n\t};\n}\nfunction greenNode(kind, children) {\n\tlet textLength = 0;\n\tfor (const child of children) textLength += child.type === \"token\" ? child.text.length : child.textLength;\n\treturn {\n\t\ttype: \"node\",\n\t\tkind,\n\t\tchildren,\n\t\ttextLength\n\t};\n}\n//#endregion\n//#region src/syntax/green-builder.ts\nvar GreenNodeBuilder = class {\n\t#stack = [];\n\tstartNode(kind) {\n\t\tthis.#stack.push({\n\t\t\tkind,\n\t\t\tchildren: []\n\t\t});\n\t}\n\ttoken(kind, text) {\n\t\tconst current = this.#stack.at(-1);\n\t\tif (!current) throw new InternalError(\"GreenNodeBuilder: token() called with no open node\");\n\t\tcurrent.children.push(greenToken(kind, text));\n\t}\n\tfinishNode() {\n\t\tconst completed = this.#stack.pop();\n\t\tif (!completed) throw new InternalError(\"GreenNodeBuilder: finishNode() called with no open node\");\n\t\tconst node = greenNode(completed.kind, completed.children);\n\t\tconst parent = this.#stack.at(-1);\n\t\tif (parent) parent.children.push(node);\n\t\treturn node;\n\t}\n};\n//#endregion\n//#region src/parse.ts\nconst TRIVIA_KINDS = /* @__PURE__ */ new Set([\n\t\"Whitespace\",\n\t\"Newline\",\n\t\"Comment\"\n]);\n/**\n* The fault-tolerant parser substrate the grammars drive. Trivia is flushed\n* into the enclosing open node, so every child node spans exactly its first\n* through last significant token.\n*/\nvar Cursor = class {\n\t#tokenizer;\n\t#sourceFile;\n\t#builder = new GreenNodeBuilder();\n\t#diagnostics = [];\n\t#offset = 0;\n\t#depth = 0;\n\tconstructor(source) {\n\t\tthis.#tokenizer = new Tokenizer(source);\n\t\tthis.#sourceFile = new SourceFile(source);\n\t}\n\tget diagnostics() {\n\t\treturn this.#diagnostics;\n\t}\n\tget sourceFile() {\n\t\treturn this.#sourceFile;\n\t}\n\tpeekKind(ahead = 0) {\n\t\treturn this.peekToken(ahead).kind;\n\t}\n\tpeekToken(ahead = 0) {\n\t\tlet rawIndex = 0;\n\t\tlet remaining = ahead;\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek(rawIndex);\n\t\t\tif (token.kind === \"Eof\") return token;\n\t\t\tif (TRIVIA_KINDS.has(token.kind)) {\n\t\t\t\trawIndex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (remaining === 0) return token;\n\t\t\tremaining--;\n\t\t\trawIndex++;\n\t\t}\n\t}\n\t/** Span of the significant token `lookahead` positions ahead (`mark(0)` = the next). */\n\tmark(lookahead = 0) {\n\t\tlet rawIndex = 0;\n\t\tlet offset = this.#offset;\n\t\tlet remaining = lookahead;\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek(rawIndex);\n\t\t\tif (token.kind === \"Eof\") return {\n\t\t\t\toffset,\n\t\t\t\tlength: token.text.length\n\t\t\t};\n\t\t\tif (!TRIVIA_KINDS.has(token.kind) && remaining === 0) return {\n\t\t\t\toffset,\n\t\t\t\tlength: token.text.length\n\t\t\t};\n\t\t\tif (!TRIVIA_KINDS.has(token.kind)) remaining--;\n\t\t\toffset += token.text.length;\n\t\t\trawIndex++;\n\t\t}\n\t}\n\t/**\n\t* Zero-width mark just past the last consumed significant token — anchors an\n\t* \"expected here\" diagnostic, e.g. the `{` missing after a declaration's name.\n\t*/\n\tmarkAfterLastToken() {\n\t\treturn {\n\t\t\toffset: this.#offset,\n\t\t\tlength: 0\n\t\t};\n\t}\n\tstartNode(kind) {\n\t\tif (this.#depth > 0) this.flushTrivia();\n\t\tthis.#builder.startNode(kind);\n\t\tthis.#depth++;\n\t}\n\tfinishNode() {\n\t\tthis.#depth--;\n\t\treturn this.#builder.finishNode();\n\t}\n\tbump() {\n\t\tthis.flushTrivia();\n\t\tconst token = this.#tokenizer.peek();\n\t\tif (token.kind === \"Eof\") return token;\n\t\tthis.#builder.token(token.kind, token.text);\n\t\tthis.#advance();\n\t\treturn token;\n\t}\n\trecoverToSyncPoint() {\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek();\n\t\t\tif (token.kind === \"Eof\" || token.kind === \"Newline\" || token.kind === \"RBrace\") return;\n\t\t\tthis.#builder.token(token.kind, token.text);\n\t\t\tthis.#advance();\n\t\t}\n\t}\n\tflushTrivia() {\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek();\n\t\t\tif (!TRIVIA_KINDS.has(token.kind)) return;\n\t\t\tthis.#builder.token(token.kind, token.text);\n\t\t\tthis.#advance();\n\t\t}\n\t}\n\tdiagnostic(code, message, mark) {\n\t\tconst start = mark.offset;\n\t\tconst end = start + mark.length;\n\t\tthis.#diagnostics.push({\n\t\t\tcode,\n\t\t\tmessage,\n\t\t\trange: {\n\t\t\t\tstart: this.#sourceFile.positionAt(start),\n\t\t\t\tend: this.#sourceFile.positionAt(end)\n\t\t\t}\n\t\t});\n\t}\n\t#advance() {\n\t\tthis.#offset += this.#tokenizer.next().text.length;\n\t}\n};\nfunction parseIdentifier(cursor) {\n\tcursor.startNode(\"Identifier\");\n\tcursor.bump();\n\tcursor.finishNode();\n}\n/**\n* Returns `undefined` when the next significant token does not start a\n* recognised expression, leaving recovery to the caller.\n*/\nfunction parseExpression(cursor) {\n\treturn parseStringLiteralExpr(cursor) ?? parseNumberLiteralExpr(cursor) ?? parseArrayLiteral(cursor) ?? parseObjectLiteralExpr(cursor) ?? parseFunctionCall(cursor) ?? parseBooleanLiteralExpr(cursor) ?? parseIdentifierExpr(cursor);\n}\nfunction parseStringLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"StringLiteral\") return void 0;\n\tconst stringMark = cursor.mark();\n\tconst text = cursor.peekToken().text;\n\tcursor.startNode(\"StringLiteralExpr\");\n\tcursor.bump();\n\tif (!isTerminatedStringLiteral(text)) cursor.diagnostic(\"PSL_UNTERMINATED_STRING\", \"Unterminated string literal\", stringMark);\n\treturn cursor.finishNode();\n}\nfunction parseNumberLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"NumberLiteral\") return void 0;\n\tcursor.startNode(\"NumberLiteralExpr\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\n/**\n* Parses a namespace-qualified name `[space ':']? Ident ('.' Ident)*`. The\n* caller guarantees a leading `Ident`.\n*\n* Parsing the whole chain up front lets a position decide\n* constructor-vs-reference by peeking exactly one token for `(`, with no scan of\n* the dotted chain's length.\n*/\nfunction parseQualifiedName(cursor) {\n\tcursor.startNode(\"QualifiedName\");\n\tparseIdentifier(cursor);\n\tparseQualifiedSegments(cursor, \"Colon\");\n\tparseQualifiedSegments(cursor, \"Dot\");\n\tcursor.finishNode();\n}\n/**\n* A well-formed name carries at most one colon space and one dot namespace, so\n* each separator past the first of its kind reports `PSL_INVALID_QUALIFIED_NAME`.\n* The separator is consumed regardless, keeping the lossless round-trip intact.\n*/\nfunction parseQualifiedSegments(cursor, separator) {\n\tlet seen = 0;\n\twhile (cursor.peekKind() === separator) {\n\t\tseen++;\n\t\tconst separatorMark = cursor.mark();\n\t\tcursor.bump();\n\t\tif (seen > 1) cursor.diagnostic(\"PSL_INVALID_QUALIFIED_NAME\", \"Qualified name has too many segments\", separatorMark);\n\t\tif (cursor.peekKind() === \"Ident\") parseIdentifier(cursor);\n\t\telse cursor.diagnostic(\"PSL_INVALID_QUALIFIED_NAME\", \"Qualified name is missing a name after the separator\", cursor.mark());\n\t}\n}\nfunction parseBooleanLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tconst text = cursor.peekToken().text;\n\tif (text !== \"true\" && text !== \"false\") return void 0;\n\tcursor.startNode(\"BooleanLiteralExpr\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseIdentifierExpr(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"Identifier\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseArrayLiteral(cursor) {\n\tif (cursor.peekKind() !== \"LBracket\") return void 0;\n\tcursor.startNode(\"ArrayLiteral\");\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RBracket\" && cursor.peekKind() !== \"Eof\") {\n\t\tif (!parseExpression(cursor)) break;\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RBracket\") cursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseObjectLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"LBrace\") return void 0;\n\tconst braceMark = cursor.mark();\n\tcursor.startNode(\"ObjectLiteralExpr\");\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RBrace\" && cursor.peekKind() !== \"Eof\") {\n\t\tparseObjectField(cursor);\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse if (cursor.peekKind() === \"Ident\") cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Expected \\\",\\\" between object-literal fields\", cursor.markAfterLastToken());\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RBrace\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Unterminated object literal\", braceMark);\n\treturn cursor.finishNode();\n}\nfunction parseObjectField(cursor) {\n\tcursor.startNode(\"ObjectField\");\n\tconst keyMark = cursor.mark();\n\tconst keyText = cursor.peekToken().text;\n\tif (cursor.peekKind() === \"Ident\") parseIdentifier(cursor);\n\telse if (cursor.peekKind() === \"StringLiteral\") parseStringLiteralExpr(cursor);\n\tif (cursor.peekKind() === \"Colon\") {\n\t\tcursor.bump();\n\t\tif (!parseExpression(cursor)) cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Expected a value after \\\":\\\"\", cursor.mark());\n\t} else {\n\t\tcursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", `Expected \":\" after \"${keyText}\"`, keyMark);\n\t\tif (!(cursor.peekKind() === \"Ident\" && cursor.peekKind(1) === \"Colon\")) parseExpression(cursor);\n\t}\n\treturn cursor.finishNode();\n}\n/**\n* Whether the next tokens open a call: a bare `Ident(` or a namespace-qualified\n* `Ident.Ident(`. The lookahead is deliberately bounded so a bare dotted\n* reference like `a.b` is not mistaken for a call, rather than scanning an\n* unbounded dotted chain ahead to find the paren.\n*/\nfunction isCallAhead(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return false;\n\tif (cursor.peekKind(1) === \"LParen\") return true;\n\treturn cursor.peekKind(1) === \"Dot\" && cursor.peekKind(2) === \"Ident\" && cursor.peekKind(3) === \"LParen\";\n}\n/**\n* Parses a function/constructor call — bare `autoincrement()` or qualified\n* `temporal.updatedAt()`. Returns `undefined` unless {@link isCallAhead}\n* confirms a trailing `(`, so the `parseExpression` chain falls through to the\n* boolean and bare-identifier forms.\n*/\nfunction parseFunctionCall(cursor) {\n\tif (!isCallAhead(cursor)) return void 0;\n\tcursor.startNode(\"FunctionCall\");\n\tparseQualifiedName(cursor);\n\tif (cursor.peekKind() === \"LParen\") parseParenArgs(cursor);\n\treturn cursor.finishNode();\n}\n/** Parses a parenthesised, comma-separated `AttributeArg` list into the currently open node. */\nfunction parseParenArgs(cursor) {\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RParen\" && cursor.peekKind() !== \"Eof\") {\n\t\tparseAttributeArg(cursor);\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RParen\") cursor.bump();\n}\nfunction parseAttributeArg(cursor) {\n\tconst kind = cursor.peekKind();\n\tif (kind !== \"Ident\" && kind !== \"StringLiteral\" && kind !== \"NumberLiteral\" && kind !== \"LBracket\" && kind !== \"LBrace\") return;\n\tcursor.startNode(\"AttributeArg\");\n\tif (cursor.peekKind() === \"Ident\" && cursor.peekKind(1) === \"Colon\") {\n\t\tparseIdentifier(cursor);\n\t\tcursor.bump();\n\t}\n\tparseArgValue(cursor);\n\tcursor.finishNode();\n}\nfunction parseArgValue(cursor) {\n\tparseExpression(cursor);\n}\nfunction parseAttributeArgList(cursor) {\n\tcursor.startNode(\"AttributeArgList\");\n\tparseParenArgs(cursor);\n\treturn cursor.finishNode();\n}\nfunction parseAttribute(cursor) {\n\tconst isBlockAttribute = cursor.peekKind() === \"DoubleAt\";\n\tconst attributeMark = cursor.mark();\n\tcursor.startNode(isBlockAttribute ? \"ModelAttribute\" : \"FieldAttribute\");\n\tcursor.bump();\n\tif (cursor.peekKind() === \"Ident\") parseQualifiedName(cursor);\n\telse cursor.diagnostic(\"PSL_INVALID_ATTRIBUTE_SYNTAX\", \"Attribute name expected\", attributeMark);\n\tif (cursor.peekKind() === \"LParen\") parseAttributeArgList(cursor);\n\treturn cursor.finishNode();\n}\n/**\n* A type annotation: `QualifiedName (argList)? ([])? (?)?`, e.g.\n* `pgvector.Vector(1536)[]?`. When the field has no type, no node is emitted —\n* a missing type is the absence of a `TypeAnnotation`, not a zero-width one.\n*/\nfunction parseTypeAnnotation(cursor) {\n\tconst kind = cursor.peekKind();\n\tif (kind !== \"Ident\" && kind !== \"LBracket\" && kind !== \"Question\") return;\n\tcursor.startNode(\"TypeAnnotation\");\n\tif (cursor.peekKind() === \"Ident\") {\n\t\tparseQualifiedName(cursor);\n\t\tif (cursor.peekKind() === \"LParen\") parseAttributeArgList(cursor);\n\t}\n\tif (cursor.peekKind() === \"LBracket\") {\n\t\tcursor.bump();\n\t\tif (cursor.peekKind() === \"RBracket\") cursor.bump();\n\t}\n\tif (cursor.peekKind() === \"Question\") cursor.bump();\n\tcursor.finishNode();\n}\n/**\n* Parses a full PSL document. Never throws — malformed input yields diagnostics\n* and a recovered tree, not an exception.\n*/\nfunction parse(source) {\n\tconst cursor = new Cursor(source);\n\tconst root = createSyntaxTree(parseDocument(cursor));\n\treturn {\n\t\tdocument: DocumentAst.cast(root) ?? new DocumentAst(root),\n\t\tdiagnostics: cursor.diagnostics,\n\t\tsourceFile: cursor.sourceFile\n\t};\n}\nfunction parseDocument(cursor) {\n\tcursor.startNode(\"Document\");\n\twhile (cursor.peekKind() !== \"Eof\") parseDeclaration(cursor, false);\n\tcursor.flushTrivia();\n\treturn cursor.finishNode();\n}\nconst RESERVED_BLOCK_KEYWORDS = /* @__PURE__ */ new Set([\n\t\"model\",\n\t\"namespace\",\n\t\"type\",\n\t\"types\"\n]);\nfunction keywordIs(cursor, keyword) {\n\treturn cursor.peekKind() === \"Ident\" && cursor.peekToken().text === keyword;\n}\n/**\n* Each alternative is a no-op on non-match, consuming nothing, so the\n* forward-only cursor is never left half-consumed by a rejected alternative.\n* Recovery runs via the `if (!node)` tail rather than as a `??` arm, because it\n* appends raw tokens to the open parent instead of returning a child node.\n*/\nfunction parseDeclaration(cursor, insideNamespace) {\n\tconst name = cursor.peekKind(1) === \"Ident\" ? cursor.peekToken(1).text : \"\";\n\tif (insideNamespace && keywordIs(cursor, \"namespace\")) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", `Recursive \"namespace ${name}\" block is not allowed; namespace blocks may not nest`, cursor.mark());\n\telse if (insideNamespace && keywordIs(cursor, \"types\")) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", \"`types` blocks must be declared at the document top level, not inside a namespace block\", cursor.mark());\n\telse if (keywordIs(cursor, \"namespace\") && name === UNSPECIFIED_PSL_NAMESPACE_ID) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", `Namespace name \"${UNSPECIFIED_PSL_NAMESPACE_ID}\" is reserved for the parser-synthesised bucket for top-level declarations`, cursor.mark(1));\n\tif (!(parseModel(cursor) ?? parseNamespace(cursor) ?? parseCompositeType(cursor) ?? parseTypesBlock(cursor) ?? parseGenericBlock(cursor))) parseUnsupportedTopLevel(cursor);\n}\n/**\n* Reports only the first missing piece — a missing name suppresses the\n* missing-brace diagnostic. `nameRequired` is false only for the `types` block.\n*/\nfunction parseBlock(cursor, kind, nameRequired, parseMember) {\n\tconst keyword = cursor.peekToken().text;\n\tconst keywordMark = cursor.mark();\n\tcursor.startNode(kind);\n\tcursor.bump();\n\tconst hasName = nameRequired && cursor.peekKind() === \"Ident\";\n\tif (hasName) parseIdentifier(cursor);\n\tif (nameRequired && !hasName) cursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected a name after \"${keyword}\"`, keywordMark);\n\telse if (cursor.peekKind() !== \"LBrace\") cursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected \"{\" to open the \"${keyword}\" block`, cursor.markAfterLastToken());\n\tif (cursor.peekKind() === \"LBrace\") parseBlockBody(cursor, parseMember);\n\telse cursor.recoverToSyncPoint();\n\treturn cursor.finishNode();\n}\nfunction parseModel(cursor) {\n\tif (!keywordIs(cursor, \"model\")) return void 0;\n\treturn parseBlock(cursor, \"ModelDeclaration\", true, parseModelMember);\n}\n/**\n* Excluding the reserved keywords keeps a malformed reserved block (e.g. `model\n* {` with no name) routed to its dedicated parser. The generic keyword set is\n* open, so a bare identifier with no brace (e.g. `oops`) is read as an unfinished\n* custom declaration rather than unsupported content.\n*/\nfunction parseGenericBlock(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tconst keyword = cursor.peekToken().text;\n\tif (RESERVED_BLOCK_KEYWORDS.has(keyword)) return void 0;\n\tconst hasName = cursor.peekKind(1) === \"Ident\" && cursor.peekKind(2) === \"LBrace\";\n\tcursor.startNode(\"GenericBlockDeclaration\");\n\tcursor.bump();\n\tif (hasName) parseIdentifier(cursor);\n\tif (cursor.peekKind() === \"LBrace\") parseBlockBody(cursor, parseKeyValueMember);\n\telse {\n\t\tcursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected \"{\" to open the \"${keyword}\" block`, cursor.markAfterLastToken());\n\t\tcursor.recoverToSyncPoint();\n\t}\n\treturn cursor.finishNode();\n}\nfunction parseNamespace(cursor) {\n\tif (!keywordIs(cursor, \"namespace\")) return void 0;\n\treturn parseBlock(cursor, \"Namespace\", true, (inner) => parseDeclaration(inner, true));\n}\nfunction parseCompositeType(cursor) {\n\tif (!keywordIs(cursor, \"type\")) return void 0;\n\treturn parseBlock(cursor, \"CompositeTypeDeclaration\", true, parseModelMember);\n}\n/** `types` (plural) is the no-name types block; the singular `type` is the composite type above. */\nfunction parseTypesBlock(cursor) {\n\tif (!keywordIs(cursor, \"types\")) return void 0;\n\treturn parseBlock(cursor, \"TypesBlock\", false, parseNamedTypeMember);\n}\n/** Every `parseMember` consumes at least one significant token, so the loop always terminates. */\nfunction parseBlockBody(cursor, parseMember) {\n\tconst braceMark = cursor.mark();\n\tcursor.bump();\n\tfor (;;) {\n\t\tconst kind = cursor.peekKind();\n\t\tif (kind === \"RBrace\" || kind === \"Eof\") break;\n\t\tparseMember(cursor);\n\t}\n\tif (cursor.peekKind() === \"RBrace\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_UNTERMINATED_BLOCK\", \"Unterminated block declaration\", braceMark);\n}\nfunction parseUnsupportedTopLevel(cursor) {\n\tconst offending = cursor.peekToken().text;\n\tconst message = cursor.peekKind(1) === \"LBrace\" ? `Unsupported top-level block \"${offending}\"` : `Unsupported top-level declaration \"${offending}\"`;\n\tcursor.diagnostic(\"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\", message, cursor.mark());\n\tcursor.bump();\n\tcursor.recoverToSyncPoint();\n}\n/**\n* Matches a leading `@@` block attribute, a no-op otherwise. Single-`@`\n* attributes belong to fields and are parsed inside `parseField`.\n*/\nfunction parseBlockAttribute(cursor) {\n\tif (cursor.peekKind() !== \"DoubleAt\") return void 0;\n\treturn parseAttribute(cursor);\n}\nfunction parseModelMember(cursor) {\n\tif (!(parseBlockAttribute(cursor) ?? parseField(cursor))) invalidMember(cursor, \"PSL_INVALID_MODEL_MEMBER\", `Invalid model member declaration \"${cursor.peekToken().text}\"`);\n}\nfunction parseNamedTypeMember(cursor) {\n\tif (!parseNamedType(cursor)) invalidMember(cursor, \"PSL_INVALID_TYPES_MEMBER\", `Invalid types declaration \"${cursor.peekToken().text}\"`);\n}\n/**\n* A generic-block member is either a `@@`-block attribute or a `key = value`\n* entry. The block-attribute alternative is purely syntactic — it does not judge\n* whether the attribute is valid for the block's kind.\n*/\nfunction parseKeyValueMember(cursor) {\n\tif (!(parseBlockAttribute(cursor) ?? parseKeyValue(cursor))) invalidMember(cursor, \"PSL_INVALID_EXTENSION_BLOCK_MEMBER\", \"Invalid block entry\");\n}\nfunction invalidMember(cursor, code, message) {\n\tcursor.diagnostic(code, message, cursor.mark());\n\tcursor.bump();\n\tcursor.recoverToSyncPoint();\n}\nfunction parseField(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"FieldDeclaration\");\n\tconst nameMark = cursor.mark();\n\tconst nameText = cursor.peekToken().text;\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() !== \"Ident\") cursor.diagnostic(\"PSL_INVALID_MODEL_MEMBER\", `Expected a type after field \"${nameText}\"`, nameMark);\n\tparseTypeAnnotation(cursor);\n\twhile (cursor.peekKind() === \"At\") parseAttribute(cursor);\n\treturn cursor.finishNode();\n}\nfunction parseNamedType(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"NamedTypeDeclaration\");\n\tconst nameMark = cursor.mark();\n\tconst nameText = cursor.peekToken().text;\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() === \"Equals\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_INVALID_TYPES_MEMBER\", `Expected \"=\" after \"${nameText}\"`, nameMark);\n\tparseTypeAnnotation(cursor);\n\twhile (cursor.peekKind() === \"At\") parseAttribute(cursor);\n\treturn cursor.finishNode();\n}\n/**\n* A generic-block entry is either `key = value` or a bare `key` (committing a\n* `KeyValuePair` carrying only the key). A `key =` with no following expression\n* is flagged.\n*/\nfunction parseKeyValue(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"KeyValuePair\");\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() === \"Equals\") {\n\t\tcursor.bump();\n\t\tif (!parseExpression(cursor)) cursor.diagnostic(\"PSL_INVALID_EXTENSION_BLOCK_MEMBER\", \"Expected a value after \\\"=\\\"\", cursor.mark());\n\t}\n\treturn cursor.finishNode();\n}\n//#endregion\nexport { SourceFile as a, greenToken as i, GreenNodeBuilder as n, greenNode as r, parse as t };\n\n//# sourceMappingURL=parse-GbZGfMUj.mjs.map"],"mappings":";;;;;AAKA,MAAM,kBAAkB;AACxB,MAAM,YAAY;AAClB,IAAI,aAAa,MAAM;CACtB;CACA;CACA,YAAY,MAAM;EACjB,KAAKA,QAAQ;EACb,MAAM,aAAa,CAAC,CAAC;EACrB,KAAK,IAAI,SAAS,GAAG,SAAS,KAAK,QAAQ,UAAU,IAAI,KAAK,WAAW,MAAM,MAAM,WAAW,WAAW,KAAK,SAAS,CAAC;EAC1H,KAAKC,cAAc;CACpB;CACA,IAAI,OAAO;EACV,OAAO,KAAKD;CACb;CACA,IAAI,SAAS;EACZ,OAAO,KAAKA,MAAM;CACnB;CACA,IAAI,YAAY;EACf,OAAO,KAAKC,YAAY;CACzB;CACA,mBAAmB;EAClB,OAAO,KAAKA;CACb;CACA,gBAAgB,MAAM;EACrB,IAAI,QAAQ,GAAG,OAAO;EACtB,OAAO,KAAKA,YAAY,SAAS,KAAKD,MAAM;CAC7C;CACA,cAAc,MAAM;EACnB,IAAI,OAAO,GAAG,OAAO;EACrB,MAAM,gBAAgB,KAAKC,YAAY,OAAO;EAC9C,IAAI,kBAAkB,KAAK,GAAG,OAAO,KAAKD,MAAM;EAChD,MAAM,iBAAiB,gBAAgB;EACvC,MAAM,uBAAuB,iBAAiB;EAC9C,OAAO,KAAKA,MAAM,WAAW,oBAAoB,MAAM,kBAAkB,uBAAuB;CACjG;CACA,WAAW,QAAQ;EAClB,MAAM,UAAU,MAAM,QAAQ,GAAG,KAAKA,MAAM,MAAM;EAClD,MAAM,OAAO,KAAKE,aAAa,OAAO;EACtC,OAAO;GACN;GACA,WAAW,UAAU,KAAKC,aAAa,IAAI;EAC5C;CACD;CACA,SAAS,UAAU;EAClB,MAAM,OAAO,MAAM,SAAS,MAAM,GAAG,KAAKF,YAAY,SAAS,CAAC;EAChE,MAAM,YAAY,KAAKE,aAAa,IAAI;EACxC,MAAM,UAAU,KAAKC,WAAW,IAAI;EACpC,OAAO,MAAM,YAAY,SAAS,WAAW,WAAW,OAAO;CAChE;CACA,aAAa,MAAM;EAClB,OAAO,KAAKH,YAAY,SAAS;CAClC;CACA,WAAW,MAAM;EAChB,OAAO,OAAO,IAAI,KAAKA,YAAY,SAAS,KAAKE,aAAa,OAAO,CAAC,IAAI,IAAI,KAAKH,MAAM;CAC1F;CACA,aAAa,QAAQ;EACpB,MAAM,aAAa,KAAKC;EACxB,IAAI,MAAM;EACV,IAAI,OAAO,WAAW,SAAS;EAC/B,OAAO,MAAM,MAAM;GAClB,MAAM,MAAM,MAAM,OAAO,MAAM;GAC/B,KAAK,WAAW,QAAQ,MAAM,QAAQ,MAAM;QACvC,OAAO,MAAM;EACnB;EACA,OAAO;CACR;AACD;AACA,SAAS,MAAM,OAAO,KAAK,KAAK;CAC/B,IAAI,QAAQ,KAAK,OAAO;CACxB,IAAI,QAAQ,KAAK,OAAO;CACxB,OAAO;AACR;AAGA,SAAS,WAAW,MAAM,MAAM;CAC/B,OAAO;EACN,MAAM;EACN;EACA;CACD;AACD;AACA,SAAS,UAAU,MAAM,UAAU;CAClC,IAAI,aAAa;CACjB,KAAK,MAAM,SAAS,UAAU,cAAc,MAAM,SAAS,UAAU,MAAM,KAAK,SAAS,MAAM;CAC/F,OAAO;EACN,MAAM;EACN;EACA;EACA;CACD;AACD;AAGA,IAAI,mBAAmB,MAAM;CAC5B,SAAS,CAAC;CACV,UAAU,MAAM;EACf,KAAKI,OAAO,KAAK;GAChB;GACA,UAAU,CAAC;EACZ,CAAC;CACF;CACA,MAAM,MAAM,MAAM;EACjB,MAAM,UAAU,KAAKA,OAAO,GAAG,EAAE;EACjC,IAAI,CAAC,SAAS,MAAM,IAAI,cAAc,oDAAoD;EAC1F,QAAQ,SAAS,KAAK,WAAW,MAAM,IAAI,CAAC;CAC7C;CACA,aAAa;EACZ,MAAM,YAAY,KAAKA,OAAO,IAAI;EAClC,IAAI,CAAC,WAAW,MAAM,IAAI,cAAc,yDAAyD;EACjG,MAAM,OAAO,UAAU,UAAU,MAAM,UAAU,QAAQ;EACzD,MAAM,SAAS,KAAKA,OAAO,GAAG,EAAE;EAChC,IAAI,QAAQ,OAAO,SAAS,KAAK,IAAI;EACrC,OAAO;CACR;AACD;AAGA,MAAM,+BAA+B,IAAI,IAAI;CAC5C;CACA;CACA;AACD,CAAC;;;;;;AAMD,IAAI,SAAS,MAAM;CAClB;CACA;CACA,WAAW,IAAI,iBAAiB;CAChC,eAAe,CAAC;CAChB,UAAU;CACV,SAAS;CACT,YAAY,QAAQ;EACnB,KAAKC,aAAa,IAAI,UAAU,MAAM;EACtC,KAAKC,cAAc,IAAI,WAAW,MAAM;CACzC;CACA,IAAI,cAAc;EACjB,OAAO,KAAKC;CACb;CACA,IAAI,aAAa;EAChB,OAAO,KAAKD;CACb;CACA,SAAS,QAAQ,GAAG;EACnB,OAAO,KAAK,UAAU,KAAK,CAAC,CAAC;CAC9B;CACA,UAAU,QAAQ,GAAG;EACpB,IAAI,WAAW;EACf,IAAI,YAAY;EAChB,SAAS;GACR,MAAM,QAAQ,KAAKD,WAAW,KAAK,QAAQ;GAC3C,IAAI,MAAM,SAAS,OAAO,OAAO;GACjC,IAAI,aAAa,IAAI,MAAM,IAAI,GAAG;IACjC;IACA;GACD;GACA,IAAI,cAAc,GAAG,OAAO;GAC5B;GACA;EACD;CACD;;CAEA,KAAK,YAAY,GAAG;EACnB,IAAI,WAAW;EACf,IAAI,SAAS,KAAKG;EAClB,IAAI,YAAY;EAChB,SAAS;GACR,MAAM,QAAQ,KAAKH,WAAW,KAAK,QAAQ;GAC3C,IAAI,MAAM,SAAS,OAAO,OAAO;IAChC;IACA,QAAQ,MAAM,KAAK;GACpB;GACA,IAAI,CAAC,aAAa,IAAI,MAAM,IAAI,KAAK,cAAc,GAAG,OAAO;IAC5D;IACA,QAAQ,MAAM,KAAK;GACpB;GACA,IAAI,CAAC,aAAa,IAAI,MAAM,IAAI,GAAG;GACnC,UAAU,MAAM,KAAK;GACrB;EACD;CACD;;;;;CAKA,qBAAqB;EACpB,OAAO;GACN,QAAQ,KAAKG;GACb,QAAQ;EACT;CACD;CACA,UAAU,MAAM;EACf,IAAI,KAAKC,SAAS,GAAG,KAAK,YAAY;EACtC,KAAKC,SAAS,UAAU,IAAI;EAC5B,KAAKD;CACN;CACA,aAAa;EACZ,KAAKA;EACL,OAAO,KAAKC,SAAS,WAAW;CACjC;CACA,OAAO;EACN,KAAK,YAAY;EACjB,MAAM,QAAQ,KAAKL,WAAW,KAAK;EACnC,IAAI,MAAM,SAAS,OAAO,OAAO;EACjC,KAAKK,SAAS,MAAM,MAAM,MAAM,MAAM,IAAI;EAC1C,KAAKC,SAAS;EACd,OAAO;CACR;CACA,qBAAqB;EACpB,SAAS;GACR,MAAM,QAAQ,KAAKN,WAAW,KAAK;GACnC,IAAI,MAAM,SAAS,SAAS,MAAM,SAAS,aAAa,MAAM,SAAS,UAAU;GACjF,KAAKK,SAAS,MAAM,MAAM,MAAM,MAAM,IAAI;GAC1C,KAAKC,SAAS;EACf;CACD;CACA,cAAc;EACb,SAAS;GACR,MAAM,QAAQ,KAAKN,WAAW,KAAK;GACnC,IAAI,CAAC,aAAa,IAAI,MAAM,IAAI,GAAG;GACnC,KAAKK,SAAS,MAAM,MAAM,MAAM,MAAM,IAAI;GAC1C,KAAKC,SAAS;EACf;CACD;CACA,WAAW,MAAM,SAAS,MAAM;EAC/B,MAAM,QAAQ,KAAK;EACnB,MAAM,MAAM,QAAQ,KAAK;EACzB,KAAKJ,aAAa,KAAK;GACtB;GACA;GACA,OAAO;IACN,OAAO,KAAKD,YAAY,WAAW,KAAK;IACxC,KAAK,KAAKA,YAAY,WAAW,GAAG;GACrC;EACD,CAAC;CACF;CACA,WAAW;EACV,KAAKE,WAAW,KAAKH,WAAW,KAAK,CAAC,CAAC,KAAK;CAC7C;AACD;AACA,SAAS,gBAAgB,QAAQ;CAChC,OAAO,UAAU,YAAY;CAC7B,OAAO,KAAK;CACZ,OAAO,WAAW;AACnB;;;;;AAKA,SAAS,gBAAgB,QAAQ;CAChC,OAAO,uBAAuB,MAAM,KAAK,uBAAuB,MAAM,KAAK,kBAAkB,MAAM,KAAK,uBAAuB,MAAM,KAAK,kBAAkB,MAAM,KAAK,wBAAwB,MAAM,KAAK,oBAAoB,MAAM;AACrO;AACA,SAAS,uBAAuB,QAAQ;CACvC,IAAI,OAAO,SAAS,MAAM,iBAAiB,OAAO,KAAK;CACvD,MAAM,aAAa,OAAO,KAAK;CAC/B,MAAM,OAAO,OAAO,UAAU,CAAC,CAAC;CAChC,OAAO,UAAU,mBAAmB;CACpC,OAAO,KAAK;CACZ,IAAI,CAAC,0BAA0B,IAAI,GAAG,OAAO,WAAW,2BAA2B,+BAA+B,UAAU;CAC5H,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,uBAAuB,QAAQ;CACvC,IAAI,OAAO,SAAS,MAAM,iBAAiB,OAAO,KAAK;CACvD,OAAO,UAAU,mBAAmB;CACpC,OAAO,KAAK;CACZ,OAAO,OAAO,WAAW;AAC1B;;;;;;;;;AASA,SAAS,mBAAmB,QAAQ;CACnC,OAAO,UAAU,eAAe;CAChC,gBAAgB,MAAM;CACtB,uBAAuB,QAAQ,OAAO;CACtC,uBAAuB,QAAQ,KAAK;CACpC,OAAO,WAAW;AACnB;;;;;;AAMA,SAAS,uBAAuB,QAAQ,WAAW;CAClD,IAAI,OAAO;CACX,OAAO,OAAO,SAAS,MAAM,WAAW;EACvC;EACA,MAAM,gBAAgB,OAAO,KAAK;EAClC,OAAO,KAAK;EACZ,IAAI,OAAO,GAAG,OAAO,WAAW,8BAA8B,wCAAwC,aAAa;EACnH,IAAI,OAAO,SAAS,MAAM,SAAS,gBAAgB,MAAM;OACpD,OAAO,WAAW,8BAA8B,wDAAwD,OAAO,KAAK,CAAC;CAC3H;AACD;AACA,SAAS,wBAAwB,QAAQ;CACxC,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;CAC/C,MAAM,OAAO,OAAO,UAAU,CAAC,CAAC;CAChC,IAAI,SAAS,UAAU,SAAS,SAAS,OAAO,KAAK;CACrD,OAAO,UAAU,oBAAoB;CACrC,OAAO,KAAK;CACZ,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,oBAAoB,QAAQ;CACpC,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;CAC/C,OAAO,UAAU,YAAY;CAC7B,OAAO,KAAK;CACZ,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,kBAAkB,QAAQ;CAClC,IAAI,OAAO,SAAS,MAAM,YAAY,OAAO,KAAK;CAClD,OAAO,UAAU,cAAc;CAC/B,OAAO,KAAK;CACZ,OAAO,OAAO,SAAS,MAAM,cAAc,OAAO,SAAS,MAAM,OAAO;EACvE,IAAI,CAAC,gBAAgB,MAAM,GAAG;EAC9B,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;OAC1C;CACN;CACA,IAAI,OAAO,SAAS,MAAM,YAAY,OAAO,KAAK;CAClD,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,uBAAuB,QAAQ;CACvC,IAAI,OAAO,SAAS,MAAM,UAAU,OAAO,KAAK;CAChD,MAAM,YAAY,OAAO,KAAK;CAC9B,OAAO,UAAU,mBAAmB;CACpC,OAAO,KAAK;CACZ,OAAO,OAAO,SAAS,MAAM,YAAY,OAAO,SAAS,MAAM,OAAO;EACrE,iBAAiB,MAAM;EACvB,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;OAC1C,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,WAAW,8BAA8B,gDAAgD,OAAO,mBAAmB,CAAC;OAC9J;CACN;CACA,IAAI,OAAO,SAAS,MAAM,UAAU,OAAO,KAAK;MAC3C,OAAO,WAAW,8BAA8B,+BAA+B,SAAS;CAC7F,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,iBAAiB,QAAQ;CACjC,OAAO,UAAU,aAAa;CAC9B,MAAM,UAAU,OAAO,KAAK;CAC5B,MAAM,UAAU,OAAO,UAAU,CAAC,CAAC;CACnC,IAAI,OAAO,SAAS,MAAM,SAAS,gBAAgB,MAAM;MACpD,IAAI,OAAO,SAAS,MAAM,iBAAiB,uBAAuB,MAAM;CAC7E,IAAI,OAAO,SAAS,MAAM,SAAS;EAClC,OAAO,KAAK;EACZ,IAAI,CAAC,gBAAgB,MAAM,GAAG,OAAO,WAAW,8BAA8B,gCAAgC,OAAO,KAAK,CAAC;CAC5H,OAAO;EACN,OAAO,WAAW,8BAA8B,uBAAuB,QAAQ,IAAI,OAAO;EAC1F,IAAI,EAAE,OAAO,SAAS,MAAM,WAAW,OAAO,SAAS,CAAC,MAAM,UAAU,gBAAgB,MAAM;CAC/F;CACA,OAAO,OAAO,WAAW;AAC1B;;;;;;;AAOA,SAAS,YAAY,QAAQ;CAC5B,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO;CAC1C,IAAI,OAAO,SAAS,CAAC,MAAM,UAAU,OAAO;CAC5C,OAAO,OAAO,SAAS,CAAC,MAAM,SAAS,OAAO,SAAS,CAAC,MAAM,WAAW,OAAO,SAAS,CAAC,MAAM;AACjG;;;;;;;AAOA,SAAS,kBAAkB,QAAQ;CAClC,IAAI,CAAC,YAAY,MAAM,GAAG,OAAO,KAAK;CACtC,OAAO,UAAU,cAAc;CAC/B,mBAAmB,MAAM;CACzB,IAAI,OAAO,SAAS,MAAM,UAAU,eAAe,MAAM;CACzD,OAAO,OAAO,WAAW;AAC1B;;AAEA,SAAS,eAAe,QAAQ;CAC/B,OAAO,KAAK;CACZ,OAAO,OAAO,SAAS,MAAM,YAAY,OAAO,SAAS,MAAM,OAAO;EACrE,kBAAkB,MAAM;EACxB,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;OAC1C;CACN;CACA,IAAI,OAAO,SAAS,MAAM,UAAU,OAAO,KAAK;AACjD;AACA,SAAS,kBAAkB,QAAQ;CAClC,MAAM,OAAO,OAAO,SAAS;CAC7B,IAAI,SAAS,WAAW,SAAS,mBAAmB,SAAS,mBAAmB,SAAS,cAAc,SAAS,UAAU;CAC1H,OAAO,UAAU,cAAc;CAC/B,IAAI,OAAO,SAAS,MAAM,WAAW,OAAO,SAAS,CAAC,MAAM,SAAS;EACpE,gBAAgB,MAAM;EACtB,OAAO,KAAK;CACb;CACA,cAAc,MAAM;CACpB,OAAO,WAAW;AACnB;AACA,SAAS,cAAc,QAAQ;CAC9B,gBAAgB,MAAM;AACvB;AACA,SAAS,sBAAsB,QAAQ;CACtC,OAAO,UAAU,kBAAkB;CACnC,eAAe,MAAM;CACrB,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,eAAe,QAAQ;CAC/B,MAAM,mBAAmB,OAAO,SAAS,MAAM;CAC/C,MAAM,gBAAgB,OAAO,KAAK;CAClC,OAAO,UAAU,mBAAmB,mBAAmB,gBAAgB;CACvE,OAAO,KAAK;CACZ,IAAI,OAAO,SAAS,MAAM,SAAS,mBAAmB,MAAM;MACvD,OAAO,WAAW,gCAAgC,2BAA2B,aAAa;CAC/F,IAAI,OAAO,SAAS,MAAM,UAAU,sBAAsB,MAAM;CAChE,OAAO,OAAO,WAAW;AAC1B;;;;;;AAMA,SAAS,oBAAoB,QAAQ;CACpC,MAAM,OAAO,OAAO,SAAS;CAC7B,IAAI,SAAS,WAAW,SAAS,cAAc,SAAS,YAAY;CACpE,OAAO,UAAU,gBAAgB;CACjC,IAAI,OAAO,SAAS,MAAM,SAAS;EAClC,mBAAmB,MAAM;EACzB,IAAI,OAAO,SAAS,MAAM,UAAU,sBAAsB,MAAM;CACjE;CACA,IAAI,OAAO,SAAS,MAAM,YAAY;EACrC,OAAO,KAAK;EACZ,IAAI,OAAO,SAAS,MAAM,YAAY,OAAO,KAAK;CACnD;CACA,IAAI,OAAO,SAAS,MAAM,YAAY,OAAO,KAAK;CAClD,OAAO,WAAW;AACnB;;;;;AAKA,SAAS,MAAM,QAAQ;CACtB,MAAM,SAAS,IAAI,OAAO,MAAM;CAChC,MAAM,OAAO,iBAAiB,cAAc,MAAM,CAAC;CACnD,OAAO;EACN,UAAU,YAAY,KAAK,IAAI,KAAK,IAAI,YAAY,IAAI;EACxD,aAAa,OAAO;EACpB,YAAY,OAAO;CACpB;AACD;AACA,SAAS,cAAc,QAAQ;CAC9B,OAAO,UAAU,UAAU;CAC3B,OAAO,OAAO,SAAS,MAAM,OAAO,iBAAiB,QAAQ,KAAK;CAClE,OAAO,YAAY;CACnB,OAAO,OAAO,WAAW;AAC1B;AACA,MAAM,0CAA0C,IAAI,IAAI;CACvD;CACA;CACA;CACA;AACD,CAAC;AACD,SAAS,UAAU,QAAQ,SAAS;CACnC,OAAO,OAAO,SAAS,MAAM,WAAW,OAAO,UAAU,CAAC,CAAC,SAAS;AACrE;;;;;;;AAOA,SAAS,iBAAiB,QAAQ,iBAAiB;CAClD,MAAM,OAAO,OAAO,SAAS,CAAC,MAAM,UAAU,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO;CACzE,IAAI,mBAAmB,UAAU,QAAQ,WAAW,GAAG,OAAO,WAAW,+BAA+B,wBAAwB,KAAK,wDAAwD,OAAO,KAAK,CAAC;MACrM,IAAI,mBAAmB,UAAU,QAAQ,OAAO,GAAG,OAAO,WAAW,+BAA+B,2FAA2F,OAAO,KAAK,CAAC;MAC5M,IAAI,UAAU,QAAQ,WAAW,KAAK,SAAA,mBAAuC,OAAO,WAAW,+BAA+B,mBAAmB,6BAA6B,6EAA6E,OAAO,KAAK,CAAC,CAAC;CAC9Q,IAAI,EAAE,WAAW,MAAM,KAAK,eAAe,MAAM,KAAK,mBAAmB,MAAM,KAAK,gBAAgB,MAAM,KAAK,kBAAkB,MAAM,IAAI,yBAAyB,MAAM;AAC3K;;;;;AAKA,SAAS,WAAW,QAAQ,MAAM,cAAc,aAAa;CAC5D,MAAM,UAAU,OAAO,UAAU,CAAC,CAAC;CACnC,MAAM,cAAc,OAAO,KAAK;CAChC,OAAO,UAAU,IAAI;CACrB,OAAO,KAAK;CACZ,MAAM,UAAU,gBAAgB,OAAO,SAAS,MAAM;CACtD,IAAI,SAAS,gBAAgB,MAAM;CACnC,IAAI,gBAAgB,CAAC,SAAS,OAAO,WAAW,2BAA2B,0BAA0B,QAAQ,IAAI,WAAW;MACvH,IAAI,OAAO,SAAS,MAAM,UAAU,OAAO,WAAW,2BAA2B,6BAA6B,QAAQ,UAAU,OAAO,mBAAmB,CAAC;CAChK,IAAI,OAAO,SAAS,MAAM,UAAU,eAAe,QAAQ,WAAW;MACjE,OAAO,mBAAmB;CAC/B,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,WAAW,QAAQ;CAC3B,IAAI,CAAC,UAAU,QAAQ,OAAO,GAAG,OAAO,KAAK;CAC7C,OAAO,WAAW,QAAQ,oBAAoB,MAAM,gBAAgB;AACrE;;;;;;;AAOA,SAAS,kBAAkB,QAAQ;CAClC,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;CAC/C,MAAM,UAAU,OAAO,UAAU,CAAC,CAAC;CACnC,IAAI,wBAAwB,IAAI,OAAO,GAAG,OAAO,KAAK;CACtD,MAAM,UAAU,OAAO,SAAS,CAAC,MAAM,WAAW,OAAO,SAAS,CAAC,MAAM;CACzE,OAAO,UAAU,yBAAyB;CAC1C,OAAO,KAAK;CACZ,IAAI,SAAS,gBAAgB,MAAM;CACnC,IAAI,OAAO,SAAS,MAAM,UAAU,eAAe,QAAQ,mBAAmB;MACzE;EACJ,OAAO,WAAW,2BAA2B,6BAA6B,QAAQ,UAAU,OAAO,mBAAmB,CAAC;EACvH,OAAO,mBAAmB;CAC3B;CACA,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,eAAe,QAAQ;CAC/B,IAAI,CAAC,UAAU,QAAQ,WAAW,GAAG,OAAO,KAAK;CACjD,OAAO,WAAW,QAAQ,aAAa,OAAO,UAAU,iBAAiB,OAAO,IAAI,CAAC;AACtF;AACA,SAAS,mBAAmB,QAAQ;CACnC,IAAI,CAAC,UAAU,QAAQ,MAAM,GAAG,OAAO,KAAK;CAC5C,OAAO,WAAW,QAAQ,4BAA4B,MAAM,gBAAgB;AAC7E;;AAEA,SAAS,gBAAgB,QAAQ;CAChC,IAAI,CAAC,UAAU,QAAQ,OAAO,GAAG,OAAO,KAAK;CAC7C,OAAO,WAAW,QAAQ,cAAc,OAAO,oBAAoB;AACpE;;AAEA,SAAS,eAAe,QAAQ,aAAa;CAC5C,MAAM,YAAY,OAAO,KAAK;CAC9B,OAAO,KAAK;CACZ,SAAS;EACR,MAAM,OAAO,OAAO,SAAS;EAC7B,IAAI,SAAS,YAAY,SAAS,OAAO;EACzC,YAAY,MAAM;CACnB;CACA,IAAI,OAAO,SAAS,MAAM,UAAU,OAAO,KAAK;MAC3C,OAAO,WAAW,0BAA0B,kCAAkC,SAAS;AAC7F;AACA,SAAS,yBAAyB,QAAQ;CACzC,MAAM,YAAY,OAAO,UAAU,CAAC,CAAC;CACrC,MAAM,UAAU,OAAO,SAAS,CAAC,MAAM,WAAW,gCAAgC,UAAU,KAAK,sCAAsC,UAAU;CACjJ,OAAO,WAAW,mCAAmC,SAAS,OAAO,KAAK,CAAC;CAC3E,OAAO,KAAK;CACZ,OAAO,mBAAmB;AAC3B;;;;;AAKA,SAAS,oBAAoB,QAAQ;CACpC,IAAI,OAAO,SAAS,MAAM,YAAY,OAAO,KAAK;CAClD,OAAO,eAAe,MAAM;AAC7B;AACA,SAAS,iBAAiB,QAAQ;CACjC,IAAI,EAAE,oBAAoB,MAAM,KAAK,WAAW,MAAM,IAAI,cAAc,QAAQ,4BAA4B,qCAAqC,OAAO,UAAU,CAAC,CAAC,KAAK,EAAE;AAC5K;AACA,SAAS,qBAAqB,QAAQ;CACrC,IAAI,CAAC,eAAe,MAAM,GAAG,cAAc,QAAQ,4BAA4B,8BAA8B,OAAO,UAAU,CAAC,CAAC,KAAK,EAAE;AACxI;;;;;;AAMA,SAAS,oBAAoB,QAAQ;CACpC,IAAI,EAAE,oBAAoB,MAAM,KAAK,cAAc,MAAM,IAAI,cAAc,QAAQ,sCAAsC,qBAAqB;AAC/I;AACA,SAAS,cAAc,QAAQ,MAAM,SAAS;CAC7C,OAAO,WAAW,MAAM,SAAS,OAAO,KAAK,CAAC;CAC9C,OAAO,KAAK;CACZ,OAAO,mBAAmB;AAC3B;AACA,SAAS,WAAW,QAAQ;CAC3B,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;CAC/C,OAAO,UAAU,kBAAkB;CACnC,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,WAAW,OAAO,UAAU,CAAC,CAAC;CACpC,gBAAgB,MAAM;CACtB,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,WAAW,4BAA4B,gCAAgC,SAAS,IAAI,QAAQ;CACtI,oBAAoB,MAAM;CAC1B,OAAO,OAAO,SAAS,MAAM,MAAM,eAAe,MAAM;CACxD,OAAO,OAAO,WAAW;AAC1B;AACA,SAAS,eAAe,QAAQ;CAC/B,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;CAC/C,OAAO,UAAU,sBAAsB;CACvC,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,WAAW,OAAO,UAAU,CAAC,CAAC;CACpC,gBAAgB,MAAM;CACtB,IAAI,OAAO,SAAS,MAAM,UAAU,OAAO,KAAK;MAC3C,OAAO,WAAW,4BAA4B,uBAAuB,SAAS,IAAI,QAAQ;CAC/F,oBAAoB,MAAM;CAC1B,OAAO,OAAO,SAAS,MAAM,MAAM,eAAe,MAAM;CACxD,OAAO,OAAO,WAAW;AAC1B;;;;;;AAMA,SAAS,cAAc,QAAQ;CAC9B,IAAI,OAAO,SAAS,MAAM,SAAS,OAAO,KAAK;CAC/C,OAAO,UAAU,cAAc;CAC/B,gBAAgB,MAAM;CACtB,IAAI,OAAO,SAAS,MAAM,UAAU;EACnC,OAAO,KAAK;EACZ,IAAI,CAAC,gBAAgB,MAAM,GAAG,OAAO,WAAW,sCAAsC,gCAAgC,OAAO,KAAK,CAAC;CACpI;CACA,OAAO,OAAO,WAAW;AAC1B"}
@@ -1,6 +1,6 @@
1
- import { c as CodecLookup } from "./codec-types-D6VRj2RE-BLElXc-O.mjs";
2
- import { I as PslExtensionBlock, y as AuthoringPslBlockDescriptor } from "./framework-authoring-BhctBwih-DQ_6noDM.mjs";
3
- import { p as PslDiagnostic, x as PslNamespace } from "./psl-ast-CWJQF8LA-Vr5JNPdn.mjs";
1
+ import { c as CodecLookup } from "./codec-types-nVMtogur-CYBdUQUH.mjs";
2
+ import { L as PslExtensionBlock, b as AuthoringPslBlockDescriptor } from "./framework-authoring-BYgPL2X6-DMKO0Z_k.mjs";
3
+ import { p as PslDiagnostic, x as PslNamespace } from "./psl-ast-dnXw52MT-1jSUKlC9.mjs";
4
4
  //#region ../../../1-framework/1-core/framework-components/dist/psl-ast.d.mts
5
5
  //#region src/control/psl-extension-block-validator.d.ts
6
6
  /**
@@ -34,4 +34,4 @@ interface ExtensionBlockRefResolutionContext {
34
34
  declare function validateExtensionBlock(node: PslExtensionBlock, descriptor: AuthoringPslBlockDescriptor, sourceId: string, codecLookup: CodecLookup, refCtx?: ExtensionBlockRefResolutionContext): readonly PslDiagnostic[];
35
35
  //#endregion
36
36
  export { validateExtensionBlock as n, ExtensionBlockRefResolutionContext as t };
37
- //# sourceMappingURL=psl-ast-BXZoFQBk.d.mts.map
37
+ //# sourceMappingURL=psl-ast-BkfQwHjE.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"psl-ast-BXZoFQBk.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/psl-ast.d.mts"],"mappings":";;;;;;;;;;;;;UAYU;WACC,gBAAgB;WAChB,wBAAwB;;;;;;;;;;;;;;;;;;iBAkBlB,uBAAuB,MAAM,mBAAmB,YAAY,6BAA6B,kBAAkB,aAAa,aAAa,SAAS,8CAA8C"}
1
+ {"version":3,"file":"psl-ast-BkfQwHjE.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/psl-ast.d.mts"],"mappings":";;;;;;;;;;;;;UAYU;WACC,gBAAgB;WAChB,wBAAwB;;;;;;;;;;;;;;;;;;iBAkBlB,uBAAuB,MAAM,mBAAmB,YAAY,6BAA6B,kBAAkB,aAAa,aAAa,SAAS,8CAA8C"}
@@ -1,6 +1,6 @@
1
- import { c as CodecLookup } from "./codec-types-D6VRj2RE-BLElXc-O.mjs";
2
- import { F as PslDiagnosticCode, I as PslExtensionBlock, K as PslSpan, b as AuthoringPslBlockDescriptorNamespace, k as ContributedPslDiagnosticCode } from "./framework-authoring-BhctBwih-DQ_6noDM.mjs";
3
- //#region ../../../1-framework/1-core/framework-components/dist/psl-ast-CWJQF8LA.d.mts
1
+ import { c as CodecLookup } from "./codec-types-nVMtogur-CYBdUQUH.mjs";
2
+ import { A as ContributedPslDiagnosticCode, I as PslDiagnosticCode, J as PslSpan, L as PslExtensionBlock, x as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-BYgPL2X6-DMKO0Z_k.mjs";
3
+ //#region ../../../1-framework/1-core/framework-components/dist/psl-ast-dnXw52MT.d.mts
4
4
  //#region src/control/psl-ast.d.ts
5
5
  interface PslDiagnostic {
6
6
  /**
@@ -256,4 +256,4 @@ interface ParsePslDocumentResult {
256
256
  }
257
257
  //#endregion
258
258
  export { makePslNamespace as A, PslReferentialAction as C, UNSPECIFIED_PSL_NAMESPACE_ID as D, PslUniqueConstraint as E, namespacePslExtensionBlocks as M, flatPslCompositeTypes as O, PslNamespaceEntry as S, PslTypesBlock as T, PslIndexConstraint as _, PslAttributeArgument as a, PslNamedTypeDeclaration as b, PslAttributeTarget as c, PslDefaultLiteralValue as d, PslDefaultValue as f, PslFieldAttribute as g, PslField as h, PslAttribute as i, makePslNamespaceEntries as j, flatPslModels as k, PslCompositeType as l, PslDocumentAst as m, ParsePslDocumentInput as n, PslAttributeNamedArgument as o, PslDiagnostic as p, ParsePslDocumentResult as r, PslAttributePositionalArgument as s, BUILTIN_PSL_KIND_KEYS as t, PslDefaultFunctionValue as u, PslModel as v, PslTypeConstructorCall as w, PslNamespace as x, PslModelAttribute as y };
259
- //# sourceMappingURL=psl-ast-CWJQF8LA-Vr5JNPdn.d.mts.map
259
+ //# sourceMappingURL=psl-ast-dnXw52MT-1jSUKlC9.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"psl-ast-CWJQF8LA-Vr5JNPdn.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/psl-ast-CWJQF8LA.d.mts"],"mappings":";;;;UAGU;;;;;;;;;;;WAWC,MAAM,oBAAoB;WAC1B;WACA;WACA,MAAM;;UAEP;WACC;WACA;;UAED;WACC;WACA;;KAEN,kBAAkB,0BAA0B;KAC5C;UACK;WACC;WACA;WACA,MAAM;;UAEP;WACC;WACA;WACA;WACA,MAAM;;KAEZ,uBAAuB,iCAAiC;UACnD;WACC;WACA;WACA,eAAe;WACf,MAAM;;UAEP;WACC;WACA,QAAQ;WACR;WACA,eAAe;WACf,MAAM;;KAEZ;KACA,oBAAoB;UACf;WACC;WACA;;WAEA;;WAEA;;;;;;;;;WASA;WACA,kBAAkB;WAClB;WACA;WACA;WACA,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA;WACA,MAAM;;UAEP;WACC;WACA;WACA,MAAM;;KAEZ,oBAAoB;UACf;WACC;WACA;WACA,iBAAiB;WACjB,qBAAqB;WACrB,MAAM;;;;;;;;WAQN;;;;;;;UAOD;WACC;WACA;WACA,iBAAiB;WACjB,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA;;;;;;WAMA;WACA,kBAAkB;WAClB,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA,uBAAuB;WACvB,MAAM;;;;;;;;;;;;;;cAcH;;KAET,oBAAoB,WAAW,mBAAmB;;;;;;;;;;;;UAY7C;WACC;WACA;;WAEA,SAAS,SAAS,eAAe,SAAS,eAAe;;WAEzD,iBAAiB;;WAEjB,yBAAyB;WACzB,MAAM;;;iBAGA,iBAAiB;WACvB;WACA;WACA,SAAS,SAAS,eAAe,SAAS,eAAe;WACzD,MAAM;IACb;;;;;;iBAMa,wBAAwB,iBAAiB,YAAY,yBAAyB,oBAAoB,0BAA0B,sBAAsB,SAAS,eAAe,SAAS,eAAe;UACzM;WACC;WACA;WACA,qBAAqB;WACrB,QAAQ;WACR,MAAM;;;;;;iBAMA,cAAc,KAAK,0BAA0B;;;;iBAI7C,sBAAsB,KAAK,0BAA0B;;;;;;;;;;;cAWxD,uBAAuB;;;;;;;;;iBASpB,4BAA4B,IAAI,wBAAwB;UAC/D;WACC;WACA;;;;;;;;;;;;;;;;WAgBA,sBAAsB;;;;;;;;;WAStB,cAAc;;UAEf;WACC,KAAK;WACL,sBAAsB;WACtB"}
1
+ {"version":3,"file":"psl-ast-dnXw52MT-1jSUKlC9.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/psl-ast-dnXw52MT.d.mts"],"mappings":";;;;UAGU;;;;;;;;;;;WAWC,MAAM,oBAAoB;WAC1B;WACA;WACA,MAAM;;UAEP;WACC;WACA;;UAED;WACC;WACA;;KAEN,kBAAkB,0BAA0B;KAC5C;UACK;WACC;WACA;WACA,MAAM;;UAEP;WACC;WACA;WACA;WACA,MAAM;;KAEZ,uBAAuB,iCAAiC;UACnD;WACC;WACA;WACA,eAAe;WACf,MAAM;;UAEP;WACC;WACA,QAAQ;WACR;WACA,eAAe;WACf,MAAM;;KAEZ;KACA,oBAAoB;UACf;WACC;WACA;;WAEA;;WAEA;;;;;;;;;WASA;WACA,kBAAkB;WAClB;WACA;WACA;WACA,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA;WACA,MAAM;;UAEP;WACC;WACA;WACA,MAAM;;KAEZ,oBAAoB;UACf;WACC;WACA;WACA,iBAAiB;WACjB,qBAAqB;WACrB,MAAM;;;;;;;;WAQN;;;;;;;UAOD;WACC;WACA;WACA,iBAAiB;WACjB,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA;;;;;;WAMA;WACA,kBAAkB;WAClB,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA,uBAAuB;WACvB,MAAM;;;;;;;;;;;;;;cAcH;;KAET,oBAAoB,WAAW,mBAAmB;;;;;;;;;;;;UAY7C;WACC;WACA;;WAEA,SAAS,SAAS,eAAe,SAAS,eAAe;;WAEzD,iBAAiB;;WAEjB,yBAAyB;WACzB,MAAM;;;iBAGA,iBAAiB;WACvB;WACA;WACA,SAAS,SAAS,eAAe,SAAS,eAAe;WACzD,MAAM;IACb;;;;;;iBAMa,wBAAwB,iBAAiB,YAAY,yBAAyB,oBAAoB,0BAA0B,sBAAsB,SAAS,eAAe,SAAS,eAAe;UACzM;WACC;WACA;WACA,qBAAqB;WACrB,QAAQ;WACR,MAAM;;;;;;iBAMA,cAAc,KAAK,0BAA0B;;;;iBAI7C,sBAAsB,KAAK,0BAA0B;;;;;;;;;;;cAWxD,uBAAuB;;;;;;;;;iBASpB,4BAA4B,IAAI,wBAAwB;UAC/D;WACC;WACA;;;;;;;;;;;;;;;;WAgBA,sBAAsB;;;;;;;;;WAStB,cAAc;;UAEf;WACC,KAAK;WACL,sBAAsB;WACtB"}