neoorm 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/README.md +4 -4
  2. package/dist/bin/neoorm.js +36 -27
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/diff-manifest.d.ts.map +1 -1
  5. package/dist/codegen/diff-manifest.js +55 -30
  6. package/dist/codegen/diff-manifest.js.map +1 -1
  7. package/dist/codegen/emit-includes.d.ts.map +1 -1
  8. package/dist/codegen/emit-includes.js +6 -6
  9. package/dist/codegen/emit-includes.js.map +1 -1
  10. package/dist/codegen/emit-models.d.ts.map +1 -1
  11. package/dist/codegen/emit-models.js +14 -14
  12. package/dist/codegen/emit-models.js.map +1 -1
  13. package/dist/codegen/generate.d.ts +11 -1
  14. package/dist/codegen/generate.d.ts.map +1 -1
  15. package/dist/codegen/generate.js +30 -11
  16. package/dist/codegen/generate.js.map +1 -1
  17. package/dist/codegen/manifest-relations.d.ts +2 -1
  18. package/dist/codegen/manifest-relations.d.ts.map +1 -1
  19. package/dist/codegen/manifest-relations.js +4 -27
  20. package/dist/codegen/manifest-relations.js.map +1 -1
  21. package/dist/codegen/schema-to-manifest.d.ts +3 -2
  22. package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
  23. package/dist/codegen/schema-to-manifest.js +9 -38
  24. package/dist/codegen/schema-to-manifest.js.map +1 -1
  25. package/dist/config.d.ts +6 -2
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +21 -13
  28. package/dist/config.js.map +1 -1
  29. package/dist/datasource-provider.d.ts +7 -0
  30. package/dist/datasource-provider.d.ts.map +1 -0
  31. package/dist/datasource-provider.js +11 -0
  32. package/dist/datasource-provider.js.map +1 -0
  33. package/dist/dialect/fk.d.ts.map +1 -1
  34. package/dist/dialect/fk.js +4 -2
  35. package/dist/dialect/fk.js.map +1 -1
  36. package/dist/dialect/postgres.d.ts.map +1 -1
  37. package/dist/dialect/postgres.js +11 -15
  38. package/dist/dialect/postgres.js.map +1 -1
  39. package/dist/dialect/shared.d.ts +3 -1
  40. package/dist/dialect/shared.d.ts.map +1 -1
  41. package/dist/dialect/shared.js +4 -0
  42. package/dist/dialect/shared.js.map +1 -1
  43. package/dist/dialect/sqlite.d.ts.map +1 -1
  44. package/dist/dialect/sqlite.js +15 -18
  45. package/dist/dialect/sqlite.js.map +1 -1
  46. package/dist/dialect/sqlite.test.d.ts +2 -0
  47. package/dist/dialect/sqlite.test.d.ts.map +1 -0
  48. package/dist/dialect/sqlite.test.js +122 -0
  49. package/dist/dialect/sqlite.test.js.map +1 -0
  50. package/dist/dialect/types.d.ts +2 -1
  51. package/dist/dialect/types.d.ts.map +1 -1
  52. package/dist/docs/render.d.ts.map +1 -1
  53. package/dist/docs/render.js.map +1 -1
  54. package/dist/docs/search.d.ts.map +1 -1
  55. package/dist/docs/search.js +4 -4
  56. package/dist/docs/search.js.map +1 -1
  57. package/dist/docs/server.d.ts.map +1 -1
  58. package/dist/docs/server.js +3 -3
  59. package/dist/docs/server.js.map +1 -1
  60. package/dist/index.d.ts +12 -10
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +5 -4
  63. package/dist/index.js.map +1 -1
  64. package/dist/init/scaffold.d.ts.map +1 -1
  65. package/dist/init/scaffold.js +3 -1
  66. package/dist/init/scaffold.js.map +1 -1
  67. package/dist/introspect/pull.d.ts.map +1 -1
  68. package/dist/introspect/pull.js +209 -154
  69. package/dist/introspect/pull.js.map +1 -1
  70. package/dist/introspect/queries.d.ts +6 -0
  71. package/dist/introspect/queries.d.ts.map +1 -1
  72. package/dist/introspect/queries.js +19 -0
  73. package/dist/introspect/queries.js.map +1 -1
  74. package/dist/introspect/sqlite/to-manifest.d.ts.map +1 -1
  75. package/dist/introspect/sqlite/to-manifest.js +6 -9
  76. package/dist/introspect/sqlite/to-manifest.js.map +1 -1
  77. package/dist/introspect/to-manifest.d.ts +8 -1
  78. package/dist/introspect/to-manifest.d.ts.map +1 -1
  79. package/dist/introspect/to-manifest.js +96 -21
  80. package/dist/introspect/to-manifest.js.map +1 -1
  81. package/dist/migrate/runner.d.ts +16 -0
  82. package/dist/migrate/runner.d.ts.map +1 -1
  83. package/dist/migrate/runner.js +147 -24
  84. package/dist/migrate/runner.js.map +1 -1
  85. package/dist/plugins/builtin.d.ts.map +1 -1
  86. package/dist/plugins/builtin.js +15 -16
  87. package/dist/plugins/builtin.js.map +1 -1
  88. package/dist/plugins/json/operators.d.ts.map +1 -1
  89. package/dist/plugins/json/operators.js +100 -27
  90. package/dist/plugins/json/operators.js.map +1 -1
  91. package/dist/plugins/postgis/columns.d.ts +18 -4
  92. package/dist/plugins/postgis/columns.d.ts.map +1 -1
  93. package/dist/plugins/postgis/columns.js +69 -10
  94. package/dist/plugins/postgis/columns.js.map +1 -1
  95. package/dist/plugins/postgis/columns.test.d.ts +2 -0
  96. package/dist/plugins/postgis/columns.test.d.ts.map +1 -0
  97. package/dist/plugins/postgis/columns.test.js +67 -0
  98. package/dist/plugins/postgis/columns.test.js.map +1 -0
  99. package/dist/plugins/postgis/index.d.ts +4 -2
  100. package/dist/plugins/postgis/index.d.ts.map +1 -1
  101. package/dist/plugins/postgis/index.js +2 -1
  102. package/dist/plugins/postgis/index.js.map +1 -1
  103. package/dist/plugins/postgis/where-types.d.ts +18 -0
  104. package/dist/plugins/postgis/where-types.d.ts.map +1 -0
  105. package/dist/plugins/postgis/where-types.js +2 -0
  106. package/dist/plugins/postgis/where-types.js.map +1 -0
  107. package/dist/plugins/registry.d.ts.map +1 -1
  108. package/dist/plugins/registry.js +20 -5
  109. package/dist/plugins/registry.js.map +1 -1
  110. package/dist/plugins/types.d.ts +1 -1
  111. package/dist/plugins/types.d.ts.map +1 -1
  112. package/dist/runtime/client.d.ts +60 -11
  113. package/dist/runtime/client.d.ts.map +1 -1
  114. package/dist/runtime/client.js +85 -39
  115. package/dist/runtime/client.js.map +1 -1
  116. package/dist/runtime/client.test.d.ts +2 -0
  117. package/dist/runtime/client.test.d.ts.map +1 -0
  118. package/dist/runtime/client.test.js +170 -0
  119. package/dist/runtime/client.test.js.map +1 -0
  120. package/dist/runtime/compile-error.d.ts +14 -0
  121. package/dist/runtime/compile-error.d.ts.map +1 -0
  122. package/dist/runtime/compile-error.js +14 -0
  123. package/dist/runtime/compile-error.js.map +1 -0
  124. package/dist/runtime/driver-sqlite.test.d.ts +2 -0
  125. package/dist/runtime/driver-sqlite.test.d.ts.map +1 -0
  126. package/dist/runtime/driver-sqlite.test.js +195 -0
  127. package/dist/runtime/driver-sqlite.test.js.map +1 -0
  128. package/dist/runtime/driver.d.ts +16 -1
  129. package/dist/runtime/driver.d.ts.map +1 -1
  130. package/dist/runtime/driver.js +118 -96
  131. package/dist/runtime/driver.js.map +1 -1
  132. package/dist/runtime/error-builders.d.ts +7 -6
  133. package/dist/runtime/error-builders.d.ts.map +1 -1
  134. package/dist/runtime/error-builders.js +2 -2
  135. package/dist/runtime/error-builders.js.map +1 -1
  136. package/dist/runtime/error-codes.d.ts +50 -0
  137. package/dist/runtime/error-codes.d.ts.map +1 -0
  138. package/dist/runtime/error-codes.js +54 -0
  139. package/dist/runtime/error-codes.js.map +1 -0
  140. package/dist/runtime/error-hints.d.ts +1 -0
  141. package/dist/runtime/error-hints.d.ts.map +1 -1
  142. package/dist/runtime/error-hints.js +13 -1
  143. package/dist/runtime/error-hints.js.map +1 -1
  144. package/dist/runtime/errors.d.ts +55 -8
  145. package/dist/runtime/errors.d.ts.map +1 -1
  146. package/dist/runtime/errors.js +143 -12
  147. package/dist/runtime/errors.js.map +1 -1
  148. package/dist/runtime/errors.test.d.ts +2 -0
  149. package/dist/runtime/errors.test.d.ts.map +1 -0
  150. package/dist/runtime/errors.test.js +115 -0
  151. package/dist/runtime/errors.test.js.map +1 -0
  152. package/dist/runtime/executor.d.ts +22 -3
  153. package/dist/runtime/executor.d.ts.map +1 -1
  154. package/dist/runtime/executor.js +93 -39
  155. package/dist/runtime/executor.js.map +1 -1
  156. package/dist/runtime/parse-db-json.d.ts +8 -0
  157. package/dist/runtime/parse-db-json.d.ts.map +1 -0
  158. package/dist/runtime/parse-db-json.js +33 -0
  159. package/dist/runtime/parse-db-json.js.map +1 -0
  160. package/dist/runtime/pg-error.d.ts.map +1 -1
  161. package/dist/runtime/pg-error.js +16 -16
  162. package/dist/runtime/pg-error.js.map +1 -1
  163. package/dist/runtime/pg-rollback.test.d.ts +2 -0
  164. package/dist/runtime/pg-rollback.test.d.ts.map +1 -0
  165. package/dist/runtime/pg-rollback.test.js +39 -0
  166. package/dist/runtime/pg-rollback.test.js.map +1 -0
  167. package/dist/runtime/query/aggregate.d.ts.map +1 -1
  168. package/dist/runtime/query/aggregate.js +15 -4
  169. package/dist/runtime/query/aggregate.js.map +1 -1
  170. package/dist/runtime/query/compile-aggregate.d.ts +39 -0
  171. package/dist/runtime/query/compile-aggregate.d.ts.map +1 -0
  172. package/dist/runtime/query/compile-aggregate.js +456 -0
  173. package/dist/runtime/query/compile-aggregate.js.map +1 -0
  174. package/dist/runtime/query/compile-where.d.ts +32 -0
  175. package/dist/runtime/query/compile-where.d.ts.map +1 -0
  176. package/dist/runtime/query/compile-where.js +708 -0
  177. package/dist/runtime/query/compile-where.js.map +1 -0
  178. package/dist/runtime/query/compile-write.d.ts +53 -0
  179. package/dist/runtime/query/compile-write.d.ts.map +1 -0
  180. package/dist/runtime/query/compile-write.js +467 -0
  181. package/dist/runtime/query/compile-write.js.map +1 -0
  182. package/dist/runtime/query/compile.d.ts +3 -114
  183. package/dist/runtime/query/compile.d.ts.map +1 -1
  184. package/dist/runtime/query/compile.js +3 -1536
  185. package/dist/runtime/query/compile.js.map +1 -1
  186. package/dist/runtime/query/count.d.ts +1 -0
  187. package/dist/runtime/query/count.d.ts.map +1 -1
  188. package/dist/runtime/query/count.js +12 -14
  189. package/dist/runtime/query/count.js.map +1 -1
  190. package/dist/runtime/query/create.d.ts.map +1 -1
  191. package/dist/runtime/query/create.js +20 -49
  192. package/dist/runtime/query/create.js.map +1 -1
  193. package/dist/runtime/query/cursor-codec.d.ts.map +1 -1
  194. package/dist/runtime/query/cursor-codec.js +8 -2
  195. package/dist/runtime/query/cursor-codec.js.map +1 -1
  196. package/dist/runtime/query/cursor.d.ts.map +1 -1
  197. package/dist/runtime/query/cursor.js +31 -7
  198. package/dist/runtime/query/cursor.js.map +1 -1
  199. package/dist/runtime/query/delete.d.ts.map +1 -1
  200. package/dist/runtime/query/delete.js +17 -17
  201. package/dist/runtime/query/delete.js.map +1 -1
  202. package/dist/runtime/query/execute.d.ts.map +1 -1
  203. package/dist/runtime/query/execute.js +11 -12
  204. package/dist/runtime/query/execute.js.map +1 -1
  205. package/dist/runtime/query/find-or-create.d.ts +4 -2
  206. package/dist/runtime/query/find-or-create.d.ts.map +1 -1
  207. package/dist/runtime/query/find-or-create.js +53 -43
  208. package/dist/runtime/query/find-or-create.js.map +1 -1
  209. package/dist/runtime/query/find-or-create.test.d.ts +2 -0
  210. package/dist/runtime/query/find-or-create.test.d.ts.map +1 -0
  211. package/dist/runtime/query/find-or-create.test.js +189 -0
  212. package/dist/runtime/query/find-or-create.test.js.map +1 -0
  213. package/dist/runtime/query/find.d.ts.map +1 -1
  214. package/dist/runtime/query/find.js +86 -58
  215. package/dist/runtime/query/find.js.map +1 -1
  216. package/dist/runtime/query/group-by.d.ts.map +1 -1
  217. package/dist/runtime/query/group-by.js +3 -2
  218. package/dist/runtime/query/group-by.js.map +1 -1
  219. package/dist/runtime/query/manifest-lookup.d.ts.map +1 -1
  220. package/dist/runtime/query/manifest-lookup.js +1 -1
  221. package/dist/runtime/query/manifest-lookup.js.map +1 -1
  222. package/dist/runtime/query/map-row.d.ts.map +1 -1
  223. package/dist/runtime/query/map-row.js +1 -1
  224. package/dist/runtime/query/map-row.js.map +1 -1
  225. package/dist/runtime/query/paginate.d.ts +3 -0
  226. package/dist/runtime/query/paginate.d.ts.map +1 -1
  227. package/dist/runtime/query/paginate.js +49 -11
  228. package/dist/runtime/query/paginate.js.map +1 -1
  229. package/dist/runtime/query/primary-key.d.ts +1 -1
  230. package/dist/runtime/query/primary-key.d.ts.map +1 -1
  231. package/dist/runtime/query/primary-key.js +45 -8
  232. package/dist/runtime/query/primary-key.js.map +1 -1
  233. package/dist/runtime/query/projection.d.ts +1 -0
  234. package/dist/runtime/query/projection.d.ts.map +1 -1
  235. package/dist/runtime/query/projection.js +23 -7
  236. package/dist/runtime/query/projection.js.map +1 -1
  237. package/dist/runtime/query/relation-planner.d.ts.map +1 -1
  238. package/dist/runtime/query/relation-planner.js +82 -53
  239. package/dist/runtime/query/relation-planner.js.map +1 -1
  240. package/dist/runtime/query/relation-writes.d.ts +3 -1
  241. package/dist/runtime/query/relation-writes.d.ts.map +1 -1
  242. package/dist/runtime/query/relation-writes.js +145 -54
  243. package/dist/runtime/query/relation-writes.js.map +1 -1
  244. package/dist/runtime/query/serialize-dialect.test.d.ts +2 -0
  245. package/dist/runtime/query/serialize-dialect.test.d.ts.map +1 -0
  246. package/dist/runtime/query/serialize-dialect.test.js +79 -0
  247. package/dist/runtime/query/serialize-dialect.test.js.map +1 -0
  248. package/dist/runtime/query/sqlite-constraint-errors.test.d.ts +2 -0
  249. package/dist/runtime/query/sqlite-constraint-errors.test.d.ts.map +1 -0
  250. package/dist/runtime/query/sqlite-constraint-errors.test.js +60 -0
  251. package/dist/runtime/query/sqlite-constraint-errors.test.js.map +1 -0
  252. package/dist/runtime/query/strip.d.ts.map +1 -1
  253. package/dist/runtime/query/strip.js.map +1 -1
  254. package/dist/runtime/query/table-index.d.ts.map +1 -1
  255. package/dist/runtime/query/table-index.js +4 -3
  256. package/dist/runtime/query/table-index.js.map +1 -1
  257. package/dist/runtime/query/unique.d.ts +8 -1
  258. package/dist/runtime/query/unique.d.ts.map +1 -1
  259. package/dist/runtime/query/unique.js +89 -4
  260. package/dist/runtime/query/unique.js.map +1 -1
  261. package/dist/runtime/query/unique.test.d.ts +2 -0
  262. package/dist/runtime/query/unique.test.d.ts.map +1 -0
  263. package/dist/runtime/query/unique.test.js +231 -0
  264. package/dist/runtime/query/unique.test.js.map +1 -0
  265. package/dist/runtime/query/update.d.ts.map +1 -1
  266. package/dist/runtime/query/update.js +30 -35
  267. package/dist/runtime/query/update.js.map +1 -1
  268. package/dist/runtime/query/update.test.d.ts +2 -0
  269. package/dist/runtime/query/update.test.d.ts.map +1 -0
  270. package/dist/runtime/query/update.test.js +186 -0
  271. package/dist/runtime/query/update.test.js.map +1 -0
  272. package/dist/runtime/query/updated-at.d.ts.map +1 -1
  273. package/dist/runtime/query/updated-at.js.map +1 -1
  274. package/dist/runtime/query/upsert.d.ts.map +1 -1
  275. package/dist/runtime/query/upsert.js +5 -7
  276. package/dist/runtime/query/upsert.js.map +1 -1
  277. package/dist/runtime/schema-error.d.ts.map +1 -1
  278. package/dist/runtime/schema-error.js +6 -2
  279. package/dist/runtime/schema-error.js.map +1 -1
  280. package/dist/runtime/sqlite-error.d.ts.map +1 -1
  281. package/dist/runtime/sqlite-error.js +11 -12
  282. package/dist/runtime/sqlite-error.js.map +1 -1
  283. package/dist/runtime/sqlite-open.d.ts +2 -0
  284. package/dist/runtime/sqlite-open.d.ts.map +1 -1
  285. package/dist/runtime/sqlite-open.js +18 -1
  286. package/dist/runtime/sqlite-open.js.map +1 -1
  287. package/dist/runtime/transaction.d.ts +4 -0
  288. package/dist/runtime/transaction.d.ts.map +1 -1
  289. package/dist/runtime/transaction.js +31 -1
  290. package/dist/runtime/transaction.js.map +1 -1
  291. package/dist/runtime/transaction.test.d.ts +2 -0
  292. package/dist/runtime/transaction.test.d.ts.map +1 -0
  293. package/dist/runtime/transaction.test.js +43 -0
  294. package/dist/runtime/transaction.test.js.map +1 -0
  295. package/dist/runtime/types.d.ts +50 -17
  296. package/dist/runtime/types.d.ts.map +1 -1
  297. package/dist/schema/column-where.d.ts +11 -1
  298. package/dist/schema/column-where.d.ts.map +1 -1
  299. package/dist/schema/column.d.ts +1 -1
  300. package/dist/schema/column.d.ts.map +1 -1
  301. package/dist/schema/column.js +1 -1
  302. package/dist/schema/column.js.map +1 -1
  303. package/dist/schema/define-schema.d.ts +1 -1
  304. package/dist/schema/define-schema.d.ts.map +1 -1
  305. package/dist/schema/define-schema.js +5 -23
  306. package/dist/schema/define-schema.js.map +1 -1
  307. package/dist/schema/index.d.ts +2 -2
  308. package/dist/schema/index.d.ts.map +1 -1
  309. package/dist/schema/index.js +1 -1
  310. package/dist/schema/index.js.map +1 -1
  311. package/dist/schema/relation-types.d.ts +29 -22
  312. package/dist/schema/relation-types.d.ts.map +1 -1
  313. package/dist/schema/relation.d.ts.map +1 -1
  314. package/dist/schema/relation.js +6 -4
  315. package/dist/schema/relation.js.map +1 -1
  316. package/dist/schema/table-registry.d.ts.map +1 -1
  317. package/dist/schema/table-registry.js +8 -2
  318. package/dist/schema/table-registry.js.map +1 -1
  319. package/dist/schema/table.d.ts +6 -3
  320. package/dist/schema/table.d.ts.map +1 -1
  321. package/dist/schema/table.js +30 -31
  322. package/dist/schema/table.js.map +1 -1
  323. package/dist/schema/types.d.ts +33 -25
  324. package/dist/schema/types.d.ts.map +1 -1
  325. package/dist/sql/builder.d.ts +5 -1
  326. package/dist/sql/builder.d.ts.map +1 -1
  327. package/dist/sql/builder.js +23 -3
  328. package/dist/sql/builder.js.map +1 -1
  329. package/dist/sql/index.d.ts +5 -2
  330. package/dist/sql/index.d.ts.map +1 -1
  331. package/dist/sql/index.js +5 -2
  332. package/dist/sql/index.js.map +1 -1
  333. package/dist/utils/case.d.ts +4 -0
  334. package/dist/utils/case.d.ts.map +1 -1
  335. package/dist/utils/case.js +11 -0
  336. package/dist/utils/case.js.map +1 -1
  337. package/dist/utils/dotenv.d.ts +8 -0
  338. package/dist/utils/dotenv.d.ts.map +1 -0
  339. package/dist/utils/dotenv.js +70 -0
  340. package/dist/utils/dotenv.js.map +1 -0
  341. package/dist/utils/dotenv.test.d.ts +2 -0
  342. package/dist/utils/dotenv.test.d.ts.map +1 -0
  343. package/dist/utils/dotenv.test.js +32 -0
  344. package/dist/utils/dotenv.test.js.map +1 -0
  345. package/dist/utils/inflect.d.ts +6 -0
  346. package/dist/utils/inflect.d.ts.map +1 -0
  347. package/dist/utils/inflect.js +80 -0
  348. package/dist/utils/inflect.js.map +1 -0
  349. package/docs/cli.md +6 -2
  350. package/docs/configuration.md +3 -1
  351. package/docs/errors.md +61 -6
  352. package/docs/examples.md +63 -13
  353. package/docs/getting-started.md +24 -1
  354. package/docs/migrations.md +15 -2
  355. package/docs/plugins.md +13 -1
  356. package/docs/queries.md +109 -10
  357. package/docs/relations.md +5 -1
  358. package/docs/schema.md +12 -5
  359. package/docs/sqlite.md +24 -10
  360. package/docs/transactions.md +13 -2
  361. package/package.json +4 -2
@@ -1,7 +1,61 @@
1
1
  import { createHash } from "node:crypto";
2
- import { assertNoSavepointOptions, buildBeginSql, buildSavepointName, } from "./transaction.js";
2
+ import { compile, sqlTag } from "../sql/template.js";
3
3
  import { sqliteClient, } from "./driver.js";
4
4
  import { CappedMap } from "./query/table-index.js";
5
+ import { assertNoSavepointOptions, buildBeginSql, buildSavepointName, rollbackIgnoringFailure, } from "./transaction.js";
6
+ function hasQueryHooks(hooks) {
7
+ return hooks?.beforeQuery !== undefined || hooks?.afterQuery !== undefined;
8
+ }
9
+ async function runWithQueryHooks(hooks, event, run) {
10
+ await hooks.beforeQuery?.(event);
11
+ const started = performance.now();
12
+ try {
13
+ const { value, rowCount } = await run();
14
+ await hooks.afterQuery?.({
15
+ ...event,
16
+ durationMs: performance.now() - started,
17
+ ...(rowCount !== undefined ? { rowCount } : {}),
18
+ });
19
+ return value;
20
+ }
21
+ catch (error) {
22
+ try {
23
+ await hooks.afterQuery?.({
24
+ ...event,
25
+ durationMs: performance.now() - started,
26
+ error,
27
+ });
28
+ }
29
+ catch {
30
+ // Keep the original query error.
31
+ }
32
+ throw error;
33
+ }
34
+ }
35
+ function wrapQueryMethods(methods, hooks, inTransaction) {
36
+ if (!hasQueryHooks(hooks))
37
+ return methods;
38
+ return {
39
+ async query(text, params = []) {
40
+ return runWithQueryHooks(hooks, { sql: text, params, method: "query", inTransaction }, async () => {
41
+ const value = await methods.query(text, params);
42
+ return { value, rowCount: value.length };
43
+ });
44
+ },
45
+ async queryOne(text, params = []) {
46
+ return runWithQueryHooks(hooks, { sql: text, params, method: "queryOne", inTransaction }, async () => {
47
+ const value = await methods.queryOne(text, params);
48
+ return { value, rowCount: value === null ? 0 : 1 };
49
+ });
50
+ },
51
+ async execute(text, params = []) {
52
+ return runWithQueryHooks(hooks, { sql: text, params, method: "execute", inTransaction }, async () => {
53
+ const value = await methods.execute(text, params);
54
+ return { value, rowCount: value.rowCount };
55
+ });
56
+ },
57
+ };
58
+ }
5
59
  function rowsFromResult(result) {
6
60
  return result.rows;
7
61
  }
@@ -30,8 +84,8 @@ async function runQuery(client, text, params, usePrepared) {
30
84
  }
31
85
  return client.query(text, params);
32
86
  }
33
- function createQueryMethods(client, usePrepared) {
34
- return {
87
+ function createQueryMethods(client, usePrepared, hooks, inTransaction) {
88
+ return wrapQueryMethods({
35
89
  async query(text, params = []) {
36
90
  const result = await runQuery(client, text, params, usePrepared);
37
91
  return rowsFromResult(result);
@@ -45,11 +99,12 @@ function createQueryMethods(client, usePrepared) {
45
99
  const result = await runQuery(client, text, params, usePrepared);
46
100
  return executeFromResult(result);
47
101
  },
48
- };
102
+ }, hooks, inTransaction);
49
103
  }
50
104
  export function createExecutor(pool, options) {
51
105
  const usePrepared = options?.preparedStatements ?? false;
52
- const queryMethods = createQueryMethods(pool, usePrepared);
106
+ const hooks = options;
107
+ const queryMethods = createQueryMethods(pool, usePrepared, hooks, false);
53
108
  return {
54
109
  ...queryMethods,
55
110
  async transaction(fn, options) {
@@ -57,13 +112,13 @@ export function createExecutor(pool, options) {
57
112
  try {
58
113
  await client.query(buildBeginSql(options));
59
114
  const state = { client, savepointCounter: 0 };
60
- const tx = createClientExecutor(state, usePrepared);
115
+ const tx = createClientExecutor(state, usePrepared, hooks);
61
116
  const result = await fn(tx);
62
117
  await client.query("COMMIT");
63
118
  return result;
64
119
  }
65
120
  catch (err) {
66
- await client.query("ROLLBACK");
121
+ await rollbackIgnoringFailure(() => client.query("ROLLBACK"));
67
122
  throw err;
68
123
  }
69
124
  finally {
@@ -72,9 +127,9 @@ export function createExecutor(pool, options) {
72
127
  },
73
128
  };
74
129
  }
75
- function createClientExecutor(state, usePrepared) {
130
+ function createClientExecutor(state, usePrepared, hooks) {
76
131
  const { client } = state;
77
- const queryMethods = createQueryMethods(client, usePrepared);
132
+ const queryMethods = createQueryMethods(client, usePrepared, hooks, true);
78
133
  return {
79
134
  inTransaction: true,
80
135
  ...queryMethods,
@@ -84,52 +139,51 @@ function createClientExecutor(state, usePrepared) {
84
139
  const savepointName = buildSavepointName(savepointId);
85
140
  await client.query(`SAVEPOINT ${savepointName}`);
86
141
  try {
87
- const result = await fn(createClientExecutor(state, usePrepared));
142
+ const result = await fn(createClientExecutor(state, usePrepared, hooks));
88
143
  await client.query(`RELEASE SAVEPOINT ${savepointName}`);
89
144
  return result;
90
145
  }
91
146
  catch (err) {
92
- await client.query(`ROLLBACK TO SAVEPOINT ${savepointName}`);
93
- await client.query(`RELEASE SAVEPOINT ${savepointName}`);
147
+ await rollbackIgnoringFailure(async () => {
148
+ await client.query(`ROLLBACK TO SAVEPOINT ${savepointName}`);
149
+ await client.query(`RELEASE SAVEPOINT ${savepointName}`);
150
+ });
94
151
  throw err;
95
152
  }
96
153
  },
97
154
  };
98
155
  }
156
+ /** Same compiler as `neoorm/sql` (`sqlTag`): values, fragments, and `sqlId`. */
99
157
  export function compileQuery(parts, values) {
100
- let text = "";
101
- const params = [];
102
- for (let i = 0; i < parts.length; i++) {
103
- text += parts[i];
104
- if (i < values.length) {
105
- params.push(values[i]);
106
- text += `$${params.length}`;
107
- }
108
- }
109
- return { text, params };
158
+ return compile(sqlTag(parts, ...values));
110
159
  }
111
- function createExecutorFromDriver(driver, inTransaction) {
160
+ function createExecutorFromDriver(driver, inTransaction, hooks) {
112
161
  return {
113
162
  inTransaction,
114
- async query(text, params = []) {
115
- const result = await driver.query(text, params);
116
- return result.rows;
117
- },
118
- async queryOne(text, params = []) {
119
- const result = await driver.query(text, params);
120
- return result.rows[0] ?? null;
121
- },
122
- async execute(text, params = []) {
123
- const result = await driver.query(text, params);
124
- return { rows: result.rows, rowCount: result.rowCount };
125
- },
163
+ ...wrapQueryMethods({
164
+ async query(text, params = []) {
165
+ const result = await driver.query(text, params);
166
+ return result.rows;
167
+ },
168
+ async queryOne(text, params = []) {
169
+ const result = await driver.query(text, params);
170
+ return result.rows[0] ?? null;
171
+ },
172
+ async execute(text, params = []) {
173
+ const result = await driver.query(text, params);
174
+ return { rows: result.rows, rowCount: result.rowCount };
175
+ },
176
+ }, hooks, inTransaction),
126
177
  async transaction(fn, options) {
127
- return driver.transaction(() => fn(createExecutorFromDriver(driver, true)), options);
178
+ return driver.transaction((txDriver) => fn(createExecutorFromDriver(txDriver, true, hooks)), options);
128
179
  },
129
180
  };
130
181
  }
131
- export function createSqliteExecutor(db, _options) {
132
- const driver = sqliteClient(db);
133
- return createExecutorFromDriver(driver, false);
182
+ function isSqliteDatabaseLike(value) {
183
+ return "prepare" in value && typeof value.prepare === "function";
184
+ }
185
+ export function createSqliteExecutor(db, options) {
186
+ const driver = isSqliteDatabaseLike(db) ? sqliteClient(db) : db;
187
+ return createExecutorFromDriver(driver, false, options);
134
188
  }
135
189
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EACN,wBAAwB,EACxB,aAAa,EACb,kBAAkB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,YAAY,GAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA+BnD,SAAS,cAAc,CAAC,MAAmB;IAC1C,OAAO,MAAM,CAAC,IAAiC,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CACzB,MAAmB;IAEnB,OAAO;QACN,IAAI,EAAE,cAAc,CAAC,MAAM,CAAQ;QACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;KAC9B,CAAC;AACH,CAAC;AAID,MAAM,kBAAkB,GAAG,IAAI,SAAS,CAAiB,GAAG,CAAC,CAAC;AAE9D,SAAS,aAAa,CAAC,IAAY;IAClC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,IAAI,GAAG,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACtF,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACb,CAAC;AAED,KAAK,UAAU,QAAQ,CACtB,MAAiB,EACjB,IAAY,EACZ,MAAiB,EACjB,WAAoB;IAEpB,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;YACzB,IAAI;YACJ,MAAM,EAAE,MAAM;SACd,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAOD,SAAS,kBAAkB,CAC1B,MAAiB,EACjB,WAAoB;IAEpB,OAAO;QACN,KAAK,CAAC,KAAK,CACV,IAAY,EACZ,MAAM,GAAc,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACjE,OAAO,cAAc,CAAC,MAAM,CAAQ,CAAC;QACtC,CAAC;QAED,KAAK,CAAC,QAAQ,CACb,IAAY,EACZ,MAAM,GAAc,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACjE,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACpC,OAAQ,IAAI,CAAC,CAAC,CAAmB,IAAI,IAAI,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,OAAO,CACZ,IAAY,EACZ,MAAM,GAAc,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACjE,OAAO,iBAAiB,CAAI,MAAM,CAAC,CAAC;QACrC,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,IAAU,EACV,OAAyB;IAEzB,MAAM,WAAW,GAAG,OAAO,EAAE,kBAAkB,IAAI,KAAK,CAAC;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE3D,OAAO;QACN,GAAG,YAAY;QAEf,KAAK,CAAC,WAAW,CAChB,EAAgC,EAChC,OAA4B;YAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC;gBACJ,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAAqB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;gBAChE,MAAM,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5B,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,MAAM,CAAC;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM,GAAG,CAAC;YACX,CAAC;oBAAS,CAAC;gBACV,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC5B,KAAuB,EACvB,WAAoB;IAEpB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE7D,OAAO;QACN,aAAa,EAAE,IAAI;QACnB,GAAG,YAAY;QAEf,KAAK,CAAC,WAAW,CAChB,EAAgC,EAChC,OAA4B;YAE5B,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,WAAW,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC;YAC7C,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAEtD,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,aAAa,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;gBAClE,MAAM,MAAM,CAAC,KAAK,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;gBACzD,OAAO,MAAM,CAAC;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAC;gBAC7D,MAAM,MAAM,CAAC,KAAK,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;gBACzD,MAAM,GAAG,CAAC;YACX,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,KAA2B,EAC3B,MAAiB;IAEjB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,wBAAwB,CAChC,MAAuC,EACvC,aAAsB;IAEtB,OAAO;QACN,aAAa;QACb,KAAK,CAAC,KAAK,CACV,IAAY,EACZ,MAAM,GAAc,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC,IAAI,CAAC;QACpB,CAAC;QACD,KAAK,CAAC,QAAQ,CACb,IAAY,EACZ,MAAM,GAAc,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,OAAO,CACZ,IAAY,EACZ,MAAM,GAAc,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,WAAW,CAChB,EAAgC,EAChC,OAA4B;YAE5B,OAAO,MAAM,CAAC,WAAW,CACxB,GAAG,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAChD,OAAO,CACP,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,EAAsB,EACtB,QAA0B;IAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,OAAO,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Parse a JSON string from the database, or return non-string values as-is. */
2
+ export declare function parseDbJsonValue(dbValue: unknown, context?: {
3
+ tableAccessor?: string;
4
+ tableSqlName?: string;
5
+ columnTsName?: string;
6
+ columnSqlName?: string;
7
+ }): unknown;
8
+ //# sourceMappingURL=parse-db-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-db-json.d.ts","sourceRoot":"","sources":["../../src/runtime/parse-db-json.ts"],"names":[],"mappings":"AAGA,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACR,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CAClB,GACJ,OAAO,CAkCT"}
@@ -0,0 +1,33 @@
1
+ import { queryError } from "./error-builders.js";
2
+ import { QueryErrorCode } from "./error-codes.js";
3
+ /** Parse a JSON string from the database, or return non-string values as-is. */
4
+ export function parseDbJsonValue(dbValue, context = {}) {
5
+ if (typeof dbValue !== "string") {
6
+ return dbValue;
7
+ }
8
+ try {
9
+ return JSON.parse(dbValue);
10
+ }
11
+ catch (cause) {
12
+ throw queryError(QueryErrorCode.invalid_input, "Database returned invalid JSON", {
13
+ operation: "select",
14
+ phase: "runtime",
15
+ ...(context.tableAccessor !== undefined
16
+ ? { tableAccessor: context.tableAccessor }
17
+ : {}),
18
+ ...(context.tableSqlName !== undefined
19
+ ? { tableSqlName: context.tableSqlName }
20
+ : {}),
21
+ ...(context.columnTsName !== undefined
22
+ ? { columnTsName: context.columnTsName }
23
+ : {}),
24
+ ...(context.columnSqlName !== undefined
25
+ ? { columnSqlName: context.columnSqlName }
26
+ : {}),
27
+ }, [
28
+ "The stored value is not valid JSON",
29
+ "Repair or replace the corrupt row",
30
+ ], cause);
31
+ }
32
+ }
33
+ //# sourceMappingURL=parse-db-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-db-json.js","sourceRoot":"","sources":["../../src/runtime/parse-db-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAC/B,OAAgB,EAChB,OAAO,GAKH,EAAE;IAEN,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,UAAU,CACf,cAAc,CAAC,aAAa,EAC5B,gCAAgC,EAChC;YACC,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,SAAS;YAChB,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;gBAC1C,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;gBACxC,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;gBACxC,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;gBAC1C,CAAC,CAAC,EAAE,CAAC;SACN,EACD;YACC,oCAAoC;YACpC,mCAAmC;SACnC,EACD,KAAK,CACL,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pg-error.d.ts","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAO1D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAM7D;AA8KD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,wBAAgB,aAAa,CAC5B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,GACC,iBAAiB,CAwDnB;AAED,wBAAgB,qBAAqB,CACpC,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAC,EACxE,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,GACT,iBAAiB,CAuBnB"}
1
+ {"version":3,"file":"pg-error.d.ts","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAM1D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAM7D;AAkLD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,wBAAgB,aAAa,CAC5B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,GACC,iBAAiB,CAoDnB;AAED,wBAAgB,qBAAqB,CACpC,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAC,EACxE,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,GACT,iBAAiB,CAwBnB"}
@@ -1,8 +1,10 @@
1
+ import { QueryErrorCode } from "./error-codes.js";
1
2
  export function isPgError(err) {
2
- return (typeof err === "object" &&
3
- err !== null &&
4
- "code" in err &&
5
- typeof err.code === "string");
3
+ if (typeof err !== "object" || err === null || !("code" in err)) {
4
+ return false;
5
+ }
6
+ const code = err.code;
7
+ return typeof code === "string" && /^[0-9A-Z]{5}$/.test(code);
6
8
  }
7
9
  export function truncateSql(sql, maxLen = 240) {
8
10
  const collapsed = sql.replace(/\s+/g, " ").trim();
@@ -114,21 +116,21 @@ function suggestionsForPgError(err, table, columnTsName) {
114
116
  function errorCodeForPg(err) {
115
117
  switch (err.code) {
116
118
  case "23502":
117
- return "pg_not_null_violation";
119
+ return QueryErrorCode.not_null_violation;
118
120
  case "23505":
119
- return "pg_unique_violation";
121
+ return QueryErrorCode.unique_violation;
120
122
  case "23503":
121
- return "pg_foreign_key_violation";
123
+ return QueryErrorCode.foreign_key_violation;
122
124
  case "23514":
123
- return "pg_check_violation";
125
+ return QueryErrorCode.check_violation;
124
126
  case "42P01":
125
- return "pg_relation_not_found";
127
+ return QueryErrorCode.relation_not_found;
126
128
  case "42703":
127
- return "pg_column_not_found";
129
+ return QueryErrorCode.column_not_found;
128
130
  case "22P02":
129
- return "pg_invalid_input";
131
+ return QueryErrorCode.invalid_input;
130
132
  default:
131
- return err.code ? `pg_${err.code.toLowerCase()}` : undefined;
133
+ return QueryErrorCode.driver_error;
132
134
  }
133
135
  }
134
136
  const SCHEMA_DRIFT_CODES = new Set(["42P01", "42703", "23503"]);
@@ -143,6 +145,7 @@ export function enrichPgError(err, manifest, base) {
143
145
  operation: base.operation,
144
146
  phase: "runtime",
145
147
  sql: truncateSql(base.sql),
148
+ code: errorCodeForPg(err),
146
149
  detail: err.detail
147
150
  ? `${headlineForPgCode(err)} (${err.detail})`
148
151
  : headlineForPgCode(err),
@@ -167,10 +170,6 @@ export function enrichPgError(err, manifest, base) {
167
170
  if (err.constraint !== undefined) {
168
171
  context.constraint = err.constraint;
169
172
  }
170
- const code = errorCodeForPg(err);
171
- if (code !== undefined) {
172
- context.code = code;
173
- }
174
173
  const suggestions = suggestionsForPgError(err, table, columnTsName);
175
174
  if (suggestions.length > 0) {
176
175
  context.suggestions = suggestions;
@@ -187,6 +186,7 @@ export function emptyReturningContext(operation, manifest, tableAccessor, sql) {
187
186
  const context = {
188
187
  operation,
189
188
  phase: "runtime",
189
+ code: QueryErrorCode.empty_returning,
190
190
  tableAccessor,
191
191
  sql: truncateSql(sql),
192
192
  detail: `${operationLabel} … RETURNING returned no row`,
@@ -1 +1 @@
1
- {"version":3,"file":"pg-error.js","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pg-error.js","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pg-rollback.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-rollback.test.d.ts","sourceRoot":"","sources":["../../src/runtime/pg-rollback.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { pgClient } from "./driver.js";
3
+ import { createExecutor } from "./executor.js";
4
+ function poolWithFailingRollback() {
5
+ const client = {
6
+ query: vi.fn(async (sql) => {
7
+ if (sql === "ROLLBACK") {
8
+ throw new Error("connection terminated");
9
+ }
10
+ return { rows: [], rowCount: 0 };
11
+ }),
12
+ release: vi.fn(),
13
+ };
14
+ const pool = {
15
+ connect: async () => client,
16
+ };
17
+ return { pool, client };
18
+ }
19
+ describe("Postgres ROLLBACK on transaction failure", () => {
20
+ it("createExecutor rethrows the original error if ROLLBACK fails", async () => {
21
+ const { pool, client } = poolWithFailingRollback();
22
+ const executor = createExecutor(pool);
23
+ await expect(executor.transaction(async () => {
24
+ throw new Error("original boom");
25
+ })).rejects.toThrow("original boom");
26
+ expect(client.query).toHaveBeenCalledWith("ROLLBACK");
27
+ expect(client.release).toHaveBeenCalledOnce();
28
+ });
29
+ it("pgClient.transaction rethrows the original error if ROLLBACK fails", async () => {
30
+ const { pool, client } = poolWithFailingRollback();
31
+ const driver = pgClient(pool);
32
+ await expect(driver.transaction(async () => {
33
+ throw new Error("original boom");
34
+ })).rejects.toThrow("original boom");
35
+ expect(client.query).toHaveBeenCalledWith("ROLLBACK");
36
+ expect(client.release).toHaveBeenCalledOnce();
37
+ });
38
+ });
39
+ //# sourceMappingURL=pg-rollback.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-rollback.test.js","sourceRoot":"","sources":["../../src/runtime/pg-rollback.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,SAAS,uBAAuB;IAC/B,MAAM,MAAM,GAAG;QACd,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;YAClC,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAClC,CAAC,CAAC;QACF,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;KAChB,CAAC;IACF,MAAM,IAAI,GAAG;QACZ,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM;KACR,CAAC;IACrB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;AAED,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,MAAM,CACX,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAClC,CAAC,CAAC,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,MAAM,CACX,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAClC,CAAC,CAAC,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/aggregate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACN,KAAK,kBAAkB,EAIvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,cAAc,CAAC;AAE9D,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,SAAS,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BzB;AAED,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IACL,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC5B,GACC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwClC"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/aggregate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACN,KAAK,kBAAkB,EAIvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,cAAc,CAAC;AAa9D,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,SAAS,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB;AAED,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IACL,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC5B,GACC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuClC"}
@@ -1,6 +1,19 @@
1
1
  import { postgresDialect } from "../../dialect/postgres.js";
2
2
  import { compileWhere, getCachedAggregateQuery, toCountSelector, } from "./compile.js";
3
3
  import { runQueryOne } from "./execute.js";
4
+ import { requireTable } from "./table-index.js";
5
+ function coerceAggregateNumber(value) {
6
+ if (value === null || value === undefined)
7
+ return null;
8
+ if (typeof value === "number" || typeof value === "bigint")
9
+ return value;
10
+ if (typeof value === "string" && value.trim() !== "") {
11
+ const n = Number(value);
12
+ if (Number.isFinite(n))
13
+ return n;
14
+ }
15
+ return value;
16
+ }
4
17
  export function parseAggregateRow(row, selectors) {
5
18
  const result = {};
6
19
  if (selectors._count === true) {
@@ -25,7 +38,7 @@ export function parseAggregateRow(row, selectors) {
25
38
  continue;
26
39
  const bucket = {};
27
40
  for (const colName of Object.keys(fieldMap)) {
28
- bucket[colName] = row[`${key}_${colName}`] ?? null;
41
+ bucket[colName] = coerceAggregateNumber(row[`${key}_${colName}`] ?? null);
29
42
  }
30
43
  if (Object.keys(bucket).length > 0) {
31
44
  result[key] = bucket;
@@ -36,9 +49,7 @@ export function parseAggregateRow(row, selectors) {
36
49
  export async function aggregateRecords(executor, runtime, tableAccessor, args) {
37
50
  const dialect = runtime.dialect ?? postgresDialect;
38
51
  const { manifest } = runtime;
39
- const table = manifest.tables[tableAccessor];
40
- if (!table)
41
- throw new Error(`Unknown table: ${tableAccessor}`);
52
+ const table = requireTable(manifest, tableAccessor, "select");
42
53
  const selectors = {};
43
54
  if (args._count !== undefined) {
44
55
  selectors._count = toCountSelector(args._count);
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/runtime/query/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/runtime/query/aggregate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { Dialect, ManifestColumn, ManifestTable } from "../../dialect/types.js";
2
+ import { type OrderByInput } from "./compile-where.js";
3
+ import { type ManifestIndex, type TableIndex } from "./table-index.js";
4
+ export type CountSelector = true | Record<string, true>;
5
+ export type AggregateSelectors = {
6
+ _count?: CountSelector;
7
+ _avg?: Record<string, true>;
8
+ _sum?: Record<string, true>;
9
+ _min?: Record<string, true>;
10
+ _max?: Record<string, true>;
11
+ };
12
+ export declare function requireCountSqlCol(table: ManifestTable, tsName: string, manifestIndex?: ManifestIndex): string;
13
+ export declare function normalizeCountMap(select: Record<string, unknown>): Record<string, true>;
14
+ export declare function toCountSelector(value: true | Record<string, unknown>): CountSelector;
15
+ export declare function hasStarCount(selectors: AggregateSelectors): boolean;
16
+ export declare function hasCountField(selectors: AggregateSelectors, field: string): boolean;
17
+ export declare function buildCountQuery(table: ManifestTable, whereSql: string, dialect?: Dialect, distinct?: string, select?: Record<string, true>, manifestIndex?: ManifestIndex): string;
18
+ export declare function countSelectParts(table: ManifestTable, select: Record<string, true>, dialect?: Dialect, manifestIndex?: ManifestIndex): string[];
19
+ export declare function aggregateSelectParts(table: ManifestTable, selectors: AggregateSelectors, dialect?: Dialect, manifestIndex?: ManifestIndex): string[];
20
+ export declare function buildAggregateQuery(table: ManifestTable, selectors: AggregateSelectors, whereSql: string, manifestIndex?: ManifestIndex, dialect?: Dialect): string;
21
+ export declare function aggregateSelectorCacheKey(selectors: AggregateSelectors): string;
22
+ export declare function getCachedAggregateQuery(tableIndex: TableIndex | undefined, table: ManifestTable, selectors: AggregateSelectors, whereSql: string, manifestIndex?: ManifestIndex, dialect?: Dialect): string;
23
+ export type HavingInput = {
24
+ _count?: number | Record<string, unknown>;
25
+ _avg?: Record<string, number | Record<string, unknown>>;
26
+ _sum?: Record<string, number | Record<string, unknown>>;
27
+ _min?: Record<string, number | Record<string, unknown>>;
28
+ _max?: Record<string, number | Record<string, unknown>>;
29
+ };
30
+ export declare function compileHaving(table: ManifestTable, selectors: AggregateSelectors, having: HavingInput | undefined, dialect: Dialect, startParamIndex?: number, manifestIndex?: ManifestIndex): {
31
+ sql: string;
32
+ params: unknown[];
33
+ impossible?: boolean;
34
+ };
35
+ export declare function compileGroupByOrderBy(table: ManifestTable, byKeys: readonly string[], selectors: AggregateSelectors, orderBy: OrderByInput | undefined, dialect?: Dialect, manifestIndex?: ManifestIndex): string;
36
+ export declare function resolveGroupByColumns(table: ManifestTable, byKeys: readonly string[], manifestIndex?: ManifestIndex): ManifestColumn[];
37
+ export declare function buildGroupByQuery(table: ManifestTable, byKeys: readonly string[], selectors: AggregateSelectors, whereSql: string, havingSql: string, orderSql: string, take?: number, skip?: number, manifestIndex?: ManifestIndex, dialect?: Dialect): string;
38
+ export declare function getCachedGroupByQuery(tableIndex: TableIndex | undefined, table: ManifestTable, byKeys: readonly string[], selectors: AggregateSelectors, whereSql: string, havingSql: string, orderSql: string, take?: number, skip?: number, manifestIndex?: ManifestIndex, dialect?: Dialect): string;
39
+ //# sourceMappingURL=compile-aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-aggregate.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/compile-aggregate.ts"],"names":[],"mappings":"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"}