@warlock.js/cascade 5.31.0 → 5.32.0

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 (230) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/index.cjs +104 -85
  3. package/cjs/index.cjs.map +1 -1
  4. package/esm/context/database-data-source-context.d.mts +2 -3
  5. package/esm/context/database-data-source-context.d.mts.map +1 -1
  6. package/esm/context/database-transaction-context.d.mts +2 -3
  7. package/esm/context/database-transaction-context.d.mts.map +1 -1
  8. package/esm/contracts/database-driver.contract.d.mts +56 -36
  9. package/esm/contracts/database-driver.contract.d.mts.map +1 -1
  10. package/esm/contracts/database-id-generator.contract.d.mts +7 -5
  11. package/esm/contracts/database-id-generator.contract.d.mts.map +1 -1
  12. package/esm/contracts/database-remover.contract.d.mts +3 -5
  13. package/esm/contracts/database-remover.contract.d.mts.map +1 -1
  14. package/esm/contracts/database-restorer.contract.d.mts +6 -6
  15. package/esm/contracts/database-restorer.contract.d.mts.map +1 -1
  16. package/esm/contracts/database-writer.contract.d.mts +4 -6
  17. package/esm/contracts/database-writer.contract.d.mts.map +1 -1
  18. package/esm/contracts/driver-blueprint.contract.d.mts +2 -3
  19. package/esm/contracts/driver-blueprint.contract.d.mts.map +1 -1
  20. package/esm/contracts/index.d.mts +2 -1
  21. package/esm/contracts/migration-driver.contract.d.mts +101 -53
  22. package/esm/contracts/migration-driver.contract.d.mts.map +1 -1
  23. package/esm/contracts/query-builder.contract.d.mts +51 -33
  24. package/esm/contracts/query-builder.contract.d.mts.map +1 -1
  25. package/esm/contracts/sync-adapter.contract.d.mts +25 -14
  26. package/esm/contracts/sync-adapter.contract.d.mts.map +1 -1
  27. package/esm/data-source/data-source-registry.d.mts +4 -5
  28. package/esm/data-source/data-source-registry.d.mts.map +1 -1
  29. package/esm/data-source/data-source.d.mts +8 -5
  30. package/esm/data-source/data-source.d.mts.map +1 -1
  31. package/esm/database-dirty-tracker.d.mts +2 -2
  32. package/esm/database-dirty-tracker.d.mts.map +1 -1
  33. package/esm/database-dirty-tracker.mjs +3 -2
  34. package/esm/database-dirty-tracker.mjs.map +1 -1
  35. package/esm/drivers/mongodb/mongodb-driver.d.mts +3 -4
  36. package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -1
  37. package/esm/drivers/mongodb/mongodb-id-generator.d.mts +2 -3
  38. package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -1
  39. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts +1 -3
  40. package/esm/drivers/mongodb/mongodb-migration-driver.d.mts.map +1 -1
  41. package/esm/drivers/mongodb/mongodb-query-builder.d.mts +2 -3
  42. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -1
  43. package/esm/drivers/mongodb/mongodb-query-builder.mjs +8 -5
  44. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -1
  45. package/esm/drivers/mongodb/mongodb-query-operations.d.mts +1 -3
  46. package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -1
  47. package/esm/drivers/mongodb/mongodb-query-parser.d.mts +7 -6
  48. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -1
  49. package/esm/drivers/mongodb/mongodb-query-parser.mjs +2 -6
  50. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -1
  51. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts +1 -3
  52. package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts.map +1 -1
  53. package/esm/drivers/mongodb/types.d.mts +11 -9
  54. package/esm/drivers/mongodb/types.d.mts.map +1 -1
  55. package/esm/drivers/postgres/index.d.mts +2 -1
  56. package/esm/drivers/postgres/index.mjs +1 -1
  57. package/esm/drivers/postgres/naming.mjs +1 -1
  58. package/esm/drivers/postgres/postgres-blueprint.d.mts +1 -3
  59. package/esm/drivers/postgres/postgres-blueprint.d.mts.map +1 -1
  60. package/esm/drivers/postgres/postgres-dialect.d.mts +4 -6
  61. package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -1
  62. package/esm/drivers/postgres/postgres-driver.d.mts +4 -5
  63. package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -1
  64. package/esm/drivers/postgres/postgres-migration-driver.d.mts +1 -3
  65. package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -1
  66. package/esm/drivers/postgres/postgres-migration-driver.mjs +13 -10
  67. package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -1
  68. package/esm/drivers/postgres/postgres-query-builder.d.mts +4 -4
  69. package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -1
  70. package/esm/drivers/postgres/postgres-query-builder.mjs +14 -10
  71. package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -1
  72. package/esm/drivers/postgres/postgres-query-parser.d.mts +16 -11
  73. package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -1
  74. package/esm/drivers/postgres/postgres-query-parser.mjs +1 -1
  75. package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -1
  76. package/esm/drivers/postgres/postgres-sql-serializer.mjs +13 -10
  77. package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -1
  78. package/esm/drivers/postgres/postgres-ttl-purge.mjs +1 -1
  79. package/esm/drivers/postgres/postgres-type-converters.mjs +2 -2
  80. package/esm/drivers/postgres/postgres-type-converters.mjs.map +1 -1
  81. package/esm/drivers/postgres/postgres-update-validator.mjs +1 -1
  82. package/esm/drivers/postgres/postgres-update-validator.mjs.map +1 -1
  83. package/esm/drivers/postgres/types.d.mts +87 -45
  84. package/esm/drivers/postgres/types.d.mts.map +1 -1
  85. package/esm/drivers/sql/sql-dialect.contract.d.mts +1 -3
  86. package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -1
  87. package/esm/drivers/sql/sql-types.d.mts +113 -59
  88. package/esm/drivers/sql/sql-types.d.mts.map +1 -1
  89. package/esm/errors/missing-data-source.error.d.mts +1 -2
  90. package/esm/errors/missing-data-source.error.d.mts.map +1 -1
  91. package/esm/errors/transaction-rollback.error.d.mts +1 -2
  92. package/esm/errors/transaction-rollback.error.d.mts.map +1 -1
  93. package/esm/errors/undefined-where-value.error.d.mts +1 -2
  94. package/esm/errors/undefined-where-value.error.d.mts.map +1 -1
  95. package/esm/errors/unsafe-filter.error.d.mts +1 -2
  96. package/esm/errors/unsafe-filter.error.d.mts.map +1 -1
  97. package/esm/errors/unsafe-raw-expression.error.d.mts +1 -2
  98. package/esm/errors/unsafe-raw-expression.error.d.mts.map +1 -1
  99. package/esm/errors/unsupported-lean-operation.error.d.mts +1 -2
  100. package/esm/errors/unsupported-lean-operation.error.d.mts.map +1 -1
  101. package/esm/errors/unsupported-lock-for-update.error.d.mts +1 -2
  102. package/esm/errors/unsupported-lock-for-update.error.d.mts.map +1 -1
  103. package/esm/errors/unsupported-query-operation.error.d.mts +1 -2
  104. package/esm/errors/unsupported-query-operation.error.d.mts.map +1 -1
  105. package/esm/errors/unsupported-update-operation.error.d.mts +1 -2
  106. package/esm/errors/unsupported-update-operation.error.d.mts.map +1 -1
  107. package/esm/events/model-events.d.mts +8 -6
  108. package/esm/events/model-events.d.mts.map +1 -1
  109. package/esm/expressions/aggregate-expressions.d.mts +7 -7
  110. package/esm/expressions/aggregate-expressions.d.mts.map +1 -1
  111. package/esm/expressions/column-expressions.d.mts +11 -11
  112. package/esm/expressions/column-expressions.d.mts.map +1 -1
  113. package/esm/index.d.mts +7 -2
  114. package/esm/index.mjs +1 -1
  115. package/esm/migration/column-builder.d.mts +2 -3
  116. package/esm/migration/column-builder.d.mts.map +1 -1
  117. package/esm/migration/column-helpers.d.mts +49 -50
  118. package/esm/migration/column-helpers.d.mts.map +1 -1
  119. package/esm/migration/column-helpers.mjs +1 -1
  120. package/esm/migration/foreign-key-builder.d.mts +2 -3
  121. package/esm/migration/foreign-key-builder.d.mts.map +1 -1
  122. package/esm/migration/index.d.mts +3 -2
  123. package/esm/migration/index.mjs +2 -2
  124. package/esm/migration/migration-runner.d.mts +7 -6
  125. package/esm/migration/migration-runner.d.mts.map +1 -1
  126. package/esm/migration/migration-runner.mjs +15 -11
  127. package/esm/migration/migration-runner.mjs.map +1 -1
  128. package/esm/migration/migration.d.mts +50 -32
  129. package/esm/migration/migration.d.mts.map +1 -1
  130. package/esm/migration/migration.mjs +1 -3
  131. package/esm/migration/migration.mjs.map +1 -1
  132. package/esm/migration/sql-serializer.d.mts +1 -3
  133. package/esm/migration/sql-serializer.d.mts.map +1 -1
  134. package/esm/migration/types.d.mts +7 -7
  135. package/esm/migration/types.d.mts.map +1 -1
  136. package/esm/model/methods/accessor-methods.mjs +1 -1
  137. package/esm/model/methods/accessor-methods.mjs.map +1 -1
  138. package/esm/model/methods/meta-methods.mjs +4 -2
  139. package/esm/model/methods/meta-methods.mjs.map +1 -1
  140. package/esm/model/methods/query-methods.mjs +1 -1
  141. package/esm/model/methods/write-methods.d.mts +3 -2
  142. package/esm/model/methods/write-methods.d.mts.map +1 -1
  143. package/esm/model/methods/write-methods.mjs +5 -2
  144. package/esm/model/methods/write-methods.mjs.map +1 -1
  145. package/esm/model/model.d.mts +9 -9
  146. package/esm/model/model.d.mts.map +1 -1
  147. package/esm/model/model.types.d.mts +7 -7
  148. package/esm/model/model.types.d.mts.map +1 -1
  149. package/esm/model/register-model.d.mts +13 -15
  150. package/esm/model/register-model.d.mts.map +1 -1
  151. package/esm/model/relation-decorators.d.mts +6 -8
  152. package/esm/model/relation-decorators.d.mts.map +1 -1
  153. package/esm/operations/database.d.mts +13 -8
  154. package/esm/operations/database.d.mts.map +1 -1
  155. package/esm/operations/index.d.mts +2 -1
  156. package/esm/operations/index.mjs +1 -1
  157. package/esm/operations/migrations.d.mts +18 -14
  158. package/esm/operations/migrations.d.mts.map +1 -1
  159. package/esm/query-builder/query-builder.d.mts +2 -4
  160. package/esm/query-builder/query-builder.d.mts.map +1 -1
  161. package/esm/query-builder/query-builder.mjs +12 -11
  162. package/esm/query-builder/query-builder.mjs.map +1 -1
  163. package/esm/relations/index.d.mts +2 -1
  164. package/esm/relations/index.mjs +1 -1
  165. package/esm/relations/key-conventions.mjs +2 -1
  166. package/esm/relations/key-conventions.mjs.map +1 -1
  167. package/esm/relations/pivot-operations.d.mts +3 -5
  168. package/esm/relations/pivot-operations.d.mts.map +1 -1
  169. package/esm/relations/relation-hydrator.d.mts +3 -5
  170. package/esm/relations/relation-hydrator.d.mts.map +1 -1
  171. package/esm/relations/relation-loader.d.mts +2 -4
  172. package/esm/relations/relation-loader.d.mts.map +1 -1
  173. package/esm/relations/relation-loader.mjs +4 -5
  174. package/esm/relations/relation-loader.mjs.map +1 -1
  175. package/esm/relations/types.d.mts +14 -15
  176. package/esm/relations/types.d.mts.map +1 -1
  177. package/esm/remover/database-remover.d.mts +1 -3
  178. package/esm/remover/database-remover.d.mts.map +1 -1
  179. package/esm/restorer/database-restorer.d.mts +1 -3
  180. package/esm/restorer/database-restorer.d.mts.map +1 -1
  181. package/esm/restorer/database-restorer.mjs +2 -1
  182. package/esm/restorer/database-restorer.mjs.map +1 -1
  183. package/esm/sql-database-dirty-tracker.d.mts +1 -3
  184. package/esm/sql-database-dirty-tracker.d.mts.map +1 -1
  185. package/esm/sync/model-events.mjs +1 -1
  186. package/esm/sync/model-sync-operation.d.mts +2 -4
  187. package/esm/sync/model-sync-operation.d.mts.map +1 -1
  188. package/esm/sync/model-sync.d.mts +3 -4
  189. package/esm/sync/model-sync.d.mts.map +1 -1
  190. package/esm/sync/sync-context.d.mts +2 -4
  191. package/esm/sync/sync-context.d.mts.map +1 -1
  192. package/esm/sync/sync-fanout.mjs +1 -1
  193. package/esm/sync/sync-manager.d.mts +2 -4
  194. package/esm/sync/sync-manager.d.mts.map +1 -1
  195. package/esm/sync/types.d.mts +121 -64
  196. package/esm/sync/types.d.mts.map +1 -1
  197. package/esm/transactions/after-commit.d.mts +2 -2
  198. package/esm/transactions/after-commit.d.mts.map +1 -1
  199. package/esm/types.d.mts +7 -8
  200. package/esm/types.d.mts.map +1 -1
  201. package/esm/utils/connect-to-database.d.mts +7 -8
  202. package/esm/utils/connect-to-database.d.mts.map +1 -1
  203. package/esm/utils/database-writer.utils.d.mts +3 -4
  204. package/esm/utils/database-writer.utils.d.mts.map +1 -1
  205. package/esm/utils/define-model.d.mts +3 -5
  206. package/esm/utils/define-model.d.mts.map +1 -1
  207. package/esm/utils/escape-regex.d.mts +3 -4
  208. package/esm/utils/escape-regex.d.mts.map +1 -1
  209. package/esm/utils/once-connected.d.mts +2 -4
  210. package/esm/utils/once-connected.d.mts.map +1 -1
  211. package/esm/utils/sanitize-filter.d.mts +3 -4
  212. package/esm/utils/sanitize-filter.d.mts.map +1 -1
  213. package/esm/validation/database-seal-plugins.d.mts +2 -1
  214. package/esm/validation/database-writer-validation-error.d.mts +1 -3
  215. package/esm/validation/database-writer-validation-error.d.mts.map +1 -1
  216. package/esm/validation/index.d.mts +3 -1
  217. package/esm/validation/index.mjs +1 -1
  218. package/esm/validation/plugins/database-rules-plugin.d.mts +2 -3
  219. package/esm/validation/plugins/database-rules-plugin.d.mts.map +1 -1
  220. package/esm/validation/plugins/embed-validator-plugin.d.mts +4 -3
  221. package/esm/validation/plugins/embed-validator-plugin.d.mts.map +1 -1
  222. package/esm/validation/types.d.mts +14 -10
  223. package/esm/validation/types.d.mts.map +1 -1
  224. package/esm/validation/validators/embed-validator.d.mts +2 -3
  225. package/esm/validation/validators/embed-validator.d.mts.map +1 -1
  226. package/esm/writer/database-writer.d.mts +1 -3
  227. package/esm/writer/database-writer.d.mts.map +1 -1
  228. package/esm/writer/database-writer.mjs +1 -1
  229. package/esm/writer/database-writer.mjs.map +1 -1
  230. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"database-dirty-tracker.d.mts","names":[],"sources":["../../../../../../../packages/cascade/src/database-dirty-tracker.ts"],"mappings":";;;;KAgDK,UAAA,GAAa,MAAM;;AAAA;AAAA;KAKnB,iBAAA;EAAsB,QAAA;EAAmB,QAAQ;AAAA;AAkBtD;;;;;;;;;;;;;;;;AAAA,cAAa,oBAAA;EA2W2C;;;;EAAA,UAtW5C,UAAA,EAAY,MAAA;EAogBY;;;EAAA,UA/fxB,UAAA,EAAY,MAAA;EAAZ;;;;EAAA,UAMA,gBAAA,EAAkB,UAAA;EAKA;;;EAAA,UAAlB,gBAAA,EAAkB,UAAA;EAUK;;;EAAA,mBALd,YAAA,EAAY,GAAA;EAeN;;;EAAA,mBAVN,cAAA,EAAc,GAAA;EA+F1B;;;;;;EAAA,mBAvFY,aAAA,EAAa,GAAA;cAEb,IAAA,EAAM,MAAA;EAwMlB;;;;;;;;;;;;;EAjLA,eAAA;EA2SG;;;;;;;;;;;;EA3RH,eAAA;EAiakB;;;;;;;;AAwBS;;;;;;;;;EA3Y3B,kBAAA;;;;;;;;;;;;;;;;;;EAsCA,UAAA;;;;EAOA,OAAA,CAAQ,MAAA;;;;;;;;;;;;;;;;EAmBR,iBAAA;;;;;;;;;;;;;;;;;EAoBA,yBAAA,IAA6B,MAAA,SAAe,iBAAA;;;;;;;;;;;;;;;;EA+B5C,kBAAA,CAAmB,IAAA,EAAM,MAAA;;;;;;;;;;;;;;;;;EAsBzB,YAAA,CAAa,OAAA,EAAS,MAAA;;;;;EAUtB,SAAA,CAAU,IAAA,UAAc,KAAA;;;;;;;;;;;;;;;;EAsCxB,KAAA,CAAM,OAAA;;;;;;;;;;;;;;;;;;;;;EAmCN,KAAA,CAAM,IAAA,GAAO,MAAA;;;;;YAiBV,WAAA,CAAY,IAAA,EAAM,MAAA,oBAA0B,UAAA;;;;;;;;;;YAa5C,gBAAA;;;;;;;;;;;;;;;;;;;;YA6CA,YAAA,CAAa,MAAA,EAAQ,MAAA,mBAAyB,MAAA,EAAQ,MAAA;;;;;;;;;;YAoBtD,aAAA,CAAc,IAAA;;;;;;;;;;;YAwDd,cAAA,CAAe,SAAA,WAAoB,OAAA;;;;;;;;YAwBnC,SAAA,IAAa,IAAA,EAAM,CAAA,GAAI,CAAA;AAAA"}
1
+ {"version":3,"file":"database-dirty-tracker.d.mts","names":[],"sources":["../../../../../../../packages/cascade/src/database-dirty-tracker.ts"],"mappings":";;;;KAgDK,aAAa;;;;KAKb;EAAsB;EAAmB;;;;;;;;;;;;;;;;;;qBAkBjC;;;;;YAKD,YAAY;;;;YAKZ,YAAY;;;;;YAMZ,kBAAkB;;;;YAKlB,kBAAkB;;;;qBAKT,cAAY;;;;qBAKZ,gBAAc;;;;;;;qBAQd,eAAa;EAEhC,YAAmB,MAAM;;;;;;;;;;;;;;EAuBlB;;;;;;;;;;;;;EAgBA;;;;;;;;;;;;;;;;;;EA8CA;;;;;;;;;;;;;;;;;;EAsCA;;;;EAOA,QAAQ;;;;;;;;;;;;;;;;EAmBR;;;;;;;;;;;;;;;;;EAoBA,6BAA6B,eAAe;;;;;;;;;;;;;;;;EA+B5C,mBAAmB,MAAM;;;;;;;;;;;;;;;;;EAsBzB,aAAa,SAAS;;;;;EAUtB,UAAU,cAAc;;;;;;;;;;;;;;;;EAsCxB,MAAM;;;;;;;;;;;;;;;;;;;;;EAmCN,MAAM,OAAO;;;;;YAiBV,YAAY,MAAM,0BAA0B;;;;;;;;;;YAa5C;;;;;;;;;;;;;;;;;;;;YA6CA,aAAa,QAAQ,yBAAyB,QAAQ;;;;;;;;;;YAoBtD,cAAc;;;;;;;;;;;YAwDd,eAAe,oBAAoB;;;;;;;;YAwBnC,UAAU,GAAG,MAAM,IAAI"}
@@ -355,13 +355,14 @@ var DatabaseDirtyTracker = class {
355
355
  updateDirtyState() {
356
356
  this.dirtyColumns.clear();
357
357
  this.removedColumns.clear();
358
- const keys = new Set([...Object.keys(this.initialFlattened), ...Object.keys(this.currentFlattened)]);
358
+ const keys = /* @__PURE__ */ new Set([...Object.keys(this.initialFlattened), ...Object.keys(this.currentFlattened)]);
359
359
  for (const key of keys) {
360
360
  const hasCurrent = this.currentFlattened[key] !== void 0 || key in this.currentFlattened;
361
361
  const hasInitial = this.initialFlattened[key] !== void 0 || key in this.initialFlattened;
362
362
  if (!hasCurrent && hasInitial) this.removedColumns.add(key);
363
363
  const initialValue = this.initialFlattened[key];
364
- if (!areEqual(initialValue, hasCurrent ? this.currentFlattened[key] : void 0)) this.dirtyColumns.add(key);
364
+ const currentValue = hasCurrent ? this.currentFlattened[key] : void 0;
365
+ if (!areEqual(initialValue, currentValue)) this.dirtyColumns.add(key);
365
366
  }
366
367
  }
367
368
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"database-dirty-tracker.mjs","names":[],"sources":["../../../../../../../packages/cascade/src/database-dirty-tracker.ts"],"sourcesContent":["import { areEqual, clone } from \"@mongez/reinforcements\";\nimport { isPlainObject } from \"@mongez/supportive-is\";\nimport { pruneEmptyParents } from \"./utils/prune-empty-parents\";\n\nfunction canBeFlatten(object: unknown): boolean {\n return isPlainObject(object);\n}\n\n/**\n * A fix for flatten as non-plain object is being flatten as well which it should not be\n */\nfunction flatten(\n object: Record<string, unknown>,\n separator = \".\",\n keepNestedOriginalObject = false,\n parent?: string,\n root: Record<string, unknown> = {},\n) {\n if (canBeFlatten(object) === false) {\n return object;\n }\n // object = toPlainObject(object);\n for (const key of Object.keys(object)) {\n const value = object[key];\n const keyChain = parent ? parent + separator + key : key;\n if ((Array.isArray(value) && value.length === 0) || typeof value === \"function\") {\n root[keyChain] = value;\n } else if (canBeFlatten(value)) {\n if (keepNestedOriginalObject) {\n root[keyChain] = value;\n }\n flatten(\n value as Record<string, unknown>,\n separator,\n keepNestedOriginalObject,\n keyChain,\n root,\n );\n } else {\n root[keyChain] = value;\n }\n }\n return root;\n}\n\n/**\n * Flattened record type representing dot-notation paths mapped to their values.\n */\ntype FlatRecord = Record<string, unknown>;\n\n/**\n * Represents the old and new values of a dirty column.\n */\ntype DirtyColumnValues = { oldValue: unknown; newValue: unknown };\n\n/**\n * Tracks changes to model data by maintaining snapshots of initial and current state.\n *\n * The tracker stores both raw (nested) and flattened (dot-notation) versions of the data\n * to accurately detect modifications, additions, and removals at any nesting level.\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", age: 30 });\n * tracker.mergeChanges({ age: 31 });\n * console.log(tracker.hasChanges()); // true\n * console.log(tracker.getDirtyColumns()); // [\"age\"]\n * console.log(tracker.getDirtyColumnsWithValues());\n * // { age: { oldValue: 30, newValue: 31 } }\n * ```\n */\nexport class DatabaseDirtyTracker {\n /**\n * The initial raw data snapshot taken at construction or last reset.\n * Used as the baseline for comparison.\n */\n protected initialRaw: Record<string, unknown>;\n\n /**\n * The current raw data snapshot reflecting all changes made via merge/unset.\n */\n protected currentRaw: Record<string, unknown>;\n\n /**\n * Flattened version of the initial data using dot-notation keys.\n * Example: { \"address.city\": \"NYC\" }\n */\n protected initialFlattened: FlatRecord;\n\n /**\n * Flattened version of the current data using dot-notation keys.\n */\n protected currentFlattened: FlatRecord;\n\n /**\n * Set of column names (dot-notation paths) that have been modified.\n */\n protected readonly dirtyColumns = new Set<string>();\n\n /**\n * Set of column names (dot-notation paths) that existed initially but have been removed.\n */\n protected readonly removedColumns = new Set<string>();\n\n /**\n * Top-level fields that were assigned or unset as a whole (`set(\"nested\", obj)`,\n * `unset(\"nested\")`) since the last reset. Dotted-path writes\n * (`set(\"nested.a\", v)`) and `mergeChanges` are partial by intent and never\n * land here. See {@link getReplacedColumns}.\n */\n protected readonly replacedRoots = new Set<string>();\n\n public constructor(data: Record<string, unknown>) {\n this.initialRaw = this.cloneData(data);\n this.currentRaw = this.cloneData(data);\n\n this.initialFlattened = this.flattenData(this.initialRaw);\n this.currentFlattened = { ...this.initialFlattened };\n\n this.updateDirtyState();\n }\n\n /**\n * Returns the list of dirty columns using dot-notation.\n *\n * A column is considered dirty if its value has changed compared to the initial snapshot.\n *\n * @returns An array of column names (dot-notation paths) that have been modified\n *\n * @example\n * ```typescript\n * tracker.mergeChanges({ name: \"Bob\", \"address.city\": \"LA\" });\n * tracker.getDirtyColumns(); // [\"name\", \"address.city\"]\n * ```\n */\n public getDirtyColumns(): string[] {\n return Array.from(this.dirtyColumns);\n }\n\n /**\n * Removed columns collapsed to the highest path that no longer exists.\n *\n * `getRemovedColumns()` reports leaves (`\"a.b.c\"`). Unsetting just that leaf\n * would keep `a` and `a.b` in the stored document as empty objects whenever\n * the unset emptied them (and `unset()` prunes those parents). This returns\n * the path to actually `$unset`: the shortest prefix that is gone from the\n * current data, which is the leaf itself when its parents still hold other\n * keys.\n *\n * @returns Distinct paths to remove\n */\n public getRemovedPaths(): string[] {\n const paths = new Set<string>();\n\n for (const column of this.removedColumns) {\n const segments = column.split(\".\");\n let container: unknown = this.currentRaw;\n let path = column;\n\n for (let index = 0; index < segments.length; index += 1) {\n const segment = segments[index] as string;\n\n if (\n container === null ||\n typeof container !== \"object\" ||\n !(segment in (container as Record<string, unknown>))\n ) {\n path = segments.slice(0, index + 1).join(\".\");\n break;\n }\n\n container = (container as Record<string, unknown>)[segment];\n }\n\n paths.add(path);\n }\n\n return Array.from(paths);\n }\n\n /**\n * Top-level fields whose nested object must be written as a WHOLE value.\n *\n * Per-leaf diffing cannot express \"this object is now exactly this\": it only\n * reports the leaves that changed or vanished, so a key removed from a nested\n * object leaves its (now empty) parents behind in the stored document. A field\n * that was assigned or unset as a whole therefore reports here, and the writer\n * sends one `$set` (or `$unset`) for it instead of per-leaf operations.\n *\n * A field is reported only when it was replaced via `set(\"field\", value)` /\n * `unset(\"field\")`, either its old or new value is a plain object, and the\n * value actually differs from the baseline. Dotted-path writes\n * (`set(\"field.a\", v)`) and `mergeChanges` stay per-leaf, so partial updates\n * keep working. Scalars and arrays are already whole-value leaves in the diff.\n *\n * @returns Top-level column names to write as a whole\n */\n public getReplacedColumns(): string[] {\n const columns: string[] = [];\n\n for (const root of this.replacedRoots) {\n const initial = this.initialRaw[root];\n const current = this.currentRaw[root];\n\n if (!isPlainObject(initial) && !isPlainObject(current)) {\n continue;\n }\n\n if (areEqual(initial, current)) {\n continue;\n }\n\n columns.push(root);\n }\n\n return columns;\n }\n\n /**\n * Determines whether there are any tracked changes.\n *\n * Returns `true` if any columns have been modified or removed since the initial snapshot.\n *\n * @returns `true` if there are changes, `false` otherwise\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\" });\n * tracker.hasChanges(); // false\n * tracker.mergeChanges({ name: \"Bob\" });\n * tracker.hasChanges(); // true\n * tracker.unset(\"name\");\n * tracker.hasChanges(); // true (removed column counts as a change)\n * ```\n */\n public hasChanges(): boolean {\n return this.dirtyColumns.size > 0 || this.removedColumns.size > 0;\n }\n\n /**\n * Check if the given column is dirty (changed)\n */\n public isDirty(column: string): boolean {\n return this.dirtyColumns.has(column);\n }\n\n /**\n * Returns the set of columns that have been removed compared to the baseline.\n *\n * A column is considered removed if it existed in the initial snapshot but has been\n * explicitly unset or deleted from the current data.\n *\n * @returns An array of column names (dot-notation paths) that have been removed\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", temp: \"value\" });\n * tracker.unset(\"temp\");\n * tracker.getRemovedColumns(); // [\"temp\"]\n * ```\n */\n public getRemovedColumns(): string[] {\n return Array.from(this.removedColumns);\n }\n\n /**\n * Provides a mapping of dirty columns to their previous and current values.\n *\n * This is useful for generating audit logs, building partial update payloads,\n * or displaying change summaries to users.\n *\n * @returns A record mapping each dirty column to an object containing oldValue and newValue\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", age: 30 });\n * tracker.mergeChanges({ age: 31 });\n * tracker.getDirtyColumnsWithValues();\n * // { age: { oldValue: 30, newValue: 31 } }\n * ```\n */\n public getDirtyColumnsWithValues(): Record<string, DirtyColumnValues> {\n const result: Record<string, DirtyColumnValues> = {};\n\n for (const column of this.dirtyColumns) {\n const hasCurrent =\n this.currentFlattened[column] !== undefined || column in this.currentFlattened;\n\n result[column] = {\n oldValue: this.initialFlattened[column],\n newValue: hasCurrent ? this.currentFlattened[column] : undefined,\n };\n }\n\n return result;\n }\n\n /**\n * Replaces the current data snapshot entirely and recomputes the diff.\n *\n * This is useful when you want to replace all current data with a new set,\n * while keeping the initial baseline for comparison.\n *\n * @param data - The new data to set as the current snapshot\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\" });\n * tracker.replaceCurrentData({ name: \"Bob\", email: \"bob@example.com\" });\n * tracker.getDirtyColumns(); // [\"name\", \"email\"]\n * ```\n */\n public replaceCurrentData(data: Record<string, unknown>): void {\n this.currentRaw = this.cloneData(data);\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Merges a partial payload into the current snapshot and recomputes the diff.\n *\n * This performs a deep merge, preserving existing nested structures while\n * updating only the specified fields.\n *\n * @param partial - Partial data to merge into the current snapshot\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", address: { city: \"NYC\" } });\n * tracker.mergeChanges({ address: { zip: \"10001\" } });\n * // Current data: { name: \"Alice\", address: { city: \"NYC\", zip: \"10001\" } }\n * tracker.getDirtyColumns(); // [\"address.zip\"]\n * ```\n */\n public mergeChanges(partial: Record<string, unknown>): void {\n this.mergeIntoRaw(this.currentRaw, partial);\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Replaces the value at a dot-notation path (no deep merge), mirroring\n * `model.set()` so stale nested keys are detected as removed.\n */\n public setAtPath(path: string, value: unknown): void {\n const segments = path.split(\".\");\n let container = this.currentRaw as Record<string, unknown>;\n\n if (segments.length === 1) {\n this.replacedRoots.add(path);\n }\n\n for (let index = 0; index < segments.length - 1; index += 1) {\n const segment = segments[index] as string;\n\n if (!isPlainObject(container[segment]) && !Array.isArray(container[segment])) {\n container[segment] = {};\n }\n\n container = container[segment] as Record<string, unknown>;\n }\n\n container[segments[segments.length - 1] as string] = this.cloneData(value);\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Explicitly removes one or more columns from the current data.\n *\n * Supports both single column names and arrays of column names.\n * Columns can be specified using dot-notation for nested paths.\n *\n * @param columns - A single column name or an array of column names to remove\n *\n * @example\n * ```typescript\n * tracker.unset(\"tempField\");\n * tracker.unset([\"field1\", \"field2\", \"nested.field\"]);\n * tracker.getRemovedColumns(); // [\"tempField\", \"field1\", \"field2\", \"nested.field\"]\n * ```\n */\n public unset(columns: string | string[]): void {\n const targets = Array.isArray(columns) ? columns : [columns];\n\n for (const path of targets) {\n if (!path.includes(\".\")) {\n this.replacedRoots.add(path);\n }\n\n this.deleteFromRaw(path);\n }\n\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Resets both the initial and current snapshots to the provided data.\n *\n * If no data is provided, the current snapshot becomes the new baseline.\n * This clears all tracked changes and removed columns.\n *\n * @param data - Optional new data to use as the baseline. If omitted, uses current data.\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\" });\n * tracker.mergeChanges({ name: \"Bob\" });\n * tracker.hasChanges(); // true\n * tracker.reset(); // Make current state the new baseline\n * tracker.hasChanges(); // false\n *\n * // Or reset to entirely new data:\n * tracker.reset({ name: \"Charlie\", age: 25 });\n * ```\n */\n public reset(data?: Record<string, unknown>): void {\n const source = data ?? this.currentRaw;\n this.initialRaw = this.cloneData(source);\n this.currentRaw = this.cloneData(source);\n\n this.initialFlattened = this.flattenData(this.initialRaw);\n this.currentFlattened = this.flattenData(this.currentRaw);\n\n this.dirtyColumns.clear();\n this.removedColumns.clear();\n this.replacedRoots.clear();\n }\n\n /**\n * Flattens the given data object.\n * Can be overridden by subclasses to change flattening behavior.\n */\n protected flattenData(data: Record<string, unknown>): FlatRecord {\n return flatten(data);\n }\n\n /**\n * Recomputes the dirty and removed column sets by comparing initial and current snapshots.\n *\n * This method is called internally after any operation that modifies the current data.\n * It iterates through all keys in both flattened snapshots and determines which columns\n * have been modified or removed.\n *\n * @protected\n */\n protected updateDirtyState(): void {\n this.dirtyColumns.clear();\n this.removedColumns.clear();\n\n const keys = new Set([\n ...Object.keys(this.initialFlattened),\n ...Object.keys(this.currentFlattened),\n ]);\n\n for (const key of keys) {\n const hasCurrent = this.currentFlattened[key] !== undefined || key in this.currentFlattened;\n const hasInitial = this.initialFlattened[key] !== undefined || key in this.initialFlattened;\n\n if (!hasCurrent && hasInitial) {\n this.removedColumns.add(key);\n }\n\n const initialValue = this.initialFlattened[key];\n const currentValue = hasCurrent ? this.currentFlattened[key] : undefined;\n\n if (!areEqual(initialValue, currentValue)) {\n this.dirtyColumns.add(key);\n }\n }\n }\n\n /**\n * Recursively merges source object into target object, performing a deep merge.\n *\n * Only **plain** objects are merged recursively. Everything else — arrays,\n * primitives, and class instances such as `Date` / `Map` / `Set` / `RegExp` —\n * replaces the target value. All values are cloned to prevent reference sharing.\n *\n * The plain-object guard is load-bearing, not tidiness. A bare\n * `typeof value === \"object\"` also matches a `Date`, and `Object.entries(date)`\n * is `[]` — so merging a `Date` over a column that already held a `Date`\n * recursed into it, copied nothing, and left the old value in the snapshot.\n * The column then never went dirty and `save()` returned\n * `{ success: true, modifiedCount: 0 }` without issuing an `UPDATE`. This is\n * the same lesson `canBeFlatten` above already encodes.\n *\n * @param target - The object to merge into\n * @param source - The object to merge from\n * @private\n */\n protected mergeIntoRaw(target: Record<string, unknown>, source: Record<string, unknown>): void {\n for (const [key, value] of Object.entries(source)) {\n if (isPlainObject(value) && isPlainObject(target[key])) {\n this.mergeIntoRaw(target[key] as Record<string, unknown>, value as Record<string, unknown>);\n continue;\n }\n\n target[key] = this.cloneData(value);\n }\n }\n\n /**\n * Deletes a field from the current raw data using a dot-notation path.\n *\n * Supports nested paths (e.g., \"address.city\") and array indices (e.g., \"items.0\").\n * If any segment in the path doesn't exist, the operation is a no-op.\n *\n * @param path - The dot-notation path to the field to delete\n * @private\n */\n protected deleteFromRaw(path: string): void {\n const segments = path.split(\".\");\n let container: unknown = this.currentRaw;\n\n for (let index = 0; index < segments.length - 1; index += 1) {\n if (container === undefined || container === null) {\n return;\n }\n\n const segment = segments[index] as string;\n if (segment === undefined) {\n return;\n }\n\n container = this.resolveSegment(container, segment);\n }\n\n if (container === undefined || container === null) {\n return;\n }\n\n const lastSegment = segments[segments.length - 1];\n if (lastSegment === undefined) {\n return;\n }\n if (Array.isArray(container)) {\n const numericIndex = Number(lastSegment);\n if (!Number.isNaN(numericIndex)) {\n container.splice(numericIndex, 1);\n }\n return;\n }\n\n if (typeof container === \"object\") {\n const existed = lastSegment in (container as Record<string, unknown>);\n\n delete (container as Record<string, unknown>)[lastSegment];\n\n // Drop parents this unset just emptied; a parent that was already `{}` is\n // left alone because nothing was removed from it.\n if (existed) {\n pruneEmptyParents(this.currentRaw, path);\n }\n }\n }\n\n /**\n * Resolves a single segment of a dot-notation path within a container.\n *\n * Handles both object property access and array index access.\n *\n * @param container - The object or array to access\n * @param segment - The property name or array index as a string\n * @returns The value at the specified segment, or undefined if not found\n * @private\n */\n protected resolveSegment(container: unknown, segment: string): unknown {\n if (Array.isArray(container)) {\n const numericIndex = Number(segment);\n if (Number.isNaN(numericIndex)) {\n return undefined;\n }\n\n return container[numericIndex];\n }\n\n if (container && typeof container === \"object\") {\n return (container as Record<string, unknown>)[segment];\n }\n\n return undefined;\n }\n\n /**\n * Creates a deep clone of the provided data.\n *\n * @param data - The data to clone\n * @returns A deep clone of the data\n * @private\n */\n protected cloneData<T>(data: T): T {\n return clone(data);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"database-dirty-tracker.mjs","names":[],"sources":["../../../../../../../packages/cascade/src/database-dirty-tracker.ts"],"sourcesContent":["import { areEqual, clone } from \"@mongez/reinforcements\";\nimport { isPlainObject } from \"@mongez/supportive-is\";\nimport { pruneEmptyParents } from \"./utils/prune-empty-parents\";\n\nfunction canBeFlatten(object: unknown): boolean {\n return isPlainObject(object);\n}\n\n/**\n * A fix for flatten as non-plain object is being flatten as well which it should not be\n */\nfunction flatten(\n object: Record<string, unknown>,\n separator = \".\",\n keepNestedOriginalObject = false,\n parent?: string,\n root: Record<string, unknown> = {},\n) {\n if (canBeFlatten(object) === false) {\n return object;\n }\n // object = toPlainObject(object);\n for (const key of Object.keys(object)) {\n const value = object[key];\n const keyChain = parent ? parent + separator + key : key;\n if ((Array.isArray(value) && value.length === 0) || typeof value === \"function\") {\n root[keyChain] = value;\n } else if (canBeFlatten(value)) {\n if (keepNestedOriginalObject) {\n root[keyChain] = value;\n }\n flatten(\n value as Record<string, unknown>,\n separator,\n keepNestedOriginalObject,\n keyChain,\n root,\n );\n } else {\n root[keyChain] = value;\n }\n }\n return root;\n}\n\n/**\n * Flattened record type representing dot-notation paths mapped to their values.\n */\ntype FlatRecord = Record<string, unknown>;\n\n/**\n * Represents the old and new values of a dirty column.\n */\ntype DirtyColumnValues = { oldValue: unknown; newValue: unknown };\n\n/**\n * Tracks changes to model data by maintaining snapshots of initial and current state.\n *\n * The tracker stores both raw (nested) and flattened (dot-notation) versions of the data\n * to accurately detect modifications, additions, and removals at any nesting level.\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", age: 30 });\n * tracker.mergeChanges({ age: 31 });\n * console.log(tracker.hasChanges()); // true\n * console.log(tracker.getDirtyColumns()); // [\"age\"]\n * console.log(tracker.getDirtyColumnsWithValues());\n * // { age: { oldValue: 30, newValue: 31 } }\n * ```\n */\nexport class DatabaseDirtyTracker {\n /**\n * The initial raw data snapshot taken at construction or last reset.\n * Used as the baseline for comparison.\n */\n protected initialRaw: Record<string, unknown>;\n\n /**\n * The current raw data snapshot reflecting all changes made via merge/unset.\n */\n protected currentRaw: Record<string, unknown>;\n\n /**\n * Flattened version of the initial data using dot-notation keys.\n * Example: { \"address.city\": \"NYC\" }\n */\n protected initialFlattened: FlatRecord;\n\n /**\n * Flattened version of the current data using dot-notation keys.\n */\n protected currentFlattened: FlatRecord;\n\n /**\n * Set of column names (dot-notation paths) that have been modified.\n */\n protected readonly dirtyColumns = new Set<string>();\n\n /**\n * Set of column names (dot-notation paths) that existed initially but have been removed.\n */\n protected readonly removedColumns = new Set<string>();\n\n /**\n * Top-level fields that were assigned or unset as a whole (`set(\"nested\", obj)`,\n * `unset(\"nested\")`) since the last reset. Dotted-path writes\n * (`set(\"nested.a\", v)`) and `mergeChanges` are partial by intent and never\n * land here. See {@link getReplacedColumns}.\n */\n protected readonly replacedRoots = new Set<string>();\n\n public constructor(data: Record<string, unknown>) {\n this.initialRaw = this.cloneData(data);\n this.currentRaw = this.cloneData(data);\n\n this.initialFlattened = this.flattenData(this.initialRaw);\n this.currentFlattened = { ...this.initialFlattened };\n\n this.updateDirtyState();\n }\n\n /**\n * Returns the list of dirty columns using dot-notation.\n *\n * A column is considered dirty if its value has changed compared to the initial snapshot.\n *\n * @returns An array of column names (dot-notation paths) that have been modified\n *\n * @example\n * ```typescript\n * tracker.mergeChanges({ name: \"Bob\", \"address.city\": \"LA\" });\n * tracker.getDirtyColumns(); // [\"name\", \"address.city\"]\n * ```\n */\n public getDirtyColumns(): string[] {\n return Array.from(this.dirtyColumns);\n }\n\n /**\n * Removed columns collapsed to the highest path that no longer exists.\n *\n * `getRemovedColumns()` reports leaves (`\"a.b.c\"`). Unsetting just that leaf\n * would keep `a` and `a.b` in the stored document as empty objects whenever\n * the unset emptied them (and `unset()` prunes those parents). This returns\n * the path to actually `$unset`: the shortest prefix that is gone from the\n * current data, which is the leaf itself when its parents still hold other\n * keys.\n *\n * @returns Distinct paths to remove\n */\n public getRemovedPaths(): string[] {\n const paths = new Set<string>();\n\n for (const column of this.removedColumns) {\n const segments = column.split(\".\");\n let container: unknown = this.currentRaw;\n let path = column;\n\n for (let index = 0; index < segments.length; index += 1) {\n const segment = segments[index] as string;\n\n if (\n container === null ||\n typeof container !== \"object\" ||\n !(segment in (container as Record<string, unknown>))\n ) {\n path = segments.slice(0, index + 1).join(\".\");\n break;\n }\n\n container = (container as Record<string, unknown>)[segment];\n }\n\n paths.add(path);\n }\n\n return Array.from(paths);\n }\n\n /**\n * Top-level fields whose nested object must be written as a WHOLE value.\n *\n * Per-leaf diffing cannot express \"this object is now exactly this\": it only\n * reports the leaves that changed or vanished, so a key removed from a nested\n * object leaves its (now empty) parents behind in the stored document. A field\n * that was assigned or unset as a whole therefore reports here, and the writer\n * sends one `$set` (or `$unset`) for it instead of per-leaf operations.\n *\n * A field is reported only when it was replaced via `set(\"field\", value)` /\n * `unset(\"field\")`, either its old or new value is a plain object, and the\n * value actually differs from the baseline. Dotted-path writes\n * (`set(\"field.a\", v)`) and `mergeChanges` stay per-leaf, so partial updates\n * keep working. Scalars and arrays are already whole-value leaves in the diff.\n *\n * @returns Top-level column names to write as a whole\n */\n public getReplacedColumns(): string[] {\n const columns: string[] = [];\n\n for (const root of this.replacedRoots) {\n const initial = this.initialRaw[root];\n const current = this.currentRaw[root];\n\n if (!isPlainObject(initial) && !isPlainObject(current)) {\n continue;\n }\n\n if (areEqual(initial, current)) {\n continue;\n }\n\n columns.push(root);\n }\n\n return columns;\n }\n\n /**\n * Determines whether there are any tracked changes.\n *\n * Returns `true` if any columns have been modified or removed since the initial snapshot.\n *\n * @returns `true` if there are changes, `false` otherwise\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\" });\n * tracker.hasChanges(); // false\n * tracker.mergeChanges({ name: \"Bob\" });\n * tracker.hasChanges(); // true\n * tracker.unset(\"name\");\n * tracker.hasChanges(); // true (removed column counts as a change)\n * ```\n */\n public hasChanges(): boolean {\n return this.dirtyColumns.size > 0 || this.removedColumns.size > 0;\n }\n\n /**\n * Check if the given column is dirty (changed)\n */\n public isDirty(column: string): boolean {\n return this.dirtyColumns.has(column);\n }\n\n /**\n * Returns the set of columns that have been removed compared to the baseline.\n *\n * A column is considered removed if it existed in the initial snapshot but has been\n * explicitly unset or deleted from the current data.\n *\n * @returns An array of column names (dot-notation paths) that have been removed\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", temp: \"value\" });\n * tracker.unset(\"temp\");\n * tracker.getRemovedColumns(); // [\"temp\"]\n * ```\n */\n public getRemovedColumns(): string[] {\n return Array.from(this.removedColumns);\n }\n\n /**\n * Provides a mapping of dirty columns to their previous and current values.\n *\n * This is useful for generating audit logs, building partial update payloads,\n * or displaying change summaries to users.\n *\n * @returns A record mapping each dirty column to an object containing oldValue and newValue\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", age: 30 });\n * tracker.mergeChanges({ age: 31 });\n * tracker.getDirtyColumnsWithValues();\n * // { age: { oldValue: 30, newValue: 31 } }\n * ```\n */\n public getDirtyColumnsWithValues(): Record<string, DirtyColumnValues> {\n const result: Record<string, DirtyColumnValues> = {};\n\n for (const column of this.dirtyColumns) {\n const hasCurrent =\n this.currentFlattened[column] !== undefined || column in this.currentFlattened;\n\n result[column] = {\n oldValue: this.initialFlattened[column],\n newValue: hasCurrent ? this.currentFlattened[column] : undefined,\n };\n }\n\n return result;\n }\n\n /**\n * Replaces the current data snapshot entirely and recomputes the diff.\n *\n * This is useful when you want to replace all current data with a new set,\n * while keeping the initial baseline for comparison.\n *\n * @param data - The new data to set as the current snapshot\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\" });\n * tracker.replaceCurrentData({ name: \"Bob\", email: \"bob@example.com\" });\n * tracker.getDirtyColumns(); // [\"name\", \"email\"]\n * ```\n */\n public replaceCurrentData(data: Record<string, unknown>): void {\n this.currentRaw = this.cloneData(data);\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Merges a partial payload into the current snapshot and recomputes the diff.\n *\n * This performs a deep merge, preserving existing nested structures while\n * updating only the specified fields.\n *\n * @param partial - Partial data to merge into the current snapshot\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\", address: { city: \"NYC\" } });\n * tracker.mergeChanges({ address: { zip: \"10001\" } });\n * // Current data: { name: \"Alice\", address: { city: \"NYC\", zip: \"10001\" } }\n * tracker.getDirtyColumns(); // [\"address.zip\"]\n * ```\n */\n public mergeChanges(partial: Record<string, unknown>): void {\n this.mergeIntoRaw(this.currentRaw, partial);\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Replaces the value at a dot-notation path (no deep merge), mirroring\n * `model.set()` so stale nested keys are detected as removed.\n */\n public setAtPath(path: string, value: unknown): void {\n const segments = path.split(\".\");\n let container = this.currentRaw as Record<string, unknown>;\n\n if (segments.length === 1) {\n this.replacedRoots.add(path);\n }\n\n for (let index = 0; index < segments.length - 1; index += 1) {\n const segment = segments[index] as string;\n\n if (!isPlainObject(container[segment]) && !Array.isArray(container[segment])) {\n container[segment] = {};\n }\n\n container = container[segment] as Record<string, unknown>;\n }\n\n container[segments[segments.length - 1] as string] = this.cloneData(value);\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Explicitly removes one or more columns from the current data.\n *\n * Supports both single column names and arrays of column names.\n * Columns can be specified using dot-notation for nested paths.\n *\n * @param columns - A single column name or an array of column names to remove\n *\n * @example\n * ```typescript\n * tracker.unset(\"tempField\");\n * tracker.unset([\"field1\", \"field2\", \"nested.field\"]);\n * tracker.getRemovedColumns(); // [\"tempField\", \"field1\", \"field2\", \"nested.field\"]\n * ```\n */\n public unset(columns: string | string[]): void {\n const targets = Array.isArray(columns) ? columns : [columns];\n\n for (const path of targets) {\n if (!path.includes(\".\")) {\n this.replacedRoots.add(path);\n }\n\n this.deleteFromRaw(path);\n }\n\n this.currentFlattened = this.flattenData(this.currentRaw);\n this.updateDirtyState();\n }\n\n /**\n * Resets both the initial and current snapshots to the provided data.\n *\n * If no data is provided, the current snapshot becomes the new baseline.\n * This clears all tracked changes and removed columns.\n *\n * @param data - Optional new data to use as the baseline. If omitted, uses current data.\n *\n * @example\n * ```typescript\n * const tracker = new DatabaseDirtyTracker({ name: \"Alice\" });\n * tracker.mergeChanges({ name: \"Bob\" });\n * tracker.hasChanges(); // true\n * tracker.reset(); // Make current state the new baseline\n * tracker.hasChanges(); // false\n *\n * // Or reset to entirely new data:\n * tracker.reset({ name: \"Charlie\", age: 25 });\n * ```\n */\n public reset(data?: Record<string, unknown>): void {\n const source = data ?? this.currentRaw;\n this.initialRaw = this.cloneData(source);\n this.currentRaw = this.cloneData(source);\n\n this.initialFlattened = this.flattenData(this.initialRaw);\n this.currentFlattened = this.flattenData(this.currentRaw);\n\n this.dirtyColumns.clear();\n this.removedColumns.clear();\n this.replacedRoots.clear();\n }\n\n /**\n * Flattens the given data object.\n * Can be overridden by subclasses to change flattening behavior.\n */\n protected flattenData(data: Record<string, unknown>): FlatRecord {\n return flatten(data);\n }\n\n /**\n * Recomputes the dirty and removed column sets by comparing initial and current snapshots.\n *\n * This method is called internally after any operation that modifies the current data.\n * It iterates through all keys in both flattened snapshots and determines which columns\n * have been modified or removed.\n *\n * @protected\n */\n protected updateDirtyState(): void {\n this.dirtyColumns.clear();\n this.removedColumns.clear();\n\n const keys = new Set([\n ...Object.keys(this.initialFlattened),\n ...Object.keys(this.currentFlattened),\n ]);\n\n for (const key of keys) {\n const hasCurrent = this.currentFlattened[key] !== undefined || key in this.currentFlattened;\n const hasInitial = this.initialFlattened[key] !== undefined || key in this.initialFlattened;\n\n if (!hasCurrent && hasInitial) {\n this.removedColumns.add(key);\n }\n\n const initialValue = this.initialFlattened[key];\n const currentValue = hasCurrent ? this.currentFlattened[key] : undefined;\n\n if (!areEqual(initialValue, currentValue)) {\n this.dirtyColumns.add(key);\n }\n }\n }\n\n /**\n * Recursively merges source object into target object, performing a deep merge.\n *\n * Only **plain** objects are merged recursively. Everything else — arrays,\n * primitives, and class instances such as `Date` / `Map` / `Set` / `RegExp` —\n * replaces the target value. All values are cloned to prevent reference sharing.\n *\n * The plain-object guard is load-bearing, not tidiness. A bare\n * `typeof value === \"object\"` also matches a `Date`, and `Object.entries(date)`\n * is `[]` — so merging a `Date` over a column that already held a `Date`\n * recursed into it, copied nothing, and left the old value in the snapshot.\n * The column then never went dirty and `save()` returned\n * `{ success: true, modifiedCount: 0 }` without issuing an `UPDATE`. This is\n * the same lesson `canBeFlatten` above already encodes.\n *\n * @param target - The object to merge into\n * @param source - The object to merge from\n * @private\n */\n protected mergeIntoRaw(target: Record<string, unknown>, source: Record<string, unknown>): void {\n for (const [key, value] of Object.entries(source)) {\n if (isPlainObject(value) && isPlainObject(target[key])) {\n this.mergeIntoRaw(target[key] as Record<string, unknown>, value as Record<string, unknown>);\n continue;\n }\n\n target[key] = this.cloneData(value);\n }\n }\n\n /**\n * Deletes a field from the current raw data using a dot-notation path.\n *\n * Supports nested paths (e.g., \"address.city\") and array indices (e.g., \"items.0\").\n * If any segment in the path doesn't exist, the operation is a no-op.\n *\n * @param path - The dot-notation path to the field to delete\n * @private\n */\n protected deleteFromRaw(path: string): void {\n const segments = path.split(\".\");\n let container: unknown = this.currentRaw;\n\n for (let index = 0; index < segments.length - 1; index += 1) {\n if (container === undefined || container === null) {\n return;\n }\n\n const segment = segments[index] as string;\n if (segment === undefined) {\n return;\n }\n\n container = this.resolveSegment(container, segment);\n }\n\n if (container === undefined || container === null) {\n return;\n }\n\n const lastSegment = segments[segments.length - 1];\n if (lastSegment === undefined) {\n return;\n }\n if (Array.isArray(container)) {\n const numericIndex = Number(lastSegment);\n if (!Number.isNaN(numericIndex)) {\n container.splice(numericIndex, 1);\n }\n return;\n }\n\n if (typeof container === \"object\") {\n const existed = lastSegment in (container as Record<string, unknown>);\n\n delete (container as Record<string, unknown>)[lastSegment];\n\n // Drop parents this unset just emptied; a parent that was already `{}` is\n // left alone because nothing was removed from it.\n if (existed) {\n pruneEmptyParents(this.currentRaw, path);\n }\n }\n }\n\n /**\n * Resolves a single segment of a dot-notation path within a container.\n *\n * Handles both object property access and array index access.\n *\n * @param container - The object or array to access\n * @param segment - The property name or array index as a string\n * @returns The value at the specified segment, or undefined if not found\n * @private\n */\n protected resolveSegment(container: unknown, segment: string): unknown {\n if (Array.isArray(container)) {\n const numericIndex = Number(segment);\n if (Number.isNaN(numericIndex)) {\n return undefined;\n }\n\n return container[numericIndex];\n }\n\n if (container && typeof container === \"object\") {\n return (container as Record<string, unknown>)[segment];\n }\n\n return undefined;\n }\n\n /**\n * Creates a deep clone of the provided data.\n *\n * @param data - The data to clone\n * @returns A deep clone of the data\n * @private\n */\n protected cloneData<T>(data: T): T {\n return clone(data);\n }\n}\n"],"mappings":"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"}
@@ -7,18 +7,18 @@ import { QueryBuilderContract } from "../../contracts/query-builder.contract.mjs
7
7
  import { SyncAdapterContract } from "../../contracts/sync-adapter.contract.mjs";
8
8
  import { AtomicUpdate, DriverAtomicUpdateOptions, DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, InsertResult, RawQueryResult, TransactionContext, UpdateOperations, UpdateResult } from "../../contracts/database-driver.contract.mjs";
9
9
  import { IdGeneratorContract } from "../../contracts/database-id-generator.contract.mjs";
10
+ import "../../contracts/index.mjs";
10
11
  import { MongoDriverOptions } from "./types.mjs";
11
12
  import { ClientSession, Db, MongoClient, MongoClientOptions } from "mongodb";
12
-
13
13
  //#region ../../packages/cascade/src/drivers/mongodb/mongodb-driver.d.ts
14
- declare function isMongoDBDriverLoaded(): boolean | null;
14
+ export declare function isMongoDBDriverLoaded(): boolean | null;
15
15
  /**
16
16
  * MongoDB driver implementation that fulfils the Cascade driver contract.
17
17
  *
18
18
  * It encapsulates the native Mongo client, exposes lifecycle events, and
19
19
  * provides helpers for CRUD, transactions, atomic updates, and sync adapters.
20
20
  */
21
- declare class MongoDbDriver implements DriverContract {
21
+ export declare class MongoDbDriver implements DriverContract {
22
22
  private readonly config;
23
23
  private readonly driverOptions?;
24
24
  private readonly events;
@@ -364,5 +364,4 @@ declare class MongoDbDriver implements DriverContract {
364
364
  dropAllTables(): Promise<void>;
365
365
  }
366
366
  //#endregion
367
- export { MongoDbDriver, isMongoDBDriverLoaded };
368
367
  //# sourceMappingURL=mongodb-driver.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-driver.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-driver.ts"],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-driver.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-driver.ts"],"mappings":";;;;;;;;;;;;;wBAyGgB;;;;;;;qBA2BH,yBAAyB;mBA6DjB;mBAWA;mBAvEF;EACV,SAAS;EACT,WAAW;UACV;UACA;UACA;mBACS;UACT;UACA;mBACS;MAKN,aAAa;;;;WAWR;;;;YAKN;;;;;;;;;;WAWM,eAAe,QAAQ;;;;;;;EAkBvC,YACmB;IACf;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,gBAAgB;KAED,gBAAgB;;;;MAWxB;;;;UAWH;;;;MAWG;;;;;;;;;;;;;EAgBJ,eAAe;;;;;;;;;;;;;;;;EAwBf,kBAAkB;;;;;EAkBZ,WAAW;;;;EA4GX,cAAc;;;;EAgBpB,GAAG,OAAO,aAAa,UAAU;;EAKjC,IAAI,OAAO,aAAa,UAAU;;;;EAO5B,OACX,eACA,UAAU,yBACV,UAAU,0BACT,QAAQ;;;;EAgBE,WACX,eACA,WAAW,2BACX,UAAU,0BACT,QAAQ;;;;EAuBE,OACX,eACA,QAAQ,yBACR,QAAQ,yBACR,UAAU,0BACT,QAAQ;;;;EAeE,QAAQ,aACnB,eACA,QAAQ,yBACR,UAAU,yBACV,UAAU,0BACT,QAAQ;;;;;;;EAiBE,iBAAiB,aAC5B,eACA,QAAQ,yBACR,QAAQ,cACR,UAAU,4BACT,QAAQ;;;;;;;;;;;;EA0BE,OAAO,aAClB,eACA,QAAQ,yBACR,UAAU,yBACV,UAAU,0BACT,QAAQ;;;;;;;;;EAwBE,iBAAiB,aAC5B,eACA,QAAQ,yBACR,UAAU,0BACT,QAAQ;;;;EAYE,WACX,eACA,QAAQ,yBACR,QAAQ,kBACR,UAAU,0BACT,QAAQ;;;;EAeE,OACX,eACA,SAAQ,yBACR,UAAU,0BACT;;;;EAWU,WACX,eACA,SAAQ,yBACR,UAAU,0BACT;;;;;;;;EAgBU,cAAc,eAAe,UAAU,0BAA0B;;;;EAWvE,UAAU,MAAM,0BAA0B;;;;EA4B1C,gBAAgB,MAAM,0BAA0B;;;;EAOhD,YAAY,MAAM,0BAA0B;;;;EAkB5C,aAAa,aAAa,gBAAgB,qBAAqB;;;;EAOzD,oBAAoB,QAAQ,0BAA0B;;;;;;;;;;;;;;;;EAgEtD,YAAY,GACvB,KAAK,KAAK,uBAAuB,QAAQ,IACzC,UAAU,0BACT,QAAQ;;;;;;;EAoEE,OACX,eACA,QAAQ,yBACR,YAAY,cACZ,UAAU,4BACT,QAAQ;;;;;;EAkBJ,eAAe;;;;;EAYf,mBAAmB;;;;EAWnB,UAAU,SAAS,gBAAgB;;;;UAOlC;;;;;UAYA;;;;UAWA;;;;UAcA;;;;UA4BA;UAIA;UAqBA;UAiBA;;;;;;UAkBA;UAQA;;;;;;UAiBA;UAEM;;;;;;UAmCN;;;;;UAcA;;;;UASA;;;;;WAwBQ;;;;;EAMT,oBAAoB;;;;;EAQd,MAAM,IAAI,yBACrB,cACA,sBACC,QAAQ,eAAe;;;;;;;;;;EAiBb,eAAe,eAAe;;;;;;;EA6B9B,aAAa,eAAe;;;;;;;EAwB5B,eAAe,eAAe;;;;;;EAY9B,iBAAiB;;;;;;;EAmBjB,UAAU,eAAe;;;;;;EAWzB,kBAAkB,eAAe;;;;;;EAWjC,iBAAiB"}
@@ -1,6 +1,6 @@
1
1
  import { GenerateIdOptions, IdGeneratorContract } from "../../contracts/database-id-generator.contract.mjs";
2
+ import "../../contracts/index.mjs";
2
3
  import { MongoDbDriver } from "./mongodb-driver.mjs";
3
-
4
4
  //#region ../../packages/cascade/src/drivers/mongodb/mongodb-id-generator.d.ts
5
5
  /**
6
6
  * MongoDB-specific ID generator for auto-incrementing integer IDs.
@@ -39,7 +39,7 @@ import { MongoDbDriver } from "./mongodb-driver.mjs";
39
39
  * const ids = await idGenerator.generateNextIds({ table: "users", count: 100 }); // a block
40
40
  * ```
41
41
  */
42
- declare class MongoIdGenerator implements IdGeneratorContract {
42
+ export declare class MongoIdGenerator implements IdGeneratorContract {
43
43
  private readonly driver;
44
44
  /**
45
45
  * The collection name that stores ID counters.
@@ -166,5 +166,4 @@ declare class MongoIdGenerator implements IdGeneratorContract {
166
166
  setLastId(table: string, id: number): Promise<void>;
167
167
  }
168
168
  //#endregion
169
- export { MongoIdGenerator };
170
169
  //# sourceMappingURL=mongodb-id-generator.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-id-generator.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-id-generator.ts"],"mappings":";;;;;;;AA4DA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAa,gBAAA,YAA4B,mBAAA;EAAA,iBAsBpB,MAAA;EAwMoB;;;;;;EAAA,SAvNvB,iBAAA;;;;;UAMR,YAAA;;;;;;;cASW,MAAA,EAAQ,aAAA,EACzB,iBAAA;;;;;;;;;;;;;;;EAqBW,cAAA,CAAe,OAAA,EAAS,iBAAA,GAAoB,OAAA;;;;;;;;;;;;;;;;;EAwB5C,eAAA,CAAgB,OAAA,EAAS,iBAAA;IAAsB,KAAA;EAAA,IAAkB,OAAA;;;;;;;;;;;;;;;;;;;;;UAmChE,YAAA;;;;;;;;;;;UA6DA,qBAAA;;;;;;;;;;UA6BA,aAAA;;;;;UAYA,kBAAA;;;;;;;EAiBD,SAAA,CAAU,KAAA,WAAgB,OAAA;;;;;;;;;;;;;;;;EAqB1B,SAAA,CAAU,KAAA,UAAe,EAAA,WAAa,OAAA;AAAA"}
1
+ {"version":3,"file":"mongodb-id-generator.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-id-generator.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA4Da,4BAA4B;mBAsBpB;;;;;;;WAfH;;;;;UAMR;;;;;;;EAQR,YACmB,QAAQ,eACzB;;;;;;;;;;;;;;;EAqBW,eAAe,SAAS,oBAAoB;;;;;;;;;;;;;;;;;EAwB5C,gBAAgB,SAAS;IAAsB;MAAkB;;;;;;;;;;;;;;;;;;;;;UAmChE;;;;;;;;;;;UA6DA;;;;;;;;;;UA6BA;;;;;UAYA;;;;;;;EAiBD,UAAU,gBAAgB;;;;;;;;;;;;;;;;EAqB1B,UAAU,eAAe,aAAa"}
@@ -2,7 +2,6 @@ import { MigrationDefaults } from "../../types.mjs";
2
2
  import { TableIndexInformation } from "../../contracts/driver-blueprint.contract.mjs";
3
3
  import { ColumnDefinition, ForeignKeyDefinition, FullTextIndexOptions, GeoIndexOptions, IndexDefinition, MigrationDriverContract, VectorIndexOptions } from "../../contracts/migration-driver.contract.mjs";
4
4
  import { MongoDbDriver } from "./mongodb-driver.mjs";
5
-
6
5
  //#region ../../packages/cascade/src/drivers/mongodb/mongodb-migration-driver.d.ts
7
6
  /**
8
7
  * MongoDB-specific migration driver implementation.
@@ -24,7 +23,7 @@ import { MongoDbDriver } from "./mongodb-driver.mjs";
24
23
  * });
25
24
  * ```
26
25
  */
27
- declare class MongoMigrationDriver implements MigrationDriverContract {
26
+ export declare class MongoMigrationDriver implements MigrationDriverContract {
28
27
  readonly driver: MongoDbDriver;
29
28
  /** Active transaction session (if any) */
30
29
  private session?;
@@ -322,5 +321,4 @@ declare class MongoMigrationDriver implements MigrationDriverContract {
322
321
  raw<T>(callback: (connection: unknown) => Promise<T>): Promise<T>;
323
322
  }
324
323
  //#endregion
325
- export { MongoMigrationDriver };
326
324
  //# sourceMappingURL=mongodb-migration-driver.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-migration-driver.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-migration-driver.ts"],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-migration-driver.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-migration-driver.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;qBAmCa,gCAAgC;WASR,QAAQ;;UAPnC;;;;;;EAOR,YAAmC,QAAQ;;;;cAK/B;;;;cAOA;;;;;;;;EAgBC,YAAY,gBAAgB;;;;EAe5B,uBAAuB,gBAAgB;;;;;;EAiBvC,UAAU,gBAAgB;;;;EAO1B,kBAAkB,gBAAgB;;;;EAWlC,YAAY,cAAc,aAAa;;;;;;EASvC,cAAc,gBAAgB;;;;EAO9B,YAAY,gBAAgB;;;;;;;EAW5B,YAAY,iBAAiB,QAAQ;;;;EAQrC,cAAc;;;;;;;;;EAad,sBAAsB,oBAAoB;;;;;;EAoB1C,UAAU,gBAAgB,SAAS,mBAAmB;;;;;;EAStD,WAAW,eAAe,iBAAiB;;;;EAQ3C,YAAY,eAAe,oBAAoB;;;;EAY/C,aAAa,eAAe,cAAc,aAAa;;;;;;EAUvD,aAAa,gBAAgB,SAAS,mBAAmB;;;;;;;;;EAYzD,uBAAuB,iBAAiB;;;;;;;EAcxC,YAAY,eAAe,OAAO,kBAAkB;;;;;;;;;;EAkDpD,UAAU,eAAe,wCAAwC;;;;EAajE,kBAAkB,eAAe,mBAAmB,gBAAgB;;;;EAWpE,gBAAgB,eAAe,oBAAoB;;;;;;EAyBnD,oBACX,eACA,mBACA,UAAU,uBACT;;;;EA2BU,kBAAkB,eAAe,eAAe;;;;EAOhD,eACX,eACA,gBACA,UAAU,kBACT;;;;EAwBU,aAAa,eAAe,iBAAiB;;;;;;;EAsB7C,kBACX,eACA,gBACA,SAAS,qBACR;;;;EAiCU,gBAAgB,eAAe,iBAAiB;;;;EA8BhD,eACX,eACA,gBACA,6BACC;;;;EAQU,aAAa,eAAe,iBAAiB;;;;;;;EAsB7C,YAAY,gBAAgB,QAAQ;;;;;;;EAwBpC,cAAc,gBAAgB,aAAa,uBAAuB;;;;EAOlE,eAAe,gBAAgB,gBAAgB;;;;;;EAS/C,cAAc,gBAAgB,qBAAqB;;;;EAOnD,eAAe,iBAAiB;;;;;;;EAUhC,SAAS,gBAAgB,eAAe,sBAAsB;;;;EAO9D,UAAU,gBAAgB,gBAAgB;;;;;;;;;;;;;;;;;;EAyB1C,oBAAoB,eAAe,iBAAiB;;;;EAYpD,uBAAuB,gBAAgB;;;;;;EAiBvC,oBAAoB;;;;EAQpB,UAAU;;;;EAWV,YAAY;;;;EAWlB;;;;;;;;;;EAaA;;;;;;;;;;EAiBA,eAAe,qBAAqB;;;;;;EAa9B,qBAAqB,qBAAqB;;;;;;EAShD,oBAAoB;;;;;;;;;;;;;;EAqBd,IAAI,GAAG,WAAW,wBAAwB,QAAQ,KAAK,QAAQ"}
@@ -1,4 +1,5 @@
1
1
  import { CursorPaginationOptions, CursorPaginationResult, DriverQuery, GroupByInput, HavingInput, JoinOptions, LeanDocument, OrderDirection, PaginationOptions, PaginationResult, QueryBuilderContract, RawExpression, UnwindOptions, WhereCallback, WhereObject, WhereOperator } from "../../contracts/query-builder.contract.mjs";
2
+ import "../../contracts/index.mjs";
2
3
  import { DataSource } from "../../data-source/data-source.mjs";
3
4
  import { Operation } from "./types.mjs";
4
5
  import { QueryBuilder } from "../../query-builder/query-builder.mjs";
@@ -6,12 +7,11 @@ import { MongoQueryOperations } from "./mongodb-query-operations.mjs";
6
7
  import { MongoQueryParser } from "./mongodb-query-parser.mjs";
7
8
  import { GenericObject } from "@mongez/reinforcements";
8
9
  import { Collection } from "mongodb";
9
-
10
10
  //#region ../../packages/cascade/src/drivers/mongodb/mongodb-query-builder.d.ts
11
11
  /**
12
12
  * MongoDB-specific query builder implementation using aggregation pipeline.
13
13
  */
14
- declare class MongoQueryBuilder<T = unknown> extends QueryBuilder<T> implements QueryBuilderContract<T> {
14
+ export declare class MongoQueryBuilder<T = unknown> extends QueryBuilder<T> implements QueryBuilderContract<T> {
15
15
  readonly table: string;
16
16
  /**
17
17
  * Ordered list of operations to be converted to MongoDB aggregation pipeline.
@@ -1193,5 +1193,4 @@ declare class MongoQueryBuilder<T = unknown> extends QueryBuilder<T> implements
1193
1193
  similarTo(column: string, embedding: number[], alias?: string): this;
1194
1194
  }
1195
1195
  //#endregion
1196
- export { MongoQueryBuilder };
1197
1196
  //# sourceMappingURL=mongodb-query-builder.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-query-builder.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-query-builder.ts"],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-query-builder.d.mts","names":[],"sources":["../../../../../../../../../packages/cascade/src/drivers/mongodb/mongodb-query-builder.ts"],"mappings":"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"}
@@ -797,9 +797,10 @@ var MongoQueryBuilder = class MongoQueryBuilder extends QueryBuilder {
797
797
  * @param args - The arguments passed to where/orWhere
798
798
  */
799
799
  addWhereClause(prefix, args) {
800
- if (args.length === 1) if (typeof args[0] === "function") this.operationsHelper.addMatchOperation(`${prefix}:callback`, args[0]);
801
- else this.operationsHelper.addMatchOperation(`${prefix}:object`, sanitizeFilter(args[0]));
802
- else if (args.length === 2) this.operationsHelper.addMatchOperation(prefix, {
800
+ if (args.length === 1) {
801
+ if (typeof args[0] === "function") this.operationsHelper.addMatchOperation(`${prefix}:callback`, args[0]);
802
+ else this.operationsHelper.addMatchOperation(`${prefix}:object`, sanitizeFilter(args[0]));
803
+ } else if (args.length === 2) this.operationsHelper.addMatchOperation(prefix, {
803
804
  field: args[0],
804
805
  operator: "=",
805
806
  value: sanitizeFilterValue(args[1], String(args[0]))
@@ -1434,7 +1435,8 @@ var MongoQueryBuilder = class MongoQueryBuilder extends QueryBuilder {
1434
1435
  if (this.fetchingCallback) await this.fetchingCallback(this);
1435
1436
  if (this.isLean) {
1436
1437
  assertLeanCompatible(this);
1437
- return stripHiddenFromLeanRecords(await this.execute(), this.modelClass);
1438
+ const leanRecords = await this.execute();
1439
+ return stripHiddenFromLeanRecords(leanRecords, this.modelClass);
1438
1440
  }
1439
1441
  const rawRecords = await this.execute();
1440
1442
  if (this.hydratingCallback) await this.hydratingCallback(rawRecords, {
@@ -1624,7 +1626,8 @@ var MongoQueryBuilder = class MongoQueryBuilder extends QueryBuilder {
1624
1626
  */
1625
1627
  async increment(field, amount = 1) {
1626
1628
  const filter = this.buildFilter();
1627
- return get(await this.dataSource.driver.findOneAndUpdate(this.table, filter, { $inc: { [field]: amount } }, { returnDocument: "after" }), field, 0);
1629
+ const result = await this.dataSource.driver.findOneAndUpdate(this.table, filter, { $inc: { [field]: amount } }, { returnDocument: "after" });
1630
+ return get(result, field, 0);
1628
1631
  }
1629
1632
  /**
1630
1633
  * Decrements a numeric field by the specified amount.