@typesql/core 0.3.0 → 0.5.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 (266) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +12 -10
  3. package/dist/adapter.d.ts +9 -0
  4. package/dist/adapter.d.ts.map +1 -0
  5. package/dist/adapter.js +9 -0
  6. package/dist/adapter.js.map +1 -0
  7. package/dist/cache/discover.d.ts +5 -0
  8. package/dist/cache/discover.d.ts.map +1 -1
  9. package/dist/cache/discover.js +82 -23
  10. package/dist/cache/discover.js.map +1 -1
  11. package/dist/cache/evaluate.d.ts +87 -0
  12. package/dist/cache/evaluate.d.ts.map +1 -0
  13. package/dist/cache/evaluate.js +481 -0
  14. package/dist/cache/evaluate.js.map +1 -0
  15. package/dist/cache/format.d.ts.map +1 -1
  16. package/dist/cache/format.js +33 -11
  17. package/dist/cache/format.js.map +1 -1
  18. package/dist/cache/job.d.ts +3 -7
  19. package/dist/cache/job.d.ts.map +1 -1
  20. package/dist/cache/job.js +155 -167
  21. package/dist/cache/job.js.map +1 -1
  22. package/dist/cache/mapper.d.ts.map +1 -1
  23. package/dist/cache/mapper.js +26 -7
  24. package/dist/cache/mapper.js.map +1 -1
  25. package/dist/cache/print.d.ts +7 -7
  26. package/dist/cache/print.d.ts.map +1 -1
  27. package/dist/cache/print.js +61 -13
  28. package/dist/cache/print.js.map +1 -1
  29. package/dist/cache/rpc.d.ts.map +1 -1
  30. package/dist/cache/rpc.js +11 -2
  31. package/dist/cache/rpc.js.map +1 -1
  32. package/dist/cache/scan.d.ts.map +1 -1
  33. package/dist/cache/scan.js +5 -3
  34. package/dist/cache/scan.js.map +1 -1
  35. package/dist/cache/store.d.ts.map +1 -1
  36. package/dist/cache/store.js +33 -8
  37. package/dist/cache/store.js.map +1 -1
  38. package/dist/create-sql.d.ts +122 -66
  39. package/dist/create-sql.d.ts.map +1 -1
  40. package/dist/create-sql.js +11 -11
  41. package/dist/create-sql.js.map +1 -1
  42. package/dist/editor/call.d.ts +33 -0
  43. package/dist/editor/call.d.ts.map +1 -0
  44. package/dist/editor/call.js +97 -0
  45. package/dist/editor/call.js.map +1 -0
  46. package/dist/editor/complete.d.ts +42 -0
  47. package/dist/editor/complete.d.ts.map +1 -0
  48. package/dist/editor/complete.js +213 -0
  49. package/dist/editor/complete.js.map +1 -0
  50. package/dist/editor/index.d.ts +10 -0
  51. package/dist/editor/index.d.ts.map +1 -0
  52. package/dist/editor/index.js +38 -0
  53. package/dist/editor/index.js.map +1 -0
  54. package/dist/editor/scan.d.ts +53 -0
  55. package/dist/editor/scan.d.ts.map +1 -0
  56. package/dist/editor/scan.js +754 -0
  57. package/dist/editor/scan.js.map +1 -0
  58. package/dist/editor/schema.d.ts +37 -0
  59. package/dist/editor/schema.d.ts.map +1 -0
  60. package/dist/editor/schema.js +132 -0
  61. package/dist/editor/schema.js.map +1 -0
  62. package/dist/engine/ast.d.ts.map +1 -1
  63. package/dist/engine/binder/clauses.d.ts +31 -22
  64. package/dist/engine/binder/clauses.d.ts.map +1 -1
  65. package/dist/engine/binder/from.d.ts +174 -99
  66. package/dist/engine/binder/from.d.ts.map +1 -1
  67. package/dist/engine/binder/narrow.d.ts +7 -9
  68. package/dist/engine/binder/narrow.d.ts.map +1 -1
  69. package/dist/engine/binder/resolve.d.ts +43 -14
  70. package/dist/engine/binder/resolve.d.ts.map +1 -1
  71. package/dist/engine/cache.d.ts +29 -24
  72. package/dist/engine/cache.d.ts.map +1 -1
  73. package/dist/engine/ddl/apply.d.ts +98 -61
  74. package/dist/engine/ddl/apply.d.ts.map +1 -1
  75. package/dist/engine/errors.d.ts.map +1 -1
  76. package/dist/engine/index.d.ts +28 -0
  77. package/dist/engine/index.d.ts.map +1 -0
  78. package/dist/engine/index.js +8 -0
  79. package/dist/engine/index.js.map +1 -0
  80. package/dist/engine/infer.d.ts +27 -25
  81. package/dist/engine/infer.d.ts.map +1 -1
  82. package/dist/engine/inline.d.ts +63 -33
  83. package/dist/engine/inline.d.ts.map +1 -1
  84. package/dist/engine/json.d.ts +27 -26
  85. package/dist/engine/json.d.ts.map +1 -1
  86. package/dist/engine/lexer/chars.d.ts.map +1 -1
  87. package/dist/engine/lexer/lex.d.ts +61 -24
  88. package/dist/engine/lexer/lex.d.ts.map +1 -1
  89. package/dist/engine/lexer/next.d.ts +1 -1
  90. package/dist/engine/lexer/tokens.d.ts.map +1 -1
  91. package/dist/engine/lexer/unicode.d.ts +13 -13
  92. package/dist/engine/lexer/unicode.d.ts.map +1 -1
  93. package/dist/engine/named.d.ts +26 -7
  94. package/dist/engine/named.d.ts.map +1 -1
  95. package/dist/engine/parser/ddl.d.ts +189 -72
  96. package/dist/engine/parser/ddl.d.ts.map +1 -1
  97. package/dist/engine/parser/dml.d.ts +86 -21
  98. package/dist/engine/parser/dml.d.ts.map +1 -1
  99. package/dist/engine/parser/expr.d.ts +77 -44
  100. package/dist/engine/parser/expr.d.ts.map +1 -1
  101. package/dist/engine/parser/json.d.ts +85 -21
  102. package/dist/engine/parser/json.d.ts.map +1 -1
  103. package/dist/engine/parser/keywords.d.ts.map +1 -1
  104. package/dist/engine/parser/merge.d.ts +19 -5
  105. package/dist/engine/parser/merge.d.ts.map +1 -1
  106. package/dist/engine/parser/select.d.ts +142 -68
  107. package/dist/engine/parser/select.d.ts.map +1 -1
  108. package/dist/engine/parser/stmt.d.ts +9 -6
  109. package/dist/engine/parser/stmt.d.ts.map +1 -1
  110. package/dist/engine/parser/typename.d.ts +9 -6
  111. package/dist/engine/parser/typename.d.ts.map +1 -1
  112. package/dist/engine/parser/util.d.ts +15 -6
  113. package/dist/engine/parser/util.d.ts.map +1 -1
  114. package/dist/engine/parser/utility.d.ts +4 -4
  115. package/dist/engine/parser/utility.d.ts.map +1 -1
  116. package/dist/engine/parser/xml.d.ts +53 -33
  117. package/dist/engine/parser/xml.d.ts.map +1 -1
  118. package/dist/engine/project/dml.d.ts +153 -58
  119. package/dist/engine/project/dml.d.ts.map +1 -1
  120. package/dist/engine/project/merge.d.ts +25 -9
  121. package/dist/engine/project/merge.d.ts.map +1 -1
  122. package/dist/engine/project/naming.d.ts +13 -10
  123. package/dist/engine/project/naming.d.ts.map +1 -1
  124. package/dist/engine/project/select.d.ts +93 -44
  125. package/dist/engine/project/select.d.ts.map +1 -1
  126. package/dist/engine/project/stmt.d.ts +1 -1
  127. package/dist/engine/project/stmt.d.ts.map +1 -1
  128. package/dist/engine/shape.d.ts +3 -3
  129. package/dist/engine/shape.d.ts.map +1 -1
  130. package/dist/engine/splice.d.ts +45 -17
  131. package/dist/engine/splice.d.ts.map +1 -1
  132. package/dist/engine/suggest.d.ts +6 -8
  133. package/dist/engine/suggest.d.ts.map +1 -1
  134. package/dist/engine/typer/catalog.d.ts +594 -144
  135. package/dist/engine/typer/catalog.d.ts.map +1 -1
  136. package/dist/engine/typer/operators.d.ts +17 -17
  137. package/dist/engine/typer/operators.d.ts.map +1 -1
  138. package/dist/engine/typer/params.d.ts +117 -59
  139. package/dist/engine/typer/params.d.ts.map +1 -1
  140. package/dist/engine/typer/pg-functions.d.ts +61 -18
  141. package/dist/engine/typer/pg-functions.d.ts.map +1 -1
  142. package/dist/engine/typer/sqljson.d.ts +24 -12
  143. package/dist/engine/typer/sqljson.d.ts.map +1 -1
  144. package/dist/engine/typer/typeof.d.ts +66 -41
  145. package/dist/engine/typer/typeof.d.ts.map +1 -1
  146. package/dist/engine/typer/xml.d.ts +39 -15
  147. package/dist/engine/typer/xml.d.ts.map +1 -1
  148. package/dist/engine/types.d.ts +13 -5
  149. package/dist/engine/types.d.ts.map +1 -1
  150. package/dist/engine/write.d.ts +9 -6
  151. package/dist/engine/write.d.ts.map +1 -1
  152. package/dist/index.d.ts +11 -23
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +2 -7
  155. package/dist/index.js.map +1 -1
  156. package/dist/migrations.d.ts +6 -3
  157. package/dist/migrations.d.ts.map +1 -1
  158. package/dist/migrations.js.map +1 -1
  159. package/dist/query.d.ts.map +1 -1
  160. package/dist/query.js +3 -1
  161. package/dist/query.js.map +1 -1
  162. package/dist/row-keys.d.ts.map +1 -1
  163. package/dist/row-keys.js.map +1 -1
  164. package/dist/runtime/inline.d.ts +7 -10
  165. package/dist/runtime/inline.d.ts.map +1 -1
  166. package/dist/runtime/inline.js +21 -31
  167. package/dist/runtime/inline.js.map +1 -1
  168. package/dist/runtime/json.d.ts.map +1 -1
  169. package/dist/runtime/json.js.map +1 -1
  170. package/dist/runtime/splice.d.ts.map +1 -1
  171. package/dist/runtime/splice.js +3 -1
  172. package/dist/runtime/splice.js.map +1 -1
  173. package/dist/runtime/write.d.ts.map +1 -1
  174. package/dist/runtime/write.js +5 -2
  175. package/dist/runtime/write.js.map +1 -1
  176. package/dist/schema/column.d.ts +2 -2
  177. package/dist/schema/column.d.ts.map +1 -1
  178. package/dist/schema/index.d.ts +4 -4
  179. package/dist/schema/index.d.ts.map +1 -1
  180. package/dist/schema/normalize.d.ts.map +1 -1
  181. package/dist/schema/pg-catalog.d.ts +15 -2
  182. package/dist/schema/pg-catalog.d.ts.map +1 -1
  183. package/dist/schema/pg-types.d.ts.map +1 -1
  184. package/dist/transaction.d.ts.map +1 -1
  185. package/dist/transaction.js.map +1 -1
  186. package/dist/type-map/index.d.ts +3 -3
  187. package/dist/type-map/index.d.ts.map +1 -1
  188. package/package.json +14 -1
  189. package/src/adapter.ts +13 -0
  190. package/src/cache/discover.ts +297 -150
  191. package/src/cache/evaluate.ts +576 -0
  192. package/src/cache/format.ts +150 -105
  193. package/src/cache/job.ts +784 -612
  194. package/src/cache/mapper.ts +129 -89
  195. package/src/cache/print.ts +186 -120
  196. package/src/cache/rpc.ts +79 -57
  197. package/src/cache/scan.ts +91 -82
  198. package/src/cache/store.ts +176 -99
  199. package/src/create-sql.ts +721 -312
  200. package/src/editor/call.ts +168 -0
  201. package/src/editor/complete.ts +282 -0
  202. package/src/editor/index.ts +60 -0
  203. package/src/editor/scan.ts +841 -0
  204. package/src/editor/schema.ts +187 -0
  205. package/src/engine/ast.ts +609 -303
  206. package/src/engine/binder/clauses.ts +541 -173
  207. package/src/engine/binder/from.ts +871 -242
  208. package/src/engine/binder/narrow.ts +131 -40
  209. package/src/engine/binder/resolve.ts +214 -86
  210. package/src/engine/cache.ts +229 -85
  211. package/src/engine/ddl/apply.ts +1136 -424
  212. package/src/engine/errors.ts +12 -8
  213. package/src/engine/index.ts +108 -0
  214. package/src/engine/infer.ts +242 -108
  215. package/src/engine/inline.ts +340 -152
  216. package/src/engine/json.ts +391 -121
  217. package/src/engine/lexer/chars.ts +71 -6
  218. package/src/engine/lexer/lex.ts +468 -183
  219. package/src/engine/lexer/next.ts +1 -1
  220. package/src/engine/lexer/tokens.ts +24 -6
  221. package/src/engine/lexer/unicode.ts +421 -95
  222. package/src/engine/named.ts +183 -63
  223. package/src/engine/parser/ddl.ts +1932 -645
  224. package/src/engine/parser/dml.ts +583 -217
  225. package/src/engine/parser/expr.ts +1474 -624
  226. package/src/engine/parser/json.ts +702 -291
  227. package/src/engine/parser/keywords.ts +198 -27
  228. package/src/engine/parser/merge.ts +216 -81
  229. package/src/engine/parser/select.ts +1257 -504
  230. package/src/engine/parser/stmt.ts +121 -45
  231. package/src/engine/parser/typename.ts +163 -55
  232. package/src/engine/parser/util.ts +147 -59
  233. package/src/engine/parser/utility.ts +92 -47
  234. package/src/engine/parser/xml.ts +478 -187
  235. package/src/engine/project/dml.ts +1312 -391
  236. package/src/engine/project/merge.ts +335 -93
  237. package/src/engine/project/naming.ts +83 -28
  238. package/src/engine/project/select.ts +929 -297
  239. package/src/engine/project/stmt.ts +25 -7
  240. package/src/engine/shape.ts +37 -15
  241. package/src/engine/splice.ts +260 -81
  242. package/src/engine/suggest.ts +157 -65
  243. package/src/engine/typer/catalog.ts +1404 -668
  244. package/src/engine/typer/operators.ts +561 -180
  245. package/src/engine/typer/params.ts +943 -229
  246. package/src/engine/typer/pg-functions.ts +85 -62
  247. package/src/engine/typer/sqljson.ts +299 -99
  248. package/src/engine/typer/typeof.ts +753 -241
  249. package/src/engine/typer/xml.ts +245 -76
  250. package/src/engine/types.ts +86 -30
  251. package/src/engine/write.ts +115 -36
  252. package/src/index.ts +46 -24
  253. package/src/migrations.ts +62 -45
  254. package/src/query.ts +124 -82
  255. package/src/row-keys.ts +42 -29
  256. package/src/runtime/inline.ts +106 -88
  257. package/src/runtime/json.ts +17 -11
  258. package/src/runtime/splice.ts +206 -152
  259. package/src/runtime/write.ts +67 -46
  260. package/src/schema/column.ts +45 -16
  261. package/src/schema/index.ts +38 -4
  262. package/src/schema/normalize.ts +88 -33
  263. package/src/schema/pg-catalog.ts +16 -3
  264. package/src/schema/pg-types.ts +63 -18
  265. package/src/transaction.ts +60 -35
  266. package/src/type-map/index.ts +126 -91
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # @typesql/core
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - What adapters and custom executors build on moved to `@typesql/core/adapter`: `createTransactionalSql`, `runTransaction`, `SqlDriver`, `mapRows`, `rowKeysOf`, `camelCase` and `JsonParam`.
8
+
9
+ - The engine's types (`Analyze`, `ArgsOf`, `KeyedRow`, `ListRep`, `SetRep`, the inline markers, lexer, parser, schema and type cache types, …) moved to `@typesql/core/engine`; the root keeps `Sql`, `Query`, `Fragment`, the schema helpers, `RowOf`, `ParamsOf`, `Validate`, `ApplyDdl` and the other types you write in application code.
10
+
11
+ - The root export is the user-facing API only: the standalone `param`, `valueOrDefault` and `json` are gone (use `sql.param`, `sql.json`), and so are the splice and query-building helpers (`splice`, `renumberParams`, `maxParam`, `quoteIdent`, `joinFragments`, `hasSlots`, `rewriteNamed`, `makeQuery`, `makeFragment`).
12
+
13
+ - `sql.valueOrDefault` is removed: `sql.param(value)` sends `DEFAULT` when the value is `undefined`, and a value that can be `undefined` is a compile error where `DEFAULT` is not allowed and inside `sql.fragment`.
14
+
15
+ - `sql.list` is merged into `sql.join`: joining a runtime array of fragments whose texts are known is checked as `sql.list` did, and `sql.join` throws when there are no items.
16
+
17
+ ### Patch Changes
18
+
19
+ - No user-visible change: PostgreSQL's parser (libpg-query) is a development dependency, for a test that compares parse trees.
20
+
21
+ - No user-visible change: the type cache job evaluates statements through an internal module the type oracles share.
22
+
23
+ - Types follow PostgreSQL 18: `PgCatalog` has the new catalog columns (`pg_attribute.attcacheoff` is gone), the new built-in functions are known, and `reverse(bytea)` and `json(b)_strip_nulls(x, strip_in_arrays)` are typed.
24
+
25
+ - The README's documentation links point to the docs site, after its pages moved.
26
+
27
+ - No user-visible change: comments in the type engine say its rules are verified against PostgreSQL 18, which the type and function oracles now check.
28
+
29
+ - No user-visible change: simpler printed-type parsing in the type cache job, with mutation-testing annotations.
30
+
31
+ ## 0.4.0
32
+
33
+ ### Minor Changes
34
+
35
+ - Editor completions inside `sql()` strings: `@typesql/core/editor` suggests tables, views, schemas and columns (with their types) at the cursor, for the new TypeSQL VS Code extension on top of TypeScript 7.1. See the "Editor completions" guide.
36
+
3
37
  ## 0.3.0
4
38
 
5
39
  ### Minor Changes
package/README.md CHANGED
@@ -13,7 +13,7 @@ and rejects its syntax errors ([how it is tested](https://typesql.karsli.net/gui
13
13
  pnpm add @typesql/core
14
14
  ```
15
15
 
16
- [Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/PTAEBUE8AcFMGUCKAZAXKACgewM4BcBzAJ1h1CWQBpRoBDInWAE1ACNIIYEBjIgS2h4A5GTxdQOSPlgBbAHSgAokz55QeABaxyKULQB2LDVgBusIuq3quOVACgQoIlgDuZAyzpFaM2HnNkAGZYADYhrtQeoDJ8+LQA1qR6JKDcWDLQfCHa5s4MoFj6ltr4-PoEcnZ8GVhEagDeqSS0-vAAjiHUYnCgAMKhXeIA4rD65i3Mgz0AcgCuYbSs2VPaGPQ+OFBwK6AASq5b2gC+oIHOMqAARAAC3aQdwGkklwDcdlX6-kSBtNzaACIAIVA9TsoFAs0YDHQoPB4L4THQIzG3n8TAAPJc+J8ACyXAB8L1Ajg0tHcoCYsB+8zw6Cwgj4hVoIQKRQAktN4IpduAwXDZLQsuh+iFMf4AB54AlvOEU2LQEK0SAAfX0Plg6DmCyWsDFsEl0r54N4sAmTGVLSRo3GaLF1VIeB8ggAXobwUcZTRcHhbCCjaAEVaUWbMdi8AAON1w2izTS1ZWBvqhUO4qPgvCqbLC5OXCVSwn+1hYJiQTXzRU6vUGgvut5Hd5pfT4CQdUAAXiaptaHXRQPxAAoAJRvBxgZCKABi4FAACkAPIc6IJJKabT8AgaNQ4BHafTlxbZIkAEgAjOpl2RVKJxGd0hC5AjKo3m212y2Qv2AAZc8e9aezB8mGoACBSyahoDkDM8Gyf1ZTg8EJ12OcAFkIShMhZlAccp1nBdpi9fAyGgUA53wiCYzjIgExYDsAIRWD4NlAB1AAJblFHvBE31PT9qAAdmHOw7j2Vw332FxDnRO4sECUA2gLRxwQAPQAfiE8Q1m8GQyA7TSNkk6TZPkt5FNAVT3kcABBAhiFgAgJncQxUlCWYZCKNVfCCUJwhcTBvVs300lmT5+wAKkHANL0+cNIgkPAygICFDHMUB9GLWAAFpoH8kgcCfQpmziH03xwDovx-RQ-z0WNjCohFqCCkLwuoGRaHFfsoOyCLLPgUBFX8ZtEJQgjiqGJCAFUMFAQEAE1qso6jP0E4T4EdYqO3EgyuBkuKWhwBSwGUtTR1ANl9BCbFtBMZlZiSegSlGNQyVAI8ii8dUvkclhuC0bhEhYWh7OxZsXC0FJVw4e60OYfKmzUUCWQ7S5aCYWhrn1J1sjkNIZFeOxnzUE0zRKsrPw5LkeVO6ZwDnaH8n7BGIoANUs5BxsUXr+yPepSpCOR3pkBnWqyQcjgi3ZFHAcbdmmDkhgDIDOzNC08CWt5hN6Zo0TEg4uCk7bZKJtEDrhcyTuQ2JHUSdwUhxzJslAXJajIQpih0ZA4oShQJz4cVihkexefKxRf2nfRfFAIbUMhAI1eJMAnaIdA0hCVyikucPYEuCksCSNL4fFS27CDsnOW5acORpkayA6zNYGZ1n2c509B14q4WNgMIsEuYd48dog8nQCjauoyLQGmOdp2mcbkA9qJSTINKKSpGMQjwOwgA) <!-- playground:core --> to hover the types and edit the SQL, with nothing to install.
16
+ [Open an 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 --> to hover the types and edit the SQL, with nothing to install.
17
17
 
18
18
  Add the adapter for your driver to run queries: [`@typesql/pg`](https://www.npmjs.com/package/@typesql/pg)
19
19
  (node-postgres) or [`@typesql/postgres`](https://www.npmjs.com/package/@typesql/postgres)
@@ -68,9 +68,9 @@ checked against their context.
68
68
  - **Typed JSON**: `json_build_object`, `json_agg`, `to_json(t)` and `->` / `#>` give the JSON's
69
69
  structure, typed as Postgres serializes it.
70
70
  - **Postgres column naming** (`?column?`, `count`, `lower`) and Postgres-worded compile errors.
71
- - **Fragments**: `sql.fragment`, `sql.id`, `sql.join`, `sql.list` (runtime arrays of typed elements), `sql.raw`, spliced into inference with
72
- `$n` renumbering.
73
- - **Write helpers**: `sql.valueOrDefault(x)` sends `DEFAULT` for `undefined`; `sql.set(table, partial)`
71
+ - **Fragments**: `sql.fragment`, `sql.id`, `sql.join` (also over runtime arrays of typed
72
+ elements), `sql.raw`, spliced into inference with `$n` renumbering.
73
+ - **Write helpers**: `sql.param(x)` sends `DEFAULT` for `undefined`; `sql.set(table, partial)`
74
74
  and `sql.values(table, rows)` build typed `SET` lists and `VALUES` rows from objects.
75
75
  - **DDL**: `ApplyDdl<DB, "ALTER TABLE …">` and the `migrations()` builder derive the schema from
76
76
  your migrations.
@@ -109,14 +109,16 @@ opt-in slice: `createSql<DB & PgCatalog>()`.
109
109
  TypeScript 7.1 or later (the native compiler; `7.1.0-beta` works) and Node.js 26 or later.
110
110
  PostgreSQL semantics only.
111
111
 
112
- Optionally, a [type cache](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/guide/caching.md)
112
+ Optionally, a [type cache](https://typesql.karsli.net/guide/performance#type-cache)
113
113
  file, which TypeScript 7.1's content mappers let this package serve and keep up to date, saves
114
114
  recomputing query types on every `tsc` run and every edit.
115
115
 
116
116
  ## Documentation
117
117
 
118
- [Guide](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/guide/getting-started.md) ·
119
- [API reference](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/reference/api.md) ·
120
- [DDL support](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/reference/ddl.md) ·
121
- [Errors and limits](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/guide/errors-and-limits.md) ·
122
- [Type cache](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/guide/caching.md)
118
+ [Guide](https://typesql.karsli.net/guide/introduction) ·
119
+ [API reference](https://typesql.karsli.net/reference/api) ·
120
+ [DDL support](https://typesql.karsli.net/reference/ddl) ·
121
+ [Errors](https://typesql.karsli.net/guide/errors) ·
122
+ [Limits](https://typesql.karsli.net/guide/limits) ·
123
+ [Type cache](https://typesql.karsli.net/guide/performance#type-cache) ·
124
+ [VS Code extension](https://typesql.karsli.net/guide/editor)
@@ -0,0 +1,9 @@
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
+ export { mapRows, rowKeysOf } from "./query.js";
6
+ export { camelCase } from "./row-keys.js";
7
+ export { JsonParam } from "./runtime/json.js";
8
+ export { createTransactionalSql, runTransaction, type SqlDriver, } from "./transaction.js";
9
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","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"}
@@ -0,0 +1,9 @@
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
+ export { mapRows, rowKeysOf } from "./query.js";
6
+ export { camelCase } from "./row-keys.js";
7
+ export { JsonParam } from "./runtime/json.js";
8
+ export { createTransactionalSql, runTransaction, } from "./transaction.js";
9
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","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"}
@@ -17,6 +17,7 @@ export interface Kinds {
17
17
  export interface SqlSite {
18
18
  /** The query literal (with `:name` and `${sql.param()}` markers as written). */
19
19
  readonly key: string;
20
+ readonly file: string;
20
21
  readonly db: Type;
21
22
  readonly tm: Type;
22
23
  readonly keys: Type;
@@ -26,10 +27,12 @@ export interface SqlSite {
26
27
  /** A statement written as a type: `RowOf<DB, TM, "SELECT …">`, or a literal argument of the project's own alias. */
27
28
  export interface TypeSite {
28
29
  readonly key: string;
30
+ readonly file: string;
29
31
  readonly db: Type;
30
32
  }
31
33
  export interface DdlSite {
32
34
  readonly key: string;
35
+ readonly file: string;
33
36
  /** The schema before the step (`Migrations<DB>`'s `DB`). */
34
37
  readonly db: Type;
35
38
  }
@@ -38,4 +41,6 @@ export declare function discover(program: Program, checker: Checker, kinds: Kind
38
41
  types: TypeSite[];
39
42
  ddl: DdlSite[];
40
43
  }>;
44
+ /** Whether `type` is a reference to one of core's `names` (`Sql`, `Migrations`, …). */
45
+ export declare function isCoreRef(type: Type, names: readonly string[], isCorePath: (path: string) => boolean): Promise<boolean>;
41
46
  //# sourceMappingURL=discover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAsB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGnF,6FAA6F;AAC7F,MAAM,WAAW,KAAK;IACpB,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;CACvC;AAED,MAAM,WAAW,OAAO;IACtB,gFAAgF;IAChF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,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;CAC7B;AAED,oHAAoH;AACpH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CACnB;AASD,wBAAsB,QAAQ,CAC5B,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,GACrC,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CA6EhE"}
1
+ {"version":3,"file":"discover.d.ts","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,CAyJhE;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,7 +1,25 @@
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
+ */
1
7
  const SLOT = /\{[A-Za-z_][A-Za-z0-9_]*\}/;
2
8
  /** Core aliases taking `(DB, …, Q)`: the index of `Q`. */
3
- const QUERY_ALIASES = { RowOf: 2, ParamsOf: 2, ArgsOf: 2, ParamsArgs: 2, Validate: 1, KindOf: 1, NamesOf: 1, Analysis: 1 };
4
- const DDL_ALIASES = { ApplyDdl: 1, ValidateDdl: 1 };
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
+ };
5
23
  const LOOKS_LIKE_QUERY = /^\s*(\(\s*)*(select|with|insert|update|delete|values|table)\b/i;
6
24
  const LOOKS_LIKE_DDL = /^\s*(create|alter|drop|comment)\b/i;
7
25
  export async function discover(program, checker, kinds, isCorePath, include) {
@@ -22,58 +40,83 @@ export async function discover(program, checker, kinds, isCorePath, include) {
22
40
  const fileDbs = new Map();
23
41
  const loose = [];
24
42
  // statements written as types
25
- const syms = refs.length ? await checker.getSymbolAtLocation(refs.map((r) => r.typeName)) : [];
43
+ const syms = refs.length
44
+ ? await checker.getSymbolAtLocation(refs.map((r) => r.typeName))
45
+ : [];
26
46
  await Promise.all(refs.map(async (r, i) => {
27
47
  let sym = syms[i];
28
48
  if (sym && sym.flags & 2097152 /* SymbolFlags.Alias */)
29
49
  sym = await checker.getAliasedSymbol(sym);
30
50
  const args = r.typeArguments ?? [];
31
51
  const isCore = !!sym && sym.declarations.some((d) => isCorePath(d.path));
32
- const qAt = isCore ? (QUERY_ALIASES[sym.name] ?? DDL_ALIASES[sym.name]) : undefined;
52
+ const qAt = isCore
53
+ ? (QUERY_ALIASES[sym.name] ?? DDL_ALIASES[sym.name])
54
+ : undefined;
33
55
  if (qAt !== undefined && args[0] && args[qAt]) {
34
56
  const db = await checker.getTypeFromTypeNode(args[0]);
35
57
  fileDbs.set(db.id, db);
36
58
  const key = literalOf(args[qAt], kinds);
37
59
  if (key === null)
38
60
  return;
39
- (sym.name in DDL_ALIASES ? ddl : types).push({ key, db });
61
+ (sym.name in DDL_ALIASES ? ddl : types).push({
62
+ key,
63
+ db,
64
+ file: fileName,
65
+ });
40
66
  return;
41
67
  }
42
68
  // the project's own alias of a core one: `type Row<Q extends string> = RowOf<DB, TM, Q>`
43
- const wrapped = sym && !isCore ? await wrappedCoreAlias(sym, program, checker, kinds, isCorePath, aliasMemo) : null;
69
+ const wrapped = sym && !isCore
70
+ ? await wrappedCoreAlias(sym, program, checker, kinds, isCorePath, aliasMemo)
71
+ : null;
44
72
  if (wrapped) {
45
- const key = args[wrapped.param] ? literalOf(args[wrapped.param], kinds) : null;
73
+ const key = args[wrapped.param]
74
+ ? literalOf(args[wrapped.param], kinds)
75
+ : null;
76
+ // Stryker disable next-line ConditionalExpression: a null key (the alias given a non-literal) gives no entry either way; this skips evaluating it
46
77
  if (key !== null)
47
- (wrapped.ddl ? ddl : types).push({ key, db: wrapped.db });
78
+ (wrapped.ddl ? ddl : types).push({
79
+ key,
80
+ db: wrapped.db,
81
+ file: fileName,
82
+ });
48
83
  }
49
84
  else if (!isCore) {
50
85
  for (const a of args) {
51
86
  const key = literalOf(a, kinds);
52
- if (key !== null && (LOOKS_LIKE_QUERY.test(key) || LOOKS_LIKE_DDL.test(key)))
87
+ if (key !== null &&
88
+ (LOOKS_LIKE_QUERY.test(key) || LOOKS_LIKE_DDL.test(key)))
53
89
  loose.push(key);
54
90
  }
55
91
  }
56
92
  }));
57
93
  // migration steps: the receiver is core's Migrations<DB>
58
- const adds = calls.filter((c) => c.expression.kind === kinds.PropertyAccessExpression && c.expression.name.text === "add");
94
+ const adds = calls.filter((c) => c.expression.kind === kinds.PropertyAccessExpression &&
95
+ c.expression.name.text === "add");
59
96
  if (adds.length) {
60
97
  const receivers = await checker.getTypeAtLocation(adds.map((c) => c.expression.expression));
61
98
  const args = await checker.getTypeAtLocation(adds.map((c) => c.arguments[0]));
62
99
  await Promise.all(adds.map(async (_, i) => {
63
100
  const r = receivers[i];
64
101
  const a = args[i];
65
- if (!a.isStringLiteralType() || !(await isCoreRef(r, ["Migrations"], isCorePath)))
102
+ if (!a.isStringLiteralType() ||
103
+ !(await isCoreRef(r, ["Migrations"], isCorePath)))
66
104
  return;
67
105
  const [db] = await checker.getTypeArguments(r);
106
+ // Stryker disable next-line ConditionalExpression: a Migrations<DB> receiver has its type argument
68
107
  if (db)
69
- ddl.push({ key: a.value, db });
108
+ ddl.push({ key: a.value, db, file: fileName });
70
109
  }));
71
110
  }
72
111
  // sql(…) calls: the callee is core's Sql or TransactionalSql
73
112
  const others = calls.filter((c) => !adds.includes(c));
74
- const callees = others.length ? await checker.getTypeAtLocation(others.map((c) => c.expression)) : [];
113
+ const callees = others.length
114
+ ? await checker.getTypeAtLocation(others.map((c) => c.expression))
115
+ : [];
75
116
  const hits = (await Promise.all(others.map((_, i) => isCoreRef(callees[i], ["Sql", "TransactionalSql"], isCorePath).then((ok) => (ok ? i : -1))))).filter((i) => i >= 0);
76
- const firstArgs = hits.length ? await checker.getTypeAtLocation(hits.map((i) => others[i].arguments[0])) : [];
117
+ const firstArgs = hits.length
118
+ ? await checker.getTypeAtLocation(hits.map((i) => others[i].arguments[0]))
119
+ : [];
77
120
  await Promise.all(hits.map(async (i, k) => {
78
121
  const [db, tm, keys] = await checker.getTypeArguments(callees[i]);
79
122
  if (!db || !tm || !keys)
@@ -83,12 +126,18 @@ export async function discover(program, checker, kinds, isCorePath, include) {
83
126
  if (!a.isStringLiteralType())
84
127
  return;
85
128
  const call = others[i];
86
- const slots = SLOT.test(a.value) && call.arguments.length > 1 ? await checker.getTypeAtLocation(call.arguments[1]) : null;
87
- sql.push({ key: a.value, db, tm, keys, slots });
129
+ const slots = SLOT.test(a.value) && call.arguments.length > 1
130
+ ? await checker.getTypeAtLocation(call.arguments[1])
131
+ : null;
132
+ sql.push({ key: a.value, db, tm, keys, slots, file: fileName });
88
133
  }));
89
134
  for (const key of loose)
90
135
  for (const db of fileDbs.values())
91
- (LOOKS_LIKE_DDL.test(key) ? ddl : types).push({ key, db });
136
+ (LOOKS_LIKE_DDL.test(key) ? ddl : types).push({
137
+ key,
138
+ db,
139
+ file: fileName,
140
+ });
92
141
  }
93
142
  return { sql, types, ddl };
94
143
  }
@@ -115,11 +164,16 @@ function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo) {
115
164
  const dbArg = ref.typeArguments?.[0];
116
165
  if (!qArg || !dbArg || qArg.kind !== kinds.TypeReference)
117
166
  return null;
118
- const qName = qArg.typeName.text;
167
+ const qName = qArg.typeName
168
+ .text;
119
169
  const param = decl.typeParameters?.findIndex((tp) => tp.name.text === qName) ?? -1;
120
170
  if (param < 0)
121
171
  return null;
122
- return { param, db: await checker.getTypeFromTypeNode(dbArg), ddl: target.name in DDL_ALIASES };
172
+ return {
173
+ param,
174
+ db: await checker.getTypeFromTypeNode(dbArg),
175
+ ddl: target.name in DDL_ALIASES,
176
+ };
123
177
  })();
124
178
  memo.set(sym.id, found);
125
179
  }
@@ -135,19 +189,24 @@ function nodesIn(sf, kinds) {
135
189
  const calls = [];
136
190
  const refs = [];
137
191
  const walk = (n) => {
138
- if (n.kind === kinds.CallExpression && n.arguments.length > 0)
192
+ if (n.kind === kinds.CallExpression &&
193
+ n.arguments.length > 0)
139
194
  calls.push(n);
140
- else if (n.kind === kinds.TypeReference && n.typeArguments?.some((a) => literalOf(a, kinds) !== null))
195
+ else if (n.kind === kinds.TypeReference &&
196
+ n.typeArguments?.some((a) => literalOf(a, kinds) !== null))
141
197
  refs.push(n);
142
198
  n.forEachChild(walk);
143
199
  };
144
200
  walk(sf);
145
201
  return { calls, refs };
146
202
  }
147
- async function isCoreRef(type, names, isCorePath) {
203
+ /** Whether `type` is a reference to one of core's `names` (`Sql`, `Migrations`, …). */
204
+ export async function isCoreRef(type, names, isCorePath) {
148
205
  if (!type.isTypeReference())
149
206
  return false;
150
207
  const sym = await type.getSymbol();
151
- return !!sym && names.includes(sym.name) && sym.declarations.some((d) => isCorePath(d.path));
208
+ return (!!sym &&
209
+ names.includes(sym.name) &&
210
+ sym.declarations.some((d) => isCorePath(d.path)));
152
211
  }
153
212
  //# sourceMappingURL=discover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuDH,MAAM,IAAI,GAAG,4BAA4B,CAAC;AAC1C,0DAA0D;AAC1D,MAAM,aAAa,GAAwC;IAC1D,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;CACX,CAAC;AACF,MAAM,WAAW,GAAwC;IACxD,QAAQ,EAAE,CAAC;IACX,WAAW,EAAE,CAAC;CACd,CAAC;AACF,MAAM,gBAAgB,GACrB,gEAAgE,CAAC;AAClE,MAAM,cAAc,GAAG,oCAAoC,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,OAAgB,EAChB,OAAgB,EAChB,KAAY,EACZ,UAAqC,EACrC,OAAsC;IAEtC,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC7D,KAAK,MAAM,QAAQ,IAAI,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,SAAS;QACjC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,SAAS;QAC5C,mFAAmF;QACnF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,8BAA8B;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;YACvB,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;QACN,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,uBAAuB;gBACrD,GAAG,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GACX,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM;gBACjB,CAAC,CAAC,CAAC,aAAa,CAAC,GAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC,CAAC,SAAS,CAAC;YACb,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,KAAK,CAAC,CAAC;gBACzC,IAAI,GAAG,KAAK,IAAI;oBAAE,OAAO;gBACzB,CAAC,GAAI,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;oBAC7C,GAAG;oBACH,EAAE;oBACF,IAAI,EAAE,QAAQ;iBACd,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YACD,yFAAyF;YACzF,MAAM,OAAO,GACZ,GAAG,IAAI,CAAC,MAAM;gBACb,CAAC,CAAC,MAAM,gBAAgB,CACtB,GAAG,EACH,OAAO,EACP,OAAO,EACP,KAAK,EACL,UAAU,EACV,SAAS,CACT;gBACF,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC9B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,EAAE,KAAK,CAAC;oBACxC,CAAC,CAAC,IAAI,CAAC;gBACR,kJAAkJ;gBAClJ,IAAI,GAAG,KAAK,IAAI;oBACf,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;wBAChC,GAAG;wBACH,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,QAAQ;qBACd,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACtB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAChC,IACC,GAAG,KAAK,IAAI;wBACZ,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAExD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CACF,CAAC;QAEF,yDAAyD;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,wBAAwB;YACnD,CAAC,CAAC,UAAuC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAC/D,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAChD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,UAAuC,CAAC,UAAU,CAAC,CACtE,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAChC,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;gBACnB,IACC,CAAC,CAAC,CAAC,mBAAmB,EAAE;oBACxB,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;oBAEjD,OAAO;gBACR,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAU,CAAC,CAAC;gBACxD,mGAAmG;gBACnG,IAAI,EAAE;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,CACF,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;YAC5B,CAAC,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;QACN,MAAM,IAAI,GAAG,CACZ,MAAM,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CACnE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CACD,CACD,CACD,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM;YAC5B,CAAC,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CACzC;YACF,CAAC,CAAC,EAAE,CAAC;QACN,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,gBAAgB,CACpD,OAAO,CAAC,CAAC,CAAW,CACpB,CAAC;YACF,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;gBAAE,OAAO;YAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE;gBAAE,OAAO;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACxB,MAAM,KAAK,GACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBAC9C,CAAC,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CACF,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,KAAK;YACtB,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;oBAC7C,GAAG;oBACH,EAAE;oBACF,IAAI,EAAE,QAAQ;iBACd,CAAC,CAAC;IACN,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC5B,CAAC;AASD,+GAA+G;AAC/G,SAAS,gBAAgB,CACxB,GAAa,EACb,OAAgB,EAChB,OAAgB,EAChB,KAAY,EACZ,UAAqC,EACrC,IAA0C;IAE1C,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,oBAAoB;gBAAE,OAAO,IAAI,CAAC;YACvE,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAE5C,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YACrE,MAAM,GAAG,GAAG,IAAyB,CAAC;YACtC,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,OAAO;gBACnC,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YACb,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YACtE,MAAM,KAAK,GAAK,IAA0B,CAAC,QAA8B;iBACvE,IAAI,CAAC;YACP,MAAM,KAAK,GACV,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3B,OAAO;gBACN,KAAK;gBACL,EAAE,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAC5C,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW;aAC/B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,IAAc,EAAE,KAAY;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,GAAG,GAAI,IAAwB,CAAC,OAAO,CAAC;IAC9C,OAAO,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC,CAAE,GAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CACf,EAAc,EACd,KAAY;IAEZ,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,CAAO,EAAQ,EAAE;QAC9B,IACC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,cAAc;YAC9B,CAAoB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAE1C,KAAK,CAAC,IAAI,CAAC,CAAmB,CAAC,CAAC;aAC5B,IACJ,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa;YAC7B,CAAuB,CAAC,aAAa,EAAE,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CACnC;YAED,IAAI,CAAC,IAAI,CAAC,CAAsB,CAAC,CAAC;QACnC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC9B,IAAU,EACV,KAAwB,EACxB,UAAqC;IAErC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACnC,OAAO,CACN,CAAC,CAAC,GAAG;QACL,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,87 @@
1
+ import type { Node, SourceFile } from "typescript/ast";
2
+ import type { API as AsyncAPI, Checker, Program, Type } from "typescript/async";
3
+ import type { Kinds } from "./discover.js";
4
+ /** The project's `typescript` package: its async API, fs helpers and syntax kinds. */
5
+ export interface TypeScript {
6
+ readonly API: typeof AsyncAPI;
7
+ readonly createFileSystemLayer: (files: readonly (readonly [string, string])[]) => unknown;
8
+ readonly kinds: Kinds & {
9
+ readonly VariableStatement: number;
10
+ };
11
+ }
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";
14
+ export interface ProbeProgram {
15
+ readonly program: Program;
16
+ readonly checker: Checker;
17
+ readonly sf: SourceFile;
18
+ }
19
+ export declare class ProbeSession {
20
+ private ts;
21
+ private api;
22
+ private snapshot;
23
+ private changed;
24
+ private disposed;
25
+ private readonly configFile;
26
+ readonly probe: string;
27
+ constructor(configFile: string, probe: string);
28
+ typescript(): Promise<TypeScript>;
29
+ markChanged(files: Iterable<string>): void;
30
+ close(): Promise<void>;
31
+ /** Close for good: a request in progress fails at its next program instead of reopening. */
32
+ dispose(): Promise<void>;
33
+ withProbe(text: string): Promise<ProbeProgram>;
34
+ }
35
+ export type Evaluated = {
36
+ readonly text: string;
37
+ } | {
38
+ readonly error: string;
39
+ };
40
+ export declare function evaluateTypes(session: ProbeSession, base: string, exprs: readonly string[], isCorePath: (path: string) => boolean): Promise<Evaluated[]>;
41
+ export declare function evaluateAnalyses(session: ProbeSession, base: string, items: readonly {
42
+ readonly db: string;
43
+ readonly text: string;
44
+ }[], isCorePath: (path: string) => boolean): Promise<Evaluated[]>;
45
+ /** `export declare const name: …` declarations of the probe, by name. */
46
+ export declare function declarations(sf: SourceFile, kinds: TypeScript["kinds"]): Map<string, Node>;
47
+ 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
+ export declare function badDeclarations(program: Program, sf: SourceFile): Promise<Map<string, string>>;
50
+ export declare const lineOf: (text: string, offset: number) => number;
51
+ export type TypeValue = string | number | boolean | null | readonly TypeValue[] | TypeRecord | {
52
+ readonly union: readonly TypeValue[];
53
+ } | {
54
+ readonly and: readonly TypeValue[];
55
+ } | {
56
+ readonly ref: string;
57
+ };
58
+ export type TypeRecord = {
59
+ readonly [key: string]: TypeValue;
60
+ };
61
+ export declare function parseTypeText(text: string): TypeValue;
62
+ export interface AnalysisType {
63
+ readonly type: string;
64
+ readonly nullable: boolean;
65
+ readonly printed?: string;
66
+ }
67
+ export interface Analysis {
68
+ readonly kind: string;
69
+ /** Columns of a `*` expansion are marked `star`: their order is the object type's, not the statement's. */
70
+ readonly cols: readonly ({
71
+ readonly name: string;
72
+ readonly star?: true;
73
+ } & AnalysisType)[];
74
+ /** By parameter number (1-based). */
75
+ readonly params: {
76
+ readonly [n: number]: AnalysisType;
77
+ };
78
+ readonly max: number;
79
+ readonly names: readonly string[];
80
+ }
81
+ export interface AnalysisError {
82
+ readonly error: string;
83
+ readonly pos: number | null;
84
+ }
85
+ export declare function readAnalysis(text: string): Analysis | AnalysisError;
86
+ export declare const asRecord: (v: TypeValue | undefined) => TypeRecord | null;
87
+ //# sourceMappingURL=evaluate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.d.ts","sources":["../../src/cache/evaluate.ts"],"names":[],"mappings":"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"}