@antelopejs/postgres 0.0.1-stage → 0.2.1

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 (390) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +152 -0
  3. package/dist/config.d.ts +38 -0
  4. package/dist/config.js +91 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/connection.d.ts +14 -0
  7. package/dist/connection.js +128 -0
  8. package/dist/connection.js.map +1 -0
  9. package/dist/implementations/catalog/index.d.ts +7 -0
  10. package/dist/implementations/catalog/index.js +60 -0
  11. package/dist/implementations/catalog/index.js.map +1 -0
  12. package/dist/implementations/database/changes.d.ts +19 -0
  13. package/dist/implementations/database/changes.js +100 -0
  14. package/dist/implementations/database/changes.js.map +1 -0
  15. package/dist/implementations/database/coerce.d.ts +15 -0
  16. package/dist/implementations/database/coerce.js +195 -0
  17. package/dist/implementations/database/coerce.js.map +1 -0
  18. package/dist/implementations/database/context.d.ts +32 -0
  19. package/dist/implementations/database/context.js +50 -0
  20. package/dist/implementations/database/context.js.map +1 -0
  21. package/dist/implementations/database/cursors.d.ts +16 -0
  22. package/dist/implementations/database/cursors.js +269 -0
  23. package/dist/implementations/database/cursors.js.map +1 -0
  24. package/dist/implementations/database/ddl.d.ts +62 -0
  25. package/dist/implementations/database/ddl.js +355 -0
  26. package/dist/implementations/database/ddl.js.map +1 -0
  27. package/dist/implementations/database/expression.d.ts +7 -0
  28. package/dist/implementations/database/expression.js +30 -0
  29. package/dist/implementations/database/expression.js.map +1 -0
  30. package/dist/implementations/database/external-catalog.d.ts +37 -0
  31. package/dist/implementations/database/external-catalog.js +96 -0
  32. package/dist/implementations/database/external-catalog.js.map +1 -0
  33. package/dist/implementations/database/external-column-profile.d.ts +18 -0
  34. package/dist/implementations/database/external-column-profile.js +223 -0
  35. package/dist/implementations/database/external-column-profile.js.map +1 -0
  36. package/dist/implementations/database/external-declarations.d.ts +9 -0
  37. package/dist/implementations/database/external-declarations.js +67 -0
  38. package/dist/implementations/database/external-declarations.js.map +1 -0
  39. package/dist/implementations/database/external-discovery.d.ts +39 -0
  40. package/dist/implementations/database/external-discovery.js +219 -0
  41. package/dist/implementations/database/external-discovery.js.map +1 -0
  42. package/dist/implementations/database/external-errors.d.ts +20 -0
  43. package/dist/implementations/database/external-errors.js +67 -0
  44. package/dist/implementations/database/external-errors.js.map +1 -0
  45. package/dist/implementations/database/external-measures.d.ts +11 -0
  46. package/dist/implementations/database/external-measures.js +82 -0
  47. package/dist/implementations/database/external-measures.js.map +1 -0
  48. package/dist/implementations/database/external-payload.d.ts +32 -0
  49. package/dist/implementations/database/external-payload.js +206 -0
  50. package/dist/implementations/database/external-payload.js.map +1 -0
  51. package/dist/implementations/database/external-profile.d.ts +4 -0
  52. package/dist/implementations/database/external-profile.js +129 -0
  53. package/dist/implementations/database/external-profile.js.map +1 -0
  54. package/dist/implementations/database/external-reference.d.ts +2 -0
  55. package/dist/implementations/database/external-reference.js +49 -0
  56. package/dist/implementations/database/external-reference.js.map +1 -0
  57. package/dist/implementations/database/external-refusals.d.ts +5 -0
  58. package/dist/implementations/database/external-refusals.js +23 -0
  59. package/dist/implementations/database/external-refusals.js.map +1 -0
  60. package/dist/implementations/database/external-rows.d.ts +2 -0
  61. package/dist/implementations/database/external-rows.js +81 -0
  62. package/dist/implementations/database/external-rows.js.map +1 -0
  63. package/dist/implementations/database/external-sample.d.ts +9 -0
  64. package/dist/implementations/database/external-sample.js +29 -0
  65. package/dist/implementations/database/external-sample.js.map +1 -0
  66. package/dist/implementations/database/external-schema.d.ts +3 -0
  67. package/dist/implementations/database/external-schema.js +111 -0
  68. package/dist/implementations/database/external-schema.js.map +1 -0
  69. package/dist/implementations/database/external-types.d.ts +37 -0
  70. package/dist/implementations/database/external-types.js +387 -0
  71. package/dist/implementations/database/external-types.js.map +1 -0
  72. package/dist/implementations/database/external-writes.d.ts +3 -0
  73. package/dist/implementations/database/external-writes.js +298 -0
  74. package/dist/implementations/database/external-writes.js.map +1 -0
  75. package/dist/implementations/database/feed-pipeline.d.ts +12 -0
  76. package/dist/implementations/database/feed-pipeline.js +92 -0
  77. package/dist/implementations/database/feed-pipeline.js.map +1 -0
  78. package/dist/implementations/database/feeds.d.ts +34 -0
  79. package/dist/implementations/database/feeds.js +338 -0
  80. package/dist/implementations/database/feeds.js.map +1 -0
  81. package/dist/implementations/database/fields.d.ts +37 -0
  82. package/dist/implementations/database/fields.js +114 -0
  83. package/dist/implementations/database/fields.js.map +1 -0
  84. package/dist/implementations/database/identifier.d.ts +8 -0
  85. package/dist/implementations/database/identifier.js +62 -0
  86. package/dist/implementations/database/identifier.js.map +1 -0
  87. package/dist/implementations/database/instances.d.ts +4 -0
  88. package/dist/implementations/database/instances.js +57 -0
  89. package/dist/implementations/database/instances.js.map +1 -0
  90. package/dist/implementations/database/introspect.d.ts +3 -0
  91. package/dist/implementations/database/introspect.js +36 -0
  92. package/dist/implementations/database/introspect.js.map +1 -0
  93. package/dist/implementations/database/jsonb.d.ts +29 -0
  94. package/dist/implementations/database/jsonb.js +54 -0
  95. package/dist/implementations/database/jsonb.js.map +1 -0
  96. package/dist/implementations/database/listener.d.ts +3 -0
  97. package/dist/implementations/database/listener.js +93 -0
  98. package/dist/implementations/database/listener.js.map +1 -0
  99. package/dist/implementations/database/migrate.d.ts +6 -0
  100. package/dist/implementations/database/migrate.js +282 -0
  101. package/dist/implementations/database/migrate.js.map +1 -0
  102. package/dist/implementations/database/payload.d.ts +24 -0
  103. package/dist/implementations/database/payload.js +113 -0
  104. package/dist/implementations/database/payload.js.map +1 -0
  105. package/dist/implementations/database/pipeline.d.ts +10 -0
  106. package/dist/implementations/database/pipeline.js +56 -0
  107. package/dist/implementations/database/pipeline.js.map +1 -0
  108. package/dist/implementations/database/query.d.ts +11 -0
  109. package/dist/implementations/database/query.js +189 -0
  110. package/dist/implementations/database/query.js.map +1 -0
  111. package/dist/implementations/database/readings.d.ts +17 -0
  112. package/dist/implementations/database/readings.js +133 -0
  113. package/dist/implementations/database/readings.js.map +1 -0
  114. package/dist/implementations/database/reaper.d.ts +6 -0
  115. package/dist/implementations/database/reaper.js +121 -0
  116. package/dist/implementations/database/reaper.js.map +1 -0
  117. package/dist/implementations/database/relation.d.ts +65 -0
  118. package/dist/implementations/database/relation.js +237 -0
  119. package/dist/implementations/database/relation.js.map +1 -0
  120. package/dist/implementations/database/result.d.ts +4 -0
  121. package/dist/implementations/database/result.js +70 -0
  122. package/dist/implementations/database/result.js.map +1 -0
  123. package/dist/implementations/database/row-source.d.ts +64 -0
  124. package/dist/implementations/database/row-source.js +279 -0
  125. package/dist/implementations/database/row-source.js.map +1 -0
  126. package/dist/implementations/database/schema.d.ts +15 -0
  127. package/dist/implementations/database/schema.js +143 -0
  128. package/dist/implementations/database/schema.js.map +1 -0
  129. package/dist/implementations/database/selection.d.ts +18 -0
  130. package/dist/implementations/database/selection.js +129 -0
  131. package/dist/implementations/database/selection.js.map +1 -0
  132. package/dist/implementations/database/sql.d.ts +24 -0
  133. package/dist/implementations/database/sql.js +48 -0
  134. package/dist/implementations/database/sql.js.map +1 -0
  135. package/dist/implementations/database/stage.d.ts +22 -0
  136. package/dist/implementations/database/stage.js +76 -0
  137. package/dist/implementations/database/stage.js.map +1 -0
  138. package/dist/implementations/database/stages-aggregate.d.ts +11 -0
  139. package/dist/implementations/database/stages-aggregate.js +112 -0
  140. package/dist/implementations/database/stages-aggregate.js.map +1 -0
  141. package/dist/implementations/database/stages-array.d.ts +2 -0
  142. package/dist/implementations/database/stages-array.js +162 -0
  143. package/dist/implementations/database/stages-array.js.map +1 -0
  144. package/dist/implementations/database/stages-core.d.ts +2 -0
  145. package/dist/implementations/database/stages-core.js +107 -0
  146. package/dist/implementations/database/stages-core.js.map +1 -0
  147. package/dist/implementations/database/stages-date.d.ts +2 -0
  148. package/dist/implementations/database/stages-date.js +65 -0
  149. package/dist/implementations/database/stages-date.js.map +1 -0
  150. package/dist/implementations/database/stages-group.d.ts +5 -0
  151. package/dist/implementations/database/stages-group.js +151 -0
  152. package/dist/implementations/database/stages-group.js.map +1 -0
  153. package/dist/implementations/database/stages-join.d.ts +2 -0
  154. package/dist/implementations/database/stages-join.js +162 -0
  155. package/dist/implementations/database/stages-join.js.map +1 -0
  156. package/dist/implementations/database/stages-numeric.d.ts +2 -0
  157. package/dist/implementations/database/stages-numeric.js +152 -0
  158. package/dist/implementations/database/stages-numeric.js.map +1 -0
  159. package/dist/implementations/database/stages-object.d.ts +2 -0
  160. package/dist/implementations/database/stages-object.js +81 -0
  161. package/dist/implementations/database/stages-object.js.map +1 -0
  162. package/dist/implementations/database/stages-projection.d.ts +2 -0
  163. package/dist/implementations/database/stages-projection.js +75 -0
  164. package/dist/implementations/database/stages-projection.js.map +1 -0
  165. package/dist/implementations/database/stages-rows.d.ts +2 -0
  166. package/dist/implementations/database/stages-rows.js +101 -0
  167. package/dist/implementations/database/stages-rows.js.map +1 -0
  168. package/dist/implementations/database/stages-selection.d.ts +2 -0
  169. package/dist/implementations/database/stages-selection.js +146 -0
  170. package/dist/implementations/database/stages-selection.js.map +1 -0
  171. package/dist/implementations/database/stages-string.d.ts +2 -0
  172. package/dist/implementations/database/stages-string.js +101 -0
  173. package/dist/implementations/database/stages-string.js.map +1 -0
  174. package/dist/implementations/database/subquery.d.ts +4 -0
  175. package/dist/implementations/database/subquery.js +49 -0
  176. package/dist/implementations/database/subquery.js.map +1 -0
  177. package/dist/implementations/database/types.d.ts +37 -0
  178. package/dist/implementations/database/types.js +57 -0
  179. package/dist/implementations/database/types.js.map +1 -0
  180. package/dist/implementations/database/utils.d.ts +16 -0
  181. package/dist/implementations/database/utils.js +38 -0
  182. package/dist/implementations/database/utils.js.map +1 -0
  183. package/dist/implementations/database/value.d.ts +10 -0
  184. package/dist/implementations/database/value.js +153 -0
  185. package/dist/implementations/database/value.js.map +1 -0
  186. package/dist/implementations/database/writes-atomic.d.ts +6 -0
  187. package/dist/implementations/database/writes-atomic.js +93 -0
  188. package/dist/implementations/database/writes-atomic.js.map +1 -0
  189. package/dist/implementations/database/writes-identity.d.ts +4 -0
  190. package/dist/implementations/database/writes-identity.js +181 -0
  191. package/dist/implementations/database/writes-identity.js.map +1 -0
  192. package/dist/implementations/database/writes-insert.d.ts +2 -0
  193. package/dist/implementations/database/writes-insert.js +136 -0
  194. package/dist/implementations/database/writes-insert.js.map +1 -0
  195. package/dist/implementations/database/writes-shared.d.ts +36 -0
  196. package/dist/implementations/database/writes-shared.js +64 -0
  197. package/dist/implementations/database/writes-shared.js.map +1 -0
  198. package/dist/implementations/database/writes.d.ts +16 -0
  199. package/dist/implementations/database/writes.js +52 -0
  200. package/dist/implementations/database/writes.js.map +1 -0
  201. package/dist/index.d.ts +4 -0
  202. package/dist/index.js +53 -0
  203. package/dist/index.js.map +1 -0
  204. package/dist/logger.d.ts +2 -0
  205. package/dist/logger.js +6 -0
  206. package/dist/logger.js.map +1 -0
  207. package/dist/test/antelope.test.d.ts +2 -0
  208. package/dist/test/antelope.test.js +89 -0
  209. package/dist/test/antelope.test.js.map +1 -0
  210. package/dist/test/atomic.test.d.ts +1 -0
  211. package/dist/test/atomic.test.js +132 -0
  212. package/dist/test/atomic.test.js.map +1 -0
  213. package/dist/test/catalog-owned.test.d.ts +1 -0
  214. package/dist/test/catalog-owned.test.js +17 -0
  215. package/dist/test/catalog-owned.test.js.map +1 -0
  216. package/dist/test/contention.test.d.ts +1 -0
  217. package/dist/test/contention.test.js +183 -0
  218. package/dist/test/contention.test.js.map +1 -0
  219. package/dist/test/indexes.test.d.ts +1 -0
  220. package/dist/test/indexes.test.js +311 -0
  221. package/dist/test/indexes.test.js.map +1 -0
  222. package/dist/test/unit/changes.spec.d.ts +1 -0
  223. package/dist/test/unit/changes.spec.js +103 -0
  224. package/dist/test/unit/changes.spec.js.map +1 -0
  225. package/dist/test/unit/coerce.spec.d.ts +1 -0
  226. package/dist/test/unit/coerce.spec.js +162 -0
  227. package/dist/test/unit/coerce.spec.js.map +1 -0
  228. package/dist/test/unit/config.spec.d.ts +1 -0
  229. package/dist/test/unit/config.spec.js +123 -0
  230. package/dist/test/unit/config.spec.js.map +1 -0
  231. package/dist/test/unit/connection.spec.d.ts +1 -0
  232. package/dist/test/unit/connection.spec.js +171 -0
  233. package/dist/test/unit/connection.spec.js.map +1 -0
  234. package/dist/test/unit/cursors.spec.d.ts +1 -0
  235. package/dist/test/unit/cursors.spec.js +823 -0
  236. package/dist/test/unit/cursors.spec.js.map +1 -0
  237. package/dist/test/unit/ddl.spec.d.ts +1 -0
  238. package/dist/test/unit/ddl.spec.js +571 -0
  239. package/dist/test/unit/ddl.spec.js.map +1 -0
  240. package/dist/test/unit/expression-array.spec.d.ts +1 -0
  241. package/dist/test/unit/expression-array.spec.js +488 -0
  242. package/dist/test/unit/expression-array.spec.js.map +1 -0
  243. package/dist/test/unit/expression-date.spec.d.ts +1 -0
  244. package/dist/test/unit/expression-date.spec.js +329 -0
  245. package/dist/test/unit/expression-date.spec.js.map +1 -0
  246. package/dist/test/unit/expression-numeric.spec.d.ts +1 -0
  247. package/dist/test/unit/expression-numeric.spec.js +362 -0
  248. package/dist/test/unit/expression-numeric.spec.js.map +1 -0
  249. package/dist/test/unit/expression-object.spec.d.ts +1 -0
  250. package/dist/test/unit/expression-object.spec.js +230 -0
  251. package/dist/test/unit/expression-object.spec.js.map +1 -0
  252. package/dist/test/unit/expression-stages.spec.d.ts +1 -0
  253. package/dist/test/unit/expression-stages.spec.js +82 -0
  254. package/dist/test/unit/expression-stages.spec.js.map +1 -0
  255. package/dist/test/unit/expression-string.spec.d.ts +1 -0
  256. package/dist/test/unit/expression-string.spec.js +249 -0
  257. package/dist/test/unit/expression-string.spec.js.map +1 -0
  258. package/dist/test/unit/expression.spec.d.ts +1 -0
  259. package/dist/test/unit/expression.spec.js +449 -0
  260. package/dist/test/unit/expression.spec.js.map +1 -0
  261. package/dist/test/unit/external-comparisons.spec.d.ts +1 -0
  262. package/dist/test/unit/external-comparisons.spec.js +147 -0
  263. package/dist/test/unit/external-comparisons.spec.js.map +1 -0
  264. package/dist/test/unit/external-types.spec.d.ts +1 -0
  265. package/dist/test/unit/external-types.spec.js +228 -0
  266. package/dist/test/unit/external-types.spec.js.map +1 -0
  267. package/dist/test/unit/feeds.spec.d.ts +1 -0
  268. package/dist/test/unit/feeds.spec.js +374 -0
  269. package/dist/test/unit/feeds.spec.js.map +1 -0
  270. package/dist/test/unit/fields.spec.d.ts +1 -0
  271. package/dist/test/unit/fields.spec.js +79 -0
  272. package/dist/test/unit/fields.spec.js.map +1 -0
  273. package/dist/test/unit/identifier.spec.d.ts +1 -0
  274. package/dist/test/unit/identifier.spec.js +50 -0
  275. package/dist/test/unit/identifier.spec.js.map +1 -0
  276. package/dist/test/unit/payload.spec.d.ts +1 -0
  277. package/dist/test/unit/payload.spec.js +278 -0
  278. package/dist/test/unit/payload.spec.js.map +1 -0
  279. package/dist/test/unit/pipeline-aggregate.spec.d.ts +1 -0
  280. package/dist/test/unit/pipeline-aggregate.spec.js +199 -0
  281. package/dist/test/unit/pipeline-aggregate.spec.js.map +1 -0
  282. package/dist/test/unit/pipeline-fixture.d.ts +79 -0
  283. package/dist/test/unit/pipeline-fixture.js +277 -0
  284. package/dist/test/unit/pipeline-fixture.js.map +1 -0
  285. package/dist/test/unit/pipeline-group.spec.d.ts +1 -0
  286. package/dist/test/unit/pipeline-group.spec.js +390 -0
  287. package/dist/test/unit/pipeline-group.spec.js.map +1 -0
  288. package/dist/test/unit/pipeline-join.spec.d.ts +1 -0
  289. package/dist/test/unit/pipeline-join.spec.js +165 -0
  290. package/dist/test/unit/pipeline-join.spec.js.map +1 -0
  291. package/dist/test/unit/pipeline-lookup.spec.d.ts +1 -0
  292. package/dist/test/unit/pipeline-lookup.spec.js +268 -0
  293. package/dist/test/unit/pipeline-lookup.spec.js.map +1 -0
  294. package/dist/test/unit/pipeline-projection.spec.d.ts +1 -0
  295. package/dist/test/unit/pipeline-projection.spec.js +183 -0
  296. package/dist/test/unit/pipeline-projection.spec.js.map +1 -0
  297. package/dist/test/unit/pipeline-rows.spec.d.ts +1 -0
  298. package/dist/test/unit/pipeline-rows.spec.js +321 -0
  299. package/dist/test/unit/pipeline-rows.spec.js.map +1 -0
  300. package/dist/test/unit/pipeline-selection.spec.d.ts +1 -0
  301. package/dist/test/unit/pipeline-selection.spec.js +257 -0
  302. package/dist/test/unit/pipeline-selection.spec.js.map +1 -0
  303. package/dist/test/unit/pipeline-stages.spec.d.ts +1 -0
  304. package/dist/test/unit/pipeline-stages.spec.js +226 -0
  305. package/dist/test/unit/pipeline-stages.spec.js.map +1 -0
  306. package/dist/test/unit/pipeline.spec.d.ts +1 -0
  307. package/dist/test/unit/pipeline.spec.js +72 -0
  308. package/dist/test/unit/pipeline.spec.js.map +1 -0
  309. package/dist/test/unit/query.spec.d.ts +1 -0
  310. package/dist/test/unit/query.spec.js +212 -0
  311. package/dist/test/unit/query.spec.js.map +1 -0
  312. package/dist/test/unit/reaper.spec.d.ts +1 -0
  313. package/dist/test/unit/reaper.spec.js +122 -0
  314. package/dist/test/unit/reaper.spec.js.map +1 -0
  315. package/dist/test/unit/relation.spec.d.ts +1 -0
  316. package/dist/test/unit/relation.spec.js +348 -0
  317. package/dist/test/unit/relation.spec.js.map +1 -0
  318. package/dist/test/unit/result.spec.d.ts +1 -0
  319. package/dist/test/unit/result.spec.js +128 -0
  320. package/dist/test/unit/result.spec.js.map +1 -0
  321. package/dist/test/unit/row-source.spec.d.ts +1 -0
  322. package/dist/test/unit/row-source.spec.js +141 -0
  323. package/dist/test/unit/row-source.spec.js.map +1 -0
  324. package/dist/test/unit/schema.spec.d.ts +1 -0
  325. package/dist/test/unit/schema.spec.js +44 -0
  326. package/dist/test/unit/schema.spec.js.map +1 -0
  327. package/dist/test/unit/selection.spec.d.ts +1 -0
  328. package/dist/test/unit/selection.spec.js +182 -0
  329. package/dist/test/unit/selection.spec.js.map +1 -0
  330. package/dist/test/unit/spec-fixture.d.ts +11 -0
  331. package/dist/test/unit/spec-fixture.js +71 -0
  332. package/dist/test/unit/spec-fixture.js.map +1 -0
  333. package/dist/test/unit/sql.spec.d.ts +1 -0
  334. package/dist/test/unit/sql.spec.js +38 -0
  335. package/dist/test/unit/sql.spec.js.map +1 -0
  336. package/dist/test/unit/subquery.spec.d.ts +1 -0
  337. package/dist/test/unit/subquery.spec.js +154 -0
  338. package/dist/test/unit/subquery.spec.js.map +1 -0
  339. package/dist/test/unit/types.spec.d.ts +1 -0
  340. package/dist/test/unit/types.spec.js +39 -0
  341. package/dist/test/unit/types.spec.js.map +1 -0
  342. package/dist/test/unit/utils.spec.d.ts +1 -0
  343. package/dist/test/unit/utils.spec.js +22 -0
  344. package/dist/test/unit/utils.spec.js.map +1 -0
  345. package/dist/test/unit/value.spec.d.ts +1 -0
  346. package/dist/test/unit/value.spec.js +195 -0
  347. package/dist/test/unit/value.spec.js.map +1 -0
  348. package/dist/test/unit/writes-atomic.spec.d.ts +1 -0
  349. package/dist/test/unit/writes-atomic.spec.js +66 -0
  350. package/dist/test/unit/writes-atomic.spec.js.map +1 -0
  351. package/dist/test/unit/writes-insert.spec.d.ts +1 -0
  352. package/dist/test/unit/writes-insert.spec.js +270 -0
  353. package/dist/test/unit/writes-insert.spec.js.map +1 -0
  354. package/dist/test/unit/writes-replace.spec.d.ts +1 -0
  355. package/dist/test/unit/writes-replace.spec.js +100 -0
  356. package/dist/test/unit/writes-replace.spec.js.map +1 -0
  357. package/dist/test/unit/writes-target.spec.d.ts +1 -0
  358. package/dist/test/unit/writes-target.spec.js +118 -0
  359. package/dist/test/unit/writes-target.spec.js.map +1 -0
  360. package/dist/test/unit/writes-update.spec.d.ts +1 -0
  361. package/dist/test/unit/writes-update.spec.js +297 -0
  362. package/dist/test/unit/writes-update.spec.js.map +1 -0
  363. package/dist/test-external/catalog.test.d.ts +1 -0
  364. package/dist/test-external/catalog.test.js +348 -0
  365. package/dist/test-external/catalog.test.js.map +1 -0
  366. package/dist/test-external/fixture.d.ts +7 -0
  367. package/dist/test-external/fixture.js +163 -0
  368. package/dist/test-external/fixture.js.map +1 -0
  369. package/dist/test-external/native.test.d.ts +1 -0
  370. package/dist/test-external/native.test.js +132 -0
  371. package/dist/test-external/native.test.js.map +1 -0
  372. package/dist/test-external/reads.test.d.ts +1 -0
  373. package/dist/test-external/reads.test.js +232 -0
  374. package/dist/test-external/reads.test.js.map +1 -0
  375. package/dist/test-external/refusals.test.d.ts +1 -0
  376. package/dist/test-external/refusals.test.js +93 -0
  377. package/dist/test-external/refusals.test.js.map +1 -0
  378. package/dist/test-external/registration.test.d.ts +1 -0
  379. package/dist/test-external/registration.test.js +127 -0
  380. package/dist/test-external/registration.test.js.map +1 -0
  381. package/dist/test-external/sales.d.ts +5 -0
  382. package/dist/test-external/sales.js +126 -0
  383. package/dist/test-external/sales.js.map +1 -0
  384. package/dist/test-external/startup.test.d.ts +1 -0
  385. package/dist/test-external/startup.test.js +15 -0
  386. package/dist/test-external/startup.test.js.map +1 -0
  387. package/dist/test-external/writes.test.d.ts +1 -0
  388. package/dist/test-external/writes.test.js +315 -0
  389. package/dist/test-external/writes.test.js.map +1 -0
  390. package/package.json +77 -7
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParamCollector = exports.JSON_NULL = void 0;
4
+ exports.QuoteIdentifier = QuoteIdentifier;
5
+ exports.QuoteLiteral = QuoteLiteral;
6
+ exports.QualifiedColumn = QualifiedColumn;
7
+ exports.JsonKey = JsonKey;
8
+ exports.Param = Param;
9
+ const types_1 = require("./types");
10
+ exports.JSON_NULL = "'null'::jsonb";
11
+ class ParamCollector {
12
+ values = [];
13
+ add(value) {
14
+ this.values.push(value);
15
+ return `$${this.values.length}`;
16
+ }
17
+ all() {
18
+ return [...this.values];
19
+ }
20
+ }
21
+ exports.ParamCollector = ParamCollector;
22
+ function QuoteIdentifier(name) {
23
+ if (name.includes("\0")) {
24
+ throw new Error("Identifiers cannot contain NUL bytes");
25
+ }
26
+ return `"${name.replace(/"/g, '""')}"`;
27
+ }
28
+ function QuoteLiteral(value) {
29
+ if (value.includes("\0")) {
30
+ throw new Error("String literals cannot contain NUL bytes");
31
+ }
32
+ const quoted = value.replace(/'/g, "''");
33
+ if (!quoted.includes("\\")) {
34
+ return `'${quoted}'`;
35
+ }
36
+ return `E'${quoted.replace(/\\/g, "\\\\")}'`;
37
+ }
38
+ function QualifiedColumn(alias, column) {
39
+ return `${QuoteIdentifier(alias)}.${QuoteIdentifier(column)}`;
40
+ }
41
+ function JsonKey(source, key) {
42
+ return `(${source} -> ${QuoteLiteral(key)})`;
43
+ }
44
+ function Param(params, value, type) {
45
+ const encoded = (0, types_1.IsJsonBacked)(type) ? JSON.stringify(value) : value;
46
+ return { sql: `(${params.add(encoded)}::${(0, types_1.PhysicalType)(type)})`, type };
47
+ }
48
+ //# sourceMappingURL=sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/implementations/database/sql.ts"],"names":[],"mappings":";;;AAkDA,0CAKC;AAED,oCASC;AAGD,0CAEC;AAGD,0BAEC;AAED,sBAOC;AArFD,mCAAmE;AAmCtD,QAAA,SAAS,GAAG,eAAe,CAAC;AAEzC,MAAa,cAAc;IACR,MAAM,GAAc,EAAE,CAAC;IAEjC,GAAG,CAAC,KAAc;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAEM,GAAG;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF;AAXD,wCAWC;AAED,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,MAAM,GAAG,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AAC/C,CAAC;AAGD,SAAgB,eAAe,CAAC,KAAa,EAAE,MAAc;IAC3D,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;AAChE,CAAC;AAGD,SAAgB,OAAO,CAAC,MAAc,EAAE,GAAW;IACjD,OAAO,IAAI,MAAM,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,SAAgB,KAAK,CACnB,MAAsB,EACtB,KAAc,EACd,IAAa;IAEb,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,OAAO,EAAE,GAAG,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAA,oBAAY,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { QueryStage } from "@antelopejs/interface-database/common";
2
+ import type { Compiled } from "./sql";
3
+ import type { DecodingContext } from "./context";
4
+ import { type RowSource } from "./row-source";
5
+ export interface ExpressionState {
6
+ current?: Compiled | RowSource;
7
+ timezone?: string;
8
+ }
9
+ export type StageHandler = (state: ExpressionState, stage: QueryStage, context: DecodingContext) => ExpressionState;
10
+ export type StageMap = Record<string, StageHandler>;
11
+ export type ValueStage = (value: Compiled, args: readonly (Compiled | undefined)[], stage: QueryStage, context: DecodingContext) => Compiled;
12
+ export type RawValueStage = (value: Compiled, stage: QueryStage, context: DecodingContext) => Compiled;
13
+ export declare const FIRST_OPERAND = 0;
14
+ export declare const SECOND_OPERAND = 1;
15
+ export declare function AsValue(state: ExpressionState): Compiled;
16
+ export declare function AsSource(state: ExpressionState): RowSource;
17
+ export declare function RequireOperand(value: Compiled | undefined, stage: QueryStage, index: number): Compiled;
18
+ export declare function FieldNames(stage: QueryStage, index?: number): string[];
19
+ export declare function Lift(handler: ValueStage): StageHandler;
20
+ export declare function LiftRaw(handler: RawValueStage): StageHandler;
21
+ export declare function BuildStages<Operator>(operators: Record<string, Operator>, build: (operator: Operator) => StageHandler): StageMap;
22
+ export declare function FieldOf(source: RowSource, stage: QueryStage, context: DecodingContext): Compiled;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SECOND_OPERAND = exports.FIRST_OPERAND = void 0;
4
+ exports.AsValue = AsValue;
5
+ exports.AsSource = AsSource;
6
+ exports.RequireOperand = RequireOperand;
7
+ exports.FieldNames = FieldNames;
8
+ exports.Lift = Lift;
9
+ exports.LiftRaw = LiftRaw;
10
+ exports.BuildStages = BuildStages;
11
+ exports.FieldOf = FieldOf;
12
+ const value_1 = require("./value");
13
+ const row_source_1 = require("./row-source");
14
+ exports.FIRST_OPERAND = 0;
15
+ exports.SECOND_OPERAND = 1;
16
+ const EMPTY_STATE = "Expression has no value to operate on";
17
+ function RequireCurrent(state) {
18
+ if (!state.current) {
19
+ throw new Error(EMPTY_STATE);
20
+ }
21
+ return state.current;
22
+ }
23
+ function IsCompiled(current) {
24
+ return "sql" in current;
25
+ }
26
+ function AsValue(state) {
27
+ const current = RequireCurrent(state);
28
+ return IsCompiled(current) ? current : current.toJson();
29
+ }
30
+ function AsSource(state) {
31
+ const current = RequireCurrent(state);
32
+ return IsCompiled(current) ? new row_source_1.JsonRowSource(current) : current;
33
+ }
34
+ function RequireOperand(value, stage, index) {
35
+ if (!value) {
36
+ throw new Error(`Stage '${stage.stage}' requires an operand at position ${index}`);
37
+ }
38
+ return value;
39
+ }
40
+ function FieldNames(stage, index = exports.FIRST_OPERAND) {
41
+ const fields = stage.args[index];
42
+ const named = Array.isArray(fields) && fields.every((field) => typeof field === "string");
43
+ if (!named) {
44
+ throw new Error(`Stage '${stage.stage}' requires a list of field names`);
45
+ }
46
+ return fields;
47
+ }
48
+ function Lift(handler) {
49
+ return (state, stage, context) => {
50
+ const value = AsValue(state);
51
+ const args = stage.args.map((arg) => (0, value_1.DecodeValue)(arg, context));
52
+ return { current: handler(value, args, stage, context) };
53
+ };
54
+ }
55
+ function LiftRaw(handler) {
56
+ return (state, stage, context) => ({
57
+ current: handler(AsValue(state), stage, context),
58
+ });
59
+ }
60
+ function BuildStages(operators, build) {
61
+ const stages = {};
62
+ for (const [name, operator] of Object.entries(operators)) {
63
+ stages[name] = build(operator);
64
+ }
65
+ return stages;
66
+ }
67
+ function FieldOf(source, stage, context) {
68
+ const def = (0, value_1.DecodeValue)(stage.args[exports.SECOND_OPERAND], context);
69
+ const name = stage.args[exports.FIRST_OPERAND];
70
+ if (typeof name === "string") {
71
+ return source.field(name, def);
72
+ }
73
+ const key = RequireOperand((0, value_1.DecodeValue)(name, context), stage, exports.FIRST_OPERAND);
74
+ return source.dynamicField(key, def);
75
+ }
76
+ //# sourceMappingURL=stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage.js","sourceRoot":"","sources":["../../../src/implementations/database/stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { QueryStage } from "@antelopejs/interface-database/common";
2
+ import type { Compiled } from "./sql";
3
+ import type { PipelineStageMap } from "./pipeline";
4
+ export type Aggregation = (operand: Compiled, distinct?: boolean) => Compiled;
5
+ export declare function NamedField(stage: QueryStage): string | undefined;
6
+ export declare const Total: Aggregation;
7
+ export declare const Mean: Aggregation;
8
+ export declare const Minimum: Aggregation;
9
+ export declare const Maximum: Aggregation;
10
+ export declare function Tally(operand?: Compiled): Compiled;
11
+ export declare const AGGREGATE_STAGES: PipelineStageMap;
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AGGREGATE_STAGES = exports.Maximum = exports.Minimum = exports.Mean = exports.Total = void 0;
7
+ exports.NamedField = NamedField;
8
+ exports.Tally = Tally;
9
+ const node_assert_1 = __importDefault(require("node:assert"));
10
+ const readings_1 = require("./readings");
11
+ const relation_1 = require("./relation");
12
+ const AGGREGATE_BLOCKERS = [
13
+ "projection",
14
+ "limit",
15
+ "offset",
16
+ "distinct",
17
+ "aggregated",
18
+ ];
19
+ const DISTINCT_BLOCKERS = [
20
+ ...AGGREGATE_BLOCKERS,
21
+ "ordered",
22
+ ];
23
+ const COUNT = "count";
24
+ const SUM = "sum";
25
+ const AVERAGE = "avg";
26
+ const MINIMUM = "min";
27
+ const MAXIMUM = "max";
28
+ const DISTINCT = "distinct";
29
+ const ALL_ROWS = "*";
30
+ const EMPTY_SUM = "0";
31
+ const DEDUPED = "DISTINCT ";
32
+ function NamedField(stage) {
33
+ const field = stage.options?.field;
34
+ if (field === undefined) {
35
+ return undefined;
36
+ }
37
+ (0, node_assert_1.default)(typeof field === "string", `The '${stage.stage}' stage was given a field that is not a name`);
38
+ return field;
39
+ }
40
+ function NamedOperand(relation, stage) {
41
+ const field = NamedField(stage);
42
+ return field === undefined ? undefined : relation.source.field(field);
43
+ }
44
+ function Operand(relation, stage) {
45
+ return NamedOperand(relation, stage) ?? (0, relation_1.CurrentValue)(relation);
46
+ }
47
+ function Applied(func, argument, distinct = false) {
48
+ return `${func}(${distinct ? DEDUPED : ""}${argument})`;
49
+ }
50
+ function Summed(operand) {
51
+ return operand.native?.numeric ? operand.native.sql : (0, readings_1.Numeric)(operand).sql;
52
+ }
53
+ const Total = (operand, distinct) => (0, readings_1.AsFloat)(`COALESCE(${Applied(SUM, Summed(operand), distinct)}, ${EMPTY_SUM})`);
54
+ exports.Total = Total;
55
+ const Mean = (operand, distinct) => (0, readings_1.AsFloat)(Applied(AVERAGE, Summed(operand), distinct));
56
+ exports.Mean = Mean;
57
+ function Ordered(operand) {
58
+ if (operand.native?.numeric) {
59
+ return { sql: operand.native.sql, type: operand.type };
60
+ }
61
+ return readings_1.ORDERED_KINDS[operand.type.kind] ? operand : (0, readings_1.Numeric)(operand);
62
+ }
63
+ function Extremum(func) {
64
+ return (operand, distinct) => {
65
+ const ordered = Ordered(operand);
66
+ const applied = Applied(func, ordered.sql, distinct);
67
+ return ordered.type.kind === "float"
68
+ ? (0, readings_1.AsFloat)(applied)
69
+ : { sql: `(${applied})`, type: ordered.type };
70
+ };
71
+ }
72
+ exports.Minimum = Extremum(MINIMUM);
73
+ exports.Maximum = Extremum(MAXIMUM);
74
+ function Tally(operand) {
75
+ const named = operand !== undefined;
76
+ return (0, readings_1.AsFloat)(Applied(COUNT, named ? operand.sql : ALL_ROWS, named));
77
+ }
78
+ function SetAggregate(relation, value) {
79
+ const aggregate = (0, relation_1.SetProjection)(relation, value);
80
+ (0, relation_1.AbsorbOrder)(aggregate);
81
+ aggregate.single = true;
82
+ aggregate.aggregated = true;
83
+ return aggregate;
84
+ }
85
+ function AggregateStage(aggregate) {
86
+ return (relation, stage, context) => {
87
+ const prepared = (0, relation_1.Prepare)(relation, AGGREGATE_BLOCKERS, context);
88
+ return SetAggregate(prepared, aggregate(Operand(prepared, stage)));
89
+ };
90
+ }
91
+ const CountStage = (relation, stage, context) => {
92
+ const prepared = (0, relation_1.Prepare)(relation, AGGREGATE_BLOCKERS, context);
93
+ return SetAggregate(prepared, Tally(NamedOperand(prepared, stage)));
94
+ };
95
+ const DistinctStage = (relation, stage, context) => {
96
+ const prepared = (0, relation_1.Prepare)(relation, DISTINCT_BLOCKERS, context);
97
+ prepared.distinct = true;
98
+ const field = NamedField(stage);
99
+ if (field === undefined) {
100
+ return prepared;
101
+ }
102
+ return (0, relation_1.SetProjection)(prepared, prepared.source.field(field));
103
+ };
104
+ exports.AGGREGATE_STAGES = {
105
+ [SUM]: AggregateStage(exports.Total),
106
+ [AVERAGE]: AggregateStage(exports.Mean),
107
+ [MINIMUM]: AggregateStage(exports.Minimum),
108
+ [MAXIMUM]: AggregateStage(exports.Maximum),
109
+ [COUNT]: CountStage,
110
+ [DISTINCT]: DistinctStage,
111
+ };
112
+ //# sourceMappingURL=stages-aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stages-aggregate.js","sourceRoot":"","sources":["../../../src/implementations/database/stages-aggregate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type StageMap } from "./stage";
2
+ export declare const ARRAY_STAGES: StageMap;
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ARRAY_STAGES = void 0;
4
+ const coerce_1 = require("./coerce");
5
+ const value_1 = require("./value");
6
+ const types_1 = require("./types");
7
+ const jsonb_1 = require("./jsonb");
8
+ const readings_1 = require("./readings");
9
+ const stage_1 = require("./stage");
10
+ const ELEMENTS_FUNCTION = "jsonb_array_elements";
11
+ const LENGTH_FUNCTION = "jsonb_array_length";
12
+ const BUILD_ARRAY = "jsonb_build_array";
13
+ const CONTAINS = "@>";
14
+ const AT_INDEX = "->";
15
+ const NO_ELEMENTS = "0";
16
+ const EMPTY_SUM = "0";
17
+ const AFTER_START = ">";
18
+ const BEFORE_END = "<=";
19
+ const ARRAY_ORIGIN = "0";
20
+ function ElementType(type) {
21
+ return type.kind === "array" ? type.elem : types_1.OPAQUE;
22
+ }
23
+ function Element(alias, type) {
24
+ return (0, coerce_1.Cast)({ sql: (0, jsonb_1.WalkColumn)(alias, jsonb_1.VALUE_COLUMN), type: types_1.OPAQUE }, type);
25
+ }
26
+ function Ordinal(alias) {
27
+ return (0, jsonb_1.WalkColumn)(alias, jsonb_1.ORDINAL_COLUMN);
28
+ }
29
+ function WalkElements(json, alias, aggregate, predicate) {
30
+ return (0, jsonb_1.Walk)({
31
+ func: ELEMENTS_FUNCTION,
32
+ json,
33
+ alias,
34
+ columns: [jsonb_1.VALUE_COLUMN],
35
+ aggregate,
36
+ predicate,
37
+ });
38
+ }
39
+ const MEASURES = {
40
+ arr_count: (length) => (0, readings_1.AsFloat)(length),
41
+ arr_empty: (length) => ({ sql: `(${length} = ${NO_ELEMENTS})`, type: types_1.BOOL }),
42
+ };
43
+ function MeasureStage(measure) {
44
+ return (0, stage_1.LiftRaw)((value) => {
45
+ const json = (0, readings_1.AsJson)(value);
46
+ const measured = measure(`${LENGTH_FUNCTION}(${json.sql})`);
47
+ return {
48
+ sql: (0, jsonb_1.GuardJson)(json, jsonb_1.ARRAY_TYPEOF, measured.sql),
49
+ type: measured.type,
50
+ };
51
+ });
52
+ }
53
+ function Position(key) {
54
+ return `(${(0, readings_1.ClampToRange)((0, readings_1.Numeric)(key).sql, readings_1.INT4_MIN, readings_1.INT4_MAX)}::int)`;
55
+ }
56
+ const IndexStage = (0, stage_1.Lift)((value, args, stage) => {
57
+ const elem = ElementType(value.type);
58
+ const json = (0, readings_1.AsJson)(value);
59
+ const key = (0, stage_1.RequireOperand)(args[stage_1.FIRST_OPERAND], stage, stage_1.FIRST_OPERAND);
60
+ const item = `(${json.sql} ${AT_INDEX} ${Position(key)})`;
61
+ const element = (0, coerce_1.Cast)({ sql: item, type: types_1.OPAQUE }, elem);
62
+ return {
63
+ sql: (0, jsonb_1.GuardJson)(json, jsonb_1.ARRAY_TYPEOF, element.sql),
64
+ type: element.type,
65
+ };
66
+ });
67
+ const IncludesStage = (0, stage_1.Lift)((value, args, stage) => {
68
+ const json = (0, readings_1.AsJson)(value);
69
+ const other = (0, readings_1.AsJson)((0, stage_1.RequireOperand)(args[stage_1.FIRST_OPERAND], stage, stage_1.FIRST_OPERAND));
70
+ const test = `(${json.sql} ${CONTAINS} ${BUILD_ARRAY}(${other.sql}))`;
71
+ return { sql: test, type: types_1.BOOL };
72
+ });
73
+ function FromEnd(json, bound) {
74
+ const truncated = `trunc(${bound})`;
75
+ const counted = `GREATEST(${LENGTH_FUNCTION}(${json}) + ${truncated}, ${ARRAY_ORIGIN})`;
76
+ return `(CASE WHEN ${truncated} < ${ARRAY_ORIGIN} THEN ${counted} ELSE ${truncated} END)`;
77
+ }
78
+ function Bounds(json, alias, start, end) {
79
+ const low = FromEnd(json, (0, readings_1.Numeric)(start).sql);
80
+ const bounds = [`${Ordinal(alias)} ${AFTER_START} ${low}`];
81
+ if (end) {
82
+ const high = FromEnd(json, (0, readings_1.Numeric)(end).sql);
83
+ bounds.push(`${Ordinal(alias)} ${BEFORE_END} ${high}`);
84
+ }
85
+ return `(${bounds.join(" AND ")})`;
86
+ }
87
+ const SliceStage = (0, stage_1.Lift)((value, args, stage, context) => {
88
+ const elem = ElementType(value.type);
89
+ const json = (0, readings_1.AsJson)(value);
90
+ const start = (0, stage_1.RequireOperand)(args[stage_1.FIRST_OPERAND], stage, stage_1.FIRST_OPERAND);
91
+ const alias = context.nextAlias();
92
+ const collected = (0, jsonb_1.Collected)(Ordinal(alias), (0, jsonb_1.WalkColumn)(alias, jsonb_1.VALUE_COLUMN));
93
+ const bounds = Bounds(json.sql, alias, start, args[stage_1.SECOND_OPERAND]);
94
+ return {
95
+ sql: (0, jsonb_1.GuardJson)(json, jsonb_1.ARRAY_TYPEOF, WalkElements(json.sql, alias, collected, bounds)),
96
+ type: (0, types_1.ArrayOf)(elem),
97
+ };
98
+ });
99
+ function BindElement(value, stage, context) {
100
+ const func = stage.args[stage_1.FIRST_OPERAND];
101
+ if (!func || !Array.isArray(func.args?.[stage_1.FIRST_OPERAND])) {
102
+ throw new Error(`Stage '${stage.stage}' requires a callback`);
103
+ }
104
+ const alias = context.nextAlias();
105
+ const element = Element(alias, ElementType(value.type));
106
+ const body = (0, value_1.DecodeFunction)(func, context, [element]);
107
+ return { alias, body: (0, stage_1.RequireOperand)(body, stage, stage_1.FIRST_OPERAND) };
108
+ }
109
+ const MapStage = (0, stage_1.LiftRaw)((value, stage, context) => {
110
+ const lambda = BindElement(value, stage, context);
111
+ const json = (0, readings_1.AsJson)(value);
112
+ const collected = (0, jsonb_1.Collected)(Ordinal(lambda.alias), (0, readings_1.AsJson)(lambda.body).sql);
113
+ return {
114
+ sql: (0, jsonb_1.GuardJson)(json, jsonb_1.ARRAY_TYPEOF, WalkElements(json.sql, lambda.alias, collected)),
115
+ type: (0, types_1.ArrayOf)(lambda.body.type),
116
+ };
117
+ });
118
+ const FilterStage = (0, stage_1.LiftRaw)((value, stage, context) => {
119
+ const elem = ElementType(value.type);
120
+ const lambda = BindElement(value, stage, context);
121
+ const json = (0, readings_1.AsJson)(value);
122
+ const collected = (0, jsonb_1.Collected)(Ordinal(lambda.alias), (0, jsonb_1.WalkColumn)(lambda.alias, jsonb_1.VALUE_COLUMN));
123
+ const kept = (0, readings_1.Predicate)(lambda.body).sql;
124
+ return {
125
+ sql: (0, jsonb_1.GuardJson)(json, jsonb_1.ARRAY_TYPEOF, WalkElements(json.sql, lambda.alias, collected, kept)),
126
+ type: (0, types_1.ArrayOf)(elem),
127
+ };
128
+ });
129
+ const AS_NUMBER = () => types_1.FLOAT;
130
+ const AS_COMPARABLE = (elem) => readings_1.ORDERED_KINDS[elem.kind] ?? types_1.FLOAT;
131
+ const REDUCERS = {
132
+ arr_sum: { func: "sum", reading: AS_NUMBER, empty: EMPTY_SUM },
133
+ arr_avg: { func: "avg", reading: AS_NUMBER },
134
+ arr_min: { func: "min", reading: AS_COMPARABLE },
135
+ arr_max: { func: "max", reading: AS_COMPARABLE },
136
+ };
137
+ function Reduced(reducer, target) {
138
+ const reduced = `${reducer.func}(${target})`;
139
+ return reducer.empty ? `COALESCE(${reduced}, ${reducer.empty})` : reduced;
140
+ }
141
+ function ReducerStage(reducer) {
142
+ return (0, stage_1.LiftRaw)((value, _stage, context) => {
143
+ const alias = context.nextAlias();
144
+ const element = Element(alias, reducer.reading(ElementType(value.type)));
145
+ const json = (0, readings_1.AsJson)(value);
146
+ const reduced = Reduced(reducer, element.sql);
147
+ return {
148
+ sql: (0, jsonb_1.GuardJson)(json, jsonb_1.ARRAY_TYPEOF, WalkElements(json.sql, alias, reduced)),
149
+ type: element.type,
150
+ };
151
+ });
152
+ }
153
+ exports.ARRAY_STAGES = {
154
+ arr_index: IndexStage,
155
+ arr_includes: IncludesStage,
156
+ arr_slice: SliceStage,
157
+ arr_map: MapStage,
158
+ arr_filter: FilterStage,
159
+ ...(0, stage_1.BuildStages)(MEASURES, MeasureStage),
160
+ ...(0, stage_1.BuildStages)(REDUCERS, ReducerStage),
161
+ };
162
+ //# sourceMappingURL=stages-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stages-array.js","sourceRoot":"","sources":["../../../src/implementations/database/stages-array.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type StageMap } from "./stage";
2
+ export declare const CORE_STAGES: StageMap;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CORE_STAGES = void 0;
4
+ const readings_1 = require("./readings");
5
+ const value_1 = require("./value");
6
+ const types_1 = require("./types");
7
+ const coerce_1 = require("./coerce");
8
+ const stage_1 = require("./stage");
9
+ const BOOLEAN_OPERATORS = {
10
+ and: "AND",
11
+ or: "OR",
12
+ };
13
+ const ORDERING_OPERATORS = {
14
+ cmp_gt: ">",
15
+ cmp_ge: ">=",
16
+ cmp_lt: "<",
17
+ cmp_le: "<=",
18
+ };
19
+ const ArgStage = (_state, stage, context) => {
20
+ const binding = context.arg(stage.args[stage_1.FIRST_OPERAND]);
21
+ if (typeof binding === "function") {
22
+ return { current: binding([stage]) };
23
+ }
24
+ return { current: binding };
25
+ };
26
+ const ConstantStage = (_state, stage, context) => ({
27
+ current: (0, stage_1.RequireOperand)((0, value_1.DecodeValue)(stage.args[stage_1.FIRST_OPERAND], context), stage, stage_1.FIRST_OPERAND),
28
+ });
29
+ const DefaultStage = (0, stage_1.Lift)((value, args) => (0, coerce_1.WithDefault)(value, args[stage_1.FIRST_OPERAND]));
30
+ const NotStage = (0, stage_1.Lift)((value) => ({
31
+ sql: `(${(0, readings_1.Predicate)(value).sql} IS NOT TRUE)`,
32
+ type: types_1.BOOL,
33
+ }));
34
+ function BooleanStage(operator) {
35
+ return (0, stage_1.Lift)((value, args, stage) => {
36
+ const other = (0, stage_1.RequireOperand)(args[stage_1.FIRST_OPERAND], stage, stage_1.FIRST_OPERAND);
37
+ return {
38
+ sql: `(${(0, readings_1.Predicate)(value).sql} ${operator} ${(0, readings_1.Predicate)(other).sql})`,
39
+ type: types_1.BOOL,
40
+ };
41
+ });
42
+ }
43
+ const EQUAL = "=";
44
+ const DISTINCT_FROM = "IS DISTINCT FROM";
45
+ function Comparison(value, other, operator) {
46
+ const pair = (0, coerce_1.UnifyOperands)(value, other, operator);
47
+ return {
48
+ sql: `(${pair.left.sql} ${operator} ${pair.right.sql})`,
49
+ type: types_1.BOOL,
50
+ };
51
+ }
52
+ const Identical = (value, other) => Comparison(value, other, EQUAL);
53
+ function Distinguishable(value, other) {
54
+ if ((0, types_1.IsOpaque)(value.type) === (0, types_1.IsOpaque)(other.type)) {
55
+ return (0, coerce_1.UnifyOperands)(value, other);
56
+ }
57
+ return { left: (0, readings_1.AsJson)(value), right: (0, readings_1.AsJson)(other), type: types_1.OPAQUE };
58
+ }
59
+ const Distinct = (value, other) => {
60
+ const pair = Distinguishable(value, other);
61
+ if (pair.converted) {
62
+ return {
63
+ sql: `((${pair.left.sql} ${EQUAL} ${pair.right.sql}) IS NOT TRUE)`,
64
+ type: types_1.BOOL,
65
+ };
66
+ }
67
+ return {
68
+ sql: `(${pair.left.sql} ${DISTINCT_FROM} ${pair.right.sql})`,
69
+ type: types_1.BOOL,
70
+ };
71
+ };
72
+ const EQUALITY_OPERATORS = {
73
+ eq: { compare: Identical, negated: false },
74
+ ne: { compare: Distinct, negated: true },
75
+ };
76
+ function NullTest(value, negated) {
77
+ const missing = `(${value.sql} IS NULL)`;
78
+ const test = (0, types_1.IsJsonBacked)(value.type)
79
+ ? `(${missing} OR (${value.sql} = ${value_1.NULL_JSON.sql}))`
80
+ : missing;
81
+ return { sql: negated ? `(NOT ${test})` : test, type: types_1.BOOL };
82
+ }
83
+ function EqualityStage(operator) {
84
+ return (0, stage_1.Lift)((value, args, stage) => {
85
+ const other = (0, stage_1.RequireOperand)(args[stage_1.FIRST_OPERAND], stage, stage_1.FIRST_OPERAND);
86
+ if (other === value_1.NULL_JSON) {
87
+ return NullTest(value, operator.negated);
88
+ }
89
+ if (value === value_1.NULL_JSON) {
90
+ return NullTest(other, operator.negated);
91
+ }
92
+ return operator.compare(value, other);
93
+ });
94
+ }
95
+ function OrderingStage(operator) {
96
+ return (0, stage_1.Lift)((value, args, stage) => Comparison(value, (0, stage_1.RequireOperand)(args[stage_1.FIRST_OPERAND], stage, stage_1.FIRST_OPERAND), operator));
97
+ }
98
+ exports.CORE_STAGES = {
99
+ arg: ArgStage,
100
+ constant: ConstantStage,
101
+ default: DefaultStage,
102
+ not: NotStage,
103
+ ...(0, stage_1.BuildStages)(BOOLEAN_OPERATORS, BooleanStage),
104
+ ...(0, stage_1.BuildStages)(EQUALITY_OPERATORS, EqualityStage),
105
+ ...(0, stage_1.BuildStages)(ORDERING_OPERATORS, OrderingStage),
106
+ };
107
+ //# sourceMappingURL=stages-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stages-core.js","sourceRoot":"","sources":["../../../src/implementations/database/stages-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type StageMap } from "./stage";
2
+ export declare const DATE_STAGES: StageMap;