@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 @@
1
+ {"version":3,"file":"query-builder.js","sources":["../../src/query-builder/query-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * @fileoverview Helper functions for defining model relationships.
3
+ *
4
+ * This module provides a clean, intuitive API for defining relationships
5
+ * between models using helper functions instead of raw configuration objects.
6
+ *
7
+ * @module @warlock.js/cascade/relations/helpers
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { hasMany, belongsTo, belongsToMany, hasOne } from "@warlock.js/cascade";
12
+ *
13
+ * class User extends Model {
14
+ * static relations = {
15
+ * posts: hasMany("Post"),
16
+ * profile: hasOne("Profile"),
17
+ * organization: belongsTo("Organization", { foreignKey: "organizationId" }),
18
+ * roles: belongsToMany("Role", { pivot: "user_roles" }),
19
+ * };
20
+ * }
21
+ * ```
22
+ */
23
+ import type { BelongsToManyOptions, BelongsToOptions, HasManyOptions, HasOneOptions, RelationDefinition } from "./types";
24
+ /**
25
+ * Defines a one-to-many relationship.
26
+ *
27
+ * Use this when the current model owns many instances of another model.
28
+ * The foreign key is stored on the related model.
29
+ *
30
+ * @param model - The name of the related model in the registry
31
+ * @param options - Optional configuration for the relationship
32
+ * @returns A relation definition object
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // User has many Posts
37
+ * // The Post model has a userId column referencing User.id
38
+ * static relations = {
39
+ * posts: hasMany("Post"),
40
+ * };
41
+ *
42
+ * // With custom foreign key
43
+ * static relations = {
44
+ * comments: hasMany("Comment", { foreignKey: "authorId" }),
45
+ * };
46
+ *
47
+ * // Usage
48
+ * const user = await User.query().with("posts").find(1);
49
+ * console.log(user.posts); // Post[]
50
+ * ```
51
+ */
52
+ export declare function hasMany(model: string, options?: HasManyOptions): RelationDefinition;
53
+ /**
54
+ * Defines a one-to-one relationship where the foreign key is on the related model.
55
+ *
56
+ * Use this when the current model owns exactly one instance of another model.
57
+ * The foreign key is stored on the related model.
58
+ *
59
+ * @param model - The name of the related model in the registry
60
+ * @param options - Optional configuration for the relationship
61
+ * @returns A relation definition object
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * // User has one Profile
66
+ * // The Profile model has a userId column referencing User.id
67
+ * static relations = {
68
+ * profile: hasOne("Profile"),
69
+ * };
70
+ *
71
+ * // With custom keys
72
+ * static relations = {
73
+ * settings: hasOne("UserSettings", {
74
+ * foreignKey: "ownerId",
75
+ * localKey: "id",
76
+ * }),
77
+ * };
78
+ *
79
+ * // Usage
80
+ * const user = await User.query().with("profile").find(1);
81
+ * console.log(user.profile); // Profile | null
82
+ * ```
83
+ */
84
+ export declare function hasOne(model: string, options?: HasOneOptions): RelationDefinition;
85
+ /**
86
+ * Defines a many-to-one (inverse) relationship.
87
+ *
88
+ * Use this when the current model belongs to another model.
89
+ * The foreign key is stored on this model.
90
+ *
91
+ * @param model - The name of the related model in the registry
92
+ * @param options - Optional configuration for the relationship
93
+ * @returns A relation definition object
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * // Post belongs to User (author)
98
+ * // The Post model has a userId column referencing User.id
99
+ * static relations = {
100
+ * author: belongsTo("User", { foreignKey: "userId" }),
101
+ * };
102
+ *
103
+ * // Category self-reference (parent category)
104
+ * static relations = {
105
+ * parent: belongsTo("Category", { foreignKey: "parentId" }),
106
+ * };
107
+ *
108
+ * // Usage
109
+ * const post = await Post.query().with("author").find(1);
110
+ * console.log(post.author); // User | null
111
+ * ```
112
+ */
113
+ export declare function belongsTo(model: string, options?: BelongsToOptions | string): RelationDefinition;
114
+ /**
115
+ * Defines a many-to-many relationship through a pivot table.
116
+ *
117
+ * Use this when both models can have many of each other.
118
+ * A pivot (junction) table connects the two models.
119
+ *
120
+ * @param model - The name of the related model in the registry
121
+ * @param options - Configuration for the relationship including the pivot table
122
+ * @returns A relation definition object
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // Post belongs to many Tags through post_tags pivot table
127
+ * // Pivot table: post_tags (postId, tagId)
128
+ * static relations = {
129
+ * tags: belongsToMany("Tag", {
130
+ * pivot: "post_tags",
131
+ * localKey: "postId", // Column in pivot referencing this model
132
+ * foreignKey: "tagId", // Column in pivot referencing related model
133
+ * }),
134
+ * };
135
+ *
136
+ * // User has many Roles through user_roles pivot
137
+ * static relations = {
138
+ * roles: belongsToMany("Role", {
139
+ * pivot: "user_roles",
140
+ * localKey: "userId",
141
+ * foreignKey: "roleId",
142
+ * }),
143
+ * };
144
+ *
145
+ * // Usage
146
+ * const post = await Post.query().with("tags").find(1);
147
+ * console.log(post.tags); // Tag[]
148
+ *
149
+ * // Pivot operations
150
+ * await post.attach("tags", [1, 2, 3]);
151
+ * await post.detach("tags", [2]);
152
+ * await post.sync("tags", [1, 3, 5]);
153
+ * ```
154
+ */
155
+ export declare function belongsToMany(model: string, options: BelongsToManyOptions): RelationDefinition;
156
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/relations/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAQnF;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,kBAAkB,CAQjF;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,kBAAkB,CAUhG;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,CAW9F"}
@@ -0,0 +1,202 @@
1
+ 'use strict';/**
2
+ * @fileoverview Helper functions for defining model relationships.
3
+ *
4
+ * This module provides a clean, intuitive API for defining relationships
5
+ * between models using helper functions instead of raw configuration objects.
6
+ *
7
+ * @module @warlock.js/cascade/relations/helpers
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { hasMany, belongsTo, belongsToMany, hasOne } from "@warlock.js/cascade";
12
+ *
13
+ * class User extends Model {
14
+ * static relations = {
15
+ * posts: hasMany("Post"),
16
+ * profile: hasOne("Profile"),
17
+ * organization: belongsTo("Organization", { foreignKey: "organizationId" }),
18
+ * roles: belongsToMany("Role", { pivot: "user_roles" }),
19
+ * };
20
+ * }
21
+ * ```
22
+ */
23
+ // ============================================================================
24
+ // HAS MANY
25
+ // ============================================================================
26
+ /**
27
+ * Defines a one-to-many relationship.
28
+ *
29
+ * Use this when the current model owns many instances of another model.
30
+ * The foreign key is stored on the related model.
31
+ *
32
+ * @param model - The name of the related model in the registry
33
+ * @param options - Optional configuration for the relationship
34
+ * @returns A relation definition object
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // User has many Posts
39
+ * // The Post model has a userId column referencing User.id
40
+ * static relations = {
41
+ * posts: hasMany("Post"),
42
+ * };
43
+ *
44
+ * // With custom foreign key
45
+ * static relations = {
46
+ * comments: hasMany("Comment", { foreignKey: "authorId" }),
47
+ * };
48
+ *
49
+ * // Usage
50
+ * const user = await User.query().with("posts").find(1);
51
+ * console.log(user.posts); // Post[]
52
+ * ```
53
+ */
54
+ function hasMany(model, options) {
55
+ return {
56
+ type: "hasMany",
57
+ model,
58
+ foreignKey: options?.foreignKey,
59
+ localKey: options?.localKey ?? "id",
60
+ select: options?.select,
61
+ };
62
+ }
63
+ // ============================================================================
64
+ // HAS ONE
65
+ // ============================================================================
66
+ /**
67
+ * Defines a one-to-one relationship where the foreign key is on the related model.
68
+ *
69
+ * Use this when the current model owns exactly one instance of another model.
70
+ * The foreign key is stored on the related model.
71
+ *
72
+ * @param model - The name of the related model in the registry
73
+ * @param options - Optional configuration for the relationship
74
+ * @returns A relation definition object
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * // User has one Profile
79
+ * // The Profile model has a userId column referencing User.id
80
+ * static relations = {
81
+ * profile: hasOne("Profile"),
82
+ * };
83
+ *
84
+ * // With custom keys
85
+ * static relations = {
86
+ * settings: hasOne("UserSettings", {
87
+ * foreignKey: "ownerId",
88
+ * localKey: "id",
89
+ * }),
90
+ * };
91
+ *
92
+ * // Usage
93
+ * const user = await User.query().with("profile").find(1);
94
+ * console.log(user.profile); // Profile | null
95
+ * ```
96
+ */
97
+ function hasOne(model, options) {
98
+ return {
99
+ type: "hasOne",
100
+ model,
101
+ foreignKey: options?.foreignKey,
102
+ localKey: options?.localKey ?? "id",
103
+ select: options?.select,
104
+ };
105
+ }
106
+ // ============================================================================
107
+ // BELONGS TO
108
+ // ============================================================================
109
+ /**
110
+ * Defines a many-to-one (inverse) relationship.
111
+ *
112
+ * Use this when the current model belongs to another model.
113
+ * The foreign key is stored on this model.
114
+ *
115
+ * @param model - The name of the related model in the registry
116
+ * @param options - Optional configuration for the relationship
117
+ * @returns A relation definition object
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * // Post belongs to User (author)
122
+ * // The Post model has a userId column referencing User.id
123
+ * static relations = {
124
+ * author: belongsTo("User", { foreignKey: "userId" }),
125
+ * };
126
+ *
127
+ * // Category self-reference (parent category)
128
+ * static relations = {
129
+ * parent: belongsTo("Category", { foreignKey: "parentId" }),
130
+ * };
131
+ *
132
+ * // Usage
133
+ * const post = await Post.query().with("author").find(1);
134
+ * console.log(post.author); // User | null
135
+ * ```
136
+ */
137
+ function belongsTo(model, options) {
138
+ const resolvedOptions = typeof options === "string" ? { foreignKey: options, ownerKey: "id" } : options;
139
+ return {
140
+ type: "belongsTo",
141
+ model,
142
+ foreignKey: resolvedOptions?.foreignKey,
143
+ localKey: resolvedOptions?.ownerKey,
144
+ select: resolvedOptions?.select,
145
+ };
146
+ }
147
+ // ============================================================================
148
+ // BELONGS TO MANY
149
+ // ============================================================================
150
+ /**
151
+ * Defines a many-to-many relationship through a pivot table.
152
+ *
153
+ * Use this when both models can have many of each other.
154
+ * A pivot (junction) table connects the two models.
155
+ *
156
+ * @param model - The name of the related model in the registry
157
+ * @param options - Configuration for the relationship including the pivot table
158
+ * @returns A relation definition object
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * // Post belongs to many Tags through post_tags pivot table
163
+ * // Pivot table: post_tags (postId, tagId)
164
+ * static relations = {
165
+ * tags: belongsToMany("Tag", {
166
+ * pivot: "post_tags",
167
+ * localKey: "postId", // Column in pivot referencing this model
168
+ * foreignKey: "tagId", // Column in pivot referencing related model
169
+ * }),
170
+ * };
171
+ *
172
+ * // User has many Roles through user_roles pivot
173
+ * static relations = {
174
+ * roles: belongsToMany("Role", {
175
+ * pivot: "user_roles",
176
+ * localKey: "userId",
177
+ * foreignKey: "roleId",
178
+ * }),
179
+ * };
180
+ *
181
+ * // Usage
182
+ * const post = await Post.query().with("tags").find(1);
183
+ * console.log(post.tags); // Tag[]
184
+ *
185
+ * // Pivot operations
186
+ * await post.attach("tags", [1, 2, 3]);
187
+ * await post.detach("tags", [2]);
188
+ * await post.sync("tags", [1, 3, 5]);
189
+ * ```
190
+ */
191
+ function belongsToMany(model, options) {
192
+ return {
193
+ type: "belongsToMany",
194
+ model,
195
+ pivot: options.pivot,
196
+ localKey: options.localKey,
197
+ foreignKey: options.foreignKey,
198
+ pivotLocalKey: options.pivotLocalKey ?? "id",
199
+ pivotForeignKey: options.pivotForeignKey ?? "id",
200
+ select: options.select,
201
+ };
202
+ }exports.belongsTo=belongsTo;exports.belongsToMany=belongsToMany;exports.hasMany=hasMany;exports.hasOne=hasOne;//# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../src/relations/helpers.ts"],"sourcesContent":[null],"names":[],"mappings":"aAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AAUH;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACa,SAAA,OAAO,CAAC,KAAa,EAAE,OAAwB,EAAA;IAC7D,OAAO;AACL,QAAA,IAAI,EAAE,SAAS;QACf,KAAK;QACL,UAAU,EAAE,OAAO,EAAE,UAAU;AAC/B,QAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;QACnC,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACa,SAAA,MAAM,CAAC,KAAa,EAAE,OAAuB,EAAA;IAC3D,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,UAAU,EAAE,OAAO,EAAE,UAAU;AAC/B,QAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;QACnC,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACa,SAAA,SAAS,CAAC,KAAa,EAAE,OAAmC,EAAA;IAC1E,MAAM,eAAe,GACnB,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAClF,OAAO;AACL,QAAA,IAAI,EAAE,WAAW;QACjB,KAAK;QACL,UAAU,EAAE,eAAe,EAAE,UAAU;QACvC,QAAQ,EAAE,eAAe,EAAE,QAAQ;QACnC,MAAM,EAAE,eAAe,EAAE,MAAM;KAChC,CAAC;AACJ,CAAC;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACa,SAAA,aAAa,CAAC,KAAa,EAAE,OAA6B,EAAA;IACxE,OAAO;AACL,QAAA,IAAI,EAAE,eAAe;QACrB,KAAK;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;AAC9B,QAAA,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;AAC5C,QAAA,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;QAChD,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;AACJ"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @fileoverview Relations module for the Cascade ORM.
3
+ *
4
+ * This module exports all the types, helper functions, and classes
5
+ * needed for defining and loading model relationships.
6
+ *
7
+ * @module @warlock.js/cascade/relations
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import {
12
+ * hasMany,
13
+ * belongsTo,
14
+ * belongsToMany,
15
+ * hasOne,
16
+ * RelationLoader,
17
+ * type RelationDefinition,
18
+ * } from "@warlock.js/cascade";
19
+ *
20
+ * class User extends Model {
21
+ * static relations = {
22
+ * posts: hasMany("Post"),
23
+ * organization: belongsTo("Organization"),
24
+ * roles: belongsToMany("Role", { pivot: "user_roles" }),
25
+ * };
26
+ * }
27
+ * ```
28
+ */
29
+ export type { BelongsToManyOptions, BelongsToOptions, HasManyOptions, HasOneOptions, LoadedRelationResult, LoadedRelationsMap, PivotData, PivotIds, RelationConstraintCallback, RelationConstraints, RelationDefinition, RelationDefinitions, RelationType, } from "./types";
30
+ export { belongsTo, belongsToMany, hasMany, hasOne } from "./helpers";
31
+ export { RelationLoader } from "./relation-loader";
32
+ export { RelationHydrator } from "./relation-hydrator";
33
+ export type { ModelSnapshot, SerializedRelation } from "./relation-hydrator";
34
+ export { PivotOperations, createPivotOperations } from "./pivot-operations";
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @fileoverview Pivot table operations for many-to-many relationships.
3
+ *
4
+ * This module provides methods for managing the pivot table in
5
+ * belongsToMany relationships: attach, detach, sync, and toggle.
6
+ *
7
+ * @module @warlock.js/cascade/relations/pivot-operations
8
+ */
9
+ import type { ChildModel, Model } from "../model/model";
10
+ import type { PivotData, PivotIds, RelationDefinition } from "./types";
11
+ /**
12
+ * Manages pivot table operations for many-to-many relationships.
13
+ *
14
+ * Provides attach, detach, sync, and toggle operations for managing
15
+ * the connections between two models through a pivot table.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const pivotOps = new PivotOperations(post, "tags", tagsDefinition);
20
+ *
21
+ * // Attach tags
22
+ * await pivotOps.attach([1, 2, 3]);
23
+ *
24
+ * // Attach with pivot data
25
+ * await pivotOps.attach([4], { addedBy: userId });
26
+ *
27
+ * // Detach specific tags
28
+ * await pivotOps.detach([2]);
29
+ *
30
+ * // Sync (replace all)
31
+ * await pivotOps.sync([1, 5, 6]);
32
+ *
33
+ * // Toggle (attach if missing, detach if present)
34
+ * await pivotOps.toggle([1, 7]);
35
+ * ```
36
+ */
37
+ export declare class PivotOperations {
38
+ /**
39
+ * The model instance performing the pivot operation.
40
+ */
41
+ private readonly model;
42
+ /**
43
+ * The name of the relation.
44
+ */
45
+ private readonly relationName;
46
+ /**
47
+ * The relation definition with pivot table configuration.
48
+ */
49
+ private readonly definition;
50
+ /**
51
+ * The model class of the source model.
52
+ */
53
+ private readonly modelClass;
54
+ /**
55
+ * Creates a new PivotOperations instance.
56
+ *
57
+ * @param model - The model instance performing the operation
58
+ * @param relationName - The name of the belongsToMany relation
59
+ * @param definition - The relation definition
60
+ * @param modelClass - The model class constructor
61
+ */
62
+ constructor(model: Model, relationName: string, definition: RelationDefinition, modelClass: ChildModel<Model>);
63
+ /**
64
+ * Attaches one or more related models via the pivot table.
65
+ *
66
+ * Creates new records in the pivot table linking this model to the
67
+ * specified related model IDs. Existing attachments are not duplicated.
68
+ *
69
+ * @param ids - The IDs of the related models to attach
70
+ * @param pivotData - Optional additional data to store in the pivot record
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * // Attach tags to a post
75
+ * await post.attach("tags", [1, 2, 3]);
76
+ *
77
+ * // Attach with additional pivot data
78
+ * await post.attach("tags", [4], { addedBy: currentUserId });
79
+ * ```
80
+ */
81
+ attach(ids: PivotIds, pivotData?: PivotData): Promise<void>;
82
+ /**
83
+ * Detaches one or more related models from the pivot table.
84
+ *
85
+ * Removes records from the pivot table. If no IDs are specified,
86
+ * all attachments for this model are removed.
87
+ *
88
+ * @param ids - Optional IDs to detach. If omitted, detaches all.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Detach specific tags
93
+ * await post.detach("tags", [2, 3]);
94
+ *
95
+ * // Detach all tags
96
+ * await post.detach("tags");
97
+ * ```
98
+ */
99
+ detach(ids?: PivotIds): Promise<void>;
100
+ /**
101
+ * Synchronizes the pivot table to match the specified IDs.
102
+ *
103
+ * Attaches any new IDs and detaches any IDs not in the list.
104
+ * After sync, the pivot table will contain exactly the specified IDs.
105
+ *
106
+ * @param ids - The IDs that should be attached after sync
107
+ * @param pivotData - Optional data for newly attached records
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * // Set tags to exactly [1, 3, 5], removing any others
112
+ * await post.sync("tags", [1, 3, 5]);
113
+ * ```
114
+ */
115
+ sync(ids: PivotIds, pivotData?: PivotData): Promise<void>;
116
+ /**
117
+ * Toggles the attachment status of the specified IDs.
118
+ *
119
+ * For each ID: if attached, detaches it; if not attached, attaches it.
120
+ *
121
+ * @param ids - The IDs to toggle
122
+ * @param pivotData - Optional data for newly attached records
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // Toggle tags - attached become detached, detached become attached
127
+ * await post.toggle("tags", [1, 4]);
128
+ * ```
129
+ */
130
+ toggle(ids: PivotIds, pivotData?: PivotData): Promise<void>;
131
+ /**
132
+ * Gets the pivot table configuration.
133
+ *
134
+ * @returns The pivot configuration object
135
+ */
136
+ private getPivotConfig;
137
+ /**
138
+ * Gets all currently attached IDs from the pivot table.
139
+ *
140
+ * @returns A set of attached foreign key values
141
+ */
142
+ private getExistingPivotIds;
143
+ /**
144
+ * Infers a foreign key name from a model name.
145
+ *
146
+ * @param modelName - The model class name
147
+ * @returns The inferred foreign key (e.g., "User" -> "userId")
148
+ */
149
+ private inferForeignKey;
150
+ }
151
+ /**
152
+ * Creates a PivotOperations instance for a model and relation.
153
+ *
154
+ * @param model - The model instance
155
+ * @param relationName - The name of the belongsToMany relation
156
+ * @returns A PivotOperations instance
157
+ * @throws Error if the relation is not a belongsToMany or not defined
158
+ */
159
+ export declare function createPivotOperations(model: Model, relationName: string): PivotOperations;
160
+ //# sourceMappingURL=pivot-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pivot-operations.d.ts","sourceRoot":"","sources":["../../src/relations/pivot-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,eAAe;IAK1B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAM/C;;;;;;;OAOG;gBAED,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAuB/B;;;;;;;;;;;;;;;;;OAiBG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxE;;;;;;;;;;;;;;;;OAgBG;IACU,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD;;;;;;;;;;;;;;OAcG;IACU,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtE;;;;;;;;;;;;;OAaG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BxE;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;;OAIG;YACW,mBAAmB;IAqBjC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAGxB;AAMD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,CAUzF"}