@typesql/core 0.7.5 → 0.8.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 (632) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +10 -12
  3. package/dist/adapter.d.ts +0 -4
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +0 -4
  6. package/dist/adapter.js.map +1 -1
  7. package/dist/cache/dialect.d.ts +17 -0
  8. package/dist/cache/dialect.d.ts.map +1 -0
  9. package/dist/cache/dialect.js +2 -0
  10. package/dist/cache/dialect.js.map +1 -0
  11. package/dist/cache/dialects.d.ts +4 -0
  12. package/dist/cache/dialects.d.ts.map +1 -0
  13. package/dist/cache/dialects.js +4 -0
  14. package/dist/cache/dialects.js.map +1 -0
  15. package/dist/cache/discover.d.ts +2 -13
  16. package/dist/cache/discover.d.ts.map +1 -1
  17. package/dist/cache/discover.js +13 -42
  18. package/dist/cache/discover.js.map +1 -1
  19. package/dist/cache/evaluate.d.ts +4 -9
  20. package/dist/cache/evaluate.d.ts.map +1 -1
  21. package/dist/cache/evaluate.js +7 -17
  22. package/dist/cache/evaluate.js.map +1 -1
  23. package/dist/cache/format.d.ts +5 -31
  24. package/dist/cache/format.d.ts.map +1 -1
  25. package/dist/cache/format.js +11 -23
  26. package/dist/cache/format.js.map +1 -1
  27. package/dist/cache/job.d.ts +2 -20
  28. package/dist/cache/job.d.ts.map +1 -1
  29. package/dist/cache/job.js +22 -74
  30. package/dist/cache/job.js.map +1 -1
  31. package/dist/cache/mapper.d.ts +3 -7
  32. package/dist/cache/mapper.d.ts.map +1 -1
  33. package/dist/cache/mapper.js +23 -26
  34. package/dist/cache/mapper.js.map +1 -1
  35. package/dist/cache/print.d.ts +1 -30
  36. package/dist/cache/print.d.ts.map +1 -1
  37. package/dist/cache/print.js +1 -36
  38. package/dist/cache/print.js.map +1 -1
  39. package/dist/cache/rpc.d.ts +0 -7
  40. package/dist/cache/rpc.d.ts.map +1 -1
  41. package/dist/cache/rpc.js +0 -8
  42. package/dist/cache/rpc.js.map +1 -1
  43. package/dist/cache/scan.d.ts +0 -8
  44. package/dist/cache/scan.d.ts.map +1 -1
  45. package/dist/cache/scan.js +0 -3
  46. package/dist/cache/scan.js.map +1 -1
  47. package/dist/cache/store.d.ts +1 -10
  48. package/dist/cache/store.d.ts.map +1 -1
  49. package/dist/cache/store.js +9 -30
  50. package/dist/cache/store.js.map +1 -1
  51. package/dist/create-sql.d.ts +12 -358
  52. package/dist/create-sql.d.ts.map +1 -1
  53. package/dist/create-sql.js +5 -58
  54. package/dist/create-sql.js.map +1 -1
  55. package/dist/dialect.d.ts +31 -0
  56. package/dist/dialect.d.ts.map +1 -0
  57. package/dist/dialect.js +2 -0
  58. package/dist/dialect.js.map +1 -0
  59. package/dist/errors.d.ts +14 -0
  60. package/dist/errors.d.ts.map +1 -0
  61. package/dist/errors.js.map +1 -0
  62. package/dist/index.d.ts +8 -11
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +3 -2
  65. package/dist/index.js.map +1 -1
  66. package/dist/memo.d.ts +2 -0
  67. package/dist/memo.d.ts.map +1 -0
  68. package/dist/memo.js +14 -0
  69. package/dist/memo.js.map +1 -0
  70. package/dist/migrations.d.ts +8 -53
  71. package/dist/migrations.d.ts.map +1 -1
  72. package/dist/migrations.js +1 -36
  73. package/dist/migrations.js.map +1 -1
  74. package/dist/postgres/cache-dialect.d.ts +3 -0
  75. package/dist/postgres/cache-dialect.d.ts.map +1 -0
  76. package/dist/postgres/cache-dialect.js +26 -0
  77. package/dist/postgres/cache-dialect.js.map +1 -0
  78. package/dist/postgres/dialect.d.ts +32 -0
  79. package/dist/postgres/dialect.d.ts.map +1 -0
  80. package/dist/postgres/dialect.js +4 -0
  81. package/dist/postgres/dialect.js.map +1 -0
  82. package/dist/{engine → postgres/engine}/ast.d.ts +5 -160
  83. package/dist/postgres/engine/ast.d.ts.map +1 -0
  84. package/dist/postgres/engine/ast.js +2 -0
  85. package/dist/postgres/engine/ast.js.map +1 -0
  86. package/dist/{engine → postgres/engine}/binder/clauses.d.ts +1 -64
  87. package/dist/postgres/engine/binder/clauses.d.ts.map +1 -0
  88. package/dist/postgres/engine/binder/clauses.js.map +1 -0
  89. package/dist/{engine → postgres/engine}/binder/from.d.ts +1 -75
  90. package/dist/postgres/engine/binder/from.d.ts.map +1 -0
  91. package/dist/postgres/engine/binder/from.js.map +1 -0
  92. package/dist/{engine → postgres/engine}/binder/narrow.d.ts +0 -29
  93. package/dist/postgres/engine/binder/narrow.d.ts.map +1 -0
  94. package/dist/postgres/engine/binder/narrow.js.map +1 -0
  95. package/dist/{engine → postgres/engine}/binder/resolve.d.ts +2 -31
  96. package/dist/postgres/engine/binder/resolve.d.ts.map +1 -0
  97. package/dist/postgres/engine/binder/resolve.js.map +1 -0
  98. package/dist/postgres/engine/cache.d.ts +156 -0
  99. package/dist/postgres/engine/cache.d.ts.map +1 -0
  100. package/dist/{engine → postgres/engine}/cache.js.map +1 -1
  101. package/dist/postgres/engine/carried.d.ts +39 -0
  102. package/dist/postgres/engine/carried.d.ts.map +1 -0
  103. package/dist/postgres/engine/carried.js +2 -0
  104. package/dist/postgres/engine/carried.js.map +1 -0
  105. package/dist/postgres/engine/ddl/alter-table.d.ts +85 -0
  106. package/dist/postgres/engine/ddl/alter-table.d.ts.map +1 -0
  107. package/dist/postgres/engine/ddl/alter-table.js +2 -0
  108. package/dist/postgres/engine/ddl/alter-table.js.map +1 -0
  109. package/dist/postgres/engine/ddl/apply.d.ts +90 -0
  110. package/dist/postgres/engine/ddl/apply.d.ts.map +1 -0
  111. package/dist/postgres/engine/ddl/apply.js.map +1 -0
  112. package/dist/postgres/engine/ddl/column.d.ts +38 -0
  113. package/dist/postgres/engine/ddl/column.d.ts.map +1 -0
  114. package/dist/postgres/engine/ddl/column.js.map +1 -0
  115. package/dist/postgres/engine/ddl/create-table.d.ts +61 -0
  116. package/dist/postgres/engine/ddl/create-table.d.ts.map +1 -0
  117. package/dist/postgres/engine/ddl/create-table.js +2 -0
  118. package/dist/postgres/engine/ddl/create-table.js.map +1 -0
  119. package/dist/postgres/engine/ddl/object.d.ts +28 -0
  120. package/dist/postgres/engine/ddl/object.d.ts.map +1 -0
  121. package/dist/postgres/engine/ddl/object.js +2 -0
  122. package/dist/postgres/engine/ddl/object.js.map +1 -0
  123. package/dist/postgres/engine/ddl/query.d.ts +32 -0
  124. package/dist/postgres/engine/ddl/query.d.ts.map +1 -0
  125. package/dist/postgres/engine/ddl/query.js +2 -0
  126. package/dist/postgres/engine/ddl/query.js.map +1 -0
  127. package/dist/postgres/engine/ddl/registry.d.ts +66 -0
  128. package/dist/postgres/engine/ddl/registry.d.ts.map +1 -0
  129. package/dist/postgres/engine/ddl/registry.js +2 -0
  130. package/dist/postgres/engine/ddl/registry.js.map +1 -0
  131. package/dist/postgres/engine/ddl/relation.d.ts +35 -0
  132. package/dist/postgres/engine/ddl/relation.d.ts.map +1 -0
  133. package/dist/postgres/engine/ddl/relation.js +2 -0
  134. package/dist/postgres/engine/ddl/relation.js.map +1 -0
  135. package/dist/postgres/engine/ddl/schema.d.ts +56 -0
  136. package/dist/postgres/engine/ddl/schema.d.ts.map +1 -0
  137. package/dist/postgres/engine/ddl/schema.js +2 -0
  138. package/dist/postgres/engine/ddl/schema.js.map +1 -0
  139. package/dist/postgres/engine/ddl/script.d.ts +25 -0
  140. package/dist/postgres/engine/ddl/script.d.ts.map +1 -0
  141. package/dist/postgres/engine/ddl/script.js +2 -0
  142. package/dist/postgres/engine/ddl/script.js.map +1 -0
  143. package/dist/postgres/engine/ddl/view.d.ts +12 -0
  144. package/dist/postgres/engine/ddl/view.d.ts.map +1 -0
  145. package/dist/postgres/engine/ddl/view.js +2 -0
  146. package/dist/postgres/engine/ddl/view.js.map +1 -0
  147. package/dist/postgres/engine/diagnostics.d.ts +29 -0
  148. package/dist/postgres/engine/diagnostics.d.ts.map +1 -0
  149. package/dist/postgres/engine/diagnostics.js +2 -0
  150. package/dist/postgres/engine/diagnostics.js.map +1 -0
  151. package/dist/{engine → postgres/engine}/index.d.ts +8 -16
  152. package/dist/postgres/engine/index.d.ts.map +1 -0
  153. package/dist/{schema → postgres/engine}/index.js.map +1 -1
  154. package/dist/postgres/engine/infer.d.ts +93 -0
  155. package/dist/postgres/engine/infer.d.ts.map +1 -0
  156. package/dist/{engine → postgres/engine}/infer.js.map +1 -1
  157. package/dist/{engine → postgres/engine}/json.d.ts +3 -83
  158. package/dist/postgres/engine/json.d.ts.map +1 -0
  159. package/dist/{engine → postgres/engine}/json.js.map +1 -1
  160. package/dist/{engine → postgres/engine}/lexer/chars.d.ts +0 -7
  161. package/dist/postgres/engine/lexer/chars.d.ts.map +1 -0
  162. package/dist/postgres/engine/lexer/chars.js.map +1 -0
  163. package/dist/{engine → postgres/engine}/lexer/lex.d.ts +2 -90
  164. package/dist/postgres/engine/lexer/lex.d.ts.map +1 -0
  165. package/dist/postgres/engine/lexer/lex.js.map +1 -0
  166. package/dist/postgres/engine/lexer/tokens.d.ts +30 -0
  167. package/dist/postgres/engine/lexer/tokens.d.ts.map +1 -0
  168. package/dist/postgres/engine/lexer/tokens.js.map +1 -0
  169. package/dist/{engine → postgres/engine}/lexer/unicode.d.ts +0 -46
  170. package/dist/postgres/engine/lexer/unicode.d.ts.map +1 -0
  171. package/dist/postgres/engine/lexer/unicode.js.map +1 -0
  172. package/dist/{engine → postgres/engine}/parser/ddl.d.ts +0 -149
  173. package/dist/postgres/engine/parser/ddl.d.ts.map +1 -0
  174. package/dist/postgres/engine/parser/ddl.js.map +1 -0
  175. package/dist/{engine → postgres/engine}/parser/dml.d.ts +0 -54
  176. package/dist/postgres/engine/parser/dml.d.ts.map +1 -0
  177. package/dist/postgres/engine/parser/dml.js.map +1 -0
  178. package/dist/{engine → postgres/engine}/parser/expr.d.ts +0 -157
  179. package/dist/postgres/engine/parser/expr.d.ts.map +1 -0
  180. package/dist/postgres/engine/parser/expr.js.map +1 -0
  181. package/dist/{engine → postgres/engine}/parser/fast.d.ts +0 -6
  182. package/dist/postgres/engine/parser/fast.d.ts.map +1 -0
  183. package/dist/postgres/engine/parser/fast.js.map +1 -0
  184. package/dist/{engine → postgres/engine}/parser/json.d.ts +0 -72
  185. package/dist/postgres/engine/parser/json.d.ts.map +1 -0
  186. package/dist/postgres/engine/parser/json.js.map +1 -0
  187. package/dist/{engine → postgres/engine}/parser/keywords.d.ts +0 -15
  188. package/dist/postgres/engine/parser/keywords.d.ts.map +1 -0
  189. package/dist/postgres/engine/parser/keywords.js +2 -0
  190. package/dist/postgres/engine/parser/keywords.js.map +1 -0
  191. package/dist/{engine → postgres/engine}/parser/merge.d.ts +0 -22
  192. package/dist/postgres/engine/parser/merge.d.ts.map +1 -0
  193. package/dist/postgres/engine/parser/merge.js.map +1 -0
  194. package/dist/{engine → postgres/engine}/parser/select.d.ts +0 -138
  195. package/dist/postgres/engine/parser/select.d.ts.map +1 -0
  196. package/dist/postgres/engine/parser/select.js.map +1 -0
  197. package/dist/{engine → postgres/engine}/parser/stmt.d.ts +0 -15
  198. package/dist/postgres/engine/parser/stmt.d.ts.map +1 -0
  199. package/dist/postgres/engine/parser/stmt.js.map +1 -0
  200. package/dist/{engine → postgres/engine}/parser/typename.d.ts +0 -37
  201. package/dist/postgres/engine/parser/typename.d.ts.map +1 -0
  202. package/dist/postgres/engine/parser/typename.js.map +1 -0
  203. package/dist/{engine → postgres/engine}/parser/util.d.ts +2 -42
  204. package/dist/postgres/engine/parser/util.d.ts.map +1 -0
  205. package/dist/postgres/engine/parser/util.js.map +1 -0
  206. package/dist/{engine → postgres/engine}/parser/utility.d.ts +1 -25
  207. package/dist/postgres/engine/parser/utility.d.ts.map +1 -0
  208. package/dist/postgres/engine/parser/utility.js.map +1 -0
  209. package/dist/{engine → postgres/engine}/parser/xml.d.ts +0 -42
  210. package/dist/postgres/engine/parser/xml.d.ts.map +1 -0
  211. package/dist/postgres/engine/parser/xml.js.map +1 -0
  212. package/dist/{engine → postgres/engine}/project/dml.d.ts +2 -134
  213. package/dist/postgres/engine/project/dml.d.ts.map +1 -0
  214. package/dist/postgres/engine/project/dml.js.map +1 -0
  215. package/dist/{engine → postgres/engine}/project/merge.d.ts +2 -35
  216. package/dist/postgres/engine/project/merge.d.ts.map +1 -0
  217. package/dist/postgres/engine/project/merge.js.map +1 -0
  218. package/dist/{engine → postgres/engine}/project/naming.d.ts +0 -28
  219. package/dist/postgres/engine/project/naming.d.ts.map +1 -0
  220. package/dist/postgres/engine/project/naming.js.map +1 -0
  221. package/dist/{engine → postgres/engine}/project/select.d.ts +1 -86
  222. package/dist/postgres/engine/project/select.d.ts.map +1 -0
  223. package/dist/postgres/engine/project/select.js.map +1 -0
  224. package/dist/{engine → postgres/engine}/project/stmt.d.ts +1 -8
  225. package/dist/postgres/engine/project/stmt.d.ts.map +1 -0
  226. package/dist/postgres/engine/project/stmt.js.map +1 -0
  227. package/dist/postgres/engine/shape.d.ts +22 -0
  228. package/dist/postgres/engine/shape.d.ts.map +1 -0
  229. package/dist/{engine → postgres/engine}/shape.js.map +1 -1
  230. package/dist/{engine → postgres/engine}/suggest.d.ts +0 -19
  231. package/dist/postgres/engine/suggest.d.ts.map +1 -0
  232. package/dist/{engine → postgres/engine}/suggest.js.map +1 -1
  233. package/dist/{engine → postgres/engine}/typer/catalog.d.ts +1 -126
  234. package/dist/postgres/engine/typer/catalog.d.ts.map +1 -0
  235. package/dist/postgres/engine/typer/catalog.js.map +1 -0
  236. package/dist/{engine → postgres/engine}/typer/operators.d.ts +0 -107
  237. package/dist/postgres/engine/typer/operators.d.ts.map +1 -0
  238. package/dist/postgres/engine/typer/operators.js.map +1 -0
  239. package/dist/{engine → postgres/engine}/typer/params.d.ts +0 -78
  240. package/dist/postgres/engine/typer/params.d.ts.map +1 -0
  241. package/dist/postgres/engine/typer/params.js.map +1 -0
  242. package/dist/{engine → postgres/engine}/typer/pg-functions.d.ts +0 -9
  243. package/dist/postgres/engine/typer/pg-functions.d.ts.map +1 -0
  244. package/dist/postgres/engine/typer/pg-functions.js.map +1 -0
  245. package/dist/{engine → postgres/engine}/typer/sqljson.d.ts +1 -44
  246. package/dist/postgres/engine/typer/sqljson.d.ts.map +1 -0
  247. package/dist/postgres/engine/typer/sqljson.js.map +1 -0
  248. package/dist/{engine → postgres/engine}/typer/typeof.d.ts +2 -108
  249. package/dist/postgres/engine/typer/typeof.d.ts.map +1 -0
  250. package/dist/postgres/engine/typer/typeof.js.map +1 -0
  251. package/dist/{engine → postgres/engine}/typer/xml.d.ts +1 -30
  252. package/dist/postgres/engine/typer/xml.d.ts.map +1 -0
  253. package/dist/postgres/engine/typer/xml.js.map +1 -0
  254. package/dist/{engine → postgres/engine}/types.d.ts +0 -36
  255. package/dist/postgres/engine/types.d.ts.map +1 -0
  256. package/dist/postgres/engine/types.js +2 -0
  257. package/dist/postgres/engine/types.js.map +1 -0
  258. package/dist/postgres/engine/write.d.ts +36 -0
  259. package/dist/postgres/engine/write.d.ts.map +1 -0
  260. package/dist/postgres/engine/write.js.map +1 -0
  261. package/dist/postgres/index.d.ts +9 -0
  262. package/dist/postgres/index.d.ts.map +1 -0
  263. package/dist/postgres/index.js +3 -0
  264. package/dist/postgres/index.js.map +1 -0
  265. package/dist/postgres/migrations.d.ts +8 -0
  266. package/dist/postgres/migrations.d.ts.map +1 -0
  267. package/dist/postgres/migrations.js +5 -0
  268. package/dist/postgres/migrations.js.map +1 -0
  269. package/dist/postgres/schema/column.d.ts +10 -0
  270. package/dist/postgres/schema/column.d.ts.map +1 -0
  271. package/dist/postgres/schema/column.js +2 -0
  272. package/dist/{schema → postgres/schema}/column.js.map +1 -1
  273. package/dist/postgres/schema/index.d.ts +6 -0
  274. package/dist/postgres/schema/index.d.ts.map +1 -0
  275. package/dist/{type-map → postgres/schema}/index.js.map +1 -1
  276. package/dist/{schema → postgres/schema}/normalize.d.ts +0 -9
  277. package/dist/postgres/schema/normalize.d.ts.map +1 -0
  278. package/dist/postgres/schema/normalize.js.map +1 -0
  279. package/dist/{schema → postgres/schema}/pg-catalog.d.ts +1 -70
  280. package/dist/postgres/schema/pg-catalog.d.ts.map +1 -0
  281. package/dist/postgres/schema/pg-catalog.js.map +1 -0
  282. package/dist/postgres/schema/pg-types.d.ts +8 -0
  283. package/dist/postgres/schema/pg-types.d.ts.map +1 -0
  284. package/dist/postgres/schema/pg-types.js.map +1 -0
  285. package/dist/postgres/sql/call.d.ts +78 -0
  286. package/dist/postgres/sql/call.d.ts.map +1 -0
  287. package/dist/postgres/sql/call.js +2 -0
  288. package/dist/postgres/sql/call.js.map +1 -0
  289. package/dist/postgres/sql/types.d.ts +38 -0
  290. package/dist/postgres/sql/types.d.ts.map +1 -0
  291. package/dist/postgres/sql/types.js +2 -0
  292. package/dist/{engine → postgres/sql}/types.js.map +1 -1
  293. package/dist/{type-map → postgres/type-map}/index.d.ts +1 -40
  294. package/dist/postgres/type-map/index.d.ts.map +1 -0
  295. package/dist/postgres/type-map/index.js +2 -0
  296. package/dist/{engine → postgres/type-map}/index.js.map +1 -1
  297. package/dist/query.d.ts +0 -47
  298. package/dist/query.d.ts.map +1 -1
  299. package/dist/query.js +0 -23
  300. package/dist/query.js.map +1 -1
  301. package/dist/row-keys.d.ts +0 -22
  302. package/dist/row-keys.d.ts.map +1 -1
  303. package/dist/row-keys.js +1 -9
  304. package/dist/row-keys.js.map +1 -1
  305. package/dist/runtime/build.d.ts +6 -0
  306. package/dist/runtime/build.d.ts.map +1 -0
  307. package/dist/runtime/build.js +55 -0
  308. package/dist/runtime/build.js.map +1 -0
  309. package/dist/runtime/inline.d.ts +1 -14
  310. package/dist/runtime/inline.d.ts.map +1 -1
  311. package/dist/runtime/inline.js +0 -29
  312. package/dist/runtime/inline.js.map +1 -1
  313. package/dist/runtime/json.d.ts +1 -13
  314. package/dist/runtime/json.d.ts.map +1 -1
  315. package/dist/runtime/json.js +0 -12
  316. package/dist/runtime/json.js.map +1 -1
  317. package/dist/runtime/splice.d.ts +0 -32
  318. package/dist/runtime/splice.d.ts.map +1 -1
  319. package/dist/runtime/splice.js +1 -56
  320. package/dist/runtime/splice.js.map +1 -1
  321. package/dist/runtime/write.d.ts +0 -6
  322. package/dist/runtime/write.d.ts.map +1 -1
  323. package/dist/runtime/write.js +0 -11
  324. package/dist/runtime/write.js.map +1 -1
  325. package/dist/schema.d.ts +49 -0
  326. package/dist/schema.d.ts.map +1 -0
  327. package/dist/schema.js +2 -0
  328. package/dist/schema.js.map +1 -0
  329. package/dist/sql/fragment.d.ts +74 -0
  330. package/dist/sql/fragment.d.ts.map +1 -0
  331. package/dist/sql/fragment.js +2 -0
  332. package/dist/sql/fragment.js.map +1 -0
  333. package/dist/sql/inline.d.ts +60 -0
  334. package/dist/sql/inline.d.ts.map +1 -0
  335. package/dist/{engine → sql}/inline.js.map +1 -1
  336. package/dist/{engine → sql}/named.d.ts +1 -32
  337. package/dist/sql/named.d.ts.map +1 -0
  338. package/dist/{engine → sql}/named.js.map +1 -1
  339. package/dist/{engine/lexer → sql}/next.d.ts +0 -12
  340. package/dist/sql/next.d.ts.map +1 -0
  341. package/dist/{engine/lexer → sql}/next.js.map +1 -1
  342. package/dist/sql/slots.d.ts +22 -0
  343. package/dist/sql/slots.d.ts.map +1 -0
  344. package/dist/sql/slots.js +2 -0
  345. package/dist/sql/slots.js.map +1 -0
  346. package/dist/{engine → sql}/splice.d.ts +1 -32
  347. package/dist/sql/splice.d.ts.map +1 -0
  348. package/dist/{engine → sql}/splice.js.map +1 -1
  349. package/dist/sql/text.d.ts +15 -0
  350. package/dist/sql/text.d.ts.map +1 -0
  351. package/dist/sql/text.js +2 -0
  352. package/dist/sql/text.js.map +1 -0
  353. package/dist/sql/write.d.ts +28 -0
  354. package/dist/sql/write.d.ts.map +1 -0
  355. package/dist/sql/write.js +2 -0
  356. package/dist/{engine → sql}/write.js.map +1 -1
  357. package/dist/transaction.d.ts +4 -31
  358. package/dist/transaction.d.ts.map +1 -1
  359. package/dist/transaction.js +4 -19
  360. package/dist/transaction.js.map +1 -1
  361. package/package.json +9 -6
  362. package/src/adapter.ts +0 -5
  363. package/src/cache/dialect.ts +12 -0
  364. package/src/cache/dialects.ts +7 -0
  365. package/src/cache/discover.ts +15 -49
  366. package/src/cache/evaluate.ts +9 -17
  367. package/src/cache/format.ts +17 -41
  368. package/src/cache/job.ts +33 -78
  369. package/src/cache/mapper.ts +25 -36
  370. package/src/cache/print.ts +2 -39
  371. package/src/cache/rpc.ts +0 -9
  372. package/src/cache/scan.ts +0 -10
  373. package/src/cache/store.ts +13 -31
  374. package/src/create-sql.ts +25 -829
  375. package/src/dialect.ts +46 -0
  376. package/src/errors.ts +14 -0
  377. package/src/index.ts +32 -24
  378. package/src/memo.ts +15 -0
  379. package/src/migrations.ts +12 -72
  380. package/src/postgres/cache-dialect.ts +28 -0
  381. package/src/postgres/dialect.ts +47 -0
  382. package/src/{engine → postgres/engine}/ast.ts +0 -163
  383. package/src/{engine → postgres/engine}/binder/clauses.ts +3 -75
  384. package/src/{engine → postgres/engine}/binder/from.ts +1 -84
  385. package/src/{engine → postgres/engine}/binder/narrow.ts +0 -31
  386. package/src/{engine → postgres/engine}/binder/resolve.ts +3 -35
  387. package/src/postgres/engine/cache.ts +297 -0
  388. package/src/postgres/engine/carried.ts +104 -0
  389. package/src/postgres/engine/ddl/alter-table.ts +252 -0
  390. package/src/postgres/engine/ddl/apply.ts +149 -0
  391. package/src/postgres/engine/ddl/column.ts +71 -0
  392. package/src/postgres/engine/ddl/create-table.ts +249 -0
  393. package/src/postgres/engine/ddl/object.ts +47 -0
  394. package/src/postgres/engine/ddl/query.ts +67 -0
  395. package/src/postgres/engine/ddl/registry.ts +182 -0
  396. package/src/postgres/engine/ddl/relation.ts +139 -0
  397. package/src/postgres/engine/ddl/schema.ts +125 -0
  398. package/src/postgres/engine/ddl/script.ts +89 -0
  399. package/src/postgres/engine/ddl/view.ts +71 -0
  400. package/src/postgres/engine/diagnostics.ts +124 -0
  401. package/src/{engine → postgres/engine}/index.ts +26 -42
  402. package/src/postgres/engine/infer.ts +210 -0
  403. package/src/{engine → postgres/engine}/json.ts +4 -87
  404. package/src/{engine → postgres/engine}/lexer/chars.ts +0 -7
  405. package/src/{engine → postgres/engine}/lexer/lex.ts +8 -96
  406. package/src/postgres/engine/lexer/tokens.ts +30 -0
  407. package/src/{engine → postgres/engine}/lexer/unicode.ts +4 -51
  408. package/src/{engine → postgres/engine}/parser/ddl.ts +9 -179
  409. package/src/{engine → postgres/engine}/parser/dml.ts +0 -67
  410. package/src/{engine → postgres/engine}/parser/expr.ts +5 -172
  411. package/src/{engine → postgres/engine}/parser/fast.ts +0 -7
  412. package/src/{engine → postgres/engine}/parser/json.ts +7 -96
  413. package/src/{engine → postgres/engine}/parser/keywords.ts +0 -16
  414. package/src/{engine → postgres/engine}/parser/merge.ts +0 -22
  415. package/src/{engine → postgres/engine}/parser/select.ts +2 -151
  416. package/src/{engine → postgres/engine}/parser/stmt.ts +0 -15
  417. package/src/{engine → postgres/engine}/parser/typename.ts +1 -39
  418. package/src/{engine → postgres/engine}/parser/util.ts +2 -49
  419. package/src/{engine → postgres/engine}/parser/utility.ts +1 -31
  420. package/src/{engine → postgres/engine}/parser/xml.ts +0 -48
  421. package/src/{engine → postgres/engine}/project/dml.ts +5 -153
  422. package/src/{engine → postgres/engine}/project/merge.ts +2 -37
  423. package/src/{engine → postgres/engine}/project/naming.ts +0 -28
  424. package/src/{engine → postgres/engine}/project/select.ts +1 -98
  425. package/src/{engine → postgres/engine}/project/stmt.ts +1 -8
  426. package/src/postgres/engine/shape.ts +42 -0
  427. package/src/{engine → postgres/engine}/suggest.ts +0 -25
  428. package/src/{engine → postgres/engine}/typer/catalog.ts +2 -153
  429. package/src/{engine → postgres/engine}/typer/operators.ts +1 -110
  430. package/src/{engine → postgres/engine}/typer/params.ts +4 -95
  431. package/src/{engine → postgres/engine}/typer/pg-functions.ts +0 -9
  432. package/src/{engine → postgres/engine}/typer/sqljson.ts +1 -48
  433. package/src/{engine → postgres/engine}/typer/typeof.ts +4 -117
  434. package/src/{engine → postgres/engine}/typer/xml.ts +1 -34
  435. package/src/{engine → postgres/engine}/types.ts +0 -38
  436. package/src/postgres/engine/write.ts +76 -0
  437. package/src/postgres/index.ts +39 -0
  438. package/src/postgres/migrations.ts +21 -0
  439. package/src/postgres/schema/column.ts +28 -0
  440. package/src/{schema → postgres/schema}/index.ts +2 -4
  441. package/src/{schema → postgres/schema}/normalize.ts +0 -9
  442. package/src/{schema → postgres/schema}/pg-catalog.ts +1 -71
  443. package/src/postgres/schema/pg-types.ts +9 -0
  444. package/src/postgres/sql/call.ts +251 -0
  445. package/src/postgres/sql/types.ts +136 -0
  446. package/src/{type-map → postgres/type-map}/index.ts +1 -40
  447. package/src/query.ts +0 -50
  448. package/src/row-keys.ts +1 -24
  449. package/src/runtime/build.ts +68 -0
  450. package/src/runtime/inline.ts +1 -30
  451. package/src/runtime/json.ts +1 -13
  452. package/src/runtime/splice.ts +1 -59
  453. package/src/runtime/write.ts +0 -12
  454. package/src/schema.ts +44 -0
  455. package/src/sql/fragment.ts +180 -0
  456. package/src/sql/inline.ts +265 -0
  457. package/src/{engine → sql}/named.ts +2 -35
  458. package/src/sql/next.ts +4101 -0
  459. package/src/sql/slots.ts +27 -0
  460. package/src/{engine → sql}/splice.ts +1 -32
  461. package/src/sql/text.ts +44 -0
  462. package/src/sql/write.ts +73 -0
  463. package/src/transaction.ts +23 -42
  464. package/dist/engine/ast.d.ts.map +0 -1
  465. package/dist/engine/ast.js +0 -12
  466. package/dist/engine/ast.js.map +0 -1
  467. package/dist/engine/binder/clauses.d.ts.map +0 -1
  468. package/dist/engine/binder/clauses.js.map +0 -1
  469. package/dist/engine/binder/from.d.ts.map +0 -1
  470. package/dist/engine/binder/from.js.map +0 -1
  471. package/dist/engine/binder/narrow.d.ts.map +0 -1
  472. package/dist/engine/binder/narrow.js.map +0 -1
  473. package/dist/engine/binder/resolve.d.ts.map +0 -1
  474. package/dist/engine/binder/resolve.js.map +0 -1
  475. package/dist/engine/cache.d.ts +0 -278
  476. package/dist/engine/cache.d.ts.map +0 -1
  477. package/dist/engine/ddl/apply.d.ts +0 -564
  478. package/dist/engine/ddl/apply.d.ts.map +0 -1
  479. package/dist/engine/ddl/apply.js.map +0 -1
  480. package/dist/engine/errors.d.ts +0 -31
  481. package/dist/engine/errors.d.ts.map +0 -1
  482. package/dist/engine/errors.js.map +0 -1
  483. package/dist/engine/index.d.ts.map +0 -1
  484. package/dist/engine/index.js +0 -8
  485. package/dist/engine/infer.d.ts +0 -198
  486. package/dist/engine/infer.d.ts.map +0 -1
  487. package/dist/engine/inline.d.ts +0 -170
  488. package/dist/engine/inline.d.ts.map +0 -1
  489. package/dist/engine/json.d.ts.map +0 -1
  490. package/dist/engine/lexer/chars.d.ts.map +0 -1
  491. package/dist/engine/lexer/chars.js.map +0 -1
  492. package/dist/engine/lexer/lex.d.ts.map +0 -1
  493. package/dist/engine/lexer/lex.js.map +0 -1
  494. package/dist/engine/lexer/next.d.ts.map +0 -1
  495. package/dist/engine/lexer/tokens.d.ts +0 -45
  496. package/dist/engine/lexer/tokens.d.ts.map +0 -1
  497. package/dist/engine/lexer/tokens.js.map +0 -1
  498. package/dist/engine/lexer/unicode.d.ts.map +0 -1
  499. package/dist/engine/lexer/unicode.js.map +0 -1
  500. package/dist/engine/named.d.ts.map +0 -1
  501. package/dist/engine/parser/ddl.d.ts.map +0 -1
  502. package/dist/engine/parser/ddl.js.map +0 -1
  503. package/dist/engine/parser/dml.d.ts.map +0 -1
  504. package/dist/engine/parser/dml.js.map +0 -1
  505. package/dist/engine/parser/expr.d.ts.map +0 -1
  506. package/dist/engine/parser/expr.js.map +0 -1
  507. package/dist/engine/parser/fast.d.ts.map +0 -1
  508. package/dist/engine/parser/fast.js.map +0 -1
  509. package/dist/engine/parser/json.d.ts.map +0 -1
  510. package/dist/engine/parser/json.js.map +0 -1
  511. package/dist/engine/parser/keywords.d.ts.map +0 -1
  512. package/dist/engine/parser/keywords.js +0 -7
  513. package/dist/engine/parser/keywords.js.map +0 -1
  514. package/dist/engine/parser/merge.d.ts.map +0 -1
  515. package/dist/engine/parser/merge.js.map +0 -1
  516. package/dist/engine/parser/select.d.ts.map +0 -1
  517. package/dist/engine/parser/select.js.map +0 -1
  518. package/dist/engine/parser/stmt.d.ts.map +0 -1
  519. package/dist/engine/parser/stmt.js.map +0 -1
  520. package/dist/engine/parser/typename.d.ts.map +0 -1
  521. package/dist/engine/parser/typename.js.map +0 -1
  522. package/dist/engine/parser/util.d.ts.map +0 -1
  523. package/dist/engine/parser/util.js.map +0 -1
  524. package/dist/engine/parser/utility.d.ts.map +0 -1
  525. package/dist/engine/parser/utility.js.map +0 -1
  526. package/dist/engine/parser/xml.d.ts.map +0 -1
  527. package/dist/engine/parser/xml.js.map +0 -1
  528. package/dist/engine/project/dml.d.ts.map +0 -1
  529. package/dist/engine/project/dml.js.map +0 -1
  530. package/dist/engine/project/merge.d.ts.map +0 -1
  531. package/dist/engine/project/merge.js.map +0 -1
  532. package/dist/engine/project/naming.d.ts.map +0 -1
  533. package/dist/engine/project/naming.js.map +0 -1
  534. package/dist/engine/project/select.d.ts.map +0 -1
  535. package/dist/engine/project/select.js.map +0 -1
  536. package/dist/engine/project/stmt.d.ts.map +0 -1
  537. package/dist/engine/project/stmt.js.map +0 -1
  538. package/dist/engine/shape.d.ts +0 -50
  539. package/dist/engine/shape.d.ts.map +0 -1
  540. package/dist/engine/splice.d.ts.map +0 -1
  541. package/dist/engine/suggest.d.ts.map +0 -1
  542. package/dist/engine/typer/catalog.d.ts.map +0 -1
  543. package/dist/engine/typer/catalog.js.map +0 -1
  544. package/dist/engine/typer/operators.d.ts.map +0 -1
  545. package/dist/engine/typer/operators.js.map +0 -1
  546. package/dist/engine/typer/params.d.ts.map +0 -1
  547. package/dist/engine/typer/params.js.map +0 -1
  548. package/dist/engine/typer/pg-functions.d.ts.map +0 -1
  549. package/dist/engine/typer/pg-functions.js.map +0 -1
  550. package/dist/engine/typer/sqljson.d.ts.map +0 -1
  551. package/dist/engine/typer/sqljson.js.map +0 -1
  552. package/dist/engine/typer/typeof.d.ts.map +0 -1
  553. package/dist/engine/typer/typeof.js.map +0 -1
  554. package/dist/engine/typer/xml.d.ts.map +0 -1
  555. package/dist/engine/typer/xml.js.map +0 -1
  556. package/dist/engine/types.d.ts.map +0 -1
  557. package/dist/engine/types.js +0 -5
  558. package/dist/engine/write.d.ts +0 -93
  559. package/dist/engine/write.d.ts.map +0 -1
  560. package/dist/schema/column.d.ts +0 -76
  561. package/dist/schema/column.d.ts.map +0 -1
  562. package/dist/schema/index.d.ts +0 -5
  563. package/dist/schema/index.d.ts.map +0 -1
  564. package/dist/schema/normalize.d.ts.map +0 -1
  565. package/dist/schema/normalize.js.map +0 -1
  566. package/dist/schema/pg-catalog.d.ts.map +0 -1
  567. package/dist/schema/pg-catalog.js.map +0 -1
  568. package/dist/schema/pg-types.d.ts +0 -11
  569. package/dist/schema/pg-types.d.ts.map +0 -1
  570. package/dist/schema/pg-types.js.map +0 -1
  571. package/dist/type-map/index.d.ts.map +0 -1
  572. package/src/engine/cache.ts +0 -426
  573. package/src/engine/ddl/apply.ts +0 -1373
  574. package/src/engine/errors.ts +0 -31
  575. package/src/engine/infer.ts +0 -398
  576. package/src/engine/inline.ts +0 -450
  577. package/src/engine/lexer/next.ts +0 -4113
  578. package/src/engine/lexer/tokens.ts +0 -45
  579. package/src/engine/shape.ts +0 -67
  580. package/src/engine/write.ts +0 -181
  581. package/src/schema/column.ts +0 -90
  582. package/src/schema/pg-types.ts +0 -12
  583. /package/dist/{engine/errors.js → errors.js} +0 -0
  584. /package/dist/{engine → postgres/engine}/binder/clauses.js +0 -0
  585. /package/dist/{engine → postgres/engine}/binder/from.js +0 -0
  586. /package/dist/{engine → postgres/engine}/binder/narrow.js +0 -0
  587. /package/dist/{engine → postgres/engine}/binder/resolve.js +0 -0
  588. /package/dist/{engine → postgres/engine}/cache.js +0 -0
  589. /package/dist/{engine → postgres/engine}/ddl/apply.js +0 -0
  590. /package/dist/{schema → postgres/engine/ddl}/column.js +0 -0
  591. /package/dist/{schema → postgres/engine}/index.js +0 -0
  592. /package/dist/{engine → postgres/engine}/infer.js +0 -0
  593. /package/dist/{engine → postgres/engine}/json.js +0 -0
  594. /package/dist/{engine → postgres/engine}/lexer/chars.js +0 -0
  595. /package/dist/{engine → postgres/engine}/lexer/lex.js +0 -0
  596. /package/dist/{engine → postgres/engine}/lexer/tokens.js +0 -0
  597. /package/dist/{engine → postgres/engine}/lexer/unicode.js +0 -0
  598. /package/dist/{engine → postgres/engine}/parser/ddl.js +0 -0
  599. /package/dist/{engine → postgres/engine}/parser/dml.js +0 -0
  600. /package/dist/{engine → postgres/engine}/parser/expr.js +0 -0
  601. /package/dist/{engine → postgres/engine}/parser/fast.js +0 -0
  602. /package/dist/{engine → postgres/engine}/parser/json.js +0 -0
  603. /package/dist/{engine → postgres/engine}/parser/merge.js +0 -0
  604. /package/dist/{engine → postgres/engine}/parser/select.js +0 -0
  605. /package/dist/{engine → postgres/engine}/parser/stmt.js +0 -0
  606. /package/dist/{engine → postgres/engine}/parser/typename.js +0 -0
  607. /package/dist/{engine → postgres/engine}/parser/util.js +0 -0
  608. /package/dist/{engine → postgres/engine}/parser/utility.js +0 -0
  609. /package/dist/{engine → postgres/engine}/parser/xml.js +0 -0
  610. /package/dist/{engine → postgres/engine}/project/dml.js +0 -0
  611. /package/dist/{engine → postgres/engine}/project/merge.js +0 -0
  612. /package/dist/{engine → postgres/engine}/project/naming.js +0 -0
  613. /package/dist/{engine → postgres/engine}/project/select.js +0 -0
  614. /package/dist/{engine → postgres/engine}/project/stmt.js +0 -0
  615. /package/dist/{engine → postgres/engine}/shape.js +0 -0
  616. /package/dist/{engine → postgres/engine}/suggest.js +0 -0
  617. /package/dist/{engine → postgres/engine}/typer/catalog.js +0 -0
  618. /package/dist/{engine → postgres/engine}/typer/operators.js +0 -0
  619. /package/dist/{engine → postgres/engine}/typer/params.js +0 -0
  620. /package/dist/{engine → postgres/engine}/typer/pg-functions.js +0 -0
  621. /package/dist/{engine → postgres/engine}/typer/sqljson.js +0 -0
  622. /package/dist/{engine → postgres/engine}/typer/typeof.js +0 -0
  623. /package/dist/{engine → postgres/engine}/typer/xml.js +0 -0
  624. /package/dist/{engine → postgres/engine}/write.js +0 -0
  625. /package/dist/{type-map → postgres/schema}/index.js +0 -0
  626. /package/dist/{schema → postgres/schema}/normalize.js +0 -0
  627. /package/dist/{schema → postgres/schema}/pg-catalog.js +0 -0
  628. /package/dist/{schema → postgres/schema}/pg-types.js +0 -0
  629. /package/dist/{engine → sql}/inline.js +0 -0
  630. /package/dist/{engine → sql}/named.js +0 -0
  631. /package/dist/{engine/lexer → sql}/next.js +0 -0
  632. /package/dist/{engine → sql}/splice.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @typesql/core
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Breaking: TypeSQL is split into a dialect-neutral core and a PostgreSQL dialect. `@typesql/core` keeps what dialects share (`createSql`, queries, fragments, executors, row keys, transactions, migrations, the schema markers `Col`, `Nullable`, `Generated`, `View`, … and the type cache) and adds a dialect contract. PostgreSQL moves to `@typesql/core/postgres`: create a `sql` with `createSql<DB>(postgres, executor?)`, import `Json`, `PgCatalog`, `migrations()`, type maps and the function catalog from `@typesql/core/postgres` (which also re-exports the schema markers), and the engine types from `@typesql/core/postgres/engine` (was `@typesql/core/engine`). The Kysely, Drizzle and Prisma packages take the dialect the same way and read the schema from the client's type: `createSql(postgres, db)` (`createSql<DB>(postgres, db)` still picks a schema explicitly). `typesql introspect` and the Prisma generator import the column helpers from `@typesql/core/postgres` by default.
8
+
9
+ ### Patch Changes
10
+
11
+ - The README describes TypeSQL as a SQL library rather than a PostgreSQL-only one.
12
+
13
+ ## 0.7.6
14
+
15
+ ### Patch Changes
16
+
17
+ - Validate packages against PostgreSQL behavior and built outputs instead of hand-written test suites.
18
+
19
+ - Reorganize core internals and remove source comments and inline API documentation without changing SQL behavior.
20
+
3
21
  ## 0.7.5
4
22
 
5
23
  ### Patch Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @typesql/core
2
2
 
3
- Write Postgres SQL in TypeScript and get exact types for rows and parameters. TypeSQL parses your SQL inside the type checker: no codegen, no database connection, no build step.
3
+ Write SQL in TypeScript and get exact types for rows and parameters. TypeSQL parses your SQL inside the type checker: no codegen, no database connection, no build step.
4
4
 
5
5
  ## Install
6
6
 
@@ -12,16 +12,17 @@ Requires TypeScript 7.1 or later.
12
12
 
13
13
  ## Usage
14
14
 
15
- Describe your tables with Postgres type names, then write queries:
15
+ Describe your tables with your database's type names, then write queries:
16
16
 
17
17
  ```ts
18
- import { createSql, type Col, type Generated, type Nullable } from "@typesql/core";
18
+ import { createSql } from "@typesql/core";
19
+ import { type Col, type Generated, type Nullable, postgres } from "@typesql/core/postgres";
19
20
 
20
21
  interface DB {
21
22
  users: {
22
- id: Generated<"int4">; // has a default, so optional on INSERT
23
- email: Col<"text">; // NOT NULL
24
- display_name: Nullable<"text">; // NULL allowed
23
+ id: Generated<"int4">;
24
+ email: Col<"text">;
25
+ display_name: Nullable<"text">;
25
26
  };
26
27
  posts: {
27
28
  id: Generated<"int8">;
@@ -30,7 +31,7 @@ interface DB {
30
31
  };
31
32
  }
32
33
 
33
- const sql = createSql<DB>();
34
+ const sql = createSql<DB>(postgres);
34
35
 
35
36
  const query = sql(
36
37
  `SELECT u.email, p.title
@@ -38,14 +39,11 @@ const query = sql(
38
39
  WHERE u.id = $1`,
39
40
  7,
40
41
  );
41
- // row: { email: string; title: string | null }
42
- // params: [number | null]
43
42
 
44
43
  sql("SELECT emial FROM users");
45
- // error: column "emial" does not exist. Perhaps you meant the column "email"?
46
44
  ```
47
45
 
48
- [Open the example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/PTAEBUE8AcFMGUCKAZAXKACgewM4BcBzAJ1h1CWQBpRoBDInWAE1ACNIIYEBjIgS2h4A5GTxdQOSPlgBbAHSgAokz55QeABaxyKULQB2LDVgBusIuq3quOVACgQoIlgDuZAyzpFaM2HnNkAGZYADYhrtQeoDJ8+LQA1qR6JKDcWDLQfCHa5s4MoFj6ltr4-PoEcnZ8GVhEagDedgCQYnCgAMKhlM28sLT+8ACOId0t4gDisPrm-cyjrdoAcgCuYbSs2fPiGPQ+OFBwW20ASq4HsN0AvqCBzjKgAEQAAgs4w8BpJA8A3HZV+v4iIFaNxtAARABCoEaTWWjAY6BhTT4THQk2m3n8TAAPA8+ACACwPAB831Ajg0tHcoCYsGBqzw6Cwgj4hVoIQKRQAkot4IpjuBmk1ZLQsuhOiFcf4AB54Em-JpNFQ4aAhWiQAD6+h8sHQKzWG1gUtgsvlQt6syYGv6aKmMyxUuqpDwPkEAC8zU1LgroLg8LZoUKUbaMZbcfi8AAOT1NWjLTS1DXBjqhcOEmN4VTZcWph4yuWkoWsLBMSB61Zqw3G02Fr2-S5-NL6fASYagAC8qRIsyGkshxIAFABKX4OMDIRQAMXAoAAUgB5HnRBJJTTafgEDRqHAo7T6CvrbJkgAkAEZ1CuyKpROJbulQMs5CjKk2W4MO62QgPmgADPkT9oZ0fFFqEfEUsmoaA5EzPBsjsUAEMQpDkMnY55wAWQfeEyGWUAJ2nOdF0WGg-TIaBQHnYioLjBMiCTFhO2Aph4OQ1jEIAdQACX5RQHyfBjQDPH9RgAdm6Ec7AWUBThcD8ZPObEFiwQJQEGQtHAQgA9AB+STtl2GQyE7HZvEMhSlJUtTfg00AdL+RwAEECGIWACFmdxDFSUJlhkIptV8IJQnCWTsHwFyAzSZYAQHAAqIdQFiBKAUjSIJDwMoCAfQxzFAfQS1gABaX0wpIHAX0KFs4n9D83i-X9-0UQC9HjYw6JAryorwWKh2oGRaGlAcYOyeKHPgUA1X8FtUIwkj8DIcY0IAVQwUAIQATWa2j6OEuwJKk+AXWqzt5K4RSuGUtL+hwdSwC03Sx1ALl9BCfFtBMdlliSegSimNQqUEoovB1QEPJYbgtG4RIWFoNz8RbFwtBSNcOG+rDmHK5s1HAjlOweWgmFoJ4TVdbI5DSGQfjsV81AtLEauGb8mh-Hk+QFR7FnAec0fyAdsfigA1BzkEWxQxoHY96lquQgZkXm+qyIdLni45FHARbjkWHlxgSphqFp5hrTwHa9vEdpuzp46zlOiyuz6LEbsQuyHvQ2IXUSdwUnJzJslAXJajIQpih0ZA0oyhRJz4aVihkexaoHP9FAAmd9F8UBpswuEAh-EdyTAP2iHQNIQh8ooHhT2AHhpLAkjyrHpVduw4+Z3l+RnHlOdm6rBqzWABaFkWxbPIdhMeTjYDCLAHhzxx8-QGjWvohKyEWecZ0WRbkBDqJKTIPKaTpOMQjwOwgA) <!-- playground:core -->: edit the SQL and hover the types, with nothing to install. The Playground runs TypeScript 6, so treat it as a demo.
46
+ [Open the example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/JYWwDg9gTgLgBAbzgYygUwIYzQZQI4A2ANHDAJ5hpwAKGUGIAzgCoVonmVwBKEA7qy4BfOADMoEEHABEAAU5pGhAPTJoaaQG4AUKEixE2gJAK4AYQjFjpgOJoAdmnrYAJkWts4AOQCuBAhgARgTsxpCMMADm6IzuIuKSMvJsSgSq6srhUTFa2rr22FCiGMhUACIAQoZGPoxOjABc1UbALk12js5oLgA80sAFACzSAHw6RkZoIBjABE0WBH3YAB4wo+NGLsCMYAFkAPr2DGhNvv5BIUtoq+vGRqiYrvtY7Q5OWN1LoIowDGAwAC9bkYhOMso1mq1Xp0Pr1+gUABzAowYHwwAAW0H2UPMlj6AxgwzGdxgwBgIXmeOkKzWxImgQgLjIpz8AWCaCuNzpoO0QjyansETgqTgAF4UOgPvhFpURgAKLLRRQASh02gFQrwYuFhDlxgABjgAKIAGSNZmYcB8ADpWiQbVMZsQ4GBraTyWhtHBvT7fX6AGLcADyAFkrXUoIwrXAzf7LQApIMASS8LogESjYDgQdTrtRGKxrW1NtaXr95Z9AHUABJG7hGq22lzagAkAEZ9e4jAB2dyq7SmXh8bVDwQchQQURwPDE0y0ehMbXzhgsNg9CdTmdqjXwCJYKPi1J6oyG03my35zFQbFuFAQHwFOUAKmVJGmyzl7pCyrgAEEcHAATYEKgahmmGZwDYwYAKrUHAFQAJpwJehYuJ22j9qYOC-DAB48PwY7rmwk7CjhjDEuqECCvAjqzNq0gYC4GCyNcfwhNaaggLkO4So83TakeBopsa3CWimzBBuG9RwHKtEED+ABqv4mtBRoAXKLYIKk1pgHQDCydMszKkIP71sw0HcF4KY2HAdq8bCzwwOhmGeGYkquCOBFrhu9muBRR6nmaFpwPYIBUKBYa1PU+r9gFwl1mJXgSeBuEyV+aCKcpqnqe2yqdjI1ZoP4EDSP2QA) <span data-playground="core"></span>: edit the SQL and hover the types, with nothing to install. The Playground runs TypeScript 6, so treat it as a demo.
49
47
 
50
48
  ## Run queries
51
49
 
@@ -65,7 +63,7 @@ Compile a query once and bind different values with the same inferred types:
65
63
 
66
64
  ```ts
67
65
  const findUser = sql.prepare("SELECT id, email FROM users WHERE id = $1");
68
- const query = findUser(7); // normal Query, with execute* methods
66
+ const query = findUser(7);
69
67
  ```
70
68
 
71
69
  Named parameters and fixed fragments work too. The `pg` and `postgres` adapters also request server-side preparation when these queries execute. See the [prepared query API](https://typesql.karsli.net/reference/api#sql-prepare-text-slots).
package/dist/adapter.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- /**
2
- * `@typesql/core/adapter`: what driver adapters and custom executors build on. Applications
3
- * import `@typesql/core` or an adapter package instead.
4
- */
5
1
  export { mapRows, rowKeysOf } from "./query.js";
6
2
  export { camelCase } from "./row-keys.js";
7
3
  export { JsonParam } from "./runtime/json.js";
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACN,sBAAsB,EACtB,cAAc,EACd,KAAK,SAAS,GACd,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACN,sBAAsB,EACtB,cAAc,EACd,KAAK,SAAS,GACd,MAAM,kBAAkB,CAAC"}
package/dist/adapter.js CHANGED
@@ -1,7 +1,3 @@
1
- /**
2
- * `@typesql/core/adapter`: what driver adapters and custom executors build on. Applications
3
- * import `@typesql/core` or an adapter package instead.
4
- */
5
1
  export { mapRows, rowKeysOf } from "./query.js";
6
2
  export { camelCase } from "./row-keys.js";
7
3
  export { JsonParam } from "./runtime/json.js";
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACN,sBAAsB,EACtB,cAAc,GAEd,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACN,sBAAsB,EACtB,cAAc,GAEd,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface CacheDialect {
2
+ readonly name: string;
3
+ readonly engine: string;
4
+ readonly specifiers: readonly string[];
5
+ readonly versionFile: string;
6
+ readonly sqlTypes: readonly string[];
7
+ readonly queryAliases: {
8
+ readonly [alias: string]: number;
9
+ };
10
+ readonly ddlAliases: {
11
+ readonly [alias: string]: number;
12
+ };
13
+ readonly looksLikeQuery: RegExp;
14
+ readonly looksLikeDdl: RegExp;
15
+ touchesAllTables(text: string): boolean;
16
+ }
17
+ //# sourceMappingURL=dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/cache/dialect.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5D,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/cache/dialect.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { CacheDialect } from "./dialect.js";
2
+ export declare const DIALECTS: readonly CacheDialect[];
3
+ export declare const dialectNamed: (name: string | undefined) => CacheDialect;
4
+ //# sourceMappingURL=dialects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialects.d.ts","sourceRoot":"","sources":["../../src/cache/dialects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,QAAQ,EAAE,SAAS,YAAY,EAAoB,CAAC;AAEjE,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,SAAS,KAAG,YACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { postgresCache } from "../postgres/cache-dialect.js";
2
+ export const DIALECTS = [postgresCache];
3
+ export const dialectNamed = (name) => DIALECTS.find((d) => d.name === name) ?? DIALECTS[0];
4
+ //# sourceMappingURL=dialects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialects.js","sourceRoot":"","sources":["../../src/cache/dialects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,aAAa,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAwB,EAAgB,EAAE,CACtE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC"}
@@ -1,11 +1,5 @@
1
- /**
2
- * Finds the statements of a program: `sql(…)` calls (the callee is core's `Sql` or
3
- * `TransactionalSql`, whatever it is named locally) and `migrations().add(…)` steps. Only the
4
- * callee, the receiver and the first arguments are typed, not the call: discovering 500
5
- * queries takes milliseconds and analyses none of them.
6
- */
7
1
  import type { Checker, Program, Type } from "typescript/async";
8
- /** SyntaxKind values (typescript/ast), passed in so this module loads nothing at runtime. */
2
+ import type { CacheDialect } from "./dialect.js";
9
3
  export interface Kinds {
10
4
  readonly CallExpression: number;
11
5
  readonly PropertyAccessExpression: number;
@@ -15,16 +9,13 @@ export interface Kinds {
15
9
  readonly TypeAliasDeclaration: number;
16
10
  }
17
11
  export interface SqlSite {
18
- /** The query literal (with `:name` and `${sql.param()}` markers as written). */
19
12
  readonly key: string;
20
13
  readonly file: string;
21
14
  readonly db: Type;
22
15
  readonly tm: Type;
23
16
  readonly keys: Type;
24
- /** The slot object's type for `sql("… {slot} …", { slot })`, else null. */
25
17
  readonly slots: Type | null;
26
18
  }
27
- /** A statement written as a type: `RowOf<DB, TM, "SELECT …">`, or a literal argument of the project's own alias. */
28
19
  export interface TypeSite {
29
20
  readonly key: string;
30
21
  readonly file: string;
@@ -33,14 +24,12 @@ export interface TypeSite {
33
24
  export interface DdlSite {
34
25
  readonly key: string;
35
26
  readonly file: string;
36
- /** The schema before the step (`Migrations<DB>`'s `DB`). */
37
27
  readonly db: Type;
38
28
  }
39
- export declare function discover(program: Program, checker: Checker, kinds: Kinds, isCorePath: (path: string) => boolean, include: (fileName: string) => boolean): Promise<{
29
+ export declare function discover(program: Program, checker: Checker, kinds: Kinds, isCorePath: (path: string) => boolean, include: (fileName: string) => boolean, dialect: CacheDialect): Promise<{
40
30
  sql: SqlSite[];
41
31
  types: TypeSite[];
42
32
  ddl: DdlSite[];
43
33
  }>;
44
- /** Whether `type` is a reference to one of core's `names` (`Sql`, `Migrations`, …). */
45
34
  export declare function isCoreRef(type: Type, names: readonly string[], isCorePath: (path: string) => boolean): Promise<boolean>;
46
35
  //# sourceMappingURL=discover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,KAAK,EACX,OAAO,EACP,OAAO,EAEP,IAAI,EACJ,MAAM,kBAAkB,CAAC;AAE1B,6FAA6F;AAC7F,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,OAAO;IACvB,gFAAgF;IAChF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAED,oHAAoH;AACpH,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CAClB;AAsBD,wBAAsB,QAAQ,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACrC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,GACpC,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAuJhE;AAqFD,uFAAuF;AACvF,wBAAsB,SAAS,CAC9B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACnC,OAAO,CAAC,OAAO,CAAC,CAQlB"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACX,OAAO,EACP,OAAO,EAEP,IAAI,EACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CAClB;AAGD,wBAAsB,QAAQ,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACrC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EACtC,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAoJhE;AAoFD,wBAAsB,SAAS,CAC9B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACnC,OAAO,CAAC,OAAO,CAAC,CAQlB"}
@@ -1,28 +1,6 @@
1
- /**
2
- * Finds the statements of a program: `sql(…)` calls (the callee is core's `Sql` or
3
- * `TransactionalSql`, whatever it is named locally) and `migrations().add(…)` steps. Only the
4
- * callee, the receiver and the first arguments are typed, not the call: discovering 500
5
- * queries takes milliseconds and analyses none of them.
6
- */
7
1
  const SLOT = /\{[A-Za-z_][A-Za-z0-9_]*\}/;
8
- /** Core aliases taking `(DB, …, Q)`: the index of `Q`. */
9
- const QUERY_ALIASES = {
10
- RowOf: 2,
11
- ParamsOf: 2,
12
- ArgsOf: 2,
13
- ParamsArgs: 2,
14
- Validate: 1,
15
- KindOf: 1,
16
- NamesOf: 1,
17
- Analysis: 1,
18
- };
19
- const DDL_ALIASES = {
20
- ApplyDdl: 1,
21
- ValidateDdl: 1,
22
- };
23
- const LOOKS_LIKE_QUERY = /^\s*(\(\s*)*(select|with|insert|update|delete|values|table)\b/i;
24
- const LOOKS_LIKE_DDL = /^\s*(create|alter|drop|comment)\b/i;
25
- export async function discover(program, checker, kinds, isCorePath, include) {
2
+ export async function discover(program, checker, kinds, isCorePath, include, dialect) {
3
+ const { queryAliases, ddlAliases, looksLikeQuery, looksLikeDdl } = dialect;
26
4
  const sql = [];
27
5
  const types = [];
28
6
  const ddl = [];
@@ -36,21 +14,19 @@ export async function discover(program, checker, kinds, isCorePath, include) {
36
14
  const { calls, refs } = nodesIn(sf, kinds);
37
15
  if (!calls.length && !refs.length)
38
16
  continue;
39
- /** `DB` types this file uses, for literals passed to the project's own aliases. */
40
17
  const fileDbs = new Map();
41
18
  const loose = [];
42
- // statements written as types
43
19
  const syms = refs.length
44
20
  ? await checker.getSymbolAtLocation(refs.map((r) => r.typeName))
45
21
  : [];
46
22
  await Promise.all(refs.map(async (r, i) => {
47
23
  let sym = syms[i];
48
- if (sym && sym.flags & 2097152 /* SymbolFlags.Alias */)
24
+ if (sym && sym.flags & 2097152)
49
25
  sym = await checker.getAliasedSymbol(sym);
50
26
  const args = r.typeArguments ?? [];
51
27
  const isCore = !!sym && sym.declarations.some((d) => isCorePath(d.path));
52
28
  const qAt = isCore
53
- ? (QUERY_ALIASES[sym.name] ?? DDL_ALIASES[sym.name])
29
+ ? (queryAliases[sym.name] ?? ddlAliases[sym.name])
54
30
  : undefined;
55
31
  if (qAt !== undefined && args[0] && args[qAt]) {
56
32
  const db = await checker.getTypeFromTypeNode(args[0]);
@@ -58,16 +34,15 @@ export async function discover(program, checker, kinds, isCorePath, include) {
58
34
  const key = literalOf(args[qAt], kinds);
59
35
  if (key === null)
60
36
  return;
61
- (sym.name in DDL_ALIASES ? ddl : types).push({
37
+ (sym.name in ddlAliases ? ddl : types).push({
62
38
  key,
63
39
  db,
64
40
  file: fileName,
65
41
  });
66
42
  return;
67
43
  }
68
- // the project's own alias of a core one: `type Row<Q extends string> = RowOf<DB, TM, Q>`
69
44
  const wrapped = sym && !isCore
70
- ? await wrappedCoreAlias(sym, program, checker, kinds, isCorePath, aliasMemo)
45
+ ? await wrappedCoreAlias(sym, program, checker, kinds, isCorePath, aliasMemo, dialect)
71
46
  : null;
72
47
  if (wrapped) {
73
48
  const key = args[wrapped.param]
@@ -84,12 +59,11 @@ export async function discover(program, checker, kinds, isCorePath, include) {
84
59
  for (const a of args) {
85
60
  const key = literalOf(a, kinds);
86
61
  if (key !== null &&
87
- (LOOKS_LIKE_QUERY.test(key) || LOOKS_LIKE_DDL.test(key)))
62
+ (looksLikeQuery.test(key) || looksLikeDdl.test(key)))
88
63
  loose.push(key);
89
64
  }
90
65
  }
91
66
  }));
92
- // migration steps: the receiver is core's Migrations<DB>
93
67
  const adds = calls.filter((c) => c.expression.kind === kinds.PropertyAccessExpression &&
94
68
  c.expression.name.text === "add");
95
69
  if (adds.length) {
@@ -101,17 +75,16 @@ export async function discover(program, checker, kinds, isCorePath, include) {
101
75
  if (!a.isStringLiteralType() ||
102
76
  !(await isCoreRef(r, ["Migrations"], isCorePath)))
103
77
  return;
104
- const [db] = await checker.getTypeArguments(r);
78
+ const [, db] = await checker.getTypeArguments(r);
105
79
  if (db)
106
80
  ddl.push({ key: a.value, db, file: fileName });
107
81
  }));
108
82
  }
109
- // sql(…) calls: the callee is core's Sql or TransactionalSql
110
83
  const others = calls.filter((c) => !adds.includes(c));
111
84
  const callees = others.length
112
85
  ? await checker.getTypeAtLocation(others.map((c) => c.expression))
113
86
  : [];
114
- const hits = (await Promise.all(others.map((_, i) => isCoreRef(callees[i], ["Sql", "TransactionalSql"], isCorePath).then((ok) => (ok ? i : -1))))).filter((i) => i >= 0);
87
+ const hits = (await Promise.all(others.map((_, i) => isCoreRef(callees[i], dialect.sqlTypes, isCorePath).then((ok) => ok ? i : -1)))).filter((i) => i >= 0);
115
88
  const firstArgs = hits.length
116
89
  ? await checker.getTypeAtLocation(hits.map((i) => others[i].arguments[0]))
117
90
  : [];
@@ -131,7 +104,7 @@ export async function discover(program, checker, kinds, isCorePath, include) {
131
104
  }));
132
105
  for (const key of loose)
133
106
  for (const db of fileDbs.values())
134
- (LOOKS_LIKE_DDL.test(key) ? ddl : types).push({
107
+ (looksLikeDdl.test(key) ? ddl : types).push({
135
108
  key,
136
109
  db,
137
110
  file: fileName,
@@ -139,8 +112,7 @@ export async function discover(program, checker, kinds, isCorePath, include) {
139
112
  }
140
113
  return { sql, types, ddl };
141
114
  }
142
- /** For `type R<Q> = RowOf<DB, TM, Q>` (or `ApplyDdl<DB, Q>`, …): which parameter is the text, and the `DB`. */
143
- function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo) {
115
+ function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo, { queryAliases, ddlAliases }) {
144
116
  let found = memo.get(sym.id);
145
117
  if (!found) {
146
118
  found = (async () => {
@@ -157,7 +129,7 @@ function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo) {
157
129
  target = await checker.getAliasedSymbol(target);
158
130
  if (!target || !target.declarations.some((d) => isCorePath(d.path)))
159
131
  return null;
160
- const qAt = QUERY_ALIASES[target.name] ?? DDL_ALIASES[target.name];
132
+ const qAt = queryAliases[target.name] ?? ddlAliases[target.name];
161
133
  const qArg = qAt === undefined ? undefined : ref.typeArguments?.[qAt];
162
134
  const dbArg = ref.typeArguments?.[0];
163
135
  if (!qArg || !dbArg || qArg.kind !== kinds.TypeReference)
@@ -170,7 +142,7 @@ function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo) {
170
142
  return {
171
143
  param,
172
144
  db: await checker.getTypeFromTypeNode(dbArg),
173
- ddl: target.name in DDL_ALIASES,
145
+ ddl: target.name in ddlAliases,
174
146
  };
175
147
  })();
176
148
  memo.set(sym.id, found);
@@ -198,7 +170,6 @@ function nodesIn(sf, kinds) {
198
170
  walk(sf);
199
171
  return { calls, refs };
200
172
  }
201
- /** Whether `type` is a reference to one of core's `names` (`Sql`, `Migrations`, …). */
202
173
  export async function isCoreRef(type, names, isCorePath) {
203
174
  if (!type.isTypeReference())
204
175
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Node, SourceFile } from "typescript/ast";
2
2
  import type { API as AsyncAPI, Checker, Program, Type } from "typescript/async";
3
+ import type { CacheDialect } from "./dialect.js";
3
4
  import type { Kinds } from "./discover.js";
4
- /** The project's `typescript` package: its async API, fs helpers and syntax kinds. */
5
5
  export interface TypeScript {
6
6
  readonly API: typeof AsyncAPI;
7
7
  readonly createFileSystemLayer: (files: readonly (readonly [string, string])[]) => unknown;
@@ -10,7 +10,7 @@ export interface TypeScript {
10
10
  };
11
11
  }
12
12
  export declare function loadTypeScript(configFile: string): Promise<TypeScript>;
13
- export declare const PROBE_HEAD = "import type * as __T from \"@typesql/core/engine\";\nexport declare const __v: __T.CacheVersion;\nexport declare const __fc: __T.FunctionCatalog;\n";
13
+ export declare const probeHead: (dialect: CacheDialect) => string;
14
14
  export interface ProbeProgram {
15
15
  readonly program: Program;
16
16
  readonly checker: Checker;
@@ -28,7 +28,6 @@ export declare class ProbeSession {
28
28
  typescript(): Promise<TypeScript>;
29
29
  markChanged(files: Iterable<string>): void;
30
30
  close(): Promise<void>;
31
- /** Close for good: a request in progress fails at its next program instead of reopening. */
32
31
  dispose(): Promise<void>;
33
32
  withProbe(text: string): Promise<ProbeProgram>;
34
33
  }
@@ -37,15 +36,13 @@ export type Evaluated = {
37
36
  } | {
38
37
  readonly error: string;
39
38
  };
40
- export declare function evaluateTypes(session: ProbeSession, base: string, exprs: readonly string[], isCorePath: (path: string) => boolean): Promise<Evaluated[]>;
39
+ export declare function evaluateTypes(session: ProbeSession, base: string, exprs: readonly string[], isCorePath: (path: string) => boolean, dialect: CacheDialect): Promise<Evaluated[]>;
41
40
  export declare function evaluateAnalyses(session: ProbeSession, base: string, items: readonly {
42
41
  readonly db: string;
43
42
  readonly text: string;
44
- }[], isCorePath: (path: string) => boolean): Promise<Evaluated[]>;
45
- /** `export declare const name: …` declarations of the probe, by name. */
43
+ }[], isCorePath: (path: string) => boolean, dialect: CacheDialect): Promise<Evaluated[]>;
46
44
  export declare function declarations(sf: SourceFile, kinds: TypeScript["kinds"]): Map<string, Node>;
47
45
  export declare function declTypes(checker: Checker, sf: SourceFile, kinds: TypeScript["kinds"]): Promise<Map<string, Type>>;
48
- /** Probe declarations whose line has a compile error (an alias the probe could not resolve, …), with the first message. */
49
46
  export declare function badDeclarations(program: Program, sf: SourceFile): Promise<Map<string, string>>;
50
47
  export declare const lineOf: (text: string, offset: number) => number;
51
48
  export type TypeValue = string | number | boolean | null | readonly TypeValue[] | TypeRecord | {
@@ -66,12 +63,10 @@ export interface AnalysisType {
66
63
  }
67
64
  export interface Analysis {
68
65
  readonly kind: string;
69
- /** Columns of a `*` expansion are marked `star`: their order is the object type's, not the statement's. */
70
66
  readonly cols: readonly ({
71
67
  readonly name: string;
72
68
  readonly star?: true;
73
69
  } & AnalysisType)[];
74
- /** By parameter number (1-based). */
75
70
  readonly params: {
76
71
  readonly [n: number]: AnalysisType;
77
72
  };
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/cache/evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/cache/evaluate.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ export async function loadTypeScript(configFile) {
25
25
  },
26
26
  };
27
27
  }
28
- export const PROBE_HEAD = `import type * as __T from "@typesql/core/engine";\nexport declare const __v: __T.CacheVersion;\nexport declare const __fc: __T.FunctionCatalog;\n`;
28
+ export const probeHead = (dialect) => `import type * as __T from ${JSON.stringify(dialect.engine)};\nexport declare const __v: __T.CacheVersion;\nexport declare const __fc: __T.FunctionCatalog;\n`;
29
29
  export class ProbeSession {
30
30
  ts;
31
31
  api;
@@ -52,7 +52,6 @@ export class ProbeSession {
52
52
  this.snapshot = undefined;
53
53
  await api?.close();
54
54
  }
55
- /** Close for good: a request in progress fails at its next program instead of reopening. */
56
55
  async dispose() {
57
56
  this.disposed = true;
58
57
  await this.close();
@@ -90,7 +89,7 @@ export class ProbeSession {
90
89
  return { program: project.program, checker: project.checker, sf };
91
90
  }
92
91
  }
93
- export async function evaluateTypes(session, base, exprs, isCorePath) {
92
+ export async function evaluateTypes(session, base, exprs, isCorePath, dialect) {
94
93
  let probe = base;
95
94
  exprs.forEach((e, i) => {
96
95
  probe += `export declare const __x_${i}: ${e};\n`;
@@ -108,13 +107,12 @@ export async function evaluateTypes(session, base, exprs, isCorePath) {
108
107
  const t = types.get(name);
109
108
  if (!t)
110
109
  return { error: "no declaration" };
111
- return { text: coreNames(await printer.print(t)) };
110
+ return { text: coreNames(await printer.print(t), dialect.specifiers) };
112
111
  }));
113
112
  }
114
- export function evaluateAnalyses(session, base, items, isCorePath) {
115
- return evaluateTypes(session, base, items.map((a) => `__T.CacheAnalysis<${a.db}, ${JSON.stringify(a.text)}>`), isCorePath);
113
+ export function evaluateAnalyses(session, base, items, isCorePath, dialect) {
114
+ return evaluateTypes(session, base, items.map((a) => `__T.CacheAnalysis<${a.db}, ${JSON.stringify(a.text)}>`), isCorePath, dialect);
116
115
  }
117
- /** `export declare const name: …` declarations of the probe, by name. */
118
116
  export function declarations(sf, kinds) {
119
117
  const out = new Map();
120
118
  for (const st of sf.statements) {
@@ -134,7 +132,6 @@ export async function declTypes(checker, sf, kinds) {
134
132
  : [];
135
133
  return new Map(names.map((n, i) => [n, types[i]]));
136
134
  }
137
- /** Probe declarations whose line has a compile error (an alias the probe could not resolve, …), with the first message. */
138
135
  export async function badDeclarations(program, sf) {
139
136
  const errors = (await program.getSemanticDiagnostics(sf.fileName)).filter((d) => d.category === 1);
140
137
  const badLines = new Map();
@@ -143,7 +140,6 @@ export async function badDeclarations(program, sf) {
143
140
  if (!badLines.has(line))
144
141
  badLines.set(line, `TS${d.code}: ${d.text}`);
145
142
  }
146
- // an alias line (`type X = …`) poisons the declarations that use it: drop by alias name
147
143
  const lines = sf.text.split("\n");
148
144
  const badAliases = new Map();
149
145
  lines.forEach((l, i) => {
@@ -179,7 +175,7 @@ export const lineOf = (text, offset) => {
179
175
  };
180
176
  export function parseTypeText(text) {
181
177
  const p = new TypeTextParser(text);
182
- const v = p.type(); // ends after any whitespace (its last eat("|") skips it)
178
+ const v = p.type();
183
179
  if (p.i !== text.length)
184
180
  throw new Error(`unexpected ${JSON.stringify(text.slice(p.i, p.i + 20))} at ${p.i} in printed type`);
185
181
  return v;
@@ -311,7 +307,6 @@ class TypeTextParser {
311
307
  }
312
308
  if (c === open)
313
309
  depth++;
314
- // the `>` of `=>` (a function type in type arguments) does not close; in a printed type no other closing bracket follows `=`
315
310
  else if (c === close && this.s[this.i - 1] !== "=")
316
311
  depth--;
317
312
  this.i++;
@@ -330,7 +325,6 @@ class TypeTextParser {
330
325
  : JSON.parse(`"${raw.slice(1, -1).replace(/\\'/g, "'").replace(/"/g, '\\"')}"`);
331
326
  }
332
327
  key() {
333
- // object() peeked past any whitespace
334
328
  const c = this.s[this.i];
335
329
  if (c === '"' || c === "'")
336
330
  return this.string();
@@ -388,9 +382,7 @@ export function readAnalysis(text) {
388
382
  try {
389
383
  error = JSON.parse(error);
390
384
  }
391
- catch {
392
- // not a plain literal
393
- }
385
+ catch { }
394
386
  return {
395
387
  error,
396
388
  pos: err[2] === "null" || err[2] === "number" ? null : Number(err[2]),
@@ -436,7 +428,6 @@ export const asRecord = (v) => typeof v === "object" &&
436
428
  ? v
437
429
  : null;
438
430
  function typeOf(v) {
439
- // a parameter used in several places is a union; a use that gives no type (`$1 IS NULL`) is `unknown`
440
431
  if (typeof v === "object" && v !== null && "union" in v) {
441
432
  const all = v.union.map(typeOf);
442
433
  const typed = all.filter((x) => x.type !== "unknown");
@@ -455,7 +446,6 @@ function typeOf(v) {
455
446
  return { type: ty, nullable };
456
447
  if (ty === null)
457
448
  return { type: "null", nullable };
458
- // an array of a shaped type prints as a template literal: `${Shaped<"json", …>}[]`
459
449
  if (typeof ty === "object" && "ref" in ty) {
460
450
  const m = /^`\$\{.*?\bShaped<"(\w+)",.*\}((?:\[\])+)`$/s.exec(ty.ref);
461
451
  if (m)