@venizia/ignis-connectors 0.2.0-43 → 0.2.0-45

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 (343) hide show
  1. package/README.md +146 -0
  2. package/dist/cjs/http/datasource.d.ts +2 -0
  3. package/dist/cjs/http/datasource.d.ts.map +1 -1
  4. package/dist/cjs/http/datasource.js +13 -1
  5. package/dist/cjs/http/datasource.js.map +1 -1
  6. package/dist/cjs/relational/core/datasources/abstract.d.ts +8 -0
  7. package/dist/cjs/relational/core/datasources/abstract.d.ts.map +1 -1
  8. package/dist/cjs/relational/core/datasources/abstract.js +32 -0
  9. package/dist/cjs/relational/core/datasources/abstract.js.map +1 -1
  10. package/dist/cjs/relational/core/datasources/base.d.ts.map +1 -1
  11. package/dist/cjs/relational/core/datasources/base.js +23 -4
  12. package/dist/cjs/relational/core/datasources/base.js.map +1 -1
  13. package/dist/cjs/relational/core/datasources/relation-pairing.d.ts +37 -0
  14. package/dist/cjs/relational/core/datasources/relation-pairing.d.ts.map +1 -0
  15. package/dist/cjs/relational/core/datasources/relation-pairing.js +58 -0
  16. package/dist/cjs/relational/core/datasources/relation-pairing.js.map +1 -0
  17. package/dist/cjs/relational/core/models/base.d.ts +5 -5
  18. package/dist/cjs/relational/core/models/base.d.ts.map +1 -1
  19. package/dist/cjs/relational/core/models/base.js +14 -4
  20. package/dist/cjs/relational/core/models/base.js.map +1 -1
  21. package/dist/cjs/relational/core/models/common/constants.d.ts +13 -0
  22. package/dist/cjs/relational/core/models/common/constants.d.ts.map +1 -0
  23. package/dist/cjs/relational/core/models/common/constants.js +24 -0
  24. package/dist/cjs/relational/core/models/common/constants.js.map +1 -0
  25. package/dist/cjs/relational/core/models/common/types.d.ts +45 -0
  26. package/dist/cjs/relational/core/models/common/types.d.ts.map +1 -1
  27. package/dist/cjs/relational/core/models/common/types.js.map +1 -1
  28. package/dist/cjs/relational/core/models/factory.d.ts +29 -0
  29. package/dist/cjs/relational/core/models/factory.d.ts.map +1 -0
  30. package/dist/cjs/relational/core/models/factory.js +41 -0
  31. package/dist/cjs/relational/core/models/factory.js.map +1 -0
  32. package/dist/cjs/relational/core/models/index.d.ts +2 -0
  33. package/dist/cjs/relational/core/models/index.d.ts.map +1 -1
  34. package/dist/cjs/relational/core/models/index.js +2 -0
  35. package/dist/cjs/relational/core/models/index.js.map +1 -1
  36. package/dist/cjs/relational/core/models/relations.d.ts +13 -0
  37. package/dist/cjs/relational/core/models/relations.d.ts.map +1 -0
  38. package/dist/cjs/relational/core/models/relations.js +23 -0
  39. package/dist/cjs/relational/core/models/relations.js.map +1 -0
  40. package/dist/cjs/relational/core/repositories/common/types.d.ts +2 -1
  41. package/dist/cjs/relational/core/repositories/common/types.d.ts.map +1 -1
  42. package/dist/cjs/relational/core/repositories/dialect/index.d.ts +1 -1
  43. package/dist/cjs/relational/core/repositories/dialect/index.d.ts.map +1 -1
  44. package/dist/cjs/relational/core/repositories/dialect/index.js +1 -1
  45. package/dist/cjs/relational/core/repositories/dialect/index.js.map +1 -1
  46. package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.d.ts +12 -0
  47. package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.d.ts.map +1 -0
  48. package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.js +16 -0
  49. package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.js.map +1 -0
  50. package/dist/cjs/relational/core/repositories/dialect/relations/common/index.d.ts +3 -0
  51. package/dist/cjs/relational/core/repositories/dialect/relations/common/index.d.ts.map +1 -0
  52. package/dist/cjs/relational/core/repositories/dialect/relations/common/index.js +19 -0
  53. package/dist/cjs/relational/core/repositories/dialect/relations/common/index.js.map +1 -0
  54. package/dist/cjs/relational/core/repositories/dialect/relations/common/types.d.ts +23 -0
  55. package/dist/cjs/relational/core/repositories/dialect/relations/common/types.d.ts.map +1 -0
  56. package/dist/cjs/relational/core/repositories/dialect/relations/common/types.js +3 -0
  57. package/dist/cjs/relational/core/repositories/dialect/relations/common/types.js.map +1 -0
  58. package/dist/cjs/relational/core/repositories/dialect/relations/create.d.ts +12 -0
  59. package/dist/cjs/relational/core/repositories/dialect/relations/create.d.ts.map +1 -0
  60. package/dist/cjs/relational/core/repositories/dialect/{relation.js → relations/create.js} +12 -5
  61. package/dist/cjs/relational/core/repositories/dialect/relations/create.js.map +1 -0
  62. package/dist/cjs/relational/core/repositories/dialect/relations/index.d.ts +2 -0
  63. package/dist/cjs/relational/core/repositories/dialect/relations/index.d.ts.map +1 -0
  64. package/dist/cjs/relational/core/repositories/dialect/relations/index.js +18 -0
  65. package/dist/cjs/relational/core/repositories/dialect/relations/index.js.map +1 -0
  66. package/dist/cjs/relational/core/repositories/dialect/relations/many.d.ts +13 -0
  67. package/dist/cjs/relational/core/repositories/dialect/relations/many.d.ts.map +1 -0
  68. package/dist/cjs/relational/core/repositories/dialect/relations/many.js +11 -0
  69. package/dist/cjs/relational/core/repositories/dialect/relations/many.js.map +1 -0
  70. package/dist/cjs/relational/core/repositories/dialect/relations/one.d.ts +53 -0
  71. package/dist/cjs/relational/core/repositories/dialect/relations/one.d.ts.map +1 -0
  72. package/dist/cjs/relational/core/repositories/dialect/relations/one.js +185 -0
  73. package/dist/cjs/relational/core/repositories/dialect/relations/one.js.map +1 -0
  74. package/dist/cjs/relational/core/repositories/index.d.ts +1 -0
  75. package/dist/cjs/relational/core/repositories/index.d.ts.map +1 -1
  76. package/dist/cjs/relational/core/repositories/index.js +1 -0
  77. package/dist/cjs/relational/core/repositories/index.js.map +1 -1
  78. package/dist/cjs/relational/core/repositories/sqls/index.d.ts +2 -0
  79. package/dist/cjs/relational/core/repositories/sqls/index.d.ts.map +1 -0
  80. package/dist/cjs/relational/core/repositories/sqls/index.js +18 -0
  81. package/dist/cjs/relational/core/repositories/sqls/index.js.map +1 -0
  82. package/dist/cjs/relational/core/repositories/sqls/recursive-tree.d.ts +56 -0
  83. package/dist/cjs/relational/core/repositories/sqls/recursive-tree.d.ts.map +1 -0
  84. package/dist/cjs/relational/core/repositories/sqls/recursive-tree.js +148 -0
  85. package/dist/cjs/relational/core/repositories/sqls/recursive-tree.js.map +1 -0
  86. package/dist/cjs/relational/postgres/models/index.d.ts +4 -0
  87. package/dist/cjs/relational/postgres/models/index.d.ts.map +1 -1
  88. package/dist/cjs/relational/postgres/models/index.js +7 -1
  89. package/dist/cjs/relational/postgres/models/index.js.map +1 -1
  90. package/dist/cjs/relational/postgres/repositories/common/types.d.ts +1 -16
  91. package/dist/cjs/relational/postgres/repositories/common/types.d.ts.map +1 -1
  92. package/dist/cjs/relational/postgres/repositories/dialect/relation.d.ts +1 -1
  93. package/dist/cjs/relational/postgres/repositories/dialect/relation.d.ts.map +1 -1
  94. package/dist/cjs/relational/postgres/repositories/dialect/relation.js +2 -2
  95. package/dist/cjs/relational/postgres/repositories/dialect/relation.js.map +1 -1
  96. package/dist/cjs/relational/postgres/repositories/dialect/update.d.ts +6 -0
  97. package/dist/cjs/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
  98. package/dist/cjs/relational/postgres/repositories/dialect/update.js +28 -2
  99. package/dist/cjs/relational/postgres/repositories/dialect/update.js.map +1 -1
  100. package/dist/cjs/relational/postgres/repositories/index.d.ts +1 -0
  101. package/dist/cjs/relational/postgres/repositories/index.d.ts.map +1 -1
  102. package/dist/cjs/relational/postgres/repositories/index.js +2 -0
  103. package/dist/cjs/relational/postgres/repositories/index.js.map +1 -1
  104. package/dist/cjs/relational/sqlite/models/index.d.ts +4 -0
  105. package/dist/cjs/relational/sqlite/models/index.d.ts.map +1 -1
  106. package/dist/cjs/relational/sqlite/models/index.js +7 -0
  107. package/dist/cjs/relational/sqlite/models/index.js.map +1 -1
  108. package/dist/cjs/relational/sqlite/repositories/index.d.ts +1 -0
  109. package/dist/cjs/relational/sqlite/repositories/index.d.ts.map +1 -1
  110. package/dist/cjs/relational/sqlite/repositories/index.js +2 -0
  111. package/dist/cjs/relational/sqlite/repositories/index.js.map +1 -1
  112. package/dist/cjs/search/core/controllers/definition.d.ts +73 -33
  113. package/dist/cjs/search/core/controllers/definition.d.ts.map +1 -1
  114. package/dist/cjs/search/core/controllers/factory.d.ts.map +1 -1
  115. package/dist/cjs/search/core/controllers/factory.js +6 -0
  116. package/dist/cjs/search/core/controllers/factory.js.map +1 -1
  117. package/dist/cjs/search/core/datasources/abstract.d.ts +1 -1
  118. package/dist/cjs/search/core/datasources/abstract.d.ts.map +1 -1
  119. package/dist/cjs/search/core/datasources/abstract.js +2 -2
  120. package/dist/cjs/search/core/datasources/abstract.js.map +1 -1
  121. package/dist/cjs/search/core/datasources/base.d.ts.map +1 -1
  122. package/dist/cjs/search/core/datasources/base.js +5 -11
  123. package/dist/cjs/search/core/datasources/base.js.map +1 -1
  124. package/dist/cjs/search/core/datasources/guards.d.ts +4 -0
  125. package/dist/cjs/search/core/datasources/guards.d.ts.map +1 -0
  126. package/dist/cjs/search/core/datasources/guards.js +14 -0
  127. package/dist/cjs/search/core/datasources/guards.js.map +1 -0
  128. package/dist/cjs/search/core/index.d.ts +0 -1
  129. package/dist/cjs/search/core/index.d.ts.map +1 -1
  130. package/dist/cjs/search/core/index.js +2 -1
  131. package/dist/cjs/search/core/index.js.map +1 -1
  132. package/dist/cjs/search/core/internal/search-connector-internal.js +2 -2
  133. package/dist/cjs/search/core/internal/search-connector-internal.js.map +1 -1
  134. package/dist/cjs/search/core/models/base.d.ts +2 -2
  135. package/dist/cjs/search/core/models/base.d.ts.map +1 -1
  136. package/dist/cjs/search/core/models/base.js +2 -2
  137. package/dist/cjs/search/core/models/base.js.map +1 -1
  138. package/dist/cjs/search/core/models/zod-derivation.d.ts +1 -1
  139. package/dist/cjs/search/core/models/zod-derivation.d.ts.map +1 -1
  140. package/dist/cjs/search/core/models/zod-derivation.js +16 -16
  141. package/dist/cjs/search/core/models/zod-derivation.js.map +1 -1
  142. package/dist/cjs/search/core/repositories/common/constants.d.ts +1 -4
  143. package/dist/cjs/search/core/repositories/common/constants.d.ts.map +1 -1
  144. package/dist/cjs/search/core/repositories/common/constants.js +75 -100
  145. package/dist/cjs/search/core/repositories/common/constants.js.map +1 -1
  146. package/dist/cjs/search/core/repositories/common/index.d.ts +1 -0
  147. package/dist/cjs/search/core/repositories/common/index.d.ts.map +1 -1
  148. package/dist/cjs/search/core/repositories/common/index.js +1 -0
  149. package/dist/cjs/search/core/repositories/common/index.js.map +1 -1
  150. package/dist/cjs/search/core/repositories/common/query-params.d.ts +4 -0
  151. package/dist/cjs/search/core/repositories/common/query-params.d.ts.map +1 -0
  152. package/dist/cjs/search/core/repositories/common/query-params.js +29 -0
  153. package/dist/cjs/search/core/repositories/common/query-params.js.map +1 -0
  154. package/dist/cjs/search/core/repositories/core/base.d.ts +1 -1
  155. package/dist/cjs/search/core/repositories/core/base.d.ts.map +1 -1
  156. package/dist/cjs/search/core/repositories/core/base.js +7 -7
  157. package/dist/cjs/search/core/repositories/core/base.js.map +1 -1
  158. package/dist/cjs/search/core/repositories/core/guards.d.ts +5 -0
  159. package/dist/cjs/search/core/repositories/core/guards.d.ts.map +1 -0
  160. package/dist/cjs/search/core/repositories/core/guards.js +9 -0
  161. package/dist/cjs/search/core/repositories/core/guards.js.map +1 -0
  162. package/dist/cjs/search/core/repositories/core/persistable.d.ts.map +1 -1
  163. package/dist/cjs/search/core/repositories/core/persistable.js +4 -7
  164. package/dist/cjs/search/core/repositories/core/persistable.js.map +1 -1
  165. package/dist/cjs/search/core/repositories/core/readable.js +3 -3
  166. package/dist/cjs/search/core/repositories/core/readable.js.map +1 -1
  167. package/dist/cjs/search/meilisearch/connector.js +4 -4
  168. package/dist/cjs/search/meilisearch/connector.js.map +1 -1
  169. package/dist/esm/http/datasource.d.ts +2 -0
  170. package/dist/esm/http/datasource.d.ts.map +1 -1
  171. package/dist/esm/http/datasource.js +13 -1
  172. package/dist/esm/http/datasource.js.map +1 -1
  173. package/dist/esm/package.json +4 -0
  174. package/dist/esm/relational/core/datasources/abstract.d.ts +8 -0
  175. package/dist/esm/relational/core/datasources/abstract.d.ts.map +1 -1
  176. package/dist/esm/relational/core/datasources/abstract.js +32 -0
  177. package/dist/esm/relational/core/datasources/abstract.js.map +1 -1
  178. package/dist/esm/relational/core/datasources/base.d.ts.map +1 -1
  179. package/dist/esm/relational/core/datasources/base.js +22 -3
  180. package/dist/esm/relational/core/datasources/base.js.map +1 -1
  181. package/dist/esm/relational/core/datasources/relation-pairing.d.ts +37 -0
  182. package/dist/esm/relational/core/datasources/relation-pairing.d.ts.map +1 -0
  183. package/dist/esm/relational/core/datasources/relation-pairing.js +54 -0
  184. package/dist/esm/relational/core/datasources/relation-pairing.js.map +1 -0
  185. package/dist/esm/relational/core/models/base.d.ts +5 -5
  186. package/dist/esm/relational/core/models/base.d.ts.map +1 -1
  187. package/dist/esm/relational/core/models/base.js +14 -4
  188. package/dist/esm/relational/core/models/base.js.map +1 -1
  189. package/dist/esm/relational/core/models/common/constants.d.ts +13 -0
  190. package/dist/esm/relational/core/models/common/constants.d.ts.map +1 -0
  191. package/dist/esm/relational/core/models/common/constants.js +20 -0
  192. package/dist/esm/relational/core/models/common/constants.js.map +1 -0
  193. package/dist/esm/relational/core/models/common/types.d.ts +45 -0
  194. package/dist/esm/relational/core/models/common/types.d.ts.map +1 -1
  195. package/dist/esm/relational/core/models/common/types.js.map +1 -1
  196. package/dist/esm/relational/core/models/factory.d.ts +29 -0
  197. package/dist/esm/relational/core/models/factory.d.ts.map +1 -0
  198. package/dist/esm/relational/core/models/factory.js +37 -0
  199. package/dist/esm/relational/core/models/factory.js.map +1 -0
  200. package/dist/esm/relational/core/models/index.d.ts +2 -0
  201. package/dist/esm/relational/core/models/index.d.ts.map +1 -1
  202. package/dist/esm/relational/core/models/index.js +2 -0
  203. package/dist/esm/relational/core/models/index.js.map +1 -1
  204. package/dist/esm/relational/core/models/relations.d.ts +13 -0
  205. package/dist/esm/relational/core/models/relations.d.ts.map +1 -0
  206. package/dist/esm/relational/core/models/relations.js +17 -0
  207. package/dist/esm/relational/core/models/relations.js.map +1 -0
  208. package/dist/esm/relational/core/repositories/common/types.d.ts +2 -1
  209. package/dist/esm/relational/core/repositories/common/types.d.ts.map +1 -1
  210. package/dist/esm/relational/core/repositories/dialect/index.d.ts +1 -1
  211. package/dist/esm/relational/core/repositories/dialect/index.d.ts.map +1 -1
  212. package/dist/esm/relational/core/repositories/dialect/index.js +1 -1
  213. package/dist/esm/relational/core/repositories/dialect/index.js.map +1 -1
  214. package/dist/esm/relational/core/repositories/dialect/relations/common/constants.d.ts +12 -0
  215. package/dist/esm/relational/core/repositories/dialect/relations/common/constants.d.ts.map +1 -0
  216. package/dist/esm/relational/core/repositories/dialect/relations/common/constants.js +12 -0
  217. package/dist/esm/relational/core/repositories/dialect/relations/common/constants.js.map +1 -0
  218. package/dist/esm/relational/core/repositories/dialect/relations/common/index.d.ts +3 -0
  219. package/dist/esm/relational/core/repositories/dialect/relations/common/index.d.ts.map +1 -0
  220. package/dist/esm/relational/core/repositories/dialect/relations/common/index.js +3 -0
  221. package/dist/esm/relational/core/repositories/dialect/relations/common/index.js.map +1 -0
  222. package/dist/esm/relational/core/repositories/dialect/relations/common/types.d.ts +23 -0
  223. package/dist/esm/relational/core/repositories/dialect/relations/common/types.d.ts.map +1 -0
  224. package/dist/esm/relational/core/repositories/dialect/relations/common/types.js +2 -0
  225. package/dist/esm/relational/core/repositories/dialect/relations/common/types.js.map +1 -0
  226. package/dist/esm/relational/core/repositories/dialect/relations/create.d.ts +12 -0
  227. package/dist/esm/relational/core/repositories/dialect/relations/create.d.ts.map +1 -0
  228. package/dist/esm/relational/core/repositories/dialect/{relation.js → relations/create.js} +12 -5
  229. package/dist/esm/relational/core/repositories/dialect/relations/create.js.map +1 -0
  230. package/dist/esm/relational/core/repositories/dialect/relations/index.d.ts +2 -0
  231. package/dist/esm/relational/core/repositories/dialect/relations/index.d.ts.map +1 -0
  232. package/dist/esm/relational/core/repositories/dialect/relations/index.js +2 -0
  233. package/dist/esm/relational/core/repositories/dialect/relations/index.js.map +1 -0
  234. package/dist/esm/relational/core/repositories/dialect/relations/many.d.ts +13 -0
  235. package/dist/esm/relational/core/repositories/dialect/relations/many.d.ts.map +1 -0
  236. package/dist/esm/relational/core/repositories/dialect/relations/many.js +7 -0
  237. package/dist/esm/relational/core/repositories/dialect/relations/many.js.map +1 -0
  238. package/dist/esm/relational/core/repositories/dialect/relations/one.d.ts +53 -0
  239. package/dist/esm/relational/core/repositories/dialect/relations/one.d.ts.map +1 -0
  240. package/dist/esm/relational/core/repositories/dialect/relations/one.js +181 -0
  241. package/dist/esm/relational/core/repositories/dialect/relations/one.js.map +1 -0
  242. package/dist/esm/relational/core/repositories/index.d.ts +1 -0
  243. package/dist/esm/relational/core/repositories/index.d.ts.map +1 -1
  244. package/dist/esm/relational/core/repositories/index.js +1 -0
  245. package/dist/esm/relational/core/repositories/index.js.map +1 -1
  246. package/dist/esm/relational/core/repositories/sqls/index.d.ts +2 -0
  247. package/dist/esm/relational/core/repositories/sqls/index.d.ts.map +1 -0
  248. package/dist/esm/relational/core/repositories/sqls/index.js +2 -0
  249. package/dist/esm/relational/core/repositories/sqls/index.js.map +1 -0
  250. package/dist/esm/relational/core/repositories/sqls/recursive-tree.d.ts +56 -0
  251. package/dist/esm/relational/core/repositories/sqls/recursive-tree.d.ts.map +1 -0
  252. package/dist/esm/relational/core/repositories/sqls/recursive-tree.js +143 -0
  253. package/dist/esm/relational/core/repositories/sqls/recursive-tree.js.map +1 -0
  254. package/dist/esm/relational/postgres/models/index.d.ts +4 -0
  255. package/dist/esm/relational/postgres/models/index.d.ts.map +1 -1
  256. package/dist/esm/relational/postgres/models/index.js +2 -0
  257. package/dist/esm/relational/postgres/models/index.js.map +1 -1
  258. package/dist/esm/relational/postgres/repositories/common/types.d.ts +1 -16
  259. package/dist/esm/relational/postgres/repositories/common/types.d.ts.map +1 -1
  260. package/dist/esm/relational/postgres/repositories/dialect/relation.d.ts +1 -1
  261. package/dist/esm/relational/postgres/repositories/dialect/relation.d.ts.map +1 -1
  262. package/dist/esm/relational/postgres/repositories/dialect/relation.js +1 -1
  263. package/dist/esm/relational/postgres/repositories/dialect/relation.js.map +1 -1
  264. package/dist/esm/relational/postgres/repositories/dialect/update.d.ts +6 -0
  265. package/dist/esm/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
  266. package/dist/esm/relational/postgres/repositories/dialect/update.js +28 -2
  267. package/dist/esm/relational/postgres/repositories/dialect/update.js.map +1 -1
  268. package/dist/esm/relational/postgres/repositories/index.d.ts +1 -0
  269. package/dist/esm/relational/postgres/repositories/index.d.ts.map +1 -1
  270. package/dist/esm/relational/postgres/repositories/index.js +2 -0
  271. package/dist/esm/relational/postgres/repositories/index.js.map +1 -1
  272. package/dist/esm/relational/sqlite/models/index.d.ts +4 -0
  273. package/dist/esm/relational/sqlite/models/index.d.ts.map +1 -1
  274. package/dist/esm/relational/sqlite/models/index.js +2 -0
  275. package/dist/esm/relational/sqlite/models/index.js.map +1 -1
  276. package/dist/esm/relational/sqlite/repositories/index.d.ts +1 -0
  277. package/dist/esm/relational/sqlite/repositories/index.d.ts.map +1 -1
  278. package/dist/esm/relational/sqlite/repositories/index.js +2 -0
  279. package/dist/esm/relational/sqlite/repositories/index.js.map +1 -1
  280. package/dist/esm/search/core/controllers/definition.d.ts +73 -33
  281. package/dist/esm/search/core/controllers/definition.d.ts.map +1 -1
  282. package/dist/esm/search/core/controllers/factory.d.ts.map +1 -1
  283. package/dist/esm/search/core/controllers/factory.js +7 -1
  284. package/dist/esm/search/core/controllers/factory.js.map +1 -1
  285. package/dist/esm/search/core/datasources/abstract.d.ts +1 -1
  286. package/dist/esm/search/core/datasources/abstract.d.ts.map +1 -1
  287. package/dist/esm/search/core/datasources/abstract.js +1 -1
  288. package/dist/esm/search/core/datasources/abstract.js.map +1 -1
  289. package/dist/esm/search/core/datasources/base.d.ts.map +1 -1
  290. package/dist/esm/search/core/datasources/base.js +2 -8
  291. package/dist/esm/search/core/datasources/base.js.map +1 -1
  292. package/dist/esm/search/core/datasources/guards.d.ts +4 -0
  293. package/dist/esm/search/core/datasources/guards.d.ts.map +1 -0
  294. package/dist/esm/search/core/datasources/guards.js +10 -0
  295. package/dist/esm/search/core/datasources/guards.js.map +1 -0
  296. package/dist/esm/search/core/index.d.ts +0 -1
  297. package/dist/esm/search/core/index.d.ts.map +1 -1
  298. package/dist/esm/search/core/index.js +2 -1
  299. package/dist/esm/search/core/index.js.map +1 -1
  300. package/dist/esm/search/core/internal/search-connector-internal.js +1 -1
  301. package/dist/esm/search/core/internal/search-connector-internal.js.map +1 -1
  302. package/dist/esm/search/core/models/base.d.ts +2 -2
  303. package/dist/esm/search/core/models/base.d.ts.map +1 -1
  304. package/dist/esm/search/core/models/base.js +1 -1
  305. package/dist/esm/search/core/models/base.js.map +1 -1
  306. package/dist/esm/search/core/models/zod-derivation.d.ts +1 -1
  307. package/dist/esm/search/core/models/zod-derivation.d.ts.map +1 -1
  308. package/dist/esm/search/core/models/zod-derivation.js +2 -2
  309. package/dist/esm/search/core/models/zod-derivation.js.map +1 -1
  310. package/dist/esm/search/core/repositories/common/constants.d.ts +1 -4
  311. package/dist/esm/search/core/repositories/common/constants.d.ts.map +1 -1
  312. package/dist/esm/search/core/repositories/common/constants.js +13 -37
  313. package/dist/esm/search/core/repositories/common/constants.js.map +1 -1
  314. package/dist/esm/search/core/repositories/common/index.d.ts +1 -0
  315. package/dist/esm/search/core/repositories/common/index.d.ts.map +1 -1
  316. package/dist/esm/search/core/repositories/common/index.js +1 -0
  317. package/dist/esm/search/core/repositories/common/index.js.map +1 -1
  318. package/dist/esm/search/core/repositories/common/query-params.d.ts +4 -0
  319. package/dist/esm/search/core/repositories/common/query-params.d.ts.map +1 -0
  320. package/dist/esm/search/core/repositories/common/query-params.js +25 -0
  321. package/dist/esm/search/core/repositories/common/query-params.js.map +1 -0
  322. package/dist/esm/search/core/repositories/core/base.d.ts +1 -1
  323. package/dist/esm/search/core/repositories/core/base.d.ts.map +1 -1
  324. package/dist/esm/search/core/repositories/core/base.js +3 -3
  325. package/dist/esm/search/core/repositories/core/base.js.map +1 -1
  326. package/dist/esm/search/core/repositories/core/guards.d.ts +5 -0
  327. package/dist/esm/search/core/repositories/core/guards.d.ts.map +1 -0
  328. package/dist/esm/search/core/repositories/core/guards.js +5 -0
  329. package/dist/esm/search/core/repositories/core/guards.js.map +1 -0
  330. package/dist/esm/search/core/repositories/core/persistable.d.ts.map +1 -1
  331. package/dist/esm/search/core/repositories/core/persistable.js +2 -5
  332. package/dist/esm/search/core/repositories/core/persistable.js.map +1 -1
  333. package/dist/esm/search/core/repositories/core/readable.js +1 -1
  334. package/dist/esm/search/core/repositories/core/readable.js.map +1 -1
  335. package/dist/esm/search/meilisearch/connector.js +1 -1
  336. package/dist/esm/search/meilisearch/connector.js.map +1 -1
  337. package/package.json +6 -6
  338. package/dist/cjs/relational/core/repositories/dialect/relation.d.ts +0 -11
  339. package/dist/cjs/relational/core/repositories/dialect/relation.d.ts.map +0 -1
  340. package/dist/cjs/relational/core/repositories/dialect/relation.js.map +0 -1
  341. package/dist/esm/relational/core/repositories/dialect/relation.d.ts +0 -11
  342. package/dist/esm/relational/core/repositories/dialect/relation.d.ts.map +0 -1
  343. package/dist/esm/relational/core/repositories/dialect/relation.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,146 @@
1
+ # @venizia/ignis-connectors
2
+
3
+ The datasources, drivers, entity bases and repositories IGNIS uses to reach a backing engine: SQL
4
+ through Drizzle (Postgres, PGlite, SQLite), search engines (Typesense, Meilisearch), and another
5
+ IGNIS server over HTTP.
6
+
7
+ Server applications get these through `@venizia/ignis` and its sub-paths. Install this package
8
+ directly when you use the connectors without the server, for example in a browser Worker.
9
+
10
+ ## Install
11
+
12
+ For Postgres through `pg`:
13
+
14
+ ```bash
15
+ bun add @venizia/ignis-connectors @venizia/ignis-kernel drizzle-orm drizzle-zod hono @hono/zod-openapi pg
16
+ ```
17
+
18
+ Every peer is optional. Each entry point needs its own set - see the table in
19
+ [Entry points](#entry-points).
20
+
21
+ ## Example
22
+
23
+ Declare the tables with Drizzle first. `ModelFactory.defineEntity` turns each table into an entity,
24
+ and a relation points at a table, not at another entity class:
25
+
26
+ ```typescript
27
+ import { datasource, model, repository } from '@venizia/ignis-kernel';
28
+ import {
29
+ BasePostgresDataSource,
30
+ DefaultCRUDRepository,
31
+ generateIdColumnDefs,
32
+ many,
33
+ ModelFactory,
34
+ one,
35
+ type TEntityObject,
36
+ } from '@venizia/ignis-connectors/postgres';
37
+ import { NodePostgresDriver } from '@venizia/ignis-connectors/postgres/node-postgres';
38
+ import { pgTable, text } from 'drizzle-orm/pg-core';
39
+ import { Pool } from 'pg';
40
+
41
+ export const authorTable = pgTable('Author', {
42
+ ...generateIdColumnDefs({ id: { dataType: 'string' } }),
43
+ name: text('name').notNull(),
44
+ });
45
+
46
+ export const postTable = pgTable('Post', {
47
+ ...generateIdColumnDefs({ id: { dataType: 'string' } }),
48
+ authorId: text('author_id').notNull().references(() => authorTable.id),
49
+ title: text('title').notNull(),
50
+ });
51
+
52
+ @model({ type: 'entity' })
53
+ export class Author extends ModelFactory.defineEntity({
54
+ table: authorTable,
55
+ relations: () => ({ posts: many(postTable, { relationName: 'author' }) }),
56
+ }) {}
57
+
58
+ @model({ type: 'entity' })
59
+ export class Post extends ModelFactory.defineEntity({
60
+ table: postTable,
61
+ relations: () => ({ author: one(authorTable) }),
62
+ }) {}
63
+
64
+ @datasource({ driver: NodePostgresDriver })
65
+ export class BlogDataSource extends BasePostgresDataSource<{ connectionString: string }> {
66
+ constructor() {
67
+ super({ name: BlogDataSource.name, config: { connectionString: 'postgres://localhost/blog' } });
68
+ }
69
+
70
+ override configure(): void {
71
+ this.client = new Pool(this.settings);
72
+ }
73
+
74
+ override getConnectionString(): string {
75
+ return this.settings.connectionString;
76
+ }
77
+ }
78
+
79
+ @repository({ model: Author, dataSource: BlogDataSource })
80
+ export class AuthorRepository extends DefaultCRUDRepository<typeof authorTable> {}
81
+
82
+ @repository({ model: Post, dataSource: BlogDataSource })
83
+ export class PostRepository extends DefaultCRUDRepository<typeof postTable> {}
84
+
85
+ const dataSource = new BlogDataSource();
86
+ dataSource.configure();
87
+
88
+ const authors = new AuthorRepository(dataSource);
89
+ const found = await authors.find<TEntityObject<typeof Author>>({
90
+ filter: { where: { name: 'Ada' }, include: [{ relation: 'posts' }] },
91
+ });
92
+ console.log(found[0]?.posts?.map(post => post.title));
93
+ ```
94
+
95
+ Notice what you did not write:
96
+
97
+ - `one(authorTable)` has no `fields` or `references`. It reads them off the one foreign key from
98
+ `Post` to `Author`. With two keys to the same table, it throws and names them, so you write
99
+ `fields`/`references` for that relation.
100
+ - `many(postTable, { relationName: 'author' })` pairs with the `one()` named `author` on `Post`.
101
+ - The datasource has no schema. It collects the tables from every `@repository` bound to it.
102
+ - `generateIdColumnDefs({ id: { dataType: 'string' } })` gives a text primary key filled with a UUID v7.
103
+
104
+ A class that extends `BaseRelationalEntity` with a hand-written static `schema` still works. Both
105
+ styles can live in one application.
106
+
107
+ ## Entry points
108
+
109
+ | Import | What it gives | Extra peers |
110
+ |---|---|---|
111
+ | `@venizia/ignis-connectors` | The engine-neutral tiers: `BaseRelationalDataSource`, `BaseRelationalEntity`, `ModelFactory`, the relational repository chain, `RelationalMigrationRunner`, `RecursiveTreeSql`, and the search tier | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
112
+ | `/relational` | The engine-neutral SQL tier alone | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
113
+ | `/postgres` | `BasePostgresDataSource`, `DefaultCRUDRepository` and its chain, `ModelFactory`, `one`, `many`, the column helpers, `IsolationLevels`, `RecursiveTreeSql` | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
114
+ | `/postgres/node-postgres` | `NodePostgresDriver` | `drizzle-orm`, `pg` |
115
+ | `/postgres/postgres-js` | `PostgresJsDriver` | `drizzle-orm`, `postgres` |
116
+ | `/postgres/pglite` | `PGliteDriver` - Postgres in WASM, in memory or in the browser's OPFS | `drizzle-orm`, `@electric-sql/pglite` |
117
+ | `/postgres/supabase` | `withAuthContext`, `PoolerModes`, `buildPostgresJsOptions`, and the Supabase role and table helpers | `drizzle-orm` |
118
+ | `/sqlite` | `BaseSqliteDataSource`, `DefaultSqliteRepository` and its chain, `ModelFactory`, `RecursiveTreeSql` | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
119
+ | `/sqlite/libsql` | `LibSqlDriver` | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi`, `@libsql/client` |
120
+ | `/search` | The engine-neutral search tier: `BaseSearchDataSource`, `BaseSearchEntity`, `DefaultSearchRepository` and its chain | none |
121
+ | `/search/controllers` | `AbstractSearchController`, `SearchControllerFactory` | `hono`, `@hono/zod-openapi` |
122
+ | `/typesense` | `TypesenseDataSource`, `TypesenseConnector`, `TypesenseQueryDialect`, plus everything in `/search` | `typesense` |
123
+ | `/typesense/controllers` | The same search controllers as `/search/controllers` | `hono`, `@hono/zod-openapi` |
124
+ | `/meilisearch` | `MeilisearchDataSource`, `MeilisearchConnector`, `MeilisearchQueryDialect` | `meilisearch` |
125
+ | `/http` | `HttpDataSource` and `HttpRepository` - read another IGNIS server's REST routes with the same filter vocabulary | none |
126
+
127
+ The root entry imports no driver and no engine client. A driver loads only when you import its
128
+ entry and name its class in `@datasource({ driver })`.
129
+
130
+ ## Where it sits
131
+
132
+ Depends on `@venizia/ignis-kernel`, `@venizia/ignis-filter`, `@venizia/ignis-helpers` and
133
+ `@venizia/ignis-inversion`. Used by `@venizia/ignis`, which re-exports every sub-path under the same
134
+ name (`@venizia/ignis/postgres`, ...) except `/http`. Its root re-exports `/postgres`.
135
+
136
+ ## Links
137
+
138
+ - [Connectors](https://ignis.venizia.ai/references/base/connectors)
139
+ - [Models](https://ignis.venizia.ai/guides/core-concepts/persistent/models) and [relations](https://ignis.venizia.ai/references/base/repositories/relations)
140
+ - [Postgres drivers and Supabase](https://ignis.venizia.ai/guides/core-concepts/persistent/postgres-drivers), [PGlite](https://ignis.venizia.ai/guides/core-concepts/persistent/pglite), [SQLite](https://ignis.venizia.ai/guides/core-concepts/persistent/sqlite)
141
+ - [Typesense](https://ignis.venizia.ai/guides/core-concepts/persistent/search-typesense), [Meilisearch](https://ignis.venizia.ai/guides/core-concepts/persistent/search-meilisearch)
142
+ - [Changelog: define an entity from its table](https://ignis.venizia.ai/changelogs/2026-09-19-define-entity)
143
+ - [Changelog: an HTTP connector](https://ignis.venizia.ai/changelogs/2026-09-17-an-http-connector)
144
+ - [All changelogs](https://ignis.venizia.ai/changelogs/)
145
+
146
+ MIT licensed - see [LICENSE.md](https://github.com/VENIZIA-AI/ignis/blob/main/LICENSE.md).
@@ -9,6 +9,8 @@ export declare class HttpDataSource extends AbstractDataSource<IHttpDataSourceSe
9
9
  protected network: NodeFetchNetworkRequest;
10
10
  /** Normalised once: every request copies these, never re-parses `settings.headers`. */
11
11
  protected configuredHeaders: Array<[string, string]>;
12
+ /** Decided once: a relative baseUrl (`/api`) needs a location to resolve against on every request. */
13
+ protected isRelativeBaseUrl: boolean;
12
14
  constructor(opts: IHttpDataSourceSettings & {
13
15
  name?: string;
14
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAkGxB,mGAAmG;AACnG,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,uBAAuB,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAS,KAAK,CAAC;IAE9B,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,uFAAuF;IACvF,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAEzC,IAAI,EAAE,uBAAuB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAsBvD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvB,eAAe;;;IAIxB,SAAS,CAAC,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAIpD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO;IAqB7D,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM;IAgBjF,+FAA+F;IACzF,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuBrB,oFAAoF;IAC9E,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KACxB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAwBhC"}
1
+ {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAqGxB,mGAAmG;AACnG,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,uBAAuB,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAS,KAAK,CAAC;IAE9B,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,uFAAuF;IACvF,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,sGAAsG;IACtG,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEzB,IAAI,EAAE,uBAAuB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAuBvD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvB,eAAe;;;IAIxB,SAAS,CAAC,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAIpD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO;IAqB7D,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM;IA2BjF,+FAA+F;IACzF,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuBrB,oFAAoF;IAC9E,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KACxB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAwBhC"}
@@ -6,6 +6,8 @@ const common_1 = require("@venizia/ignis-helpers/common");
6
6
  const core_1 = require("@venizia/ignis-helpers/core");
7
7
  const core_2 = require("@venizia/ignis-helpers/core");
8
8
  const MAX_URL_IN_MESSAGE = 256;
9
+ /** A leading RFC 3986 scheme makes a URL absolute. Read by pattern: `URL.canParse` needs Safari 17 or Chrome 120, and this runs in pages. */
10
+ const URL_SCHEME_PATTERN = /^[a-z][a-z\d+.-]*:/i;
9
11
  /** A long `inq` makes a URL 200 KB: the message keeps its head and length. 414/431 name the URL. */
10
12
  const describeUrl = (opts) => {
11
13
  const { url, status } = opts;
@@ -94,6 +96,7 @@ class HttpDataSource extends repository_1.AbstractDataSource {
94
96
  this.configuredHeaders = configured;
95
97
  this.name = name;
96
98
  this.settings = settings;
99
+ this.isRelativeBaseUrl = !URL_SCHEME_PATTERN.test(settings.baseUrl);
97
100
  this.network = new core_1.NodeFetchNetworkRequest({
98
101
  name,
99
102
  networkOptions: { baseUrl: settings.baseUrl },
@@ -123,7 +126,16 @@ class HttpDataSource extends repository_1.AbstractDataSource {
123
126
  }
124
127
  buildUrl(opts) {
125
128
  const { paths, query } = opts;
126
- const url = new URL(this.network.getRequestUrl({ paths }));
129
+ const requestUrl = this.network.getRequestUrl({ paths });
130
+ // A page or a Web Worker has a location to resolve '/api' against; a server has none.
131
+ const locationHref = this.isRelativeBaseUrl ? globalThis.location?.href : undefined;
132
+ if (this.isRelativeBaseUrl && !locationHref) {
133
+ throw (0, core_2.getError)({
134
+ statusCode: common_1.HTTP.ResultCodes.RS_5.InternalServerError,
135
+ message: `[${this.name}] Relative baseUrl '${this.settings.baseUrl}' needs a page or worker location to resolve against, and there is none here | Pass an absolute baseUrl such as 'https://api.example.com'`,
136
+ });
137
+ }
138
+ const url = new URL(requestUrl, locationHref);
127
139
  const parameters = Object.entries(query ?? {});
128
140
  for (const [key, value] of parameters) {
129
141
  if (value === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":";;;AAAA,iEAAsE;AACtE,0DAAqD;AACrD,sDAAsE;AACtE,sDAAuD;AAQvD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,6IAA6I;AAC7I,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,oGAAoG;AACpG,MAAM,WAAW,GAAG,CAAC,IAAqC,EAAU,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,GAAG,kBAAkB;QAC7B,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,GAAG,CAAC,MAAM,SAAS;QAChE,CAAC,CAAC,GAAG,CAAC;IAEV,MAAM,SAAS,GACb,MAAM,KAAK,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU;QAC3C,MAAM,KAAK,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC;IAE/D,OAAO,SAAS;QACd,CAAC,CAAC,GAAG,KAAK,yFAAyF;QACnG,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAI,IAA2D,EAAK,EAAE;IACvF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAElC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAC1E,OAAQ,IAAoB,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,MAAM,IAAA,eAAQ,EAAC;QACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;QACrD,OAAO,EAAE,qGAAqG,GAAG,EAAE;KACpH,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,uGAAuG;AACvG,MAAM,gBAAgB,GAAG,CAAC,IAEzB,EAAgD,EAAE;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,CAAC,IAAgC,EAA2B,EAAE;IACpF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GACV,OAAO,YAAY,OAAO;QACxB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,mGAAmG;AACnG,MAAa,cAAe,SAAQ,+BAA2C;IAW7E,YAAY,IAAiD;QAC3D,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAT5C,WAAM,GAAG,EAAW,CAAC;QAW5B,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QAE5C,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,aAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtF,MAAM,IAAA,eAAQ,EAAC;gBACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;gBACrD,OAAO,EAAE,IAAI,IAAI,KAAK,aAAI,CAAC,OAAO,CAAC,kBAAkB,wGAAwG;aAC9J,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,8BAAuB,CAAC;YACzC,IAAI;YACJ,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,KAAmB,CAAC;IAE1B,eAAe;QACtB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAES,gBAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACxE,CAAC;IAES,YAAY,CAAC,IAA4B;QACjD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpD,wEAAwE;QACxE,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpF,wDAAwD;QACxD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,IAA+D;QACtE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEzD,sFAAsF;QACtF,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,IAAA,eAAQ,EAAC;gBACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;gBACrD,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,QAAQ,CAAC,OAAO,2IAA2I;aAC9M,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,OAAO,CAAC,IAIb;QACC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,IAAI,GAAG,GAAG,EAAE,CAChB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC;YACpC,GAAG;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,aAAI,CAAC,OAAO,CAAC,GAAG,CAAU;YAClD,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC/D,CAAC,CAAC;QAEL,IAAI,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;QAE5B,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC3F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAEzD,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,IAAI,CAAI,IAIb;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAA,eAAQ,EAAC;gBACb,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,WAAW,QAAQ,CAAC,MAAM,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;aAC3H,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;QACnF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,UAAU,CAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5F,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK,KAAK,SAAS;YAC7B,YAAY;YACZ,KAAK,EAAE,KAAK,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC;IACJ,CAAC;CACF;AArJD,wCAqJC"}
@@ -15,6 +15,7 @@ export declare abstract class AbstractRelationalDataSource<Settings extends obje
15
15
  connector: TConnector;
16
16
  protected client?: Client;
17
17
  protected driver?: IRelationalDriver<TConnector>;
18
+ private closePromise?;
18
19
  /**
19
20
  * Lazy and idempotent: builds the driver named by `@datasource({ driver })` over the client
20
21
  * `configure()` assigned, then the connector from it.
@@ -45,6 +46,13 @@ export declare abstract class AbstractRelationalDataSource<Settings extends obje
45
46
  getClient(): Client;
46
47
  abstract getQueryDialect(): IRelationalQueryDialect;
47
48
  abstract getQueryExecutor(): IRelationalQueryExecutor<TConnector>;
49
+ /**
50
+ * Ends the connection `configure()` opened. Runs once: every later call returns the first call's
51
+ * promise. Goes through the driver, wired now if nothing queried yet, because its `end()` is the
52
+ * engine's whole teardown - PGlite also clears the exit status it plants on the host process.
53
+ */
54
+ close(): Promise<void>;
55
+ private endConnection;
48
56
  /**
49
57
  * Soft-evicts the pool after a secret rotation: rebuilds against the rotated credentials without
50
58
  * touching live fields, swaps atomically, then drains the old pool. On failure live state is
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGhG;;;;;;GAMG;AACH,8BAAsB,4BAA4B,CAChD,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CAEpB,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAChE,YAAW,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;IAE3F,SAAS,EAAE,UAAU,CAAC;IAEtB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEjD;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAoBxC;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAerE,SAAS,CAAC,aAAa,IAAI,iBAAiB,CAAC,UAAU,CAAC;IAKxD;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK3F,QAAQ,CAAC,mBAAmB,IAAI,cAAc,CAAC,MAAM,CAAC;aACpC,gBAAgB,CAChC,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE9C,kGAAkG;IAClG,YAAY,IAAI,UAAU;IAK1B;;;OAGG;IACH,SAAS,IAAI,MAAM;IAcnB,QAAQ,CAAC,eAAe,IAAI,uBAAuB;IACnD,QAAQ,CAAC,gBAAgB,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjE;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D3F;;;;;OAKG;cACa,WAAW,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxE,iGAAiG;IACjG,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS;CAanF"}
1
+ {"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGhG;;;;;;GAMG;AACH,8BAAsB,4BAA4B,CAChD,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CAEpB,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAChE,YAAW,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;IAE3F,SAAS,EAAE,UAAU,CAAC;IAEtB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEjD,OAAO,CAAC,YAAY,CAAC,CAAgB;IAErC;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAoBxC;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAerE,SAAS,CAAC,aAAa,IAAI,iBAAiB,CAAC,UAAU,CAAC;IAKxD;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK3F,QAAQ,CAAC,mBAAmB,IAAI,cAAc,CAAC,MAAM,CAAC;aACpC,gBAAgB,CAChC,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE9C,kGAAkG;IAClG,YAAY,IAAI,UAAU;IAK1B;;;OAGG;IACH,SAAS,IAAI,MAAM;IAcnB,QAAQ,CAAC,eAAe,IAAI,uBAAuB;IACnD,QAAQ,CAAC,gBAAgB,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjE;;;;OAIG;IACM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAKjB,aAAa;IA0B3B;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D3F;;;;;OAKG;cACa,WAAW,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxE,iGAAiG;IACjG,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS;CAanF"}
@@ -80,6 +80,38 @@ class AbstractRelationalDataSource extends ignis_kernel_1.AbstractDataSource {
80
80
  }
81
81
  return this.client;
82
82
  }
83
+ /**
84
+ * Ends the connection `configure()` opened. Runs once: every later call returns the first call's
85
+ * promise. Goes through the driver, wired now if nothing queried yet, because its `end()` is the
86
+ * engine's whole teardown - PGlite also clears the exit status it plants on the host process.
87
+ */
88
+ close() {
89
+ this.closePromise ??= this.endConnection();
90
+ return this.closePromise;
91
+ }
92
+ async endConnection() {
93
+ if (!this.driver && this.client === undefined) {
94
+ return;
95
+ }
96
+ let driver;
97
+ try {
98
+ driver = this.resolveDriver();
99
+ }
100
+ catch (error) {
101
+ this.logger
102
+ .for(this.close.name)
103
+ .warn('No driver to end the connection with | draining the client | error: %s', error);
104
+ await this.drainClient({ client: this.client });
105
+ return;
106
+ }
107
+ // A hand-made driver cast past `IRelationalDriver` can lack the `end()` its type promises.
108
+ if (typeof driver.end !== 'function') {
109
+ this.logger.for(this.close.name).warn('The driver has no end() | draining the client');
110
+ await this.drainClient({ client: this.client });
111
+ return;
112
+ }
113
+ await driver.end();
114
+ }
83
115
  /**
84
116
  * Soft-evicts the pool after a secret rotation: rebuilds against the rotated credentials without
85
117
  * touching live fields, swaps atomically, then drains the old pool. On failure live state is
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAO/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAEtF,+EAA+E;AAC/E,8BAAsB,wBAAwB,CAC5C,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CACpB,SAAQ,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;gBACnF,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAWrE,wEAAwE;IAC/D,SAAS,IAAI,MAAM;IAK5B,SAAS,CAAC,cAAc,IAAI,MAAM;IA2BlC,qBAAqB,IAAI,OAAO;IAKvB,eAAe;;;IAIT,gBAAgB,CAC7B,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IA4D9C,2LAA2L;IAC3L,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,6BAA6B,GAAG,MAAM;CACrF"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAO/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAGtF,+EAA+E;AAC/E,8BAAsB,wBAAwB,CAC5C,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CACpB,SAAQ,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;gBACnF,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAWrE,wEAAwE;IAC/D,SAAS,IAAI,MAAM;IAK5B,SAAS,CAAC,cAAc,IAAI,MAAM;IAgDlC,qBAAqB,IAAI,OAAO;IAKvB,eAAe;;;IAIT,gBAAgB,CAC7B,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IA4D9C,2LAA2L;IAC3L,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,6BAA6B,GAAG,MAAM;CACrF"}
@@ -5,12 +5,13 @@ const ignis_kernel_1 = require("@venizia/ignis-kernel");
5
5
  const ignis_kernel_2 = require("@venizia/ignis-kernel");
6
6
  const core_1 = require("@venizia/ignis-helpers/core");
7
7
  // Deep import, not a barrel: `discoverSchema()` below is the only production call site that needs
8
- // `createRelations`, so the install runs from here rather than `dialect/relation.ts` - nothing else
8
+ // `createRelations`, so the install runs from here rather than `dialect/relations/create.ts` - nothing else
9
9
  // value-imports that file's `createRelations` export, and a `sideEffects: false` bundler drops an
10
10
  // unused export's module body even when it is reachable through a barrel `export *` chain (verified
11
11
  // with `bun build --target=browser`, the tool `make purity` uses).
12
- const relation_1 = require("../repositories/dialect/relation");
12
+ const create_1 = require("../repositories/dialect/relations/create");
13
13
  const abstract_1 = require("./abstract");
14
+ const relation_pairing_1 = require("./relation-pairing");
14
15
  /** Base DataSource with schema auto-discovery from registered repositories. */
15
16
  class BaseRelationalDataSource extends abstract_1.AbstractRelationalDataSource {
16
17
  constructor(opts) {
@@ -40,8 +41,26 @@ class BaseRelationalDataSource extends abstract_1.AbstractRelationalDataSource {
40
41
  this.logger
41
42
  .for(this.discoverSchema.name)
42
43
  .debug('Detected model(s) | Name: %s | Count: %s | Models: %j', this.name, models.length, models);
44
+ const discovered = { ...schema, ...relations };
45
+ // An inverse one() nothing pairs fails here; any other relation drizzle cannot pair is only
46
+ // reported, so a model set that boots today keeps booting, and its first query still throws.
47
+ const { unpaired, outside } = relation_pairing_1.RelationPairing.inspect({
48
+ dataSource: this.constructor.name,
49
+ schema: discovered,
50
+ });
51
+ const fatal = unpaired.find(item => relation_pairing_1.RelationPairing.isInverseOne({ relation: item.relation }));
52
+ if (fatal) {
53
+ throw (0, core_1.getError)({ message: fatal.message });
54
+ }
55
+ const logger = this.logger.for(this.discoverSchema.name);
56
+ for (const item of unpaired) {
57
+ logger.warn(item.message);
58
+ }
59
+ if (outside.length > 0) {
60
+ logger.debug(relation_pairing_1.RelationPairing.describeOutside({ outside }));
61
+ }
43
62
  // buildSchema() is shared by every connector so it returns Record<string, unknown>; the cast narrows back to the Drizzle schema shape.
44
- return { ...schema, ...relations };
63
+ return discovered;
45
64
  }
46
65
  hasDiscoverableModels() {
47
66
  const registry = ignis_kernel_1.MetadataRegistry.getInstance();
@@ -104,5 +123,5 @@ exports.BaseRelationalDataSource = BaseRelationalDataSource;
104
123
  // Runs once this module loads. Every engine (postgres, sqlite) extends `BaseRelationalDataSource`,
105
124
  // and `discoverSchema()` above is the sole caller of `resolveModelRelations()`, so this is the one
106
125
  // place guaranteed to load whenever relation building is actually needed.
107
- ignis_kernel_2.RelationBuilderRegistry.set({ builder: relation_1.createRelations });
126
+ ignis_kernel_2.RelationBuilderRegistry.set({ builder: create_1.createRelations });
108
127
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { Relation } from 'drizzle-orm';
2
+ /** A relation drizzle cannot pair, with the message that names it and its fix. */
3
+ interface IUnpairedRelation {
4
+ relation: Relation;
5
+ message: string;
6
+ }
7
+ /** What a datasource's schema discovery learns about its relations. */
8
+ interface IRelationPairingReport {
9
+ /** Relations drizzle cannot pair, though their target has a model on the datasource. */
10
+ unpaired: Array<IUnpairedRelation>;
11
+ /** `Entity.relation -> Table` for each relation whose table has no model on the datasource. */
12
+ outside: Array<string>;
13
+ }
14
+ /**
15
+ * Pairs every relation the way drizzle does on the first query that includes it, so schema
16
+ * discovery can report - or refuse - what that query would hit. A relation whose table has no
17
+ * model on the datasource is kept apart: a datasource that carries a subset of models on purpose
18
+ * is a normal shape, not a defect.
19
+ */
20
+ export declare class RelationPairing {
21
+ static inspect(opts: {
22
+ dataSource: string;
23
+ schema: Record<string, unknown>;
24
+ }): IRelationPairingReport;
25
+ /** An inverse one() - no fields of its own - exists only through the relation that pairs it. */
26
+ static isInverseOne(opts: {
27
+ relation: Relation;
28
+ }): boolean;
29
+ /** One line for every relation that points outside the datasource. */
30
+ static describeOutside(opts: {
31
+ outside: Array<string>;
32
+ }): string;
33
+ /** The fix for a relation drizzle cannot pair, in the entities' own names. */
34
+ private static buildUnpairedHint;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=relation-pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-pairing.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/relation-pairing.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,kFAAkF;AAClF,UAAU,iBAAiB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,UAAU,sBAAsB;IAC9B,wFAAwF;IACxF,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnC,+FAA+F;IAC/F,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,sBAAsB;IAiC1B,gGAAgG;IAChG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO;IAI1D,sEAAsE;IACtE,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,MAAM;IAMhE,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAYjC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RelationPairing = void 0;
4
+ const drizzle_orm_1 = require("drizzle-orm");
5
+ /**
6
+ * Pairs every relation the way drizzle does on the first query that includes it, so schema
7
+ * discovery can report - or refuse - what that query would hit. A relation whose table has no
8
+ * model on the datasource is kept apart: a datasource that carries a subset of models on purpose
9
+ * is a normal shape, not a defect.
10
+ */
11
+ class RelationPairing {
12
+ static inspect(opts) {
13
+ const { dataSource, schema } = opts;
14
+ const { tables, tableNamesMap } = (0, drizzle_orm_1.extractTablesRelationalConfig)(schema, drizzle_orm_1.createTableRelationsHelpers);
15
+ const unpaired = [];
16
+ const outside = [];
17
+ for (const [entity, table] of Object.entries(tables)) {
18
+ for (const [name, relation] of Object.entries(table.relations)) {
19
+ const target = tableNamesMap[(0, drizzle_orm_1.getTableUniqueName)(relation.referencedTable)];
20
+ if (!target) {
21
+ outside.push(`${entity}.${name} -> ${(0, drizzle_orm_1.getTableName)(relation.referencedTable)}`);
22
+ continue;
23
+ }
24
+ try {
25
+ (0, drizzle_orm_1.normalizeRelation)(tables, tableNamesMap, relation);
26
+ }
27
+ catch (error) {
28
+ const reason = error instanceof Error ? error.message : String(error);
29
+ unpaired.push({
30
+ relation,
31
+ message: `[${dataSource}][discoverSchema] Cannot resolve relation '${name}' on entity '${entity}': ${reason} | ${RelationPairing.buildUnpairedHint({ entity, target, relation })}`,
32
+ });
33
+ }
34
+ }
35
+ }
36
+ return { unpaired, outside };
37
+ }
38
+ /** An inverse one() - no fields of its own - exists only through the relation that pairs it. */
39
+ static isInverseOne(opts) {
40
+ return (0, drizzle_orm_1.is)(opts.relation, drizzle_orm_1.One) && !opts.relation.config;
41
+ }
42
+ /** One line for every relation that points outside the datasource. */
43
+ static describeOutside(opts) {
44
+ const { outside } = opts;
45
+ const count = outside.length === 1 ? '1 relation points' : `${outside.length} relations point`;
46
+ return `${count} to a table outside this datasource: ${outside.join(', ')} | A query that includes one fails here; bind that model to this datasource if you need it`;
47
+ }
48
+ /** The fix for a relation drizzle cannot pair, in the entities' own names. */
49
+ static buildUnpairedHint(opts) {
50
+ const { entity, target, relation } = opts;
51
+ if ((0, drizzle_orm_1.is)(relation, drizzle_orm_1.Many)) {
52
+ return `A many() pairs with the one() on '${target}' named '${relation.relationName}' - a one() is named by its key, or by its relationName if it sets one | Add that one() on '${target}', pointing back to '${entity}', or set relationName here to the name of the one() already there`;
53
+ }
54
+ return `'${target}' holds the foreign key, so this one() pairs with the one relation there that points back to '${entity}' - there must be exactly one | Add that one() on '${target}', or write fields and references on this side`;
55
+ }
56
+ }
57
+ exports.RelationPairing = RelationPairing;
58
+ //# sourceMappingURL=relation-pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-pairing.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/relation-pairing.ts"],"names":[],"mappings":";;;AAAA,6CASqB;AAiBrB;;;;;GAKG;AACH,MAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,IAGd;QACC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,2CAA6B,EAC7D,MAAM,EACN,yCAA2B,CAC5B,CAAC;QAEF,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,IAAA,gCAAkB,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,OAAO,IAAA,0BAAY,EAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;oBAC/E,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,IAAA,+BAAiB,EAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACtE,QAAQ,CAAC,IAAI,CAAC;wBACZ,QAAQ;wBACR,OAAO,EAAE,IAAI,UAAU,8CAA8C,IAAI,gBAAgB,MAAM,MAAM,MAAM,MAAM,eAAe,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;qBACnL,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,YAAY,CAAC,IAA4B;QAC9C,OAAO,IAAA,gBAAE,EAAC,IAAI,CAAC,QAAQ,EAAE,iBAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACzD,CAAC;IAED,sEAAsE;IACtE,MAAM,CAAC,eAAe,CAAC,IAAgC;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,kBAAkB,CAAC;QAC/F,OAAO,GAAG,KAAK,wCAAwC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,4FAA4F,CAAC;IACxK,CAAC;IAED,8EAA8E;IACtE,MAAM,CAAC,iBAAiB,CAAC,IAIhC;QACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAE1C,IAAI,IAAA,gBAAE,EAAC,QAAQ,EAAE,kBAAI,CAAC,EAAE,CAAC;YACvB,OAAO,qCAAqC,MAAM,YAAY,QAAQ,CAAC,YAAY,+FAA+F,MAAM,wBAAwB,MAAM,oEAAoE,CAAC;QAC7R,CAAC;QACD,OAAO,IAAI,MAAM,iGAAiG,MAAM,sDAAsD,MAAM,gDAAgD,CAAC;IACvO,CAAC;CACF;AA9DD,0CA8DC"}
@@ -2,7 +2,7 @@ import type { TIdSchemaType, TSchemaType } from '@venizia/ignis-kernel';
2
2
  import { AbstractEntity } from '@venizia/ignis-kernel';
3
3
  import type { TRelationConfig } from '../repositories/common';
4
4
  import type { TValueOrResolver } from '@venizia/ignis-helpers/common';
5
- import { createSchemaFactory } from 'drizzle-zod';
5
+ import type { Table } from 'drizzle-orm';
6
6
  import type { IEntity, TTableInsert, TTableObject, TTableSchemaWithId } from './common';
7
7
  /** Base entity with Drizzle ORM support. Supports static schema or constructor-based schema. */
8
8
  export declare class BaseRelationalEntity<Schema extends TTableSchemaWithId = TTableSchemaWithId> extends AbstractEntity implements IEntity<Schema> {
@@ -11,17 +11,17 @@ export declare class BaseRelationalEntity<Schema extends TTableSchemaWithId = TT
11
11
  readonly $inferPersist?: TTableInsert<Schema>;
12
12
  static TABLE_NAME?: string;
13
13
  static AUTHORIZATION_SUBJECT?: string;
14
- static schema: TTableSchemaWithId;
14
+ /** A carrier, deliberately widened to `Table`: a factory-built entity knows its table precisely, and a narrower static would reject that precise type. The CONTRACT stays on the instance, typed `Schema`. */
15
+ static schema: Table;
15
16
  static relations?: TValueOrResolver<Array<TRelationConfig>>;
16
- /** Lazy singleton - shared across all BaseRelationalEntity instances. */
17
- private static _schemaFactory?;
18
- protected static get schemaFactory(): ReturnType<typeof createSchemaFactory>;
19
17
  constructor(opts?: {
20
18
  name?: string;
21
19
  schema?: Schema;
22
20
  });
23
21
  /** Maps the schema's id column's Drizzle `dataType` to 'number' (serial/integer) or 'string' (everything else, including bigint/unknown). */
24
22
  getIdType(): TIdSchemaType;
23
+ /** The audit keys whose column carries a default or `$onUpdate`; an audit column with neither is left to the client. */
24
+ getServerStampedKeys(): string[];
25
25
  getSchema<T = unknown>(opts: {
26
26
  type: TSchemaType;
27
27
  }): T;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAe,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGxF,gGAAgG;AAChG,qBAAa,oBAAoB,CAAC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtF,SAAQ,cACR,YAAW,OAAO,CAAC,MAAM,CAAC;IAE1B,MAAM,EAAE,MAAM,CAAC;IAGf,SAAiB,UAAU,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnD,SAAiB,aAAa,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtD,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAEtC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAClC,MAAM,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAE5D,yEAAyE;IACzE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAyC;IACvE,SAAS,CAAC,MAAM,KAAK,aAAa,IAAI,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAE3E;gBAEW,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IASrD,6IAA6I;IACpI,SAAS,IAAI,aAAa;IAInC,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,CAAC;CAoBvD"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAe,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AASxF,gGAAgG;AAChG,qBAAa,oBAAoB,CAAC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtF,SAAQ,cACR,YAAW,OAAO,CAAC,MAAM,CAAC;IAE1B,MAAM,EAAE,MAAM,CAAC;IAGf,SAAiB,UAAU,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnD,SAAiB,aAAa,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtD,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAEtC,8MAA8M;IAC9M,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IACrB,MAAM,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBAEhD,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IASrD,6IAA6I;IACpI,SAAS,IAAI,aAAa;IAInC,wHAAwH;IAC/G,oBAAoB,IAAI,MAAM,EAAE;IASzC,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,CAAC;CAoBvD"}
@@ -4,12 +4,14 @@ exports.BaseRelationalEntity = void 0;
4
4
  const ignis_kernel_1 = require("@venizia/ignis-kernel");
5
5
  const core_1 = require("@venizia/ignis-helpers/core");
6
6
  const drizzle_zod_1 = require("drizzle-zod");
7
+ const drizzle_orm_1 = require("drizzle-orm");
7
8
  const common_1 = require("./common");
9
+ const constants_1 = require("./common/constants");
10
+ /** Lazy singleton, shared by every entity. */
11
+ let schemaFactory;
12
+ const getSchemaFactory = () => (schemaFactory ??= (0, drizzle_zod_1.createSchemaFactory)());
8
13
  /** Base entity with Drizzle ORM support. Supports static schema or constructor-based schema. */
9
14
  class BaseRelationalEntity extends ignis_kernel_1.AbstractEntity {
10
- static get schemaFactory() {
11
- return (BaseRelationalEntity._schemaFactory ??= (0, drizzle_zod_1.createSchemaFactory)());
12
- }
13
15
  constructor(opts) {
14
16
  const ctor = new.target;
15
17
  const name = opts?.name ?? ctor.TABLE_NAME ?? ctor.name;
@@ -20,8 +22,16 @@ class BaseRelationalEntity extends ignis_kernel_1.AbstractEntity {
20
22
  getIdType() {
21
23
  return (0, common_1.getIdType)({ entity: this.schema }) === 'number' ? 'number' : 'string';
22
24
  }
25
+ /** The audit keys whose column carries a default or `$onUpdate`; an audit column with neither is left to the client. */
26
+ getServerStampedKeys() {
27
+ const columns = (0, drizzle_orm_1.getTableColumns)(this.schema);
28
+ return [...constants_1.AuditFields.SCHEME_SET].filter(key => {
29
+ const column = columns[key];
30
+ return column !== undefined && (column.hasDefault || column.onUpdateFn !== undefined);
31
+ });
32
+ }
23
33
  getSchema(opts) {
24
- const factory = BaseRelationalEntity.schemaFactory;
34
+ const factory = getSchemaFactory();
25
35
  switch (opts.type) {
26
36
  case ignis_kernel_1.SchemaTypes.CREATE: {
27
37
  return factory.createInsertSchema(this.schema);
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":";;;AACA,wDAAoE;AAGpE,sDAAuD;AACvD,6CAAkD;AAElD,qCAAmD;AAEnD,gGAAgG;AAChG,MAAa,oBACX,SAAQ,6BAAc;IAiBZ,MAAM,KAAK,aAAa;QAChC,OAAO,CAAC,oBAAoB,CAAC,cAAc,KAAK,IAAA,iCAAmB,GAAE,CAAC,CAAC;IACzE,CAAC;IAED,YAAY,IAAyC;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAqC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC;QAExD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhB,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAK,IAAI,CAAC,MAAiB,CAAC;IACxD,CAAC;IAED,6IAA6I;IACpI,SAAS;QAChB,OAAO,IAAA,kBAAU,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChF,CAAC;IAED,SAAS,CAAc,IAA2B;QAChD,MAAM,OAAO,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAEnD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,2CAA2C,IAAI,CAAC,IAAI,aAAa,CAAC,0BAAW,CAAC,MAAM,EAAE,0BAAW,CAAC,MAAM,EAAE,0BAAW,CAAC,MAAM,CAAC,EAAE;iBACzI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxDD,oDAwDC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":";;;AACA,wDAAoE;AAGpE,sDAAuD;AACvD,6CAAkD;AAElD,6CAA8C;AAE9C,qCAAmD;AACnD,kDAAiD;AAEjD,8CAA8C;AAC9C,IAAI,aAAiE,CAAC;AACtE,MAAM,gBAAgB,GAAG,GAA2C,EAAE,CACpE,CAAC,aAAa,KAAK,IAAA,iCAAmB,GAAE,CAAC,CAAC;AAE5C,gGAAgG;AAChG,MAAa,oBACX,SAAQ,6BAAc;IAgBtB,YAAY,IAAyC;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAqC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC;QAExD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhB,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAK,IAAI,CAAC,MAAiB,CAAC;IACxD,CAAC;IAED,6IAA6I;IACpI,SAAS;QAChB,OAAO,IAAA,kBAAU,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChF,CAAC;IAED,wHAAwH;IAC/G,oBAAoB;QAC3B,MAAM,OAAO,GAAuC,IAAA,6BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjF,OAAO,CAAC,GAAG,uBAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAc,IAA2B;QAChD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAEnC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,2CAA2C,IAAI,CAAC,IAAI,aAAa,CAAC,0BAAW,CAAC,MAAM,EAAE,0BAAW,CAAC,MAAM,EAAE,0BAAW,CAAC,MAAM,CAAC,EAAE;iBACzI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA7DD,oDA6DC"}