@cavelang/cli 0.34.0 → 0.36.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 (344) hide show
  1. package/README.md +225 -13
  2. package/dist/internal/act/action.js +2 -1
  3. package/dist/internal/act/action.js.map +1 -1
  4. package/dist/internal/act/declare.d.ts.map +1 -1
  5. package/dist/internal/act/declare.js +82 -53
  6. package/dist/internal/act/declare.js.map +1 -1
  7. package/dist/internal/act/engine.d.ts +4 -3
  8. package/dist/internal/act/engine.d.ts.map +1 -1
  9. package/dist/internal/act/engine.js +121 -32
  10. package/dist/internal/act/engine.js.map +1 -1
  11. package/dist/internal/automate/cancellation.d.ts +3 -0
  12. package/dist/internal/automate/cancellation.d.ts.map +1 -0
  13. package/dist/internal/automate/cancellation.js +38 -0
  14. package/dist/internal/automate/cancellation.js.map +1 -0
  15. package/dist/internal/automate/declare.d.ts.map +1 -1
  16. package/dist/internal/automate/declare.js +49 -24
  17. package/dist/internal/automate/declare.js.map +1 -1
  18. package/dist/internal/automate/engine.d.ts +7 -3
  19. package/dist/internal/automate/engine.d.ts.map +1 -1
  20. package/dist/internal/automate/engine.js +196 -93
  21. package/dist/internal/automate/engine.js.map +1 -1
  22. package/dist/internal/automate/error-message.d.ts +3 -0
  23. package/dist/internal/automate/error-message.d.ts.map +1 -0
  24. package/dist/internal/automate/error-message.js +10 -0
  25. package/dist/internal/automate/error-message.js.map +1 -0
  26. package/dist/internal/automate/main.d.ts.map +1 -1
  27. package/dist/internal/automate/main.js +240 -35
  28. package/dist/internal/automate/main.js.map +1 -1
  29. package/dist/internal/automate/options.d.ts +4 -0
  30. package/dist/internal/automate/options.d.ts.map +1 -0
  31. package/dist/internal/automate/options.js +19 -0
  32. package/dist/internal/automate/options.js.map +1 -0
  33. package/dist/internal/connect/declared.d.ts +204 -0
  34. package/dist/internal/connect/declared.d.ts.map +1 -0
  35. package/dist/internal/connect/declared.js +610 -0
  36. package/dist/internal/connect/declared.js.map +1 -0
  37. package/dist/internal/connect/error-message.d.ts +3 -0
  38. package/dist/internal/connect/error-message.d.ts.map +1 -0
  39. package/dist/internal/connect/error-message.js +10 -0
  40. package/dist/internal/connect/error-message.js.map +1 -0
  41. package/dist/internal/connect/federation.d.ts +9 -0
  42. package/dist/internal/connect/federation.d.ts.map +1 -0
  43. package/dist/internal/connect/federation.js +19 -0
  44. package/dist/internal/connect/federation.js.map +1 -0
  45. package/dist/internal/connect/fetch-failure.d.ts +3 -0
  46. package/dist/internal/connect/fetch-failure.d.ts.map +1 -0
  47. package/dist/internal/connect/fetch-failure.js +36 -0
  48. package/dist/internal/connect/fetch-failure.js.map +1 -0
  49. package/dist/internal/connect/index.d.ts +4 -2
  50. package/dist/internal/connect/index.d.ts.map +1 -1
  51. package/dist/internal/connect/index.js +3 -1
  52. package/dist/internal/connect/index.js.map +1 -1
  53. package/dist/internal/connect/main.d.ts +1 -0
  54. package/dist/internal/connect/main.d.ts.map +1 -1
  55. package/dist/internal/connect/main.js +575 -59
  56. package/dist/internal/connect/main.js.map +1 -1
  57. package/dist/internal/connect/options.d.ts +3 -0
  58. package/dist/internal/connect/options.d.ts.map +1 -0
  59. package/dist/internal/connect/options.js +9 -0
  60. package/dist/internal/connect/options.js.map +1 -0
  61. package/dist/internal/connect/records.d.ts +3 -0
  62. package/dist/internal/connect/records.d.ts.map +1 -0
  63. package/dist/internal/connect/records.js +21 -0
  64. package/dist/internal/connect/records.js.map +1 -0
  65. package/dist/internal/connect/run.d.ts +48 -19
  66. package/dist/internal/connect/run.d.ts.map +1 -1
  67. package/dist/internal/connect/run.js +185 -77
  68. package/dist/internal/connect/run.js.map +1 -1
  69. package/dist/internal/connect/source.d.ts +36 -3
  70. package/dist/internal/connect/source.d.ts.map +1 -1
  71. package/dist/internal/connect/source.js +378 -39
  72. package/dist/internal/connect/source.js.map +1 -1
  73. package/dist/internal/connect/template.d.ts +20 -2
  74. package/dist/internal/connect/template.d.ts.map +1 -1
  75. package/dist/internal/connect/template.js +53 -9
  76. package/dist/internal/connect/template.js.map +1 -1
  77. package/dist/internal/connect/utf8.d.ts +3 -0
  78. package/dist/internal/connect/utf8.d.ts.map +1 -0
  79. package/dist/internal/connect/utf8.js +12 -0
  80. package/dist/internal/connect/utf8.js.map +1 -0
  81. package/dist/internal/eval/cleanup.d.ts +5 -0
  82. package/dist/internal/eval/cleanup.d.ts.map +1 -0
  83. package/dist/internal/eval/cleanup.js +50 -0
  84. package/dist/internal/eval/cleanup.js.map +1 -0
  85. package/dist/internal/eval/error-message.d.ts +3 -0
  86. package/dist/internal/eval/error-message.d.ts.map +1 -0
  87. package/dist/internal/eval/error-message.js +10 -0
  88. package/dist/internal/eval/error-message.js.map +1 -0
  89. package/dist/internal/eval/judge.d.ts.map +1 -1
  90. package/dist/internal/eval/judge.js +3 -31
  91. package/dist/internal/eval/judge.js.map +1 -1
  92. package/dist/internal/eval/loop.d.ts.map +1 -1
  93. package/dist/internal/eval/loop.js +18 -4
  94. package/dist/internal/eval/loop.js.map +1 -1
  95. package/dist/internal/eval/main.d.ts.map +1 -1
  96. package/dist/internal/eval/main.js +22 -10
  97. package/dist/internal/eval/main.js.map +1 -1
  98. package/dist/internal/eval/options.d.ts +6 -0
  99. package/dist/internal/eval/options.d.ts.map +1 -0
  100. package/dist/internal/eval/options.js +31 -0
  101. package/dist/internal/eval/options.js.map +1 -0
  102. package/dist/internal/eval/queries.d.ts.map +1 -1
  103. package/dist/internal/eval/queries.js +9 -6
  104. package/dist/internal/eval/queries.js.map +1 -1
  105. package/dist/internal/eval/run.d.ts.map +1 -1
  106. package/dist/internal/eval/run.js +112 -24
  107. package/dist/internal/eval/run.js.map +1 -1
  108. package/dist/internal/eval/score.d.ts.map +1 -1
  109. package/dist/internal/eval/score.js +9 -2
  110. package/dist/internal/eval/score.js.map +1 -1
  111. package/dist/internal/eval/suite.d.ts.map +1 -1
  112. package/dist/internal/eval/suite.js +14 -2
  113. package/dist/internal/eval/suite.js.map +1 -1
  114. package/dist/internal/ingest/cleanup.d.ts +5 -0
  115. package/dist/internal/ingest/cleanup.d.ts.map +1 -0
  116. package/dist/internal/ingest/cleanup.js +50 -0
  117. package/dist/internal/ingest/cleanup.js.map +1 -0
  118. package/dist/internal/ingest/content.d.ts +6 -0
  119. package/dist/internal/ingest/content.d.ts.map +1 -0
  120. package/dist/internal/ingest/content.js +25 -0
  121. package/dist/internal/ingest/content.js.map +1 -0
  122. package/dist/internal/ingest/context.d.ts.map +1 -1
  123. package/dist/internal/ingest/context.js +25 -7
  124. package/dist/internal/ingest/context.js.map +1 -1
  125. package/dist/internal/ingest/error-message.d.ts +3 -0
  126. package/dist/internal/ingest/error-message.d.ts.map +1 -0
  127. package/dist/internal/ingest/error-message.js +10 -0
  128. package/dist/internal/ingest/error-message.js.map +1 -0
  129. package/dist/internal/ingest/files.d.ts +4 -12
  130. package/dist/internal/ingest/files.d.ts.map +1 -1
  131. package/dist/internal/ingest/files.js +22 -10
  132. package/dist/internal/ingest/files.js.map +1 -1
  133. package/dist/internal/ingest/main.d.ts.map +1 -1
  134. package/dist/internal/ingest/main.js +48 -17
  135. package/dist/internal/ingest/main.js.map +1 -1
  136. package/dist/internal/ingest/options.d.ts +6 -0
  137. package/dist/internal/ingest/options.d.ts.map +1 -0
  138. package/dist/internal/ingest/options.js +27 -0
  139. package/dist/internal/ingest/options.js.map +1 -0
  140. package/dist/internal/ingest/prompt.d.ts.map +1 -1
  141. package/dist/internal/ingest/prompt.js +14 -10
  142. package/dist/internal/ingest/prompt.js.map +1 -1
  143. package/dist/internal/ingest/run.d.ts +9 -2
  144. package/dist/internal/ingest/run.d.ts.map +1 -1
  145. package/dist/internal/ingest/run.js +206 -62
  146. package/dist/internal/ingest/run.js.map +1 -1
  147. package/dist/internal/ingest/timeout.d.ts +3 -0
  148. package/dist/internal/ingest/timeout.d.ts.map +1 -0
  149. package/dist/internal/ingest/timeout.js +14 -0
  150. package/dist/internal/ingest/timeout.js.map +1 -0
  151. package/dist/internal/ingest/web.d.ts +2 -11
  152. package/dist/internal/ingest/web.d.ts.map +1 -1
  153. package/dist/internal/ingest/web.js +131 -25
  154. package/dist/internal/ingest/web.js.map +1 -1
  155. package/dist/internal/loop/budgets.d.ts +3 -0
  156. package/dist/internal/loop/budgets.d.ts.map +1 -0
  157. package/dist/internal/loop/budgets.js +10 -0
  158. package/dist/internal/loop/budgets.js.map +1 -0
  159. package/dist/internal/loop/index.d.ts +2 -0
  160. package/dist/internal/loop/index.d.ts.map +1 -1
  161. package/dist/internal/loop/index.js +2 -0
  162. package/dist/internal/loop/index.js.map +1 -1
  163. package/dist/internal/loop/json-answer.d.ts +7 -0
  164. package/dist/internal/loop/json-answer.d.ts.map +1 -0
  165. package/dist/internal/loop/json-answer.js +79 -0
  166. package/dist/internal/loop/json-answer.js.map +1 -0
  167. package/dist/internal/loop/json-spans.d.ts +3 -0
  168. package/dist/internal/loop/json-spans.d.ts.map +1 -0
  169. package/dist/internal/loop/json-spans.js +88 -0
  170. package/dist/internal/loop/json-spans.js.map +1 -0
  171. package/dist/internal/loop/llm.d.ts +3 -2
  172. package/dist/internal/loop/llm.d.ts.map +1 -1
  173. package/dist/internal/loop/llm.js +115 -32
  174. package/dist/internal/loop/llm.js.map +1 -1
  175. package/dist/internal/loop/process.d.ts +3 -1
  176. package/dist/internal/loop/process.d.ts.map +1 -1
  177. package/dist/internal/loop/process.js +159 -59
  178. package/dist/internal/loop/process.js.map +1 -1
  179. package/dist/internal/loop/read-snapshot.d.ts +4 -0
  180. package/dist/internal/loop/read-snapshot.d.ts.map +1 -0
  181. package/dist/internal/loop/read-snapshot.js +29 -0
  182. package/dist/internal/loop/read-snapshot.js.map +1 -0
  183. package/dist/internal/loop/reconstruct.d.ts +6 -5
  184. package/dist/internal/loop/reconstruct.d.ts.map +1 -1
  185. package/dist/internal/loop/reconstruct.js +19 -8
  186. package/dist/internal/loop/reconstruct.js.map +1 -1
  187. package/dist/internal/loop/score-settings.d.ts +5 -0
  188. package/dist/internal/loop/score-settings.d.ts.map +1 -0
  189. package/dist/internal/loop/score-settings.js +14 -0
  190. package/dist/internal/loop/score-settings.js.map +1 -0
  191. package/dist/internal/loop/sqlite.d.ts.map +1 -1
  192. package/dist/internal/loop/sqlite.js +15 -7
  193. package/dist/internal/loop/sqlite.js.map +1 -1
  194. package/dist/internal/loop/store.d.ts.map +1 -1
  195. package/dist/internal/loop/store.js +11 -7
  196. package/dist/internal/loop/store.js.map +1 -1
  197. package/dist/internal/loop/timeout.d.ts +3 -0
  198. package/dist/internal/loop/timeout.d.ts.map +1 -0
  199. package/dist/internal/loop/timeout.js +13 -0
  200. package/dist/internal/loop/timeout.js.map +1 -0
  201. package/dist/internal/mcp/error-message.d.ts +3 -0
  202. package/dist/internal/mcp/error-message.d.ts.map +1 -0
  203. package/dist/internal/mcp/error-message.js +10 -0
  204. package/dist/internal/mcp/error-message.js.map +1 -0
  205. package/dist/internal/mcp/main.d.ts.map +1 -1
  206. package/dist/internal/mcp/main.js +44 -27
  207. package/dist/internal/mcp/main.js.map +1 -1
  208. package/dist/internal/mcp/read-snapshot.d.ts +4 -0
  209. package/dist/internal/mcp/read-snapshot.d.ts.map +1 -0
  210. package/dist/internal/mcp/read-snapshot.js +22 -0
  211. package/dist/internal/mcp/read-snapshot.js.map +1 -0
  212. package/dist/internal/mcp/server.d.ts.map +1 -1
  213. package/dist/internal/mcp/server.js +181 -21
  214. package/dist/internal/mcp/server.js.map +1 -1
  215. package/dist/internal/mcp/source.d.ts +3 -0
  216. package/dist/internal/mcp/source.d.ts.map +1 -0
  217. package/dist/internal/mcp/source.js +13 -0
  218. package/dist/internal/mcp/source.js.map +1 -0
  219. package/dist/internal/mcp/tools.d.ts.map +1 -1
  220. package/dist/internal/mcp/tools.js +135 -72
  221. package/dist/internal/mcp/tools.js.map +1 -1
  222. package/dist/internal/rules/declarations.d.ts +6 -0
  223. package/dist/internal/rules/declarations.d.ts.map +1 -0
  224. package/dist/internal/rules/declarations.js +14 -0
  225. package/dist/internal/rules/declarations.js.map +1 -0
  226. package/dist/internal/rules/declare.d.ts.map +1 -1
  227. package/dist/internal/rules/declare.js +30 -16
  228. package/dist/internal/rules/declare.js.map +1 -1
  229. package/dist/internal/rules/engine.d.ts +8 -7
  230. package/dist/internal/rules/engine.d.ts.map +1 -1
  231. package/dist/internal/rules/engine.js +150 -44
  232. package/dist/internal/rules/engine.js.map +1 -1
  233. package/dist/internal/rules/rule.d.ts.map +1 -1
  234. package/dist/internal/rules/rule.js +1 -22
  235. package/dist/internal/rules/rule.js.map +1 -1
  236. package/dist/internal/shape/alias-root.d.ts +3 -0
  237. package/dist/internal/shape/alias-root.d.ts.map +1 -0
  238. package/dist/internal/shape/alias-root.js +13 -0
  239. package/dist/internal/shape/alias-root.js.map +1 -0
  240. package/dist/internal/shape/check.d.ts +15 -3
  241. package/dist/internal/shape/check.d.ts.map +1 -1
  242. package/dist/internal/shape/check.js +230 -100
  243. package/dist/internal/shape/check.js.map +1 -1
  244. package/dist/internal/shape/client.d.ts.map +1 -1
  245. package/dist/internal/shape/client.js +42 -20
  246. package/dist/internal/shape/client.js.map +1 -1
  247. package/dist/internal/shape/constraints.d.ts +8 -0
  248. package/dist/internal/shape/constraints.d.ts.map +1 -0
  249. package/dist/internal/shape/constraints.js +17 -0
  250. package/dist/internal/shape/constraints.js.map +1 -0
  251. package/dist/internal/shape/edit-distance.d.ts +3 -0
  252. package/dist/internal/shape/edit-distance.d.ts.map +1 -0
  253. package/dist/internal/shape/edit-distance.js +33 -0
  254. package/dist/internal/shape/edit-distance.js.map +1 -0
  255. package/dist/internal/shape/gate.d.ts.map +1 -1
  256. package/dist/internal/shape/gate.js +0 -0
  257. package/dist/internal/shape/gate.js.map +1 -1
  258. package/dist/internal/shape/snapshot.d.ts +4 -0
  259. package/dist/internal/shape/snapshot.d.ts.map +1 -0
  260. package/dist/internal/shape/snapshot.js +20 -0
  261. package/dist/internal/shape/snapshot.js.map +1 -0
  262. package/dist/internal/shape/suggest.d.ts +8 -6
  263. package/dist/internal/shape/suggest.d.ts.map +1 -1
  264. package/dist/internal/shape/suggest.js +208 -92
  265. package/dist/internal/shape/suggest.js.map +1 -1
  266. package/dist/internal/sync/error-message.d.ts +3 -0
  267. package/dist/internal/sync/error-message.d.ts.map +1 -0
  268. package/dist/internal/sync/error-message.js +10 -0
  269. package/dist/internal/sync/error-message.js.map +1 -0
  270. package/dist/internal/sync/index.d.ts +3 -2
  271. package/dist/internal/sync/index.d.ts.map +1 -1
  272. package/dist/internal/sync/index.js +3 -2
  273. package/dist/internal/sync/index.js.map +1 -1
  274. package/dist/internal/sync/sync.d.ts +8 -5
  275. package/dist/internal/sync/sync.d.ts.map +1 -1
  276. package/dist/internal/sync/sync.js +322 -65
  277. package/dist/internal/sync/sync.js.map +1 -1
  278. package/dist/internal/view/api.d.ts +3 -1
  279. package/dist/internal/view/api.d.ts.map +1 -1
  280. package/dist/internal/view/api.js +154 -90
  281. package/dist/internal/view/api.js.map +1 -1
  282. package/dist/internal/view/error-message.d.ts +3 -0
  283. package/dist/internal/view/error-message.d.ts.map +1 -0
  284. package/dist/internal/view/error-message.js +10 -0
  285. package/dist/internal/view/error-message.js.map +1 -0
  286. package/dist/internal/view/main.d.ts.map +1 -1
  287. package/dist/internal/view/main.js +63 -9
  288. package/dist/internal/view/main.js.map +1 -1
  289. package/dist/internal/view/page.d.ts.map +1 -1
  290. package/dist/internal/view/page.js +119 -20
  291. package/dist/internal/view/page.js.map +1 -1
  292. package/dist/internal/view/report.d.ts.map +1 -1
  293. package/dist/internal/view/report.js +180 -145
  294. package/dist/internal/view/report.js.map +1 -1
  295. package/dist/internal/view/scope.d.ts +6 -2
  296. package/dist/internal/view/scope.d.ts.map +1 -1
  297. package/dist/internal/view/scope.js +107 -24
  298. package/dist/internal/view/scope.js.map +1 -1
  299. package/dist/internal/view/sensitivity.d.ts +4 -0
  300. package/dist/internal/view/sensitivity.d.ts.map +1 -0
  301. package/dist/internal/view/sensitivity.js +11 -0
  302. package/dist/internal/view/sensitivity.js.map +1 -0
  303. package/dist/internal/view/server.d.ts.map +1 -1
  304. package/dist/internal/view/server.js +57 -20
  305. package/dist/internal/view/server.js.map +1 -1
  306. package/dist/src/atomic-output.d.ts +3 -0
  307. package/dist/src/atomic-output.d.ts.map +1 -0
  308. package/dist/src/atomic-output.js +67 -0
  309. package/dist/src/atomic-output.js.map +1 -0
  310. package/dist/src/cli.d.ts +17 -2
  311. package/dist/src/cli.d.ts.map +1 -1
  312. package/dist/src/cli.js +333 -195
  313. package/dist/src/cli.js.map +1 -1
  314. package/dist/src/commands.d.ts +2 -2
  315. package/dist/src/commands.js +2 -2
  316. package/dist/src/commands.js.map +1 -1
  317. package/dist/src/dispatch.d.ts.map +1 -1
  318. package/dist/src/dispatch.js +10 -3
  319. package/dist/src/dispatch.js.map +1 -1
  320. package/dist/src/doctor.d.ts +1 -1
  321. package/dist/src/doctor.d.ts.map +1 -1
  322. package/dist/src/doctor.js +192 -91
  323. package/dist/src/doctor.js.map +1 -1
  324. package/dist/src/error-message.d.ts +3 -0
  325. package/dist/src/error-message.d.ts.map +1 -0
  326. package/dist/src/error-message.js +20 -0
  327. package/dist/src/error-message.js.map +1 -0
  328. package/dist/src/hooks-config.d.ts +3 -0
  329. package/dist/src/hooks-config.d.ts.map +1 -0
  330. package/dist/src/hooks-config.js +23 -0
  331. package/dist/src/hooks-config.js.map +1 -0
  332. package/dist/src/index.d.ts +1 -1
  333. package/dist/src/index.d.ts.map +1 -1
  334. package/dist/src/index.js +1 -1
  335. package/dist/src/index.js.map +1 -1
  336. package/package.json +23 -20
  337. package/src/atomic-output.ts +47 -0
  338. package/src/cli.ts +345 -171
  339. package/src/commands.ts +2 -2
  340. package/src/dispatch.ts +10 -3
  341. package/src/doctor.ts +207 -100
  342. package/src/error-message.ts +13 -0
  343. package/src/hooks-config.ts +22 -0
  344. package/src/index.ts +1 -1
@@ -1,13 +1,68 @@
1
1
  /**
2
2
  * Record sources (spec §23) — CSV/TSV files, JSON documents, JSONL streams,
3
- * SQLite databases (read-only), and http(s) URLs serving JSON or CSV. Every
3
+ * SQLite databases (read-only), and http(s) URLs serving JSON, JSONL, CSV or TSV. Every
4
4
  * source loads to the same shape: an array of flat-ish records the template
5
5
  * layer resolves fields from (`fieldOf` handles nested JSON by dot path).
6
6
  */
7
- import { readFileSync } from 'node:fs';
7
+ import { captureRecords } from "./records.js";
8
+ import { rethrowFetchFailure } from "./fetch-failure.js";
9
+ import { decodeText, readText } from "./utf8.js";
8
10
  import { basename, extname } from 'node:path';
9
11
  import { DatabaseSync } from 'node:sqlite';
10
12
  import { fieldOf } from "./template.js";
13
+ /** Close an owned source connection once without replacing a query failure. */
14
+ const withSourceDatabase = (db, read) => {
15
+ let result;
16
+ try {
17
+ result = read();
18
+ }
19
+ catch (error) {
20
+ try {
21
+ db.close();
22
+ }
23
+ catch (closeError) {
24
+ throw new AggregateError([error, closeError], 'CAVE source SQL failed and database close also failed', { cause: error });
25
+ }
26
+ throw error;
27
+ }
28
+ db.close();
29
+ return result;
30
+ };
31
+ /** Every record format, in `--format` order. */
32
+ export const formats = ['csv', 'tsv', 'json', 'jsonl', 'sqlite'];
33
+ const explicitFormat = (value) => {
34
+ switch (value) {
35
+ case undefined:
36
+ case 'csv':
37
+ case 'tsv':
38
+ case 'json':
39
+ case 'jsonl':
40
+ case 'sqlite':
41
+ return value;
42
+ default:
43
+ throw new TypeError('format must be csv, tsv, json, jsonl or sqlite');
44
+ }
45
+ };
46
+ const captureOptions = (options) => {
47
+ const signal = options.signal;
48
+ signal?.throwIfAborted();
49
+ return {
50
+ signal, format: explicitFormat(options.format), delimiter: options.delimiter,
51
+ table: options.table, sql: options.sql, records: options.records,
52
+ timeoutSeconds: options.timeoutSeconds, fetchImpl: options.fetchImpl
53
+ };
54
+ };
55
+ const fetchTimeoutMs = (seconds) => {
56
+ const milliseconds = typeof seconds === 'number' ? seconds * 1000 : NaN;
57
+ const rounded = Math.round(milliseconds);
58
+ const tolerance = Number.EPSILON * Math.max(1, Math.abs(milliseconds));
59
+ if (!Number.isFinite(milliseconds) || seconds < 0 ||
60
+ rounded < (seconds === 0 ? 0 : 1) || rounded > 2147483647 ||
61
+ Math.abs(milliseconds - rounded) > tolerance) {
62
+ throw new TypeError('timeoutSeconds must resolve to whole milliseconds in 0..2147483647');
63
+ }
64
+ return rounded;
65
+ };
11
66
  export const isUrl = (source) => /^https?:\/\//i.test(source);
12
67
  const extensionFormats = {
13
68
  '.csv': 'csv',
@@ -21,8 +76,9 @@ const extensionFormats = {
21
76
  };
22
77
  /** Infers the source format from an explicit option or the file/URL extension. */
23
78
  export const formatOf = (source, options = {}) => {
24
- if (options.format !== undefined) {
25
- return options.format;
79
+ const supplied = explicitFormat(options.format);
80
+ if (supplied !== undefined) {
81
+ return supplied;
26
82
  }
27
83
  const path = isUrl(source) ? new URL(source).pathname : source;
28
84
  const format = extensionFormats[extname(path).toLowerCase()];
@@ -48,10 +104,15 @@ export const nameOf = (source) => {
48
104
  * newlines; records split on LF or CRLF. The first row names the fields.
49
105
  */
50
106
  const parseCsvLocated = (text, delimiter = ',') => {
107
+ if (typeof delimiter !== 'string' || delimiter.length !== 1 || /["\r\n]/.test(delimiter)) {
108
+ throw new Error('CSV delimiter must be a single character other than a double quote or line break');
109
+ }
51
110
  const rows = [];
52
111
  let row = [];
53
112
  let field = '';
54
113
  let quoted = false;
114
+ let hasQuotedField = false;
115
+ let quoteStart = 1;
55
116
  let line = 1;
56
117
  let rowStart = 1;
57
118
  const body = text.startsWith('\uFEFF') ? text.slice(1) : text;
@@ -61,8 +122,9 @@ const parseCsvLocated = (text, delimiter = ',') => {
61
122
  };
62
123
  const endRow = () => {
63
124
  endField();
64
- rows.push({ cells: row, span: { startLine: rowStart, endLine: line } });
125
+ rows.push({ cells: row, span: { startLine: rowStart, endLine: line }, hasQuotedField });
65
126
  row = [];
127
+ hasQuotedField = false;
66
128
  rowStart = line + 1;
67
129
  };
68
130
  for (let i = 0; i < body.length; i++) {
@@ -75,6 +137,11 @@ const parseCsvLocated = (text, delimiter = ',') => {
75
137
  }
76
138
  else {
77
139
  quoted = false;
140
+ const next = body[i + 1];
141
+ if (next !== undefined && next !== delimiter && next !== '\n' &&
142
+ !(next === '\r' && body[i + 2] === '\n')) {
143
+ throw new Error(`CSV line ${line}: unexpected character after closing quote`);
144
+ }
78
145
  }
79
146
  }
80
147
  else if (char === '\r' && body[i + 1] === '\n') {
@@ -84,8 +151,12 @@ const parseCsvLocated = (text, delimiter = ',') => {
84
151
  field += char;
85
152
  }
86
153
  }
87
- else if (char === '"' && field === '') {
154
+ else if (char === '"') {
155
+ if (field !== '')
156
+ throw new Error(`CSV line ${line}: unexpected quote in unquoted field`);
88
157
  quoted = true;
158
+ hasQuotedField = true;
159
+ quoteStart = line;
89
160
  }
90
161
  else if (char === delimiter) {
91
162
  endField();
@@ -100,17 +171,33 @@ const parseCsvLocated = (text, delimiter = ',') => {
100
171
  line += 1;
101
172
  }
102
173
  }
103
- if (field !== '' || row.length > 0) {
174
+ if (quoted) {
175
+ throw new Error(`CSV line ${quoteStart}: unterminated quoted field`);
176
+ }
177
+ if (field !== '' || row.length > 0 || hasQuotedField) {
104
178
  endRow();
105
179
  }
106
180
  const [headerRow, ...dataRows] = rows;
107
181
  const header = headerRow?.cells;
108
182
  if (header === undefined) {
109
- return { records: [], spans: [] };
183
+ return { records: [], spans: [], columns: [] };
184
+ }
185
+ const columns = header.map(cell => cell.trim());
186
+ const names = new Set();
187
+ for (const name of columns) {
188
+ if (names.has(name))
189
+ throw new Error(`CSV line ${headerRow.span.startLine}: duplicate column name ${JSON.stringify(name)}`);
190
+ names.add(name);
110
191
  }
111
- const present = dataRows.filter(row_ => row_.cells.length > 1 || row_.cells[0] !== '');
192
+ const present = dataRows.filter(row_ => row_.hasQuotedField || row_.cells.length > 1 || row_.cells[0] !== '');
112
193
  return {
113
- records: present.map(row_ => Object.fromEntries(header.map((name, at) => [name.trim(), row_.cells[at] ?? '']))),
194
+ columns,
195
+ records: present.map(row_ => {
196
+ if (row_.cells.length > columns.length) {
197
+ throw new Error(`CSV line ${row_.span.startLine}: ${row_.cells.length} cells exceed ${columns.length} header columns`);
198
+ }
199
+ return Object.fromEntries(columns.map((name, at) => [name, row_.cells[at] ?? '']));
200
+ }),
114
201
  spans: present.map(row_ => row_.span)
115
202
  };
116
203
  };
@@ -127,7 +214,13 @@ const asRecords = (value, source) => {
127
214
  });
128
215
  };
129
216
  const parseJson = (text, source, options) => {
130
- const parsed = JSON.parse(text);
217
+ let parsed;
218
+ try {
219
+ parsed = JSON.parse(text);
220
+ }
221
+ catch (error) {
222
+ throw new SyntaxError(`${source}: invalid JSON — ${error instanceof Error ? error.message : String(error)}`, { cause: error });
223
+ }
131
224
  const picked = options.records === undefined ? parsed : fieldOf(parsed, options.records);
132
225
  if (options.records !== undefined && picked === undefined) {
133
226
  throw new Error(`${source}: --records ${JSON.stringify(options.records)} not found`);
@@ -140,7 +233,13 @@ const parseJsonlLocated = (text, source) => {
140
233
  .filter(entry => entry.line.trim() !== '');
141
234
  return {
142
235
  records: located.map(entry => {
143
- const parsed = JSON.parse(entry.line);
236
+ let parsed;
237
+ try {
238
+ parsed = JSON.parse(entry.line);
239
+ }
240
+ catch (error) {
241
+ throw new Error(`${source}: line ${entry.lineNo}: invalid JSON — ${error instanceof Error ? error.message : String(error)}`, { cause: error });
242
+ }
144
243
  if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
145
244
  throw new Error(`${source}: line ${entry.lineNo} is not a JSON object`);
146
245
  }
@@ -153,59 +252,299 @@ const parseJsonlLocated = (text, source) => {
153
252
  const sqliteValue = (value) => typeof value === 'bigint' ?
154
253
  (Number.isSafeInteger(Number(value)) ? Number(value) : value.toString()) :
155
254
  value;
255
+ /** Require a record projection before execution; object rows also need unique names. */
256
+ const uniqueResultColumns = (statement) => {
257
+ const columns = statement.columns();
258
+ if (columns.length === 0) {
259
+ throw new Error('SQL source query must return columns — use SELECT to project records');
260
+ }
261
+ const names = new Set();
262
+ for (const { name } of columns) {
263
+ if (names.has(name)) {
264
+ throw new Error(`duplicate SQL result column ${JSON.stringify(name)} — use distinct AS aliases`);
265
+ }
266
+ names.add(name);
267
+ }
268
+ };
269
+ /**
270
+ * The columns a missing-column diagnostic may refer to. SQLite strips
271
+ * backticks and brackets before reporting, keeps the double quotes of a
272
+ * plain quoted identifier, and drops them from a qualified reference, so
273
+ * `r."last.name"` arrives as `r.last.name`, which could be column
274
+ * `last.name` of `r` or column `r.last.name` of the table, and `"x"`
275
+ * could be the column `x` or a field literally named `"x"`. Over an empty
276
+ * table an extra column costs nothing, so every reading is staged and the
277
+ * query resolves whichever it meant.
278
+ */
279
+ const inferColumns = (reference) => {
280
+ const quoted = /^"([^]*)"$/.exec(reference);
281
+ if (quoted !== null) {
282
+ return [reference, quoted[1]];
283
+ }
284
+ const segments = reference.split('.');
285
+ return segments.map((_, at) => segments.slice(at).join('.'));
286
+ };
287
+ /**
288
+ * The column a SQLite diagnostic says is missing, or `undefined` for any
289
+ * other error. The hint SQLite appends to a double-quoted identifier is a
290
+ * fixed phrase and appears only after a leading quote, so it is stripped
291
+ * exactly and only there — a bare name that happens to end in the phrase
292
+ * is the name. A `JOIN … USING` column arrives with its own fixed suffix.
293
+ */
294
+ const missingColumn = (message) => {
295
+ const hint = ' - should this be a string literal in single-quotes?';
296
+ // A quoted name may span lines, so the capture does too.
297
+ const column = /no such column: ([^]+)$/.exec(message)?.[1];
298
+ if (column !== undefined) {
299
+ return column.startsWith('"') && column.endsWith(hint) ? column.slice(0, -hint.length) : column;
300
+ }
301
+ return /cannot join using column ([^]+) - column not present in both tables$/.exec(message)?.[1];
302
+ };
303
+ /** Only readable string diagnostics can justify retrying an empty source. */
304
+ const missingColumnOf = (error) => {
305
+ try {
306
+ if (!(error instanceof Error))
307
+ return undefined;
308
+ const message = error.message;
309
+ return typeof message === 'string' ? missingColumn(message) : undefined;
310
+ }
311
+ catch {
312
+ return undefined;
313
+ }
314
+ };
315
+ /**
316
+ * The SQLite representation of a record field: scalars as they are
317
+ * (a bigint exact while SQLite's signed 64-bit integer holds it, its
318
+ * decimal text beyond), booleans as 0/1, anything structured as JSON text.
319
+ */
320
+ const finiteValue = (value) => {
321
+ if (typeof value === 'number' && !Number.isFinite(value)) {
322
+ throw new Error('non-finite numeric field cannot be staged for --sql');
323
+ }
324
+ return value;
325
+ };
326
+ const sqlValue = (value) => {
327
+ finiteValue(value);
328
+ return value === undefined || value === null ? null :
329
+ typeof value === 'number' || typeof value === 'string' ? value :
330
+ typeof value === 'bigint' ? (value >= -(2n ** 63n) && value < 2n ** 63n ? value : value.toString()) :
331
+ typeof value === 'boolean' ? (value ? 1 : 0) :
332
+ JSON.stringify(value, (_key, nested) => finiteValue(nested));
333
+ };
334
+ /** Capture the declared header once; an invalid header is not a schemaless source. */
335
+ const captureSchema = (schema) => {
336
+ if (schema === undefined)
337
+ return undefined;
338
+ const invalid = () => { throw new TypeError('SQL source schema must be a dense array of strings'); };
339
+ if (!Array.isArray(schema))
340
+ return invalid();
341
+ const length = schema.length;
342
+ if (!Number.isInteger(length) || length < 0 || length > 0xffffffff)
343
+ return invalid();
344
+ const columns = [];
345
+ for (let index = 0; index < length; index++) {
346
+ if (!Object.hasOwn(schema, index))
347
+ return invalid();
348
+ const column = schema[index];
349
+ if (typeof column !== 'string')
350
+ return invalid();
351
+ columns.push(column);
352
+ }
353
+ return columns;
354
+ };
355
+ /**
356
+ * Runs `sql` over the records loaded from a text format: the records
357
+ * become one temporary in-memory table (`records`, or `table`), one column
358
+ * per field in first-seen order, and the query's rows are the records
359
+ * that reach the mapping (spec §23.1). Line spans do not survive a query.
360
+ */
361
+ export const queryRecords = (records, sql, table = 'records', schema) => {
362
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(table)) {
363
+ throw new Error(`--table ${JSON.stringify(table)} is not a plain identifier`);
364
+ }
365
+ records = captureRecords(records);
366
+ schema = captureSchema(schema);
367
+ // The source's own columns first (a CSV header survives an empty file;
368
+ // a repeated header is one column, as it is one record field), then any
369
+ // field the records add.
370
+ const columns = [...new Set(schema ?? [])];
371
+ const known = new Set(columns);
372
+ for (const record of records) {
373
+ for (const key of Object.keys(record)) {
374
+ if (!known.has(key)) {
375
+ known.add(key);
376
+ columns.push(key);
377
+ }
378
+ }
379
+ }
380
+ // SQLite column names are case-insensitive — for ASCII letters only, as
381
+ // its own folding is — so two fields that differ only in ASCII case
382
+ // cannot both be staged, and merging them would lose data.
383
+ const fold = (name) => name.replace(/[A-Z]/g, letter => letter.toLowerCase());
384
+ const folded = new Map();
385
+ for (const column of columns) {
386
+ const other = folded.get(fold(column));
387
+ if (other !== undefined) {
388
+ throw new Error(`fields ${JSON.stringify(other)} and ${JSON.stringify(column)} differ only in case, which SQLite cannot tell apart — rename one in the source before --sql`);
389
+ }
390
+ folded.set(fold(column), column);
391
+ }
392
+ const quoted = (name) => `"${name.replaceAll('"', '""')}"`;
393
+ const stage = () => {
394
+ const db = new DatabaseSync(':memory:');
395
+ return withSourceDatabase(db, () => {
396
+ // No affinity: a value is exactly what the source gave — a CSV cell is
397
+ // text ("00123" stays "00123"), a JSON number is a number — and a query
398
+ // casts when it wants arithmetic (CAST(kg AS REAL) > 10).
399
+ db.exec(`CREATE TABLE ${quoted(table)} (${columns.length === 0 ? 'value' : columns.map(quoted).join(', ')})`);
400
+ if (columns.length > 0) {
401
+ const insert = db.prepare(`INSERT INTO ${quoted(table)} (${columns.map(quoted).join(', ')}) VALUES (${columns.map(() => '?').join(', ')})`);
402
+ for (const record of records) {
403
+ insert.run(...columns.map(column => sqlValue(Object.hasOwn(record, column) ? record[column] : undefined)));
404
+ }
405
+ }
406
+ else {
407
+ // Records without any field are still records: one row each, so a
408
+ // count or a constant projection sees them.
409
+ const insert = db.prepare(`INSERT INTO ${quoted(table)} DEFAULT VALUES`);
410
+ for (let i = 0; i < records.length; i += 1)
411
+ insert.run();
412
+ }
413
+ const statement = db.prepare(sql);
414
+ uniqueResultColumns(statement);
415
+ // Integers beyond the safe range arrive as bigints and become text in
416
+ // `sqliteValue`, instead of throwing out of range.
417
+ statement.setReadBigInts(true);
418
+ const rows = statement.all();
419
+ return rows.map(row => Object.fromEntries(Object.entries(row).map(([key, value]) => [key, sqliteValue(value)])));
420
+ });
421
+ };
422
+ // A schemaless source (JSON, JSONL) that became empty has no columns to
423
+ // offer, yet the query names the ones it expects: for an empty input
424
+ // only, learn them from SQLite's own complaint and retry, so the query
425
+ // answers with zero rows exactly as it would over a header-only CSV.
426
+ // A CSV cleared to nothing has no header either: an empty schema is no
427
+ // schema, not a header of zero columns.
428
+ const schemaless = schema === undefined || schema.length === 0;
429
+ // Every retry stages at least one column it did not know, so the loop
430
+ // ends when SQLite stops naming new ones — however wide the query.
431
+ for (;;) {
432
+ try {
433
+ return stage();
434
+ }
435
+ catch (error) {
436
+ // Only a schemaless, empty input infers: a header-bearing source keeps
437
+ // SQLite's own validation, so a typo stays a typo. A column named in
438
+ // `JOIN … USING` gets its own diagnostic.
439
+ // The name arrives exactly as SQLite parsed it, edge spaces included:
440
+ // `\` first \`` is the field " first ".
441
+ const reference = records.length === 0 && schemaless ? missingColumnOf(error) : undefined;
442
+ // The empty name is a column too: SQLite accepts `""`.
443
+ const names = reference === undefined ? [] : inferColumns(reference).filter(name => !known.has(name));
444
+ if (names.length === 0) {
445
+ throw error;
446
+ }
447
+ for (const name of names) {
448
+ known.add(name);
449
+ columns.push(name);
450
+ }
451
+ }
452
+ }
453
+ };
156
454
  const readSqlite = (path, options) => {
157
455
  if ((options.table === undefined) === (options.sql === undefined)) {
158
456
  throw new Error(`${path}: a SQLite source needs exactly one of --table or --sql`);
159
457
  }
160
458
  const sql = options.sql ?? `SELECT * FROM "${options.table.replaceAll('"', '""')}"`;
161
459
  const db = new DatabaseSync(path, { readOnly: true });
162
- try {
163
- const rows = db.prepare(sql).all();
460
+ return withSourceDatabase(db, () => {
461
+ const statement = db.prepare(sql);
462
+ uniqueResultColumns(statement);
463
+ statement.setReadBigInts(true);
464
+ const rows = statement.all();
164
465
  return rows.map(row => Object.fromEntries(Object.entries(row).map(([key, value]) => [key, sqliteValue(value)])));
466
+ });
467
+ };
468
+ /** Fetches a URL's body; the transport is injectable for tests. */
469
+ export const fetchText = async (url, options) => {
470
+ const signal = options.signal;
471
+ signal?.throwIfAborted();
472
+ if (/[\uD800-\uDFFF]/u.test(url))
473
+ throw new TypeError('URL must contain well-formed Unicode');
474
+ const timeoutSeconds = options.timeoutSeconds;
475
+ const timeout = AbortSignal.timeout(fetchTimeoutMs(timeoutSeconds === undefined ? 60 : timeoutSeconds));
476
+ const fetchImpl = options.fetchImpl ?? fetch;
477
+ try {
478
+ const response = await fetchImpl(url, {
479
+ headers: {
480
+ 'user-agent': 'cave-connect',
481
+ accept: 'application/json, text/csv;q=0.9, */*;q=0.8'
482
+ },
483
+ redirect: 'follow',
484
+ signal: signal === undefined ? timeout : AbortSignal.any([signal, timeout])
485
+ });
486
+ if (signal?.aborted) {
487
+ await response.body?.cancel().catch(() => undefined);
488
+ signal.throwIfAborted();
489
+ }
490
+ if (!response.ok) {
491
+ // Error bodies are not source data. Release the unread stream while keeping
492
+ // the HTTP status as the diagnostic even if transport cleanup fails.
493
+ await response.body?.cancel().catch(() => undefined);
494
+ throw new Error(`${url}: HTTP ${response.status}`);
495
+ }
496
+ const bytes = new Uint8Array(await response.arrayBuffer());
497
+ signal?.throwIfAborted();
498
+ const text = decodeText(bytes, url, false);
499
+ return { text, contentType: response.headers.get('content-type') ?? '' };
165
500
  }
166
- finally {
167
- db.close();
501
+ catch (error) {
502
+ return rethrowFetchFailure(signal, error);
168
503
  }
169
504
  };
170
- const fetchText = async (url, options) => {
171
- const response = await (options.fetchImpl ?? fetch)(url, {
172
- headers: {
173
- 'user-agent': 'cave-connect',
174
- accept: 'application/json, text/csv;q=0.9, */*;q=0.8'
175
- },
176
- redirect: 'follow',
177
- signal: AbortSignal.timeout((options.timeoutSeconds ?? 60) * 1000)
178
- });
179
- if (!response.ok) {
180
- throw new Error(`${url}: HTTP ${response.status}`);
505
+ /**
506
+ * Loads a local source synchronously — what assembling a text store needs
507
+ * (spec §23.4); a URL source is refused, since fetching it cannot be
508
+ * synchronous: `cave connect` follows URLs.
509
+ */
510
+ export const loadSync = (source, options = {}) => {
511
+ options = captureOptions(options);
512
+ if (isUrl(source)) {
513
+ throw new Error(`${source}: URL sources are followed by cave connect, not when assembling a text store`);
514
+ }
515
+ const format = formatOf(source, options);
516
+ if (format === 'sqlite') {
517
+ return { records: readSqlite(source, options), format };
181
518
  }
182
- return { text: await response.text(), contentType: response.headers.get('content-type') ?? '' };
519
+ return { ...queried(parseLocated(format, readText(source), source, options), options), format };
183
520
  };
521
+ /** Applies `sql`, when given, to records of a text format — the spans no longer align, so they go. */
522
+ const queried = (parsed, options) => options.sql === undefined ? parsed : { records: queryRecords(parsed.records, options.sql, options.table, parsed.columns) };
184
523
  /** Loads a source to records. Local files read synchronously; URLs fetch. */
185
524
  export const load = async (source, options = {}) => {
525
+ options = captureOptions(options);
186
526
  if (isUrl(source)) {
187
527
  const { text, contentType } = await fetchText(source, options);
528
+ const mediaType = contentType.split(';', 1)[0].trim().toLowerCase();
188
529
  const format = options.format ??
189
- (contentType.includes('json') ? 'json' :
190
- contentType.includes('csv') ? 'csv' :
191
- formatOf(source, options));
530
+ (mediaType.includes('ndjson') || mediaType.includes('jsonl') ? 'jsonl' :
531
+ mediaType.includes('json') ? 'json' :
532
+ mediaType.includes('csv') ? 'csv' :
533
+ mediaType === 'text/tab-separated-values' ? 'tsv' :
534
+ formatOf(source, options));
192
535
  if (format === 'sqlite') {
193
536
  throw new Error(`${source}: SQLite sources must be local files`);
194
537
  }
195
- return { ...parseLocated(format, text, source, options), format };
196
- }
197
- const format = formatOf(source, options);
198
- if (format === 'sqlite') {
199
- return { records: readSqlite(source, options), format };
538
+ return { ...queried(parseLocated(format, text, source, options), options), format };
200
539
  }
201
- return { ...parseLocated(format, readFileSync(source, 'utf8'), source, options), format };
540
+ return loadSync(source, options);
202
541
  };
203
542
  const parseLocated = (format, text, source, options) => {
204
543
  switch (format) {
205
544
  case 'csv':
206
- return parseCsvLocated(text, options.delimiter ?? ',');
545
+ return parseCsvLocated(text, options.delimiter === undefined ? ',' : options.delimiter);
207
546
  case 'tsv':
208
- return parseCsvLocated(text, options.delimiter ?? '\t');
547
+ return parseCsvLocated(text, options.delimiter === undefined ? '\t' : options.delimiter);
209
548
  case 'json':
210
549
  return { records: parseJson(text, source, options) };
211
550
  case 'jsonl':
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/source.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,24 @@ export declare const parse: (text: string) => {
56
56
  mapping?: Mapping;
57
57
  problems: readonly string[];
58
58
  };
59
+ /**
60
+ * Whether a mapping is written inline (spec §23.1): one line, a
61
+ * comma-separated list of claim lines in the §25.1 effect-template
62
+ * convention — `?name IS person, ?name WORKS-AT ?company` — recognized by
63
+ * a `?variable` token or a top-level comma. A path never has either.
64
+ */
65
+ export declare const isInline: (text: string) => boolean;
66
+ /**
67
+ * An inline mapping as the document it stands for: one claim line per
68
+ * top-level comma of the claim text; a trailing `; comment` belongs to the
69
+ * last line, commas and all.
70
+ */
71
+ export declare const inlineDocument: (text: string) => string;
72
+ /** Parses a mapping written as a document or inline (spec §23.1). */
73
+ export declare const parseAny: (text: string) => {
74
+ mapping?: Mapping;
75
+ problems: readonly string[];
76
+ };
59
77
  /**
60
78
  * Formats one field value for one template slot (spec §23.1). Deterministic
61
79
  * and exact — values insert verbatim when already token-safe, or as quoted
@@ -63,8 +81,8 @@ export declare const parse: (text: string) => {
63
81
  */
64
82
  export declare const formatValue: (value: unknown, position: "subject" | "payload") => Formatted;
65
83
  /**
66
- * Resolves a field by name: exact key first, then a dot path into nested
67
- * JSON (`address.city`, `items.0.sku`).
84
+ * Resolves a field by name: exact own key first, then a dot path through own
85
+ * properties in nested JSON (`address.city`, `items.0.sku`).
68
86
  */
69
87
  export declare const fieldOf: (record: unknown, name: string) => unknown;
70
88
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,MAAM,MAAM,OAAO,GAAG;IACpB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAA;IAClD,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,OAAO,CAAA;AAEvB,wDAAwD;AACxD,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAuDpF,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,EAAE,UAAU,SAAS,GAAG,SAAS,KAAG,SAqC7E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,OAAO,EAAE,MAAM,MAAM,KAAG,OAYvD,CAAA;AA0CD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,WAAW,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,KAChC,aAgDF,CAAA"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,MAAM,MAAM,OAAO,GAAG;IACpB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAA;IAClD,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,OAAO,CAAA;AAEvB,wDAAwD;AACxD,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAwDpF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,OAMvC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAO7C,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC,CAAA;AAIrD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,EAAE,UAAU,SAAS,GAAG,SAAS,KAAG,SAqC7E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,OAAO,EAAE,MAAM,MAAM,KAAG,OAYvD,CAAA;AAkDD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,WAAW,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,KAChC,aAkDF,CAAA"}