@antelopejs/postgres 0.2.2 → 0.2.4

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 (280) hide show
  1. package/README.md +28 -15
  2. package/dist/config.d.ts +1 -0
  3. package/dist/config.js +7 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/connect-failure.d.ts +1 -0
  6. package/dist/connect-failure.js +39 -0
  7. package/dist/connect-failure.js.map +1 -0
  8. package/dist/connection.d.ts +2 -1
  9. package/dist/connection.js +19 -2
  10. package/dist/connection.js.map +1 -1
  11. package/dist/implementations/catalog/index.js +3 -6
  12. package/dist/implementations/catalog/index.js.map +1 -1
  13. package/dist/implementations/database/coerce.js +20 -20
  14. package/dist/implementations/database/coerce.js.map +1 -1
  15. package/dist/implementations/database/context.d.ts +1 -0
  16. package/dist/implementations/database/context.js +4 -0
  17. package/dist/implementations/database/context.js.map +1 -1
  18. package/dist/implementations/database/convergence.d.ts +22 -0
  19. package/dist/implementations/database/convergence.js +183 -0
  20. package/dist/implementations/database/convergence.js.map +1 -0
  21. package/dist/implementations/database/cursors.js +3 -0
  22. package/dist/implementations/database/cursors.js.map +1 -1
  23. package/dist/implementations/database/ddl.d.ts +5 -26
  24. package/dist/implementations/database/ddl.js +15 -191
  25. package/dist/implementations/database/ddl.js.map +1 -1
  26. package/dist/implementations/database/external-column-profile.js +6 -1
  27. package/dist/implementations/database/external-column-profile.js.map +1 -1
  28. package/dist/implementations/database/external-discovery.js +5 -5
  29. package/dist/implementations/database/external-discovery.js.map +1 -1
  30. package/dist/implementations/database/external-measures.js.map +1 -1
  31. package/dist/implementations/database/external-payload.d.ts +2 -2
  32. package/dist/implementations/database/external-payload.js +23 -13
  33. package/dist/implementations/database/external-payload.js.map +1 -1
  34. package/dist/implementations/database/external-schema.d.ts +2 -2
  35. package/dist/implementations/database/external-schema.js +3 -3
  36. package/dist/implementations/database/external-schema.js.map +1 -1
  37. package/dist/implementations/database/external-types.js +23 -16
  38. package/dist/implementations/database/external-types.js.map +1 -1
  39. package/dist/implementations/database/external-writes.d.ts +7 -1
  40. package/dist/implementations/database/external-writes.js +22 -21
  41. package/dist/implementations/database/external-writes.js.map +1 -1
  42. package/dist/implementations/database/feed-pipeline.js +3 -2
  43. package/dist/implementations/database/feed-pipeline.js.map +1 -1
  44. package/dist/implementations/database/feeds.d.ts +1 -1
  45. package/dist/implementations/database/feeds.js +36 -45
  46. package/dist/implementations/database/feeds.js.map +1 -1
  47. package/dist/implementations/database/fields.d.ts +9 -13
  48. package/dist/implementations/database/fields.js +25 -21
  49. package/dist/implementations/database/fields.js.map +1 -1
  50. package/dist/implementations/database/guards.d.ts +5 -0
  51. package/dist/implementations/database/guards.js +23 -0
  52. package/dist/implementations/database/guards.js.map +1 -0
  53. package/dist/implementations/database/introspect.d.ts +1 -1
  54. package/dist/implementations/database/listener.js +9 -3
  55. package/dist/implementations/database/listener.js.map +1 -1
  56. package/dist/implementations/database/migrate.d.ts +2 -2
  57. package/dist/implementations/database/migrate.js +10 -10
  58. package/dist/implementations/database/migrate.js.map +1 -1
  59. package/dist/implementations/database/payload.d.ts +3 -3
  60. package/dist/implementations/database/payload.js +4 -4
  61. package/dist/implementations/database/pipeline.d.ts +6 -2
  62. package/dist/implementations/database/pipeline.js +4 -1
  63. package/dist/implementations/database/pipeline.js.map +1 -1
  64. package/dist/implementations/database/query.js +12 -7
  65. package/dist/implementations/database/query.js.map +1 -1
  66. package/dist/implementations/database/reaper.js +6 -4
  67. package/dist/implementations/database/reaper.js.map +1 -1
  68. package/dist/implementations/database/relation.d.ts +2 -12
  69. package/dist/implementations/database/relation.js +5 -141
  70. package/dist/implementations/database/relation.js.map +1 -1
  71. package/dist/implementations/database/render.d.ts +11 -0
  72. package/dist/implementations/database/render.js +147 -0
  73. package/dist/implementations/database/render.js.map +1 -0
  74. package/dist/implementations/database/result.d.ts +2 -2
  75. package/dist/implementations/database/result.js +18 -19
  76. package/dist/implementations/database/result.js.map +1 -1
  77. package/dist/implementations/database/row-source.d.ts +10 -10
  78. package/dist/implementations/database/row-source.js +22 -19
  79. package/dist/implementations/database/row-source.js.map +1 -1
  80. package/dist/implementations/database/schema.d.ts +2 -2
  81. package/dist/implementations/database/schema.js +19 -19
  82. package/dist/implementations/database/schema.js.map +1 -1
  83. package/dist/implementations/database/selection.js +13 -7
  84. package/dist/implementations/database/selection.js.map +1 -1
  85. package/dist/implementations/database/sql.d.ts +7 -3
  86. package/dist/implementations/database/sql.js.map +1 -1
  87. package/dist/implementations/database/stage.js +3 -2
  88. package/dist/implementations/database/stage.js.map +1 -1
  89. package/dist/implementations/database/stages-aggregate.js +7 -5
  90. package/dist/implementations/database/stages-aggregate.js.map +1 -1
  91. package/dist/implementations/database/stages-array.js.map +1 -1
  92. package/dist/implementations/database/stages-core.js +2 -1
  93. package/dist/implementations/database/stages-core.js.map +1 -1
  94. package/dist/implementations/database/stages-date.js +2 -1
  95. package/dist/implementations/database/stages-date.js.map +1 -1
  96. package/dist/implementations/database/stages-group.js +11 -6
  97. package/dist/implementations/database/stages-group.js.map +1 -1
  98. package/dist/implementations/database/stages-join.js +13 -11
  99. package/dist/implementations/database/stages-join.js.map +1 -1
  100. package/dist/implementations/database/stages-numeric.js.map +1 -1
  101. package/dist/implementations/database/stages-object.js +1 -1
  102. package/dist/implementations/database/stages-object.js.map +1 -1
  103. package/dist/implementations/database/stages-projection.js +9 -8
  104. package/dist/implementations/database/stages-projection.js.map +1 -1
  105. package/dist/implementations/database/stages-rows.js +10 -8
  106. package/dist/implementations/database/stages-rows.js.map +1 -1
  107. package/dist/implementations/database/stages-selection.js +6 -4
  108. package/dist/implementations/database/stages-selection.js.map +1 -1
  109. package/dist/implementations/database/stages-string.js +7 -6
  110. package/dist/implementations/database/stages-string.js.map +1 -1
  111. package/dist/implementations/database/subquery.d.ts +1 -1
  112. package/dist/implementations/database/subquery.js +7 -5
  113. package/dist/implementations/database/subquery.js.map +1 -1
  114. package/dist/implementations/database/types.d.ts +5 -5
  115. package/dist/implementations/database/types.js +11 -11
  116. package/dist/implementations/database/types.js.map +1 -1
  117. package/dist/implementations/database/utils.js +2 -1
  118. package/dist/implementations/database/utils.js.map +1 -1
  119. package/dist/implementations/database/value.d.ts +1 -1
  120. package/dist/implementations/database/value.js +34 -33
  121. package/dist/implementations/database/value.js.map +1 -1
  122. package/dist/implementations/database/writes-atomic.js +6 -5
  123. package/dist/implementations/database/writes-atomic.js.map +1 -1
  124. package/dist/implementations/database/writes-identity.js +18 -19
  125. package/dist/implementations/database/writes-identity.js.map +1 -1
  126. package/dist/implementations/database/writes-insert.js +16 -22
  127. package/dist/implementations/database/writes-insert.js.map +1 -1
  128. package/dist/implementations/database/writes-shared.d.ts +1 -1
  129. package/dist/implementations/database/writes-shared.js +11 -7
  130. package/dist/implementations/database/writes-shared.js.map +1 -1
  131. package/dist/implementations/database/writes.d.ts +22 -1
  132. package/dist/implementations/database/writes.js +6 -3
  133. package/dist/implementations/database/writes.js.map +1 -1
  134. package/dist/test/catalog-owned.test.js +2 -0
  135. package/dist/test/catalog-owned.test.js.map +1 -1
  136. package/dist/test/contention.test.js.map +1 -1
  137. package/dist/test/duplicate-key.test.js +13 -10
  138. package/dist/test/duplicate-key.test.js.map +1 -1
  139. package/dist/test/indexes.test.js +7 -7
  140. package/dist/test/indexes.test.js.map +1 -1
  141. package/dist/test/unit/coerce.spec.js +7 -7
  142. package/dist/test/unit/coerce.spec.js.map +1 -1
  143. package/dist/test/unit/config.spec.js +3 -1
  144. package/dist/test/unit/config.spec.js.map +1 -1
  145. package/dist/test/unit/connect-failure.spec.d.ts +1 -0
  146. package/dist/test/unit/connect-failure.spec.js +50 -0
  147. package/dist/test/unit/connect-failure.spec.js.map +1 -0
  148. package/dist/test/unit/connection.spec.js +16 -18
  149. package/dist/test/unit/connection.spec.js.map +1 -1
  150. package/dist/test/unit/convergence.spec.d.ts +1 -0
  151. package/dist/test/unit/convergence.spec.js +347 -0
  152. package/dist/test/unit/convergence.spec.js.map +1 -0
  153. package/dist/test/unit/cursors-fixture.d.ts +79 -0
  154. package/dist/test/unit/cursors-fixture.js +245 -0
  155. package/dist/test/unit/cursors-fixture.js.map +1 -0
  156. package/dist/test/unit/cursors.spec.js +138 -718
  157. package/dist/test/unit/cursors.spec.js.map +1 -1
  158. package/dist/test/unit/cursors.teardown.spec.d.ts +1 -0
  159. package/dist/test/unit/cursors.teardown.spec.js +322 -0
  160. package/dist/test/unit/cursors.teardown.spec.js.map +1 -0
  161. package/dist/test/unit/cursors.window.spec.d.ts +1 -0
  162. package/dist/test/unit/cursors.window.spec.js +78 -0
  163. package/dist/test/unit/cursors.window.spec.js.map +1 -0
  164. package/dist/test/unit/ddl-fixture.d.ts +5 -0
  165. package/dist/test/unit/ddl-fixture.js +19 -0
  166. package/dist/test/unit/ddl-fixture.js.map +1 -0
  167. package/dist/test/unit/ddl.spec.js +39 -380
  168. package/dist/test/unit/ddl.spec.js.map +1 -1
  169. package/dist/test/unit/expression-array-fixture.d.ts +17 -0
  170. package/dist/test/unit/expression-array-fixture.js +63 -0
  171. package/dist/test/unit/expression-array-fixture.js.map +1 -0
  172. package/dist/test/unit/expression-array-walk.spec.d.ts +1 -0
  173. package/dist/test/unit/expression-array-walk.spec.js +235 -0
  174. package/dist/test/unit/expression-array-walk.spec.js.map +1 -0
  175. package/dist/test/unit/expression-array.spec.js +48 -322
  176. package/dist/test/unit/expression-array.spec.js.map +1 -1
  177. package/dist/test/unit/expression-date.spec.js +4 -3
  178. package/dist/test/unit/expression-date.spec.js.map +1 -1
  179. package/dist/test/unit/expression-fixture.d.ts +15 -0
  180. package/dist/test/unit/expression-fixture.js +40 -0
  181. package/dist/test/unit/expression-fixture.js.map +1 -0
  182. package/dist/test/unit/expression-numeric.spec.js +10 -8
  183. package/dist/test/unit/expression-numeric.spec.js.map +1 -1
  184. package/dist/test/unit/expression-object.spec.js +3 -4
  185. package/dist/test/unit/expression-object.spec.js.map +1 -1
  186. package/dist/test/unit/expression-predicate.spec.d.ts +1 -0
  187. package/dist/test/unit/expression-predicate.spec.js +231 -0
  188. package/dist/test/unit/expression-predicate.spec.js.map +1 -0
  189. package/dist/test/unit/expression-stages.spec.js +0 -5
  190. package/dist/test/unit/expression-stages.spec.js.map +1 -1
  191. package/dist/test/unit/expression-string.spec.js +2 -5
  192. package/dist/test/unit/expression-string.spec.js.map +1 -1
  193. package/dist/test/unit/expression.spec.js +44 -292
  194. package/dist/test/unit/expression.spec.js.map +1 -1
  195. package/dist/test/unit/external-comparisons.spec.js +5 -5
  196. package/dist/test/unit/external-comparisons.spec.js.map +1 -1
  197. package/dist/test/unit/external-types.spec.js +2 -3
  198. package/dist/test/unit/external-types.spec.js.map +1 -1
  199. package/dist/test/unit/feeds.spec.js +40 -23
  200. package/dist/test/unit/feeds.spec.js.map +1 -1
  201. package/dist/test/unit/fields.spec.js +15 -9
  202. package/dist/test/unit/fields.spec.js.map +1 -1
  203. package/dist/test/unit/invalid-fixture.d.ts +3 -0
  204. package/dist/test/unit/invalid-fixture.js +11 -0
  205. package/dist/test/unit/invalid-fixture.js.map +1 -0
  206. package/dist/test/unit/payload.spec.js.map +1 -1
  207. package/dist/test/unit/pipeline-aggregate.spec.js +14 -14
  208. package/dist/test/unit/pipeline-aggregate.spec.js.map +1 -1
  209. package/dist/test/unit/pipeline-fixture.d.ts +25 -6
  210. package/dist/test/unit/pipeline-fixture.js +21 -11
  211. package/dist/test/unit/pipeline-fixture.js.map +1 -1
  212. package/dist/test/unit/pipeline-group-fixture.d.ts +2 -0
  213. package/dist/test/unit/pipeline-group-fixture.js +6 -0
  214. package/dist/test/unit/pipeline-group-fixture.js.map +1 -0
  215. package/dist/test/unit/pipeline-group.spec.js +15 -248
  216. package/dist/test/unit/pipeline-group.spec.js.map +1 -1
  217. package/dist/test/unit/pipeline-lookup.spec.js +13 -10
  218. package/dist/test/unit/pipeline-lookup.spec.js.map +1 -1
  219. package/dist/test/unit/pipeline-projection.spec.js +12 -13
  220. package/dist/test/unit/pipeline-projection.spec.js.map +1 -1
  221. package/dist/test/unit/pipeline-rows.spec.js +21 -18
  222. package/dist/test/unit/pipeline-rows.spec.js.map +1 -1
  223. package/dist/test/unit/pipeline-selection.spec.js +6 -4
  224. package/dist/test/unit/pipeline-selection.spec.js.map +1 -1
  225. package/dist/test/unit/pipeline-stages.spec.js +23 -35
  226. package/dist/test/unit/pipeline-stages.spec.js.map +1 -1
  227. package/dist/test/unit/pipeline-substream.spec.d.ts +1 -0
  228. package/dist/test/unit/pipeline-substream.spec.js +246 -0
  229. package/dist/test/unit/pipeline-substream.spec.js.map +1 -0
  230. package/dist/test/unit/pipeline.spec.js +1 -1
  231. package/dist/test/unit/query.spec.js +6 -2
  232. package/dist/test/unit/query.spec.js.map +1 -1
  233. package/dist/test/unit/reaper.spec.js +4 -3
  234. package/dist/test/unit/reaper.spec.js.map +1 -1
  235. package/dist/test/unit/relation.spec.js +37 -36
  236. package/dist/test/unit/relation.spec.js.map +1 -1
  237. package/dist/test/unit/result.spec.js +13 -11
  238. package/dist/test/unit/result.spec.js.map +1 -1
  239. package/dist/test/unit/row-source.spec.js +1 -1
  240. package/dist/test/unit/row-source.spec.js.map +1 -1
  241. package/dist/test/unit/schema.spec.js +5 -2
  242. package/dist/test/unit/schema.spec.js.map +1 -1
  243. package/dist/test/unit/selection.spec.js +7 -3
  244. package/dist/test/unit/selection.spec.js.map +1 -1
  245. package/dist/test/unit/types.spec.js +6 -6
  246. package/dist/test/unit/types.spec.js.map +1 -1
  247. package/dist/test/unit/writes-atomic.spec.js +2 -2
  248. package/dist/test/unit/writes-atomic.spec.js.map +1 -1
  249. package/dist/test/unit/writes-insert.spec.js +5 -4
  250. package/dist/test/unit/writes-insert.spec.js.map +1 -1
  251. package/dist/test/unit/writes-replace.spec.js +6 -6
  252. package/dist/test/unit/writes-replace.spec.js.map +1 -1
  253. package/dist/test/unit/writes-target.spec.js +3 -3
  254. package/dist/test/unit/writes-target.spec.js.map +1 -1
  255. package/dist/test/unit/writes-update-fixture.d.ts +9 -0
  256. package/dist/test/unit/writes-update-fixture.js +20 -0
  257. package/dist/test/unit/writes-update-fixture.js.map +1 -0
  258. package/dist/test/unit/writes-update-mapper.spec.d.ts +1 -0
  259. package/dist/test/unit/writes-update-mapper.spec.js +123 -0
  260. package/dist/test/unit/writes-update-mapper.spec.js.map +1 -0
  261. package/dist/test/unit/writes-update.spec.js +42 -171
  262. package/dist/test/unit/writes-update.spec.js.map +1 -1
  263. package/dist/test-external/catalog.test.js +11 -1
  264. package/dist/test-external/catalog.test.js.map +1 -1
  265. package/dist/test-external/native.test.js +8 -6
  266. package/dist/test-external/native.test.js.map +1 -1
  267. package/dist/test-external/reads.test.js +20 -22
  268. package/dist/test-external/reads.test.js.map +1 -1
  269. package/dist/test-external/refusals.test.js +45 -24
  270. package/dist/test-external/refusals.test.js.map +1 -1
  271. package/dist/test-external/registration.test.js +4 -2
  272. package/dist/test-external/registration.test.js.map +1 -1
  273. package/dist/test-external/sales.d.ts +9 -2
  274. package/dist/test-external/sales.js.map +1 -1
  275. package/dist/test-external/unreachable.test.d.ts +1 -0
  276. package/dist/test-external/unreachable.test.js +83 -0
  277. package/dist/test-external/unreachable.test.js.map +1 -0
  278. package/dist/test-external/writes.test.js +71 -37
  279. package/dist/test-external/writes.test.js.map +1 -1
  280. package/package.json +22 -7
package/README.md CHANGED
@@ -3,12 +3,14 @@
3
3
  <div align="center">
4
4
  <a href="https://www.npmjs.com/package/@antelopejs/postgres"><img alt="npm" src="https://img.shields.io/npm/v/@antelopejs/postgres?style=for-the-badge&labelColor=000000&color=000000"></a>
5
5
  <a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/@antelopejs/postgres?style=for-the-badge&labelColor=000000&color=000000"></a>
6
- <a href="https://discord.gg/sjK28QHrA7"><img src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000" alt="Discord"></a>
6
+ <a href="https://discord.gg/g4pFt6eXqu"><img src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000" alt="Discord"></a>
7
7
  <a href="https://interfaces.antelopejs.com/docs/database"><img src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000" alt="Documentation"></a>
8
8
  </div>
9
9
 
10
10
  The PostgreSQL backend of AntelopeJS: it runs the database interface's queries on PostgreSQL with the [`pg`](https://github.com/brianc/node-postgres) driver, mapping schema definitions onto real relational tables with native column types and indexes. It can also serve tables that already exist in a database it does not own.
11
11
 
12
+ Part of [AntelopeJS](https://github.com/AntelopeJS/antelopejs). Used by [AntelopeJS DMS](https://github.com/AntelopeJS/dms), the open-source back office for your PostgreSQL, MongoDB or RethinkDB database.
13
+
12
14
  ## Interfaces
13
15
 
14
16
  | Interface | Documentation |
@@ -81,7 +83,7 @@ Then follow the [database interface guide](https://framework.antelopejs.com/docs
81
83
  Unlike the document-store backends, this module treats schema field declarations as real
82
84
  DDL: each AntelopeJS schema becomes a PostgreSQL schema, each table a real table, and each
83
85
  declared scalar field a natively typed, natively indexable column. Queries compile to a single
84
- SQL statement — filters become `WHERE` clauses, joins become `JOIN`s, and a `filter` or `orderBy`
86
+ SQL statement. Filters become `WHERE` clauses, joins become `JOIN`s, and a `filter` or `orderBy`
85
87
  over a declared field reaches its btree index.
86
88
 
87
89
  - One PostgreSQL schema per AntelopeJS schema id
@@ -101,23 +103,34 @@ the only construct used above PostgreSQL 9.5.
101
103
 
102
104
  This repository documents what is specific to the PostgreSQL backend:
103
105
 
104
- | | |
105
- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
106
- | [Storage and schema](./docs/storage.md) | What a registered schema becomes in the database, the field-type table, what reaches an index, and how registration converges |
107
- | [Configuration](./docs/configuration.md) | Every option `construct` accepts |
108
- | [External mode](./docs/external-mode.md) | Reading tables the module did not create, in a database it does not own |
109
- | [Change feeds](./docs/change-feeds.md) | `changes()`, its ordering guarantee, its retention contract and its blind spots |
110
- | [Errors and refusals](./docs/errors.md) | Everything the module refuses, with the message it refuses by |
111
- | [Behaviour worth knowing](./docs/behaviour.md) | Things that answer rather than throw, where the answer may surprise you — including where this backend differs from the MongoDB and RethinkDB ones |
106
+ | | |
107
+ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
108
+ | [Storage and schema](./docs/storage.md) | What a registered schema becomes in the database, the field-type table, what reaches an index, and how registration converges |
109
+ | [Configuration](./docs/configuration.md) | Every option `construct` accepts |
110
+ | [External mode](./docs/external-mode.md) | Reading tables the module did not create, in a database it does not own |
111
+ | [Change feeds](./docs/change-feeds.md) | `changes()`, its ordering guarantee, its retention contract and its blind spots |
112
+ | [Errors and refusals](./docs/errors.md) | Everything the module refuses, with the message it refuses by |
113
+ | [Behaviour worth knowing](./docs/behaviour.md) | Things that answer rather than throw, where the answer may surprise you, including where this backend differs from the MongoDB and RethinkDB ones |
112
114
 
113
115
  ## Compatibility
114
116
 
115
- | Package | Supported range |
116
- | -------------------------------- | ---------------- |
117
- | `@antelopejs/interface-database` | `^0.1.8` |
118
- | `@antelopejs/interface-core` | `>=0.1.1 <1.0.0` |
117
+ <!-- antelopejs-docs-compat:start -->
118
+
119
+ | Package | Supported | Tested with |
120
+ | ---------------------------------------- | ---------------- | ----------- |
121
+ | `@antelopejs/interface-core` | `>=0.1.1 <1.0.0` | `0.2.0` |
122
+ | `@antelopejs/interface-database` | `>=0.2.0 <0.3.0` | `0.2.0` |
123
+ | `@antelopejs/interface-database-catalog` | `>=0.0.3 <0.1.0` | `0.0.3` |
124
+
125
+ <!-- antelopejs-docs-compat:end -->
126
+
127
+ | Package | Supported range |
128
+ | ---------------------------------------- | ---------------- |
129
+ | `@antelopejs/interface-database` | `>=0.2.0 <0.3.0` |
130
+ | `@antelopejs/interface-database-catalog` | `>=0.0.3 <0.1.0` |
131
+ | `@antelopejs/interface-core` | `>=0.1.1 <1.0.0` |
119
132
 
120
- The module is developed and tested against `@antelopejs/core` `^1.14.0` on Node.js 22 and 24, with the `pg` driver `^8.22.0` and PostgreSQL 18.
133
+ The module is developed and tested against `@antelopejs/core` `^1.14.0` on Node.js 24 (the `.nvmrc` version CI runs), with the `pg` driver `^8.22.0` and PostgreSQL 18.
121
134
 
122
135
  ## Contributing
123
136
 
package/dist/config.d.ts CHANGED
@@ -35,4 +35,5 @@ export interface ResolvedOptions {
35
35
  export declare function SetOptions(options?: Options): ResolvedOptions;
36
36
  export declare function GetOptions(): ResolvedOptions;
37
37
  export declare function IsExternal(): boolean;
38
+ export declare function IsCatalogEnabled(): Promise<boolean>;
38
39
  export declare function ClearOptions(): void;
package/dist/config.js CHANGED
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SetOptions = SetOptions;
4
4
  exports.GetOptions = GetOptions;
5
5
  exports.IsExternal = IsExternal;
6
+ exports.IsCatalogEnabled = IsCatalogEnabled;
6
7
  exports.ClearOptions = ClearOptions;
8
+ const runtime_1 = require("@antelopejs/interface-core/runtime");
7
9
  const DEFAULT_URL = "postgres://postgres@localhost:5432/antelopejs";
8
10
  const DEFAULT_MODE = "owned";
9
11
  const MODES = ["owned", "external"];
@@ -28,9 +30,7 @@ function PositiveSafeInteger(option, supplied, fallback) {
28
30
  if (supplied === undefined) {
29
31
  return fallback;
30
32
  }
31
- if (typeof supplied !== "number" ||
32
- !Number.isSafeInteger(supplied) ||
33
- supplied < SMALLEST_POSITIVE_INTEGER) {
33
+ if (!Number.isSafeInteger(supplied) || supplied < SMALLEST_POSITIVE_INTEGER) {
34
34
  throw new Error(`${option} must be a positive safe integer, received ${String(supplied)}`);
35
35
  }
36
36
  return supplied;
@@ -85,6 +85,10 @@ function GetOptions() {
85
85
  function IsExternal() {
86
86
  return GetOptions().mode === "external";
87
87
  }
88
+ async function IsCatalogEnabled() {
89
+ const configured = GetOptions().catalog.enabled;
90
+ return configured ?? (await (0, runtime_1.GetRuntimeInfo)()).dev;
91
+ }
88
92
  function ClearOptions() {
89
93
  resolved = undefined;
90
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function DescribeConnectFailure(err: Error, url: string): string;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DescribeConnectFailure = DescribeConnectFailure;
4
+ const DEFAULT_PORT = "5432";
5
+ const UNANSWERED_CODES = new Set(["ECONNREFUSED", "ENOTFOUND", "ETIMEDOUT"]);
6
+ const SSL_REQUIRED_MARKER = "no encryption";
7
+ function Endpoint(url) {
8
+ try {
9
+ const parsed = new URL(url);
10
+ return `${parsed.hostname}:${parsed.port || DEFAULT_PORT}`;
11
+ }
12
+ catch {
13
+ return "the configured host";
14
+ }
15
+ }
16
+ function Sentence(code, message, url) {
17
+ if (code === "28P01") {
18
+ return "wrong user or password";
19
+ }
20
+ if (code === "3D000") {
21
+ return "the database does not exist";
22
+ }
23
+ if (UNANSWERED_CODES.has(code)) {
24
+ return `the server is not answering at ${Endpoint(url)}`;
25
+ }
26
+ if (code === "28000" && message.includes(SSL_REQUIRED_MARKER)) {
27
+ return "the server requires SSL";
28
+ }
29
+ return undefined;
30
+ }
31
+ function DescribeConnectFailure(err, url) {
32
+ const code = "code" in err ? String(err.code) : undefined;
33
+ if (!code) {
34
+ return err.message;
35
+ }
36
+ const sentence = Sentence(code, err.message, url) ?? err.message;
37
+ return `${sentence} (${code})`;
38
+ }
39
+ //# sourceMappingURL=connect-failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-failure.js","sourceRoot":"","sources":["../src/connect-failure.ts"],"names":[],"mappings":";;AAyCA,wDAOC;AAhDD,MAAM,YAAY,GAAG,MAAM,CAAC;AAE5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAE7E,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAE5C,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,qBAAqB,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,IAAY,EACZ,OAAe,EACf,GAAW;IAEX,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,kCAAkC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9D,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,sBAAsB,CAAC,GAAU,EAAE,GAAW;IAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC;IACjE,OAAO,GAAG,QAAQ,KAAK,IAAI,GAAG,CAAC;AACjC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Pool, type PoolClient, type QueryResult, type QueryResultRow } from "pg";
2
2
  import { type Options } from "./config";
3
- export type BeforeDisconnect = () => unknown;
3
+ export type BeforeDisconnect = () => void | PromiseLike<void>;
4
4
  export type PoolTeardown = () => Promise<void>;
5
5
  export declare function GuardPool(created: Pool): Pool;
6
6
  export declare function Connect(options?: Options): Promise<void>;
@@ -8,6 +8,7 @@ export declare function RegisterBeforeDisconnect(callback: BeforeDisconnect): ()
8
8
  export declare function SettleBeforeDisconnect(endPool: PoolTeardown): Promise<void>;
9
9
  export declare function Disconnect(): Promise<void>;
10
10
  export declare function GetPool(): Pool;
11
+ export declare function AssertConnected(): void;
11
12
  export declare function Query<T extends QueryResultRow = QueryResultRow>(sql: string, params?: unknown[]): Promise<QueryResult<T>>;
12
13
  export declare function GuardHeldClient(client: PoolClient): PoolClient;
13
14
  export declare function AcquireClient(): Promise<PoolClient>;
@@ -6,6 +6,7 @@ exports.RegisterBeforeDisconnect = RegisterBeforeDisconnect;
6
6
  exports.SettleBeforeDisconnect = SettleBeforeDisconnect;
7
7
  exports.Disconnect = Disconnect;
8
8
  exports.GetPool = GetPool;
9
+ exports.AssertConnected = AssertConnected;
9
10
  exports.Query = Query;
10
11
  exports.GuardHeldClient = GuardHeldClient;
11
12
  exports.AcquireClient = AcquireClient;
@@ -13,16 +14,20 @@ exports.GetSchemaPrefix = GetSchemaPrefix;
13
14
  const pg_1 = require("pg");
14
15
  const logger_1 = require("./logger");
15
16
  const config_1 = require("./config");
16
- const NOT_CONNECTED = "PostgreSQL adapter is not connected: construct() has not run yet";
17
+ const connect_failure_1 = require("./connect-failure");
18
+ const NOT_CONNECTED = "PostgreSQL adapter is not connected";
19
+ const NOT_CONSTRUCTED = "construct() has not run yet";
17
20
  const SESSION_SETTINGS = "SET TIME ZONE 'UTC'; SET DateStyle = 'ISO, MDY'";
18
21
  const CLIENT_ERROR = "error";
19
22
  const HELD_CLIENT_FAILED = "the connection under a borrowed PostgreSQL client failed while it was checked out";
20
23
  const IDLE_CLIENT_FAILED = "the connection under an idle pooled PostgreSQL client failed";
21
24
  const CONNECTED = "connected to PostgreSQL";
22
25
  const DISCONNECTED = "disconnected from PostgreSQL";
26
+ const STARTED_UNCONNECTED = "could not connect to PostgreSQL; the instance starts without a connection and refuses every call until the project reloads";
23
27
  const SLOW_ACQUIRE_MS = 10_000;
24
28
  const SLOW_ACQUIRE = `no PostgreSQL client has become available in ${SLOW_ACQUIRE_MS} ms: either every pooled connection is checked out — a cursor holds one for as long as it is iterated — or a new connection is not being answered. Raise pool.max, or set pool.connectionTimeoutMillis to fail rather than wait`;
25
29
  let pool;
30
+ let connectFailure;
26
31
  let isWaiting = false;
27
32
  const beforeDisconnect = new Set();
28
33
  function PinSession(client) {
@@ -38,6 +43,9 @@ function GuardPool(created) {
38
43
  created.on(CLIENT_ERROR, ReportIdleClientError);
39
44
  return created;
40
45
  }
46
+ async function ToleratesConnectFailure() {
47
+ return (0, config_1.IsExternal)() && (await (0, config_1.IsCatalogEnabled)());
48
+ }
41
49
  async function Connect(options) {
42
50
  await Disconnect();
43
51
  const resolved = (0, config_1.SetOptions)(options);
@@ -53,6 +61,11 @@ async function Connect(options) {
53
61
  }
54
62
  catch (err) {
55
63
  await created.end();
64
+ if (err instanceof Error && (await ToleratesConnectFailure())) {
65
+ connectFailure = (0, connect_failure_1.DescribeConnectFailure)(err, resolved.url);
66
+ logger_1.Logger.Warn(STARTED_UNCONNECTED, connectFailure);
67
+ return;
68
+ }
56
69
  (0, config_1.ClearOptions)();
57
70
  throw err;
58
71
  }
@@ -72,6 +85,7 @@ async function SettleBeforeDisconnect(endPool) {
72
85
  async function EndPool() {
73
86
  const current = pool;
74
87
  pool = undefined;
88
+ connectFailure = undefined;
75
89
  (0, config_1.ClearOptions)();
76
90
  if (current) {
77
91
  await current.end();
@@ -83,10 +97,13 @@ async function Disconnect() {
83
97
  }
84
98
  function GetPool() {
85
99
  if (!pool) {
86
- throw new Error(NOT_CONNECTED);
100
+ throw new Error(`${NOT_CONNECTED}: ${connectFailure ?? NOT_CONSTRUCTED}`);
87
101
  }
88
102
  return pool;
89
103
  }
104
+ function AssertConnected() {
105
+ GetPool();
106
+ }
90
107
  function Query(sql, params) {
91
108
  return GetPool().query(sql, params);
92
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ exports.DescribeRelations = DescribeRelations;
6
6
  exports.Profile = Profile;
7
7
  exports.CheckReference = CheckReference;
8
8
  exports.SampleRows = SampleRows;
9
- const runtime_1 = require("@antelopejs/interface-core/runtime");
10
9
  const config_1 = require("../../config");
10
+ const connection_1 = require("../../connection");
11
11
  const external_discovery_1 = require("../database/external-discovery");
12
12
  const external_measures_1 = require("../database/external-measures");
13
13
  const external_profile_1 = require("../database/external-profile");
@@ -15,17 +15,14 @@ const external_reference_1 = require("../database/external-reference");
15
15
  const external_rows_1 = require("../database/external-rows");
16
16
  const OWNED_REFUSAL = "the catalog describes a database an external instance was pointed at; this instance owns its tables";
17
17
  const DEVELOPMENT_REFUSAL = "the catalog is a development tool: it answers under ajs project dev or run, or with catalog.enabled";
18
- async function IsEnabled() {
19
- const configured = (0, config_1.GetOptions)().catalog.enabled;
20
- return configured ?? (await (0, runtime_1.GetRuntimeInfo)()).dev;
21
- }
22
18
  async function Guard() {
23
19
  if (!(0, config_1.IsExternal)()) {
24
20
  throw new Error(OWNED_REFUSAL);
25
21
  }
26
- if (!(await IsEnabled())) {
22
+ if (!(await (0, config_1.IsCatalogEnabled)())) {
27
23
  throw new Error(DEVELOPMENT_REFUSAL);
28
24
  }
25
+ (0, connection_1.AssertConnected)();
29
26
  }
30
27
  async function Info() {
31
28
  await Guard();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/catalog/index.ts"],"names":[],"mappings":";;AAgDA,oBAGC;AAED,sCAKC;AAED,8CAaC;AAED,0BAKC;AAED,wCAKC;AAED,gCAGC;AA5FD,gEAAoE;AAcpE,yCAAsD;AACtD,uEAOwC;AACxC,qEAA6D;AAC7D,mEAA+D;AAC/D,uEAAsE;AACtE,6DAA+D;AAE/D,MAAM,aAAa,GACjB,qGAAqG,CAAC;AACxG,MAAM,mBAAmB,GACvB,qGAAqG,CAAC;AAExG,KAAK,UAAU,SAAS;IACtB,MAAM,UAAU,GAAG,IAAA,mBAAU,GAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,OAAO,UAAU,IAAI,CAAC,MAAM,IAAA,wBAAc,GAAE,CAAC,CAAC,GAAG,CAAC;AACpD,CAAC;AAGD,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC,IAAA,mBAAU,GAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,IAAI;IACxB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,6BAAQ,GAAE,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,OAAkB;IAElB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,gCAAY,EAAC,MAAM,IAAA,qCAAgB,EAAC,OAAO,CAAC,EAAE,8BAAS,CAAC,CAAC;AAClE,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,SAAmB;IAEnB,MAAM,KAAK,EAAE,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,IAAA,0CAAqB,EAAC,SAAS,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAY,CAAC,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,IAAA,gCAAY,EAAC,IAAI,EAAE,gCAAW,CAAC,CAAC;AACzC,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,OAAuB;IAEvB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,kCAAe,EAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,KAAqB;IAErB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,yCAAoB,EAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAsB;IACrD,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/implementations/catalog/index.ts"],"names":[],"mappings":";;AA+CA,oBAGC;AAED,sCAKC;AAED,8CAaC;AAED,0BAKC;AAED,wCAKC;AAED,gCAGC;AA9ED,yCAA4D;AAC5D,iDAAmD;AACnD,uEAOwC;AACxC,qEAA6D;AAC7D,mEAA+D;AAC/D,uEAAsE;AACtE,6DAA+D;AAE/D,MAAM,aAAa,GACjB,qGAAqG,CAAC;AACxG,MAAM,mBAAmB,GACvB,qGAAqG,CAAC;AAMxG,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC,IAAA,mBAAU,GAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAA,yBAAgB,GAAE,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAA,4BAAe,GAAE,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,IAAI;IACxB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,6BAAQ,GAAE,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,OAAkB;IAElB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,gCAAY,EAAC,MAAM,IAAA,qCAAgB,EAAC,OAAO,CAAC,EAAE,8BAAS,CAAC,CAAC;AAClE,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,SAAmB;IAEnB,MAAM,KAAK,EAAE,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,IAAA,0CAAqB,EAAC,SAAS,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAY,CAAC,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,IAAA,gCAAY,EAAC,IAAI,EAAE,gCAAW,CAAC,CAAC;AACzC,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,OAAuB;IAEvB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,kCAAe,EAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,KAAqB;IAErB,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,yCAAoB,EAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAsB;IACrD,MAAM,KAAK,EAAE,CAAC;IACd,OAAO,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -26,35 +26,35 @@ function UnifySameKind(left, right) {
26
26
  return (0, types_1.ArrayOf)(Unify(left.elem, right.elem));
27
27
  }
28
28
  if (left.kind === "json" && right.kind === "json") {
29
- return (0, types_1.JsonOf)(UnifyShapes(left.shape, right.shape));
29
+ return (0, types_1.JsonOf)(UnifyKeyTypes(left.keys, right.keys));
30
30
  }
31
31
  return left;
32
32
  }
33
- function UnifyShapes(left, right) {
33
+ function UnifyKeyTypes(left, right) {
34
34
  if (!left || !right) {
35
35
  return undefined;
36
36
  }
37
- const shape = {};
37
+ const keyTypes = {};
38
38
  for (const [name, type] of Object.entries(left)) {
39
39
  if (Object.hasOwn(right, name)) {
40
- shape[name] = Unify(type, right[name]);
40
+ keyTypes[name] = Unify(type, right[name]);
41
41
  }
42
42
  }
43
- return Object.keys(shape).length > 0 ? shape : undefined;
43
+ return Object.keys(keyTypes).length > 0 ? keyTypes : undefined;
44
44
  }
45
45
  function Widen(left, right) {
46
- const leftShape = (0, types_1.ShapeOf)(left);
47
- const rightShape = (0, types_1.ShapeOf)(right);
48
- if (!leftShape || !rightShape) {
46
+ const leftKeys = (0, types_1.KeyTypesOf)(left);
47
+ const rightKeys = (0, types_1.KeyTypesOf)(right);
48
+ if (!leftKeys || !rightKeys) {
49
49
  return Unify(left, right);
50
50
  }
51
- const shape = { ...leftShape };
52
- for (const [name, type] of Object.entries(rightShape)) {
53
- shape[name] = Object.hasOwn(leftShape, name)
54
- ? Unify(leftShape[name], type)
51
+ const keyTypes = { ...leftKeys };
52
+ for (const [name, type] of Object.entries(rightKeys)) {
53
+ keyTypes[name] = Object.hasOwn(leftKeys, name)
54
+ ? Unify(leftKeys[name], type)
55
55
  : type;
56
56
  }
57
- return (0, types_1.JsonOf)(shape);
57
+ return (0, types_1.JsonOf)(keyTypes);
58
58
  }
59
59
  function Cast(value, target) {
60
60
  if (value.type.kind === target.kind) {
@@ -123,12 +123,12 @@ function UnifyOperands(left, right, operator = EQUALITY) {
123
123
  return NativePair(left, right, pair, operator);
124
124
  }
125
125
  const EQUALITY = "=";
126
- const MIRRORED = {
127
- ">": "<",
128
- "<": ">",
129
- ">=": "<=",
130
- "<=": ">=",
131
- };
126
+ const MIRRORED = new Map([
127
+ [">", "<"],
128
+ ["<", ">"],
129
+ [">=", "<="],
130
+ ["<=", ">="],
131
+ ]);
132
132
  function NativeSide(native, type) {
133
133
  return { sql: native.sql, type };
134
134
  }
@@ -154,7 +154,7 @@ function NativePair(left, right, pair, operator) {
154
154
  };
155
155
  }
156
156
  if (right.native && type.kind === right.type.kind) {
157
- const mirrored = MIRRORED[operator] ?? operator;
157
+ const mirrored = MIRRORED.get(operator) ?? operator;
158
158
  const converted = right.native.bind(pair.left.sql, mirrored);
159
159
  return {
160
160
  left: { sql: converted, type },
@@ -1 +1 @@
1
- {"version":3,"file":"coerce.js","sourceRoot":"","sources":["../../../src/implementations/database/coerce.ts"],"names":[],"mappings":";;AAqCA,sBAWC;AAuCD,sBAaC;AAqBD,oBAcC;AAoBD,4BAEC;AA4CD,4BAOC;AAWD,sCAQC;AA6ED,kCAcC;AA9TD,+BAKe;AACf,mCAUiB;AAqBjB,SAAgB,KAAK,CAAC,IAAa,EAAE,KAAc;IACjD,IAAI,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,cAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAa,EAAE,KAAc;IAClD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpD,OAAO,IAAA,eAAO,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClD,OAAO,IAAA,cAAM,EAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAe,EAAE,KAAgB;IACpD,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAgBD,SAAgB,KAAK,CAAC,IAAa,EAAE,KAAc;IACjD,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,KAAK,GAA4B,EAAE,GAAG,SAAS,EAAE,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;YAC1C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IACD,OAAO,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAqBD,SAAgB,IAAI,CAAC,KAAe,EAAE,MAAe;IACnD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,YAAY,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,cAAM,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,MAAM,IAAA,oBAAY,EAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,WAAW,GAA6C;IAC5D,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,YAAY,GAA2C;IAC3D,SAAS,EAAE,IAAI;CAChB,CAAC;AASF,SAAgB,QAAQ,CAAC,GAAW,EAAE,MAAe;IACnD,OAAO,qBAAqB,GAAG,KAAK,IAAA,kBAAY,EAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa,CAAC,KAAe;IACpC,OAAO,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,MAAe;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,IAAI,KAAK,IAAA,oBAAY,EAAC,MAAM,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,SAAS,UAAU,CACjB,KAAe,EACf,MAAe,EACf,QAAgB;IAEhB,MAAM,MAAM,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;IAC9D,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAe,EAAE,MAAe;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,GAAG,EAAE,cAAc,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,UAAU,OAAO;QAChF,IAAI,EAAE,MAAM;KACb,CAAC;AACJ,CAAC;AAQD,SAAgB,QAAQ,CAAC,KAAgB;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,cAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAClC,IAAA,gBAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAChE,CAAC;AACJ,CAAC;AAWD,SAAgB,aAAa,CAC3B,IAAc,EACd,KAAe,EACf,QAAQ,GAAG,QAAQ;IAEnB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxE,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,QAAQ,GAAG,GAAG,CAAC;AAGrB,MAAM,QAAQ,GAA2B;IACvC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,SAAS,UAAU,CAAC,MAAqB,EAAE,IAAa;IACtD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CACjB,IAAc,EACd,KAAe,EACf,IAAkB,EAClB,QAAgB;IAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;YACrC,IAAI;SACL,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;YACnC,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YAC/B,IAAI;YACJ,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO;YACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9B,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;YACrC,IAAI;YACJ,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAMD,SAAS,MAAM,CAAC,IAAkB;IAChC,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACvB,CAAC;IACD,OAAO,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,eAAS,GAAG,CAAC;AAClD,CAAC;AAMD,SAAS,WAAW,CAAC,KAAc,EAAE,GAAY;IAC/C,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,cAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,WAAW,CAAC,KAAe,EAAE,GAAc;IACzD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAiB;QACzB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QACvB,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QACtB,IAAI;KACL,CAAC;IACF,OAAO;QACL,GAAG,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG;QACnD,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"coerce.js","sourceRoot":"","sources":["../../../src/implementations/database/coerce.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { OriginResolver } from "./selection";
5
5
  import { type Compiled, ParamCollector } from "./sql";
6
6
  export type SubqueryProvider = (stages: QueryStage[]) => Compiled;
7
7
  export type ArgumentBinding = RowSource | SubqueryProvider | Compiled;
8
+ export declare function IsSubqueryProvider(binding: ArgumentBinding): binding is SubqueryProvider;
8
9
  type ExpressionCompiler = (stages: QueryStage[], context: DecodingContext, source?: RowSource) => Compiled;
9
10
  export type SubqueryCompiler = (stages: QueryStage[], context: DecodingContext) => Compiled;
10
11
  type RelationCompiler = (stages: QueryStage[], context: DecodingContext) => Relation;
@@ -4,8 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DecodingContext = void 0;
7
+ exports.IsSubqueryProvider = IsSubqueryProvider;
7
8
  const node_assert_1 = __importDefault(require("node:assert"));
8
9
  const sql_1 = require("./sql");
10
+ function IsSubqueryProvider(binding) {
11
+ return typeof binding === "function";
12
+ }
9
13
  const ALIAS_PREFIX = "t";
10
14
  class DecodingContext {
11
15
  compilers;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/implementations/database/context.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AAMjC,+BAAsD;AAwCtD,MAAM,YAAY,GAAG,GAAG,CAAC;AAQzB,MAAa,eAAe;IAkBP;IACD;IAlBF,MAAM,GAAG,IAAI,oBAAc,EAAE,CAAC;IAE7B,QAAQ,GAAoC,EAAE,CAAC;IACxD,YAAY,GAAG,CAAC,CAAC;IAazB,YACmB,SAAoB,EACrB,aAA8B;QAD7B,cAAS,GAAT,SAAS,CAAW;QACrB,kBAAa,GAAb,aAAa,CAAiB;IAC7C,CAAC;IAGG,OAAO;QACZ,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;IAEM,SAAS;QACd,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;IACjD,CAAC;IAEM,IAAI,CAAC,EAAU,EAAE,OAAwB;QAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAEM,GAAG,CAAC,EAAU;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnB,CAAC,CAAC,SAAS,CAAC;QACd,IAAA,qBAAM,EAAC,OAAO,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,UAAU,CAAC,MAAoB,EAAE,MAAkB;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEM,QAAQ,CAAC,MAAoB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAGM,QAAQ,CAAC,MAAoB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF;AA3DD,0CA2DC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/implementations/database/context.ts"],"names":[],"mappings":";;;;;;AAaA,gDAIC;AAjBD,8DAAiC;AAMjC,+BAAsD;AAOtD,SAAgB,kBAAkB,CAChC,OAAwB;IAExB,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC;AACvC,CAAC;AAoCD,MAAM,YAAY,GAAG,GAAG,CAAC;AAQzB,MAAa,eAAe;IAkBP;IACD;IAlBF,MAAM,GAAG,IAAI,oBAAc,EAAE,CAAC;IAE7B,QAAQ,GAAoC,EAAE,CAAC;IACxD,YAAY,GAAG,CAAC,CAAC;IAazB,YACmB,SAAoB,EACrB,aAA8B;QAD7B,cAAS,GAAT,SAAS,CAAW;QACrB,kBAAa,GAAb,aAAa,CAAiB;IAC7C,CAAC;IAGG,OAAO;QACZ,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;IAEM,SAAS;QACd,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;IACjD,CAAC;IAEM,IAAI,CAAC,EAAU,EAAE,OAAwB;QAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAEM,GAAG,CAAC,EAAU;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnB,CAAC,CAAC,SAAS,CAAC;QACd,IAAA,qBAAM,EAAC,OAAO,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,UAAU,CAAC,MAAoB,EAAE,MAAkB;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEM,QAAQ,CAAC,MAAoB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAGM,QAAQ,CAAC,MAAoB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF;AA3DD,0CA2DC"}
@@ -0,0 +1,22 @@
1
+ import type { MigrationMode } from "../../config";
2
+ import { type TablePlan } from "./ddl";
3
+ export interface ActualColumn {
4
+ readonly name: string;
5
+ readonly type: string;
6
+ }
7
+ export interface ActualIndex {
8
+ readonly name: string;
9
+ readonly signature?: string;
10
+ readonly valid: boolean;
11
+ }
12
+ export interface ActualTable {
13
+ readonly columns: readonly ActualColumn[];
14
+ readonly indexes: readonly ActualIndex[];
15
+ }
16
+ export interface ConvergencePlan {
17
+ statements: string[];
18
+ indexStatements: string[];
19
+ warnings: string[];
20
+ }
21
+ export declare function PlanIndexStatements(schemaName: string, plan: TablePlan, actual: ActualTable): string[];
22
+ export declare function PlanTable(schemaName: string, plan: TablePlan, actual: ActualTable, mode: MigrationMode): ConvergencePlan;