@shapecraft/core 1.0.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 (584) hide show
  1. package/dist/cjs/common/array.d.ts +3 -0
  2. package/dist/cjs/common/array.d.ts.map +1 -0
  3. package/dist/cjs/common/array.js +17 -0
  4. package/dist/cjs/common/array.js.map +1 -0
  5. package/dist/cjs/common/index.d.ts +6 -0
  6. package/dist/cjs/common/index.d.ts.map +1 -0
  7. package/dist/cjs/common/index.js +22 -0
  8. package/dist/cjs/common/index.js.map +1 -0
  9. package/dist/cjs/common/is.d.ts +5 -0
  10. package/dist/cjs/common/is.d.ts.map +1 -0
  11. package/dist/cjs/common/is.js +36 -0
  12. package/dist/cjs/common/is.js.map +1 -0
  13. package/dist/cjs/common/object.d.ts +4 -0
  14. package/dist/cjs/common/object.d.ts.map +1 -0
  15. package/dist/cjs/common/object.js +20 -0
  16. package/dist/cjs/common/object.js.map +1 -0
  17. package/dist/cjs/common/phantom.d.ts +2 -0
  18. package/dist/cjs/common/phantom.d.ts.map +1 -0
  19. package/dist/cjs/common/phantom.js +3 -0
  20. package/dist/cjs/common/phantom.js.map +1 -0
  21. package/dist/cjs/common/result.d.ts +22 -0
  22. package/dist/cjs/common/result.d.ts.map +1 -0
  23. package/dist/cjs/common/result.js +28 -0
  24. package/dist/cjs/common/result.js.map +1 -0
  25. package/dist/cjs/common/string.d.ts +3 -0
  26. package/dist/cjs/common/string.d.ts.map +1 -0
  27. package/dist/cjs/common/string.js +33 -0
  28. package/dist/cjs/common/string.js.map +1 -0
  29. package/dist/cjs/common/types.d.ts +14 -0
  30. package/dist/cjs/common/types.d.ts.map +1 -0
  31. package/dist/cjs/common/types.js +3 -0
  32. package/dist/cjs/common/types.js.map +1 -0
  33. package/dist/cjs/index.d.ts +2 -0
  34. package/dist/cjs/index.d.ts.map +1 -0
  35. package/dist/cjs/index.js +18 -0
  36. package/dist/cjs/index.js.map +1 -0
  37. package/dist/cjs/shape/annotate.d.ts +57 -0
  38. package/dist/cjs/shape/annotate.d.ts.map +1 -0
  39. package/dist/cjs/shape/annotate.js +37 -0
  40. package/dist/cjs/shape/annotate.js.map +1 -0
  41. package/dist/cjs/shape/annotation.d.ts +39 -0
  42. package/dist/cjs/shape/annotation.d.ts.map +1 -0
  43. package/dist/cjs/shape/annotation.js +3 -0
  44. package/dist/cjs/shape/annotation.js.map +1 -0
  45. package/dist/cjs/shape/base.d.ts +33 -0
  46. package/dist/cjs/shape/base.d.ts.map +1 -0
  47. package/dist/cjs/shape/base.js +26 -0
  48. package/dist/cjs/shape/base.js.map +1 -0
  49. package/dist/cjs/shape/builder.d.ts +168 -0
  50. package/dist/cjs/shape/builder.d.ts.map +1 -0
  51. package/dist/cjs/shape/builder.js +156 -0
  52. package/dist/cjs/shape/builder.js.map +1 -0
  53. package/dist/cjs/shape/error.d.ts +5 -0
  54. package/dist/cjs/shape/error.d.ts.map +1 -0
  55. package/dist/cjs/shape/error.js +3 -0
  56. package/dist/cjs/shape/error.js.map +1 -0
  57. package/dist/cjs/shape/index.d.ts +4 -0
  58. package/dist/cjs/shape/index.d.ts.map +1 -0
  59. package/dist/cjs/shape/index.js +20 -0
  60. package/dist/cjs/shape/index.js.map +1 -0
  61. package/dist/cjs/shape/number.d.ts +8 -0
  62. package/dist/cjs/shape/number.d.ts.map +1 -0
  63. package/dist/cjs/shape/number.js +123 -0
  64. package/dist/cjs/shape/number.js.map +1 -0
  65. package/dist/cjs/shape/shape.d.ts +150 -0
  66. package/dist/cjs/shape/shape.d.ts.map +1 -0
  67. package/dist/cjs/shape/shape.js +158 -0
  68. package/dist/cjs/shape/shape.js.map +1 -0
  69. package/dist/cjs/shape/tags.d.ts +4 -0
  70. package/dist/cjs/shape/tags.d.ts.map +1 -0
  71. package/dist/cjs/shape/tags.js +3 -0
  72. package/dist/cjs/shape/tags.js.map +1 -0
  73. package/dist/cjs/shape/transforms/index.d.ts +4 -0
  74. package/dist/cjs/shape/transforms/index.d.ts.map +1 -0
  75. package/dist/cjs/shape/transforms/index.js +20 -0
  76. package/dist/cjs/shape/transforms/index.js.map +1 -0
  77. package/dist/cjs/shape/transforms/json-schema/index.d.ts +3 -0
  78. package/dist/cjs/shape/transforms/json-schema/index.d.ts.map +1 -0
  79. package/dist/cjs/shape/transforms/json-schema/index.js +19 -0
  80. package/dist/cjs/shape/transforms/json-schema/index.js.map +1 -0
  81. package/dist/cjs/shape/transforms/json-schema/transform.d.ts +5 -0
  82. package/dist/cjs/shape/transforms/json-schema/transform.d.ts.map +1 -0
  83. package/dist/cjs/shape/transforms/json-schema/transform.js +739 -0
  84. package/dist/cjs/shape/transforms/json-schema/transform.js.map +1 -0
  85. package/dist/cjs/shape/transforms/json-schema/types.d.ts +87 -0
  86. package/dist/cjs/shape/transforms/json-schema/types.d.ts.map +1 -0
  87. package/dist/cjs/shape/transforms/json-schema/types.js +3 -0
  88. package/dist/cjs/shape/transforms/json-schema/types.js.map +1 -0
  89. package/dist/cjs/shape/transforms/sql/dialects/dialect.d.ts +51 -0
  90. package/dist/cjs/shape/transforms/sql/dialects/dialect.d.ts.map +1 -0
  91. package/dist/cjs/shape/transforms/sql/dialects/dialect.js +8 -0
  92. package/dist/cjs/shape/transforms/sql/dialects/dialect.js.map +1 -0
  93. package/dist/cjs/shape/transforms/sql/dialects/index.d.ts +7 -0
  94. package/dist/cjs/shape/transforms/sql/dialects/index.d.ts.map +1 -0
  95. package/dist/cjs/shape/transforms/sql/dialects/index.js +19 -0
  96. package/dist/cjs/shape/transforms/sql/dialects/index.js.map +1 -0
  97. package/dist/cjs/shape/transforms/sql/dialects/postgres.d.ts +8 -0
  98. package/dist/cjs/shape/transforms/sql/dialects/postgres.d.ts.map +1 -0
  99. package/dist/cjs/shape/transforms/sql/dialects/postgres.js +374 -0
  100. package/dist/cjs/shape/transforms/sql/dialects/postgres.js.map +1 -0
  101. package/dist/cjs/shape/transforms/sql/dialects/sqlite.d.ts +3 -0
  102. package/dist/cjs/shape/transforms/sql/dialects/sqlite.d.ts.map +1 -0
  103. package/dist/cjs/shape/transforms/sql/dialects/sqlite.js +318 -0
  104. package/dist/cjs/shape/transforms/sql/dialects/sqlite.js.map +1 -0
  105. package/dist/cjs/shape/transforms/sql/from-sql.d.ts +5 -0
  106. package/dist/cjs/shape/transforms/sql/from-sql.d.ts.map +1 -0
  107. package/dist/cjs/shape/transforms/sql/from-sql.js +201 -0
  108. package/dist/cjs/shape/transforms/sql/from-sql.js.map +1 -0
  109. package/dist/cjs/shape/transforms/sql/index.d.ts +4 -0
  110. package/dist/cjs/shape/transforms/sql/index.d.ts.map +1 -0
  111. package/dist/cjs/shape/transforms/sql/index.js +20 -0
  112. package/dist/cjs/shape/transforms/sql/index.js.map +1 -0
  113. package/dist/cjs/shape/transforms/sql/options.d.ts +6 -0
  114. package/dist/cjs/shape/transforms/sql/options.d.ts.map +1 -0
  115. package/dist/cjs/shape/transforms/sql/options.js +6 -0
  116. package/dist/cjs/shape/transforms/sql/options.js.map +1 -0
  117. package/dist/cjs/shape/transforms/sql/parser/check-decoder.d.ts +25 -0
  118. package/dist/cjs/shape/transforms/sql/parser/check-decoder.d.ts.map +1 -0
  119. package/dist/cjs/shape/transforms/sql/parser/check-decoder.js +417 -0
  120. package/dist/cjs/shape/transforms/sql/parser/check-decoder.js.map +1 -0
  121. package/dist/cjs/shape/transforms/sql/parser/create-domain.d.ts +11 -0
  122. package/dist/cjs/shape/transforms/sql/parser/create-domain.d.ts.map +1 -0
  123. package/dist/cjs/shape/transforms/sql/parser/create-domain.js +95 -0
  124. package/dist/cjs/shape/transforms/sql/parser/create-domain.js.map +1 -0
  125. package/dist/cjs/shape/transforms/sql/parser/create-table.d.ts +28 -0
  126. package/dist/cjs/shape/transforms/sql/parser/create-table.d.ts.map +1 -0
  127. package/dist/cjs/shape/transforms/sql/parser/create-table.js +744 -0
  128. package/dist/cjs/shape/transforms/sql/parser/create-table.js.map +1 -0
  129. package/dist/cjs/shape/transforms/sql/parser/create-type.d.ts +23 -0
  130. package/dist/cjs/shape/transforms/sql/parser/create-type.d.ts.map +1 -0
  131. package/dist/cjs/shape/transforms/sql/parser/create-type.js +76 -0
  132. package/dist/cjs/shape/transforms/sql/parser/create-type.js.map +1 -0
  133. package/dist/cjs/shape/transforms/sql/parser/cursor.d.ts +32 -0
  134. package/dist/cjs/shape/transforms/sql/parser/cursor.d.ts.map +1 -0
  135. package/dist/cjs/shape/transforms/sql/parser/cursor.js +168 -0
  136. package/dist/cjs/shape/transforms/sql/parser/cursor.js.map +1 -0
  137. package/dist/cjs/shape/transforms/sql/parser/default-decoder.d.ts +10 -0
  138. package/dist/cjs/shape/transforms/sql/parser/default-decoder.d.ts.map +1 -0
  139. package/dist/cjs/shape/transforms/sql/parser/default-decoder.js +125 -0
  140. package/dist/cjs/shape/transforms/sql/parser/default-decoder.js.map +1 -0
  141. package/dist/cjs/shape/transforms/sql/parser/lexer.d.ts +14 -0
  142. package/dist/cjs/shape/transforms/sql/parser/lexer.d.ts.map +1 -0
  143. package/dist/cjs/shape/transforms/sql/parser/lexer.js +259 -0
  144. package/dist/cjs/shape/transforms/sql/parser/lexer.js.map +1 -0
  145. package/dist/cjs/shape/transforms/sql/parser/pg-types.d.ts +21 -0
  146. package/dist/cjs/shape/transforms/sql/parser/pg-types.d.ts.map +1 -0
  147. package/dist/cjs/shape/transforms/sql/parser/pg-types.js +213 -0
  148. package/dist/cjs/shape/transforms/sql/parser/pg-types.js.map +1 -0
  149. package/dist/cjs/shape/transforms/sql/parser/sqlite-types.d.ts +8 -0
  150. package/dist/cjs/shape/transforms/sql/parser/sqlite-types.d.ts.map +1 -0
  151. package/dist/cjs/shape/transforms/sql/parser/sqlite-types.js +93 -0
  152. package/dist/cjs/shape/transforms/sql/parser/sqlite-types.js.map +1 -0
  153. package/dist/cjs/shape/transforms/sql/parser/statements.d.ts +9 -0
  154. package/dist/cjs/shape/transforms/sql/parser/statements.d.ts.map +1 -0
  155. package/dist/cjs/shape/transforms/sql/parser/statements.js +158 -0
  156. package/dist/cjs/shape/transforms/sql/parser/statements.js.map +1 -0
  157. package/dist/cjs/shape/transforms/sql/parser/type-spec.d.ts +12 -0
  158. package/dist/cjs/shape/transforms/sql/parser/type-spec.d.ts.map +1 -0
  159. package/dist/cjs/shape/transforms/sql/parser/type-spec.js +136 -0
  160. package/dist/cjs/shape/transforms/sql/parser/type-spec.js.map +1 -0
  161. package/dist/cjs/shape/transforms/sql/transform.d.ts +5 -0
  162. package/dist/cjs/shape/transforms/sql/transform.d.ts.map +1 -0
  163. package/dist/cjs/shape/transforms/sql/transform.js +262 -0
  164. package/dist/cjs/shape/transforms/sql/transform.js.map +1 -0
  165. package/dist/cjs/shape/transforms/typescript/index.d.ts +2 -0
  166. package/dist/cjs/shape/transforms/typescript/index.d.ts.map +1 -0
  167. package/dist/cjs/shape/transforms/typescript/index.js +18 -0
  168. package/dist/cjs/shape/transforms/typescript/index.js.map +1 -0
  169. package/dist/cjs/shape/transforms/typescript/transform.d.ts +3 -0
  170. package/dist/cjs/shape/transforms/typescript/transform.d.ts.map +1 -0
  171. package/dist/cjs/shape/transforms/typescript/transform.js +190 -0
  172. package/dist/cjs/shape/transforms/typescript/transform.js.map +1 -0
  173. package/dist/cjs/shape/validate.d.ts +7 -0
  174. package/dist/cjs/shape/validate.d.ts.map +1 -0
  175. package/dist/cjs/shape/validate.js +360 -0
  176. package/dist/cjs/shape/validate.js.map +1 -0
  177. package/dist/esm/common/array.d.ts +3 -0
  178. package/dist/esm/common/array.d.ts.map +1 -0
  179. package/dist/esm/common/array.js +12 -0
  180. package/dist/esm/common/array.js.map +1 -0
  181. package/dist/esm/common/index.d.ts +6 -0
  182. package/dist/esm/common/index.d.ts.map +1 -0
  183. package/dist/esm/common/index.js +6 -0
  184. package/dist/esm/common/index.js.map +1 -0
  185. package/dist/esm/common/is.d.ts +5 -0
  186. package/dist/esm/common/is.d.ts.map +1 -0
  187. package/dist/esm/common/is.js +29 -0
  188. package/dist/esm/common/is.js.map +1 -0
  189. package/dist/esm/common/object.d.ts +4 -0
  190. package/dist/esm/common/object.d.ts.map +1 -0
  191. package/dist/esm/common/object.js +15 -0
  192. package/dist/esm/common/object.js.map +1 -0
  193. package/dist/esm/common/phantom.d.ts +2 -0
  194. package/dist/esm/common/phantom.d.ts.map +1 -0
  195. package/dist/esm/common/phantom.js +2 -0
  196. package/dist/esm/common/phantom.js.map +1 -0
  197. package/dist/esm/common/result.d.ts +22 -0
  198. package/dist/esm/common/result.d.ts.map +1 -0
  199. package/dist/esm/common/result.js +25 -0
  200. package/dist/esm/common/result.js.map +1 -0
  201. package/dist/esm/common/string.d.ts +3 -0
  202. package/dist/esm/common/string.d.ts.map +1 -0
  203. package/dist/esm/common/string.js +28 -0
  204. package/dist/esm/common/string.js.map +1 -0
  205. package/dist/esm/common/types.d.ts +14 -0
  206. package/dist/esm/common/types.d.ts.map +1 -0
  207. package/dist/esm/common/types.js +2 -0
  208. package/dist/esm/common/types.js.map +1 -0
  209. package/dist/esm/index.d.ts +2 -0
  210. package/dist/esm/index.d.ts.map +1 -0
  211. package/dist/esm/index.js +2 -0
  212. package/dist/esm/index.js.map +1 -0
  213. package/dist/esm/shape/annotate.d.ts +57 -0
  214. package/dist/esm/shape/annotate.d.ts.map +1 -0
  215. package/dist/esm/shape/annotate.js +34 -0
  216. package/dist/esm/shape/annotate.js.map +1 -0
  217. package/dist/esm/shape/annotation.d.ts +39 -0
  218. package/dist/esm/shape/annotation.d.ts.map +1 -0
  219. package/dist/esm/shape/annotation.js +2 -0
  220. package/dist/esm/shape/annotation.js.map +1 -0
  221. package/dist/esm/shape/base.d.ts +33 -0
  222. package/dist/esm/shape/base.d.ts.map +1 -0
  223. package/dist/esm/shape/base.js +20 -0
  224. package/dist/esm/shape/base.js.map +1 -0
  225. package/dist/esm/shape/builder.d.ts +168 -0
  226. package/dist/esm/shape/builder.d.ts.map +1 -0
  227. package/dist/esm/shape/builder.js +146 -0
  228. package/dist/esm/shape/builder.js.map +1 -0
  229. package/dist/esm/shape/error.d.ts +5 -0
  230. package/dist/esm/shape/error.d.ts.map +1 -0
  231. package/dist/esm/shape/error.js +2 -0
  232. package/dist/esm/shape/error.js.map +1 -0
  233. package/dist/esm/shape/index.d.ts +4 -0
  234. package/dist/esm/shape/index.d.ts.map +1 -0
  235. package/dist/esm/shape/index.js +4 -0
  236. package/dist/esm/shape/index.js.map +1 -0
  237. package/dist/esm/shape/number.d.ts +8 -0
  238. package/dist/esm/shape/number.d.ts.map +1 -0
  239. package/dist/esm/shape/number.js +114 -0
  240. package/dist/esm/shape/number.js.map +1 -0
  241. package/dist/esm/shape/shape.d.ts +150 -0
  242. package/dist/esm/shape/shape.d.ts.map +1 -0
  243. package/dist/esm/shape/shape.js +121 -0
  244. package/dist/esm/shape/shape.js.map +1 -0
  245. package/dist/esm/shape/tags.d.ts +4 -0
  246. package/dist/esm/shape/tags.d.ts.map +1 -0
  247. package/dist/esm/shape/tags.js +2 -0
  248. package/dist/esm/shape/tags.js.map +1 -0
  249. package/dist/esm/shape/transforms/index.d.ts +4 -0
  250. package/dist/esm/shape/transforms/index.d.ts.map +1 -0
  251. package/dist/esm/shape/transforms/index.js +4 -0
  252. package/dist/esm/shape/transforms/index.js.map +1 -0
  253. package/dist/esm/shape/transforms/json-schema/index.d.ts +3 -0
  254. package/dist/esm/shape/transforms/json-schema/index.d.ts.map +1 -0
  255. package/dist/esm/shape/transforms/json-schema/index.js +3 -0
  256. package/dist/esm/shape/transforms/json-schema/index.js.map +1 -0
  257. package/dist/esm/shape/transforms/json-schema/transform.d.ts +5 -0
  258. package/dist/esm/shape/transforms/json-schema/transform.d.ts.map +1 -0
  259. package/dist/esm/shape/transforms/json-schema/transform.js +734 -0
  260. package/dist/esm/shape/transforms/json-schema/transform.js.map +1 -0
  261. package/dist/esm/shape/transforms/json-schema/types.d.ts +87 -0
  262. package/dist/esm/shape/transforms/json-schema/types.d.ts.map +1 -0
  263. package/dist/esm/shape/transforms/json-schema/types.js +2 -0
  264. package/dist/esm/shape/transforms/json-schema/types.js.map +1 -0
  265. package/dist/esm/shape/transforms/sql/dialects/dialect.d.ts +51 -0
  266. package/dist/esm/shape/transforms/sql/dialects/dialect.d.ts.map +1 -0
  267. package/dist/esm/shape/transforms/sql/dialects/dialect.js +3 -0
  268. package/dist/esm/shape/transforms/sql/dialects/dialect.js.map +1 -0
  269. package/dist/esm/shape/transforms/sql/dialects/index.d.ts +7 -0
  270. package/dist/esm/shape/transforms/sql/dialects/index.d.ts.map +1 -0
  271. package/dist/esm/shape/transforms/sql/dialects/index.js +12 -0
  272. package/dist/esm/shape/transforms/sql/dialects/index.js.map +1 -0
  273. package/dist/esm/shape/transforms/sql/dialects/postgres.d.ts +8 -0
  274. package/dist/esm/shape/transforms/sql/dialects/postgres.d.ts.map +1 -0
  275. package/dist/esm/shape/transforms/sql/dialects/postgres.js +370 -0
  276. package/dist/esm/shape/transforms/sql/dialects/postgres.js.map +1 -0
  277. package/dist/esm/shape/transforms/sql/dialects/sqlite.d.ts +3 -0
  278. package/dist/esm/shape/transforms/sql/dialects/sqlite.d.ts.map +1 -0
  279. package/dist/esm/shape/transforms/sql/dialects/sqlite.js +315 -0
  280. package/dist/esm/shape/transforms/sql/dialects/sqlite.js.map +1 -0
  281. package/dist/esm/shape/transforms/sql/from-sql.d.ts +5 -0
  282. package/dist/esm/shape/transforms/sql/from-sql.d.ts.map +1 -0
  283. package/dist/esm/shape/transforms/sql/from-sql.js +197 -0
  284. package/dist/esm/shape/transforms/sql/from-sql.js.map +1 -0
  285. package/dist/esm/shape/transforms/sql/index.d.ts +4 -0
  286. package/dist/esm/shape/transforms/sql/index.d.ts.map +1 -0
  287. package/dist/esm/shape/transforms/sql/index.js +4 -0
  288. package/dist/esm/shape/transforms/sql/index.js.map +1 -0
  289. package/dist/esm/shape/transforms/sql/options.d.ts +6 -0
  290. package/dist/esm/shape/transforms/sql/options.d.ts.map +1 -0
  291. package/dist/esm/shape/transforms/sql/options.js +2 -0
  292. package/dist/esm/shape/transforms/sql/options.js.map +1 -0
  293. package/dist/esm/shape/transforms/sql/parser/check-decoder.d.ts +25 -0
  294. package/dist/esm/shape/transforms/sql/parser/check-decoder.d.ts.map +1 -0
  295. package/dist/esm/shape/transforms/sql/parser/check-decoder.js +412 -0
  296. package/dist/esm/shape/transforms/sql/parser/check-decoder.js.map +1 -0
  297. package/dist/esm/shape/transforms/sql/parser/create-domain.d.ts +11 -0
  298. package/dist/esm/shape/transforms/sql/parser/create-domain.d.ts.map +1 -0
  299. package/dist/esm/shape/transforms/sql/parser/create-domain.js +91 -0
  300. package/dist/esm/shape/transforms/sql/parser/create-domain.js.map +1 -0
  301. package/dist/esm/shape/transforms/sql/parser/create-table.d.ts +28 -0
  302. package/dist/esm/shape/transforms/sql/parser/create-table.d.ts.map +1 -0
  303. package/dist/esm/shape/transforms/sql/parser/create-table.js +740 -0
  304. package/dist/esm/shape/transforms/sql/parser/create-table.js.map +1 -0
  305. package/dist/esm/shape/transforms/sql/parser/create-type.d.ts +23 -0
  306. package/dist/esm/shape/transforms/sql/parser/create-type.d.ts.map +1 -0
  307. package/dist/esm/shape/transforms/sql/parser/create-type.js +72 -0
  308. package/dist/esm/shape/transforms/sql/parser/create-type.js.map +1 -0
  309. package/dist/esm/shape/transforms/sql/parser/cursor.d.ts +32 -0
  310. package/dist/esm/shape/transforms/sql/parser/cursor.d.ts.map +1 -0
  311. package/dist/esm/shape/transforms/sql/parser/cursor.js +163 -0
  312. package/dist/esm/shape/transforms/sql/parser/cursor.js.map +1 -0
  313. package/dist/esm/shape/transforms/sql/parser/default-decoder.d.ts +10 -0
  314. package/dist/esm/shape/transforms/sql/parser/default-decoder.d.ts.map +1 -0
  315. package/dist/esm/shape/transforms/sql/parser/default-decoder.js +121 -0
  316. package/dist/esm/shape/transforms/sql/parser/default-decoder.js.map +1 -0
  317. package/dist/esm/shape/transforms/sql/parser/lexer.d.ts +14 -0
  318. package/dist/esm/shape/transforms/sql/parser/lexer.d.ts.map +1 -0
  319. package/dist/esm/shape/transforms/sql/parser/lexer.js +253 -0
  320. package/dist/esm/shape/transforms/sql/parser/lexer.js.map +1 -0
  321. package/dist/esm/shape/transforms/sql/parser/pg-types.d.ts +21 -0
  322. package/dist/esm/shape/transforms/sql/parser/pg-types.d.ts.map +1 -0
  323. package/dist/esm/shape/transforms/sql/parser/pg-types.js +208 -0
  324. package/dist/esm/shape/transforms/sql/parser/pg-types.js.map +1 -0
  325. package/dist/esm/shape/transforms/sql/parser/sqlite-types.d.ts +8 -0
  326. package/dist/esm/shape/transforms/sql/parser/sqlite-types.d.ts.map +1 -0
  327. package/dist/esm/shape/transforms/sql/parser/sqlite-types.js +89 -0
  328. package/dist/esm/shape/transforms/sql/parser/sqlite-types.js.map +1 -0
  329. package/dist/esm/shape/transforms/sql/parser/statements.d.ts +9 -0
  330. package/dist/esm/shape/transforms/sql/parser/statements.d.ts.map +1 -0
  331. package/dist/esm/shape/transforms/sql/parser/statements.js +153 -0
  332. package/dist/esm/shape/transforms/sql/parser/statements.js.map +1 -0
  333. package/dist/esm/shape/transforms/sql/parser/type-spec.d.ts +12 -0
  334. package/dist/esm/shape/transforms/sql/parser/type-spec.d.ts.map +1 -0
  335. package/dist/esm/shape/transforms/sql/parser/type-spec.js +130 -0
  336. package/dist/esm/shape/transforms/sql/parser/type-spec.js.map +1 -0
  337. package/dist/esm/shape/transforms/sql/transform.d.ts +5 -0
  338. package/dist/esm/shape/transforms/sql/transform.d.ts.map +1 -0
  339. package/dist/esm/shape/transforms/sql/transform.js +258 -0
  340. package/dist/esm/shape/transforms/sql/transform.js.map +1 -0
  341. package/dist/esm/shape/transforms/typescript/index.d.ts +2 -0
  342. package/dist/esm/shape/transforms/typescript/index.d.ts.map +1 -0
  343. package/dist/esm/shape/transforms/typescript/index.js +2 -0
  344. package/dist/esm/shape/transforms/typescript/index.js.map +1 -0
  345. package/dist/esm/shape/transforms/typescript/transform.d.ts +3 -0
  346. package/dist/esm/shape/transforms/typescript/transform.d.ts.map +1 -0
  347. package/dist/esm/shape/transforms/typescript/transform.js +186 -0
  348. package/dist/esm/shape/transforms/typescript/transform.js.map +1 -0
  349. package/dist/esm/shape/validate.d.ts +7 -0
  350. package/dist/esm/shape/validate.d.ts.map +1 -0
  351. package/dist/esm/shape/validate.js +355 -0
  352. package/dist/esm/shape/validate.js.map +1 -0
  353. package/dist/esm/src/common/array.d.ts +3 -0
  354. package/dist/esm/src/common/array.d.ts.map +1 -0
  355. package/dist/esm/src/common/array.js +12 -0
  356. package/dist/esm/src/common/array.js.map +1 -0
  357. package/dist/esm/src/common/index.d.ts +6 -0
  358. package/dist/esm/src/common/index.d.ts.map +1 -0
  359. package/dist/esm/src/common/index.js +6 -0
  360. package/dist/esm/src/common/index.js.map +1 -0
  361. package/dist/esm/src/common/is.d.ts +5 -0
  362. package/dist/esm/src/common/is.d.ts.map +1 -0
  363. package/dist/esm/src/common/is.js +29 -0
  364. package/dist/esm/src/common/is.js.map +1 -0
  365. package/dist/esm/src/common/object.d.ts +4 -0
  366. package/dist/esm/src/common/object.d.ts.map +1 -0
  367. package/dist/esm/src/common/object.js +15 -0
  368. package/dist/esm/src/common/object.js.map +1 -0
  369. package/dist/esm/src/common/phantom.d.ts +2 -0
  370. package/dist/esm/src/common/phantom.d.ts.map +1 -0
  371. package/dist/esm/src/common/phantom.js +2 -0
  372. package/dist/esm/src/common/phantom.js.map +1 -0
  373. package/dist/esm/src/common/result.d.ts +22 -0
  374. package/dist/esm/src/common/result.d.ts.map +1 -0
  375. package/dist/esm/src/common/result.js +25 -0
  376. package/dist/esm/src/common/result.js.map +1 -0
  377. package/dist/esm/src/common/string.d.ts +3 -0
  378. package/dist/esm/src/common/string.d.ts.map +1 -0
  379. package/dist/esm/src/common/string.js +28 -0
  380. package/dist/esm/src/common/string.js.map +1 -0
  381. package/dist/esm/src/common/types.d.ts +14 -0
  382. package/dist/esm/src/common/types.d.ts.map +1 -0
  383. package/dist/esm/src/common/types.js +2 -0
  384. package/dist/esm/src/common/types.js.map +1 -0
  385. package/dist/esm/src/index.d.ts +2 -0
  386. package/dist/esm/src/index.d.ts.map +1 -0
  387. package/dist/esm/src/index.js +2 -0
  388. package/dist/esm/src/index.js.map +1 -0
  389. package/dist/esm/src/shape/annotate.d.ts +57 -0
  390. package/dist/esm/src/shape/annotate.d.ts.map +1 -0
  391. package/dist/esm/src/shape/annotate.js +34 -0
  392. package/dist/esm/src/shape/annotate.js.map +1 -0
  393. package/dist/esm/src/shape/annotation.d.ts +39 -0
  394. package/dist/esm/src/shape/annotation.d.ts.map +1 -0
  395. package/dist/esm/src/shape/annotation.js +2 -0
  396. package/dist/esm/src/shape/annotation.js.map +1 -0
  397. package/dist/esm/src/shape/base.d.ts +33 -0
  398. package/dist/esm/src/shape/base.d.ts.map +1 -0
  399. package/dist/esm/src/shape/base.js +20 -0
  400. package/dist/esm/src/shape/base.js.map +1 -0
  401. package/dist/esm/src/shape/builder.d.ts +168 -0
  402. package/dist/esm/src/shape/builder.d.ts.map +1 -0
  403. package/dist/esm/src/shape/builder.js +146 -0
  404. package/dist/esm/src/shape/builder.js.map +1 -0
  405. package/dist/esm/src/shape/error.d.ts +5 -0
  406. package/dist/esm/src/shape/error.d.ts.map +1 -0
  407. package/dist/esm/src/shape/error.js +2 -0
  408. package/dist/esm/src/shape/error.js.map +1 -0
  409. package/dist/esm/src/shape/index.d.ts +4 -0
  410. package/dist/esm/src/shape/index.d.ts.map +1 -0
  411. package/dist/esm/src/shape/index.js +4 -0
  412. package/dist/esm/src/shape/index.js.map +1 -0
  413. package/dist/esm/src/shape/number.d.ts +8 -0
  414. package/dist/esm/src/shape/number.d.ts.map +1 -0
  415. package/dist/esm/src/shape/number.js +114 -0
  416. package/dist/esm/src/shape/number.js.map +1 -0
  417. package/dist/esm/src/shape/shape.d.ts +150 -0
  418. package/dist/esm/src/shape/shape.d.ts.map +1 -0
  419. package/dist/esm/src/shape/shape.js +121 -0
  420. package/dist/esm/src/shape/shape.js.map +1 -0
  421. package/dist/esm/src/shape/tags.d.ts +4 -0
  422. package/dist/esm/src/shape/tags.d.ts.map +1 -0
  423. package/dist/esm/src/shape/tags.js +2 -0
  424. package/dist/esm/src/shape/tags.js.map +1 -0
  425. package/dist/esm/src/shape/transforms/index.d.ts +4 -0
  426. package/dist/esm/src/shape/transforms/index.d.ts.map +1 -0
  427. package/dist/esm/src/shape/transforms/index.js +4 -0
  428. package/dist/esm/src/shape/transforms/index.js.map +1 -0
  429. package/dist/esm/src/shape/transforms/json-schema/index.d.ts +3 -0
  430. package/dist/esm/src/shape/transforms/json-schema/index.d.ts.map +1 -0
  431. package/dist/esm/src/shape/transforms/json-schema/index.js +3 -0
  432. package/dist/esm/src/shape/transforms/json-schema/index.js.map +1 -0
  433. package/dist/esm/src/shape/transforms/json-schema/transform.d.ts +5 -0
  434. package/dist/esm/src/shape/transforms/json-schema/transform.d.ts.map +1 -0
  435. package/dist/esm/src/shape/transforms/json-schema/transform.js +734 -0
  436. package/dist/esm/src/shape/transforms/json-schema/transform.js.map +1 -0
  437. package/dist/esm/src/shape/transforms/json-schema/types.d.ts +87 -0
  438. package/dist/esm/src/shape/transforms/json-schema/types.d.ts.map +1 -0
  439. package/dist/esm/src/shape/transforms/json-schema/types.js +2 -0
  440. package/dist/esm/src/shape/transforms/json-schema/types.js.map +1 -0
  441. package/dist/esm/src/shape/transforms/sql/dialects/dialect.d.ts +51 -0
  442. package/dist/esm/src/shape/transforms/sql/dialects/dialect.d.ts.map +1 -0
  443. package/dist/esm/src/shape/transforms/sql/dialects/dialect.js +3 -0
  444. package/dist/esm/src/shape/transforms/sql/dialects/dialect.js.map +1 -0
  445. package/dist/esm/src/shape/transforms/sql/dialects/index.d.ts +7 -0
  446. package/dist/esm/src/shape/transforms/sql/dialects/index.d.ts.map +1 -0
  447. package/dist/esm/src/shape/transforms/sql/dialects/index.js +12 -0
  448. package/dist/esm/src/shape/transforms/sql/dialects/index.js.map +1 -0
  449. package/dist/esm/src/shape/transforms/sql/dialects/postgres.d.ts +8 -0
  450. package/dist/esm/src/shape/transforms/sql/dialects/postgres.d.ts.map +1 -0
  451. package/dist/esm/src/shape/transforms/sql/dialects/postgres.js +370 -0
  452. package/dist/esm/src/shape/transforms/sql/dialects/postgres.js.map +1 -0
  453. package/dist/esm/src/shape/transforms/sql/dialects/sqlite.d.ts +3 -0
  454. package/dist/esm/src/shape/transforms/sql/dialects/sqlite.d.ts.map +1 -0
  455. package/dist/esm/src/shape/transforms/sql/dialects/sqlite.js +315 -0
  456. package/dist/esm/src/shape/transforms/sql/dialects/sqlite.js.map +1 -0
  457. package/dist/esm/src/shape/transforms/sql/from-sql.d.ts +5 -0
  458. package/dist/esm/src/shape/transforms/sql/from-sql.d.ts.map +1 -0
  459. package/dist/esm/src/shape/transforms/sql/from-sql.js +197 -0
  460. package/dist/esm/src/shape/transforms/sql/from-sql.js.map +1 -0
  461. package/dist/esm/src/shape/transforms/sql/index.d.ts +4 -0
  462. package/dist/esm/src/shape/transforms/sql/index.d.ts.map +1 -0
  463. package/dist/esm/src/shape/transforms/sql/index.js +4 -0
  464. package/dist/esm/src/shape/transforms/sql/index.js.map +1 -0
  465. package/dist/esm/src/shape/transforms/sql/options.d.ts +6 -0
  466. package/dist/esm/src/shape/transforms/sql/options.d.ts.map +1 -0
  467. package/dist/esm/src/shape/transforms/sql/options.js +2 -0
  468. package/dist/esm/src/shape/transforms/sql/options.js.map +1 -0
  469. package/dist/esm/src/shape/transforms/sql/parser/check-decoder.d.ts +25 -0
  470. package/dist/esm/src/shape/transforms/sql/parser/check-decoder.d.ts.map +1 -0
  471. package/dist/esm/src/shape/transforms/sql/parser/check-decoder.js +412 -0
  472. package/dist/esm/src/shape/transforms/sql/parser/check-decoder.js.map +1 -0
  473. package/dist/esm/src/shape/transforms/sql/parser/create-domain.d.ts +11 -0
  474. package/dist/esm/src/shape/transforms/sql/parser/create-domain.d.ts.map +1 -0
  475. package/dist/esm/src/shape/transforms/sql/parser/create-domain.js +91 -0
  476. package/dist/esm/src/shape/transforms/sql/parser/create-domain.js.map +1 -0
  477. package/dist/esm/src/shape/transforms/sql/parser/create-table.d.ts +28 -0
  478. package/dist/esm/src/shape/transforms/sql/parser/create-table.d.ts.map +1 -0
  479. package/dist/esm/src/shape/transforms/sql/parser/create-table.js +740 -0
  480. package/dist/esm/src/shape/transforms/sql/parser/create-table.js.map +1 -0
  481. package/dist/esm/src/shape/transforms/sql/parser/create-type.d.ts +23 -0
  482. package/dist/esm/src/shape/transforms/sql/parser/create-type.d.ts.map +1 -0
  483. package/dist/esm/src/shape/transforms/sql/parser/create-type.js +72 -0
  484. package/dist/esm/src/shape/transforms/sql/parser/create-type.js.map +1 -0
  485. package/dist/esm/src/shape/transforms/sql/parser/cursor.d.ts +32 -0
  486. package/dist/esm/src/shape/transforms/sql/parser/cursor.d.ts.map +1 -0
  487. package/dist/esm/src/shape/transforms/sql/parser/cursor.js +163 -0
  488. package/dist/esm/src/shape/transforms/sql/parser/cursor.js.map +1 -0
  489. package/dist/esm/src/shape/transforms/sql/parser/default-decoder.d.ts +10 -0
  490. package/dist/esm/src/shape/transforms/sql/parser/default-decoder.d.ts.map +1 -0
  491. package/dist/esm/src/shape/transforms/sql/parser/default-decoder.js +121 -0
  492. package/dist/esm/src/shape/transforms/sql/parser/default-decoder.js.map +1 -0
  493. package/dist/esm/src/shape/transforms/sql/parser/lexer.d.ts +14 -0
  494. package/dist/esm/src/shape/transforms/sql/parser/lexer.d.ts.map +1 -0
  495. package/dist/esm/src/shape/transforms/sql/parser/lexer.js +253 -0
  496. package/dist/esm/src/shape/transforms/sql/parser/lexer.js.map +1 -0
  497. package/dist/esm/src/shape/transforms/sql/parser/pg-types.d.ts +21 -0
  498. package/dist/esm/src/shape/transforms/sql/parser/pg-types.d.ts.map +1 -0
  499. package/dist/esm/src/shape/transforms/sql/parser/pg-types.js +208 -0
  500. package/dist/esm/src/shape/transforms/sql/parser/pg-types.js.map +1 -0
  501. package/dist/esm/src/shape/transforms/sql/parser/sqlite-types.d.ts +8 -0
  502. package/dist/esm/src/shape/transforms/sql/parser/sqlite-types.d.ts.map +1 -0
  503. package/dist/esm/src/shape/transforms/sql/parser/sqlite-types.js +89 -0
  504. package/dist/esm/src/shape/transforms/sql/parser/sqlite-types.js.map +1 -0
  505. package/dist/esm/src/shape/transforms/sql/parser/statements.d.ts +9 -0
  506. package/dist/esm/src/shape/transforms/sql/parser/statements.d.ts.map +1 -0
  507. package/dist/esm/src/shape/transforms/sql/parser/statements.js +153 -0
  508. package/dist/esm/src/shape/transforms/sql/parser/statements.js.map +1 -0
  509. package/dist/esm/src/shape/transforms/sql/parser/type-spec.d.ts +12 -0
  510. package/dist/esm/src/shape/transforms/sql/parser/type-spec.d.ts.map +1 -0
  511. package/dist/esm/src/shape/transforms/sql/parser/type-spec.js +130 -0
  512. package/dist/esm/src/shape/transforms/sql/parser/type-spec.js.map +1 -0
  513. package/dist/esm/src/shape/transforms/sql/transform.d.ts +5 -0
  514. package/dist/esm/src/shape/transforms/sql/transform.d.ts.map +1 -0
  515. package/dist/esm/src/shape/transforms/sql/transform.js +258 -0
  516. package/dist/esm/src/shape/transforms/sql/transform.js.map +1 -0
  517. package/dist/esm/src/shape/transforms/typescript/index.d.ts +2 -0
  518. package/dist/esm/src/shape/transforms/typescript/index.d.ts.map +1 -0
  519. package/dist/esm/src/shape/transforms/typescript/index.js +2 -0
  520. package/dist/esm/src/shape/transforms/typescript/index.js.map +1 -0
  521. package/dist/esm/src/shape/transforms/typescript/transform.d.ts +3 -0
  522. package/dist/esm/src/shape/transforms/typescript/transform.d.ts.map +1 -0
  523. package/dist/esm/src/shape/transforms/typescript/transform.js +186 -0
  524. package/dist/esm/src/shape/transforms/typescript/transform.js.map +1 -0
  525. package/dist/esm/src/shape/validate.d.ts +7 -0
  526. package/dist/esm/src/shape/validate.d.ts.map +1 -0
  527. package/dist/esm/src/shape/validate.js +355 -0
  528. package/dist/esm/src/shape/validate.js.map +1 -0
  529. package/package.json +40 -0
  530. package/src/common/array.test.ts +19 -0
  531. package/src/common/array.ts +15 -0
  532. package/src/common/index.ts +5 -0
  533. package/src/common/is.ts +23 -0
  534. package/src/common/object.ts +35 -0
  535. package/src/common/phantom.ts +1 -0
  536. package/src/common/result.ts +43 -0
  537. package/src/common/string.ts +28 -0
  538. package/src/common/types.ts +34 -0
  539. package/src/index.ts +1 -0
  540. package/src/shape/annotate.ts +139 -0
  541. package/src/shape/annotation.ts +47 -0
  542. package/src/shape/base.ts +71 -0
  543. package/src/shape/builder.test.ts +728 -0
  544. package/src/shape/builder.ts +475 -0
  545. package/src/shape/error.ts +4 -0
  546. package/src/shape/index.ts +3 -0
  547. package/src/shape/number.ts +118 -0
  548. package/src/shape/shape.test.ts +792 -0
  549. package/src/shape/shape.ts +377 -0
  550. package/src/shape/tags.ts +14 -0
  551. package/src/shape/transforms/index.ts +3 -0
  552. package/src/shape/transforms/json-schema/index.ts +2 -0
  553. package/src/shape/transforms/json-schema/transform.test.ts +850 -0
  554. package/src/shape/transforms/json-schema/transform.ts +882 -0
  555. package/src/shape/transforms/json-schema/types.ts +132 -0
  556. package/src/shape/transforms/sql/dialects/dialect.ts +89 -0
  557. package/src/shape/transforms/sql/dialects/index.ts +14 -0
  558. package/src/shape/transforms/sql/dialects/postgres.ts +392 -0
  559. package/src/shape/transforms/sql/dialects/sqlite.ts +333 -0
  560. package/src/shape/transforms/sql/from-sql.test.ts +704 -0
  561. package/src/shape/transforms/sql/from-sql.ts +210 -0
  562. package/src/shape/transforms/sql/index.ts +3 -0
  563. package/src/shape/transforms/sql/options.ts +6 -0
  564. package/src/shape/transforms/sql/parser/check-decoder.ts +457 -0
  565. package/src/shape/transforms/sql/parser/create-domain.ts +105 -0
  566. package/src/shape/transforms/sql/parser/create-table.ts +809 -0
  567. package/src/shape/transforms/sql/parser/create-type.ts +91 -0
  568. package/src/shape/transforms/sql/parser/cursor.ts +179 -0
  569. package/src/shape/transforms/sql/parser/default-decoder.ts +129 -0
  570. package/src/shape/transforms/sql/parser/lexer.ts +289 -0
  571. package/src/shape/transforms/sql/parser/pg-types.ts +247 -0
  572. package/src/shape/transforms/sql/parser/sqlite-types.ts +103 -0
  573. package/src/shape/transforms/sql/parser/statements.ts +127 -0
  574. package/src/shape/transforms/sql/parser/type-spec.ts +159 -0
  575. package/src/shape/transforms/sql/transform.sqlite.test.ts +448 -0
  576. package/src/shape/transforms/sql/transform.test.ts +880 -0
  577. package/src/shape/transforms/sql/transform.ts +295 -0
  578. package/src/shape/transforms/typescript/index.ts +1 -0
  579. package/src/shape/transforms/typescript/transform.ts +211 -0
  580. package/src/shape/tuple.test.ts +171 -0
  581. package/src/shape/validate.ts +413 -0
  582. package/tsconfig.cjs.json +11 -0
  583. package/tsconfig.esm.json +10 -0
  584. package/tsconfig.json +23 -0
@@ -0,0 +1,3 @@
1
+ import { shapes } from "../../shape";
2
+ export declare const toTypescript: (shape: shapes.Shape) => string;
3
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../../src/shape/transforms/typescript/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAwMrC,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,CAAC,KAAK,KAAG,MASlD,CAAC"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toTypescript = void 0;
4
+ const common_1 = require("../../../common");
5
+ const incPadding = (ctx) => ({
6
+ ...ctx,
7
+ padding: ctx.padding + 2,
8
+ });
9
+ const incDepth = (ctx) => ({ ...ctx, depth: ctx.depth + 1 });
10
+ const inc = (ctx) => incPadding(incDepth(ctx));
11
+ const mkpad = (n) => (0, common_1.repeat)(" ", n);
12
+ const getName = (shape) => {
13
+ if (shape.anno.title && shape.anno.title.trim().length > 0)
14
+ return shape.anno.title;
15
+ const meta = shape.anno.meta;
16
+ if (!meta)
17
+ return null;
18
+ const mTitle = meta["title"] || meta["name"];
19
+ if (mTitle && typeof mTitle === "string" && mTitle.trim().length > 0)
20
+ return mTitle;
21
+ return null;
22
+ };
23
+ const isSafeName = (x) => !(x.includes(" ") || x.includes("-"));
24
+ const autoQuote = (x) => {
25
+ if (x.includes(" ") || x.includes("-"))
26
+ return `"${x}"`;
27
+ return x;
28
+ };
29
+ const createComments = (shape) => {
30
+ const comments = [];
31
+ if (shape.anno.description) {
32
+ comments.push(shape.anno.description);
33
+ }
34
+ if (shape.anno.comment) {
35
+ comments.push(shape.anno.comment);
36
+ }
37
+ if (shape.anno.primary) {
38
+ comments.push(`(primary)`);
39
+ }
40
+ if (shape.anno.pattern) {
41
+ comments.push(`must match pattern: ${shape.anno.pattern.toString()}`);
42
+ }
43
+ if (shape.anno.format) {
44
+ comments.push(`(format: ${shape.anno.format})`);
45
+ }
46
+ // Lift format from union members: a union of format-annotated strings
47
+ // collapses to `string` at the type level, but the formats themselves
48
+ // are useful to surface as a hint.
49
+ if (shape.type === "union" && !shape.anno.format) {
50
+ const formats = shape.input
51
+ .map((m) => m.anno.format)
52
+ .filter((f) => typeof f === "string");
53
+ if (formats.length > 0 && formats.length === shape.input.length) {
54
+ comments.push(`(format: ${formats.join(" | ")})`);
55
+ }
56
+ }
57
+ if (typeof shape.anno.min === "number") {
58
+ comments.push(`must be >= ${shape.anno.min}`);
59
+ }
60
+ if (typeof shape.anno.max === "number") {
61
+ comments.push(`must be <= ${shape.anno.max}`);
62
+ }
63
+ if (shape.anno.foreign) {
64
+ comments.push(`(foreign) references '${shape.anno.foreign.table}.${shape.anno.foreign.column}'`);
65
+ }
66
+ if (shape.anno.uniqueItems) {
67
+ comments.push(`(uniqueItems)`);
68
+ }
69
+ if (shape.anno.unique) {
70
+ comments.push(`(unique)`);
71
+ }
72
+ if (shape.anno.default) {
73
+ comments.push(`(default = ${shape.anno.default})`);
74
+ }
75
+ if (comments.length > 1) {
76
+ return ["/**", ...comments.map((x) => `* ${x}`), "**/"];
77
+ }
78
+ return comments.map((x) => `// ${x}`);
79
+ };
80
+ const renderComments = (comments, pad) => {
81
+ if (comments.length <= 0)
82
+ return "";
83
+ return comments.map((x) => `${mkpad(pad)}${x}`).join("\n") + "\n";
84
+ };
85
+ const blockOfFields = (rec, ctx) => {
86
+ return [
87
+ `{\n`,
88
+ Object.entries(rec)
89
+ .map(([field, s]) => {
90
+ const name = getName(s) || field;
91
+ return [
92
+ renderComments(createComments(s), ctx.padding + 2),
93
+ mkpad(ctx.padding + 2),
94
+ autoQuote(name),
95
+ s.anno.optional ? "?" : "",
96
+ ": ",
97
+ toTs(s, inc(ctx)),
98
+ ";",
99
+ ].join("");
100
+ })
101
+ .join("\n"),
102
+ `\n${mkpad(ctx.padding)}}`,
103
+ ].join("");
104
+ };
105
+ const listOfTypes = (rec, ctx) => {
106
+ return [
107
+ Object.entries(rec)
108
+ .map(([field, s]) => {
109
+ const name = (getName(s) || field).replaceAll(" ", "_");
110
+ return [
111
+ renderComments(createComments(s), ctx.padding),
112
+ mkpad(ctx.padding),
113
+ `export type ${name} = `,
114
+ toTs(s, incDepth(ctx)),
115
+ `;`,
116
+ ].join("");
117
+ })
118
+ .join("\n"),
119
+ ].join("");
120
+ };
121
+ const toTs = (shape, ctx) => {
122
+ switch (shape.type) {
123
+ case "string":
124
+ if (shape.literal)
125
+ return JSON.stringify(shape.input);
126
+ return shape.type;
127
+ case "number":
128
+ case "boolean":
129
+ if (shape.literal)
130
+ return String(shape.input);
131
+ return shape.type;
132
+ case "undefined":
133
+ case "unknown":
134
+ return shape.type;
135
+ case "date":
136
+ return "Date";
137
+ case "nil":
138
+ return "null";
139
+ case "union": {
140
+ const parts = shape.input.map((x) => toTs(x, incDepth(ctx)));
141
+ return Array.from(new Set(parts)).join(" | ");
142
+ }
143
+ case "array":
144
+ return `Array<${toTs(shape.input, inc(ctx))}>`;
145
+ case "binary":
146
+ return `Uint8Array | Array<number>`;
147
+ case "vector":
148
+ return `Array<number>`;
149
+ case "tuple":
150
+ return `[${shape.input.map((s) => toTs(s, inc(ctx))).join(", ")}]`;
151
+ case "range": {
152
+ const item = toTs(shape.input, inc(ctx));
153
+ return `{ lower: ${item} | null; upper: ${item} | null; lowerInclusive: boolean; upperInclusive: boolean; }`;
154
+ }
155
+ case "record":
156
+ return `Record<${toTs(shape.input[0], incDepth(ctx))}, ${toTs(shape.input[1], inc(ctx))}>`;
157
+ case "module": {
158
+ const name = getName(shape);
159
+ if (name && isSafeName(name)) {
160
+ return [
161
+ `export namespace ${name} {\n`,
162
+ listOfTypes(shape.input, inc(ctx)),
163
+ `\n}`,
164
+ ].join("");
165
+ }
166
+ return listOfTypes(shape.input, ctx);
167
+ }
168
+ case "mapping": {
169
+ const name = getName(shape);
170
+ if (name && ctx.depth <= 0) {
171
+ const cleanName = name.replaceAll(/-| /g, "_");
172
+ return [
173
+ `export type ${cleanName} = `,
174
+ blockOfFields(shape.input, ctx),
175
+ ].join("");
176
+ }
177
+ return blockOfFields(shape.input, ctx);
178
+ }
179
+ }
180
+ };
181
+ const toTypescript = (shape) => {
182
+ const ctx = {
183
+ depth: 0,
184
+ padding: 0,
185
+ };
186
+ const out = toTs(shape, ctx);
187
+ return out;
188
+ };
189
+ exports.toTypescript = toTypescript;
190
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../../src/shape/transforms/typescript/transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { R } from "../common";
2
+ import { ValidationError } from "./error";
3
+ import { shapes } from "./shape";
4
+ export declare function validate(shape: shapes.Shape, input: unknown): Array<ValidationError>;
5
+ export declare function is<S extends shapes.Shape>(shape: S, input: unknown): input is shapes.InferShapeOut<S>;
6
+ export declare function parse<S extends shapes.Shape>(shape: S, input: unknown): R.Result<shapes.InferShapeOut<S>, ValidationError[]>;
7
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/shape/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,CAAC,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,OAAO,GACb,KAAK,CAAC,eAAe,CAAC,CAiTxB;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,EACvC,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAElC;AAkFD,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,EAC1C,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,OAAO,GACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAKtD"}
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validate = validate;
4
+ exports.is = is;
5
+ exports.parse = parse;
6
+ const common_1 = require("../common");
7
+ const object_1 = require("../common/object");
8
+ const number_1 = require("./number");
9
+ const shape_1 = require("./shape");
10
+ function validate(shape, input) {
11
+ const errUnexpectedType = (path, input, expected) => ({
12
+ path,
13
+ message: `Expected type of '${expected}' but got '${typeof input}'`,
14
+ });
15
+ const errUnexpectedLiteral = (path, input, expected) => ({
16
+ path,
17
+ message: `Expected literal ${expected} but got ${input}`,
18
+ });
19
+ const errNumberFormatMismatch = (path, input, expected) => ({
20
+ path,
21
+ message: `Expected number format ${expected} but got ${input}`,
22
+ });
23
+ const errBelowMin = (path, actual, min, kind) => ({
24
+ path,
25
+ message: `Expected ${kind} to be >= ${min} but got ${actual}`,
26
+ });
27
+ const errAboveMax = (path, actual, max, kind) => ({
28
+ path,
29
+ message: `Expected ${kind} to be <= ${max} but got ${actual}`,
30
+ });
31
+ const checkBounds = (anno, actual, path, kind) => {
32
+ if (anno.min !== undefined && actual < anno.min)
33
+ return [errBelowMin(path, actual, anno.min, kind)];
34
+ if (anno.max !== undefined && actual > anno.max)
35
+ return [errAboveMax(path, actual, anno.max, kind)];
36
+ return [];
37
+ };
38
+ const check = (shape, input, path) => {
39
+ switch (shape.type) {
40
+ case "unknown":
41
+ return [];
42
+ case "string": {
43
+ if (typeof input !== "string")
44
+ return [errUnexpectedType(path, input, shape.type)];
45
+ if (shape.literal && input !== shape.input)
46
+ return [errUnexpectedLiteral(path, input, `${shape.input}`)];
47
+ const boundsErrors = checkBounds(shape.anno, input.length, path, "string length");
48
+ if (boundsErrors.length > 0)
49
+ return boundsErrors;
50
+ if (shape.anno.pattern !== undefined) {
51
+ const re = shape.anno.pattern instanceof RegExp ?
52
+ shape.anno.pattern
53
+ : new RegExp(shape.anno.pattern);
54
+ if (!re.test(input))
55
+ return [
56
+ {
57
+ path,
58
+ message: `Expected string to match pattern ${re} but got '${input}'`,
59
+ },
60
+ ];
61
+ }
62
+ return [];
63
+ }
64
+ case "boolean": {
65
+ if (typeof input !== shape.type)
66
+ return [errUnexpectedType(path, input, shape.type)];
67
+ if (shape.literal && input !== shape.input)
68
+ return [errUnexpectedLiteral(path, input, `${shape.input}`)];
69
+ return [];
70
+ }
71
+ case "number": {
72
+ if (typeof input !== "number")
73
+ return [errUnexpectedType(path, input, shape.type)];
74
+ if (shape.literal && input !== shape.input)
75
+ return [errUnexpectedLiteral(path, input, `${shape.input}`)];
76
+ const inputTag = (0, number_1.inferNumberTag)(input);
77
+ if (!(0, number_1.numberTagCanBeCastedTo)(inputTag, shape.tag))
78
+ return [errNumberFormatMismatch(path, inputTag, shape.tag)];
79
+ const boundsErrors = checkBounds(shape.anno, input, path, "value");
80
+ if (boundsErrors.length > 0)
81
+ return boundsErrors;
82
+ return [];
83
+ }
84
+ case "array": {
85
+ if (!Array.isArray(input))
86
+ return [errUnexpectedType(path, input, shape.type)];
87
+ const boundsErrors = checkBounds(shape.anno, input.length, path, "array length");
88
+ if (boundsErrors.length > 0)
89
+ return boundsErrors;
90
+ const errors = input
91
+ .map((x, i) => check(shape.input, x, [...path, i]))
92
+ .flat();
93
+ if (errors.length > 0)
94
+ return errors;
95
+ return [];
96
+ }
97
+ case "binary": {
98
+ if (input instanceof Uint8Array)
99
+ return [];
100
+ if (Array.isArray(input)) {
101
+ const num = shape_1.shapes.uint8();
102
+ const errors = input
103
+ .map((x, i) => check(num, x, [...path, i]))
104
+ .flat();
105
+ if (errors.length > 0)
106
+ return errors;
107
+ return [];
108
+ }
109
+ return [errUnexpectedType(path, input, shape.type)];
110
+ }
111
+ case "date": {
112
+ if (!(input instanceof Date))
113
+ return [errUnexpectedType(path, input, shape.type)];
114
+ return [];
115
+ }
116
+ case "nil": {
117
+ if (input !== null)
118
+ return [errUnexpectedType(path, input, shape.type)];
119
+ return [];
120
+ }
121
+ case "undefined": {
122
+ if (typeof input !== "undefined")
123
+ return [errUnexpectedType(path, input, shape.type)];
124
+ return [];
125
+ }
126
+ case "vector": {
127
+ if (!Array.isArray(input))
128
+ return [errUnexpectedType(path, input, shape.type)];
129
+ if (input.length !== shape.input.dims)
130
+ return [
131
+ {
132
+ path,
133
+ message: `Expected a vector with dimensions ${shape.input.dims} but got an array of length ${input.length}`,
134
+ },
135
+ ];
136
+ const errors = input
137
+ .map((x, i) => check(shape.input.format, x, [...path, i]))
138
+ .flat();
139
+ if (errors.length > 0)
140
+ return errors;
141
+ return [];
142
+ }
143
+ case "tuple": {
144
+ if (!Array.isArray(input))
145
+ return [errUnexpectedType(path, input, shape.type)];
146
+ if (input.length !== shape.input.length)
147
+ return [
148
+ {
149
+ path,
150
+ message: `Expected a tuple of length ${shape.input.length} but got an array of length ${input.length}`,
151
+ },
152
+ ];
153
+ const errors = shape.input
154
+ .map((item, i) => check(item, input[i], [...path, i]))
155
+ .flat();
156
+ if (errors.length > 0)
157
+ return errors;
158
+ return [];
159
+ }
160
+ case "range": {
161
+ if (typeof input !== "object" || input === null)
162
+ return [errUnexpectedType(path, input, shape.type)];
163
+ const rec = input;
164
+ if (!("lower" in rec) ||
165
+ !("upper" in rec) ||
166
+ !("lowerInclusive" in rec) ||
167
+ !("upperInclusive" in rec))
168
+ return [
169
+ {
170
+ path,
171
+ message: "Expected range with keys 'lower', 'upper', 'lowerInclusive', 'upperInclusive'",
172
+ },
173
+ ];
174
+ if (typeof rec["lowerInclusive"] !== "boolean")
175
+ return [
176
+ {
177
+ path: [...path, "lowerInclusive"],
178
+ message: `Expected boolean but got '${typeof rec["lowerInclusive"]}'`,
179
+ },
180
+ ];
181
+ if (typeof rec["upperInclusive"] !== "boolean")
182
+ return [
183
+ {
184
+ path: [...path, "upperInclusive"],
185
+ message: `Expected boolean but got '${typeof rec["upperInclusive"]}'`,
186
+ },
187
+ ];
188
+ const errors = [];
189
+ if (rec["lower"] !== null) {
190
+ errors.push(...check(shape.input, rec["lower"], [...path, "lower"]));
191
+ }
192
+ if (rec["upper"] !== null) {
193
+ errors.push(...check(shape.input, rec["upper"], [...path, "upper"]));
194
+ }
195
+ return errors;
196
+ }
197
+ case "mapping": {
198
+ if (typeof input !== "object")
199
+ return [errUnexpectedType(path, input, shape.type)];
200
+ if (input === null)
201
+ return [errUnexpectedType(path, input, shape.type)];
202
+ for (const [k, valueShape] of Object.entries(shape.input)) {
203
+ if (!(k in input)) {
204
+ if (valueShape.anno.optional)
205
+ continue;
206
+ return [
207
+ { path: [...path, k], message: `Missing required key: '${k}'` },
208
+ ];
209
+ }
210
+ const actualValue = input[k];
211
+ const errors = check(valueShape, actualValue, [...path, k]);
212
+ if (errors.length > 0)
213
+ return errors;
214
+ }
215
+ return [];
216
+ }
217
+ case "record": {
218
+ if (typeof input !== "object")
219
+ return [errUnexpectedType(path, input, shape.type)];
220
+ if (input === null)
221
+ return [errUnexpectedType(path, input, shape.type)];
222
+ const inputRec = input;
223
+ const keys = Object.keys(inputRec);
224
+ const keyErrors = keys
225
+ .map((key) => check(shape.input[0], key, path))
226
+ .flat();
227
+ if (keyErrors.length > 0)
228
+ return keyErrors;
229
+ const valueErrors = Object.entries(inputRec)
230
+ .map(([k, v]) => check(shape.input[1], v, [...path, k]))
231
+ .flat();
232
+ if (valueErrors.length > 0)
233
+ return valueErrors;
234
+ return [];
235
+ }
236
+ case "union": {
237
+ const errors = [];
238
+ for (const t of shape.input) {
239
+ const errs = check(t, input, path);
240
+ if (errs.length <= 0)
241
+ return [];
242
+ errors.push(...errs);
243
+ }
244
+ return errors;
245
+ }
246
+ case "module": {
247
+ if (typeof input !== "object" || input === null)
248
+ return [errUnexpectedType(path, input, shape.type)];
249
+ for (const [k, tableShape] of Object.entries(shape.input)) {
250
+ if (!(k in input)) {
251
+ return [
252
+ {
253
+ path: [...path, k],
254
+ message: `Missing required table: '${k}'`,
255
+ },
256
+ ];
257
+ }
258
+ const actualValue = input[k];
259
+ const errors = check(tableShape, actualValue, [...path, k]);
260
+ if (errors.length > 0)
261
+ return errors;
262
+ }
263
+ return [];
264
+ }
265
+ }
266
+ };
267
+ return check(shape, input, []);
268
+ }
269
+ function is(shape, input) {
270
+ return validate(shape, input).length <= 0;
271
+ }
272
+ const autoCastFromString = (shape, input) => {
273
+ switch (shape.type) {
274
+ case "string":
275
+ return input;
276
+ case "number":
277
+ return (0, common_1.isNumeric)(input) ? Number(input) : input;
278
+ case "boolean": {
279
+ const low = input.toLowerCase().trim();
280
+ return ({
281
+ true: true,
282
+ false: false,
283
+ yes: true,
284
+ no: false,
285
+ on: true,
286
+ off: false,
287
+ "1": true,
288
+ "0": false,
289
+ }[low] ?? input);
290
+ }
291
+ case "record":
292
+ case "array":
293
+ case "mapping": {
294
+ const clean = input.trim();
295
+ try {
296
+ return JSON.parse(clean);
297
+ }
298
+ catch {
299
+ return input;
300
+ }
301
+ }
302
+ case "date": {
303
+ const clean = input.trim();
304
+ try {
305
+ const date = new Date(clean);
306
+ const time = date.getTime();
307
+ if (isNaN(time) || !isFinite(time))
308
+ return input;
309
+ return date;
310
+ }
311
+ catch {
312
+ return input;
313
+ }
314
+ }
315
+ default:
316
+ return input;
317
+ }
318
+ };
319
+ const autoCast = (shape, input) => {
320
+ if (typeof input === "string")
321
+ input = autoCastFromString(shape, input);
322
+ switch (shape.type) {
323
+ case "mapping": {
324
+ if ((0, common_1.isPlainObject)(input)) {
325
+ return (0, object_1.remapObjectValues)(input, ([k, v]) => {
326
+ if (typeof k !== "string")
327
+ return v;
328
+ const s = shape.input[k];
329
+ if (!s)
330
+ return v;
331
+ return autoCast(s, v);
332
+ });
333
+ }
334
+ return input;
335
+ }
336
+ case "record": {
337
+ if ((0, common_1.isPlainObject)(input)) {
338
+ return (0, object_1.remapObjectEntries)(input, ([k, v]) => {
339
+ const ks = shape.input[0];
340
+ const vs = shape.input[1];
341
+ const castedK = autoCast(ks, k);
342
+ const castedV = autoCast(vs, v);
343
+ if (typeof castedK !== "string")
344
+ return { [k]: v };
345
+ return { [castedK]: castedV };
346
+ });
347
+ }
348
+ return input;
349
+ }
350
+ }
351
+ return input;
352
+ };
353
+ function parse(shape, input) {
354
+ input = autoCast(shape, input);
355
+ const errors = validate(shape, input);
356
+ if (errors.length > 0)
357
+ return common_1.R.err(errors);
358
+ return common_1.R.ok(input);
359
+ }
360
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/shape/validate.ts"],"names":[],"mappings":";;AAOA,4BAoTC;AAED,gBAKC;AAkFD,sBAQC;AA5ZD,sCAAwD;AACxD,6CAAyE;AAEzE,qCAAkE;AAClE,mCAAiC;AAGjC,SAAgB,QAAQ,CACtB,KAAmB,EACnB,KAAc;IAEd,MAAM,iBAAiB,GAAG,CACxB,IAAmB,EACnB,KAAc,EACd,QAAgB,EACC,EAAE,CAAC,CAAC;QACrB,IAAI;QACJ,OAAO,EAAE,qBAAqB,QAAQ,cAAc,OAAO,KAAK,GAAG;KACpE,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,CAC3B,IAAmB,EACnB,KAAc,EACd,QAAgB,EACC,EAAE,CAAC,CAAC;QACrB,IAAI;QACJ,OAAO,EAAE,oBAAoB,QAAQ,YAAY,KAAK,EAAE;KACzD,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,CAC9B,IAAmB,EACnB,KAAgB,EAChB,QAAmB,EACF,EAAE,CAAC,CAAC;QACrB,IAAI;QACJ,OAAO,EAAE,0BAA0B,QAAQ,YAAY,KAAK,EAAE;KAC/D,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAClB,IAAmB,EACnB,MAAc,EACd,GAAW,EACX,IAAY,EACK,EAAE,CAAC,CAAC;QACrB,IAAI;QACJ,OAAO,EAAE,YAAY,IAAI,aAAa,GAAG,YAAY,MAAM,EAAE;KAC9D,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAClB,IAAmB,EACnB,MAAc,EACd,GAAW,EACX,IAAY,EACK,EAAE,CAAC,CAAC;QACrB,IAAI;QACJ,OAAO,EAAE,YAAY,IAAI,aAAa,GAAG,YAAY,MAAM,EAAE;KAC9D,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAClB,IAAoC,EACpC,MAAc,EACd,IAAmB,EACnB,IAAY,EACO,EAAE;QACrB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG;YAC7C,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG;YAC7C,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CACZ,KAAmB,EACnB,KAAc,EACd,IAAmB,EACA,EAAE;QACrB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,OAAO,EAAE,CAAC;YACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAC3B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK;oBACxC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,IAAI,EACJ,eAAe,CAChB,CAAC;gBACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,YAAY,CAAC;gBACjD,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACrC,MAAM,EAAE,GACN,KAAK,CAAC,IAAI,CAAC,OAAO,YAAY,MAAM,CAAC,CAAC;wBACpC,KAAK,CAAC,IAAI,CAAC,OAAO;wBACpB,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACnC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;wBACjB,OAAO;4BACL;gCACE,IAAI;gCACJ,OAAO,EAAE,oCAAoC,EAAE,aAAa,KAAK,GAAG;6BACrE;yBACF,CAAC;gBACN,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,OAAO,KAAK,KAAK,KAAK,CAAC,IAAI;oBAC7B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK;oBACxC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAC3B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK;oBACxC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAA,+BAAsB,EAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;oBAC9C,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9D,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,YAAY,CAAC;gBACjD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACvB,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,IAAI,EACJ,cAAc,CACf,CAAC;gBACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,YAAY,CAAC;gBACjD,MAAM,MAAM,GAAG,KAAK;qBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;qBAClD,IAAI,EAAE,CAAC;gBACV,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACrC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,KAAK,YAAY,UAAU;oBAAE,OAAO,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,cAAM,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,KAAK;yBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;yBAC1C,IAAI,EAAE,CAAC;oBACV,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,OAAO,MAAM,CAAC;oBACrC,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC;oBAC1B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,IAAI,KAAK,KAAK,IAAI;oBAChB,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,OAAO,KAAK,KAAK,WAAW;oBAC9B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACvB,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI;oBACnC,OAAO;wBACL;4BACE,IAAI;4BACJ,OAAO,EAAE,qCAAqC,KAAK,CAAC,KAAK,CAAC,IAAI,+BAA+B,KAAK,CAAC,MAAM,EAAE;yBAC5G;qBACF,CAAC;gBACJ,MAAM,MAAM,GAAG,KAAK;qBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;qBACzD,IAAI,EAAE,CAAC;gBACV,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACrC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACvB,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM;oBACrC,OAAO;wBACL;4BACE,IAAI;4BACJ,OAAO,EAAE,8BAA8B,KAAK,CAAC,KAAK,CAAC,MAAM,+BAA+B,KAAK,CAAC,MAAM,EAAE;yBACvG;qBACF,CAAC;gBACJ,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK;qBACvB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;qBACrD,IAAI,EAAE,CAAC;gBACV,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACrC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;oBAC7C,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,MAAM,GAAG,GAAG,KAAgC,CAAC;gBAC7C,IACE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;oBACjB,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;oBACjB,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC;oBAC1B,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC;oBAE1B,OAAO;wBACL;4BACE,IAAI;4BACJ,OAAO,EACL,+EAA+E;yBAClF;qBACF,CAAC;gBACJ,IAAI,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS;oBAC5C,OAAO;wBACL;4BACE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;4BACjC,OAAO,EAAE,6BAA6B,OAAO,GAAG,CAAC,gBAAgB,CAAC,GAAG;yBACtE;qBACF,CAAC;gBACJ,IAAI,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS;oBAC5C,OAAO;wBACL;4BACE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;4BACjC,OAAO,EAAE,6BAA6B,OAAO,GAAG,CAAC,gBAAgB,CAAC,GAAG;yBACtE;qBACF,CAAC;gBACJ,MAAM,MAAM,GAAsB,EAAE,CAAC;gBACrC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CACxD,CAAC;gBACJ,CAAC;gBACD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CACxD,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAC3B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,KAAK,IAAI;oBAChB,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEtD,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1D,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBAClB,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ;4BAAE,SAAS;wBACvC,OAAO;4BACL,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,0BAA0B,CAAC,GAAG,EAAE;yBAChE,CAAC;oBACJ,CAAC;oBACD,MAAM,WAAW,GAAI,KAAsC,CAAC,CAAC,CAAC,CAAC;oBAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,OAAO,MAAM,CAAC;gBACvC,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAC3B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,KAAK,IAAI;oBAChB,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEtD,MAAM,QAAQ,GAAG,KAAqC,CAAC;gBAEvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,IAAI;qBACnB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;qBAC9C,IAAI,EAAE,CAAC;gBACV,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,SAAS,CAAC;gBAE3C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;qBACzC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;qBACvD,IAAI,EAAE,CAAC;gBACV,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,WAAW,CAAC;gBAE/C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAsB,EAAE,CAAC;gBACrC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBACnC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;wBAAE,OAAO,EAAE,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;oBAC7C,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1D,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBAClB,OAAO;4BACL;gCACE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;gCAClB,OAAO,EAAE,4BAA4B,CAAC,GAAG;6BAC1C;yBACF,CAAC;oBACJ,CAAC;oBACD,MAAM,WAAW,GAAI,KAAsC,CAAC,CAAC,CAAC,CAAC;oBAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,OAAO,MAAM,CAAC;gBACvC,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,EAAE,CAChB,KAAQ,EACR,KAAc;IAEd,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAmB,EAAE,KAAa,EAAW,EAAE;IACzE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,IAAA,kBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO,CACL;gBACE,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,IAAI;gBACT,EAAE,EAAE,KAAK;gBACT,EAAE,EAAE,IAAI;gBACR,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,KAAK;aACX,CAAC,GAAG,CAAC,IAAI,KAAK,CAChB,CAAC;QACJ,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,KAAc,EAAW,EAAE;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAExE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAA,0BAAiB,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;oBACzC,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;oBACpC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC;wBAAE,OAAO,CAAC,CAAC;oBACjB,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAA,2BAAkB,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAChC,IAAI,OAAO,OAAO,KAAK,QAAQ;wBAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACnD,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,SAAgB,KAAK,CACnB,KAAQ,EACR,KAAc;IAEd,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,UAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,UAAC,CAAC,EAAE,CAAC,KAAgC,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const range: (n: number) => Array<number>;
2
+ export declare const uniqueBy: <T, Fn extends (x: T) => any>(arr: T[], fn: Fn) => T[];
3
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/common/array.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,KAAG,KAAK,CAAC,MAAM,CACQ,CAAC;AAEvD,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,EAClD,KAAK,CAAC,EAAE,EACR,IAAI,EAAE,KACL,CAAC,EAQH,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const range = (n) => n < 1 ? [] : Array.from(Array(Math.trunc(n)).keys());
2
+ export const uniqueBy = (arr, fn) => {
3
+ const seen = new Set();
4
+ return arr.filter((x) => {
5
+ const k = fn(x);
6
+ if (seen.has(k))
7
+ return false;
8
+ seen.add(k);
9
+ return true;
10
+ });
11
+ };
12
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/common/array.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAiB,EAAE,CAChD,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,GAAQ,EACR,EAAM,EACD,EAAE;IACP,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./is";
2
+ export * from "./phantom";
3
+ export * from "./result";
4
+ export * from "./array";
5
+ export * from "./string";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./is";
2
+ export * from "./phantom";
3
+ export * from "./result";
4
+ export * from "./array";
5
+ export * from "./string";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}