@danielfgray/pg-sourcerer 0.1.0

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 (145) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +104 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/config.d.ts +133 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +47 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/errors.d.ts +129 -0
  10. package/dist/errors.d.ts.map +1 -0
  11. package/dist/errors.js +41 -0
  12. package/dist/errors.js.map +1 -0
  13. package/dist/generate.d.ts +75 -0
  14. package/dist/generate.d.ts.map +1 -0
  15. package/dist/generate.js +183 -0
  16. package/dist/generate.js.map +1 -0
  17. package/dist/index.d.ts +35 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +62 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/init.d.ts +4 -0
  22. package/dist/init.d.ts.map +1 -0
  23. package/dist/init.js +229 -0
  24. package/dist/init.js.map +1 -0
  25. package/dist/ir/index.d.ts +7 -0
  26. package/dist/ir/index.d.ts.map +1 -0
  27. package/dist/ir/index.js +7 -0
  28. package/dist/ir/index.js.map +1 -0
  29. package/dist/ir/relation-graph.d.ts +113 -0
  30. package/dist/ir/relation-graph.d.ts.map +1 -0
  31. package/dist/ir/relation-graph.js +232 -0
  32. package/dist/ir/relation-graph.js.map +1 -0
  33. package/dist/ir/semantic-ir.d.ts +448 -0
  34. package/dist/ir/semantic-ir.d.ts.map +1 -0
  35. package/dist/ir/semantic-ir.js +138 -0
  36. package/dist/ir/semantic-ir.js.map +1 -0
  37. package/dist/ir/smart-tags.d.ts +24 -0
  38. package/dist/ir/smart-tags.d.ts.map +1 -0
  39. package/dist/ir/smart-tags.js +30 -0
  40. package/dist/ir/smart-tags.js.map +1 -0
  41. package/dist/lib/conjure.d.ts +431 -0
  42. package/dist/lib/conjure.d.ts.map +1 -0
  43. package/dist/lib/conjure.js +697 -0
  44. package/dist/lib/conjure.js.map +1 -0
  45. package/dist/lib/field-utils.d.ts +61 -0
  46. package/dist/lib/field-utils.d.ts.map +1 -0
  47. package/dist/lib/field-utils.js +132 -0
  48. package/dist/lib/field-utils.js.map +1 -0
  49. package/dist/lib/hex.d.ts +117 -0
  50. package/dist/lib/hex.d.ts.map +1 -0
  51. package/dist/lib/hex.js +185 -0
  52. package/dist/lib/hex.js.map +1 -0
  53. package/dist/plugins/arktype.d.ts +11 -0
  54. package/dist/plugins/arktype.d.ts.map +1 -0
  55. package/dist/plugins/arktype.js +207 -0
  56. package/dist/plugins/arktype.js.map +1 -0
  57. package/dist/plugins/effect-model.d.ts +10 -0
  58. package/dist/plugins/effect-model.d.ts.map +1 -0
  59. package/dist/plugins/effect-model.js +261 -0
  60. package/dist/plugins/effect-model.js.map +1 -0
  61. package/dist/plugins/kysely-queries.d.ts +7 -0
  62. package/dist/plugins/kysely-queries.d.ts.map +1 -0
  63. package/dist/plugins/kysely-queries.js +380 -0
  64. package/dist/plugins/kysely-queries.js.map +1 -0
  65. package/dist/plugins/sql-queries.d.ts +6 -0
  66. package/dist/plugins/sql-queries.d.ts.map +1 -0
  67. package/dist/plugins/sql-queries.js +249 -0
  68. package/dist/plugins/sql-queries.js.map +1 -0
  69. package/dist/plugins/types.d.ts +18 -0
  70. package/dist/plugins/types.d.ts.map +1 -0
  71. package/dist/plugins/types.js +263 -0
  72. package/dist/plugins/types.js.map +1 -0
  73. package/dist/plugins/zod.d.ts +11 -0
  74. package/dist/plugins/zod.d.ts.map +1 -0
  75. package/dist/plugins/zod.js +180 -0
  76. package/dist/plugins/zod.js.map +1 -0
  77. package/dist/services/artifact-store.d.ts +55 -0
  78. package/dist/services/artifact-store.d.ts.map +1 -0
  79. package/dist/services/artifact-store.js +51 -0
  80. package/dist/services/artifact-store.js.map +1 -0
  81. package/dist/services/config-loader.d.ts +45 -0
  82. package/dist/services/config-loader.d.ts.map +1 -0
  83. package/dist/services/config-loader.js +113 -0
  84. package/dist/services/config-loader.js.map +1 -0
  85. package/dist/services/emissions.d.ts +89 -0
  86. package/dist/services/emissions.d.ts.map +1 -0
  87. package/dist/services/emissions.js +194 -0
  88. package/dist/services/emissions.js.map +1 -0
  89. package/dist/services/file-builder.d.ts +81 -0
  90. package/dist/services/file-builder.d.ts.map +1 -0
  91. package/dist/services/file-builder.js +112 -0
  92. package/dist/services/file-builder.js.map +1 -0
  93. package/dist/services/file-writer.d.ts +57 -0
  94. package/dist/services/file-writer.d.ts.map +1 -0
  95. package/dist/services/file-writer.js +76 -0
  96. package/dist/services/file-writer.js.map +1 -0
  97. package/dist/services/inflection.d.ts +227 -0
  98. package/dist/services/inflection.d.ts.map +1 -0
  99. package/dist/services/inflection.js +350 -0
  100. package/dist/services/inflection.js.map +1 -0
  101. package/dist/services/introspection.d.ts +46 -0
  102. package/dist/services/introspection.d.ts.map +1 -0
  103. package/dist/services/introspection.js +99 -0
  104. package/dist/services/introspection.js.map +1 -0
  105. package/dist/services/ir-builder.d.ts +46 -0
  106. package/dist/services/ir-builder.d.ts.map +1 -0
  107. package/dist/services/ir-builder.js +923 -0
  108. package/dist/services/ir-builder.js.map +1 -0
  109. package/dist/services/ir.d.ts +28 -0
  110. package/dist/services/ir.d.ts.map +1 -0
  111. package/dist/services/ir.js +25 -0
  112. package/dist/services/ir.js.map +1 -0
  113. package/dist/services/pg-types.d.ts +197 -0
  114. package/dist/services/pg-types.d.ts.map +1 -0
  115. package/dist/services/pg-types.js +274 -0
  116. package/dist/services/pg-types.js.map +1 -0
  117. package/dist/services/plugin-meta.d.ts +33 -0
  118. package/dist/services/plugin-meta.d.ts.map +1 -0
  119. package/dist/services/plugin-meta.js +24 -0
  120. package/dist/services/plugin-meta.js.map +1 -0
  121. package/dist/services/plugin-runner.d.ts +52 -0
  122. package/dist/services/plugin-runner.d.ts.map +1 -0
  123. package/dist/services/plugin-runner.js +182 -0
  124. package/dist/services/plugin-runner.js.map +1 -0
  125. package/dist/services/plugin.d.ts +286 -0
  126. package/dist/services/plugin.d.ts.map +1 -0
  127. package/dist/services/plugin.js +132 -0
  128. package/dist/services/plugin.js.map +1 -0
  129. package/dist/services/smart-tags-parser.d.ts +37 -0
  130. package/dist/services/smart-tags-parser.d.ts.map +1 -0
  131. package/dist/services/smart-tags-parser.js +79 -0
  132. package/dist/services/smart-tags-parser.js.map +1 -0
  133. package/dist/services/symbols.d.ts +85 -0
  134. package/dist/services/symbols.d.ts.map +1 -0
  135. package/dist/services/symbols.js +128 -0
  136. package/dist/services/symbols.js.map +1 -0
  137. package/dist/services/type-hints.d.ts +62 -0
  138. package/dist/services/type-hints.d.ts.map +1 -0
  139. package/dist/services/type-hints.js +117 -0
  140. package/dist/services/type-hints.js.map +1 -0
  141. package/dist/testing.d.ts +77 -0
  142. package/dist/testing.d.ts.map +1 -0
  143. package/dist/testing.js +84 -0
  144. package/dist/testing.js.map +1 -0
  145. package/package.json +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conjure.js","sourceRoot":"","sources":["../../src/lib/conjure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAuB3B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAA;AAE/B,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;;;;;GAOG;AAEH,2EAA2E;AAC3E,SAAS,MAAM,CAAC,IAAkB;IAChC,OAAO,IAAsB,CAAA;AAC/B,CAAC;AAED,yEAAyE;AACzE,SAAS,MAAM,CAAC,IAAiB;IAC/B,OAAO,IAAqB,CAAA;AAC9B,CAAC;AAED,mEAAmE;AACnE,SAAS,QAAQ,CAAC,IAAc;IAC9B,OAAO,IAAkB,CAAA;AAC3B,CAAC;AAgCD,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,0CAA0C;IAC1C,MAAM;IACN,gDAAgD;IAChD,WAAW,EAAE,CAAC,IAAoC,EAAoB,EAAE,CACtE,IAAwB;IAC1B,wCAAwC;IACxC,MAAM;IACN,kCAAkC;IAClC,QAAQ;CACA,CAAA;AA0EV,SAAS,WAAW,CAAC,KAAmB;IACtC,OAAO;QACL,IAAI,EAAE,KAAK;QAEX,IAAI,CAAC,IAAI;YACP,OAAO,WAAW,CAChB,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAA;QACH,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE;YACpB,OAAO,WAAW,CAChB,CAAC,CAAC,cAAc,CACd,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EACzD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CACjB,CACF,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,EAAE;YACZ,OAAO,WAAW,CAChB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACtD,CAAA;QACH,CAAC;QAED,KAAK,CAAC,IAAI;YACR,OAAO,WAAW,CAChB,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAC1D,CAAA;QACH,CAAC;QAED,KAAK;YACH,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC;AA6BD,4DAA4D;AAC5D,SAAS,SAAS,CAAC,QAA8B,EAAE;IACjD,OAAO;QACL,IAAI,CAAC,GAAG,EAAE,KAAK;YACb,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,CAC9B,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,KAAK,CAAC,CACd,CAAA;YACD,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACvC,CAAC;QAED,UAAU,CAAC,GAAG,EAAE,KAAK;YACnB,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,CAC9B,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EACpB,MAAM,CAAC,KAAK,CAAC,CACd,CAAA;YACD,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACvC,CAAC;QAED,QAAQ,CAAC,GAAG,EAAE,KAAK;YACjB,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,CAAC,IAAI;YACT,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAChD,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QAC1C,CAAC;QAED,SAAS,CAAC,GAAG;YACX,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;YACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,KAAK;YACH,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC;AAoBD,4DAA4D;AAC5D,SAAS,SAAS,CAAC,QAA4B,EAAE;IAC/C,OAAO;QACL,GAAG,CAAC,GAAG,KAAK;YACV,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAqB,CAAC,CAAA;YAChE,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,CAAC,IAAI;YACT,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAChD,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QAC1C,CAAC;QAED,KAAK;YACH,OAAO,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;KACF,CAAA;AACH,CAAC;AAuBD,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,IAAe,EAAW,EAAE,CAAC,CAAC;IAChE,IAAI;IACJ,IAAI;IACJ,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,SAAS;CACxB,CAAC,CAAA;AAwCF,SAAS,QAAQ,CAAC,MAAgB;IAChC,MAAM,WAAW,GAAG,GAAkB,EAAE,CACtC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAe,EAAE;QACnC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAgB,CAAA;QAC7C,CAAC;aAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC1B,6DAA6D;YAC7D,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC1D,CAAC;YACD,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAgB,CAAA;QACvE,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7D,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;YACvB,CAAC;YACD,OAAO,KAAoB,CAAA;QAC7B,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,OAAO;QACL,KAAK,CAAC,IAAI,EAAE,IAAI;YACd,OAAO,QAAQ,CAAC;gBACd,GAAG,MAAM;gBACT,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrD,CAAC,CAAA;QACJ,CAAC;QAED,aAAa,CAAC,IAAI,EAAE,IAAI;YACtB,OAAO,QAAQ,CAAC;gBACd,GAAG,MAAM;gBACT,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aAC5E,CAAC,CAAA;QACJ,CAAC;QAED,SAAS,CAAC,IAAI,EAAE,IAAI;YAClB,OAAO,QAAQ,CAAC;gBACd,GAAG,MAAM;gBACT,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aACxE,CAAC,CAAA;QACJ,CAAC;QAED,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI;YACnC,OAAO,QAAQ,CAAC;gBACd,GAAG,MAAM;gBACT,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;aAC1E,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC,IAAI;YACV,OAAO,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,CAAC,GAAG,UAAU;YAChB,OAAO,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,KAAK;YACH,OAAO,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,CAAC;QAED,KAAK;YACH,OAAO,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,CAAC;QAED,SAAS;YACP,OAAO,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,KAAK;YACH,MAAM,MAAM,GAAG,WAAW,EAAE,CAAA;YAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;YAEvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,EAAE,GAAG,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;gBAC1D,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAA;gBACzB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;gBACjE,CAAC;gBACD,OAAO,EAAE,CAAA;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;gBACxE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAA;gBACzB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;gBACjE,CAAC;gBACD,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;QAED,aAAa,CAAC,IAAI;YAChB,MAAM,MAAM,GAAG,WAAW,EAAE,CAAA;YAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;YACvD,MAAM,EAAE,GAAG,CAAC,CAAC,mBAAmB,CAC9B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAClB,MAAM,EACN,KAAK,EACL,MAAM,CAAC,WAAW,CACnB,CAAA;YACD,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAA;YACzB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;YACjE,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC;KACF,CAAA;AACH,CAAC;AAoCD;;GAEG;AACH,MAAM,EAAE,GAAG;IACT,gCAAgC;IAChC,MAAM,EAAE,CAAC,IAAkB,EAAE,QAAkB,EAAE,KAAmB,EAAE,EAAE,CACtE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3D,sCAAsC;IACtC,OAAO,EAAE,CAAC,IAAkB,EAAE,QAAmB,EAAE,KAAmB,EAAE,EAAE,CACxE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5D,uBAAuB;IACvB,KAAK,EAAE,CAAC,QAAiB,EAAE,QAAsB,EAAE,EAAE,CACnD,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE/C,4BAA4B;IAC5B,MAAM,EAAE,CACN,IAAmD,EACnD,QAAkB,EAClB,KAAmB,EACnB,EAAE,CACF,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtE,qCAAqC;IACrC,OAAO,EAAE,CACP,IAAkB,EAClB,UAAwB,EACxB,SAAuB,EACvB,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjF,qBAAqB;IACrB,GAAG,EAAE,CAAC,MAAoB,EAAE,OAAuB,EAAE,EAAE,EAAE,CACvD,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEnD,mBAAmB;IACnB,6BAA6B;IAC7B,EAAE,EAAE,CAAC,IAAkB,EAAE,KAAmB,EAAE,EAAE,CAC9C,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAExD,+BAA+B;IAC/B,GAAG,EAAE,CAAC,IAAkB,EAAE,KAAmB,EAAE,EAAE,CAC/C,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAExD,uBAAuB;IACvB,GAAG,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEjE,wBAAwB;IACxB,GAAG,EAAE,CAAC,IAAkB,EAAE,KAAmB,EAAE,EAAE,CAC/C,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAExD,uBAAuB;IACvB,EAAE,EAAE,CAAC,IAAkB,EAAE,KAAmB,EAAE,EAAE,CAC9C,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAExD,+BAA+B;IAC/B,OAAO,EAAE,CAAC,IAAkB,EAAE,KAAmB,EAAE,EAAE,CACnD,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;CAChD,CAAA;AAEV,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,IAAI,GAAG;IACX,0BAA0B;IAC1B,KAAK,EAAE,CAAC,IAAY,EAAE,IAAkB,EAAE,IAAe,EAAE,EAAE;QAC3D,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,wBAAwB;IACxB,GAAG,EAAE,CAAC,IAAY,EAAE,IAAmB,EAAE,IAAe,EAAE,EAAE;QAC1D,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE;YAClC,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IAED,oBAAoB;IACpB,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE,CAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC;IAElE,oCAAoC;IACpC,IAAI,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEjE,mBAAmB;IACnB,EAAE,EAAE,CACF,IAAkB,EAClB,UAAyB,EACzB,SAAyB,EACzB,EAAE,CACF,CAAC,CAAC,WAAW,CACX,MAAM,CAAC,IAAI,CAAC,EACZ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACxC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3D;IAEH,sBAAsB;IACtB,KAAK,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7D,0BAA0B;IAC1B,GAAG,EAAE,CACH,KAAoB,EACpB,UAAkB,EAClB,UAAyB,EACzB,YAA4B,EAC5B,EAAE,CACF,CAAC,CAAC,YAAY,CACZ,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACnC,CAAC,CAAC,WAAW,CACX,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EACxB,IAAI,EACJ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACzC,EACD,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACjE;IAEH,yBAAyB;IACzB,KAAK,EAAE,CACL,OAAwB,EACxB,OAAe,EACf,QAAsB,EACtB,IAAmB,EACnB,EAAE,CACF,CAAC,CAAC,cAAc,CACd,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;QAC7B,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC5C,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,EAChB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACnC;IAEH,sBAAsB;IACtB,KAAK,EAAE,CAAC,GAAG,UAAyB,EAAE,EAAE,CACtC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC,CAAA;AAEV,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,EAAE,GAAG;IACT,gBAAgB;IAChB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;IACjC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;IACjC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE;IACnC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;IACjC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE;IAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE;IACnC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE;IAC/B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;IAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE;IAEvC,kDAAkD;IAClD,GAAG,EAAE,CAAC,IAAY,EAAE,UAAuB,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;QACjD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,4BAA4B,CACjD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CACzB,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,iDAAiD;IACjD,YAAY,EAAE,CAAC,SAAiB,EAAE,IAAY,EAAE,UAAuB,EAAE,EAAE;QACzE,MAAM,GAAG,GAAG,CAAC,CAAC,eAAe,CAC3B,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC/D,CAAA;QACD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,4BAA4B,CACjD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CACzB,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,wBAAwB;IACxB,KAAK,EAAE,CAAC,WAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtE,8BAA8B;IAC9B,KAAK,EAAE,CAAC,GAAG,KAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnE,iCAAiC;IACjC,YAAY,EAAE,CAAC,GAAG,KAAiB,EAAE,EAAE,CACrC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE3C,sCAAsC;IACtC,OAAO,EAAE,CAAC,KAAgC,EAAE,EAAE;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QAChD,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,KAAK,EAAE,CAAC,GAAG,KAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnE,yCAAyC;IACzC,EAAE,EAAE,CACF,MAA8D,EAC9D,UAAoB,EACpB,EAAE;QACF,MAAM,QAAQ,GAAkB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAClC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3D,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;YACvB,CAAC;YACD,OAAO,KAAoB,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,8BAA8B;IAC9B,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,KAAK,EAAE,CAAC,IAAc,EAAE,EAAE,CACxB,CAAC;QACC,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,OAAO;QACjB,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC;KAC/B,CAAqB;IAExB,kCAAkC;IAClC,QAAQ,EAAE,CAAC,IAAc,EAAE,EAAE,CAC3B,CAAC;QACC,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,UAAU;QACpB,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC;KAC/B,CAAqB;IAExB,iCAAiC;IACjC,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAC3B,CAAC,CAAC,eAAe,CACf,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EACvB,CAAC,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAClD;IAEH;;;;;;;OAOG;IACH,UAAU,EAAE,CAAC,KAAiF,EAAE,EAAE,CAChG,CAAC,CAAC,aAAa,CACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACZ,MAAM,GAAG,GAAG,CAAC,CAAC,mBAAmB,CAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EACpB,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACrC,CAAA;QACD,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAA;QACnC,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAA;QACnC,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CACH;CACK,CAAA;AAgBV;;GAEG;AACH,MAAM,KAAK,GAAG;IACZ;;OAEG;IACH,KAAK,EAAE,CAAC,IAAY,EAAE,IAAc,EAAgB,EAAE;QACpD,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAY,EAAE,IAAc,EAAgB,EAAE;QACvD,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAA;QAClB,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,IAAY,EAAE,YAA0B,EAAE,IAAe,EAAuB,EAAE;QAC9F,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtD,CAAC;IAED;;;;;;OAMG;IACH,IAAI,EAAE,CAAC,MAAyB,EAAE,UAAkB,EAAmB,EAAE;QACvE,MAAM,OAAO,GAAG,CAAC,CAAC,aAAa,CAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CACH,CAAA;QACD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;YAC9B,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;YAClB,MAAM,CAAC,MAAM,KAAK,CAAC;gBACjB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;gBACxB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC,CAAA;QACF,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC/D,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;;OASG;IACH,YAAY,EAAE,CAAC,MAAoC,EAAmB,EAAE;QACtE,MAAM,OAAO,GAAG,CAAC,CAAC,aAAa,CAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC/B,2DAA2D;YAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY;gBAC1B,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACjD,CAAC,CAAC,EAAE,CAAA;YACN,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;YAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CACH,CAAA;QACD,0DAA0D;QAC1D,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC1E,CAAA;QACD,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;QACrE,OAAO,OAAO,CAAA;IAChB,CAAC;CACO,CAAA;AAEV,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,eAAe,CAAC,IAAiB,EAAE,MAAkB;IAC5D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,GAAkB,EAClB,MAAe;IAEf,MAAM,IAAI,GAAG;QACX,IAAI;QACJ,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM;KACP,CAAA;IACD,OAAO,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACvE,CAAC;AAYD;;GAEG;AACH,SAAS,wBAAwB,CAAC,KAA4B;IAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAuB,EAAE;QAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,mBAAmB,CAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EACpB,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACrC,CAAA;QACD,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAA;QACnC,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAA;QACnC,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB;;OAEG;IACH,SAAS,EAAE,CACT,IAAY,EACZ,GAAkB,EAClB,UAAiC,EAChB,EAAE;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,sBAAsB,CACnC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAClB,CAAC,CAAC,eAAe,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CACxD,CAAA;QACD,MAAM,UAAU,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACrD,OAAO,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACvE,CAAC;IAED;;OAEG;IACH,SAAS,EAAE,CACT,IAAY,EACZ,GAAkB,EAClB,IAAc,EACG,EAAE;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACzE,MAAM,UAAU,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACrD,OAAO,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,EAAE,CACL,IAAY,EACZ,GAAkB,EAClB,IAAkB,EAClB,cAAyB,EACR,EAAE;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,cAAc,EAAE,CAAC;YACnB,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;YAC1C,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SACvC,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACrD,OAAO,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IACxE,CAAC;IAED;;;OAGG;IACH,IAAI,EAAE,CACJ,IAAY,EACZ,GAAkB,EAClB,IAAc,EACG,EAAE;QACnB,4DAA4D;QAC5D,wDAAwD;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACzE,MAAM,UAAU,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACrD,OAAO,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACvE,CAAC;CACO,CAAA;AAEV,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,iBAAiB,CACxB,IAAmC;IAEnC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAChC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,GAAG,UAA6C;IAEhD,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAiB,EAAE,CAAA;IAEhC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO;KACR,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,yBAAyB;IAEzB,uCAAuC;IACvC,EAAE,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAErD,wCAAwC;IACxC,KAAK,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;IAEhD,4BAA4B;IAE5B,sCAAsC;IACtC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;IAEtB,qCAAqC;IACrC,GAAG,EAAE,CAAC,GAAG,QAAwB,EAAE,EAAE,CACnC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAqB,CAAC,CAAC;IAE/D,+BAA+B;IAC/B,EAAE,EAAE,GAAG,EAAE,CACP,QAAQ,CAAC;QACP,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,KAAK;KACnB,CAAC;IAEJ,mBAAmB;IAEnB,qBAAqB;IACrB,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;IAE9C,sBAAsB;IACtB,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;IAE/C,sBAAsB;IACtB,IAAI,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;IAEjD,WAAW;IACX,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;IAE3B,gBAAgB;IAChB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;IAE1C,uBAAuB;IACvB,QAAQ,EAAE,CAAC,MAAgB,EAAE,GAAG,WAA2B,EAAE,EAAE;QAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAC7C,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CACjE,CAAA;QACD,OAAO,CAAC,CAAC,eAAe,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,oBAAoB;IACpB,EAAE;IAEF,qBAAqB;IACrB,IAAI;IAEJ,2BAA2B;IAC3B,EAAE;IAEF,4BAA4B;IAC5B,KAAK;IAEL,yBAAyB;IACzB,GAAG;IAEH,kBAAkB;IAElB,uBAAuB;IACvB,KAAK,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE9D,kDAAkD;IAClD,MAAM,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7D,oCAAoC;IACpC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;IAEhD,8DAA8D;IAC9D,OAAO,EAAE,CAAC,GAAG,UAAyB,EAAE,EAAE,CACxC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEnC;;;;OAIG;IACH,aAAa,EAAE,mBAAmB;IAElC,sCAAsC;IAEtC,iDAAiD;IACjD,CAAC;CACO,CAAA;AAEV,eAAe,OAAO,CAAA"}
@@ -0,0 +1,61 @@
1
+ import type { namedTypes as n } from "ast-types";
2
+ import type { Field, EnumEntity, ExtensionInfo } from "../ir/semantic-ir.js";
3
+ import { TsType } from "../services/pg-types.js";
4
+ import type { EnumLookupResult } from "../services/pg-types.js";
5
+ /**
6
+ * Get the PostgreSQL type OID from a field's pg attribute
7
+ */
8
+ export declare function getTypeOid(field: Field): number | undefined;
9
+ /**
10
+ * Check if a field's type is an enum
11
+ */
12
+ export declare function isEnumType(field: Field): boolean;
13
+ /**
14
+ * Get the PostgreSQL type name from a field.
15
+ * For arrays, returns the element type name (not the array type like _int4).
16
+ */
17
+ export declare function getPgTypeName(field: Field): string | undefined;
18
+ /**
19
+ * Check if this field is a UUID type
20
+ */
21
+ export declare function isUuidType(field: Field): boolean;
22
+ /**
23
+ * Check if this field is a date/timestamp type
24
+ */
25
+ export declare function isDateType(field: Field): boolean;
26
+ /**
27
+ * Check if this field is a bigint type (int8)
28
+ */
29
+ export declare function isBigIntType(field: Field): boolean;
30
+ /**
31
+ * Convert TsType enum to AST type node.
32
+ * Shared by plugins that generate TypeScript types.
33
+ */
34
+ export declare function tsTypeToAst(tsType: TsType): n.TSType;
35
+ /**
36
+ * Result of resolving a field's type
37
+ */
38
+ export interface ResolvedType {
39
+ /** The resolved TypeScript type */
40
+ tsType: TsType;
41
+ /** If resolved to an enum, the enum lookup result */
42
+ enumDef?: EnumLookupResult;
43
+ }
44
+ /**
45
+ * Resolve a field to its TypeScript type.
46
+ *
47
+ * Resolution order:
48
+ * 1. Enum type
49
+ * 2. OID-based mapping (built-in PostgreSQL types)
50
+ * 3. Domain base type mapping
51
+ * 4. Extension type mapping (e.g., citext, ltree)
52
+ * 5. Array element type mapping
53
+ * 6. Fallback to unknown
54
+ *
55
+ * Note: This returns the base type. Callers handle:
56
+ * - Array wrapping (field.isArray)
57
+ * - Nullability (field.nullable)
58
+ * - Optionality (field.optional)
59
+ */
60
+ export declare function resolveFieldType(field: Field, enums: Iterable<EnumEntity>, extensions: readonly ExtensionInfo[]): ResolvedType;
61
+ //# sourceMappingURL=field-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-utils.d.ts","sourceRoot":"","sources":["../../src/lib/field-utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAIL,MAAM,EAEP,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAS/D;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAI3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAK9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGlD;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAkBpD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC3B,UAAU,EAAE,SAAS,aAAa,EAAE,GACnC,YAAY,CAiFd"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Field Utilities - Shared helpers for inspecting Field types
3
+ *
4
+ * These utilities extract type information from Field objects for use
5
+ * by code generation plugins. Each plugin transforms the resolved types
6
+ * into their specific output format (TypeScript types, Zod schemas, etc.)
7
+ */
8
+ import { Option, pipe } from "effect";
9
+ import { defaultPgToTs, findEnumByPgName, getExtensionTypeMapping, TsType, PgTypeOid, } from "../services/pg-types.js";
10
+ import { conjure } from "./conjure.js";
11
+ const { ts } = conjure;
12
+ // =============================================================================
13
+ // Field Inspection - Basic type checks
14
+ // =============================================================================
15
+ /**
16
+ * Get the PostgreSQL type OID from a field's pg attribute
17
+ */
18
+ export function getTypeOid(field) {
19
+ const pgType = field.pgAttribute.getType();
20
+ if (!pgType?._id)
21
+ return undefined;
22
+ return Number(pgType._id);
23
+ }
24
+ /**
25
+ * Check if a field's type is an enum
26
+ */
27
+ export function isEnumType(field) {
28
+ const pgType = field.pgAttribute.getType();
29
+ return pgType?.typtype === "e";
30
+ }
31
+ /**
32
+ * Get the PostgreSQL type name from a field.
33
+ * For arrays, returns the element type name (not the array type like _int4).
34
+ */
35
+ export function getPgTypeName(field) {
36
+ if (field.isArray && field.elementTypeName) {
37
+ return field.elementTypeName;
38
+ }
39
+ return field.pgAttribute.getType()?.typname;
40
+ }
41
+ /**
42
+ * Check if this field is a UUID type
43
+ */
44
+ export function isUuidType(field) {
45
+ const oid = getTypeOid(field);
46
+ return oid === PgTypeOid.Uuid;
47
+ }
48
+ /**
49
+ * Check if this field is a date/timestamp type
50
+ */
51
+ export function isDateType(field) {
52
+ const oid = getTypeOid(field);
53
+ return oid === PgTypeOid.Date || oid === PgTypeOid.Timestamp || oid === PgTypeOid.TimestampTz;
54
+ }
55
+ /**
56
+ * Check if this field is a bigint type (int8)
57
+ */
58
+ export function isBigIntType(field) {
59
+ const oid = getTypeOid(field);
60
+ return oid === PgTypeOid.Int8;
61
+ }
62
+ // =============================================================================
63
+ // Type Resolution - Determine the TypeScript type for a field
64
+ // =============================================================================
65
+ /**
66
+ * Convert TsType enum to AST type node.
67
+ * Shared by plugins that generate TypeScript types.
68
+ */
69
+ export function tsTypeToAst(tsType) {
70
+ switch (tsType) {
71
+ case TsType.String:
72
+ return ts.string();
73
+ case TsType.Number:
74
+ return ts.number();
75
+ case TsType.Boolean:
76
+ return ts.boolean();
77
+ case TsType.BigInt:
78
+ return ts.bigint();
79
+ case TsType.Date:
80
+ return ts.ref("Date");
81
+ case TsType.Buffer:
82
+ return ts.ref("Buffer");
83
+ case TsType.Unknown:
84
+ default:
85
+ return ts.unknown();
86
+ }
87
+ }
88
+ /**
89
+ * Resolve a field to its TypeScript type.
90
+ *
91
+ * Resolution order:
92
+ * 1. Enum type
93
+ * 2. OID-based mapping (built-in PostgreSQL types)
94
+ * 3. Domain base type mapping
95
+ * 4. Extension type mapping (e.g., citext, ltree)
96
+ * 5. Array element type mapping
97
+ * 6. Fallback to unknown
98
+ *
99
+ * Note: This returns the base type. Callers handle:
100
+ * - Array wrapping (field.isArray)
101
+ * - Nullability (field.nullable)
102
+ * - Optionality (field.optional)
103
+ */
104
+ export function resolveFieldType(field, enums, extensions) {
105
+ const pgType = field.pgAttribute.getType();
106
+ // Helper to wrap TsType in ResolvedType
107
+ const fromTsType = (tsType) => ({ tsType });
108
+ // Try each resolution strategy in order, return first Some
109
+ return pipe(
110
+ // 1. Check for enum
111
+ Option.liftPredicate(field, isEnumType), Option.flatMap(() => Option.fromNullable(getPgTypeName(field))), Option.flatMap((pgTypeName) => findEnumByPgName(enums, pgTypeName)), Option.map((enumDef) => ({ tsType: TsType.Unknown, enumDef })),
112
+ // 2. Try OID-based mapping (built-in PostgreSQL types)
113
+ Option.orElse(() => pipe(Option.fromNullable(getTypeOid(field)), Option.flatMap(defaultPgToTs), Option.map(fromTsType))),
114
+ // 3. Try domain base type mapping
115
+ Option.orElse(() => pipe(Option.fromNullable(field.domainBaseType), Option.flatMap((d) => defaultPgToTs(d.typeOid)), Option.map(fromTsType))),
116
+ // 4. Try extension-based mapping for the direct type
117
+ Option.orElse(() => pipe(Option.fromNullable(pgType), Option.flatMap((t) => getExtensionTypeMapping(t.typname, String(t.typnamespace), extensions)), Option.map(fromTsType))),
118
+ // 4b. Try extension-based mapping for domain base types
119
+ Option.orElse(() => pipe(Option.fromNullable(field.domainBaseType), Option.flatMap((d) => getExtensionTypeMapping(d.typeName, d.namespaceOid, extensions)), Option.map(fromTsType))),
120
+ // 5. For arrays, try to resolve element type (enum first, then extension)
121
+ Option.orElse(() => pipe(Option.liftPredicate(field, (f) => f.isArray && !!f.elementTypeName), Option.flatMap((f) => {
122
+ // Check if element is an enum
123
+ const enumOpt = pipe(findEnumByPgName(enums, f.elementTypeName), Option.map((enumDef) => ({ tsType: TsType.Unknown, enumDef })));
124
+ if (Option.isSome(enumOpt))
125
+ return enumOpt;
126
+ // Try extension-based mapping for array element type
127
+ return pipe(Option.fromNullable(pgType?.typnamespace), Option.flatMap((ns) => getExtensionTypeMapping(f.elementTypeName, String(ns), extensions)), Option.map(fromTsType));
128
+ }))),
129
+ // 6. Fallback to unknown
130
+ Option.getOrElse(() => ({ tsType: TsType.Unknown })));
131
+ }
132
+ //# sourceMappingURL=field-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-utils.js","sourceRoot":"","sources":["../../src/lib/field-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Hex - SQL Query Building Primitives
3
+ *
4
+ * Provides AST builders for generating SQL query code in two styles:
5
+ * - "tag": Tagged template literals (postgres.js, @effect/sql style)
6
+ * - "string": Parameterized queries (node-postgres, mysql2 style)
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { hex } from "../lib/hex.js"
11
+ *
12
+ * // Tag style: sql<User[]>`select * from users where id = ${id}`
13
+ * const query = hex.query("tag", {
14
+ * templateParts: ["select * from users where id = ", ""],
15
+ * params: [b.identifier("id")],
16
+ * }, ts.array(ts.ref("User")))
17
+ *
18
+ * // String style: pool.query<User[]>("select * from users where id = $1", [id])
19
+ * const query = hex.query("string", { ... })
20
+ * ```
21
+ */
22
+ import type { namedTypes as n } from "ast-types";
23
+ /**
24
+ * SQL query style:
25
+ * - "tag": Tagged template literals (e.g., postgres.js, @effect/sql)
26
+ * Generates: sql<Type[]>`select * from users where id = ${id}`
27
+ * - "string": Parameterized query strings (e.g., pg, mysql2, better-sqlite3)
28
+ * Generates: pool.query<Type[]>("select * from users where id = $1", [id])
29
+ */
30
+ export type SqlStyle = "tag" | "string";
31
+ /**
32
+ * Query template parts and parameters.
33
+ */
34
+ export interface QueryParts {
35
+ /** SQL template parts (for tag) or joined with $N placeholders (for string) */
36
+ readonly templateParts: readonly string[];
37
+ /** Parameter expressions to interpolate */
38
+ readonly params: readonly n.Expression[];
39
+ }
40
+ /**
41
+ * Build a template literal AST node from parts and expressions.
42
+ *
43
+ * @example
44
+ * buildTemplateLiteral(["select * from users where id = ", ""], [idExpr])
45
+ * // `select * from users where id = ${id}`
46
+ */
47
+ export declare function buildTemplateLiteral(parts: readonly string[], exprs: readonly n.Expression[]): n.TemplateLiteral;
48
+ /**
49
+ * Build await expression for sql tagged template with optional type parameter.
50
+ *
51
+ * Generates: await sql<Type[]>`select * from users`
52
+ */
53
+ export declare function buildAwaitSqlTag(sqlTemplate: n.TemplateLiteral, typeParam?: n.TSType): n.AwaitExpression;
54
+ /**
55
+ * Build await expression for pool.query() with parameterized query.
56
+ *
57
+ * Generates: await pool.query<Type>("SELECT ... WHERE id = $1", [id])
58
+ */
59
+ export declare function buildAwaitSqlString(sqlText: string, params: readonly n.Expression[], typeParam?: n.TSType): n.AwaitExpression;
60
+ /**
61
+ * Build a SQL query expression for the given style.
62
+ *
63
+ * For tag style: uses template literals with interpolated values
64
+ * For string style: uses parameterized queries with $1, $2, ... placeholders
65
+ */
66
+ export declare function buildQuery(sqlStyle: SqlStyle, parts: QueryParts, typeParam?: n.TSType): n.AwaitExpression;
67
+ /**
68
+ * Build a variable declaration that extracts the first row from query result.
69
+ *
70
+ * tag style: const [result] = await sql<Type[]>`...`
71
+ * string style: const { rows: [result] } = await pool.query<Type>(...)
72
+ */
73
+ export declare function buildFirstRowDecl(sqlStyle: SqlStyle, varName: string, queryExpr: n.AwaitExpression): n.VariableDeclaration;
74
+ /**
75
+ * Build a variable declaration that gets all rows from query result.
76
+ *
77
+ * tag style: const result = await sql<Type[]>`...` (returns array directly)
78
+ * string style: const { rows: result } = await pool.query<Type>(...)
79
+ */
80
+ export declare function buildAllRowsDecl(sqlStyle: SqlStyle, varName: string, queryExpr: n.AwaitExpression): n.VariableDeclaration;
81
+ /**
82
+ * Build a return statement that returns query results.
83
+ *
84
+ * tag style: return await sql<Type[]>`...` (returns array directly)
85
+ * string style: extracts .rows and returns
86
+ */
87
+ export declare function buildReturnQuery(sqlStyle: SqlStyle, parts: QueryParts, typeParam: n.TSType): n.Statement[];
88
+ /**
89
+ * Create an async function declaration with inferred return type.
90
+ */
91
+ export declare function asyncFn(name: string, params: (n.Identifier | n.ObjectPattern)[], body: n.Statement[]): n.FunctionDeclaration;
92
+ /**
93
+ * Export a function declaration.
94
+ */
95
+ export declare function exportFn(fn: n.FunctionDeclaration): n.Statement;
96
+ /**
97
+ * Hex - SQL Query Building Primitives
98
+ *
99
+ * A collection of AST builders for generating SQL query code.
100
+ */
101
+ export declare const hex: {
102
+ readonly query: typeof buildQuery;
103
+ readonly templateLiteral: typeof buildTemplateLiteral;
104
+ readonly tag: {
105
+ readonly awaitSql: typeof buildAwaitSqlTag;
106
+ };
107
+ readonly string: {
108
+ readonly awaitSql: typeof buildAwaitSqlString;
109
+ };
110
+ readonly firstRowDecl: typeof buildFirstRowDecl;
111
+ readonly allRowsDecl: typeof buildAllRowsDecl;
112
+ readonly returnQuery: typeof buildReturnQuery;
113
+ readonly asyncFn: typeof asyncFn;
114
+ readonly exportFn: typeof exportFn;
115
+ };
116
+ export default hex;
117
+ //# sourceMappingURL=hex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../src/lib/hex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAA;AAUhD;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEvC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,CAAA;CACzC;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,GAC7B,CAAC,CAAC,eAAe,CAOnB;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,CAAC,CAAC,eAAe,EAC9B,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,GACnB,CAAC,CAAC,eAAe,CAUnB;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,EAC/B,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,GACnB,CAAC,CAAC,eAAe,CAkBnB;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,EACjB,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,GACnB,CAAC,CAAC,eAAe,CAWnB;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,CAAC,eAAe,GAC3B,CAAC,CAAC,mBAAmB,CAgBvB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,CAAC,eAAe,GAC3B,CAAC,CAAC,mBAAmB,CAcvB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,CAAC,CAAC,MAAM,GAClB,CAAC,CAAC,SAAS,EAAE,CAWf;AAMD;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,EAC1C,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,GAClB,CAAC,CAAC,mBAAmB,CAQvB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,SAAS,CAE/D;AAMD;;;;GAIG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;CAqBN,CAAA;AAEV,eAAe,GAAG,CAAA"}
@@ -0,0 +1,185 @@
1
+ import { conjure, cast } from "./conjure.js";
2
+ const { ts, b } = conjure;
3
+ const { toExpr, toTSType } = cast;
4
+ // =============================================================================
5
+ // Template Literal Builders
6
+ // =============================================================================
7
+ /**
8
+ * Build a template literal AST node from parts and expressions.
9
+ *
10
+ * @example
11
+ * buildTemplateLiteral(["select * from users where id = ", ""], [idExpr])
12
+ * // `select * from users where id = ${id}`
13
+ */
14
+ export function buildTemplateLiteral(parts, exprs) {
15
+ return b.templateLiteral(parts.map((raw, i) => b.templateElement({ raw, cooked: raw }, i === parts.length - 1)), exprs.map(toExpr));
16
+ }
17
+ // =============================================================================
18
+ // Tag Style (sql`...`)
19
+ // =============================================================================
20
+ /**
21
+ * Build await expression for sql tagged template with optional type parameter.
22
+ *
23
+ * Generates: await sql<Type[]>`select * from users`
24
+ */
25
+ export function buildAwaitSqlTag(sqlTemplate, typeParam) {
26
+ const sqlId = b.identifier("sql");
27
+ // If type parameter provided, wrap in TSInstantiationExpression: sql<Type>
28
+ const tag = typeParam
29
+ ? b.tsInstantiationExpression(sqlId, b.tsTypeParameterInstantiation([toTSType(typeParam)]))
30
+ : sqlId;
31
+ return b.awaitExpression(b.taggedTemplateExpression(tag, sqlTemplate));
32
+ }
33
+ // =============================================================================
34
+ // String Style (pool.query(...))
35
+ // =============================================================================
36
+ /**
37
+ * Build await expression for pool.query() with parameterized query.
38
+ *
39
+ * Generates: await pool.query<Type>("SELECT ... WHERE id = $1", [id])
40
+ */
41
+ export function buildAwaitSqlString(sqlText, params, typeParam) {
42
+ const poolQuery = b.memberExpression(b.identifier("pool"), b.identifier("query"));
43
+ // Add type parameter if provided: pool.query<Type>
44
+ const callee = typeParam
45
+ ? b.tsInstantiationExpression(poolQuery, b.tsTypeParameterInstantiation([toTSType(typeParam)]))
46
+ : poolQuery;
47
+ // Build arguments: ('sql text', [param1, param2])
48
+ const args = [b.stringLiteral(sqlText)];
49
+ if (params.length > 0) {
50
+ args.push(b.arrayExpression(params.map(toExpr)));
51
+ }
52
+ return b.awaitExpression(b.callExpression(callee, args.map(toExpr)));
53
+ }
54
+ // =============================================================================
55
+ // Unified Query Builder
56
+ // =============================================================================
57
+ /**
58
+ * Build a SQL query expression for the given style.
59
+ *
60
+ * For tag style: uses template literals with interpolated values
61
+ * For string style: uses parameterized queries with $1, $2, ... placeholders
62
+ */
63
+ export function buildQuery(sqlStyle, parts, typeParam) {
64
+ if (sqlStyle === "tag") {
65
+ const template = buildTemplateLiteral(parts.templateParts, parts.params);
66
+ return buildAwaitSqlTag(template, typeParam);
67
+ }
68
+ else {
69
+ // For string style, join template parts with $1, $2, ... placeholders
70
+ const sqlText = parts.templateParts
71
+ .map((part, i) => (i === 0 ? part : `$${i}${part}`))
72
+ .join("");
73
+ return buildAwaitSqlString(sqlText, parts.params, typeParam);
74
+ }
75
+ }
76
+ // =============================================================================
77
+ // Result Extraction
78
+ // =============================================================================
79
+ /**
80
+ * Build a variable declaration that extracts the first row from query result.
81
+ *
82
+ * tag style: const [result] = await sql<Type[]>`...`
83
+ * string style: const { rows: [result] } = await pool.query<Type>(...)
84
+ */
85
+ export function buildFirstRowDecl(sqlStyle, varName, queryExpr) {
86
+ if (sqlStyle === "tag") {
87
+ // const [result] = await sql`...`
88
+ return b.variableDeclaration("const", [
89
+ b.variableDeclarator(b.arrayPattern([b.identifier(varName)]), queryExpr),
90
+ ]);
91
+ }
92
+ else {
93
+ // const { rows: [result] } = await pool.query(...)
94
+ const rowsProp = b.objectProperty(b.identifier("rows"), b.arrayPattern([b.identifier(varName)]));
95
+ return b.variableDeclaration("const", [
96
+ b.variableDeclarator(b.objectPattern([rowsProp]), queryExpr),
97
+ ]);
98
+ }
99
+ }
100
+ /**
101
+ * Build a variable declaration that gets all rows from query result.
102
+ *
103
+ * tag style: const result = await sql<Type[]>`...` (returns array directly)
104
+ * string style: const { rows: result } = await pool.query<Type>(...)
105
+ */
106
+ export function buildAllRowsDecl(sqlStyle, varName, queryExpr) {
107
+ if (sqlStyle === "tag") {
108
+ // tag style returns array directly
109
+ return b.variableDeclaration("const", [
110
+ b.variableDeclarator(b.identifier(varName), queryExpr),
111
+ ]);
112
+ }
113
+ else {
114
+ // string style: const { rows } = await pool.query(...)
115
+ const rowsProp = b.objectProperty(b.identifier("rows"), b.identifier(varName));
116
+ rowsProp.shorthand = varName === "rows";
117
+ return b.variableDeclaration("const", [
118
+ b.variableDeclarator(b.objectPattern([rowsProp]), queryExpr),
119
+ ]);
120
+ }
121
+ }
122
+ /**
123
+ * Build a return statement that returns query results.
124
+ *
125
+ * tag style: return await sql<Type[]>`...` (returns array directly)
126
+ * string style: extracts .rows and returns
127
+ */
128
+ export function buildReturnQuery(sqlStyle, parts, typeParam) {
129
+ const queryExpr = buildQuery(sqlStyle, parts, typeParam);
130
+ if (sqlStyle === "tag") {
131
+ // tag style returns array directly
132
+ return [b.returnStatement(queryExpr)];
133
+ }
134
+ else {
135
+ // string style: const { rows } = await pool.query(...); return rows
136
+ const decl = buildAllRowsDecl(sqlStyle, "rows", queryExpr);
137
+ return [decl, b.returnStatement(b.identifier("rows"))];
138
+ }
139
+ }
140
+ // =============================================================================
141
+ // Function Builders
142
+ // =============================================================================
143
+ /**
144
+ * Create an async function declaration with inferred return type.
145
+ */
146
+ export function asyncFn(name, params, body) {
147
+ const fn = b.functionDeclaration(b.identifier(name), params, b.blockStatement(body.map(cast.toStmt)));
148
+ fn.async = true;
149
+ return fn;
150
+ }
151
+ /**
152
+ * Export a function declaration.
153
+ */
154
+ export function exportFn(fn) {
155
+ return b.exportNamedDeclaration(fn, []);
156
+ }
157
+ // =============================================================================
158
+ // Main API
159
+ // =============================================================================
160
+ /**
161
+ * Hex - SQL Query Building Primitives
162
+ *
163
+ * A collection of AST builders for generating SQL query code.
164
+ */
165
+ export const hex = {
166
+ // Query building
167
+ query: buildQuery,
168
+ templateLiteral: buildTemplateLiteral,
169
+ // Style-specific
170
+ tag: {
171
+ awaitSql: buildAwaitSqlTag,
172
+ },
173
+ string: {
174
+ awaitSql: buildAwaitSqlString,
175
+ },
176
+ // Result extraction
177
+ firstRowDecl: buildFirstRowDecl,
178
+ allRowsDecl: buildAllRowsDecl,
179
+ returnQuery: buildReturnQuery,
180
+ // Function builders
181
+ asyncFn,
182
+ exportFn,
183
+ };
184
+ export default hex;
185
+ //# sourceMappingURL=hex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../src/lib/hex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ArkType Plugin
3
+ *
4
+ * Generates ArkType schemas for each entity's shapes (base, Insert, Update)
5
+ * with inferred TypeScript types.
6
+ */
7
+ export declare const arktypePlugin: import("../index.js").PluginFactory<{
8
+ readonly outputDir: string;
9
+ readonly exportTypes: boolean;
10
+ }>;
11
+ //# sourceMappingURL=arktype.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arktype.d.ts","sourceRoot":"","sources":["../../src/plugins/arktype.ts"],"names":[],"mappings":"AA8OA;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;EAoCxB,CAAC"}