@warlock.js/cascade 4.0.135 → 4.0.137

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 (339) hide show
  1. package/cjs/context/database-transaction-context.d.ts +4 -0
  2. package/cjs/context/database-transaction-context.d.ts.map +1 -1
  3. package/cjs/context/database-transaction-context.js +6 -0
  4. package/cjs/context/database-transaction-context.js.map +1 -1
  5. package/cjs/contracts/database-driver.contract.d.ts +106 -4
  6. package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
  7. package/cjs/contracts/migration-driver.contract.d.ts +49 -1
  8. package/cjs/contracts/migration-driver.contract.d.ts.map +1 -1
  9. package/cjs/contracts/query-builder.contract.d.ts +76 -4
  10. package/cjs/contracts/query-builder.contract.d.ts.map +1 -1
  11. package/cjs/data-source/data-source.d.ts +40 -1
  12. package/cjs/data-source/data-source.d.ts.map +1 -1
  13. package/cjs/data-source/data-source.js +6 -0
  14. package/cjs/data-source/data-source.js.map +1 -1
  15. package/cjs/database-dirty-tracker.d.ts +21 -22
  16. package/cjs/database-dirty-tracker.d.ts.map +1 -1
  17. package/cjs/database-dirty-tracker.js +14 -17
  18. package/cjs/database-dirty-tracker.js.map +1 -1
  19. package/cjs/drivers/mongodb/mongodb-driver.d.ts +29 -1
  20. package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
  21. package/cjs/drivers/mongodb/mongodb-driver.js +116 -4
  22. package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -1
  23. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +22 -1
  24. package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -1
  25. package/cjs/drivers/mongodb/mongodb-migration-driver.js +27 -0
  26. package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -1
  27. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +41 -9
  28. package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -1
  29. package/cjs/drivers/mongodb/mongodb-query-builder.js +60 -18
  30. package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -1
  31. package/cjs/drivers/mongodb/types.d.ts +1 -1
  32. package/cjs/drivers/mongodb/types.d.ts.map +1 -1
  33. package/cjs/drivers/postgres/postgres-dialect.d.ts +1 -0
  34. package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -1
  35. package/cjs/drivers/postgres/postgres-dialect.js +24 -1
  36. package/cjs/drivers/postgres/postgres-dialect.js.map +1 -1
  37. package/cjs/drivers/postgres/postgres-driver.d.ts +24 -3
  38. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -1
  39. package/cjs/drivers/postgres/postgres-driver.js +101 -8
  40. package/cjs/drivers/postgres/postgres-driver.js.map +1 -1
  41. package/cjs/drivers/postgres/postgres-migration-driver.d.ts +30 -1
  42. package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -1
  43. package/cjs/drivers/postgres/postgres-migration-driver.js +61 -2
  44. package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -1
  45. package/cjs/drivers/postgres/postgres-query-builder.d.ts +152 -722
  46. package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -1
  47. package/cjs/drivers/postgres/postgres-query-builder.js +592 -1459
  48. package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -1
  49. package/cjs/drivers/postgres/postgres-query-parser.d.ts +34 -14
  50. package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -1
  51. package/cjs/drivers/postgres/postgres-query-parser.js +197 -39
  52. package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -1
  53. package/cjs/drivers/sql/sql-dialect.contract.d.ts +1 -0
  54. package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -1
  55. package/cjs/errors/transaction-rollback.error.d.ts +20 -0
  56. package/cjs/errors/transaction-rollback.error.d.ts.map +1 -0
  57. package/cjs/errors/transaction-rollback.error.js +27 -0
  58. package/cjs/errors/transaction-rollback.error.js.map +1 -0
  59. package/cjs/events/model-events.d.ts +1 -1
  60. package/cjs/events/model-events.d.ts.map +1 -1
  61. package/cjs/index.d.ts +1 -0
  62. package/cjs/index.d.ts.map +1 -1
  63. package/cjs/index.js +1 -1
  64. package/cjs/migration/column-builder.d.ts +4 -0
  65. package/cjs/migration/column-builder.d.ts.map +1 -1
  66. package/cjs/migration/column-builder.js +23 -6
  67. package/cjs/migration/column-builder.js.map +1 -1
  68. package/cjs/migration/migration-runner.d.ts.map +1 -1
  69. package/cjs/migration/migration-runner.js +137 -23
  70. package/cjs/migration/migration-runner.js.map +1 -1
  71. package/cjs/migration/migration.d.ts +209 -35
  72. package/cjs/migration/migration.d.ts.map +1 -1
  73. package/cjs/migration/migration.js +192 -27
  74. package/cjs/migration/migration.js.map +1 -1
  75. package/cjs/model/methods/accessor-methods.d.ts +13 -0
  76. package/cjs/model/methods/accessor-methods.d.ts.map +1 -0
  77. package/cjs/model/methods/accessor-methods.js +51 -0
  78. package/cjs/model/methods/accessor-methods.js.map +1 -0
  79. package/cjs/model/methods/delete-methods.d.ts +10 -0
  80. package/cjs/model/methods/delete-methods.d.ts.map +1 -0
  81. package/cjs/model/methods/delete-methods.js +10 -0
  82. package/cjs/model/methods/delete-methods.js.map +1 -0
  83. package/cjs/model/methods/dirty-methods.d.ts +10 -0
  84. package/cjs/model/methods/dirty-methods.d.ts.map +1 -0
  85. package/cjs/model/methods/dirty-methods.js +15 -0
  86. package/cjs/model/methods/dirty-methods.js.map +1 -0
  87. package/cjs/model/methods/hydration-methods.d.ts +10 -0
  88. package/cjs/model/methods/hydration-methods.d.ts.map +1 -0
  89. package/cjs/model/methods/hydration-methods.js +57 -0
  90. package/cjs/model/methods/hydration-methods.js.map +1 -0
  91. package/cjs/model/methods/instance-event-methods.d.ts +7 -0
  92. package/cjs/model/methods/instance-event-methods.d.ts.map +1 -0
  93. package/cjs/model/methods/instance-event-methods.js +15 -0
  94. package/cjs/model/methods/instance-event-methods.js.map +1 -0
  95. package/cjs/model/methods/meta-methods.d.ts +7 -0
  96. package/cjs/model/methods/meta-methods.d.ts.map +1 -0
  97. package/cjs/model/methods/meta-methods.js +78 -0
  98. package/cjs/model/methods/meta-methods.js.map +1 -0
  99. package/cjs/model/methods/query-methods.d.ts +24 -0
  100. package/cjs/model/methods/query-methods.d.ts.map +1 -0
  101. package/cjs/model/methods/query-methods.js +161 -0
  102. package/cjs/model/methods/query-methods.js.map +1 -0
  103. package/cjs/model/methods/restore-methods.d.ts +10 -0
  104. package/cjs/model/methods/restore-methods.d.ts.map +1 -0
  105. package/cjs/model/methods/restore-methods.js +13 -0
  106. package/cjs/model/methods/restore-methods.js.map +1 -0
  107. package/cjs/model/methods/scope-methods.d.ts +7 -0
  108. package/cjs/model/methods/scope-methods.d.ts.map +1 -0
  109. package/cjs/model/methods/scope-methods.js +15 -0
  110. package/cjs/model/methods/scope-methods.js.map +1 -0
  111. package/cjs/model/methods/serialization-methods.d.ts +3 -0
  112. package/cjs/model/methods/serialization-methods.d.ts.map +1 -0
  113. package/cjs/model/methods/serialization-methods.js +27 -0
  114. package/cjs/model/methods/serialization-methods.js.map +1 -0
  115. package/cjs/model/methods/static-event-methods.d.ts +9 -0
  116. package/cjs/model/methods/static-event-methods.d.ts.map +1 -0
  117. package/cjs/model/methods/static-event-methods.js +29 -0
  118. package/cjs/model/methods/static-event-methods.js.map +1 -0
  119. package/cjs/model/methods/write-methods.d.ts +10 -0
  120. package/cjs/model/methods/write-methods.d.ts.map +1 -0
  121. package/cjs/model/methods/write-methods.js +52 -0
  122. package/cjs/model/methods/write-methods.js.map +1 -0
  123. package/cjs/model/model.d.ts +89 -58
  124. package/cjs/model/model.d.ts.map +1 -1
  125. package/cjs/model/model.js +166 -424
  126. package/cjs/model/model.js.map +1 -1
  127. package/cjs/model/model.types.d.ts +44 -0
  128. package/cjs/model/model.types.d.ts.map +1 -0
  129. package/cjs/model/register-model.d.ts +3 -3
  130. package/cjs/model/register-model.d.ts.map +1 -1
  131. package/cjs/query-builder/query-builder.d.ts +556 -0
  132. package/cjs/query-builder/query-builder.d.ts.map +1 -0
  133. package/cjs/query-builder/query-builder.js +1070 -0
  134. package/cjs/query-builder/query-builder.js.map +1 -0
  135. package/cjs/relations/helpers.d.ts.map +1 -1
  136. package/cjs/relations/helpers.js +4 -0
  137. package/cjs/relations/helpers.js.map +1 -1
  138. package/cjs/relations/index.d.ts +2 -0
  139. package/cjs/relations/index.d.ts.map +1 -1
  140. package/cjs/relations/relation-hydrator.d.ts +68 -0
  141. package/cjs/relations/relation-hydrator.d.ts.map +1 -0
  142. package/cjs/relations/relation-hydrator.js +81 -0
  143. package/cjs/relations/relation-hydrator.js.map +1 -0
  144. package/cjs/relations/relation-loader.js +1 -1
  145. package/cjs/relations/relation-loader.js.map +1 -1
  146. package/cjs/relations/types.d.ts +26 -0
  147. package/cjs/relations/types.d.ts.map +1 -1
  148. package/cjs/sql-database-dirty-tracker.d.ts +13 -0
  149. package/cjs/sql-database-dirty-tracker.d.ts.map +1 -0
  150. package/cjs/sql-database-dirty-tracker.js +14 -0
  151. package/cjs/sql-database-dirty-tracker.js.map +1 -0
  152. package/cjs/types.d.ts +59 -0
  153. package/cjs/types.d.ts.map +1 -1
  154. package/cjs/utils/connect-to-database.d.ts +50 -1
  155. package/cjs/utils/connect-to-database.d.ts.map +1 -1
  156. package/cjs/utils/connect-to-database.js +14 -1
  157. package/cjs/utils/connect-to-database.js.map +1 -1
  158. package/cjs/utils/database-writer.utils.d.ts +1 -1
  159. package/cjs/utils/database-writer.utils.d.ts.map +1 -1
  160. package/cjs/utils/is-valid-date-value.d.ts +5 -0
  161. package/cjs/utils/is-valid-date-value.d.ts.map +1 -0
  162. package/cjs/utils/is-valid-date-value.js +25 -0
  163. package/cjs/utils/is-valid-date-value.js.map +1 -0
  164. package/cjs/utils/once-connected.d.ts.map +1 -1
  165. package/cjs/utils/once-connected.js +4 -5
  166. package/cjs/utils/once-connected.js.map +1 -1
  167. package/cjs/writer/database-writer.d.ts.map +1 -1
  168. package/cjs/writer/database-writer.js +7 -6
  169. package/cjs/writer/database-writer.js.map +1 -1
  170. package/esm/context/database-transaction-context.d.ts +4 -0
  171. package/esm/context/database-transaction-context.d.ts.map +1 -1
  172. package/esm/context/database-transaction-context.js +6 -0
  173. package/esm/context/database-transaction-context.js.map +1 -1
  174. package/esm/contracts/database-driver.contract.d.ts +106 -4
  175. package/esm/contracts/database-driver.contract.d.ts.map +1 -1
  176. package/esm/contracts/migration-driver.contract.d.ts +49 -1
  177. package/esm/contracts/migration-driver.contract.d.ts.map +1 -1
  178. package/esm/contracts/query-builder.contract.d.ts +76 -4
  179. package/esm/contracts/query-builder.contract.d.ts.map +1 -1
  180. package/esm/data-source/data-source.d.ts +40 -1
  181. package/esm/data-source/data-source.d.ts.map +1 -1
  182. package/esm/data-source/data-source.js +6 -0
  183. package/esm/data-source/data-source.js.map +1 -1
  184. package/esm/database-dirty-tracker.d.ts +21 -22
  185. package/esm/database-dirty-tracker.d.ts.map +1 -1
  186. package/esm/database-dirty-tracker.js +14 -17
  187. package/esm/database-dirty-tracker.js.map +1 -1
  188. package/esm/drivers/mongodb/mongodb-driver.d.ts +29 -1
  189. package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
  190. package/esm/drivers/mongodb/mongodb-driver.js +116 -4
  191. package/esm/drivers/mongodb/mongodb-driver.js.map +1 -1
  192. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +22 -1
  193. package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -1
  194. package/esm/drivers/mongodb/mongodb-migration-driver.js +27 -0
  195. package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -1
  196. package/esm/drivers/mongodb/mongodb-query-builder.d.ts +41 -9
  197. package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -1
  198. package/esm/drivers/mongodb/mongodb-query-builder.js +60 -18
  199. package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -1
  200. package/esm/drivers/mongodb/types.d.ts +1 -1
  201. package/esm/drivers/mongodb/types.d.ts.map +1 -1
  202. package/esm/drivers/postgres/postgres-dialect.d.ts +1 -0
  203. package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -1
  204. package/esm/drivers/postgres/postgres-dialect.js +24 -1
  205. package/esm/drivers/postgres/postgres-dialect.js.map +1 -1
  206. package/esm/drivers/postgres/postgres-driver.d.ts +24 -3
  207. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -1
  208. package/esm/drivers/postgres/postgres-driver.js +101 -8
  209. package/esm/drivers/postgres/postgres-driver.js.map +1 -1
  210. package/esm/drivers/postgres/postgres-migration-driver.d.ts +30 -1
  211. package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -1
  212. package/esm/drivers/postgres/postgres-migration-driver.js +61 -2
  213. package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -1
  214. package/esm/drivers/postgres/postgres-query-builder.d.ts +152 -722
  215. package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -1
  216. package/esm/drivers/postgres/postgres-query-builder.js +592 -1459
  217. package/esm/drivers/postgres/postgres-query-builder.js.map +1 -1
  218. package/esm/drivers/postgres/postgres-query-parser.d.ts +34 -14
  219. package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -1
  220. package/esm/drivers/postgres/postgres-query-parser.js +197 -39
  221. package/esm/drivers/postgres/postgres-query-parser.js.map +1 -1
  222. package/esm/drivers/sql/sql-dialect.contract.d.ts +1 -0
  223. package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -1
  224. package/esm/errors/transaction-rollback.error.d.ts +20 -0
  225. package/esm/errors/transaction-rollback.error.d.ts.map +1 -0
  226. package/esm/errors/transaction-rollback.error.js +27 -0
  227. package/esm/errors/transaction-rollback.error.js.map +1 -0
  228. package/esm/events/model-events.d.ts +1 -1
  229. package/esm/events/model-events.d.ts.map +1 -1
  230. package/esm/index.d.ts +1 -0
  231. package/esm/index.d.ts.map +1 -1
  232. package/esm/index.js +1 -1
  233. package/esm/migration/column-builder.d.ts +4 -0
  234. package/esm/migration/column-builder.d.ts.map +1 -1
  235. package/esm/migration/column-builder.js +23 -6
  236. package/esm/migration/column-builder.js.map +1 -1
  237. package/esm/migration/migration-runner.d.ts.map +1 -1
  238. package/esm/migration/migration-runner.js +137 -23
  239. package/esm/migration/migration-runner.js.map +1 -1
  240. package/esm/migration/migration.d.ts +209 -35
  241. package/esm/migration/migration.d.ts.map +1 -1
  242. package/esm/migration/migration.js +192 -27
  243. package/esm/migration/migration.js.map +1 -1
  244. package/esm/model/methods/accessor-methods.d.ts +13 -0
  245. package/esm/model/methods/accessor-methods.d.ts.map +1 -0
  246. package/esm/model/methods/accessor-methods.js +51 -0
  247. package/esm/model/methods/accessor-methods.js.map +1 -0
  248. package/esm/model/methods/delete-methods.d.ts +10 -0
  249. package/esm/model/methods/delete-methods.d.ts.map +1 -0
  250. package/esm/model/methods/delete-methods.js +10 -0
  251. package/esm/model/methods/delete-methods.js.map +1 -0
  252. package/esm/model/methods/dirty-methods.d.ts +10 -0
  253. package/esm/model/methods/dirty-methods.d.ts.map +1 -0
  254. package/esm/model/methods/dirty-methods.js +15 -0
  255. package/esm/model/methods/dirty-methods.js.map +1 -0
  256. package/esm/model/methods/hydration-methods.d.ts +10 -0
  257. package/esm/model/methods/hydration-methods.d.ts.map +1 -0
  258. package/esm/model/methods/hydration-methods.js +57 -0
  259. package/esm/model/methods/hydration-methods.js.map +1 -0
  260. package/esm/model/methods/instance-event-methods.d.ts +7 -0
  261. package/esm/model/methods/instance-event-methods.d.ts.map +1 -0
  262. package/esm/model/methods/instance-event-methods.js +15 -0
  263. package/esm/model/methods/instance-event-methods.js.map +1 -0
  264. package/esm/model/methods/meta-methods.d.ts +7 -0
  265. package/esm/model/methods/meta-methods.d.ts.map +1 -0
  266. package/esm/model/methods/meta-methods.js +78 -0
  267. package/esm/model/methods/meta-methods.js.map +1 -0
  268. package/esm/model/methods/query-methods.d.ts +24 -0
  269. package/esm/model/methods/query-methods.d.ts.map +1 -0
  270. package/esm/model/methods/query-methods.js +161 -0
  271. package/esm/model/methods/query-methods.js.map +1 -0
  272. package/esm/model/methods/restore-methods.d.ts +10 -0
  273. package/esm/model/methods/restore-methods.d.ts.map +1 -0
  274. package/esm/model/methods/restore-methods.js +13 -0
  275. package/esm/model/methods/restore-methods.js.map +1 -0
  276. package/esm/model/methods/scope-methods.d.ts +7 -0
  277. package/esm/model/methods/scope-methods.d.ts.map +1 -0
  278. package/esm/model/methods/scope-methods.js +15 -0
  279. package/esm/model/methods/scope-methods.js.map +1 -0
  280. package/esm/model/methods/serialization-methods.d.ts +3 -0
  281. package/esm/model/methods/serialization-methods.d.ts.map +1 -0
  282. package/esm/model/methods/serialization-methods.js +27 -0
  283. package/esm/model/methods/serialization-methods.js.map +1 -0
  284. package/esm/model/methods/static-event-methods.d.ts +9 -0
  285. package/esm/model/methods/static-event-methods.d.ts.map +1 -0
  286. package/esm/model/methods/static-event-methods.js +29 -0
  287. package/esm/model/methods/static-event-methods.js.map +1 -0
  288. package/esm/model/methods/write-methods.d.ts +10 -0
  289. package/esm/model/methods/write-methods.d.ts.map +1 -0
  290. package/esm/model/methods/write-methods.js +52 -0
  291. package/esm/model/methods/write-methods.js.map +1 -0
  292. package/esm/model/model.d.ts +89 -58
  293. package/esm/model/model.d.ts.map +1 -1
  294. package/esm/model/model.js +166 -424
  295. package/esm/model/model.js.map +1 -1
  296. package/esm/model/model.types.d.ts +44 -0
  297. package/esm/model/model.types.d.ts.map +1 -0
  298. package/esm/model/register-model.d.ts +3 -3
  299. package/esm/model/register-model.d.ts.map +1 -1
  300. package/esm/query-builder/query-builder.d.ts +556 -0
  301. package/esm/query-builder/query-builder.d.ts.map +1 -0
  302. package/esm/query-builder/query-builder.js +1070 -0
  303. package/esm/query-builder/query-builder.js.map +1 -0
  304. package/esm/relations/helpers.d.ts.map +1 -1
  305. package/esm/relations/helpers.js +4 -0
  306. package/esm/relations/helpers.js.map +1 -1
  307. package/esm/relations/index.d.ts +2 -0
  308. package/esm/relations/index.d.ts.map +1 -1
  309. package/esm/relations/relation-hydrator.d.ts +68 -0
  310. package/esm/relations/relation-hydrator.d.ts.map +1 -0
  311. package/esm/relations/relation-hydrator.js +81 -0
  312. package/esm/relations/relation-hydrator.js.map +1 -0
  313. package/esm/relations/relation-loader.js +1 -1
  314. package/esm/relations/relation-loader.js.map +1 -1
  315. package/esm/relations/types.d.ts +26 -0
  316. package/esm/relations/types.d.ts.map +1 -1
  317. package/esm/sql-database-dirty-tracker.d.ts +13 -0
  318. package/esm/sql-database-dirty-tracker.d.ts.map +1 -0
  319. package/esm/sql-database-dirty-tracker.js +14 -0
  320. package/esm/sql-database-dirty-tracker.js.map +1 -0
  321. package/esm/types.d.ts +59 -0
  322. package/esm/types.d.ts.map +1 -1
  323. package/esm/utils/connect-to-database.d.ts +50 -1
  324. package/esm/utils/connect-to-database.d.ts.map +1 -1
  325. package/esm/utils/connect-to-database.js +14 -1
  326. package/esm/utils/connect-to-database.js.map +1 -1
  327. package/esm/utils/database-writer.utils.d.ts +1 -1
  328. package/esm/utils/database-writer.utils.d.ts.map +1 -1
  329. package/esm/utils/is-valid-date-value.d.ts +5 -0
  330. package/esm/utils/is-valid-date-value.d.ts.map +1 -0
  331. package/esm/utils/is-valid-date-value.js +25 -0
  332. package/esm/utils/is-valid-date-value.js.map +1 -0
  333. package/esm/utils/once-connected.d.ts.map +1 -1
  334. package/esm/utils/once-connected.js +4 -5
  335. package/esm/utils/once-connected.js.map +1 -1
  336. package/esm/writer/database-writer.d.ts.map +1 -1
  337. package/esm/writer/database-writer.js +7 -6
  338. package/esm/writer/database-writer.js.map +1 -1
  339. package/package.json +4 -4
@@ -0,0 +1,57 @@
1
+ 'use strict';var relationHydrator=require('../../relations/relation-hydrator.js');function hydrateModel(ModelClass, data) {
2
+ const model = new ModelClass(ModelClass.getDriver().deserialize(data));
3
+ model.isNew = false;
4
+ return model;
5
+ }
6
+ function modelFromSnapshot(ModelClass, snapshot) {
7
+ const model = ModelClass.hydrate(snapshot.data);
8
+ relationHydrator.RelationHydrator.hydrate(model, ModelClass.relations, snapshot.relations);
9
+ return model;
10
+ }
11
+ function modelToSnapshot(model) {
12
+ const driver = model.constructor.getDataSource().driver;
13
+ const relations = {};
14
+ for (const [name, related] of model.loadedRelations) {
15
+ if (related === null) {
16
+ relations[name] = null;
17
+ }
18
+ else if (Array.isArray(related)) {
19
+ relations[name] = related.map((m) => (m instanceof Object && typeof m.toSnapshot === "function" ? m.toSnapshot() : m));
20
+ }
21
+ else if (related instanceof Object && typeof related.toSnapshot === "function") {
22
+ relations[name] = related.toSnapshot();
23
+ }
24
+ }
25
+ return {
26
+ data: driver.serialize({ ...model.data }),
27
+ relations,
28
+ };
29
+ }
30
+ function serializeModel(model) {
31
+ return model.constructor.getDataSource().driver.serialize(model.data);
32
+ }
33
+ function cloneModel(model) {
34
+ const clonedData = JSON.parse(JSON.stringify(model.data));
35
+ const ModelClass = model.self();
36
+ const clonedModel = new ModelClass(clonedData);
37
+ clonedModel.isNew = model.isNew;
38
+ deepFreezeObject(clonedModel.data);
39
+ clonedModel.dirtyTracker.reset();
40
+ return clonedModel;
41
+ }
42
+ function deepFreezeObject(obj) {
43
+ Object.freeze(obj);
44
+ Object.getOwnPropertyNames(obj).forEach((prop) => {
45
+ const value = obj[prop];
46
+ if (value !== null &&
47
+ (typeof value === "object" || typeof value === "function") &&
48
+ !Object.isFrozen(value)) {
49
+ deepFreezeObject(value);
50
+ }
51
+ });
52
+ return obj;
53
+ }
54
+ function replaceModelData(model, data) {
55
+ model.data = data;
56
+ model.dirtyTracker.replaceCurrentData(data);
57
+ }exports.cloneModel=cloneModel;exports.deepFreezeObject=deepFreezeObject;exports.hydrateModel=hydrateModel;exports.modelFromSnapshot=modelFromSnapshot;exports.modelToSnapshot=modelToSnapshot;exports.replaceModelData=replaceModelData;exports.serializeModel=serializeModel;//# sourceMappingURL=hydration-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration-methods.js","sources":["../../../src/model/methods/hydration-methods.ts"],"sourcesContent":[null],"names":["RelationHydrator"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type ModelEventListener, type ModelEventName } from "../../events/model-events";
2
+ import type { Model } from "../model";
3
+ export declare function emitModelEvent<TContext = unknown>(model: Model, event: ModelEventName, context?: TContext): Promise<void>;
4
+ export declare function onModelEvent<TContext = unknown>(model: Model, event: ModelEventName, listener: ModelEventListener<any, TContext>): () => void;
5
+ export declare function onceModelEvent<TContext = unknown>(model: Model, event: ModelEventName, listener: ModelEventListener<any, TContext>): () => void;
6
+ export declare function offModelEvent<TContext = unknown>(model: Model, event: ModelEventName, listener: ModelEventListener<any, TContext>): void;
7
+ //# sourceMappingURL=instance-event-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-event-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/instance-event-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAsB,cAAc,CAAC,QAAQ,GAAG,OAAO,EACrD,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAgB,YAAY,CAAC,QAAQ,GAAG,OAAO,EAC7C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAC1C,MAAM,IAAI,CAEZ;AAED,wBAAgB,cAAc,CAAC,QAAQ,GAAG,OAAO,EAC/C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAC1C,MAAM,IAAI,CAEZ;AAED,wBAAgB,aAAa,CAAC,QAAQ,GAAG,OAAO,EAC9C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAC1C,IAAI,CAEN"}
@@ -0,0 +1,15 @@
1
+ 'use strict';var modelEvents=require('../../events/model-events.js');async function emitModelEvent(model, event, context) {
2
+ const ctor = model.constructor;
3
+ await model.events.emit(event, model, context);
4
+ await ctor.events().emit(event, model, context);
5
+ await modelEvents.globalModelEvents.emit(event, model, context);
6
+ }
7
+ function onModelEvent(model, event, listener) {
8
+ return model.events.on(event, listener);
9
+ }
10
+ function onceModelEvent(model, event, listener) {
11
+ return model.events.once(event, listener);
12
+ }
13
+ function offModelEvent(model, event, listener) {
14
+ model.events.off(event, listener);
15
+ }exports.emitModelEvent=emitModelEvent;exports.offModelEvent=offModelEvent;exports.onModelEvent=onModelEvent;exports.onceModelEvent=onceModelEvent;//# sourceMappingURL=instance-event-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-event-methods.js","sources":["../../../src/model/methods/instance-event-methods.ts"],"sourcesContent":[null],"names":["globalModelEvents"],"mappings":"qEAOO,eAAe,cAAc,CAClC,KAAY,EACZ,KAAqB,EACrB,OAAkB,EAAA;AAElB,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,WAAkB,CAAC;AACtC,IAAA,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAmB,CAAC,CAAC;AAC3D,IAAA,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAmB,CAAC,CAAC;IAC5D,MAAMA,6BAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAmB,CAAC,CAAC;AAClE,CAAC;SAEe,YAAY,CAC1B,KAAY,EACZ,KAAqB,EACrB,QAA2C,EAAA;IAE3C,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;SAEe,cAAc,CAC5B,KAAY,EACZ,KAAqB,EACrB,QAA2C,EAAA;IAE3C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;SAEe,aAAa,CAC3B,KAAY,EACZ,KAAqB,EACrB,QAA2C,EAAA;IAE3C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpC"}
@@ -0,0 +1,7 @@
1
+ import type { Model } from "../model";
2
+ export declare function applyDefaultsToModel(ModelClass: any, defaults: any): void;
3
+ export declare function generateModelNextId(model: Model): Promise<number | string>;
4
+ export declare function performAtomicUpdate(model: Model, operations: Record<string, unknown>): Promise<number>;
5
+ export declare function performAtomicIncrement<T extends string>(model: Model, field: T, amount?: number): Promise<number>;
6
+ export declare function performAtomicDecrement<T extends string>(model: Model, field: T, amount?: number): Promise<number>;
7
+ //# sourceMappingURL=meta-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/meta-methods.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAyDzE;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAIhF;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAC3D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,EACR,MAAM,SAAI,GACT,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAC3D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,EACR,MAAM,SAAI,GACT,OAAO,CAAC,MAAM,CAAC,CAOjB"}
@@ -0,0 +1,78 @@
1
+ 'use strict';var databaseWriter=require('../../writer/database-writer.js');function applyDefaultsToModel(ModelClass, defaults) {
2
+ // Only apply defaults if model doesn't have its own value
3
+ // ============================================================================
4
+ // ID Generation
5
+ // ============================================================================
6
+ if (defaults.autoGenerateId !== undefined && ModelClass.autoGenerateId === undefined) {
7
+ ModelClass.autoGenerateId = defaults.autoGenerateId;
8
+ }
9
+ if (defaults.initialId !== undefined && ModelClass.initialId === undefined) {
10
+ ModelClass.initialId = defaults.initialId;
11
+ }
12
+ if (defaults.randomInitialId !== undefined && ModelClass.randomInitialId === undefined) {
13
+ ModelClass.randomInitialId = defaults.randomInitialId;
14
+ }
15
+ if (defaults.incrementIdBy !== undefined && ModelClass.incrementIdBy === undefined) {
16
+ ModelClass.incrementIdBy = defaults.incrementIdBy;
17
+ }
18
+ if (defaults.randomIncrement !== undefined && ModelClass.randomIncrement === undefined) {
19
+ ModelClass.randomIncrement = defaults.randomIncrement;
20
+ }
21
+ // ============================================================================
22
+ // Timestamps
23
+ // ============================================================================
24
+ if (defaults.createdAtColumn !== undefined && ModelClass.createdAtColumn === undefined) {
25
+ ModelClass.createdAtColumn = defaults.createdAtColumn;
26
+ }
27
+ if (defaults.updatedAtColumn !== undefined && ModelClass.updatedAtColumn === undefined) {
28
+ ModelClass.updatedAtColumn = defaults.updatedAtColumn;
29
+ }
30
+ // ============================================================================
31
+ // Deletion
32
+ // ============================================================================
33
+ if (defaults.deleteStrategy !== undefined && ModelClass.deleteStrategy === undefined) {
34
+ ModelClass.deleteStrategy = defaults.deleteStrategy;
35
+ }
36
+ if (defaults.deletedAtColumn !== undefined && ModelClass.deletedAtColumn === undefined) {
37
+ ModelClass.deletedAtColumn = defaults.deletedAtColumn;
38
+ }
39
+ if (defaults.trashTable !== undefined && ModelClass.trashTable === undefined) {
40
+ // Handle function-based trash table
41
+ if (typeof defaults.trashTable === "function") {
42
+ ModelClass.trashTable = defaults.trashTable(ModelClass.table);
43
+ }
44
+ else {
45
+ ModelClass.trashTable = defaults.trashTable;
46
+ }
47
+ }
48
+ // ============================================================================
49
+ // Validation
50
+ // ============================================================================
51
+ if (defaults.strictMode !== undefined && ModelClass.strictMode === undefined) {
52
+ ModelClass.strictMode = defaults.strictMode;
53
+ }
54
+ }
55
+ async function generateModelNextId(model) {
56
+ const writer = new databaseWriter.DatabaseWriter(model);
57
+ await writer.generateNextId();
58
+ return model.id;
59
+ }
60
+ async function performAtomicUpdate(model, operations) {
61
+ return model.self().atomic({ id: model.id }, operations);
62
+ }
63
+ async function performAtomicIncrement(model, field, amount = 1) {
64
+ model.increment(field, amount);
65
+ return performAtomicUpdate(model, {
66
+ $inc: {
67
+ [field]: amount,
68
+ },
69
+ });
70
+ }
71
+ async function performAtomicDecrement(model, field, amount = 1) {
72
+ model.decrement(field, amount);
73
+ return performAtomicUpdate(model, {
74
+ $inc: {
75
+ [field]: -amount,
76
+ },
77
+ });
78
+ }exports.applyDefaultsToModel=applyDefaultsToModel;exports.generateModelNextId=generateModelNextId;exports.performAtomicDecrement=performAtomicDecrement;exports.performAtomicIncrement=performAtomicIncrement;exports.performAtomicUpdate=performAtomicUpdate;//# sourceMappingURL=meta-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-methods.js","sources":["../../../src/model/methods/meta-methods.ts"],"sourcesContent":[null],"names":["DatabaseWriter"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { DataSource } from "../../data-source/data-source";
2
+ import type { PaginationOptions, PaginationResult, UpdateOperations, QueryBuilderContract } from "../../contracts";
3
+ import type { ChildModel, Model } from "../model";
4
+ export declare function buildQuery<TModel extends Model>(ModelClass: ChildModel<TModel>, BaseModel: typeof Model): QueryBuilderContract<TModel>;
5
+ export declare function buildNewQueryBuilder<TModel extends Model>(ModelClass: ChildModel<TModel>): QueryBuilderContract<TModel>;
6
+ export declare function findFirst<TModel extends Model>(ModelClass: ChildModel<TModel>, filter?: Record<string, unknown>): Promise<TModel | null>;
7
+ export declare function findLast<TModel extends Model>(ModelClass: ChildModel<TModel>, filter?: Record<string, unknown>): Promise<TModel | null>;
8
+ export declare function findAll<TModel extends Model>(ModelClass: ChildModel<TModel>, filter?: Record<string, unknown>): Promise<TModel[]>;
9
+ export declare function countRecords<TModel extends Model>(ModelClass: ChildModel<TModel>, filter?: Record<string, unknown>): Promise<number>;
10
+ export declare function findById<TModel extends Model>(ModelClass: ChildModel<TModel>, id: string | number): Promise<TModel | null>;
11
+ export declare function paginateRecords<TModel extends Model>(ModelClass: ChildModel<TModel>, options?: PaginationOptions & {
12
+ filter?: Record<string, unknown>;
13
+ }): Promise<PaginationResult<TModel>>;
14
+ export declare function findLatest<TModel extends Model>(ModelClass: ChildModel<TModel>, filter?: Record<string, unknown>): Promise<TModel[]>;
15
+ export declare function increaseField<TModel extends Model>(ModelClass: ChildModel<TModel>, filter: Record<string, unknown>, field: string, amount: number): Promise<number>;
16
+ export declare function decreaseField<TModel extends Model>(ModelClass: ChildModel<TModel>, filter: Record<string, unknown>, field: string, amount: number): Promise<number>;
17
+ export declare function performAtomic<TModel extends Model>(ModelClass: ChildModel<TModel>, filter: Record<string, unknown>, operations: UpdateOperations): Promise<number>;
18
+ export declare function updateById<TModel extends Model>(ModelClass: ChildModel<TModel>, id: string | number, data: Record<string, unknown>): Promise<number>;
19
+ export declare function findAndUpdateRecords<TModel extends Model>(ModelClass: ChildModel<TModel>, filter: Record<string, unknown>, update: UpdateOperations): Promise<TModel[]>;
20
+ export declare function findOneAndUpdateRecord<TModel extends Model>(ModelClass: ChildModel<TModel>, filter: Record<string, unknown>, update: UpdateOperations): Promise<TModel | null>;
21
+ export declare function findAndReplaceRecord<TModel extends Model>(ModelClass: ChildModel<TModel>, filter: Record<string, unknown>, document: Record<string, unknown>): Promise<TModel | null>;
22
+ export declare function findOneAndDeleteRecord<TModel extends Model>(ModelClass: ChildModel<TModel>, filter: Record<string, unknown>, options?: Record<string, unknown>): Promise<TModel | null>;
23
+ export declare function resolveDataSource<TModel extends Model>(ModelClass: ChildModel<TModel>): DataSource;
24
+ //# sourceMappingURL=query-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/query-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ 'use strict';var relationLoader=require('../../relations/relation-loader.js'),dataSourceRegistry=require('../../data-source/data-source-registry.js');function buildQuery(ModelClass, BaseModel) {
2
+ const queryBuilder = ModelClass.newQueryBuilder();
3
+ const qb = queryBuilder;
4
+ // Collect global scopes from base Model and child model
5
+ const allGlobalScopes = new Map([
6
+ ...BaseModel.globalScopes,
7
+ ...ModelClass.globalScopes,
8
+ ]);
9
+ queryBuilder.pendingGlobalScopes = allGlobalScopes;
10
+ queryBuilder.availableLocalScopes = ModelClass.localScopes;
11
+ queryBuilder.disabledGlobalScopes = new Set();
12
+ queryBuilder.relationDefinitions = ModelClass.relations;
13
+ queryBuilder.modelClass = ModelClass;
14
+ ModelClass.events().emitFetching(queryBuilder, { table: ModelClass.table, modelClass: ModelClass });
15
+ queryBuilder.hydrate((data) => {
16
+ return ModelClass.hydrate(data);
17
+ });
18
+ queryBuilder.onFetched(async (models) => {
19
+ const eagerRelations = qb.eagerLoadRelations;
20
+ if (eagerRelations && eagerRelations.size > 0 && models.length > 0) {
21
+ const constraints = {};
22
+ for (const [name, constraint] of eagerRelations) {
23
+ if (typeof constraint === "function") {
24
+ constraints[name] = constraint;
25
+ }
26
+ }
27
+ const loader = new relationLoader.RelationLoader(models, ModelClass);
28
+ await loader.load([...eagerRelations.keys()], constraints);
29
+ }
30
+ await ModelClass.events().emit("fetched", models, {});
31
+ });
32
+ return queryBuilder;
33
+ }
34
+ function buildNewQueryBuilder(ModelClass) {
35
+ const dataSource = ModelClass.getDataSource();
36
+ if (ModelClass.builder) {
37
+ const BuilderClass = ModelClass.builder;
38
+ return new BuilderClass(ModelClass.table, dataSource);
39
+ }
40
+ const queryBuilder = dataSource.driver.queryBuilder(ModelClass.table);
41
+ return queryBuilder;
42
+ }
43
+ async function findFirst(ModelClass, filter) {
44
+ const query = ModelClass.query();
45
+ if (filter) {
46
+ query.where(filter);
47
+ }
48
+ return query.first();
49
+ }
50
+ async function findLast(ModelClass, filter) {
51
+ const query = ModelClass.query();
52
+ if (filter) {
53
+ query.where(filter);
54
+ }
55
+ return query.last();
56
+ }
57
+ async function findAll(ModelClass, filter) {
58
+ const query = ModelClass.query();
59
+ if (filter) {
60
+ query.where(filter);
61
+ }
62
+ return query.get();
63
+ }
64
+ function countRecords(ModelClass, filter) {
65
+ const query = ModelClass.query();
66
+ if (filter) {
67
+ query.where(filter);
68
+ }
69
+ return query.count();
70
+ }
71
+ async function findById(ModelClass, id) {
72
+ const query = ModelClass.query();
73
+ return query.where(ModelClass.primaryKey, id).first();
74
+ }
75
+ async function paginateRecords(ModelClass, options = {}) {
76
+ const query = ModelClass.query();
77
+ if (options.filter) {
78
+ query.where(options.filter);
79
+ }
80
+ return query.paginate({
81
+ limit: options.limit,
82
+ page: options.page,
83
+ });
84
+ }
85
+ async function findLatest(ModelClass, filter) {
86
+ const query = ModelClass.query();
87
+ if (filter) {
88
+ query.where(filter);
89
+ }
90
+ return (await query.latest());
91
+ }
92
+ function increaseField(ModelClass, filter, field, amount) {
93
+ const query = ModelClass.query().where(filter);
94
+ return query.increment(field, amount);
95
+ }
96
+ function decreaseField(ModelClass, filter, field, amount) {
97
+ const query = ModelClass.query().where(filter);
98
+ return query.decrement(field, amount);
99
+ }
100
+ async function performAtomic(ModelClass, filter, operations) {
101
+ const result = await ModelClass.getDriver().atomic(ModelClass.table, filter, operations);
102
+ return result.modifiedCount;
103
+ }
104
+ async function updateById(ModelClass, id, data) {
105
+ const result = await ModelClass.getDriver().update(ModelClass.table, { id }, { $set: data });
106
+ return result.modifiedCount;
107
+ }
108
+ async function findAndUpdateRecords(ModelClass, filter, update) {
109
+ await performAtomic(ModelClass, filter, update);
110
+ return await ModelClass.query().where(filter).get();
111
+ }
112
+ async function findOneAndUpdateRecord(ModelClass, filter, update) {
113
+ const result = await ModelClass.getDriver().findOneAndUpdate(ModelClass.table, filter, update);
114
+ if (!result)
115
+ return null;
116
+ const ctor = ModelClass;
117
+ return new ctor(result);
118
+ }
119
+ async function findAndReplaceRecord(ModelClass, filter, document) {
120
+ const result = await ModelClass.getDriver().replace(ModelClass.table, filter, document);
121
+ if (!result)
122
+ return null;
123
+ const ctor = ModelClass;
124
+ return new ctor(result);
125
+ }
126
+ async function findOneAndDeleteRecord(ModelClass, filter, options) {
127
+ const driver = ModelClass.getDriver();
128
+ const result = await driver.findOneAndDelete(ModelClass.table, filter, options);
129
+ if (!result) {
130
+ return null;
131
+ }
132
+ const model = ModelClass.hydrate(result);
133
+ model.dirtyTracker.reset();
134
+ return model;
135
+ }
136
+ function resolveDataSource(ModelClass) {
137
+ const ref = ModelClass.dataSource;
138
+ let dataSource;
139
+ if (typeof ref === "string") {
140
+ dataSource = dataSourceRegistry.dataSourceRegistry.get(ref);
141
+ }
142
+ else if (ref) {
143
+ dataSource = ref;
144
+ }
145
+ else {
146
+ dataSource = dataSourceRegistry.dataSourceRegistry.get();
147
+ }
148
+ if (!ModelClass.hasOwnProperty("_defaultsApplied")) {
149
+ const driverDefaults = dataSource.driver.modelDefaults || {};
150
+ const dataSourceDefaults = dataSource.modelDefaults || {};
151
+ const mergedDefaults = {
152
+ ...driverDefaults,
153
+ ...dataSourceDefaults,
154
+ };
155
+ if (Object.keys(mergedDefaults).length > 0) {
156
+ ModelClass.applyModelDefaults(mergedDefaults);
157
+ }
158
+ ModelClass._defaultsApplied = true;
159
+ }
160
+ return dataSource;
161
+ }exports.buildNewQueryBuilder=buildNewQueryBuilder;exports.buildQuery=buildQuery;exports.countRecords=countRecords;exports.decreaseField=decreaseField;exports.findAll=findAll;exports.findAndReplaceRecord=findAndReplaceRecord;exports.findAndUpdateRecords=findAndUpdateRecords;exports.findById=findById;exports.findFirst=findFirst;exports.findLast=findLast;exports.findLatest=findLatest;exports.findOneAndDeleteRecord=findOneAndDeleteRecord;exports.findOneAndUpdateRecord=findOneAndUpdateRecord;exports.increaseField=increaseField;exports.paginateRecords=paginateRecords;exports.performAtomic=performAtomic;exports.resolveDataSource=resolveDataSource;exports.updateById=updateById;//# sourceMappingURL=query-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-methods.js","sources":["../../../src/model/methods/query-methods.ts"],"sourcesContent":[null],"names":["RelationLoader","dataSourceRegistry"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ChildModel, Model } from "../model";
2
+ export declare function restoreRecord<TModel extends Model>(ModelClass: ChildModel<TModel>, id: string | number, options?: {
3
+ onIdConflict?: "fail" | "assignNew";
4
+ skipEvents?: boolean;
5
+ }): Promise<TModel>;
6
+ export declare function restoreAllRecords<TModel extends Model>(ModelClass: ChildModel<TModel>, options?: {
7
+ onIdConflict?: "fail" | "assignNew";
8
+ skipEvents?: boolean;
9
+ }): Promise<TModel[]>;
10
+ //# sourceMappingURL=restore-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/restore-methods.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAElD,wBAAsB,aAAa,CAAC,MAAM,SAAS,KAAK,EACtD,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACtE,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,SAAS,KAAK,EAC1D,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACtE,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnB"}
@@ -0,0 +1,13 @@
1
+ 'use strict';var databaseRestorer=require('../../restorer/database-restorer.js');async function restoreRecord(ModelClass, id, options) {
2
+ const restorer = new databaseRestorer.DatabaseRestorer(ModelClass);
3
+ const result = await restorer.restore(id, options);
4
+ if (!result.restoredRecord) {
5
+ throw new Error(`Failed to restore ${ModelClass.name} with ${ModelClass.primaryKey} ${id}: no record returned.`);
6
+ }
7
+ return result.restoredRecord;
8
+ }
9
+ async function restoreAllRecords(ModelClass, options) {
10
+ const restorer = new databaseRestorer.DatabaseRestorer(ModelClass);
11
+ const result = await restorer.restoreAll(options);
12
+ return result.restoredCount === 0 ? [] : result.restoredRecords;
13
+ }exports.restoreAllRecords=restoreAllRecords;exports.restoreRecord=restoreRecord;//# sourceMappingURL=restore-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-methods.js","sources":["../../../src/model/methods/restore-methods.ts"],"sourcesContent":[null],"names":["DatabaseRestorer"],"mappings":"iFAGO,eAAe,aAAa,CACjC,UAA8B,EAC9B,EAAmB,EACnB,OAAuE,EAAA;AAEvE,IAAA,MAAM,QAAQ,GAAG,IAAIA,iCAAgB,CAAC,UAAqC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAEnD,IAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAC1B,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,kBAAA,EAAqB,UAAU,CAAC,IAAI,CAAS,MAAA,EAAA,UAAU,CAAC,UAAU,CAAA,CAAA,EAAI,EAAE,CAAA,qBAAA,CAAuB,CAChG,CAAC;AACH,KAAA;IAED,OAAO,MAAM,CAAC,cAAwB,CAAC;AACzC,CAAC;AAEM,eAAe,iBAAiB,CACrC,UAA8B,EAC9B,OAAuE,EAAA;AAEvE,IAAA,MAAM,QAAQ,GAAG,IAAIA,iCAAgB,CAAC,UAAqC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAElD,IAAA,OAAO,MAAM,CAAC,aAAa,KAAK,CAAC,GAAG,EAAE,GAAI,MAAM,CAAC,eAA4B,CAAC;AAChF"}
@@ -0,0 +1,7 @@
1
+ import type { QueryBuilderContract } from "../../contracts";
2
+ import type { GlobalScopeOptions, LocalScopeCallback, ChildModel } from "../model";
3
+ export declare function addGlobalModelScope(ModelClass: ChildModel<any>, name: string, callback: (query: QueryBuilderContract) => void, options?: GlobalScopeOptions): void;
4
+ export declare function removeGlobalModelScope(ModelClass: ChildModel<any>, name: string): void;
5
+ export declare function addLocalModelScope(ModelClass: ChildModel<any>, name: string, callback: LocalScopeCallback): void;
6
+ export declare function removeLocalModelScope(ModelClass: ChildModel<any>, name: string): void;
7
+ //# sourceMappingURL=scope-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/scope-methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAS,MAAM,UAAU,CAAC;AAE1F,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC/C,OAAO,GAAE,kBAAuB,GAC/B,IAAI,CAKN;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtF;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kBAAkB,GAC3B,IAAI,CAEN;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAErF"}
@@ -0,0 +1,15 @@
1
+ 'use strict';function addGlobalModelScope(ModelClass, name, callback, options = {}) {
2
+ ModelClass.globalScopes.set(name, {
3
+ callback,
4
+ timing: options.timing || "before",
5
+ });
6
+ }
7
+ function removeGlobalModelScope(ModelClass, name) {
8
+ ModelClass.globalScopes.delete(name);
9
+ }
10
+ function addLocalModelScope(ModelClass, name, callback) {
11
+ ModelClass.localScopes.set(name, callback);
12
+ }
13
+ function removeLocalModelScope(ModelClass, name) {
14
+ ModelClass.localScopes.delete(name);
15
+ }exports.addGlobalModelScope=addGlobalModelScope;exports.addLocalModelScope=addLocalModelScope;exports.removeGlobalModelScope=removeGlobalModelScope;exports.removeLocalModelScope=removeLocalModelScope;//# sourceMappingURL=scope-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-methods.js","sources":["../../../src/model/methods/scope-methods.ts"],"sourcesContent":[null],"names":[],"mappings":"aAGM,SAAU,mBAAmB,CACjC,UAA2B,EAC3B,IAAY,EACZ,QAA+C,EAC/C,OAAA,GAA8B,EAAE,EAAA;AAEhC,IAAA,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE;QAChC,QAAQ;AACR,QAAA,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;AACnC,KAAA,CAAC,CAAC;AACL,CAAC;AAEe,SAAA,sBAAsB,CAAC,UAA2B,EAAE,IAAY,EAAA;AAC9E,IAAA,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;SAEe,kBAAkB,CAChC,UAA2B,EAC3B,IAAY,EACZ,QAA4B,EAAA;IAE5B,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAEe,SAAA,qBAAqB,CAAC,UAA2B,EAAE,IAAY,EAAA;AAC7E,IAAA,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtC"}
@@ -0,0 +1,3 @@
1
+ import type { Model } from "../model";
2
+ export declare function modelToJSON(model: Model): Record<string, unknown>;
3
+ //# sourceMappingURL=serialization-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/serialization-methods.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BjE"}
@@ -0,0 +1,27 @@
1
+ 'use strict';function modelToJSON(model) {
2
+ const ModelClass = model.self();
3
+ const resource = ModelClass.resource;
4
+ if (!resource) {
5
+ const toJsonColumns = ModelClass.toJsonColumns;
6
+ if (toJsonColumns && toJsonColumns.length > 0) {
7
+ return model.only(toJsonColumns);
8
+ }
9
+ return model.data;
10
+ }
11
+ const resourceColumns = ModelClass.resourceColumns;
12
+ let data = resourceColumns !== undefined && resourceColumns.length > 0
13
+ ? model.only(resourceColumns)
14
+ : { ...model.data };
15
+ for (const [relationName, relatedModel] of model.loadedRelations) {
16
+ if (Array.isArray(relatedModel)) {
17
+ data[relationName] = relatedModel.map((m) => m instanceof Object && typeof m.toJSON === "function" ? m.toJSON() : m);
18
+ }
19
+ else if (relatedModel instanceof Object && typeof relatedModel.toJSON === "function") {
20
+ data[relationName] = relatedModel.toJSON();
21
+ }
22
+ else {
23
+ data[relationName] = relatedModel;
24
+ }
25
+ }
26
+ return new resource(data).toJSON();
27
+ }exports.modelToJSON=modelToJSON;//# sourceMappingURL=serialization-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization-methods.js","sources":["../../../src/model/methods/serialization-methods.ts"],"sourcesContent":[null],"names":[],"mappings":"aAGM,SAAU,WAAW,CAAC,KAAY,EAAA;AACtC,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAChC,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IAErC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AAC/C,QAAA,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7C,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC,SAAA;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACnB,KAAA;AAED,IAAA,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;IACnD,IAAI,IAAI,GACN,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;AACzD,UAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7B,UAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAExB,KAAK,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,eAAe,EAAE;AAChE,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KACtC,CAAC,YAAY,MAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CACvE,CAAC;AACH,SAAA;aAAM,IAAI,YAAY,YAAY,MAAM,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE;YACtF,IAAI,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;AAC5C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AACnC,SAAA;AACF,KAAA;IAED,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACrC"}
@@ -0,0 +1,9 @@
1
+ import { ModelEvents, type ModelEventListener, type ModelEventName } from "../../events/model-events";
2
+ import type { ChildModel, Model } from "../model";
3
+ export declare function getModelEvents<TModel extends Model>(ModelClass: any): ModelEvents<TModel>;
4
+ export declare function cleanupModelEvents(ModelClass: any): void;
5
+ export declare function onStaticEvent<TModel extends Model = Model, TContext = unknown>(ModelClass: ChildModel<TModel>, event: ModelEventName, listener: ModelEventListener<TModel, TContext>): () => void;
6
+ export declare function onceStaticEvent<TModel extends Model = Model, TContext = unknown>(ModelClass: ChildModel<TModel>, event: ModelEventName, listener: ModelEventListener<TModel, TContext>): () => void;
7
+ export declare function offStaticEvent<TModel extends Model = Model, TContext = unknown>(ModelClass: ChildModel<TModel>, event: ModelEventName, listener: ModelEventListener<TModel, TContext>): void;
8
+ export declare function getGlobalEvents(): ModelEvents<Model>;
9
+ //# sourceMappingURL=static-event-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-event-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/static-event-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAQlD,wBAAgB,cAAc,CAAC,MAAM,SAAS,KAAK,EACjD,UAAU,EAAE,GAAG,GACd,WAAW,CAAC,MAAM,CAAC,CAOrB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,CAGxD;AAED,wBAAgB,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,EAAE,QAAQ,GAAG,OAAO,EAC5E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI,CAEZ;AAED,wBAAgB,eAAe,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,EAAE,QAAQ,GAAG,OAAO,EAC9E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,MAAM,IAAI,CAEZ;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,EAAE,QAAQ,GAAG,OAAO,EAC7E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC7C,IAAI,CAEN;AAED,wBAAgB,eAAe,IAAI,WAAW,CAAC,KAAK,CAAC,CAEpD"}
@@ -0,0 +1,29 @@
1
+ 'use strict';var modelEvents=require('../../events/model-events.js'),registerModel=require('../register-model.js');/**
2
+ * Isolated event emitter registry — one ModelEvents instance per model constructor.
3
+ * Encapsulated here so no other module needs to know it exists.
4
+ */
5
+ const modelEventsRegistry = new WeakMap();
6
+ function getModelEvents(ModelClass) {
7
+ let events = modelEventsRegistry.get(ModelClass);
8
+ if (!events) {
9
+ events = new modelEvents.ModelEvents();
10
+ modelEventsRegistry.set(ModelClass, events);
11
+ }
12
+ return events;
13
+ }
14
+ function cleanupModelEvents(ModelClass) {
15
+ modelEventsRegistry.delete(ModelClass);
16
+ registerModel.removeModelFromRegistery(ModelClass.name);
17
+ }
18
+ function onStaticEvent(ModelClass, event, listener) {
19
+ return ModelClass.events().on(event, listener);
20
+ }
21
+ function onceStaticEvent(ModelClass, event, listener) {
22
+ return ModelClass.events().once(event, listener);
23
+ }
24
+ function offStaticEvent(ModelClass, event, listener) {
25
+ ModelClass.events().off(event, listener);
26
+ }
27
+ function getGlobalEvents() {
28
+ return modelEvents.globalModelEvents;
29
+ }exports.cleanupModelEvents=cleanupModelEvents;exports.getGlobalEvents=getGlobalEvents;exports.getModelEvents=getModelEvents;exports.offStaticEvent=offStaticEvent;exports.onStaticEvent=onStaticEvent;exports.onceStaticEvent=onceStaticEvent;//# sourceMappingURL=static-event-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-event-methods.js","sources":["../../../src/model/methods/static-event-methods.ts"],"sourcesContent":[null],"names":["ModelEvents","removeModelFromRegistery","globalModelEvents"],"mappings":"mHASA;;;AAGG;AACH,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAY,CAAC;AAE9C,SAAU,cAAc,CAC5B,UAAe,EAAA;IAEf,IAAI,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,GAAG,IAAIA,uBAAW,EAAU,CAAC;AACnC,QAAA,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7C,KAAA;AACD,IAAA,OAAO,MAA6B,CAAC;AACvC,CAAC;AAEK,SAAU,kBAAkB,CAAC,UAAe,EAAA;AAChD,IAAA,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvC,IAAAC,sCAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;SAEe,aAAa,CAC3B,UAA8B,EAC9B,KAAqB,EACrB,QAA8C,EAAA;IAE9C,OAAO,UAAU,CAAC,MAAM,EAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;SAEe,eAAe,CAC7B,UAA8B,EAC9B,KAAqB,EACrB,QAA8C,EAAA;IAE9C,OAAO,UAAU,CAAC,MAAM,EAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC;SAEe,cAAc,CAC5B,UAA8B,EAC9B,KAAqB,EACrB,QAA8C,EAAA;IAE9C,UAAU,CAAC,MAAM,EAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;SAEe,eAAe,GAAA;AAC7B,IAAA,OAAOC,6BAAiB,CAAC;AAC3B"}
@@ -0,0 +1,10 @@
1
+ import type { WriterOptions } from "../../contracts";
2
+ import type { ChildModel, Model, ModelSchema } from "../model";
3
+ export declare function saveModel<TModel extends Model>(model: TModel, options?: WriterOptions & {
4
+ merge?: Partial<ModelSchema>;
5
+ }): Promise<TModel>;
6
+ export declare function createRecord<TModel extends Model, TSchema extends ModelSchema = TModel extends Model<infer S> ? S : ModelSchema>(ModelClass: ChildModel<TModel>, data: Partial<TSchema>): Promise<TModel>;
7
+ export declare function createManyRecords<TModel extends Model, TSchema extends ModelSchema = TModel extends Model<infer S> ? S : ModelSchema>(ModelClass: ChildModel<TModel>, data: Partial<TSchema>[]): Promise<TModel[]>;
8
+ export declare function findOrCreateRecord<TModel extends Model, TSchema extends ModelSchema = TModel extends Model<infer S> ? S : ModelSchema>(ModelClass: ChildModel<TModel>, filter: Partial<TSchema>, data: Partial<TSchema>): Promise<TModel>;
9
+ export declare function upsertRecord<TModel extends Model, TSchema extends ModelSchema = TModel extends Model<infer S> ? S : ModelSchema>(ModelClass: ChildModel<TModel>, filter: Partial<TSchema>, data: Partial<TSchema>, options?: Record<string, unknown>): Promise<TModel>;
10
+ //# sourceMappingURL=write-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-methods.d.ts","sourceRoot":"","sources":["../../../src/model/methods/write-methods.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG/D,wBAAsB,SAAS,CAAC,MAAM,SAAS,KAAK,EAClD,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,GACzD,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,YAAY,CAChC,MAAM,SAAS,KAAK,EACpB,OAAO,SAAS,WAAW,GAAG,MAAM,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAC7E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAIzE;AAED,wBAAsB,iBAAiB,CACrC,MAAM,SAAS,KAAK,EACpB,OAAO,SAAS,WAAW,GAAG,MAAM,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAC7E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7E;AAED,wBAAsB,kBAAkB,CACtC,MAAM,SAAS,KAAK,EACpB,OAAO,SAAS,WAAW,GAAG,MAAM,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAE7E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EACxB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,YAAY,CAChC,MAAM,SAAS,KAAK,EACpB,OAAO,SAAS,WAAW,GAAG,MAAM,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAE7E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EACxB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAsCjB"}