@warlock.js/cascade 4.0.157 → 4.0.158

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 (689) hide show
  1. package/package.json +4 -4
  2. package/cjs/context/database-data-source-context.d.ts +0 -29
  3. package/cjs/context/database-data-source-context.d.ts.map +0 -1
  4. package/cjs/context/database-data-source-context.js +0 -28
  5. package/cjs/context/database-data-source-context.js.map +0 -1
  6. package/cjs/context/database-transaction-context.d.ts +0 -35
  7. package/cjs/context/database-transaction-context.d.ts.map +0 -1
  8. package/cjs/context/database-transaction-context.js +0 -40
  9. package/cjs/context/database-transaction-context.js.map +0 -1
  10. package/cjs/contracts/database-driver.contract.d.ts +0 -450
  11. package/cjs/contracts/database-driver.contract.d.ts.map +0 -1
  12. package/cjs/contracts/database-id-generator.contract.d.ts +0 -109
  13. package/cjs/contracts/database-id-generator.contract.d.ts.map +0 -1
  14. package/cjs/contracts/database-remover.contract.d.ts +0 -104
  15. package/cjs/contracts/database-remover.contract.d.ts.map +0 -1
  16. package/cjs/contracts/database-restorer.contract.d.ts +0 -143
  17. package/cjs/contracts/database-restorer.contract.d.ts.map +0 -1
  18. package/cjs/contracts/database-writer.contract.d.ts +0 -119
  19. package/cjs/contracts/database-writer.contract.d.ts.map +0 -1
  20. package/cjs/contracts/driver-blueprint.contract.d.ts +0 -49
  21. package/cjs/contracts/driver-blueprint.contract.d.ts.map +0 -1
  22. package/cjs/contracts/index.d.ts +0 -10
  23. package/cjs/contracts/index.d.ts.map +0 -1
  24. package/cjs/contracts/migration-driver.contract.d.ts +0 -522
  25. package/cjs/contracts/migration-driver.contract.d.ts.map +0 -1
  26. package/cjs/contracts/query-builder.contract.d.ts +0 -1609
  27. package/cjs/contracts/query-builder.contract.d.ts.map +0 -1
  28. package/cjs/contracts/sync-adapter.contract.d.ts +0 -58
  29. package/cjs/contracts/sync-adapter.contract.d.ts.map +0 -1
  30. package/cjs/data-source/data-source-registry.d.ts +0 -108
  31. package/cjs/data-source/data-source-registry.d.ts.map +0 -1
  32. package/cjs/data-source/data-source-registry.js +0 -145
  33. package/cjs/data-source/data-source-registry.js.map +0 -1
  34. package/cjs/data-source/data-source.d.ts +0 -147
  35. package/cjs/data-source/data-source.d.ts.map +0 -1
  36. package/cjs/data-source/data-source.js +0 -83
  37. package/cjs/data-source/data-source.js.map +0 -1
  38. package/cjs/database-dirty-tracker.d.ts +0 -252
  39. package/cjs/database-dirty-tracker.d.ts.map +0 -1
  40. package/cjs/database-dirty-tracker.js +0 -386
  41. package/cjs/database-dirty-tracker.js.map +0 -1
  42. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  43. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  44. package/cjs/drivers/mongodb/mongodb-blueprint.js +0 -51
  45. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  46. package/cjs/drivers/mongodb/mongodb-driver.d.ts +0 -324
  47. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  48. package/cjs/drivers/mongodb/mongodb-driver.js +0 -799
  49. package/cjs/drivers/mongodb/mongodb-driver.js.map +0 -1
  50. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  51. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  52. package/cjs/drivers/mongodb/mongodb-id-generator.js +0 -149
  53. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  54. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  55. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  56. package/cjs/drivers/mongodb/mongodb-migration-driver.js +0 -666
  57. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  58. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  59. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  60. package/cjs/drivers/mongodb/mongodb-query-builder.js +0 -1988
  61. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  62. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  63. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  64. package/cjs/drivers/mongodb/mongodb-query-operations.js +0 -270
  65. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  66. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  67. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  68. package/cjs/drivers/mongodb/mongodb-query-parser.js +0 -1351
  69. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  70. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  71. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  72. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  73. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  74. package/cjs/drivers/mongodb/types.d.ts +0 -43
  75. package/cjs/drivers/mongodb/types.d.ts.map +0 -1
  76. package/cjs/drivers/postgres/index.d.ts +0 -16
  77. package/cjs/drivers/postgres/index.d.ts.map +0 -1
  78. package/cjs/drivers/postgres/postgres-blueprint.d.ts +0 -64
  79. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  80. package/cjs/drivers/postgres/postgres-blueprint.js +0 -121
  81. package/cjs/drivers/postgres/postgres-blueprint.js.map +0 -1
  82. package/cjs/drivers/postgres/postgres-dialect.d.ts +0 -136
  83. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  84. package/cjs/drivers/postgres/postgres-dialect.js +0 -268
  85. package/cjs/drivers/postgres/postgres-dialect.js.map +0 -1
  86. package/cjs/drivers/postgres/postgres-driver.d.ts +0 -432
  87. package/cjs/drivers/postgres/postgres-driver.d.ts.map +0 -1
  88. package/cjs/drivers/postgres/postgres-driver.js +0 -965
  89. package/cjs/drivers/postgres/postgres-driver.js.map +0 -1
  90. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  91. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  92. package/cjs/drivers/postgres/postgres-migration-driver.js +0 -900
  93. package/cjs/drivers/postgres/postgres-migration-driver.js.map +0 -1
  94. package/cjs/drivers/postgres/postgres-query-builder.d.ts +0 -254
  95. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  96. package/cjs/drivers/postgres/postgres-query-builder.js +0 -933
  97. package/cjs/drivers/postgres/postgres-query-builder.js.map +0 -1
  98. package/cjs/drivers/postgres/postgres-query-parser.d.ts +0 -328
  99. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  100. package/cjs/drivers/postgres/postgres-query-parser.js +0 -864
  101. package/cjs/drivers/postgres/postgres-query-parser.js.map +0 -1
  102. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  103. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  104. package/cjs/drivers/postgres/postgres-sql-serializer.js +0 -400
  105. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  106. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  107. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  108. package/cjs/drivers/postgres/postgres-sync-adapter.js +0 -197
  109. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  110. package/cjs/drivers/postgres/types.d.ts +0 -142
  111. package/cjs/drivers/postgres/types.d.ts.map +0 -1
  112. package/cjs/drivers/sql/index.d.ts +0 -10
  113. package/cjs/drivers/sql/index.d.ts.map +0 -1
  114. package/cjs/drivers/sql/sql-dialect.contract.d.ts +0 -204
  115. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  116. package/cjs/drivers/sql/sql-types.d.ts +0 -202
  117. package/cjs/drivers/sql/sql-types.d.ts.map +0 -1
  118. package/cjs/errors/missing-data-source.error.d.ts +0 -22
  119. package/cjs/errors/missing-data-source.error.d.ts.map +0 -1
  120. package/cjs/errors/missing-data-source.error.js +0 -29
  121. package/cjs/errors/missing-data-source.error.js.map +0 -1
  122. package/cjs/errors/transaction-rollback.error.d.ts +0 -20
  123. package/cjs/errors/transaction-rollback.error.d.ts.map +0 -1
  124. package/cjs/errors/transaction-rollback.error.js +0 -27
  125. package/cjs/errors/transaction-rollback.error.js.map +0 -1
  126. package/cjs/events/model-events.d.ts +0 -231
  127. package/cjs/events/model-events.d.ts.map +0 -1
  128. package/cjs/events/model-events.js +0 -259
  129. package/cjs/events/model-events.js.map +0 -1
  130. package/cjs/expressions/aggregate-expressions.d.ts +0 -215
  131. package/cjs/expressions/aggregate-expressions.d.ts.map +0 -1
  132. package/cjs/expressions/aggregate-expressions.js +0 -221
  133. package/cjs/expressions/aggregate-expressions.js.map +0 -1
  134. package/cjs/expressions/index.d.ts +0 -2
  135. package/cjs/expressions/index.d.ts.map +0 -1
  136. package/cjs/index.d.ts +0 -45
  137. package/cjs/index.d.ts.map +0 -1
  138. package/cjs/index.js +0 -1
  139. package/cjs/index.js.map +0 -1
  140. package/cjs/migration/column-builder.d.ts +0 -417
  141. package/cjs/migration/column-builder.d.ts.map +0 -1
  142. package/cjs/migration/column-builder.js +0 -586
  143. package/cjs/migration/column-builder.js.map +0 -1
  144. package/cjs/migration/column-helpers.d.ts +0 -275
  145. package/cjs/migration/column-helpers.d.ts.map +0 -1
  146. package/cjs/migration/column-helpers.js +0 -389
  147. package/cjs/migration/column-helpers.js.map +0 -1
  148. package/cjs/migration/foreign-key-builder.d.ts +0 -103
  149. package/cjs/migration/foreign-key-builder.d.ts.map +0 -1
  150. package/cjs/migration/foreign-key-builder.js +0 -121
  151. package/cjs/migration/foreign-key-builder.js.map +0 -1
  152. package/cjs/migration/index.d.ts +0 -7
  153. package/cjs/migration/index.d.ts.map +0 -1
  154. package/cjs/migration/migration-runner.d.ts +0 -278
  155. package/cjs/migration/migration-runner.d.ts.map +0 -1
  156. package/cjs/migration/migration-runner.js +0 -815
  157. package/cjs/migration/migration-runner.js.map +0 -1
  158. package/cjs/migration/migration.d.ts +0 -1992
  159. package/cjs/migration/migration.d.ts.map +0 -1
  160. package/cjs/migration/migration.js +0 -2162
  161. package/cjs/migration/migration.js.map +0 -1
  162. package/cjs/migration/sql-grammar.d.ts +0 -61
  163. package/cjs/migration/sql-grammar.d.ts.map +0 -1
  164. package/cjs/migration/sql-grammar.js +0 -164
  165. package/cjs/migration/sql-grammar.js.map +0 -1
  166. package/cjs/migration/sql-serializer.d.ts +0 -22
  167. package/cjs/migration/sql-serializer.d.ts.map +0 -1
  168. package/cjs/migration/sql-serializer.js +0 -26
  169. package/cjs/migration/sql-serializer.js.map +0 -1
  170. package/cjs/migration/types.d.ts +0 -155
  171. package/cjs/migration/types.d.ts.map +0 -1
  172. package/cjs/model/methods/accessor-methods.d.ts +0 -13
  173. package/cjs/model/methods/accessor-methods.d.ts.map +0 -1
  174. package/cjs/model/methods/accessor-methods.js +0 -51
  175. package/cjs/model/methods/accessor-methods.js.map +0 -1
  176. package/cjs/model/methods/delete-methods.d.ts +0 -10
  177. package/cjs/model/methods/delete-methods.d.ts.map +0 -1
  178. package/cjs/model/methods/delete-methods.js +0 -10
  179. package/cjs/model/methods/delete-methods.js.map +0 -1
  180. package/cjs/model/methods/dirty-methods.d.ts +0 -10
  181. package/cjs/model/methods/dirty-methods.d.ts.map +0 -1
  182. package/cjs/model/methods/dirty-methods.js +0 -15
  183. package/cjs/model/methods/dirty-methods.js.map +0 -1
  184. package/cjs/model/methods/hydration-methods.d.ts +0 -10
  185. package/cjs/model/methods/hydration-methods.d.ts.map +0 -1
  186. package/cjs/model/methods/hydration-methods.js +0 -57
  187. package/cjs/model/methods/hydration-methods.js.map +0 -1
  188. package/cjs/model/methods/instance-event-methods.d.ts +0 -7
  189. package/cjs/model/methods/instance-event-methods.d.ts.map +0 -1
  190. package/cjs/model/methods/instance-event-methods.js +0 -15
  191. package/cjs/model/methods/instance-event-methods.js.map +0 -1
  192. package/cjs/model/methods/meta-methods.d.ts +0 -7
  193. package/cjs/model/methods/meta-methods.d.ts.map +0 -1
  194. package/cjs/model/methods/meta-methods.js +0 -78
  195. package/cjs/model/methods/meta-methods.js.map +0 -1
  196. package/cjs/model/methods/query-methods.d.ts +0 -24
  197. package/cjs/model/methods/query-methods.d.ts.map +0 -1
  198. package/cjs/model/methods/query-methods.js +0 -161
  199. package/cjs/model/methods/query-methods.js.map +0 -1
  200. package/cjs/model/methods/restore-methods.d.ts +0 -10
  201. package/cjs/model/methods/restore-methods.d.ts.map +0 -1
  202. package/cjs/model/methods/restore-methods.js +0 -13
  203. package/cjs/model/methods/restore-methods.js.map +0 -1
  204. package/cjs/model/methods/scope-methods.d.ts +0 -7
  205. package/cjs/model/methods/scope-methods.d.ts.map +0 -1
  206. package/cjs/model/methods/scope-methods.js +0 -15
  207. package/cjs/model/methods/scope-methods.js.map +0 -1
  208. package/cjs/model/methods/serialization-methods.d.ts +0 -3
  209. package/cjs/model/methods/serialization-methods.d.ts.map +0 -1
  210. package/cjs/model/methods/serialization-methods.js +0 -27
  211. package/cjs/model/methods/serialization-methods.js.map +0 -1
  212. package/cjs/model/methods/static-event-methods.d.ts +0 -9
  213. package/cjs/model/methods/static-event-methods.d.ts.map +0 -1
  214. package/cjs/model/methods/static-event-methods.js +0 -29
  215. package/cjs/model/methods/static-event-methods.js.map +0 -1
  216. package/cjs/model/methods/write-methods.d.ts +0 -10
  217. package/cjs/model/methods/write-methods.d.ts.map +0 -1
  218. package/cjs/model/methods/write-methods.js +0 -52
  219. package/cjs/model/methods/write-methods.js.map +0 -1
  220. package/cjs/model/model.d.ts +0 -1650
  221. package/cjs/model/model.d.ts.map +0 -1
  222. package/cjs/model/model.js +0 -1657
  223. package/cjs/model/model.js.map +0 -1
  224. package/cjs/model/model.types.d.ts +0 -44
  225. package/cjs/model/model.types.d.ts.map +0 -1
  226. package/cjs/model/register-model.d.ts +0 -81
  227. package/cjs/model/register-model.d.ts.map +0 -1
  228. package/cjs/model/register-model.js +0 -94
  229. package/cjs/model/register-model.js.map +0 -1
  230. package/cjs/query-builder/query-builder.d.ts +0 -556
  231. package/cjs/query-builder/query-builder.d.ts.map +0 -1
  232. package/cjs/query-builder/query-builder.js +0 -1070
  233. package/cjs/query-builder/query-builder.js.map +0 -1
  234. package/cjs/relations/helpers.d.ts +0 -156
  235. package/cjs/relations/helpers.d.ts.map +0 -1
  236. package/cjs/relations/helpers.js +0 -201
  237. package/cjs/relations/helpers.js.map +0 -1
  238. package/cjs/relations/index.d.ts +0 -35
  239. package/cjs/relations/index.d.ts.map +0 -1
  240. package/cjs/relations/pivot-operations.d.ts +0 -160
  241. package/cjs/relations/pivot-operations.d.ts.map +0 -1
  242. package/cjs/relations/pivot-operations.js +0 -293
  243. package/cjs/relations/pivot-operations.js.map +0 -1
  244. package/cjs/relations/relation-hydrator.d.ts +0 -68
  245. package/cjs/relations/relation-hydrator.d.ts.map +0 -1
  246. package/cjs/relations/relation-hydrator.js +0 -81
  247. package/cjs/relations/relation-hydrator.js.map +0 -1
  248. package/cjs/relations/relation-loader.d.ts +0 -194
  249. package/cjs/relations/relation-loader.d.ts.map +0 -1
  250. package/cjs/relations/relation-loader.js +0 -466
  251. package/cjs/relations/relation-loader.js.map +0 -1
  252. package/cjs/relations/types.d.ts +0 -306
  253. package/cjs/relations/types.d.ts.map +0 -1
  254. package/cjs/remover/database-remover.d.ts +0 -100
  255. package/cjs/remover/database-remover.d.ts.map +0 -1
  256. package/cjs/remover/database-remover.js +0 -214
  257. package/cjs/remover/database-remover.js.map +0 -1
  258. package/cjs/restorer/database-restorer.d.ts +0 -131
  259. package/cjs/restorer/database-restorer.d.ts.map +0 -1
  260. package/cjs/restorer/database-restorer.js +0 -434
  261. package/cjs/restorer/database-restorer.js.map +0 -1
  262. package/cjs/sql-database-dirty-tracker.d.ts +0 -13
  263. package/cjs/sql-database-dirty-tracker.d.ts.map +0 -1
  264. package/cjs/sql-database-dirty-tracker.js +0 -14
  265. package/cjs/sql-database-dirty-tracker.js.map +0 -1
  266. package/cjs/sync/index.d.ts +0 -12
  267. package/cjs/sync/index.d.ts.map +0 -1
  268. package/cjs/sync/model-events.d.ts +0 -62
  269. package/cjs/sync/model-events.d.ts.map +0 -1
  270. package/cjs/sync/model-events.js +0 -49
  271. package/cjs/sync/model-events.js.map +0 -1
  272. package/cjs/sync/model-sync-operation.d.ts +0 -163
  273. package/cjs/sync/model-sync-operation.d.ts.map +0 -1
  274. package/cjs/sync/model-sync-operation.js +0 -292
  275. package/cjs/sync/model-sync-operation.js.map +0 -1
  276. package/cjs/sync/model-sync.d.ts +0 -130
  277. package/cjs/sync/model-sync.d.ts.map +0 -1
  278. package/cjs/sync/model-sync.js +0 -178
  279. package/cjs/sync/model-sync.js.map +0 -1
  280. package/cjs/sync/sync-context.d.ts +0 -70
  281. package/cjs/sync/sync-context.d.ts.map +0 -1
  282. package/cjs/sync/sync-context.js +0 -101
  283. package/cjs/sync/sync-context.js.map +0 -1
  284. package/cjs/sync/sync-manager.d.ts +0 -213
  285. package/cjs/sync/sync-manager.d.ts.map +0 -1
  286. package/cjs/sync/sync-manager.js +0 -689
  287. package/cjs/sync/sync-manager.js.map +0 -1
  288. package/cjs/sync/types.d.ts +0 -289
  289. package/cjs/sync/types.d.ts.map +0 -1
  290. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  291. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  292. package/cjs/types.d.ts +0 -371
  293. package/cjs/types.d.ts.map +0 -1
  294. package/cjs/utils/connect-to-database.d.ts +0 -300
  295. package/cjs/utils/connect-to-database.d.ts.map +0 -1
  296. package/cjs/utils/connect-to-database.js +0 -128
  297. package/cjs/utils/connect-to-database.js.map +0 -1
  298. package/cjs/utils/database-writer.utils.d.ts +0 -15
  299. package/cjs/utils/database-writer.utils.d.ts.map +0 -1
  300. package/cjs/utils/database-writer.utils.js +0 -14
  301. package/cjs/utils/database-writer.utils.js.map +0 -1
  302. package/cjs/utils/define-model.js +0 -100
  303. package/cjs/utils/define-model.js.map +0 -1
  304. package/cjs/utils/is-valid-date-value.d.ts +0 -5
  305. package/cjs/utils/is-valid-date-value.d.ts.map +0 -1
  306. package/cjs/utils/is-valid-date-value.js +0 -25
  307. package/cjs/utils/is-valid-date-value.js.map +0 -1
  308. package/cjs/utils/once-connected.d.ts +0 -146
  309. package/cjs/utils/once-connected.d.ts.map +0 -1
  310. package/cjs/utils/once-connected.js +0 -251
  311. package/cjs/utils/once-connected.js.map +0 -1
  312. package/cjs/validation/database-seal-plugins.d.ts +0 -12
  313. package/cjs/validation/database-seal-plugins.d.ts.map +0 -1
  314. package/cjs/validation/database-seal-plugins.js +0 -1
  315. package/cjs/validation/database-seal-plugins.js.map +0 -1
  316. package/cjs/validation/database-writer-validation-error.d.ts +0 -97
  317. package/cjs/validation/database-writer-validation-error.d.ts.map +0 -1
  318. package/cjs/validation/database-writer-validation-error.js +0 -160
  319. package/cjs/validation/database-writer-validation-error.js.map +0 -1
  320. package/cjs/validation/index.d.ts +0 -3
  321. package/cjs/validation/index.d.ts.map +0 -1
  322. package/cjs/validation/mutators/embed-mutator.d.ts +0 -9
  323. package/cjs/validation/mutators/embed-mutator.d.ts.map +0 -1
  324. package/cjs/validation/mutators/embed-mutator.js +0 -33
  325. package/cjs/validation/mutators/embed-mutator.js.map +0 -1
  326. package/cjs/validation/plugins/embed-validator-plugin.d.ts +0 -24
  327. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  328. package/cjs/validation/plugins/embed-validator-plugin.js +0 -18
  329. package/cjs/validation/plugins/embed-validator-plugin.js.map +0 -1
  330. package/cjs/validation/rules/database-model-rule.d.ts +0 -7
  331. package/cjs/validation/rules/database-model-rule.d.ts.map +0 -1
  332. package/cjs/validation/rules/database-model-rule.js +0 -27
  333. package/cjs/validation/rules/database-model-rule.js.map +0 -1
  334. package/cjs/validation/transformers/embed-model-transformer.d.ts +0 -3
  335. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  336. package/cjs/validation/transformers/embed-model-transformer.js +0 -18
  337. package/cjs/validation/transformers/embed-model-transformer.js.map +0 -1
  338. package/cjs/validation/validators/embed-validator.d.ts +0 -21
  339. package/cjs/validation/validators/embed-validator.d.ts.map +0 -1
  340. package/cjs/validation/validators/embed-validator.js +0 -43
  341. package/cjs/validation/validators/embed-validator.js.map +0 -1
  342. package/cjs/writer/database-writer.d.ts +0 -181
  343. package/cjs/writer/database-writer.d.ts.map +0 -1
  344. package/cjs/writer/database-writer.js +0 -407
  345. package/cjs/writer/database-writer.js.map +0 -1
  346. package/esm/context/database-data-source-context.d.ts +0 -29
  347. package/esm/context/database-data-source-context.d.ts.map +0 -1
  348. package/esm/context/database-data-source-context.js +0 -28
  349. package/esm/context/database-data-source-context.js.map +0 -1
  350. package/esm/context/database-transaction-context.d.ts +0 -35
  351. package/esm/context/database-transaction-context.d.ts.map +0 -1
  352. package/esm/context/database-transaction-context.js +0 -40
  353. package/esm/context/database-transaction-context.js.map +0 -1
  354. package/esm/contracts/database-driver.contract.d.ts +0 -450
  355. package/esm/contracts/database-driver.contract.d.ts.map +0 -1
  356. package/esm/contracts/database-id-generator.contract.d.ts +0 -109
  357. package/esm/contracts/database-id-generator.contract.d.ts.map +0 -1
  358. package/esm/contracts/database-remover.contract.d.ts +0 -104
  359. package/esm/contracts/database-remover.contract.d.ts.map +0 -1
  360. package/esm/contracts/database-restorer.contract.d.ts +0 -143
  361. package/esm/contracts/database-restorer.contract.d.ts.map +0 -1
  362. package/esm/contracts/database-writer.contract.d.ts +0 -119
  363. package/esm/contracts/database-writer.contract.d.ts.map +0 -1
  364. package/esm/contracts/driver-blueprint.contract.d.ts +0 -49
  365. package/esm/contracts/driver-blueprint.contract.d.ts.map +0 -1
  366. package/esm/contracts/index.d.ts +0 -10
  367. package/esm/contracts/index.d.ts.map +0 -1
  368. package/esm/contracts/migration-driver.contract.d.ts +0 -522
  369. package/esm/contracts/migration-driver.contract.d.ts.map +0 -1
  370. package/esm/contracts/query-builder.contract.d.ts +0 -1609
  371. package/esm/contracts/query-builder.contract.d.ts.map +0 -1
  372. package/esm/contracts/sync-adapter.contract.d.ts +0 -58
  373. package/esm/contracts/sync-adapter.contract.d.ts.map +0 -1
  374. package/esm/data-source/data-source-registry.d.ts +0 -108
  375. package/esm/data-source/data-source-registry.d.ts.map +0 -1
  376. package/esm/data-source/data-source-registry.js +0 -145
  377. package/esm/data-source/data-source-registry.js.map +0 -1
  378. package/esm/data-source/data-source.d.ts +0 -147
  379. package/esm/data-source/data-source.d.ts.map +0 -1
  380. package/esm/data-source/data-source.js +0 -83
  381. package/esm/data-source/data-source.js.map +0 -1
  382. package/esm/database-dirty-tracker.d.ts +0 -252
  383. package/esm/database-dirty-tracker.d.ts.map +0 -1
  384. package/esm/database-dirty-tracker.js +0 -386
  385. package/esm/database-dirty-tracker.js.map +0 -1
  386. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
  387. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
  388. package/esm/drivers/mongodb/mongodb-blueprint.js +0 -51
  389. package/esm/drivers/mongodb/mongodb-blueprint.js.map +0 -1
  390. package/esm/drivers/mongodb/mongodb-driver.d.ts +0 -324
  391. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
  392. package/esm/drivers/mongodb/mongodb-driver.js +0 -799
  393. package/esm/drivers/mongodb/mongodb-driver.js.map +0 -1
  394. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
  395. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
  396. package/esm/drivers/mongodb/mongodb-id-generator.js +0 -149
  397. package/esm/drivers/mongodb/mongodb-id-generator.js.map +0 -1
  398. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
  399. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
  400. package/esm/drivers/mongodb/mongodb-migration-driver.js +0 -666
  401. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
  402. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
  403. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
  404. package/esm/drivers/mongodb/mongodb-query-builder.js +0 -1988
  405. package/esm/drivers/mongodb/mongodb-query-builder.js.map +0 -1
  406. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
  407. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
  408. package/esm/drivers/mongodb/mongodb-query-operations.js +0 -270
  409. package/esm/drivers/mongodb/mongodb-query-operations.js.map +0 -1
  410. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
  411. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
  412. package/esm/drivers/mongodb/mongodb-query-parser.js +0 -1351
  413. package/esm/drivers/mongodb/mongodb-query-parser.js.map +0 -1
  414. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
  415. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
  416. package/esm/drivers/mongodb/mongodb-sync-adapter.js +0 -146
  417. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
  418. package/esm/drivers/mongodb/types.d.ts +0 -43
  419. package/esm/drivers/mongodb/types.d.ts.map +0 -1
  420. package/esm/drivers/postgres/index.d.ts +0 -16
  421. package/esm/drivers/postgres/index.d.ts.map +0 -1
  422. package/esm/drivers/postgres/postgres-blueprint.d.ts +0 -64
  423. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
  424. package/esm/drivers/postgres/postgres-blueprint.js +0 -121
  425. package/esm/drivers/postgres/postgres-blueprint.js.map +0 -1
  426. package/esm/drivers/postgres/postgres-dialect.d.ts +0 -136
  427. package/esm/drivers/postgres/postgres-dialect.d.ts.map +0 -1
  428. package/esm/drivers/postgres/postgres-dialect.js +0 -268
  429. package/esm/drivers/postgres/postgres-dialect.js.map +0 -1
  430. package/esm/drivers/postgres/postgres-driver.d.ts +0 -432
  431. package/esm/drivers/postgres/postgres-driver.d.ts.map +0 -1
  432. package/esm/drivers/postgres/postgres-driver.js +0 -965
  433. package/esm/drivers/postgres/postgres-driver.js.map +0 -1
  434. package/esm/drivers/postgres/postgres-migration-driver.d.ts +0 -397
  435. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
  436. package/esm/drivers/postgres/postgres-migration-driver.js +0 -900
  437. package/esm/drivers/postgres/postgres-migration-driver.js.map +0 -1
  438. package/esm/drivers/postgres/postgres-query-builder.d.ts +0 -254
  439. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
  440. package/esm/drivers/postgres/postgres-query-builder.js +0 -933
  441. package/esm/drivers/postgres/postgres-query-builder.js.map +0 -1
  442. package/esm/drivers/postgres/postgres-query-parser.d.ts +0 -328
  443. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
  444. package/esm/drivers/postgres/postgres-query-parser.js +0 -864
  445. package/esm/drivers/postgres/postgres-query-parser.js.map +0 -1
  446. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
  447. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
  448. package/esm/drivers/postgres/postgres-sql-serializer.js +0 -400
  449. package/esm/drivers/postgres/postgres-sql-serializer.js.map +0 -1
  450. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
  451. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
  452. package/esm/drivers/postgres/postgres-sync-adapter.js +0 -197
  453. package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
  454. package/esm/drivers/postgres/types.d.ts +0 -142
  455. package/esm/drivers/postgres/types.d.ts.map +0 -1
  456. package/esm/drivers/sql/index.d.ts +0 -10
  457. package/esm/drivers/sql/index.d.ts.map +0 -1
  458. package/esm/drivers/sql/sql-dialect.contract.d.ts +0 -204
  459. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
  460. package/esm/drivers/sql/sql-types.d.ts +0 -202
  461. package/esm/drivers/sql/sql-types.d.ts.map +0 -1
  462. package/esm/errors/missing-data-source.error.d.ts +0 -22
  463. package/esm/errors/missing-data-source.error.d.ts.map +0 -1
  464. package/esm/errors/missing-data-source.error.js +0 -29
  465. package/esm/errors/missing-data-source.error.js.map +0 -1
  466. package/esm/errors/transaction-rollback.error.d.ts +0 -20
  467. package/esm/errors/transaction-rollback.error.d.ts.map +0 -1
  468. package/esm/errors/transaction-rollback.error.js +0 -27
  469. package/esm/errors/transaction-rollback.error.js.map +0 -1
  470. package/esm/events/model-events.d.ts +0 -231
  471. package/esm/events/model-events.d.ts.map +0 -1
  472. package/esm/events/model-events.js +0 -259
  473. package/esm/events/model-events.js.map +0 -1
  474. package/esm/expressions/aggregate-expressions.d.ts +0 -215
  475. package/esm/expressions/aggregate-expressions.d.ts.map +0 -1
  476. package/esm/expressions/aggregate-expressions.js +0 -221
  477. package/esm/expressions/aggregate-expressions.js.map +0 -1
  478. package/esm/expressions/index.d.ts +0 -2
  479. package/esm/expressions/index.d.ts.map +0 -1
  480. package/esm/index.d.ts +0 -45
  481. package/esm/index.d.ts.map +0 -1
  482. package/esm/index.js +0 -1
  483. package/esm/index.js.map +0 -1
  484. package/esm/migration/column-builder.d.ts +0 -417
  485. package/esm/migration/column-builder.d.ts.map +0 -1
  486. package/esm/migration/column-builder.js +0 -586
  487. package/esm/migration/column-builder.js.map +0 -1
  488. package/esm/migration/column-helpers.d.ts +0 -275
  489. package/esm/migration/column-helpers.d.ts.map +0 -1
  490. package/esm/migration/column-helpers.js +0 -389
  491. package/esm/migration/column-helpers.js.map +0 -1
  492. package/esm/migration/foreign-key-builder.d.ts +0 -103
  493. package/esm/migration/foreign-key-builder.d.ts.map +0 -1
  494. package/esm/migration/foreign-key-builder.js +0 -121
  495. package/esm/migration/foreign-key-builder.js.map +0 -1
  496. package/esm/migration/index.d.ts +0 -7
  497. package/esm/migration/index.d.ts.map +0 -1
  498. package/esm/migration/migration-runner.d.ts +0 -278
  499. package/esm/migration/migration-runner.d.ts.map +0 -1
  500. package/esm/migration/migration-runner.js +0 -815
  501. package/esm/migration/migration-runner.js.map +0 -1
  502. package/esm/migration/migration.d.ts +0 -1992
  503. package/esm/migration/migration.d.ts.map +0 -1
  504. package/esm/migration/migration.js +0 -2162
  505. package/esm/migration/migration.js.map +0 -1
  506. package/esm/migration/sql-grammar.d.ts +0 -61
  507. package/esm/migration/sql-grammar.d.ts.map +0 -1
  508. package/esm/migration/sql-grammar.js +0 -164
  509. package/esm/migration/sql-grammar.js.map +0 -1
  510. package/esm/migration/sql-serializer.d.ts +0 -22
  511. package/esm/migration/sql-serializer.d.ts.map +0 -1
  512. package/esm/migration/sql-serializer.js +0 -26
  513. package/esm/migration/sql-serializer.js.map +0 -1
  514. package/esm/migration/types.d.ts +0 -155
  515. package/esm/migration/types.d.ts.map +0 -1
  516. package/esm/model/methods/accessor-methods.d.ts +0 -13
  517. package/esm/model/methods/accessor-methods.d.ts.map +0 -1
  518. package/esm/model/methods/accessor-methods.js +0 -51
  519. package/esm/model/methods/accessor-methods.js.map +0 -1
  520. package/esm/model/methods/delete-methods.d.ts +0 -10
  521. package/esm/model/methods/delete-methods.d.ts.map +0 -1
  522. package/esm/model/methods/delete-methods.js +0 -10
  523. package/esm/model/methods/delete-methods.js.map +0 -1
  524. package/esm/model/methods/dirty-methods.d.ts +0 -10
  525. package/esm/model/methods/dirty-methods.d.ts.map +0 -1
  526. package/esm/model/methods/dirty-methods.js +0 -15
  527. package/esm/model/methods/dirty-methods.js.map +0 -1
  528. package/esm/model/methods/hydration-methods.d.ts +0 -10
  529. package/esm/model/methods/hydration-methods.d.ts.map +0 -1
  530. package/esm/model/methods/hydration-methods.js +0 -57
  531. package/esm/model/methods/hydration-methods.js.map +0 -1
  532. package/esm/model/methods/instance-event-methods.d.ts +0 -7
  533. package/esm/model/methods/instance-event-methods.d.ts.map +0 -1
  534. package/esm/model/methods/instance-event-methods.js +0 -15
  535. package/esm/model/methods/instance-event-methods.js.map +0 -1
  536. package/esm/model/methods/meta-methods.d.ts +0 -7
  537. package/esm/model/methods/meta-methods.d.ts.map +0 -1
  538. package/esm/model/methods/meta-methods.js +0 -78
  539. package/esm/model/methods/meta-methods.js.map +0 -1
  540. package/esm/model/methods/query-methods.d.ts +0 -24
  541. package/esm/model/methods/query-methods.d.ts.map +0 -1
  542. package/esm/model/methods/query-methods.js +0 -161
  543. package/esm/model/methods/query-methods.js.map +0 -1
  544. package/esm/model/methods/restore-methods.d.ts +0 -10
  545. package/esm/model/methods/restore-methods.d.ts.map +0 -1
  546. package/esm/model/methods/restore-methods.js +0 -13
  547. package/esm/model/methods/restore-methods.js.map +0 -1
  548. package/esm/model/methods/scope-methods.d.ts +0 -7
  549. package/esm/model/methods/scope-methods.d.ts.map +0 -1
  550. package/esm/model/methods/scope-methods.js +0 -15
  551. package/esm/model/methods/scope-methods.js.map +0 -1
  552. package/esm/model/methods/serialization-methods.d.ts +0 -3
  553. package/esm/model/methods/serialization-methods.d.ts.map +0 -1
  554. package/esm/model/methods/serialization-methods.js +0 -27
  555. package/esm/model/methods/serialization-methods.js.map +0 -1
  556. package/esm/model/methods/static-event-methods.d.ts +0 -9
  557. package/esm/model/methods/static-event-methods.d.ts.map +0 -1
  558. package/esm/model/methods/static-event-methods.js +0 -29
  559. package/esm/model/methods/static-event-methods.js.map +0 -1
  560. package/esm/model/methods/write-methods.d.ts +0 -10
  561. package/esm/model/methods/write-methods.d.ts.map +0 -1
  562. package/esm/model/methods/write-methods.js +0 -52
  563. package/esm/model/methods/write-methods.js.map +0 -1
  564. package/esm/model/model.d.ts +0 -1650
  565. package/esm/model/model.d.ts.map +0 -1
  566. package/esm/model/model.js +0 -1657
  567. package/esm/model/model.js.map +0 -1
  568. package/esm/model/model.types.d.ts +0 -44
  569. package/esm/model/model.types.d.ts.map +0 -1
  570. package/esm/model/register-model.d.ts +0 -81
  571. package/esm/model/register-model.d.ts.map +0 -1
  572. package/esm/model/register-model.js +0 -94
  573. package/esm/model/register-model.js.map +0 -1
  574. package/esm/query-builder/query-builder.d.ts +0 -556
  575. package/esm/query-builder/query-builder.d.ts.map +0 -1
  576. package/esm/query-builder/query-builder.js +0 -1070
  577. package/esm/query-builder/query-builder.js.map +0 -1
  578. package/esm/relations/helpers.d.ts +0 -156
  579. package/esm/relations/helpers.d.ts.map +0 -1
  580. package/esm/relations/helpers.js +0 -201
  581. package/esm/relations/helpers.js.map +0 -1
  582. package/esm/relations/index.d.ts +0 -35
  583. package/esm/relations/index.d.ts.map +0 -1
  584. package/esm/relations/pivot-operations.d.ts +0 -160
  585. package/esm/relations/pivot-operations.d.ts.map +0 -1
  586. package/esm/relations/pivot-operations.js +0 -293
  587. package/esm/relations/pivot-operations.js.map +0 -1
  588. package/esm/relations/relation-hydrator.d.ts +0 -68
  589. package/esm/relations/relation-hydrator.d.ts.map +0 -1
  590. package/esm/relations/relation-hydrator.js +0 -81
  591. package/esm/relations/relation-hydrator.js.map +0 -1
  592. package/esm/relations/relation-loader.d.ts +0 -194
  593. package/esm/relations/relation-loader.d.ts.map +0 -1
  594. package/esm/relations/relation-loader.js +0 -466
  595. package/esm/relations/relation-loader.js.map +0 -1
  596. package/esm/relations/types.d.ts +0 -306
  597. package/esm/relations/types.d.ts.map +0 -1
  598. package/esm/remover/database-remover.d.ts +0 -100
  599. package/esm/remover/database-remover.d.ts.map +0 -1
  600. package/esm/remover/database-remover.js +0 -214
  601. package/esm/remover/database-remover.js.map +0 -1
  602. package/esm/restorer/database-restorer.d.ts +0 -131
  603. package/esm/restorer/database-restorer.d.ts.map +0 -1
  604. package/esm/restorer/database-restorer.js +0 -434
  605. package/esm/restorer/database-restorer.js.map +0 -1
  606. package/esm/sql-database-dirty-tracker.d.ts +0 -13
  607. package/esm/sql-database-dirty-tracker.d.ts.map +0 -1
  608. package/esm/sql-database-dirty-tracker.js +0 -14
  609. package/esm/sql-database-dirty-tracker.js.map +0 -1
  610. package/esm/sync/index.d.ts +0 -12
  611. package/esm/sync/index.d.ts.map +0 -1
  612. package/esm/sync/model-events.d.ts +0 -62
  613. package/esm/sync/model-events.d.ts.map +0 -1
  614. package/esm/sync/model-events.js +0 -49
  615. package/esm/sync/model-events.js.map +0 -1
  616. package/esm/sync/model-sync-operation.d.ts +0 -163
  617. package/esm/sync/model-sync-operation.d.ts.map +0 -1
  618. package/esm/sync/model-sync-operation.js +0 -292
  619. package/esm/sync/model-sync-operation.js.map +0 -1
  620. package/esm/sync/model-sync.d.ts +0 -130
  621. package/esm/sync/model-sync.d.ts.map +0 -1
  622. package/esm/sync/model-sync.js +0 -178
  623. package/esm/sync/model-sync.js.map +0 -1
  624. package/esm/sync/sync-context.d.ts +0 -70
  625. package/esm/sync/sync-context.d.ts.map +0 -1
  626. package/esm/sync/sync-context.js +0 -101
  627. package/esm/sync/sync-context.js.map +0 -1
  628. package/esm/sync/sync-manager.d.ts +0 -213
  629. package/esm/sync/sync-manager.d.ts.map +0 -1
  630. package/esm/sync/sync-manager.js +0 -689
  631. package/esm/sync/sync-manager.js.map +0 -1
  632. package/esm/sync/types.d.ts +0 -289
  633. package/esm/sync/types.d.ts.map +0 -1
  634. package/esm/test-migrations/test-enhanced-features.migration.d.ts +0 -15
  635. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
  636. package/esm/types.d.ts +0 -371
  637. package/esm/types.d.ts.map +0 -1
  638. package/esm/utils/connect-to-database.d.ts +0 -300
  639. package/esm/utils/connect-to-database.d.ts.map +0 -1
  640. package/esm/utils/connect-to-database.js +0 -128
  641. package/esm/utils/connect-to-database.js.map +0 -1
  642. package/esm/utils/database-writer.utils.d.ts +0 -15
  643. package/esm/utils/database-writer.utils.d.ts.map +0 -1
  644. package/esm/utils/database-writer.utils.js +0 -14
  645. package/esm/utils/database-writer.utils.js.map +0 -1
  646. package/esm/utils/define-model.js +0 -100
  647. package/esm/utils/define-model.js.map +0 -1
  648. package/esm/utils/is-valid-date-value.d.ts +0 -5
  649. package/esm/utils/is-valid-date-value.d.ts.map +0 -1
  650. package/esm/utils/is-valid-date-value.js +0 -25
  651. package/esm/utils/is-valid-date-value.js.map +0 -1
  652. package/esm/utils/once-connected.d.ts +0 -146
  653. package/esm/utils/once-connected.d.ts.map +0 -1
  654. package/esm/utils/once-connected.js +0 -251
  655. package/esm/utils/once-connected.js.map +0 -1
  656. package/esm/validation/database-seal-plugins.d.ts +0 -12
  657. package/esm/validation/database-seal-plugins.d.ts.map +0 -1
  658. package/esm/validation/database-seal-plugins.js +0 -1
  659. package/esm/validation/database-seal-plugins.js.map +0 -1
  660. package/esm/validation/database-writer-validation-error.d.ts +0 -97
  661. package/esm/validation/database-writer-validation-error.d.ts.map +0 -1
  662. package/esm/validation/database-writer-validation-error.js +0 -160
  663. package/esm/validation/database-writer-validation-error.js.map +0 -1
  664. package/esm/validation/index.d.ts +0 -3
  665. package/esm/validation/index.d.ts.map +0 -1
  666. package/esm/validation/mutators/embed-mutator.d.ts +0 -9
  667. package/esm/validation/mutators/embed-mutator.d.ts.map +0 -1
  668. package/esm/validation/mutators/embed-mutator.js +0 -33
  669. package/esm/validation/mutators/embed-mutator.js.map +0 -1
  670. package/esm/validation/plugins/embed-validator-plugin.d.ts +0 -24
  671. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
  672. package/esm/validation/plugins/embed-validator-plugin.js +0 -18
  673. package/esm/validation/plugins/embed-validator-plugin.js.map +0 -1
  674. package/esm/validation/rules/database-model-rule.d.ts +0 -7
  675. package/esm/validation/rules/database-model-rule.d.ts.map +0 -1
  676. package/esm/validation/rules/database-model-rule.js +0 -27
  677. package/esm/validation/rules/database-model-rule.js.map +0 -1
  678. package/esm/validation/transformers/embed-model-transformer.d.ts +0 -3
  679. package/esm/validation/transformers/embed-model-transformer.d.ts.map +0 -1
  680. package/esm/validation/transformers/embed-model-transformer.js +0 -18
  681. package/esm/validation/transformers/embed-model-transformer.js.map +0 -1
  682. package/esm/validation/validators/embed-validator.d.ts +0 -21
  683. package/esm/validation/validators/embed-validator.d.ts.map +0 -1
  684. package/esm/validation/validators/embed-validator.js +0 -43
  685. package/esm/validation/validators/embed-validator.js.map +0 -1
  686. package/esm/writer/database-writer.d.ts +0 -181
  687. package/esm/writer/database-writer.d.ts.map +0 -1
  688. package/esm/writer/database-writer.js +0 -407
  689. package/esm/writer/database-writer.js.map +0 -1
@@ -1,965 +0,0 @@
1
- 'use strict';var copper=require('@mongez/copper'),logger=require('@warlock.js/logger'),databaseTransactionContext=require('../../context/database-transaction-context.js'),transactionRollback_error=require('../../errors/transaction-rollback.error.js'),sqlDatabaseDirtyTracker=require('../../sql-database-dirty-tracker.js'),isValidDateValue=require('../../utils/is-valid-date-value.js'),postgresBlueprint=require('./postgres-blueprint.js'),postgresDialect=require('./postgres-dialect.js'),postgresMigrationDriver=require('./postgres-migration-driver.js'),postgresQueryBuilder=require('./postgres-query-builder.js'),postgresSqlSerializer=require('./postgres-sql-serializer.js'),postgresSyncAdapter=require('./postgres-sync-adapter.js');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}/**
2
- * PostgreSQL Driver
3
- *
4
- * Main driver implementation for PostgreSQL database operations.
5
- * Implements the DriverContract interface to provide a unified API
6
- * for CRUD operations, transactions, and query building.
7
- *
8
- * Uses the `pg` package for database connectivity with connection pooling.
9
- *
10
- * @module cascade/drivers/postgres
11
- */
12
- /**
13
- * Cached pg module reference.
14
- */
15
- let pgModule;
16
- /**
17
- * Lazily load the pg package.
18
- *
19
- * @returns The pg module
20
- * @throws Error if pg is not installed
21
- */
22
- async function loadPg() {
23
- if (pgModule) {
24
- return pgModule;
25
- }
26
- try {
27
- pgModule = await Promise.resolve().then(function(){return /*#__PURE__*/_interopNamespace(require('pg'))});
28
- return pgModule;
29
- }
30
- catch {
31
- throw new Error('The "pg" package is required for PostgreSQL support. ' + "Please install it: npm install pg");
32
- }
33
- }
34
- /**
35
- * PostgreSQL database driver implementing the Cascade DriverContract.
36
- *
37
- * Provides connection pooling, CRUD operations, transactions, and
38
- * integration with Cascade's query builder and migration systems.
39
- *
40
- * @example
41
- * ```typescript
42
- * const driver = new PostgresDriver({
43
- * host: 'localhost',
44
- * port: 5432,
45
- * database: 'myapp',
46
- * user: 'postgres',
47
- * password: 'secret'
48
- * });
49
- *
50
- * await driver.connect();
51
- *
52
- * // Insert a document
53
- * const result = await driver.insert('users', { name: 'Alice', email: 'alice@example.com' });
54
- *
55
- * // Query using the query builder
56
- * const users = await driver.queryBuilder('users')
57
- * .where('name', 'Alice')
58
- * .get();
59
- *
60
- * await driver.disconnect();
61
- * ```
62
- */
63
- class PostgresDriver {
64
- config;
65
- /**
66
- * Driver name identifier.
67
- */
68
- name = "postgres";
69
- /**
70
- * SQL dialect for PostgreSQL-specific syntax.
71
- */
72
- dialect = new postgresDialect.PostgresDialect();
73
- /**
74
- * PostgreSQL driver model defaults.
75
- *
76
- * PostgreSQL follows SQL conventions:
77
- * - snake_case naming for columns (created_at, updated_at, deleted_at)
78
- * - Native AUTO_INCREMENT for IDs (no manual generation)
79
- * - Timestamps enabled by default
80
- * - Permanent delete strategy (hard deletes)
81
- */
82
- modelDefaults = {
83
- namingConvention: "snake_case",
84
- createdAtColumn: "created_at",
85
- updatedAtColumn: "updated_at",
86
- deletedAtColumn: "deleted_at",
87
- timestamps: true,
88
- autoGenerateId: false,
89
- strictMode: "fail",
90
- deleteStrategy: "permanent",
91
- };
92
- /**
93
- * Connection pool instance.
94
- */
95
- _pool;
96
- /**
97
- * Event listeners for driver lifecycle events.
98
- */
99
- _eventListeners = new Map();
100
- /**
101
- * Whether the driver is currently connected.
102
- */
103
- _isConnected = false;
104
- /**
105
- * Blueprint instance (lazy-loaded).
106
- */
107
- _blueprint;
108
- /**
109
- * Migration driver instance (lazy-loaded).
110
- */
111
- _migrationDriver;
112
- /**
113
- * Sync adapter instance (lazy-loaded).
114
- */
115
- _syncAdapter;
116
- /**
117
- * Create a new PostgreSQL driver instance.
118
- *
119
- * @param config - PostgreSQL connection configuration
120
- */
121
- constructor(config) {
122
- this.config = config;
123
- }
124
- /**
125
- * Get the connection pool instance.
126
- *
127
- * @throws Error if not connected
128
- */
129
- get pool() {
130
- if (!this._pool) {
131
- throw new Error("PostgreSQL driver is not connected. Call connect() first.");
132
- }
133
- return this._pool;
134
- }
135
- /**
136
- * Get database native client
137
- */
138
- getClient() {
139
- return this.pool;
140
- }
141
- /**
142
- * Check if the driver is currently connected.
143
- */
144
- get isConnected() {
145
- return this._isConnected;
146
- }
147
- /**
148
- * Get the driver blueprint (information schema).
149
- */
150
- get blueprint() {
151
- if (!this._blueprint) {
152
- this._blueprint = new postgresBlueprint.PostgresBlueprint(this);
153
- }
154
- return this._blueprint;
155
- }
156
- /**
157
- * Establish connection to the PostgreSQL database.
158
- *
159
- * Creates a connection pool with the configured options.
160
- * Emits 'connected' event on successful connection.
161
- */
162
- async connect() {
163
- if (this._isConnected) {
164
- return;
165
- }
166
- const pg = await loadPg();
167
- try {
168
- const poolConfig = {
169
- host: this.config.host ?? "localhost",
170
- port: this.config.port ?? 5432,
171
- database: this.config.database,
172
- user: this.config.user,
173
- password: this.config.password,
174
- connectionString: this.config.connectionString,
175
- max: this.config.max ?? 10,
176
- min: this.config.min ?? 0,
177
- idleTimeoutMillis: this.config.idleTimeoutMillis ?? 30000,
178
- connectionTimeoutMillis: this.config.connectionTimeoutMillis ?? 2000,
179
- application_name: this.config.application_name ?? "cascade",
180
- ssl: this.config.ssl,
181
- };
182
- logger.log.info("database.postgres", "connection", `Connecting to database ${copper.colors.bold(copper.colors.yellowBright(this.config.database))}`);
183
- this._pool = new pg.Pool(poolConfig);
184
- // Test the connection
185
- const client = await this._pool.connect();
186
- client.release();
187
- logger.log.success("database.postgres", "connection", `Connected to database ${copper.colors.bold(copper.colors.yellowBright(this.config.database))}`);
188
- this._isConnected = true;
189
- this.emit("connected");
190
- }
191
- catch (error) {
192
- logger.log.error("database.postgres", "connection", "Failed to connect to database");
193
- throw error;
194
- }
195
- }
196
- /**
197
- * Close the database connection pool.
198
- *
199
- * Waits for all active queries to complete before closing.
200
- * Emits 'disconnected' event on successful disconnection.
201
- */
202
- async disconnect() {
203
- if (!this._isConnected || !this._pool) {
204
- return;
205
- }
206
- await this._pool.end();
207
- this._pool = undefined;
208
- this._isConnected = false;
209
- this.emit("disconnected");
210
- }
211
- /**
212
- * Register an event listener for driver lifecycle events.
213
- *
214
- * @param event - Event name ('connected', 'disconnected', etc.)
215
- * @param listener - Callback function to invoke
216
- */
217
- on(event, listener) {
218
- if (!this._eventListeners.has(event)) {
219
- this._eventListeners.set(event, new Set());
220
- }
221
- this._eventListeners.get(event).add(listener);
222
- }
223
- /**
224
- * Serialize data for storage in PostgreSQL.
225
- *
226
- * Handles Date objects, BigInt, and other JavaScript types
227
- * that need special handling for PostgreSQL storage.
228
- *
229
- * @param data - The data object to serialize
230
- * @returns Serialized data ready for PostgreSQL
231
- */
232
- serialize(data) {
233
- const serialized = {};
234
- for (const [key, value] of Object.entries(data)) {
235
- if (value === undefined) {
236
- continue; // Skip undefined values
237
- }
238
- if (value instanceof Date) {
239
- serialized[key] = value.toISOString();
240
- }
241
- else if (typeof value === "bigint") {
242
- serialized[key] = value.toString();
243
- }
244
- else if (typeof value === "object" && value !== null && !Array.isArray(value)) {
245
- // Nested objects will be stored as JSONB
246
- serialized[key] = value;
247
- }
248
- else if (Array.isArray(value) &&
249
- value.length > 0 &&
250
- value.every((v) => typeof v === "number")) {
251
- // pgvector columns expect the literal '[n1,n2,...]' format.
252
- // If we pass a raw JS number[] the pg driver serializes it as a
253
- // PostgreSQL array '{n1,n2,...}' which the vector type rejects.
254
- serialized[key] = `[${value.join(",")}]`;
255
- }
256
- else {
257
- serialized[key] = value;
258
- }
259
- }
260
- return serialized;
261
- }
262
- /**
263
- * Get the dirty tracker for this driver.
264
- */
265
- getDirtyTracker(data) {
266
- return new sqlDatabaseDirtyTracker.SqlDatabaseDirtyTracker(data);
267
- }
268
- /**
269
- * Deserialize data retrieved from PostgreSQL.
270
- *
271
- * Converts PostgreSQL types back to JavaScript equivalents.
272
- *
273
- * @param data - The data object from PostgreSQL
274
- * @returns Deserialized JavaScript object
275
- */
276
- deserialize(data) {
277
- // PostgreSQL pg driver handles most type conversions automatically
278
- // Special handling can be added here if needed
279
- for (const [key, value] of Object.entries(data)) {
280
- // Only re-inflate strings — pg already returns Date objects from DB reads
281
- if (typeof value !== "string")
282
- continue;
283
- if (isValidDateValue.isValidDateValue(value)) {
284
- data[key] = new Date(value);
285
- continue;
286
- }
287
- // pgvector columns are returned as '[n1,n2,...]' strings.
288
- // charCodeAt is faster than startsWith/endsWith — no string allocation.
289
- // '[' = 91, ']' = 93
290
- if (value.charCodeAt(0) === 91 && value.charCodeAt(value.length - 1) === 93) {
291
- const parts = value.slice(1, -1).split(",");
292
- const nums = new Array(parts.length);
293
- let isNumericVector = parts.length > 0;
294
- for (let i = 0; i < parts.length; i++) {
295
- const n = +parts[i]; // unary + is the fastest string-to-number coercion
296
- if (!Number.isFinite(n)) {
297
- isNumericVector = false;
298
- break; // early-exit — not a numeric vector, leave value untouched
299
- }
300
- nums[i] = n;
301
- }
302
- if (isNumericVector) {
303
- data[key] = nums;
304
- }
305
- }
306
- }
307
- return data;
308
- }
309
- /**
310
- * Insert a single row into a table.
311
- *
312
- * Uses INSERT ... RETURNING to get the inserted row with generated values.
313
- *
314
- * @param table - Target table name
315
- * @param document - Data to insert
316
- * @param options - Optional insertion options
317
- * @returns The inserted document
318
- */
319
- async insert(table, document, _options) {
320
- const serialized = this.serialize(document);
321
- // Filter out id if null/undefined to let PostgreSQL SERIAL auto-generate
322
- const filteredData = Object.fromEntries(Object.entries(serialized).filter(([key, value]) => {
323
- // Exclude id if null/undefined (let SERIAL handle it)
324
- if (key === "id" && (value === null || value === undefined)) {
325
- return false;
326
- }
327
- return true;
328
- }));
329
- const columns = Object.keys(filteredData);
330
- const values = Object.values(filteredData);
331
- if (columns.length === 0) {
332
- throw new Error("Cannot insert empty document");
333
- }
334
- const quotedColumns = columns.map((c) => this.dialect.quoteIdentifier(c)).join(", ");
335
- const placeholders = columns.map((_, i) => this.dialect.placeholder(i + 1)).join(", ");
336
- const quotedTable = this.dialect.quoteIdentifier(table);
337
- const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES (${placeholders}) RETURNING *`;
338
- const result = await this.query(sql, values);
339
- return {
340
- document: result.rows[0],
341
- };
342
- }
343
- /**
344
- * Insert multiple rows into a table.
345
- *
346
- * Uses a single INSERT statement with multiple value sets for efficiency.
347
- *
348
- * @param table - Target table name
349
- * @param documents - Array of documents to insert
350
- * @param options - Optional insertion options
351
- * @returns Array of inserted documents
352
- */
353
- async insertMany(table, documents, _options) {
354
- if (documents.length === 0) {
355
- return [];
356
- }
357
- // Get all unique columns across all documents
358
- const allColumns = new Set();
359
- for (const doc of documents) {
360
- const serialized = this.serialize(doc);
361
- Object.keys(serialized).forEach((key) => allColumns.add(key));
362
- }
363
- const columns = Array.from(allColumns);
364
- const quotedColumns = columns.map((c) => this.dialect.quoteIdentifier(c)).join(", ");
365
- const quotedTable = this.dialect.quoteIdentifier(table);
366
- // Build value sets and params
367
- const valueSets = [];
368
- const params = [];
369
- let paramIndex = 1;
370
- for (const doc of documents) {
371
- const serialized = this.serialize(doc);
372
- const rowPlaceholders = [];
373
- for (const col of columns) {
374
- if (col in serialized) {
375
- rowPlaceholders.push(this.dialect.placeholder(paramIndex++));
376
- params.push(serialized[col]);
377
- }
378
- else {
379
- rowPlaceholders.push("DEFAULT");
380
- }
381
- }
382
- valueSets.push(`(${rowPlaceholders.join(", ")})`);
383
- }
384
- const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES ${valueSets.join(", ")} RETURNING *`;
385
- const result = await this.query(sql, params);
386
- return result.rows;
387
- }
388
- /**
389
- * Update a single row matching the filter.
390
- *
391
- * @param table - Target table name
392
- * @param filter - Filter conditions
393
- * @param update - Update operations ($set, $unset, $inc)
394
- * @param options - Optional update options
395
- * @returns Update result with modified count
396
- */
397
- async update(table, filter, update, _options) {
398
- const { sql, params } = this.buildUpdateQuery(table, filter, update, 1);
399
- try {
400
- const result = await this.query(sql, params);
401
- return {
402
- modifiedCount: result.rowCount ?? 0,
403
- };
404
- }
405
- catch (error) {
406
- console.log("PG Query Error in:", sql, params);
407
- throw error;
408
- }
409
- }
410
- /**
411
- * Find one and update a single row matching the filter and return the updated row
412
- * @param table - Target table name
413
- * @param filter - Filter conditions
414
- * @param update - Update operations ($set, $unset, $inc)
415
- * @param options - Optional update options
416
- * @returns The updated row or null
417
- */
418
- async findOneAndUpdate(table, filter, update, _options) {
419
- const { sql, params } = this.buildUpdateQuery(table, filter, update, 1);
420
- // Add RETURNING * to get the updated row back
421
- const sqlWithReturning = `${sql} RETURNING *`;
422
- const result = await this.query(sqlWithReturning, params);
423
- return result.rows[0] ?? null;
424
- }
425
- /**
426
- * Update multiple rows matching the filter.
427
- *
428
- * @param table - Target table name
429
- * @param filter - Filter conditions
430
- * @param update - Update operations
431
- * @param options - Optional update options
432
- * @returns Update result with modified count
433
- */
434
- async updateMany(table, filter, update, _options) {
435
- const { sql, params } = this.buildUpdateQuery(table, filter, update);
436
- const result = await this.query(sql, params);
437
- return {
438
- modifiedCount: result.rowCount ?? 0,
439
- };
440
- }
441
- /**
442
- * Replace a document matching the filter.
443
- *
444
- * Completely replaces the document (not a partial update).
445
- *
446
- * @param table - Target table name
447
- * @param filter - Filter conditions
448
- * @param document - New document data
449
- * @param options - Optional options
450
- * @returns The replaced document or null
451
- */
452
- async replace(table, filter, document, _options) {
453
- const serialized = this.serialize(document);
454
- const columns = Object.keys(serialized);
455
- const values = Object.values(serialized);
456
- const quotedTable = this.dialect.quoteIdentifier(table);
457
- const setClauses = columns
458
- .map((col, i) => `${this.dialect.quoteIdentifier(col)} = ${this.dialect.placeholder(i + 1)}`)
459
- .join(", ");
460
- const { whereClause, whereParams } = this.buildWhereClause(filter, columns.length + 1);
461
- const sql = `UPDATE ${quotedTable} SET ${setClauses} ${whereClause} RETURNING *`;
462
- const params = [...values, ...whereParams];
463
- const result = await this.query(sql, params);
464
- return result.rows[0] ?? null;
465
- }
466
- /**
467
- * Upsert (insert or update) a single row.
468
- *
469
- * Uses PostgreSQL's INSERT ... ON CONFLICT ... DO UPDATE syntax.
470
- *
471
- * @param table - Target table name
472
- * @param filter - Filter conditions to find existing row (used for conflict detection)
473
- * @param document - Document data to insert or update
474
- * @param options - Upsert options (conflictColumns for conflict target)
475
- * @returns The upserted row
476
- */
477
- async upsert(table, filter, document, options) {
478
- const serialized = this.serialize(document);
479
- const columns = Object.keys(serialized);
480
- const values = Object.values(serialized);
481
- if (columns.length === 0) {
482
- throw new Error("Cannot upsert empty document");
483
- }
484
- const quotedTable = this.dialect.quoteIdentifier(table);
485
- const quotedColumns = columns.map((c) => this.dialect.quoteIdentifier(c)).join(", ");
486
- const placeholders = columns.map((_, i) => this.dialect.placeholder(i + 1)).join(", ");
487
- // Determine conflict columns from options or filter
488
- const conflictColumns = options?.conflictColumns ?? Object.keys(filter);
489
- if (conflictColumns.length === 0) {
490
- throw new Error("Upsert requires conflictColumns option or filter with columns");
491
- }
492
- const quotedConflictColumns = conflictColumns
493
- .map((c) => this.dialect.quoteIdentifier(c))
494
- .join(", ");
495
- // Build UPDATE clause for ON CONFLICT
496
- // Update all columns except the conflict columns (they stay the same)
497
- const updateColumns = columns.filter((col) => !conflictColumns.includes(col));
498
- const setClauses = updateColumns
499
- .map((col, i) => {
500
- const valueIndex = columns.indexOf(col) + 1;
501
- return `${this.dialect.quoteIdentifier(col)} = ${this.dialect.placeholder(valueIndex)}`;
502
- })
503
- .join(", ");
504
- // If there are no columns to update (all columns are conflict columns), use EXCLUDED
505
- const updateClause = setClauses.length > 0
506
- ? setClauses
507
- : columns
508
- .map((col) => `${this.dialect.quoteIdentifier(col)} = EXCLUDED.${this.dialect.quoteIdentifier(col)}`)
509
- .join(", ");
510
- const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES (${placeholders}) ON CONFLICT (${quotedConflictColumns}) DO UPDATE SET ${updateClause} RETURNING *`;
511
- const result = await this.query(sql, values);
512
- return result.rows[0];
513
- }
514
- /**
515
- * Find one and delete a single row matching the filter and return the deleted row.
516
- *
517
- * @param table - Target table name
518
- * @param filter - Filter conditions
519
- * @param options - Optional delete options
520
- * @returns The deleted row or null
521
- */
522
- async findOneAndDelete(table, filter, _options) {
523
- const quotedTable = this.dialect.quoteIdentifier(table);
524
- const { whereClause, whereParams } = this.buildWhereClause(filter, 1);
525
- // Use ctid for single row deletion with RETURNING
526
- const sql = `DELETE FROM ${quotedTable} WHERE ctid IN (SELECT ctid FROM ${quotedTable} ${whereClause} LIMIT 1) RETURNING *`;
527
- const result = await this.query(sql, whereParams);
528
- return result.rows[0] ? result.rows[0] : null;
529
- }
530
- /**
531
- * Delete a single row matching the filter.
532
- *
533
- * @param table - Target table name
534
- * @param filter - Filter conditions
535
- * @param options - Optional options
536
- * @returns Number of deleted rows (0 or 1)
537
- */
538
- async delete(table, filter, _options) {
539
- const quotedTable = this.dialect.quoteIdentifier(table);
540
- const { whereClause, whereParams } = this.buildWhereClause(filter ?? {}, 1);
541
- // Use ctid for single row deletion
542
- const sql = `DELETE FROM ${quotedTable} WHERE ctid IN (SELECT ctid FROM ${quotedTable} ${whereClause} LIMIT 1)`;
543
- const result = await this.query(sql, whereParams);
544
- return result.rowCount ?? 0;
545
- }
546
- /**
547
- * Delete multiple rows matching the filter.
548
- *
549
- * @param table - Target table name
550
- * @param filter - Filter conditions
551
- * @param options - Optional options
552
- * @returns Number of deleted rows
553
- */
554
- async deleteMany(table, filter, _options) {
555
- const quotedTable = this.dialect.quoteIdentifier(table);
556
- const { whereClause, whereParams } = this.buildWhereClause(filter ?? {}, 1);
557
- const sql = `DELETE FROM ${quotedTable} ${whereClause}`;
558
- const result = await this.query(sql, whereParams);
559
- return result.rowCount ?? 0;
560
- }
561
- /**
562
- * Truncate a table (remove all rows).
563
- *
564
- * Uses TRUNCATE TABLE for fast deletion with RESTART IDENTITY.
565
- *
566
- * @param table - Target table name
567
- * @param options - Optional options
568
- * @param options.cascade - If true, automatically truncate all tables with foreign key references (use with caution)
569
- * @returns Number of deleted rows (always 0 for TRUNCATE)
570
- */
571
- async truncateTable(table, options) {
572
- const quotedTable = this.dialect.quoteIdentifier(table);
573
- const cascadeClause = options?.cascade ? " CASCADE" : "";
574
- await this.query(`TRUNCATE TABLE ${quotedTable} RESTART IDENTITY${cascadeClause}`);
575
- return 0; // TRUNCATE doesn't return row count
576
- }
577
- /**
578
- * Get a query builder for the specified table.
579
- *
580
- * @param table - Target table name
581
- * @returns Query builder instance
582
- */
583
- queryBuilder(table) {
584
- return new postgresQueryBuilder.PostgresQueryBuilder(table);
585
- }
586
- /**
587
- * Begin a new database transaction.
588
- *
589
- * Acquires a client from the pool and starts a transaction.
590
- * The client is stored in AsyncLocalStorage for automatic
591
- * participation by subsequent queries.
592
- *
593
- * @param options - Optional transaction options
594
- * @returns Transaction contract with commit/rollback methods
595
- */
596
- async beginTransaction(options) {
597
- const client = await this.pool.connect();
598
- let beginSql = "BEGIN";
599
- if (options?.isolationLevel) {
600
- beginSql += ` ISOLATION LEVEL ${options.isolationLevel.toUpperCase()}`;
601
- }
602
- if (options?.readOnly) {
603
- beginSql += " READ ONLY";
604
- }
605
- if (options?.deferrable) {
606
- beginSql += " DEFERRABLE";
607
- }
608
- await client.query(beginSql);
609
- return {
610
- context: client,
611
- commit: async () => {
612
- await client.query("COMMIT");
613
- client.release();
614
- },
615
- rollback: async () => {
616
- await client.query("ROLLBACK");
617
- client.release();
618
- },
619
- };
620
- }
621
- /**
622
- * Execute a function within a transaction scope (recommended pattern).
623
- *
624
- * Automatically commits on success, rolls back on any error, and guarantees
625
- * resource cleanup. This is the recommended way to use transactions.
626
- *
627
- * @param fn - Async function to execute within transaction
628
- * @param options - Transaction options (isolation level, read-only, etc.)
629
- * @returns The return value of the callback function
630
- * @throws {Error} If transaction fails or is explicitly rolled back
631
- */
632
- async transaction(fn, options) {
633
- // Prevent nested transaction() calls
634
- if (databaseTransactionContext.databaseTransactionContext.hasActiveTransaction()) ;
635
- const tx = await this.beginTransaction(options);
636
- // Set transaction context for queries within callback
637
- databaseTransactionContext.databaseTransactionContext.enter({ session: tx.context });
638
- try {
639
- // Create transaction context with rollback method
640
- const ctx = {
641
- rollback(reason) {
642
- throw new transactionRollback_error.TransactionRollbackError(reason);
643
- },
644
- };
645
- // Execute callback
646
- const result = await fn(ctx);
647
- // Auto-commit on success
648
- await tx.commit();
649
- return result;
650
- }
651
- catch (error) {
652
- // Auto-rollback on any error (including explicit rollback)
653
- await tx.rollback();
654
- logger.logger.error(`database.postgress`, "transaction", "Transaction operation failed, rolled back everything");
655
- throw error;
656
- }
657
- finally {
658
- // Guaranteed cleanup
659
- databaseTransactionContext.databaseTransactionContext.exit();
660
- }
661
- }
662
- /**
663
- * Perform an atomic update operation.
664
- *
665
- * Uses PostgreSQL's row-level locking for atomicity.
666
- *
667
- * @param table - Target table name
668
- * @param filter - Filter conditions
669
- * @param operations - Update operations
670
- * @param options - Optional options
671
- * @returns Update result
672
- */
673
- async atomic(table, filter, operations, _options) {
674
- // For PostgreSQL, we use SELECT FOR UPDATE to lock the row
675
- // then perform the update
676
- const { sql, params } = this.buildUpdateQuery(table, filter, operations, 1);
677
- const result = await this.query(sql, params);
678
- return {
679
- modifiedCount: result.rowCount ?? 0,
680
- };
681
- }
682
- /**
683
- * Get the sync adapter for bulk denormalized updates.
684
- *
685
- * @returns Sync adapter instance
686
- */
687
- syncAdapter() {
688
- if (!this._syncAdapter) {
689
- this._syncAdapter = new postgresSyncAdapter.PostgresSyncAdapter(this);
690
- }
691
- return this._syncAdapter;
692
- }
693
- /**
694
- * Get the migration driver for schema operations.
695
- *
696
- * @returns Migration driver instance
697
- */
698
- migrationDriver() {
699
- if (!this._migrationDriver) {
700
- this._migrationDriver = new postgresMigrationDriver.PostgresMigrationDriver(this);
701
- }
702
- return this._migrationDriver;
703
- }
704
- /**
705
- * Return a SQL serializer for this driver's dialect.
706
- * Used by Migration.toSQL() to convert pending operations to SQL strings.
707
- */
708
- getSQLSerializer() {
709
- return new postgresSqlSerializer.PostgresSQLSerializer(this.dialect);
710
- }
711
- /**
712
- * Execute a raw SQL query.
713
- *
714
- * Automatically uses the transaction client if one is active.
715
- *
716
- * @param sql - SQL query string
717
- * @param params - Query parameters
718
- * @returns Query result
719
- */
720
- async query(sql, params = []) {
721
- // Check for active transaction client
722
- const txClient = databaseTransactionContext.databaseTransactionContext.getSession();
723
- // console.log("SQL", sql);
724
- // console.log("SQL Params", params);
725
- if (txClient) {
726
- const result = await txClient.query(sql, params);
727
- return result;
728
- }
729
- return this.pool.query(sql, params);
730
- }
731
- /**
732
- * Emit an event to all registered listeners.
733
- *
734
- * @param event - Event name
735
- * @param args - Event arguments
736
- */
737
- emit(event, ...args) {
738
- const listeners = this._eventListeners.get(event);
739
- if (listeners) {
740
- for (const listener of listeners) {
741
- listener(...args);
742
- }
743
- }
744
- }
745
- /**
746
- * Build a simple WHERE clause from a filter object.
747
- *
748
- * @param filter - Filter conditions
749
- * @param startParamIndex - Starting parameter index
750
- * @returns Object with WHERE clause string and parameters
751
- */
752
- buildWhereClause(filter, startParamIndex) {
753
- const conditions = [];
754
- const params = [];
755
- let paramIndex = startParamIndex;
756
- for (const [key, value] of Object.entries(filter)) {
757
- const quotedKey = this.dialect.quoteIdentifier(key);
758
- if (value === null) {
759
- conditions.push(`${quotedKey} IS NULL`);
760
- }
761
- else {
762
- conditions.push(`${quotedKey} = ${this.dialect.placeholder(paramIndex++)}`);
763
- params.push(value);
764
- }
765
- }
766
- const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
767
- return { whereClause, whereParams: params };
768
- }
769
- /**
770
- * Build an UPDATE query from update operations.
771
- *
772
- * @param table - Target table name
773
- * @param filter - Filter conditions
774
- * @param update - Update operations
775
- * @param limit - Optional limit (for single row update)
776
- * @returns Object with SQL and parameters
777
- */
778
- buildUpdateQuery(table, filter, update, limit) {
779
- const setClauses = [];
780
- const params = [];
781
- let paramIndex = 1;
782
- // Handle $set
783
- if (update.$set) {
784
- for (const [key, value] of Object.entries(update.$set)) {
785
- setClauses.push(`${this.dialect.quoteIdentifier(key)} = ${this.dialect.placeholder(paramIndex++)}`);
786
- params.push(value);
787
- }
788
- }
789
- // Handle $unset (set to NULL)
790
- if (update.$unset) {
791
- for (const key of Object.keys(update.$unset)) {
792
- setClauses.push(`${this.dialect.quoteIdentifier(key)} = NULL`);
793
- }
794
- }
795
- // Handle $inc
796
- if (update.$inc) {
797
- for (const [key, amount] of Object.entries(update.$inc)) {
798
- const quotedKey = this.dialect.quoteIdentifier(key);
799
- setClauses.push(`${quotedKey} = COALESCE(${quotedKey}, 0) + ${this.dialect.placeholder(paramIndex++)}`);
800
- params.push(amount);
801
- }
802
- }
803
- // Handle $dec
804
- if (update.$dec) {
805
- for (const [key, amount] of Object.entries(update.$dec)) {
806
- const quotedKey = this.dialect.quoteIdentifier(key);
807
- setClauses.push(`${quotedKey} = COALESCE(${quotedKey}, 0) - ${this.dialect.placeholder(paramIndex++)}`);
808
- params.push(amount);
809
- }
810
- }
811
- if (setClauses.length === 0) {
812
- throw new Error("No update operations specified");
813
- }
814
- const quotedTable = this.dialect.quoteIdentifier(table);
815
- const { whereClause, whereParams } = this.buildWhereClause(filter, paramIndex);
816
- params.push(...whereParams);
817
- let sql = `UPDATE ${quotedTable} SET ${setClauses.join(", ")} ${whereClause}`;
818
- // For single row update, use ctid subquery
819
- if (limit === 1 && whereClause) {
820
- sql = `UPDATE ${quotedTable} SET ${setClauses.join(", ")} WHERE ctid IN (SELECT ctid FROM ${quotedTable} ${whereClause} LIMIT 1)`;
821
- }
822
- return { sql, params };
823
- }
824
- // ============================================================
825
- // Database Lifecycle Operations
826
- // ============================================================
827
- /**
828
- * Create a new database.
829
- *
830
- * Note: This requires connecting to a system database (like 'postgres')
831
- * since you cannot create a database while connected to it.
832
- *
833
- * @param name - Database name to create
834
- * @param options - Creation options (encoding, template, etc.)
835
- * @returns true if created, false if already exists
836
- */
837
- async createDatabase(name, options) {
838
- // Check if database already exists
839
- if (await this.databaseExists(name)) {
840
- return false;
841
- }
842
- // Build CREATE DATABASE statement
843
- const quotedName = this.dialect.quoteIdentifier(name);
844
- let sql = `CREATE DATABASE ${quotedName}`;
845
- const withClauses = [];
846
- if (options?.encoding) {
847
- withClauses.push(`ENCODING = '${options.encoding}'`);
848
- }
849
- if (options?.template) {
850
- withClauses.push(`TEMPLATE = ${this.dialect.quoteIdentifier(options.template)}`);
851
- }
852
- if (options?.locale) {
853
- withClauses.push(`LC_COLLATE = '${options.locale}'`);
854
- withClauses.push(`LC_CTYPE = '${options.locale}'`);
855
- }
856
- if (options?.owner) {
857
- withClauses.push(`OWNER = ${this.dialect.quoteIdentifier(options.owner)}`);
858
- }
859
- if (withClauses.length > 0) {
860
- sql += ` WITH ${withClauses.join(" ")}`;
861
- }
862
- try {
863
- await this.query(sql);
864
- logger.log.success("database", "lifecycle", `Created database ${name}`);
865
- return true;
866
- }
867
- catch (error) {
868
- logger.log.error("database", "lifecycle", `Failed to create database ${name}: ${error}`);
869
- throw error;
870
- }
871
- }
872
- /**
873
- * Drop a database.
874
- *
875
- * @param name - Database name to drop
876
- * @param options - Drop options
877
- * @returns true if dropped, false if didn't exist
878
- */
879
- async dropDatabase(name, options) {
880
- // Check if database exists first (if ifExists option not set)
881
- if (!options?.ifExists && !(await this.databaseExists(name))) {
882
- return false;
883
- }
884
- const quotedName = this.dialect.quoteIdentifier(name);
885
- let sql = "DROP DATABASE";
886
- if (options?.ifExists) {
887
- sql += " IF EXISTS";
888
- }
889
- sql += ` ${quotedName}`;
890
- // PostgreSQL 13+ supports WITH (FORCE) to terminate active connections
891
- if (options?.force) {
892
- sql += " WITH (FORCE)";
893
- }
894
- try {
895
- await this.query(sql);
896
- logger.log.success("database", "lifecycle", `Dropped database ${name}`);
897
- return true;
898
- }
899
- catch (error) {
900
- logger.log.error("database", "lifecycle", `Failed to drop database ${name}: ${error}`);
901
- throw error;
902
- }
903
- }
904
- /**
905
- * Check if a database exists.
906
- *
907
- * @param name - Database name to check
908
- * @returns true if database exists
909
- */
910
- async databaseExists(name) {
911
- const result = await this.query(`SELECT EXISTS(SELECT 1 FROM pg_database WHERE datname = $1) as exists`, [name]);
912
- return result.rows[0]?.exists ?? false;
913
- }
914
- /**
915
- * List all databases.
916
- *
917
- * @returns Array of database names
918
- */
919
- async listDatabases() {
920
- const result = await this.query(`SELECT datname FROM pg_database WHERE datistemplate = false ORDER BY datname`);
921
- return result.rows.map((row) => row.datname);
922
- }
923
- // ============================================================
924
- // Table Management Operations
925
- // ============================================================
926
- /**
927
- * Drop a table.
928
- *
929
- * @param name - Table name to drop
930
- * @throws Error if table doesn't exist
931
- */
932
- async dropTable(name) {
933
- const quotedName = this.dialect.quoteIdentifier(name);
934
- await this.query(`DROP TABLE ${quotedName}`);
935
- logger.log.success("database", "table", `Dropped table ${name}`);
936
- }
937
- /**
938
- * Drop a table if it exists.
939
- *
940
- * @param name - Table name to drop
941
- */
942
- async dropTableIfExists(name) {
943
- const quotedName = this.dialect.quoteIdentifier(name);
944
- await this.query(`DROP TABLE IF EXISTS ${quotedName}`);
945
- }
946
- /**
947
- * Drop all tables in the current database.
948
- *
949
- * Uses CASCADE to handle foreign key dependencies.
950
- * Useful for `migrate:fresh` command.
951
- */
952
- async dropAllTables() {
953
- // Get all tables from blueprint
954
- const tables = await this.blueprint.listTables();
955
- if (tables.length === 0) {
956
- return;
957
- }
958
- // Drop all tables with CASCADE to handle foreign keys
959
- for (const table of tables) {
960
- const quotedName = this.dialect.quoteIdentifier(table);
961
- await this.query(`DROP TABLE IF EXISTS ${quotedName} CASCADE`);
962
- }
963
- logger.log.success("database", "table", `Dropped ${tables.length} tables`);
964
- }
965
- }exports.PostgresDriver=PostgresDriver;//# sourceMappingURL=postgres-driver.js.map