@warlock.js/cascade 4.0.47 → 4.0.58

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 (401) 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 +31 -0
  6. package/cjs/context/database-transaction-context.d.ts.map +1 -0
  7. package/cjs/context/database-transaction-context.js +34 -0
  8. package/cjs/context/database-transaction-context.js.map +1 -0
  9. package/cjs/contracts/database-driver.contract.d.ts +143 -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 +45 -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 +365 -0
  24. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
  25. package/cjs/contracts/query-builder.contract.d.ts +1128 -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 +104 -0
  30. package/cjs/data-source/data-source-registry.d.ts.map +1 -0
  31. package/cjs/data-source/data-source-registry.js +138 -0
  32. package/cjs/data-source/data-source-registry.js.map +1 -0
  33. package/cjs/data-source/data-source.d.ts +106 -0
  34. package/cjs/data-source/data-source.d.ts.map +1 -0
  35. package/cjs/data-source/data-source.js +77 -0
  36. package/cjs/data-source/data-source.js.map +1 -0
  37. package/cjs/database-dirty-tracker.d.ts +253 -0
  38. package/cjs/database-dirty-tracker.d.ts.map +1 -0
  39. package/cjs/database-dirty-tracker.js +389 -0
  40. package/cjs/database-dirty-tracker.js.map +1 -0
  41. package/cjs/drivers/mongo/mongo-id-generator.d.ts +116 -0
  42. package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  43. package/cjs/drivers/mongo/mongo-id-generator.js +149 -0
  44. package/cjs/drivers/mongo/mongo-id-generator.js.map +1 -0
  45. package/cjs/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  46. package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  47. package/cjs/drivers/mongo/mongo-migration-driver.js +524 -0
  48. package/cjs/drivers/mongo/mongo-migration-driver.js.map +1 -0
  49. package/cjs/drivers/mongo/mongo-query-builder.d.ts +922 -0
  50. package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  51. package/cjs/drivers/mongo/mongo-query-builder.js +1740 -0
  52. package/cjs/drivers/mongo/mongo-query-builder.js.map +1 -0
  53. package/cjs/drivers/mongo/mongo-query-operations.d.ts +226 -0
  54. package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  55. package/cjs/drivers/mongo/mongo-query-operations.js +270 -0
  56. package/cjs/drivers/mongo/mongo-query-operations.js.map +1 -0
  57. package/cjs/drivers/mongo/mongo-query-parser.d.ts +262 -0
  58. package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  59. package/cjs/drivers/mongo/mongo-query-parser.js +1351 -0
  60. package/cjs/drivers/mongo/mongo-query-parser.js.map +1 -0
  61. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  62. package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  63. package/cjs/drivers/mongo/mongo-sync-adapter.js +146 -0
  64. package/cjs/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  65. package/cjs/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  66. package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  67. package/cjs/drivers/mongo/mongodb-blueprint.js +51 -0
  68. package/cjs/drivers/mongo/mongodb-blueprint.js.map +1 -0
  69. package/cjs/drivers/mongo/mongodb-driver.d.ts +188 -0
  70. package/cjs/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  71. package/cjs/drivers/mongo/mongodb-driver.js +411 -0
  72. package/cjs/drivers/mongo/mongodb-driver.js.map +1 -0
  73. package/cjs/drivers/mongo/types.d.ts +43 -0
  74. package/cjs/drivers/mongo/types.d.ts.map +1 -0
  75. package/cjs/errors/missing-data-source.error.d.ts +22 -0
  76. package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
  77. package/cjs/errors/missing-data-source.error.js +29 -0
  78. package/cjs/errors/missing-data-source.error.js.map +1 -0
  79. package/cjs/events/model-events.d.ts +231 -0
  80. package/cjs/events/model-events.d.ts.map +1 -0
  81. package/cjs/events/model-events.js +259 -0
  82. package/cjs/events/model-events.js.map +1 -0
  83. package/cjs/expressions/aggregate-expressions.d.ts +215 -0
  84. package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
  85. package/cjs/expressions/aggregate-expressions.js +221 -0
  86. package/cjs/expressions/aggregate-expressions.js.map +1 -0
  87. package/cjs/expressions/index.d.ts +2 -0
  88. package/cjs/expressions/index.d.ts.map +1 -0
  89. package/cjs/index.d.ts +41 -0
  90. package/cjs/index.d.ts.map +1 -0
  91. package/cjs/index.js +1 -267
  92. package/cjs/index.js.map +1 -1
  93. package/cjs/migration/column-builder.d.ts +167 -0
  94. package/cjs/migration/column-builder.d.ts.map +1 -0
  95. package/cjs/migration/column-builder.js +217 -0
  96. package/cjs/migration/column-builder.js.map +1 -0
  97. package/cjs/migration/foreign-key-builder.d.ts +110 -0
  98. package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
  99. package/cjs/migration/foreign-key-builder.js +129 -0
  100. package/cjs/migration/foreign-key-builder.js.map +1 -0
  101. package/cjs/migration/index.d.ts +6 -0
  102. package/cjs/migration/index.d.ts.map +1 -0
  103. package/cjs/migration/migration-runner.d.ts +231 -0
  104. package/cjs/migration/migration-runner.d.ts.map +1 -0
  105. package/cjs/migration/migration-runner.js +443 -0
  106. package/cjs/migration/migration-runner.js.map +1 -0
  107. package/cjs/migration/migration.js +1346 -0
  108. package/cjs/migration/migration.js.map +1 -0
  109. package/cjs/migration/types.d.ts +132 -0
  110. package/cjs/migration/types.d.ts.map +1 -0
  111. package/cjs/model/model.d.ts +1267 -0
  112. package/cjs/model/model.d.ts.map +1 -0
  113. package/cjs/model/model.js +1463 -0
  114. package/cjs/model/model.js.map +1 -0
  115. package/cjs/model/register-model.d.ts +80 -0
  116. package/cjs/model/register-model.d.ts.map +1 -0
  117. package/cjs/model/register-model.js +91 -0
  118. package/cjs/model/register-model.js.map +1 -0
  119. package/cjs/remover/database-remover.d.ts +100 -0
  120. package/cjs/remover/database-remover.d.ts.map +1 -0
  121. package/cjs/remover/database-remover.js +209 -0
  122. package/cjs/remover/database-remover.js.map +1 -0
  123. package/cjs/restorer/database-restorer.d.ts +131 -0
  124. package/cjs/restorer/database-restorer.d.ts.map +1 -0
  125. package/cjs/restorer/database-restorer.js +425 -0
  126. package/cjs/restorer/database-restorer.js.map +1 -0
  127. package/cjs/sync/index.d.ts +12 -0
  128. package/cjs/sync/index.d.ts.map +1 -0
  129. package/cjs/sync/model-events.d.ts +62 -0
  130. package/cjs/sync/model-events.d.ts.map +1 -0
  131. package/cjs/sync/model-events.js +49 -0
  132. package/cjs/sync/model-events.js.map +1 -0
  133. package/cjs/sync/model-sync-operation.d.ts +163 -0
  134. package/cjs/sync/model-sync-operation.d.ts.map +1 -0
  135. package/cjs/sync/model-sync-operation.js +292 -0
  136. package/cjs/sync/model-sync-operation.js.map +1 -0
  137. package/cjs/sync/model-sync.d.ts +130 -0
  138. package/cjs/sync/model-sync.d.ts.map +1 -0
  139. package/cjs/sync/model-sync.js +178 -0
  140. package/cjs/sync/model-sync.js.map +1 -0
  141. package/cjs/sync/sync-context.d.ts +70 -0
  142. package/cjs/sync/sync-context.d.ts.map +1 -0
  143. package/cjs/sync/sync-context.js +101 -0
  144. package/cjs/sync/sync-context.js.map +1 -0
  145. package/cjs/sync/sync-manager.d.ts +213 -0
  146. package/cjs/sync/sync-manager.d.ts.map +1 -0
  147. package/cjs/sync/sync-manager.js +689 -0
  148. package/cjs/sync/sync-manager.js.map +1 -0
  149. package/cjs/sync/types.d.ts +289 -0
  150. package/cjs/sync/types.d.ts.map +1 -0
  151. package/cjs/types.d.ts +45 -0
  152. package/cjs/types.d.ts.map +1 -0
  153. package/cjs/utils/connect-to-database.d.ts +246 -0
  154. package/cjs/utils/connect-to-database.d.ts.map +1 -0
  155. package/cjs/utils/connect-to-database.js +92 -0
  156. package/cjs/utils/connect-to-database.js.map +1 -0
  157. package/cjs/utils/database-writer.utils.d.ts +15 -0
  158. package/cjs/utils/database-writer.utils.d.ts.map +1 -0
  159. package/cjs/utils/database-writer.utils.js +14 -0
  160. package/cjs/utils/database-writer.utils.js.map +1 -0
  161. package/cjs/utils/define-model.js +100 -0
  162. package/cjs/utils/define-model.js.map +1 -0
  163. package/cjs/utils/once-connected.d.ts +146 -0
  164. package/cjs/utils/once-connected.d.ts.map +1 -0
  165. package/cjs/utils/once-connected.js +252 -0
  166. package/cjs/utils/once-connected.js.map +1 -0
  167. package/cjs/validation/database-seal-plugins.d.ts +2 -0
  168. package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
  169. package/cjs/validation/database-seal-plugins.js +4 -0
  170. package/cjs/validation/database-seal-plugins.js.map +1 -0
  171. package/cjs/validation/database-writer-validation-error.d.ts +97 -0
  172. package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
  173. package/cjs/validation/database-writer-validation-error.js +160 -0
  174. package/cjs/validation/database-writer-validation-error.js.map +1 -0
  175. package/cjs/validation/index.d.ts +3 -0
  176. package/cjs/validation/index.d.ts.map +1 -0
  177. package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
  178. package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
  179. package/cjs/validation/mutators/embed-mutator.js +33 -0
  180. package/cjs/validation/mutators/embed-mutator.js.map +1 -0
  181. package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
  182. package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  183. package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
  184. package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
  185. package/cjs/validation/rules/database-model-rule.d.ts +7 -0
  186. package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
  187. package/cjs/validation/rules/database-model-rule.js +27 -0
  188. package/cjs/validation/rules/database-model-rule.js.map +1 -0
  189. package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
  190. package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  191. package/cjs/validation/transformers/embed-model-transformer.js +18 -0
  192. package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
  193. package/cjs/validation/validators/embed-validator.d.ts +21 -0
  194. package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
  195. package/cjs/validation/validators/embed-validator.js +42 -0
  196. package/cjs/validation/validators/embed-validator.js.map +1 -0
  197. package/cjs/writer/database-writer.d.ts +181 -0
  198. package/cjs/writer/database-writer.d.ts.map +1 -0
  199. package/cjs/writer/database-writer.js +402 -0
  200. package/cjs/writer/database-writer.js.map +1 -0
  201. package/esm/context/database-data-source-context.d.ts +29 -0
  202. package/esm/context/database-data-source-context.d.ts.map +1 -0
  203. package/esm/context/database-data-source-context.js +28 -0
  204. package/esm/context/database-data-source-context.js.map +1 -0
  205. package/esm/context/database-transaction-context.d.ts +31 -0
  206. package/esm/context/database-transaction-context.d.ts.map +1 -0
  207. package/esm/context/database-transaction-context.js +34 -0
  208. package/esm/context/database-transaction-context.js.map +1 -0
  209. package/esm/contracts/database-driver.contract.d.ts +143 -0
  210. package/esm/contracts/database-driver.contract.d.ts.map +1 -0
  211. package/esm/contracts/database-id-generator.contract.d.ts +109 -0
  212. package/esm/contracts/database-id-generator.contract.d.ts.map +1 -0
  213. package/esm/contracts/database-remover.contract.d.ts +104 -0
  214. package/esm/contracts/database-remover.contract.d.ts.map +1 -0
  215. package/esm/contracts/database-restorer.contract.d.ts +143 -0
  216. package/esm/contracts/database-restorer.contract.d.ts.map +1 -0
  217. package/esm/contracts/database-writer.contract.d.ts +119 -0
  218. package/esm/contracts/database-writer.contract.d.ts.map +1 -0
  219. package/esm/contracts/driver-blueprint.contract.d.ts +45 -0
  220. package/esm/contracts/driver-blueprint.contract.d.ts.map +1 -0
  221. package/esm/contracts/index.d.ts +10 -0
  222. package/esm/contracts/index.d.ts.map +1 -0
  223. package/esm/contracts/migration-driver.contract.d.ts +365 -0
  224. package/esm/contracts/migration-driver.contract.d.ts.map +1 -0
  225. package/esm/contracts/query-builder.contract.d.ts +1128 -0
  226. package/esm/contracts/query-builder.contract.d.ts.map +1 -0
  227. package/esm/contracts/sync-adapter.contract.d.ts +58 -0
  228. package/esm/contracts/sync-adapter.contract.d.ts.map +1 -0
  229. package/esm/data-source/data-source-registry.d.ts +104 -0
  230. package/esm/data-source/data-source-registry.d.ts.map +1 -0
  231. package/esm/data-source/data-source-registry.js +138 -0
  232. package/esm/data-source/data-source-registry.js.map +1 -0
  233. package/esm/data-source/data-source.d.ts +106 -0
  234. package/esm/data-source/data-source.d.ts.map +1 -0
  235. package/esm/data-source/data-source.js +77 -0
  236. package/esm/data-source/data-source.js.map +1 -0
  237. package/esm/database-dirty-tracker.d.ts +253 -0
  238. package/esm/database-dirty-tracker.d.ts.map +1 -0
  239. package/esm/database-dirty-tracker.js +389 -0
  240. package/esm/database-dirty-tracker.js.map +1 -0
  241. package/esm/drivers/mongo/mongo-id-generator.d.ts +116 -0
  242. package/esm/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
  243. package/esm/drivers/mongo/mongo-id-generator.js +149 -0
  244. package/esm/drivers/mongo/mongo-id-generator.js.map +1 -0
  245. package/esm/drivers/mongo/mongo-migration-driver.d.ts +228 -0
  246. package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
  247. package/esm/drivers/mongo/mongo-migration-driver.js +524 -0
  248. package/esm/drivers/mongo/mongo-migration-driver.js.map +1 -0
  249. package/esm/drivers/mongo/mongo-query-builder.d.ts +922 -0
  250. package/esm/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
  251. package/esm/drivers/mongo/mongo-query-builder.js +1740 -0
  252. package/esm/drivers/mongo/mongo-query-builder.js.map +1 -0
  253. package/esm/drivers/mongo/mongo-query-operations.d.ts +226 -0
  254. package/esm/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
  255. package/esm/drivers/mongo/mongo-query-operations.js +270 -0
  256. package/esm/drivers/mongo/mongo-query-operations.js.map +1 -0
  257. package/esm/drivers/mongo/mongo-query-parser.d.ts +262 -0
  258. package/esm/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
  259. package/esm/drivers/mongo/mongo-query-parser.js +1351 -0
  260. package/esm/drivers/mongo/mongo-query-parser.js.map +1 -0
  261. package/esm/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
  262. package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
  263. package/esm/drivers/mongo/mongo-sync-adapter.js +146 -0
  264. package/esm/drivers/mongo/mongo-sync-adapter.js.map +1 -0
  265. package/esm/drivers/mongo/mongodb-blueprint.d.ts +30 -0
  266. package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
  267. package/esm/drivers/mongo/mongodb-blueprint.js +51 -0
  268. package/esm/drivers/mongo/mongodb-blueprint.js.map +1 -0
  269. package/esm/drivers/mongo/mongodb-driver.d.ts +188 -0
  270. package/esm/drivers/mongo/mongodb-driver.d.ts.map +1 -0
  271. package/esm/drivers/mongo/mongodb-driver.js +411 -0
  272. package/esm/drivers/mongo/mongodb-driver.js.map +1 -0
  273. package/esm/drivers/mongo/types.d.ts +43 -0
  274. package/esm/drivers/mongo/types.d.ts.map +1 -0
  275. package/esm/errors/missing-data-source.error.d.ts +22 -0
  276. package/esm/errors/missing-data-source.error.d.ts.map +1 -0
  277. package/esm/errors/missing-data-source.error.js +29 -0
  278. package/esm/errors/missing-data-source.error.js.map +1 -0
  279. package/esm/events/model-events.d.ts +231 -0
  280. package/esm/events/model-events.d.ts.map +1 -0
  281. package/esm/events/model-events.js +259 -0
  282. package/esm/events/model-events.js.map +1 -0
  283. package/esm/expressions/aggregate-expressions.d.ts +215 -0
  284. package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
  285. package/esm/expressions/aggregate-expressions.js +221 -0
  286. package/esm/expressions/aggregate-expressions.js.map +1 -0
  287. package/esm/expressions/index.d.ts +2 -0
  288. package/esm/expressions/index.d.ts.map +1 -0
  289. package/esm/index.d.ts +41 -0
  290. package/esm/index.d.ts.map +1 -0
  291. package/esm/index.js +1 -40
  292. package/esm/index.js.map +1 -1
  293. package/esm/migration/column-builder.d.ts +167 -0
  294. package/esm/migration/column-builder.d.ts.map +1 -0
  295. package/esm/migration/column-builder.js +217 -0
  296. package/esm/migration/column-builder.js.map +1 -0
  297. package/esm/migration/foreign-key-builder.d.ts +110 -0
  298. package/esm/migration/foreign-key-builder.d.ts.map +1 -0
  299. package/esm/migration/foreign-key-builder.js +129 -0
  300. package/esm/migration/foreign-key-builder.js.map +1 -0
  301. package/esm/migration/index.d.ts +6 -0
  302. package/esm/migration/index.d.ts.map +1 -0
  303. package/esm/migration/migration-runner.d.ts +231 -0
  304. package/esm/migration/migration-runner.d.ts.map +1 -0
  305. package/esm/migration/migration-runner.js +443 -0
  306. package/esm/migration/migration-runner.js.map +1 -0
  307. package/esm/migration/migration.js +1346 -0
  308. package/esm/migration/migration.js.map +1 -0
  309. package/esm/migration/types.d.ts +132 -0
  310. package/esm/migration/types.d.ts.map +1 -0
  311. package/esm/model/model.d.ts +1267 -0
  312. package/esm/model/model.d.ts.map +1 -0
  313. package/esm/model/model.js +1463 -0
  314. package/esm/model/model.js.map +1 -0
  315. package/esm/model/register-model.d.ts +80 -0
  316. package/esm/model/register-model.d.ts.map +1 -0
  317. package/esm/model/register-model.js +91 -0
  318. package/esm/model/register-model.js.map +1 -0
  319. package/esm/remover/database-remover.d.ts +100 -0
  320. package/esm/remover/database-remover.d.ts.map +1 -0
  321. package/esm/remover/database-remover.js +209 -0
  322. package/esm/remover/database-remover.js.map +1 -0
  323. package/esm/restorer/database-restorer.d.ts +131 -0
  324. package/esm/restorer/database-restorer.d.ts.map +1 -0
  325. package/esm/restorer/database-restorer.js +425 -0
  326. package/esm/restorer/database-restorer.js.map +1 -0
  327. package/esm/sync/index.d.ts +12 -0
  328. package/esm/sync/index.d.ts.map +1 -0
  329. package/esm/sync/model-events.d.ts +62 -0
  330. package/esm/sync/model-events.d.ts.map +1 -0
  331. package/esm/sync/model-events.js +49 -0
  332. package/esm/sync/model-events.js.map +1 -0
  333. package/esm/sync/model-sync-operation.d.ts +163 -0
  334. package/esm/sync/model-sync-operation.d.ts.map +1 -0
  335. package/esm/sync/model-sync-operation.js +292 -0
  336. package/esm/sync/model-sync-operation.js.map +1 -0
  337. package/esm/sync/model-sync.d.ts +130 -0
  338. package/esm/sync/model-sync.d.ts.map +1 -0
  339. package/esm/sync/model-sync.js +178 -0
  340. package/esm/sync/model-sync.js.map +1 -0
  341. package/esm/sync/sync-context.d.ts +70 -0
  342. package/esm/sync/sync-context.d.ts.map +1 -0
  343. package/esm/sync/sync-context.js +101 -0
  344. package/esm/sync/sync-context.js.map +1 -0
  345. package/esm/sync/sync-manager.d.ts +213 -0
  346. package/esm/sync/sync-manager.d.ts.map +1 -0
  347. package/esm/sync/sync-manager.js +689 -0
  348. package/esm/sync/sync-manager.js.map +1 -0
  349. package/esm/sync/types.d.ts +289 -0
  350. package/esm/sync/types.d.ts.map +1 -0
  351. package/esm/types.d.ts +45 -0
  352. package/esm/types.d.ts.map +1 -0
  353. package/esm/utils/connect-to-database.d.ts +246 -0
  354. package/esm/utils/connect-to-database.d.ts.map +1 -0
  355. package/esm/utils/connect-to-database.js +92 -0
  356. package/esm/utils/connect-to-database.js.map +1 -0
  357. package/esm/utils/database-writer.utils.d.ts +15 -0
  358. package/esm/utils/database-writer.utils.d.ts.map +1 -0
  359. package/esm/utils/database-writer.utils.js +14 -0
  360. package/esm/utils/database-writer.utils.js.map +1 -0
  361. package/esm/utils/define-model.js +100 -0
  362. package/esm/utils/define-model.js.map +1 -0
  363. package/esm/utils/once-connected.d.ts +146 -0
  364. package/esm/utils/once-connected.d.ts.map +1 -0
  365. package/esm/utils/once-connected.js +252 -0
  366. package/esm/utils/once-connected.js.map +1 -0
  367. package/esm/validation/database-seal-plugins.d.ts +2 -0
  368. package/esm/validation/database-seal-plugins.d.ts.map +1 -0
  369. package/esm/validation/database-seal-plugins.js +4 -0
  370. package/esm/validation/database-seal-plugins.js.map +1 -0
  371. package/esm/validation/database-writer-validation-error.d.ts +97 -0
  372. package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
  373. package/esm/validation/database-writer-validation-error.js +160 -0
  374. package/esm/validation/database-writer-validation-error.js.map +1 -0
  375. package/esm/validation/index.d.ts +3 -0
  376. package/esm/validation/index.d.ts.map +1 -0
  377. package/esm/validation/mutators/embed-mutator.d.ts +9 -0
  378. package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
  379. package/esm/validation/mutators/embed-mutator.js +33 -0
  380. package/esm/validation/mutators/embed-mutator.js.map +1 -0
  381. package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
  382. package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
  383. package/esm/validation/plugins/embed-validator-plugin.js +18 -0
  384. package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
  385. package/esm/validation/rules/database-model-rule.d.ts +7 -0
  386. package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
  387. package/esm/validation/rules/database-model-rule.js +27 -0
  388. package/esm/validation/rules/database-model-rule.js.map +1 -0
  389. package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
  390. package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
  391. package/esm/validation/transformers/embed-model-transformer.js +18 -0
  392. package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
  393. package/esm/validation/validators/embed-validator.d.ts +21 -0
  394. package/esm/validation/validators/embed-validator.d.ts.map +1 -0
  395. package/esm/validation/validators/embed-validator.js +42 -0
  396. package/esm/validation/validators/embed-validator.js.map +1 -0
  397. package/esm/writer/database-writer.d.ts +181 -0
  398. package/esm/writer/database-writer.d.ts.map +1 -0
  399. package/esm/writer/database-writer.js +402 -0
  400. package/esm/writer/database-writer.js.map +1 -0
  401. package/package.json +61 -52
@@ -0,0 +1,524 @@
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
+ * Check if a collection exists.
110
+ */
111
+ async tableExists(table) {
112
+ const collections = await this.db.listCollections({ name: table }).toArray();
113
+ return collections.length > 0;
114
+ }
115
+ // ============================================================================
116
+ // COLUMN OPERATIONS (No-ops for MongoDB)
117
+ // ============================================================================
118
+ /**
119
+ * Add a column (no-op for MongoDB).
120
+ *
121
+ * MongoDB is schema-less, so columns don't need to be declared.
122
+ */
123
+ async addColumn(_table, _column) {
124
+ // No-op: MongoDB is schema-less
125
+ }
126
+ /**
127
+ * Drop a column by running $unset on all documents.
128
+ *
129
+ * This actually removes the field from all documents in the collection.
130
+ */
131
+ async dropColumn(table, column) {
132
+ const collection = this.db.collection(table);
133
+ await collection.updateMany({}, { $unset: { [column]: "" } }, this.sessionOptions);
134
+ }
135
+ /**
136
+ * Drop multiple columns by running $unset on all documents.
137
+ */
138
+ async dropColumns(table, columns) {
139
+ const collection = this.db.collection(table);
140
+ const unsetFields = {};
141
+ for (const column of columns) {
142
+ unsetFields[column] = "";
143
+ }
144
+ await collection.updateMany({}, { $unset: unsetFields }, this.sessionOptions);
145
+ }
146
+ /**
147
+ * Rename a column by running $rename on all documents.
148
+ */
149
+ async renameColumn(table, from, to) {
150
+ const collection = this.db.collection(table);
151
+ await collection.updateMany({}, { $rename: { [from]: to } }, this.sessionOptions);
152
+ }
153
+ /**
154
+ * Modify a column definition (no-op for MongoDB).
155
+ *
156
+ * MongoDB is schema-less, so column types don't need to be modified.
157
+ */
158
+ async modifyColumn(_table, _column) {
159
+ // No-op: MongoDB is schema-less
160
+ }
161
+ // ============================================================================
162
+ // INDEX OPERATIONS
163
+ // ============================================================================
164
+ /**
165
+ * Create an index on one or more columns.
166
+ */
167
+ async createIndex(table, index) {
168
+ const collection = this.db.collection(table);
169
+ // Build index specification
170
+ const indexSpec = {};
171
+ for (let i = 0; i < index.columns.length; i++) {
172
+ const column = index.columns[i];
173
+ const direction = index.directions?.[i] === "desc" ? -1 : 1;
174
+ indexSpec[column] = direction;
175
+ }
176
+ // Build index options
177
+ const options = {};
178
+ if (index.name) {
179
+ options.name = index.name;
180
+ }
181
+ if (index.unique) {
182
+ options.unique = true;
183
+ }
184
+ if (index.sparse) {
185
+ options.sparse = true;
186
+ }
187
+ if (index.where) {
188
+ options.partialFilterExpression = index.where;
189
+ }
190
+ await collection.createIndex(indexSpec, options);
191
+ }
192
+ /**
193
+ * Drop an index by name or columns.
194
+ *
195
+ * @param indexNameOrColumns - Index name (string) or columns array
196
+ */
197
+ async dropIndex(table, indexNameOrColumns) {
198
+ const collection = this.db.collection(table);
199
+ if (!Array.isArray(indexNameOrColumns)) {
200
+ indexNameOrColumns = [indexNameOrColumns];
201
+ }
202
+ // If columns array provided, generate MongoDB-style index name
203
+ // MongoDB creates index names like: "column1_1_column2_1"
204
+ const indexName = indexNameOrColumns.map((col) => `${col}_1`).join("_");
205
+ await collection.dropIndex(indexName);
206
+ }
207
+ /**
208
+ * Create a unique index/constraint.
209
+ */
210
+ async createUniqueIndex(table, columns, name) {
211
+ await this.createIndex(table, {
212
+ columns,
213
+ unique: true,
214
+ name,
215
+ });
216
+ }
217
+ /**
218
+ * Drop a unique index by finding its name from columns.
219
+ */
220
+ async dropUniqueIndex(table, columns) {
221
+ const collection = this.db.collection(table);
222
+ const indexes = await collection.indexes();
223
+ // Find the index that matches the columns
224
+ for (const idx of indexes) {
225
+ const indexKeys = Object.keys(idx.key || {});
226
+ if (indexKeys.length === columns.length && indexKeys.every((key, i) => key === columns[i])) {
227
+ if (idx.name && idx.name !== "_id_") {
228
+ await collection.dropIndex(idx.name);
229
+ return;
230
+ }
231
+ }
232
+ }
233
+ }
234
+ // ============================================================================
235
+ // SPECIALIZED INDEXES
236
+ // ============================================================================
237
+ /**
238
+ * Create a full-text search index.
239
+ *
240
+ * MongoDB uses "text" index type for full-text search.
241
+ */
242
+ async createFullTextIndex(table, columns, options) {
243
+ const collection = this.db.collection(table);
244
+ // Build text index specification
245
+ const indexSpec = {};
246
+ for (const column of columns) {
247
+ indexSpec[column] = "text";
248
+ }
249
+ // Build options
250
+ const indexOptions = {};
251
+ if (options?.name) {
252
+ indexOptions.name = options.name;
253
+ }
254
+ if (options?.language) {
255
+ indexOptions.default_language = options.language;
256
+ }
257
+ if (options?.weights) {
258
+ indexOptions.weights = options.weights;
259
+ }
260
+ await collection.createIndex(indexSpec, indexOptions);
261
+ }
262
+ /**
263
+ * Drop a full-text search index.
264
+ */
265
+ async dropFullTextIndex(table, name) {
266
+ await this.dropIndex(table, name);
267
+ }
268
+ /**
269
+ * Create a geo-spatial index.
270
+ */
271
+ async createGeoIndex(table, column, options) {
272
+ const collection = this.db.collection(table);
273
+ // Build geo index specification - MongoDB accepts string values for geo indexes
274
+ const indexType = options?.type ?? "2dsphere";
275
+ // Build options
276
+ const indexOptions = {};
277
+ if (options?.name) {
278
+ indexOptions.name = options.name;
279
+ }
280
+ if (options?.min !== undefined) {
281
+ indexOptions.min = options.min;
282
+ }
283
+ if (options?.max !== undefined) {
284
+ indexOptions.max = options.max;
285
+ }
286
+ await collection.createIndex({ [column]: indexType }, indexOptions);
287
+ }
288
+ /**
289
+ * Drop a geo-spatial index.
290
+ */
291
+ async dropGeoIndex(table, column) {
292
+ const collection = this.db.collection(table);
293
+ const indexes = await collection.indexes();
294
+ // Find the geo index for this column
295
+ for (const idx of indexes) {
296
+ const key = idx.key || {};
297
+ if (column in key && (key[column] === "2dsphere" || key[column] === "2d")) {
298
+ if (idx.name && idx.name !== "_id_") {
299
+ await collection.dropIndex(idx.name);
300
+ return;
301
+ }
302
+ }
303
+ }
304
+ }
305
+ /**
306
+ * Create a vector search index for AI embeddings.
307
+ *
308
+ * Note: This requires MongoDB Atlas with Vector Search enabled.
309
+ * For self-hosted MongoDB, this will create a regular index on the field.
310
+ */
311
+ async createVectorIndex(table, column, options) {
312
+ const collection = this.db.collection(table);
313
+ // Try to create Atlas vector search index first
314
+ try {
315
+ // Check if we're on Atlas by looking for vectorSearch indexes
316
+ const searchIndexes = await collection.listSearchIndexes?.()?.toArray?.();
317
+ if (Array.isArray(searchIndexes)) {
318
+ // We're on Atlas - create a vector search index
319
+ await collection.createSearchIndex({
320
+ name: options.name ?? `${column}_vector_idx`,
321
+ definition: {
322
+ mappings: {
323
+ dynamic: false,
324
+ fields: {
325
+ [column]: {
326
+ type: "knnVector",
327
+ dimensions: options.dimensions,
328
+ similarity: options.similarity ?? "cosine",
329
+ },
330
+ },
331
+ },
332
+ },
333
+ });
334
+ return;
335
+ }
336
+ }
337
+ catch {
338
+ // Not on Atlas or doesn't support search indexes
339
+ }
340
+ // Fallback: Create a regular index on the vector field
341
+ // This won't provide vector search capabilities but ensures the field is indexed
342
+ await collection.createIndex({ [column]: 1 }, { name: options.name ?? `${column}_vector_idx` });
343
+ }
344
+ /**
345
+ * Drop a vector search index.
346
+ */
347
+ async dropVectorIndex(table, column) {
348
+ const collection = this.db.collection(table);
349
+ // Try to drop Atlas search index first
350
+ try {
351
+ const searchIndexes = await collection.listSearchIndexes?.()?.toArray?.();
352
+ if (Array.isArray(searchIndexes)) {
353
+ for (const idx of searchIndexes) {
354
+ if (idx.name?.includes(column)) {
355
+ await collection.dropSearchIndex(idx.name);
356
+ return;
357
+ }
358
+ }
359
+ }
360
+ }
361
+ catch {
362
+ // Not on Atlas
363
+ }
364
+ // Fallback: Try to drop regular index
365
+ const indexName = `${column}_vector_idx`;
366
+ try {
367
+ await collection.dropIndex(indexName);
368
+ }
369
+ catch {
370
+ // Index doesn't exist
371
+ }
372
+ }
373
+ /**
374
+ * Create a TTL (time-to-live) index for automatic document expiration.
375
+ */
376
+ async createTTLIndex(table, column, expireAfterSeconds) {
377
+ const collection = this.db.collection(table);
378
+ await collection.createIndex({ [column]: 1 }, { expireAfterSeconds });
379
+ }
380
+ /**
381
+ * Drop a TTL index.
382
+ */
383
+ async dropTTLIndex(table, column) {
384
+ const collection = this.db.collection(table);
385
+ const indexes = await collection.indexes();
386
+ // Find the TTL index for this column
387
+ for (const idx of indexes) {
388
+ const key = idx.key || {};
389
+ if (column in key && idx.expireAfterSeconds !== undefined) {
390
+ if (idx.name && idx.name !== "_id_") {
391
+ await collection.dropIndex(idx.name);
392
+ return;
393
+ }
394
+ }
395
+ }
396
+ }
397
+ // ============================================================================
398
+ // CONSTRAINTS (No-ops for MongoDB)
399
+ // ============================================================================
400
+ /**
401
+ * Add a foreign key constraint (no-op for MongoDB).
402
+ *
403
+ * MongoDB doesn't support foreign key constraints.
404
+ * Use application-level validation or DBRefs instead.
405
+ */
406
+ async addForeignKey(_table, _foreignKey) {
407
+ // No-op: MongoDB doesn't support foreign keys
408
+ }
409
+ /**
410
+ * Drop a foreign key constraint (no-op for MongoDB).
411
+ */
412
+ async dropForeignKey(_table, _name) {
413
+ // No-op: MongoDB doesn't support foreign keys
414
+ }
415
+ /**
416
+ * Add a primary key constraint (no-op for MongoDB).
417
+ *
418
+ * MongoDB always has _id as the primary key.
419
+ */
420
+ async addPrimaryKey(_table, _columns) {
421
+ // No-op: MongoDB always has _id as primary key
422
+ }
423
+ /**
424
+ * Drop the primary key constraint (no-op for MongoDB).
425
+ */
426
+ async dropPrimaryKey(_table) {
427
+ // No-op: Cannot drop _id index in MongoDB
428
+ }
429
+ // ============================================================================
430
+ // SCHEMA VALIDATION (NoSQL)
431
+ // ============================================================================
432
+ /**
433
+ * Set JSON schema validation rules on a collection.
434
+ *
435
+ * Uses MongoDB's validator feature to enforce document structure.
436
+ *
437
+ * @example
438
+ * ```typescript
439
+ * await driver.setSchemaValidation("users", {
440
+ * bsonType: "object",
441
+ * required: ["name", "email"],
442
+ * properties: {
443
+ * name: { bsonType: "string" },
444
+ * email: { bsonType: "string" },
445
+ * },
446
+ * });
447
+ * ```
448
+ */
449
+ async setSchemaValidation(table, schema) {
450
+ await this.db.command({
451
+ collMod: table,
452
+ validator: { $jsonSchema: schema },
453
+ validationLevel: "strict",
454
+ validationAction: "error",
455
+ });
456
+ }
457
+ /**
458
+ * Remove schema validation rules from a collection.
459
+ */
460
+ async removeSchemaValidation(table) {
461
+ await this.db.command({
462
+ collMod: table,
463
+ validator: {},
464
+ validationLevel: "off",
465
+ });
466
+ }
467
+ // ============================================================================
468
+ // TRANSACTIONS
469
+ // ============================================================================
470
+ /**
471
+ * Begin a database transaction.
472
+ *
473
+ * Uses the driver's transaction mechanism.
474
+ */
475
+ async beginTransaction() {
476
+ const transaction = await this.driver.beginTransaction();
477
+ this.session = transaction.context;
478
+ }
479
+ /**
480
+ * Commit the current transaction.
481
+ */
482
+ async commit() {
483
+ if (this.session) {
484
+ await this.session.commitTransaction();
485
+ await this.session.endSession();
486
+ this.session = undefined;
487
+ }
488
+ }
489
+ /**
490
+ * Rollback the current transaction.
491
+ */
492
+ async rollback() {
493
+ if (this.session) {
494
+ await this.session.abortTransaction();
495
+ await this.session.endSession();
496
+ this.session = undefined;
497
+ }
498
+ }
499
+ /**
500
+ * MongoDB supports transactions (requires replica set).
501
+ */
502
+ supportsTransactions() {
503
+ return true;
504
+ }
505
+ // ============================================================================
506
+ // RAW ACCESS
507
+ // ============================================================================
508
+ /**
509
+ * Execute raw operations with direct database access.
510
+ *
511
+ * @param callback - Callback receiving the MongoDB Db instance
512
+ * @returns Result from callback
513
+ *
514
+ * @example
515
+ * ```typescript
516
+ * await driver.raw(async (db) => {
517
+ * await db.collection("users").updateMany({}, { $set: { active: true } });
518
+ * });
519
+ * ```
520
+ */
521
+ async raw(callback) {
522
+ return callback(this.db);
523
+ }
524
+ }export{MongoMigrationDriver};//# sourceMappingURL=mongo-migration-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-migration-driver.js","sources":["../../../src/drivers/mongo/mongo-migration-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}