@warlock.js/cascade 4.0.162 → 4.0.164

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 (661) hide show
  1. package/cjs/context/database-data-source-context.d.ts +29 -0
  2. package/cjs/context/database-data-source-context.d.ts.map +1 -0
  3. package/cjs/context/database-data-source-context.js +28 -0
  4. package/cjs/context/database-data-source-context.js.map +1 -0
  5. package/cjs/context/database-transaction-context.d.ts +35 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +40 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +450 -0
  10. package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
  11. package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
  12. package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
  13. package/cjs/contracts/database-remover.contract.d.ts +104 -0
  14. package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
  15. package/cjs/contracts/database-restorer.contract.d.ts +143 -0
  16. package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
  17. package/cjs/contracts/database-writer.contract.d.ts +119 -0
  18. package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
  19. package/cjs/contracts/driver-blueprint.contract.d.ts +49 -0
  20. package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
  21. package/cjs/contracts/index.d.ts +10 -0
  22. package/cjs/contracts/index.d.ts.map +1 -0
  23. package/cjs/contracts/migration-driver.contract.d.ts +522 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1609 -0
  26. package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
  27. package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
  28. package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
  29. package/cjs/data-source/data-source-registry.d.ts +108 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +145 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +147 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +83 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +252 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +386 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  42. package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  43. package/cjs/drivers/mongodb/mongodb-blueprint.js +51 -0
  44. package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  45. package/cjs/drivers/mongodb/mongodb-driver.d.ts +325 -0
  46. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongodb/mongodb-driver.js +838 -0
  48. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
  49. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  50. package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  51. package/cjs/drivers/mongodb/mongodb-id-generator.js +149 -0
  52. package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  53. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  54. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  55. package/cjs/drivers/mongodb/mongodb-migration-driver.js +666 -0
  56. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  57. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  58. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  59. package/cjs/drivers/mongodb/mongodb-query-builder.js +1988 -0
  60. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  61. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  62. package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  63. package/cjs/drivers/mongodb/mongodb-query-operations.js +270 -0
  64. package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  65. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  66. package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  67. package/cjs/drivers/mongodb/mongodb-query-parser.js +1351 -0
  68. package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  69. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  70. package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  71. package/cjs/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  72. package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  73. package/cjs/drivers/mongodb/types.d.ts +43 -0
  74. package/cjs/drivers/mongodb/types.d.ts.map +1 -0
  75. package/cjs/drivers/postgres/index.d.ts +16 -0
  76. package/cjs/drivers/postgres/index.d.ts.map +1 -0
  77. package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
  78. package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  79. package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
  80. package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
  81. package/cjs/drivers/postgres/postgres-dialect.d.ts +136 -0
  82. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  83. package/cjs/drivers/postgres/postgres-dialect.js +268 -0
  84. package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
  85. package/cjs/drivers/postgres/postgres-driver.d.ts +432 -0
  86. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
  87. package/cjs/drivers/postgres/postgres-driver.js +1010 -0
  88. package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
  89. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  90. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  91. package/cjs/drivers/postgres/postgres-migration-driver.js +900 -0
  92. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
  93. package/cjs/drivers/postgres/postgres-query-builder.d.ts +254 -0
  94. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  95. package/cjs/drivers/postgres/postgres-query-builder.js +933 -0
  96. package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
  97. package/cjs/drivers/postgres/postgres-query-parser.d.ts +328 -0
  98. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  99. package/cjs/drivers/postgres/postgres-query-parser.js +868 -0
  100. package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
  101. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  102. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  103. package/cjs/drivers/postgres/postgres-sql-serializer.js +400 -0
  104. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  105. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  106. package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  107. package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
  108. package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  109. package/cjs/drivers/postgres/types.d.ts +144 -0
  110. package/cjs/drivers/postgres/types.d.ts.map +1 -0
  111. package/cjs/drivers/sql/index.d.ts +10 -0
  112. package/cjs/drivers/sql/index.d.ts.map +1 -0
  113. package/cjs/drivers/sql/sql-dialect.contract.d.ts +204 -0
  114. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  115. package/cjs/drivers/sql/sql-types.d.ts +202 -0
  116. package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
  117. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  118. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  119. package/cjs/errors/missing-data-source.error.js +29 -0
  120. package/cjs/errors/missing-data-source.error.js.map +1 -0
  121. package/cjs/errors/transaction-rollback.error.d.ts +20 -0
  122. package/cjs/errors/transaction-rollback.error.d.ts.map +1 -0
  123. package/cjs/errors/transaction-rollback.error.js +27 -0
  124. package/cjs/errors/transaction-rollback.error.js.map +1 -0
  125. package/cjs/events/model-events.d.ts +231 -0
  126. package/cjs/events/model-events.d.ts.map +1 -0
  127. package/cjs/events/model-events.js +259 -0
  128. package/cjs/events/model-events.js.map +1 -0
  129. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  130. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  131. package/cjs/expressions/aggregate-expressions.js +221 -0
  132. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  133. package/cjs/expressions/index.d.ts +2 -0
  134. package/cjs/expressions/index.d.ts.map +1 -0
  135. package/cjs/index.d.ts +45 -0
  136. package/cjs/index.d.ts.map +1 -0
  137. package/cjs/index.js +1 -0
  138. package/cjs/index.js.map +1 -0
  139. package/cjs/migration/column-builder.d.ts +417 -0
  140. package/cjs/migration/column-builder.d.ts.map +1 -0
  141. package/cjs/migration/column-builder.js +586 -0
  142. package/cjs/migration/column-builder.js.map +1 -0
  143. package/cjs/migration/column-helpers.d.ts +275 -0
  144. package/cjs/migration/column-helpers.d.ts.map +1 -0
  145. package/cjs/migration/column-helpers.js +389 -0
  146. package/cjs/migration/column-helpers.js.map +1 -0
  147. package/cjs/migration/foreign-key-builder.d.ts +103 -0
  148. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  149. package/cjs/migration/foreign-key-builder.js +121 -0
  150. package/cjs/migration/foreign-key-builder.js.map +1 -0
  151. package/cjs/migration/index.d.ts +7 -0
  152. package/cjs/migration/index.d.ts.map +1 -0
  153. package/cjs/migration/migration-runner.d.ts +278 -0
  154. package/cjs/migration/migration-runner.d.ts.map +1 -0
  155. package/cjs/migration/migration-runner.js +815 -0
  156. package/cjs/migration/migration-runner.js.map +1 -0
  157. package/cjs/migration/migration.d.ts +1992 -0
  158. package/cjs/migration/migration.d.ts.map +1 -0
  159. package/cjs/migration/migration.js +2162 -0
  160. package/cjs/migration/migration.js.map +1 -0
  161. package/cjs/migration/sql-grammar.d.ts +61 -0
  162. package/cjs/migration/sql-grammar.d.ts.map +1 -0
  163. package/cjs/migration/sql-grammar.js +164 -0
  164. package/cjs/migration/sql-grammar.js.map +1 -0
  165. package/cjs/migration/sql-serializer.d.ts +22 -0
  166. package/cjs/migration/sql-serializer.d.ts.map +1 -0
  167. package/cjs/migration/sql-serializer.js +26 -0
  168. package/cjs/migration/sql-serializer.js.map +1 -0
  169. package/cjs/migration/types.d.ts +155 -0
  170. package/cjs/migration/types.d.ts.map +1 -0
  171. package/cjs/model/methods/accessor-methods.d.ts +13 -0
  172. package/cjs/model/methods/accessor-methods.d.ts.map +1 -0
  173. package/cjs/model/methods/accessor-methods.js +51 -0
  174. package/cjs/model/methods/accessor-methods.js.map +1 -0
  175. package/cjs/model/methods/delete-methods.d.ts +10 -0
  176. package/cjs/model/methods/delete-methods.d.ts.map +1 -0
  177. package/cjs/model/methods/delete-methods.js +10 -0
  178. package/cjs/model/methods/delete-methods.js.map +1 -0
  179. package/cjs/model/methods/dirty-methods.d.ts +10 -0
  180. package/cjs/model/methods/dirty-methods.d.ts.map +1 -0
  181. package/cjs/model/methods/dirty-methods.js +15 -0
  182. package/cjs/model/methods/dirty-methods.js.map +1 -0
  183. package/cjs/model/methods/hydration-methods.d.ts +10 -0
  184. package/cjs/model/methods/hydration-methods.d.ts.map +1 -0
  185. package/cjs/model/methods/hydration-methods.js +57 -0
  186. package/cjs/model/methods/hydration-methods.js.map +1 -0
  187. package/cjs/model/methods/instance-event-methods.d.ts +7 -0
  188. package/cjs/model/methods/instance-event-methods.d.ts.map +1 -0
  189. package/cjs/model/methods/instance-event-methods.js +15 -0
  190. package/cjs/model/methods/instance-event-methods.js.map +1 -0
  191. package/cjs/model/methods/meta-methods.d.ts +7 -0
  192. package/cjs/model/methods/meta-methods.d.ts.map +1 -0
  193. package/cjs/model/methods/meta-methods.js +78 -0
  194. package/cjs/model/methods/meta-methods.js.map +1 -0
  195. package/cjs/model/methods/query-methods.d.ts +24 -0
  196. package/cjs/model/methods/query-methods.d.ts.map +1 -0
  197. package/cjs/model/methods/query-methods.js +164 -0
  198. package/cjs/model/methods/query-methods.js.map +1 -0
  199. package/cjs/model/methods/restore-methods.d.ts +10 -0
  200. package/cjs/model/methods/restore-methods.d.ts.map +1 -0
  201. package/cjs/model/methods/restore-methods.js +13 -0
  202. package/cjs/model/methods/restore-methods.js.map +1 -0
  203. package/cjs/model/methods/scope-methods.d.ts +7 -0
  204. package/cjs/model/methods/scope-methods.d.ts.map +1 -0
  205. package/cjs/model/methods/scope-methods.js +15 -0
  206. package/cjs/model/methods/scope-methods.js.map +1 -0
  207. package/cjs/model/methods/serialization-methods.d.ts +3 -0
  208. package/cjs/model/methods/serialization-methods.d.ts.map +1 -0
  209. package/cjs/model/methods/serialization-methods.js +27 -0
  210. package/cjs/model/methods/serialization-methods.js.map +1 -0
  211. package/cjs/model/methods/static-event-methods.d.ts +9 -0
  212. package/cjs/model/methods/static-event-methods.d.ts.map +1 -0
  213. package/cjs/model/methods/static-event-methods.js +29 -0
  214. package/cjs/model/methods/static-event-methods.js.map +1 -0
  215. package/cjs/model/methods/write-methods.d.ts +10 -0
  216. package/cjs/model/methods/write-methods.d.ts.map +1 -0
  217. package/cjs/model/methods/write-methods.js +52 -0
  218. package/cjs/model/methods/write-methods.js.map +1 -0
  219. package/cjs/model/model.d.ts +1647 -0
  220. package/cjs/model/model.d.ts.map +1 -0
  221. package/cjs/model/model.js +1657 -0
  222. package/cjs/model/model.js.map +1 -0
  223. package/cjs/model/model.types.d.ts +44 -0
  224. package/cjs/model/model.types.d.ts.map +1 -0
  225. package/cjs/model/register-model.d.ts +81 -0
  226. package/cjs/model/register-model.d.ts.map +1 -0
  227. package/cjs/model/register-model.js +94 -0
  228. package/cjs/model/register-model.js.map +1 -0
  229. package/cjs/query-builder/query-builder.d.ts +556 -0
  230. package/cjs/query-builder/query-builder.d.ts.map +1 -0
  231. package/cjs/query-builder/query-builder.js +1070 -0
  232. package/cjs/query-builder/query-builder.js.map +1 -0
  233. package/cjs/relations/helpers.d.ts +156 -0
  234. package/cjs/relations/helpers.d.ts.map +1 -0
  235. package/cjs/relations/helpers.js +202 -0
  236. package/cjs/relations/helpers.js.map +1 -0
  237. package/cjs/relations/index.d.ts +35 -0
  238. package/cjs/relations/index.d.ts.map +1 -0
  239. package/cjs/relations/pivot-operations.d.ts +160 -0
  240. package/cjs/relations/pivot-operations.d.ts.map +1 -0
  241. package/cjs/relations/pivot-operations.js +293 -0
  242. package/cjs/relations/pivot-operations.js.map +1 -0
  243. package/cjs/relations/relation-hydrator.d.ts +68 -0
  244. package/cjs/relations/relation-hydrator.d.ts.map +1 -0
  245. package/cjs/relations/relation-hydrator.js +81 -0
  246. package/cjs/relations/relation-hydrator.js.map +1 -0
  247. package/cjs/relations/relation-loader.d.ts +194 -0
  248. package/cjs/relations/relation-loader.d.ts.map +1 -0
  249. package/cjs/relations/relation-loader.js +466 -0
  250. package/cjs/relations/relation-loader.js.map +1 -0
  251. package/cjs/relations/types.d.ts +306 -0
  252. package/cjs/relations/types.d.ts.map +1 -0
  253. package/cjs/remover/database-remover.d.ts +100 -0
  254. package/cjs/remover/database-remover.d.ts.map +1 -0
  255. package/cjs/remover/database-remover.js +214 -0
  256. package/cjs/remover/database-remover.js.map +1 -0
  257. package/cjs/restorer/database-restorer.d.ts +131 -0
  258. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  259. package/cjs/restorer/database-restorer.js +434 -0
  260. package/cjs/restorer/database-restorer.js.map +1 -0
  261. package/cjs/sql-database-dirty-tracker.d.ts +13 -0
  262. package/cjs/sql-database-dirty-tracker.d.ts.map +1 -0
  263. package/cjs/sql-database-dirty-tracker.js +14 -0
  264. package/cjs/sql-database-dirty-tracker.js.map +1 -0
  265. package/cjs/sync/index.d.ts +12 -0
  266. package/cjs/sync/index.d.ts.map +1 -0
  267. package/cjs/sync/model-events.d.ts +62 -0
  268. package/cjs/sync/model-events.d.ts.map +1 -0
  269. package/cjs/sync/model-events.js +49 -0
  270. package/cjs/sync/model-events.js.map +1 -0
  271. package/cjs/sync/model-sync-operation.d.ts +163 -0
  272. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  273. package/cjs/sync/model-sync-operation.js +292 -0
  274. package/cjs/sync/model-sync-operation.js.map +1 -0
  275. package/cjs/sync/model-sync.d.ts +130 -0
  276. package/cjs/sync/model-sync.d.ts.map +1 -0
  277. package/cjs/sync/model-sync.js +178 -0
  278. package/cjs/sync/model-sync.js.map +1 -0
  279. package/cjs/sync/sync-context.d.ts +70 -0
  280. package/cjs/sync/sync-context.d.ts.map +1 -0
  281. package/cjs/sync/sync-context.js +101 -0
  282. package/cjs/sync/sync-context.js.map +1 -0
  283. package/cjs/sync/sync-manager.d.ts +213 -0
  284. package/cjs/sync/sync-manager.d.ts.map +1 -0
  285. package/cjs/sync/sync-manager.js +689 -0
  286. package/cjs/sync/sync-manager.js.map +1 -0
  287. package/cjs/sync/types.d.ts +289 -0
  288. package/cjs/sync/types.d.ts.map +1 -0
  289. package/cjs/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  290. package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  291. package/cjs/types.d.ts +371 -0
  292. package/cjs/types.d.ts.map +1 -0
  293. package/cjs/utils/connect-to-database.d.ts +307 -0
  294. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  295. package/cjs/utils/connect-to-database.js +130 -0
  296. package/cjs/utils/connect-to-database.js.map +1 -0
  297. package/cjs/utils/database-writer.utils.d.ts +15 -0
  298. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  299. package/cjs/utils/database-writer.utils.js +14 -0
  300. package/cjs/utils/database-writer.utils.js.map +1 -0
  301. package/cjs/utils/define-model.js +100 -0
  302. package/cjs/utils/define-model.js.map +1 -0
  303. package/cjs/utils/is-valid-date-value.d.ts +5 -0
  304. package/cjs/utils/is-valid-date-value.d.ts.map +1 -0
  305. package/cjs/utils/is-valid-date-value.js +25 -0
  306. package/cjs/utils/is-valid-date-value.js.map +1 -0
  307. package/cjs/utils/once-connected.d.ts +146 -0
  308. package/cjs/utils/once-connected.d.ts.map +1 -0
  309. package/cjs/utils/once-connected.js +251 -0
  310. package/cjs/utils/once-connected.js.map +1 -0
  311. package/cjs/validation/database-seal-plugins.d.ts +12 -0
  312. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  313. package/cjs/validation/database-seal-plugins.js +1 -0
  314. package/cjs/validation/database-seal-plugins.js.map +1 -0
  315. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  316. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  317. package/cjs/validation/database-writer-validation-error.js +160 -0
  318. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  319. package/cjs/validation/index.d.ts +3 -0
  320. package/cjs/validation/index.d.ts.map +1 -0
  321. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  322. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  323. package/cjs/validation/mutators/embed-mutator.js +33 -0
  324. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  325. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  326. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  327. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  328. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  329. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  330. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  331. package/cjs/validation/rules/database-model-rule.js +27 -0
  332. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  333. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  334. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  335. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  336. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  337. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  338. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  339. package/cjs/validation/validators/embed-validator.js +43 -0
  340. package/cjs/validation/validators/embed-validator.js.map +1 -0
  341. package/cjs/writer/database-writer.d.ts +181 -0
  342. package/cjs/writer/database-writer.d.ts.map +1 -0
  343. package/cjs/writer/database-writer.js +407 -0
  344. package/cjs/writer/database-writer.js.map +1 -0
  345. package/esm/data-source/data-source-registry.d.ts +108 -0
  346. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  347. package/esm/data-source/data-source-registry.js +145 -0
  348. package/esm/data-source/data-source-registry.js.map +1 -0
  349. package/esm/data-source/data-source.d.ts +147 -0
  350. package/esm/data-source/data-source.d.ts.map +1 -0
  351. package/esm/data-source/data-source.js +83 -0
  352. package/esm/data-source/data-source.js.map +1 -0
  353. package/esm/database-dirty-tracker.d.ts +252 -0
  354. package/esm/database-dirty-tracker.d.ts.map +1 -0
  355. package/esm/database-dirty-tracker.js +386 -0
  356. package/esm/database-dirty-tracker.js.map +1 -0
  357. package/esm/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
  358. package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
  359. package/esm/drivers/mongodb/mongodb-blueprint.js +51 -0
  360. package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
  361. package/esm/drivers/mongodb/mongodb-driver.d.ts +325 -0
  362. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
  363. package/esm/drivers/mongodb/mongodb-driver.js +838 -0
  364. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
  365. package/esm/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
  366. package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
  367. package/esm/drivers/mongodb/mongodb-id-generator.js +149 -0
  368. package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
  369. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
  370. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
  371. package/esm/drivers/mongodb/mongodb-migration-driver.js +666 -0
  372. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
  373. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
  374. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
  375. package/esm/drivers/mongodb/mongodb-query-builder.js +1988 -0
  376. package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
  377. package/esm/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
  378. package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
  379. package/esm/drivers/mongodb/mongodb-query-operations.js +270 -0
  380. package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
  381. package/esm/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
  382. package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
  383. package/esm/drivers/mongodb/mongodb-query-parser.js +1351 -0
  384. package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
  385. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
  386. package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
  387. package/esm/drivers/mongodb/mongodb-sync-adapter.js +146 -0
  388. package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
  389. package/esm/drivers/mongodb/types.d.ts +43 -0
  390. package/esm/drivers/mongodb/types.d.ts.map +1 -0
  391. package/esm/drivers/postgres/index.d.ts +16 -0
  392. package/esm/drivers/postgres/index.d.ts.map +1 -0
  393. package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
  394. package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
  395. package/esm/drivers/postgres/postgres-blueprint.js +121 -0
  396. package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
  397. package/esm/drivers/postgres/postgres-dialect.d.ts +136 -0
  398. package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
  399. package/esm/drivers/postgres/postgres-dialect.js +268 -0
  400. package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
  401. package/esm/drivers/postgres/postgres-driver.d.ts +432 -0
  402. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
  403. package/esm/drivers/postgres/postgres-driver.js +1010 -0
  404. package/esm/drivers/postgres/postgres-driver.js.map +1 -0
  405. package/esm/drivers/postgres/postgres-migration-driver.d.ts +397 -0
  406. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
  407. package/esm/drivers/postgres/postgres-migration-driver.js +900 -0
  408. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
  409. package/esm/drivers/postgres/postgres-query-builder.d.ts +254 -0
  410. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
  411. package/esm/drivers/postgres/postgres-query-builder.js +933 -0
  412. package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
  413. package/esm/drivers/postgres/postgres-query-parser.d.ts +328 -0
  414. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
  415. package/esm/drivers/postgres/postgres-query-parser.js +868 -0
  416. package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
  417. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  418. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  419. package/esm/drivers/postgres/postgres-sql-serializer.js +400 -0
  420. package/esm/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  421. package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
  422. package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
  423. package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
  424. package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
  425. package/esm/drivers/postgres/types.d.ts +144 -0
  426. package/esm/drivers/postgres/types.d.ts.map +1 -0
  427. package/esm/drivers/sql/index.d.ts +10 -0
  428. package/esm/drivers/sql/index.d.ts.map +1 -0
  429. package/esm/drivers/sql/sql-dialect.contract.d.ts +204 -0
  430. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
  431. package/esm/drivers/sql/sql-types.d.ts +202 -0
  432. package/esm/drivers/sql/sql-types.d.ts.map +1 -0
  433. package/esm/errors/missing-data-source.error.d.ts +22 -0
  434. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  435. package/esm/errors/missing-data-source.error.js +29 -0
  436. package/esm/errors/missing-data-source.error.js.map +1 -0
  437. package/esm/errors/transaction-rollback.error.d.ts +20 -0
  438. package/esm/errors/transaction-rollback.error.d.ts.map +1 -0
  439. package/esm/errors/transaction-rollback.error.js +27 -0
  440. package/esm/errors/transaction-rollback.error.js.map +1 -0
  441. package/esm/events/model-events.d.ts +231 -0
  442. package/esm/events/model-events.d.ts.map +1 -0
  443. package/esm/events/model-events.js +259 -0
  444. package/esm/events/model-events.js.map +1 -0
  445. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  446. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  447. package/esm/expressions/aggregate-expressions.js +221 -0
  448. package/esm/expressions/aggregate-expressions.js.map +1 -0
  449. package/esm/expressions/index.d.ts +2 -0
  450. package/esm/expressions/index.d.ts.map +1 -0
  451. package/esm/index.d.ts +45 -0
  452. package/esm/index.d.ts.map +1 -0
  453. package/esm/index.js +1 -0
  454. package/esm/index.js.map +1 -0
  455. package/esm/migration/column-builder.d.ts +417 -0
  456. package/esm/migration/column-builder.d.ts.map +1 -0
  457. package/esm/migration/column-builder.js +586 -0
  458. package/esm/migration/column-builder.js.map +1 -0
  459. package/esm/migration/column-helpers.d.ts +275 -0
  460. package/esm/migration/column-helpers.d.ts.map +1 -0
  461. package/esm/migration/column-helpers.js +389 -0
  462. package/esm/migration/column-helpers.js.map +1 -0
  463. package/esm/migration/foreign-key-builder.d.ts +103 -0
  464. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  465. package/esm/migration/foreign-key-builder.js +121 -0
  466. package/esm/migration/foreign-key-builder.js.map +1 -0
  467. package/esm/migration/index.d.ts +7 -0
  468. package/esm/migration/index.d.ts.map +1 -0
  469. package/esm/migration/migration-runner.d.ts +278 -0
  470. package/esm/migration/migration-runner.d.ts.map +1 -0
  471. package/esm/migration/migration-runner.js +815 -0
  472. package/esm/migration/migration-runner.js.map +1 -0
  473. package/esm/migration/migration.d.ts +1992 -0
  474. package/esm/migration/migration.d.ts.map +1 -0
  475. package/esm/migration/migration.js +2162 -0
  476. package/esm/migration/migration.js.map +1 -0
  477. package/esm/migration/sql-grammar.d.ts +61 -0
  478. package/esm/migration/sql-grammar.d.ts.map +1 -0
  479. package/esm/migration/sql-grammar.js +164 -0
  480. package/esm/migration/sql-grammar.js.map +1 -0
  481. package/esm/migration/sql-serializer.d.ts +22 -0
  482. package/esm/migration/sql-serializer.d.ts.map +1 -0
  483. package/esm/migration/sql-serializer.js +26 -0
  484. package/esm/migration/sql-serializer.js.map +1 -0
  485. package/esm/migration/types.d.ts +155 -0
  486. package/esm/migration/types.d.ts.map +1 -0
  487. package/esm/model/methods/accessor-methods.d.ts +13 -0
  488. package/esm/model/methods/accessor-methods.d.ts.map +1 -0
  489. package/esm/model/methods/accessor-methods.js +51 -0
  490. package/esm/model/methods/accessor-methods.js.map +1 -0
  491. package/esm/model/methods/delete-methods.d.ts +10 -0
  492. package/esm/model/methods/delete-methods.d.ts.map +1 -0
  493. package/esm/model/methods/delete-methods.js +10 -0
  494. package/esm/model/methods/delete-methods.js.map +1 -0
  495. package/esm/model/methods/dirty-methods.d.ts +10 -0
  496. package/esm/model/methods/dirty-methods.d.ts.map +1 -0
  497. package/esm/model/methods/dirty-methods.js +15 -0
  498. package/esm/model/methods/dirty-methods.js.map +1 -0
  499. package/esm/model/methods/hydration-methods.d.ts +10 -0
  500. package/esm/model/methods/hydration-methods.d.ts.map +1 -0
  501. package/esm/model/methods/hydration-methods.js +57 -0
  502. package/esm/model/methods/hydration-methods.js.map +1 -0
  503. package/esm/model/methods/instance-event-methods.d.ts +7 -0
  504. package/esm/model/methods/instance-event-methods.d.ts.map +1 -0
  505. package/esm/model/methods/instance-event-methods.js +15 -0
  506. package/esm/model/methods/instance-event-methods.js.map +1 -0
  507. package/esm/model/methods/meta-methods.d.ts +7 -0
  508. package/esm/model/methods/meta-methods.d.ts.map +1 -0
  509. package/esm/model/methods/meta-methods.js +78 -0
  510. package/esm/model/methods/meta-methods.js.map +1 -0
  511. package/esm/model/methods/query-methods.d.ts +24 -0
  512. package/esm/model/methods/query-methods.d.ts.map +1 -0
  513. package/esm/model/methods/query-methods.js +164 -0
  514. package/esm/model/methods/query-methods.js.map +1 -0
  515. package/esm/model/methods/restore-methods.d.ts +10 -0
  516. package/esm/model/methods/restore-methods.d.ts.map +1 -0
  517. package/esm/model/methods/restore-methods.js +13 -0
  518. package/esm/model/methods/restore-methods.js.map +1 -0
  519. package/esm/model/methods/scope-methods.d.ts +7 -0
  520. package/esm/model/methods/scope-methods.d.ts.map +1 -0
  521. package/esm/model/methods/scope-methods.js +15 -0
  522. package/esm/model/methods/scope-methods.js.map +1 -0
  523. package/esm/model/methods/serialization-methods.d.ts +3 -0
  524. package/esm/model/methods/serialization-methods.d.ts.map +1 -0
  525. package/esm/model/methods/serialization-methods.js +27 -0
  526. package/esm/model/methods/serialization-methods.js.map +1 -0
  527. package/esm/model/methods/static-event-methods.d.ts +9 -0
  528. package/esm/model/methods/static-event-methods.d.ts.map +1 -0
  529. package/esm/model/methods/static-event-methods.js +29 -0
  530. package/esm/model/methods/static-event-methods.js.map +1 -0
  531. package/esm/model/methods/write-methods.d.ts +10 -0
  532. package/esm/model/methods/write-methods.d.ts.map +1 -0
  533. package/esm/model/methods/write-methods.js +52 -0
  534. package/esm/model/methods/write-methods.js.map +1 -0
  535. package/esm/model/model.d.ts +1647 -0
  536. package/esm/model/model.d.ts.map +1 -0
  537. package/esm/model/model.js +1657 -0
  538. package/esm/model/model.js.map +1 -0
  539. package/esm/model/model.types.d.ts +44 -0
  540. package/esm/model/model.types.d.ts.map +1 -0
  541. package/esm/model/register-model.d.ts +81 -0
  542. package/esm/model/register-model.d.ts.map +1 -0
  543. package/esm/model/register-model.js +94 -0
  544. package/esm/model/register-model.js.map +1 -0
  545. package/esm/query-builder/query-builder.d.ts +556 -0
  546. package/esm/query-builder/query-builder.d.ts.map +1 -0
  547. package/esm/query-builder/query-builder.js +1070 -0
  548. package/esm/query-builder/query-builder.js.map +1 -0
  549. package/esm/relations/helpers.d.ts +156 -0
  550. package/esm/relations/helpers.d.ts.map +1 -0
  551. package/esm/relations/helpers.js +202 -0
  552. package/esm/relations/helpers.js.map +1 -0
  553. package/esm/relations/index.d.ts +35 -0
  554. package/esm/relations/index.d.ts.map +1 -0
  555. package/esm/relations/pivot-operations.d.ts +160 -0
  556. package/esm/relations/pivot-operations.d.ts.map +1 -0
  557. package/esm/relations/pivot-operations.js +293 -0
  558. package/esm/relations/pivot-operations.js.map +1 -0
  559. package/esm/relations/relation-hydrator.d.ts +68 -0
  560. package/esm/relations/relation-hydrator.d.ts.map +1 -0
  561. package/esm/relations/relation-hydrator.js +81 -0
  562. package/esm/relations/relation-hydrator.js.map +1 -0
  563. package/esm/relations/relation-loader.d.ts +194 -0
  564. package/esm/relations/relation-loader.d.ts.map +1 -0
  565. package/esm/relations/relation-loader.js +466 -0
  566. package/esm/relations/relation-loader.js.map +1 -0
  567. package/esm/relations/types.d.ts +306 -0
  568. package/esm/relations/types.d.ts.map +1 -0
  569. package/esm/remover/database-remover.d.ts +100 -0
  570. package/esm/remover/database-remover.d.ts.map +1 -0
  571. package/esm/remover/database-remover.js +214 -0
  572. package/esm/remover/database-remover.js.map +1 -0
  573. package/esm/restorer/database-restorer.d.ts +131 -0
  574. package/esm/restorer/database-restorer.d.ts.map +1 -0
  575. package/esm/restorer/database-restorer.js +434 -0
  576. package/esm/restorer/database-restorer.js.map +1 -0
  577. package/esm/sql-database-dirty-tracker.d.ts +13 -0
  578. package/esm/sql-database-dirty-tracker.d.ts.map +1 -0
  579. package/esm/sql-database-dirty-tracker.js +14 -0
  580. package/esm/sql-database-dirty-tracker.js.map +1 -0
  581. package/esm/sync/index.d.ts +12 -0
  582. package/esm/sync/index.d.ts.map +1 -0
  583. package/esm/sync/model-events.d.ts +62 -0
  584. package/esm/sync/model-events.d.ts.map +1 -0
  585. package/esm/sync/model-events.js +49 -0
  586. package/esm/sync/model-events.js.map +1 -0
  587. package/esm/sync/model-sync-operation.d.ts +163 -0
  588. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  589. package/esm/sync/model-sync-operation.js +292 -0
  590. package/esm/sync/model-sync-operation.js.map +1 -0
  591. package/esm/sync/model-sync.d.ts +130 -0
  592. package/esm/sync/model-sync.d.ts.map +1 -0
  593. package/esm/sync/model-sync.js +178 -0
  594. package/esm/sync/model-sync.js.map +1 -0
  595. package/esm/sync/sync-context.d.ts +70 -0
  596. package/esm/sync/sync-context.d.ts.map +1 -0
  597. package/esm/sync/sync-context.js +101 -0
  598. package/esm/sync/sync-context.js.map +1 -0
  599. package/esm/sync/sync-manager.d.ts +213 -0
  600. package/esm/sync/sync-manager.d.ts.map +1 -0
  601. package/esm/sync/sync-manager.js +689 -0
  602. package/esm/sync/sync-manager.js.map +1 -0
  603. package/esm/sync/types.d.ts +289 -0
  604. package/esm/sync/types.d.ts.map +1 -0
  605. package/esm/test-migrations/test-enhanced-features.migration.d.ts +15 -0
  606. package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
  607. package/esm/types.d.ts +371 -0
  608. package/esm/types.d.ts.map +1 -0
  609. package/esm/utils/connect-to-database.d.ts +307 -0
  610. package/esm/utils/connect-to-database.d.ts.map +1 -0
  611. package/esm/utils/connect-to-database.js +130 -0
  612. package/esm/utils/connect-to-database.js.map +1 -0
  613. package/esm/utils/database-writer.utils.d.ts +15 -0
  614. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  615. package/esm/utils/database-writer.utils.js +14 -0
  616. package/esm/utils/database-writer.utils.js.map +1 -0
  617. package/esm/utils/define-model.js +100 -0
  618. package/esm/utils/define-model.js.map +1 -0
  619. package/esm/utils/is-valid-date-value.d.ts +5 -0
  620. package/esm/utils/is-valid-date-value.d.ts.map +1 -0
  621. package/esm/utils/is-valid-date-value.js +25 -0
  622. package/esm/utils/is-valid-date-value.js.map +1 -0
  623. package/esm/utils/once-connected.d.ts +146 -0
  624. package/esm/utils/once-connected.d.ts.map +1 -0
  625. package/esm/utils/once-connected.js +251 -0
  626. package/esm/utils/once-connected.js.map +1 -0
  627. package/esm/validation/database-seal-plugins.d.ts +12 -0
  628. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  629. package/esm/validation/database-seal-plugins.js +1 -0
  630. package/esm/validation/database-seal-plugins.js.map +1 -0
  631. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  632. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  633. package/esm/validation/database-writer-validation-error.js +160 -0
  634. package/esm/validation/database-writer-validation-error.js.map +1 -0
  635. package/esm/validation/index.d.ts +3 -0
  636. package/esm/validation/index.d.ts.map +1 -0
  637. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  638. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  639. package/esm/validation/mutators/embed-mutator.js +33 -0
  640. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  641. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  642. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  643. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  644. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  645. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  646. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  647. package/esm/validation/rules/database-model-rule.js +27 -0
  648. package/esm/validation/rules/database-model-rule.js.map +1 -0
  649. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  650. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  651. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  652. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  653. package/esm/validation/validators/embed-validator.d.ts +21 -0
  654. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  655. package/esm/validation/validators/embed-validator.js +43 -0
  656. package/esm/validation/validators/embed-validator.js.map +1 -0
  657. package/esm/writer/database-writer.d.ts +181 -0
  658. package/esm/writer/database-writer.d.ts.map +1 -0
  659. package/esm/writer/database-writer.js +407 -0
  660. package/esm/writer/database-writer.js.map +1 -0
  661. package/package.json +4 -4
@@ -0,0 +1,666 @@
1
+ import {databaseTransactionContext}from'../../context/database-transaction-context.js';/**
2
+ * MongoDB-specific migration driver implementation.
3
+ *
4
+ * Key behaviors:
5
+ * - Column operations are **no-ops** (MongoDB is schema-less)
6
+ * - Index operations use native `createIndex()`
7
+ * - Foreign keys are **no-ops** (MongoDB has no FK constraints)
8
+ * - TTL indexes supported natively
9
+ * - Vector indexes use Atlas Search (when available)
10
+ * - Schema validation uses `collMod` command
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const migrationDriver = new MongoMigrationDriver(mongoDriver);
15
+ * await migrationDriver.createIndex("users", {
16
+ * columns: ["email"],
17
+ * unique: true,
18
+ * });
19
+ * ```
20
+ */
21
+ class MongoMigrationDriver {
22
+ driver;
23
+ /** Active transaction session (if any) */
24
+ session;
25
+ /**
26
+ * Create a new MongoDB migration driver.
27
+ *
28
+ * @param driver - The MongoDB driver instance
29
+ */
30
+ constructor(driver) {
31
+ this.driver = driver;
32
+ }
33
+ /**
34
+ * Get the MongoDB database instance.
35
+ */
36
+ get db() {
37
+ return this.driver.getDatabase();
38
+ }
39
+ /**
40
+ * Get session options for operations.
41
+ */
42
+ get sessionOptions() {
43
+ const session = databaseTransactionContext.getSession();
44
+ return session ? { session } : undefined;
45
+ }
46
+ // ============================================================================
47
+ // TABLE/COLLECTION OPERATIONS
48
+ // ============================================================================
49
+ /**
50
+ * Create a new collection.
51
+ *
52
+ * MongoDB creates collections lazily on first insert, but this method
53
+ * creates them explicitly for migrations that need to add indexes or
54
+ * schema validation.
55
+ */
56
+ async createTable(table) {
57
+ try {
58
+ await this.db.createCollection(table);
59
+ }
60
+ catch (error) {
61
+ // Collection already exists - ignore
62
+ if (error.codeName === "NamespaceExists") {
63
+ return;
64
+ }
65
+ throw error;
66
+ }
67
+ }
68
+ /**
69
+ * Create table if not exists
70
+ */
71
+ async createTableIfNotExists(table) {
72
+ try {
73
+ await this.db.createCollection(table);
74
+ }
75
+ catch (error) {
76
+ // Collection already exists - ignore
77
+ if (error.codeName === "NamespaceExists") {
78
+ return;
79
+ }
80
+ throw error;
81
+ }
82
+ }
83
+ /**
84
+ * Drop an existing collection.
85
+ *
86
+ * @throws Error if collection doesn't exist
87
+ */
88
+ async dropTable(table) {
89
+ await this.db.dropCollection(table);
90
+ }
91
+ /**
92
+ * Drop collection if it exists (no error if missing).
93
+ */
94
+ async dropTableIfExists(table) {
95
+ try {
96
+ await this.db.dropCollection(table);
97
+ }
98
+ catch {
99
+ // Collection doesn't exist - ignore
100
+ }
101
+ }
102
+ /**
103
+ * Rename a collection.
104
+ */
105
+ async renameTable(from, to) {
106
+ await this.db.renameCollection(from, to);
107
+ }
108
+ /**
109
+ * Truncate a collection — remove all documents.
110
+ *
111
+ * @param table - Collection name
112
+ */
113
+ async truncateTable(table) {
114
+ await this.db.collection(table).deleteMany({});
115
+ }
116
+ /**
117
+ * Check if a collection exists.
118
+ */
119
+ async tableExists(table) {
120
+ const collections = await this.db.listCollections({ name: table }).toArray();
121
+ return collections.length > 0;
122
+ }
123
+ /**
124
+ * List all columns in a collection.
125
+ *
126
+ * MongoDB is schema-less, so this returns an empty array.
127
+ * For actual schema inspection, would need to sample documents.
128
+ */
129
+ async listColumns(_table) {
130
+ // No-op: MongoDB is schema-less
131
+ return [];
132
+ }
133
+ /**
134
+ * List all collections in the current database.
135
+ */
136
+ async listTables() {
137
+ const collections = await this.db.listCollections().toArray();
138
+ return collections.map((col) => col.name);
139
+ }
140
+ /**
141
+ * Ensure the migrations tracking collection exists.
142
+ *
143
+ * MongoDB creates collections lazily, but we can create explicitly
144
+ * and add a unique index on the name field.
145
+ *
146
+ * @param tableName - Name of the migrations collection
147
+ */
148
+ async ensureMigrationsTable(tableName) {
149
+ // Create collection if not exists
150
+ const exists = await this.tableExists(tableName);
151
+ if (!exists) {
152
+ await this.db.createCollection(tableName);
153
+ }
154
+ // Ensure unique index on name
155
+ await this.db.collection(tableName).createIndex({ name: 1 }, { unique: true });
156
+ }
157
+ // ============================================================================
158
+ // COLUMN OPERATIONS (No-ops for MongoDB)
159
+ // ============================================================================
160
+ /**
161
+ * Add a column (no-op for MongoDB).
162
+ *
163
+ * MongoDB is schema-less, so columns don't need to be declared.
164
+ */
165
+ async addColumn(_table, _column) {
166
+ // No-op: MongoDB is schema-less
167
+ }
168
+ /**
169
+ * Drop a column by running $unset on all documents.
170
+ *
171
+ * This actually removes the field from all documents in the collection.
172
+ */
173
+ async dropColumn(table, column) {
174
+ const collection = this.db.collection(table);
175
+ await collection.updateMany({}, { $unset: { [column]: "" } }, this.sessionOptions);
176
+ }
177
+ /**
178
+ * Drop multiple columns by running $unset on all documents.
179
+ */
180
+ async dropColumns(table, columns) {
181
+ const collection = this.db.collection(table);
182
+ const unsetFields = {};
183
+ for (const column of columns) {
184
+ unsetFields[column] = "";
185
+ }
186
+ await collection.updateMany({}, { $unset: unsetFields }, this.sessionOptions);
187
+ }
188
+ /**
189
+ * Rename a column by running $rename on all documents.
190
+ */
191
+ async renameColumn(table, from, to) {
192
+ const collection = this.db.collection(table);
193
+ await collection.updateMany({}, { $rename: { [from]: to } }, this.sessionOptions);
194
+ }
195
+ /**
196
+ * Modify a column definition (no-op for MongoDB).
197
+ *
198
+ * MongoDB is schema-less, so column types don't need to be modified.
199
+ */
200
+ async modifyColumn(_table, _column) {
201
+ // No-op: MongoDB is schema-less
202
+ }
203
+ /**
204
+ * Create standard timestamp columns (created_at, updated_at).
205
+ *
206
+ * MongoDB implementation is a no-op since timestamps are handled
207
+ * at the application level via Model hooks.
208
+ *
209
+ * @param _table - Collection name (unused)
210
+ */
211
+ async createTimestampColumns(_table) {
212
+ // No-op: MongoDB handles timestamps at application level
213
+ }
214
+ // ============================================================================
215
+ // INDEX OPERATIONS
216
+ // ============================================================================
217
+ /**
218
+ * Create an index on one or more columns.
219
+ *
220
+ * **Note**: Expression-based indexes, INCLUDE clause, and concurrent creation
221
+ * are PostgreSQL-specific features and are silently ignored by MongoDB.
222
+ */
223
+ async createIndex(table, index) {
224
+ // Skip expression-based indexes (PostgreSQL-specific)
225
+ if (index.expressions && index.expressions.length > 0) {
226
+ // No-op: MongoDB doesn't support expression-based indexes
227
+ return;
228
+ }
229
+ // Ignore include and concurrently options (PostgreSQL-specific)
230
+ // MongoDB doesn't support covering indexes or concurrent creation
231
+ const collection = this.db.collection(table);
232
+ // Build index specification
233
+ const indexSpec = {};
234
+ for (let i = 0; i < index.columns.length; i++) {
235
+ const column = index.columns[i];
236
+ const direction = index.directions?.[i] === "desc" ? -1 : 1;
237
+ indexSpec[column] = direction;
238
+ }
239
+ // Build index options
240
+ const options = {};
241
+ if (index.name) {
242
+ options.name = index.name;
243
+ }
244
+ if (index.unique) {
245
+ options.unique = true;
246
+ }
247
+ if (index.sparse) {
248
+ options.sparse = true;
249
+ }
250
+ if (index.where) {
251
+ options.partialFilterExpression = index.where;
252
+ }
253
+ await collection.createIndex(indexSpec, options);
254
+ }
255
+ /**
256
+ * Drop an index by name or columns.
257
+ *
258
+ * @param indexNameOrColumns - Index name (string) or columns array
259
+ */
260
+ async dropIndex(table, indexNameOrColumns) {
261
+ const collection = this.db.collection(table);
262
+ if (!Array.isArray(indexNameOrColumns)) {
263
+ indexNameOrColumns = [indexNameOrColumns];
264
+ }
265
+ // If columns array provided, generate MongoDB-style index name
266
+ // MongoDB creates index names like: "column1_1_column2_1"
267
+ const indexName = indexNameOrColumns.map((col) => `${col}_1`).join("_");
268
+ await collection.dropIndex(indexName);
269
+ }
270
+ /**
271
+ * Create a unique index/constraint.
272
+ */
273
+ async createUniqueIndex(table, columns, name) {
274
+ await this.createIndex(table, {
275
+ columns,
276
+ unique: true,
277
+ name,
278
+ });
279
+ }
280
+ /**
281
+ * Drop a unique index by finding its name from columns.
282
+ */
283
+ async dropUniqueIndex(table, columns) {
284
+ const collection = this.db.collection(table);
285
+ const indexes = await collection.indexes();
286
+ // Find the index that matches the columns
287
+ for (const idx of indexes) {
288
+ const indexKeys = Object.keys(idx.key || {});
289
+ if (indexKeys.length === columns.length && indexKeys.every((key, i) => key === columns[i])) {
290
+ if (idx.name && idx.name !== "_id_") {
291
+ await collection.dropIndex(idx.name);
292
+ return;
293
+ }
294
+ }
295
+ }
296
+ }
297
+ // ============================================================================
298
+ // SPECIALIZED INDEXES
299
+ // ============================================================================
300
+ /**
301
+ * Create a full-text search index.
302
+ *
303
+ * MongoDB uses "text" index type for full-text search.
304
+ */
305
+ async createFullTextIndex(table, columns, options) {
306
+ const collection = this.db.collection(table);
307
+ // Build text index specification
308
+ const indexSpec = {};
309
+ for (const column of columns) {
310
+ indexSpec[column] = "text";
311
+ }
312
+ // Build options
313
+ const indexOptions = {};
314
+ if (options?.name) {
315
+ indexOptions.name = options.name;
316
+ }
317
+ if (options?.language) {
318
+ indexOptions.default_language = options.language;
319
+ }
320
+ if (options?.weights) {
321
+ indexOptions.weights = options.weights;
322
+ }
323
+ await collection.createIndex(indexSpec, indexOptions);
324
+ }
325
+ /**
326
+ * Drop a full-text search index.
327
+ */
328
+ async dropFullTextIndex(table, name) {
329
+ await this.dropIndex(table, name);
330
+ }
331
+ /**
332
+ * Create a geo-spatial index.
333
+ */
334
+ async createGeoIndex(table, column, options) {
335
+ const collection = this.db.collection(table);
336
+ // Build geo index specification - MongoDB accepts string values for geo indexes
337
+ const indexType = options?.type ?? "2dsphere";
338
+ // Build options
339
+ const indexOptions = {};
340
+ if (options?.name) {
341
+ indexOptions.name = options.name;
342
+ }
343
+ if (options?.min !== undefined) {
344
+ indexOptions.min = options.min;
345
+ }
346
+ if (options?.max !== undefined) {
347
+ indexOptions.max = options.max;
348
+ }
349
+ await collection.createIndex({ [column]: indexType }, indexOptions);
350
+ }
351
+ /**
352
+ * Drop a geo-spatial index.
353
+ */
354
+ async dropGeoIndex(table, column) {
355
+ const collection = this.db.collection(table);
356
+ const indexes = await collection.indexes();
357
+ // Find the geo index for this column
358
+ for (const idx of indexes) {
359
+ const key = idx.key || {};
360
+ if (column in key && (key[column] === "2dsphere" || key[column] === "2d")) {
361
+ if (idx.name && idx.name !== "_id_") {
362
+ await collection.dropIndex(idx.name);
363
+ return;
364
+ }
365
+ }
366
+ }
367
+ }
368
+ /**
369
+ * Create a vector search index for AI embeddings.
370
+ *
371
+ * Note: This requires MongoDB Atlas with Vector Search enabled.
372
+ * For self-hosted MongoDB, this will create a regular index on the field.
373
+ */
374
+ async createVectorIndex(table, column, options) {
375
+ const collection = this.db.collection(table);
376
+ // Try to create Atlas vector search index first
377
+ try {
378
+ // Check if we're on Atlas by looking for vectorSearch indexes
379
+ const searchIndexes = await collection.listSearchIndexes?.()?.toArray?.();
380
+ if (Array.isArray(searchIndexes)) {
381
+ // We're on Atlas - create a vector search index
382
+ await collection.createSearchIndex({
383
+ name: options.name ?? `${column}_vector_idx`,
384
+ definition: {
385
+ mappings: {
386
+ dynamic: false,
387
+ fields: {
388
+ [column]: {
389
+ type: "knnVector",
390
+ dimensions: options.dimensions,
391
+ similarity: options.similarity ?? "cosine",
392
+ },
393
+ },
394
+ },
395
+ },
396
+ });
397
+ return;
398
+ }
399
+ }
400
+ catch {
401
+ // Not on Atlas or doesn't support search indexes
402
+ }
403
+ // Fallback: Create a regular index on the vector field
404
+ // This won't provide vector search capabilities but ensures the field is indexed
405
+ await collection.createIndex({ [column]: 1 }, { name: options.name ?? `${column}_vector_idx` });
406
+ }
407
+ /**
408
+ * Drop a vector search index.
409
+ */
410
+ async dropVectorIndex(table, column) {
411
+ const collection = this.db.collection(table);
412
+ // Try to drop Atlas search index first
413
+ try {
414
+ const searchIndexes = await collection.listSearchIndexes?.()?.toArray?.();
415
+ if (Array.isArray(searchIndexes)) {
416
+ for (const idx of searchIndexes) {
417
+ if (idx.name?.includes(column)) {
418
+ await collection.dropSearchIndex(idx.name);
419
+ return;
420
+ }
421
+ }
422
+ }
423
+ }
424
+ catch {
425
+ // Not on Atlas
426
+ }
427
+ // Fallback: Try to drop regular index
428
+ const indexName = `${column}_vector_idx`;
429
+ try {
430
+ await collection.dropIndex(indexName);
431
+ }
432
+ catch {
433
+ // Index doesn't exist
434
+ }
435
+ }
436
+ /**
437
+ * Create a TTL (time-to-live) index for automatic document expiration.
438
+ */
439
+ async createTTLIndex(table, column, expireAfterSeconds) {
440
+ const collection = this.db.collection(table);
441
+ await collection.createIndex({ [column]: 1 }, { expireAfterSeconds });
442
+ }
443
+ /**
444
+ * Drop a TTL index.
445
+ */
446
+ async dropTTLIndex(table, column) {
447
+ const collection = this.db.collection(table);
448
+ const indexes = await collection.indexes();
449
+ // Find the TTL index for this column
450
+ for (const idx of indexes) {
451
+ const key = idx.key || {};
452
+ if (column in key && idx.expireAfterSeconds !== undefined) {
453
+ if (idx.name && idx.name !== "_id_") {
454
+ await collection.dropIndex(idx.name);
455
+ return;
456
+ }
457
+ }
458
+ }
459
+ }
460
+ /**
461
+ * List all indexes on a collection.
462
+ *
463
+ * @param table - Collection name
464
+ * @returns Array of index metadata
465
+ */
466
+ async listIndexes(table) {
467
+ const collection = this.db.collection(table);
468
+ const indexes = await collection.indexes();
469
+ return indexes.map((idx) => ({
470
+ name: idx.name ?? "",
471
+ columns: Object.keys(idx.key ?? {}),
472
+ type: "btree",
473
+ unique: idx.unique ?? false,
474
+ partial: !!idx.partialFilterExpression,
475
+ options: { sparse: idx.sparse, expireAfterSeconds: idx.expireAfterSeconds },
476
+ }));
477
+ }
478
+ // ============================================================================
479
+ // CONSTRAINTS (No-ops for MongoDB)
480
+ // ============================================================================
481
+ /**
482
+ * Add a foreign key constraint (no-op for MongoDB).
483
+ *
484
+ * MongoDB doesn't support foreign key constraints.
485
+ * Use application-level validation or DBRefs instead.
486
+ */
487
+ async addForeignKey(_table, _foreignKey) {
488
+ // No-op: MongoDB doesn't support foreign keys
489
+ }
490
+ /**
491
+ * Drop a foreign key constraint (no-op for MongoDB).
492
+ */
493
+ async dropForeignKey(_table, _name) {
494
+ // No-op: MongoDB doesn't support foreign keys
495
+ }
496
+ /**
497
+ * Add a primary key constraint (no-op for MongoDB).
498
+ *
499
+ * MongoDB always has _id as the primary key.
500
+ */
501
+ async addPrimaryKey(_table, _columns) {
502
+ // No-op: MongoDB always has _id as primary key
503
+ }
504
+ /**
505
+ * Drop the primary key constraint (no-op for MongoDB).
506
+ */
507
+ async dropPrimaryKey(_table) {
508
+ // No-op: Cannot drop _id index in MongoDB
509
+ }
510
+ /**
511
+ * Add a CHECK constraint (no-op for MongoDB).
512
+ *
513
+ * MongoDB doesn't support CHECK constraints.
514
+ * Use schema validation instead.
515
+ */
516
+ async addCheck(_table, _name, _expression) {
517
+ // No-op: MongoDB doesn't support CHECK constraints
518
+ }
519
+ /**
520
+ * Drop a CHECK constraint (no-op for MongoDB).
521
+ */
522
+ async dropCheck(_table, _name) {
523
+ // No-op: MongoDB doesn't support CHECK constraints
524
+ }
525
+ // ============================================================================
526
+ // SCHEMA VALIDATION (NoSQL)
527
+ // ============================================================================
528
+ /**
529
+ * Set JSON schema validation rules on a collection.
530
+ *
531
+ * Uses MongoDB's validator feature to enforce document structure.
532
+ *
533
+ * @example
534
+ * ```typescript
535
+ * await driver.setSchemaValidation("users", {
536
+ * bsonType: "object",
537
+ * required: ["name", "email"],
538
+ * properties: {
539
+ * name: { bsonType: "string" },
540
+ * email: { bsonType: "string" },
541
+ * },
542
+ * });
543
+ * ```
544
+ */
545
+ async setSchemaValidation(table, schema) {
546
+ await this.db.command({
547
+ collMod: table,
548
+ validator: { $jsonSchema: schema },
549
+ validationLevel: "strict",
550
+ validationAction: "error",
551
+ });
552
+ }
553
+ /**
554
+ * Remove schema validation rules from a collection.
555
+ */
556
+ async removeSchemaValidation(table) {
557
+ await this.db.command({
558
+ collMod: table,
559
+ validator: {},
560
+ validationLevel: "off",
561
+ });
562
+ }
563
+ // ============================================================================
564
+ // TRANSACTIONS
565
+ // ============================================================================
566
+ /**
567
+ * Begin a database transaction.
568
+ *
569
+ * Uses the driver's transaction mechanism.
570
+ */
571
+ async beginTransaction() {
572
+ const transaction = await this.driver.beginTransaction();
573
+ this.session = transaction.context;
574
+ }
575
+ /**
576
+ * Commit the current transaction.
577
+ */
578
+ async commit() {
579
+ if (this.session) {
580
+ await this.session.commitTransaction();
581
+ await this.session.endSession();
582
+ this.session = undefined;
583
+ }
584
+ }
585
+ /**
586
+ * Rollback the current transaction.
587
+ */
588
+ async rollback() {
589
+ if (this.session) {
590
+ await this.session.abortTransaction();
591
+ await this.session.endSession();
592
+ this.session = undefined;
593
+ }
594
+ }
595
+ /**
596
+ * MongoDB supports transactions (requires replica set).
597
+ */
598
+ supportsTransactions() {
599
+ return true;
600
+ }
601
+ /**
602
+ * Get the default transactional behavior for MongoDB.
603
+ *
604
+ * MongoDB DDL operations (createCollection, createIndex, etc.) cannot
605
+ * be wrapped in transactions, even with replica sets. Transactions only
606
+ * work for document CRUD operations.
607
+ *
608
+ * @returns false (MongoDB DDL is not transactional)
609
+ */
610
+ getDefaultTransactional() {
611
+ return false;
612
+ }
613
+ // ============================================================================
614
+ // DEFAULTS
615
+ // ============================================================================
616
+ /**
617
+ * Get the default UUID generation expression for MongoDB.
618
+ *
619
+ * MongoDB does not use SQL-level UUID defaults — UUID generation
620
+ * is handled at the application level. Always returns `undefined`.
621
+ *
622
+ * @param _migrationDefaults - Ignored (MongoDB handles UUIDs at app level)
623
+ * @returns undefined
624
+ */
625
+ getUuidDefault(_migrationDefaults) {
626
+ return undefined;
627
+ }
628
+ // ============================================================================
629
+ // EXTENSIONS
630
+ // ============================================================================
631
+ /**
632
+ * Check if a database extension is available (no-op for MongoDB).
633
+ *
634
+ * @param _extension - Extension name
635
+ */
636
+ async isExtensionAvailable(_extension) {
637
+ return true; // MongoDB doesn't use SQL extensions
638
+ }
639
+ /**
640
+ * Get the official documentation or installation URL for a database extension.
641
+ *
642
+ * @param _extension - Extension name
643
+ */
644
+ getExtensionDocsUrl(_extension) {
645
+ return undefined; // MongoDB doesn't use SQL extensions
646
+ }
647
+ // ============================================================================
648
+ // RAW ACCESS
649
+ // ============================================================================
650
+ /**
651
+ * Execute raw operations with direct database access.
652
+ *
653
+ * @param callback - Callback receiving the MongoDB Db instance
654
+ * @returns Result from callback
655
+ *
656
+ * @example
657
+ * ```typescript
658
+ * await driver.raw(async (db) => {
659
+ * await db.collection("users").updateMany({}, { $set: { active: true } });
660
+ * });
661
+ * ```
662
+ */
663
+ async raw(callback) {
664
+ return callback(this.db);
665
+ }
666
+ }export{MongoMigrationDriver};//# sourceMappingURL=mongodb-migration-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb-migration-driver.js","sources":["../../../src/drivers/mongodb/mongodb-migration-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}