ts-patch-mongoose 2.5.6 → 2.6.1

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 (60) hide show
  1. package/.eslintrc +0 -1
  2. package/README.md +1 -1
  3. package/dist/cjs/hooks/update-hooks.js +9 -5
  4. package/dist/cjs/hooks/update-hooks.js.map +1 -1
  5. package/dist/cjs/types/helpers.d.ts +1 -0
  6. package/dist/cjs/types/helpers.d.ts.map +1 -1
  7. package/dist/cjs/types/hooks/delete-hooks.d.ts +1 -0
  8. package/dist/cjs/types/hooks/delete-hooks.d.ts.map +1 -1
  9. package/dist/cjs/types/hooks/save-hooks.d.ts +1 -0
  10. package/dist/cjs/types/hooks/save-hooks.d.ts.map +1 -1
  11. package/dist/cjs/types/hooks/update-hooks.d.ts +1 -0
  12. package/dist/cjs/types/hooks/update-hooks.d.ts.map +1 -1
  13. package/dist/cjs/types/interfaces/IContext.d.ts +1 -0
  14. package/dist/cjs/types/interfaces/IContext.d.ts.map +1 -1
  15. package/dist/cjs/types/interfaces/IEvent.d.ts +1 -0
  16. package/dist/cjs/types/interfaces/IEvent.d.ts.map +1 -1
  17. package/dist/cjs/types/interfaces/IHistory.d.ts +1 -0
  18. package/dist/cjs/types/interfaces/IHistory.d.ts.map +1 -1
  19. package/dist/cjs/types/interfaces/IHookContext.d.ts +1 -0
  20. package/dist/cjs/types/interfaces/IHookContext.d.ts.map +1 -1
  21. package/dist/cjs/types/interfaces/IPluginOptions.d.ts +1 -0
  22. package/dist/cjs/types/interfaces/IPluginOptions.d.ts.map +1 -1
  23. package/dist/cjs/types/models/History.d.ts +1 -0
  24. package/dist/cjs/types/models/History.d.ts.map +1 -1
  25. package/dist/cjs/types/patch.d.ts +1 -0
  26. package/dist/cjs/types/patch.d.ts.map +1 -1
  27. package/dist/cjs/types/plugin.d.ts +14 -13
  28. package/dist/cjs/types/plugin.d.ts.map +1 -1
  29. package/dist/esm/hooks/update-hooks.js +10 -6
  30. package/dist/esm/hooks/update-hooks.js.map +1 -1
  31. package/dist/esm/types/helpers.d.ts +1 -0
  32. package/dist/esm/types/helpers.d.ts.map +1 -1
  33. package/dist/esm/types/hooks/delete-hooks.d.ts +1 -0
  34. package/dist/esm/types/hooks/delete-hooks.d.ts.map +1 -1
  35. package/dist/esm/types/hooks/save-hooks.d.ts +1 -0
  36. package/dist/esm/types/hooks/save-hooks.d.ts.map +1 -1
  37. package/dist/esm/types/hooks/update-hooks.d.ts +1 -0
  38. package/dist/esm/types/hooks/update-hooks.d.ts.map +1 -1
  39. package/dist/esm/types/interfaces/IContext.d.ts +1 -0
  40. package/dist/esm/types/interfaces/IContext.d.ts.map +1 -1
  41. package/dist/esm/types/interfaces/IEvent.d.ts +1 -0
  42. package/dist/esm/types/interfaces/IEvent.d.ts.map +1 -1
  43. package/dist/esm/types/interfaces/IHistory.d.ts +1 -0
  44. package/dist/esm/types/interfaces/IHistory.d.ts.map +1 -1
  45. package/dist/esm/types/interfaces/IHookContext.d.ts +1 -0
  46. package/dist/esm/types/interfaces/IHookContext.d.ts.map +1 -1
  47. package/dist/esm/types/interfaces/IPluginOptions.d.ts +1 -0
  48. package/dist/esm/types/interfaces/IPluginOptions.d.ts.map +1 -1
  49. package/dist/esm/types/models/History.d.ts +1 -0
  50. package/dist/esm/types/models/History.d.ts.map +1 -1
  51. package/dist/esm/types/patch.d.ts +1 -0
  52. package/dist/esm/types/patch.d.ts.map +1 -1
  53. package/dist/esm/types/plugin.d.ts +14 -13
  54. package/dist/esm/types/plugin.d.ts.map +1 -1
  55. package/package.json +15 -14
  56. package/src/hooks/update-hooks.ts +11 -6
  57. package/tests/interfaces/IProduct.ts +4 -0
  58. package/tests/plugin-event-deleted.test.ts +4 -4
  59. package/tests/plugin-global.test.ts +350 -0
  60. package/tests/schemas/ProductSchema.ts +10 -0
package/.eslintrc CHANGED
@@ -26,7 +26,6 @@
26
26
  "sourceType": "module"
27
27
  },
28
28
  "rules": {
29
-
30
29
  "@stylistic/arrow-parens": ["error", "always"],
31
30
  "@stylistic/brace-style": ["error", "1tbs"],
32
31
  "@typescript-eslint/array-type": "error",
package/README.md CHANGED
@@ -25,7 +25,7 @@ I need to track changes of mongoose models and save them as patch history (audit
25
25
 
26
26
  ```json
27
27
  {
28
- "node": "16.x || 18.x || 20.x",
28
+ "node": "18.x || 20.x || 22.x",
29
29
  "mongoose": "6.6.x || 7.x || 8.x",
30
30
  }
31
31
  ```
@@ -16,7 +16,7 @@ const updateMethods = [
16
16
  'findByIdAndUpdate',
17
17
  ];
18
18
  const assignUpdate = (document, update, commands) => {
19
- let updated = (0, power_assign_1.assign)(document, update);
19
+ let updated = (0, power_assign_1.assign)(document.toObject(helpers_1.toObjectOptions), update);
20
20
  lodash_1.default.forEach(commands, (command) => {
21
21
  try {
22
22
  updated = (0, power_assign_1.assign)(updated, command);
@@ -24,7 +24,10 @@ const assignUpdate = (document, update, commands) => {
24
24
  catch {
25
25
  }
26
26
  });
27
- return updated;
27
+ const doc = document.set(updated).toObject(helpers_1.toObjectOptions);
28
+ if (update['createdAt'])
29
+ doc.createdAt = update['createdAt'];
30
+ return doc;
28
31
  };
29
32
  exports.assignUpdate = assignUpdate;
30
33
  const splitUpdateAndCommands = (updateQuery) => {
@@ -61,9 +64,10 @@ const updateHooksInitialize = (schema, opts) => {
61
64
  };
62
65
  const updateQuery = this.getUpdate();
63
66
  const { update, commands } = (0, exports.splitUpdateAndCommands)(updateQuery);
64
- const cursor = model.find(filter).lean().cursor();
67
+ const cursor = model.find(filter).cursor();
65
68
  await cursor.eachAsync(async (doc) => {
66
- await (0, patch_1.updatePatch)(opts, this._context, (0, exports.assignUpdate)(doc, update, commands), doc);
69
+ const origDoc = doc.toObject(helpers_1.toObjectOptions);
70
+ await (0, patch_1.updatePatch)(opts, this._context, (0, exports.assignUpdate)(doc, update, commands), origDoc);
67
71
  });
68
72
  });
69
73
  schema.post(updateMethods, async function () {
@@ -75,7 +79,7 @@ const updateHooksInitialize = (schema, opts) => {
75
79
  const model = this.model;
76
80
  const updateQuery = this.getUpdate();
77
81
  const { update, commands } = (0, exports.splitUpdateAndCommands)(updateQuery);
78
- const filter = (0, exports.assignUpdate)({}, update, commands);
82
+ const filter = (0, exports.assignUpdate)(model.hydrate({}), update, commands);
79
83
  if (!lodash_1.default.isEmpty(filter)) {
80
84
  const current = await model.findOne(update).lean().exec();
81
85
  if (current) {
@@ -1 +1 @@
1
- {"version":3,"file":"update-hooks.js","sourceRoot":"","sources":["../../../src/hooks/update-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-hooks.js","sourceRoot":"","sources":["../../../src/hooks/update-hooks.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { QueryOptions, ToObjectOptions } from 'mongoose';
26
27
  export declare const isHookIgnored: <T>(options: QueryOptions<T>) => boolean;
27
28
  export declare const toObjectOptions: ToObjectOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE7D,eAAO,MAAM,aAAa,eAAgB,aAAa,CAAC,CAAC,KAAG,OAE3D,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,eAG7B,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE7D,eAAO,MAAM,aAAa,eAAgB,aAAa,CAAC,CAAC,KAAG,OAE3D,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,eAG7B,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Schema } from 'mongoose';
26
27
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
28
  export declare const deleteHooksInitialize: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"delete-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/delete-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAoD,MAAM,EAAE,MAAM,UAAU,CAAA;AACxF,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAuCrF,CAAA"}
1
+ {"version":3,"file":"delete-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/delete-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAoD,MAAM,EAAE,MAAM,UAAU,CAAA;AACxF,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAuCrF,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Schema } from 'mongoose';
26
27
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
28
  export declare const saveHooksInitialize: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"save-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/save-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,eAAO,MAAM,mBAAmB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAwBnF,CAAA"}
1
+ {"version":3,"file":"save-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/save-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,eAAO,MAAM,mBAAmB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAwBnF,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument, Schema, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
26
27
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
28
  export declare const assignUpdate: <T>(document: HydratedDocument<T>, update: UpdateQuery<T>, commands: Record<string, unknown>[]) => HydratedDocument<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/update-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AACpI,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,YAAY,gBAAiB,iBAAiB,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,KAAG,iBAAiB,CAAC,CAW9I,CAAA;AAED,eAAO,MAAM,sBAAsB,mBAAoB,6BAA6B,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI;YAAa,YAAY,CAAC,CAAC;cAAY,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE;CAiB3K,CAAA;AAED,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IA+CrF,CAAA"}
1
+ {"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/update-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AACpI,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,YAAY,gBAAiB,iBAAiB,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,KAAG,iBAAiB,CAAC,CAe9I,CAAA;AAED,eAAO,MAAM,sBAAsB,mBAAoB,6BAA6B,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,KAAG;IAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAiB3K,CAAA;AAED,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAgDrF,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument } from 'mongoose';
26
27
  interface IContext<T> {
27
28
  op: string;
@@ -1 +1 @@
1
- {"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAe,QAAQ,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Operation } from 'fast-json-patch';
26
27
  import type { HydratedDocument } from 'mongoose';
27
28
  interface IEvent<T> {
@@ -1 +1 @@
1
- {"version":3,"file":"IEvent.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,MAAM,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"IEvent.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,MAAM,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,MAAM,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Types } from 'mongoose';
26
27
  import type { Operation } from 'fast-json-patch';
27
28
  interface IHistory {
@@ -1 +1 @@
1
- {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Query } from 'mongoose';
26
27
  import type IContext from './IContext';
27
28
  type IHookContext<T> = Query<T, T> & {
@@ -1 +1 @@
1
- {"version":3,"file":"IHookContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHookContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AAEtC,KAAK,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA;AAE1E,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"IHookContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHookContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AAEtC,KAAK,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA;AAE1E,eAAe,YAAY,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument } from 'mongoose';
26
27
  export type User = Record<string, unknown>;
27
28
  export type Metadata = Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,eAAe,cAAc,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import { Schema } from 'mongoose';
26
27
  import type IHistory from '../interfaces/IHistory';
27
28
  declare const History: import("mongoose").Model<IHistory, {}, {}, {}, import("mongoose").Document<unknown, {}, IHistory> & IHistory & {
@@ -1 +1 @@
1
- {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA4ClD,QAAA,MAAM,OAAO;;;;;;GAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA4ClD,QAAA,MAAM,OAAO;;;;;;GAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument } from 'mongoose';
26
27
  import type IEvent from './interfaces/IEvent';
27
28
  import type IContext from './interfaces/IContext';
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAU7K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAU7K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
@@ -23,24 +23,25 @@
23
23
  /// <reference types="mongoose/types/validation" />
24
24
  /// <reference types="mongoose/types/virtuals" />
25
25
  /// <reference types="mongoose/types/inferschematype" />
26
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
27
  import type { Schema } from 'mongoose';
27
28
  import type IPluginOptions from './interfaces/IPluginOptions';
28
29
  export declare const patchEventEmitter: {
29
- [EventEmitter.captureRejectionSymbol]?(error: Error, event: string, ...args: any[]): void;
30
- addListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
31
- on(eventName: string | symbol, listener: (...args: any[]) => void): any;
32
- once(eventName: string | symbol, listener: (...args: any[]) => void): any;
33
- removeListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
34
- off(eventName: string | symbol, listener: (...args: any[]) => void): any;
35
- removeAllListeners(event?: string | symbol | undefined): any;
30
+ [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: string | symbol, ...args: any[]): void;
31
+ addListener<K_1>(eventName: string | symbol, listener: (...args: any[]) => void): any;
32
+ on<K_2>(eventName: string | symbol, listener: (...args: any[]) => void): any;
33
+ once<K_3>(eventName: string | symbol, listener: (...args: any[]) => void): any;
34
+ removeListener<K_4>(eventName: string | symbol, listener: (...args: any[]) => void): any;
35
+ off<K_5>(eventName: string | symbol, listener: (...args: any[]) => void): any;
36
+ removeAllListeners(eventName?: string | symbol | undefined): any;
36
37
  setMaxListeners(n: number): any;
37
38
  getMaxListeners(): number;
38
- listeners(eventName: string | symbol): Function[];
39
- rawListeners(eventName: string | symbol): Function[];
40
- emit(eventName: string | symbol, ...args: any[]): boolean;
41
- listenerCount(eventName: string | symbol, listener?: Function | undefined): number;
42
- prependListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
43
- prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
39
+ listeners<K_6>(eventName: string | symbol): Function[];
40
+ rawListeners<K_7>(eventName: string | symbol): Function[];
41
+ emit<K_8>(eventName: string | symbol, ...args: any[]): boolean;
42
+ listenerCount<K_9>(eventName: string | symbol, listener?: Function | undefined): number;
43
+ prependListener<K_10>(eventName: string | symbol, listener: (...args: any[]) => void): any;
44
+ prependOnceListener<K_11>(eventName: string | symbol, listener: (...args: any[]) => void): any;
44
45
  eventNames(): (string | symbol)[];
45
46
  };
46
47
  export declare const patchHistoryPlugin: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAQ7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,cAA8B,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IA+CjG,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAQ7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,cAA8B,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IA+CjG,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import _ from 'lodash';
2
2
  import { assign } from 'power-assign';
3
3
  import { createPatch, updatePatch } from '../patch.js';
4
- import { isHookIgnored } from '../helpers.js';
4
+ import { isHookIgnored, toObjectOptions } from '../helpers.js';
5
5
  const updateMethods = [
6
6
  'update',
7
7
  'updateOne',
@@ -12,7 +12,7 @@ const updateMethods = [
12
12
  'findByIdAndUpdate',
13
13
  ];
14
14
  export const assignUpdate = (document, update, commands) => {
15
- let updated = assign(document, update);
15
+ let updated = assign(document.toObject(toObjectOptions), update);
16
16
  _.forEach(commands, (command) => {
17
17
  try {
18
18
  updated = assign(updated, command);
@@ -20,7 +20,10 @@ export const assignUpdate = (document, update, commands) => {
20
20
  catch {
21
21
  }
22
22
  });
23
- return updated;
23
+ const doc = document.set(updated).toObject(toObjectOptions);
24
+ if (update['createdAt'])
25
+ doc.createdAt = update['createdAt'];
26
+ return doc;
24
27
  };
25
28
  export const splitUpdateAndCommands = (updateQuery) => {
26
29
  let update = {};
@@ -55,9 +58,10 @@ export const updateHooksInitialize = (schema, opts) => {
55
58
  };
56
59
  const updateQuery = this.getUpdate();
57
60
  const { update, commands } = splitUpdateAndCommands(updateQuery);
58
- const cursor = model.find(filter).lean().cursor();
61
+ const cursor = model.find(filter).cursor();
59
62
  await cursor.eachAsync(async (doc) => {
60
- await updatePatch(opts, this._context, assignUpdate(doc, update, commands), doc);
63
+ const origDoc = doc.toObject(toObjectOptions);
64
+ await updatePatch(opts, this._context, assignUpdate(doc, update, commands), origDoc);
61
65
  });
62
66
  });
63
67
  schema.post(updateMethods, async function () {
@@ -69,7 +73,7 @@ export const updateHooksInitialize = (schema, opts) => {
69
73
  const model = this.model;
70
74
  const updateQuery = this.getUpdate();
71
75
  const { update, commands } = splitUpdateAndCommands(updateQuery);
72
- const filter = assignUpdate({}, update, commands);
76
+ const filter = assignUpdate(model.hydrate({}), update, commands);
73
77
  if (!_.isEmpty(filter)) {
74
78
  const current = await model.findOne(update).lean().exec();
75
79
  if (current) {
@@ -1 +1 @@
1
- {"version":3,"file":"update-hooks.js","sourceRoot":"","sources":["../../../src/hooks/update-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-hooks.js","sourceRoot":"","sources":["../../../src/hooks/update-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAM3D,MAAM,aAAa,GAAG;IACpB,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;CACpB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,QAA6B,EAAE,MAAsB,EAAE,QAAmC,EAAuB,EAAE;IACjJ,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAA+C,CAAA;IACzG,IAAI,MAAM,CAAC,WAAW,CAAC;QAErB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IACrC,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAI,WAAkE,EAAmE,EAAE;IAC/K,IAAI,MAAM,GAAmB,EAAE,CAAA;IAC/B,MAAM,QAAQ,GAA8B,EAAE,CAAA;IAE9C,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;QACtF,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QAChE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAY,EAAE,CAAC,CAAA;gBAEhD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAI,MAAiB,EAAE,IAAuB,EAAQ,EAAE;IAC3F,MAAM,CAAC,GAAG,CAAC,aAA0C,EAAE,KAAK;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,IAAI,aAAa,CAAC,OAAO,CAAC;YAAE,OAAM;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAiB,CAAA;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QAE5D,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS;YACjD,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc;YAC3E,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;YAC7C,WAAW,EAAE,OAAO,CAAC,aAAa,CAAY;YAC9C,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAAY;SAC7D,CAAA;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;QAEhE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;QAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAwB,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAwB,CAAA;YACpE,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;QACtF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,aAA0C,EAAE,KAAK;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,IAAI,aAAa,CAAC,OAAO,CAAC;YAAE,OAAM;QAElC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;YAAE,OAAM;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAiB,CAAA;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;QAEhE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YACzD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,OAAO,CAA0B,CAAA;gBAE9D,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { QueryOptions, ToObjectOptions } from 'mongoose';
26
27
  export declare const isHookIgnored: <T>(options: QueryOptions<T>) => boolean;
27
28
  export declare const toObjectOptions: ToObjectOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE7D,eAAO,MAAM,aAAa,eAAgB,aAAa,CAAC,CAAC,KAAG,OAE3D,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,eAG7B,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE7D,eAAO,MAAM,aAAa,eAAgB,aAAa,CAAC,CAAC,KAAG,OAE3D,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,eAG7B,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Schema } from 'mongoose';
26
27
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
28
  export declare const deleteHooksInitialize: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"delete-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/delete-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAoD,MAAM,EAAE,MAAM,UAAU,CAAA;AACxF,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAuCrF,CAAA"}
1
+ {"version":3,"file":"delete-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/delete-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAoD,MAAM,EAAE,MAAM,UAAU,CAAA;AACxF,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAuCrF,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Schema } from 'mongoose';
26
27
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
28
  export declare const saveHooksInitialize: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"save-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/save-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,eAAO,MAAM,mBAAmB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAwBnF,CAAA"}
1
+ {"version":3,"file":"save-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/save-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,eAAO,MAAM,mBAAmB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAwBnF,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument, Schema, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
26
27
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
28
  export declare const assignUpdate: <T>(document: HydratedDocument<T>, update: UpdateQuery<T>, commands: Record<string, unknown>[]) => HydratedDocument<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/update-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AACpI,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,YAAY,gBAAiB,iBAAiB,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,KAAG,iBAAiB,CAAC,CAW9I,CAAA;AAED,eAAO,MAAM,sBAAsB,mBAAoB,6BAA6B,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI;YAAa,YAAY,CAAC,CAAC;cAAY,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE;CAiB3K,CAAA;AAED,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IA+CrF,CAAA"}
1
+ {"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/update-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AACpI,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,YAAY,gBAAiB,iBAAiB,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,KAAG,iBAAiB,CAAC,CAe9I,CAAA;AAED,eAAO,MAAM,sBAAsB,mBAAoB,6BAA6B,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,KAAG;IAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAiB3K,CAAA;AAED,eAAO,MAAM,qBAAqB,cAAe,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IAgDrF,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument } from 'mongoose';
26
27
  interface IContext<T> {
27
28
  op: string;
@@ -1 +1 @@
1
- {"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"IContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,QAAQ,CAAC,CAAC;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAe,QAAQ,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Operation } from 'fast-json-patch';
26
27
  import type { HydratedDocument } from 'mongoose';
27
28
  interface IEvent<T> {
@@ -1 +1 @@
1
- {"version":3,"file":"IEvent.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,MAAM,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"IEvent.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,UAAU,MAAM,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,MAAM,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Types } from 'mongoose';
26
27
  import type { Operation } from 'fast-json-patch';
27
28
  interface IHistory {
@@ -1 +1 @@
1
- {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"IHistory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHistory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,eAAe,QAAQ,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { Query } from 'mongoose';
26
27
  import type IContext from './IContext';
27
28
  type IHookContext<T> = Query<T, T> & {
@@ -1 +1 @@
1
- {"version":3,"file":"IHookContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHookContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AAEtC,KAAK,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA;AAE1E,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"IHookContext.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IHookContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AAEtC,KAAK,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA;AAE1E,eAAe,YAAY,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument } from 'mongoose';
26
27
  export type User = Record<string, unknown>;
27
28
  export type Metadata = Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"IPluginOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IPluginOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,eAAe,cAAc,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import { Schema } from 'mongoose';
26
27
  import type IHistory from '../interfaces/IHistory';
27
28
  declare const History: import("mongoose").Model<IHistory, {}, {}, {}, import("mongoose").Document<unknown, {}, IHistory> & IHistory & {
@@ -1 +1 @@
1
- {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA4ClD,QAAA,MAAM,OAAO;;;;;;GAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/models/History.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,UAAU,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA4ClD,QAAA,MAAM,OAAO;;;;;;GAA6C,CAAA;AAE1D,eAAe,OAAO,CAAA"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
25
26
  import type { HydratedDocument } from 'mongoose';
26
27
  import type IEvent from './interfaces/IEvent';
27
28
  import type IContext from './interfaces/IContext';
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAU7K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,UAAU,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AASjE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAU7K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKnF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKvF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK3F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAExE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAU/H;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAInG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwClL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG"}
@@ -23,24 +23,25 @@
23
23
  /// <reference types="mongoose/types/validation" />
24
24
  /// <reference types="mongoose/types/virtuals" />
25
25
  /// <reference types="mongoose/types/inferschematype" />
26
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
27
  import type { Schema } from 'mongoose';
27
28
  import type IPluginOptions from './interfaces/IPluginOptions';
28
29
  export declare const patchEventEmitter: {
29
- [EventEmitter.captureRejectionSymbol]?(error: Error, event: string, ...args: any[]): void;
30
- addListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
31
- on(eventName: string | symbol, listener: (...args: any[]) => void): any;
32
- once(eventName: string | symbol, listener: (...args: any[]) => void): any;
33
- removeListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
34
- off(eventName: string | symbol, listener: (...args: any[]) => void): any;
35
- removeAllListeners(event?: string | symbol | undefined): any;
30
+ [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: string | symbol, ...args: any[]): void;
31
+ addListener<K_1>(eventName: string | symbol, listener: (...args: any[]) => void): any;
32
+ on<K_2>(eventName: string | symbol, listener: (...args: any[]) => void): any;
33
+ once<K_3>(eventName: string | symbol, listener: (...args: any[]) => void): any;
34
+ removeListener<K_4>(eventName: string | symbol, listener: (...args: any[]) => void): any;
35
+ off<K_5>(eventName: string | symbol, listener: (...args: any[]) => void): any;
36
+ removeAllListeners(eventName?: string | symbol | undefined): any;
36
37
  setMaxListeners(n: number): any;
37
38
  getMaxListeners(): number;
38
- listeners(eventName: string | symbol): Function[];
39
- rawListeners(eventName: string | symbol): Function[];
40
- emit(eventName: string | symbol, ...args: any[]): boolean;
41
- listenerCount(eventName: string | symbol, listener?: Function | undefined): number;
42
- prependListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
43
- prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
39
+ listeners<K_6>(eventName: string | symbol): Function[];
40
+ rawListeners<K_7>(eventName: string | symbol): Function[];
41
+ emit<K_8>(eventName: string | symbol, ...args: any[]): boolean;
42
+ listenerCount<K_9>(eventName: string | symbol, listener?: Function | undefined): number;
43
+ prependListener<K_10>(eventName: string | symbol, listener: (...args: any[]) => void): any;
44
+ prependOnceListener<K_11>(eventName: string | symbol, listener: (...args: any[]) => void): any;
44
45
  eventNames(): (string | symbol)[];
45
46
  };
46
47
  export declare const patchHistoryPlugin: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAQ7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,cAA8B,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IA+CjG,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,OAAO,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAQ7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,cAA8B,OAAO,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,KAAG,IA+CjG,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-patch-mongoose",
3
- "version": "2.5.6",
3
+ "version": "2.6.1",
4
4
  "description": "Patch history & events for mongoose models",
5
5
  "author": "Alex Eagle",
6
6
  "license": "MIT",
@@ -81,30 +81,31 @@
81
81
  "lodash": "4.17.21",
82
82
  "omit-deep": "0.3.0",
83
83
  "power-assign": "0.2.10",
84
- "semver": "7.6.0"
84
+ "semver": "7.6.2"
85
85
  },
86
86
  "devDependencies": {
87
- "@shelf/jest-mongodb": "4.2.0",
88
- "@stylistic/eslint-plugin": "1.7.0",
89
- "@swc/cli": "0.3.10",
90
- "@swc/core": "1.4.8",
91
- "@swc/helpers": "0.5.6",
87
+ "@shelf/jest-mongodb": "4.3.2",
88
+ "@stylistic/eslint-plugin": "2.1.0",
89
+ "@swc/cli": "0.3.12",
90
+ "@swc/core": "1.5.7",
91
+ "@swc/helpers": "0.5.11",
92
92
  "@swc/jest": "0.2.36",
93
93
  "@swc/register": "0.1.10",
94
94
  "@types/jest": "29.5.12",
95
- "@types/lodash": "4.17.0",
95
+ "@types/lodash": "4.17.4",
96
96
  "@types/node": "20",
97
- "@typescript-eslint/eslint-plugin": "7.2.0",
98
- "@typescript-eslint/parser": "7.2.0",
97
+ "@types/semver": "7.5.8",
98
+ "@typescript-eslint/eslint-plugin": "7.9.0",
99
+ "@typescript-eslint/parser": "7.9.0",
99
100
  "eslint": "8.57.0",
100
- "eslint-plugin-jest": "27.9.0",
101
+ "eslint-plugin-jest": "28.5.0",
101
102
  "eslint-plugin-jest-formatting": "3.1.0",
102
- "eslint-plugin-sonarjs": "0.24.0",
103
+ "eslint-plugin-sonarjs": "0.25.1",
103
104
  "jest": "29.7.0",
104
105
  "merge": "2.1.1",
105
- "mongoose": "latest",
106
+ "mongoose": "8.4.0",
106
107
  "open-cli": "8.0.0",
107
- "typescript": "5.4.2"
108
+ "typescript": "5.4.5"
108
109
  },
109
110
  "peerDependencies": {
110
111
  "mongoose": ">=6.6.0 < 9"
@@ -2,7 +2,7 @@ import _ from 'lodash'
2
2
  import { assign } from 'power-assign'
3
3
 
4
4
  import { createPatch, updatePatch } from '../patch'
5
- import { isHookIgnored } from '../helpers'
5
+ import { isHookIgnored, toObjectOptions } from '../helpers'
6
6
 
7
7
  import type { HydratedDocument, Model, MongooseQueryMiddleware, Schema, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose'
8
8
  import type IPluginOptions from '../interfaces/IPluginOptions'
@@ -19,7 +19,7 @@ const updateMethods = [
19
19
  ]
20
20
 
21
21
  export const assignUpdate = <T>(document: HydratedDocument<T>, update: UpdateQuery<T>, commands: Record<string, unknown>[]): HydratedDocument<T> => {
22
- let updated = assign(document, update)
22
+ let updated = assign(document.toObject(toObjectOptions), update)
23
23
  _.forEach(commands, (command) => {
24
24
  try {
25
25
  updated = assign(updated, command)
@@ -28,7 +28,11 @@ export const assignUpdate = <T>(document: HydratedDocument<T>, update: UpdateQue
28
28
  }
29
29
  })
30
30
 
31
- return updated
31
+ const doc = document.set(updated).toObject(toObjectOptions) as HydratedDocument<T> & { createdAt?: Date }
32
+ if (update['createdAt'])
33
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
34
+ doc.createdAt = update['createdAt']
35
+ return doc
32
36
  }
33
37
 
34
38
  export const splitUpdateAndCommands = <T>(updateQuery: UpdateWithAggregationPipeline | UpdateQuery<T> | null): { update: UpdateQuery<T>, commands: Record<string, unknown>[] } => {
@@ -71,9 +75,10 @@ export const updateHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions
71
75
  const updateQuery = this.getUpdate()
72
76
  const { update, commands } = splitUpdateAndCommands(updateQuery)
73
77
 
74
- const cursor = model.find(filter).lean().cursor()
78
+ const cursor = model.find(filter).cursor()
75
79
  await cursor.eachAsync(async (doc: HydratedDocument<T>) => {
76
- await updatePatch(opts, this._context, assignUpdate(doc, update, commands), doc)
80
+ const origDoc = doc.toObject(toObjectOptions) as HydratedDocument<T>
81
+ await updatePatch(opts, this._context, assignUpdate(doc, update, commands), origDoc)
77
82
  })
78
83
  })
79
84
 
@@ -87,7 +92,7 @@ export const updateHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions
87
92
  const updateQuery = this.getUpdate()
88
93
  const { update, commands } = splitUpdateAndCommands(updateQuery)
89
94
 
90
- const filter = assignUpdate({} as HydratedDocument<T>, update, commands)
95
+ const filter = assignUpdate(model.hydrate({}), update, commands)
91
96
  if (!_.isEmpty(filter)) {
92
97
  const current = await model.findOne(update).lean().exec()
93
98
  if (current) {
@@ -1,8 +1,12 @@
1
+ import type { Types } from 'mongoose'
2
+
1
3
  import type IDescription from './IDescription'
2
4
 
3
5
  interface IProduct {
4
6
  name: string
7
+ groups?: [string]
5
8
  description?: IDescription
9
+ addedBy?: Types.ObjectId
6
10
  createdAt?: Date
7
11
  updatedAt?: Date
8
12
  }
@@ -107,9 +107,9 @@ describe('plugin - event delete & patch history disabled', () => {
107
107
  const [john] = users
108
108
 
109
109
  if (isMongooseLessThan7) {
110
- await User.remove({ role: 'user' }, { single: true }).exec()
110
+ await User.remove({ role: 'user', name: 'John' }, { single: true }).exec()
111
111
  } else {
112
- await User.deleteOne({ role: 'user' }).exec()
112
+ await User.deleteOne({ role: 'user', name: 'John' }).exec()
113
113
  }
114
114
 
115
115
  const history = await History.find({})
@@ -314,9 +314,9 @@ describe('plugin - event delete & patch history disabled', () => {
314
314
  const [john] = users
315
315
 
316
316
  if (isMongooseLessThan7) {
317
- await User.deleteMany({ role: 'user' }, { single: true }).exec()
317
+ await User.deleteMany({ name: 'John' }, { single: true }).exec()
318
318
  } else {
319
- await User.deleteOne({ role: 'user' }).exec()
319
+ await User.deleteOne({ name: 'John' }).exec()
320
320
  }
321
321
 
322
322
  const history = await History.find({})
@@ -1,5 +1,6 @@
1
1
  import mongoose from 'mongoose'
2
2
 
3
+ import UserSchema from './schemas/UserSchema'
3
4
  import ProductSchema from './schemas/ProductSchema'
4
5
  import { patchHistoryPlugin } from '../src/plugin'
5
6
  import History from '../src/models/History'
@@ -21,6 +22,7 @@ describe('plugin - global', () => {
21
22
  omit: ['__v', 'createdAt', 'updatedAt'],
22
23
  })
23
24
 
25
+ const User = mongoose.model('User', UserSchema)
24
26
  const Product = mongoose.model('Product', ProductSchema)
25
27
 
26
28
  beforeAll(async () => {
@@ -32,10 +34,157 @@ describe('plugin - global', () => {
32
34
  })
33
35
 
34
36
  beforeEach(async () => {
37
+ await mongoose.connection.collection('users').deleteMany({})
35
38
  await mongoose.connection.collection('products').deleteMany({})
36
39
  await mongoose.connection.collection('history').deleteMany({})
37
40
  })
38
41
 
42
+ it('should save array', async () => {
43
+ const product = await Product.create({ name: 'paper', groups: [] })
44
+ expect(product.name).toBe('paper')
45
+
46
+ product.groups = ['office']
47
+ await product.save()
48
+
49
+ product.groups.push('school')
50
+ await product.save()
51
+
52
+ const history = await History.find({})
53
+ expect(history).toHaveLength(3)
54
+
55
+ const [first, second, third] = history
56
+
57
+ // 1 create
58
+ expect(first.version).toBe(0)
59
+ expect(first.op).toBe('create')
60
+ expect(first.modelName).toBe('Product')
61
+ expect(first.collectionName).toBe('products')
62
+ expect(first.collectionId).toEqual(product._id)
63
+
64
+ expect(first.doc).toHaveProperty('_id', product._id)
65
+ expect(first.doc).toHaveProperty('name', 'paper')
66
+ expect(first.doc).toHaveProperty('groups', [])
67
+ expect(first.doc).toHaveProperty('createdAt')
68
+ expect(first.doc).toHaveProperty('updatedAt')
69
+
70
+ expect(first.patch).toHaveLength(0)
71
+
72
+ // 2 update
73
+ expect(second.version).toBe(1)
74
+ expect(second.op).toBe('update')
75
+ expect(second.modelName).toBe('Product')
76
+ expect(second.collectionName).toBe('products')
77
+ expect(second.collectionId).toEqual(product._id)
78
+
79
+ expect(second.doc).toBeUndefined()
80
+
81
+ expect(second.patch).toHaveLength(1)
82
+ expect(second.patch).toMatchObject([
83
+ { op: 'add', path: '/groups/0', value: 'office' },
84
+ ])
85
+
86
+ // 3 update
87
+ expect(third.version).toBe(2)
88
+ expect(third.op).toBe('update')
89
+ expect(third.modelName).toBe('Product')
90
+ expect(third.collectionName).toBe('products')
91
+ expect(third.collectionId).toEqual(product._id)
92
+
93
+ expect(third.doc).toBeUndefined()
94
+
95
+ expect(third.patch).toHaveLength(1)
96
+ expect(third.patch).toMatchObject([
97
+ { op: 'add', path: '/groups/1', value: 'school' },
98
+ ])
99
+
100
+ expect(em.emit).toHaveBeenCalledTimes(3)
101
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: first.doc })
102
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_UPDATED, {
103
+ oldDoc: expect.objectContaining({ _id: product._id, name: 'paper', groups: [] }),
104
+ doc: expect.objectContaining({ _id: product._id, name: 'paper', groups: ['office'] }),
105
+ patch: second.patch,
106
+ })
107
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_UPDATED, {
108
+ oldDoc: expect.objectContaining({ _id: product._id, name: 'paper', groups: ['office'] }),
109
+ doc: expect.objectContaining({ _id: product._id, name: 'paper', groups: ['office', 'school'] }),
110
+ patch: third.patch,
111
+ })
112
+ })
113
+
114
+ it('should update array', async () => {
115
+ const product = await Product.create({ name: 'paper', groups: [] })
116
+ expect(product.name).toBe('paper')
117
+
118
+ await product.updateOne({
119
+ groups: ['office'],
120
+ }).exec()
121
+
122
+ await product.updateOne({
123
+ $push: { groups: 'school' },
124
+ }).exec()
125
+
126
+ const history = await History.find({})
127
+ expect(history).toHaveLength(3)
128
+
129
+ const [first, second, third] = history
130
+
131
+ // 1 create
132
+ expect(first.version).toBe(0)
133
+ expect(first.op).toBe('create')
134
+ expect(first.modelName).toBe('Product')
135
+ expect(first.collectionName).toBe('products')
136
+ expect(first.collectionId).toEqual(product._id)
137
+
138
+ expect(first.doc).toHaveProperty('_id', product._id)
139
+ expect(first.doc).toHaveProperty('name', 'paper')
140
+ expect(first.doc).toHaveProperty('groups', [])
141
+ expect(first.doc).toHaveProperty('createdAt')
142
+ expect(first.doc).toHaveProperty('updatedAt')
143
+
144
+ expect(first.patch).toHaveLength(0)
145
+
146
+ // 2 update
147
+ expect(second.version).toBe(1)
148
+ expect(second.op).toBe('updateOne')
149
+ expect(second.modelName).toBe('Product')
150
+ expect(second.collectionName).toBe('products')
151
+ expect(second.collectionId).toEqual(product._id)
152
+
153
+ expect(second.doc).toBeUndefined()
154
+
155
+ expect(second.patch).toHaveLength(1)
156
+ expect(second.patch).toMatchObject([
157
+ { op: 'add', path: '/groups/0', value: 'office' },
158
+ ])
159
+
160
+ // 3 update
161
+ expect(third.version).toBe(2)
162
+ expect(third.op).toBe('updateOne')
163
+ expect(third.modelName).toBe('Product')
164
+ expect(third.collectionName).toBe('products')
165
+ expect(third.collectionId).toEqual(product._id)
166
+
167
+ expect(third.doc).toBeUndefined()
168
+
169
+ expect(third.patch).toHaveLength(1)
170
+ expect(third.patch).toMatchObject([
171
+ { op: 'add', path: '/groups/1', value: 'school' },
172
+ ])
173
+
174
+ expect(em.emit).toHaveBeenCalledTimes(3)
175
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: first.doc })
176
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_UPDATED, {
177
+ oldDoc: expect.objectContaining({ _id: product._id, name: 'paper', groups: [] }),
178
+ doc: expect.objectContaining({ _id: product._id, name: 'paper', groups: ['office'] }),
179
+ patch: second.patch,
180
+ })
181
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_UPDATED, {
182
+ oldDoc: expect.objectContaining({ _id: product._id, name: 'paper', groups: ['office'] }),
183
+ doc: expect.objectContaining({ _id: product._id, name: 'paper', groups: ['office', 'school'] }),
184
+ patch: third.patch,
185
+ })
186
+ })
187
+
39
188
  it('should save nested schema', async () => {
40
189
  const product = await Product.create({ name: 'paper', description: { summary: 'test1' } })
41
190
  expect(product.name).toBe('paper')
@@ -185,4 +334,205 @@ describe('plugin - global', () => {
185
334
  patch: third.patch,
186
335
  })
187
336
  })
337
+
338
+ it('should save objectID', async () => {
339
+ const john = await User.create({ name: 'John', role: 'user' })
340
+ expect(john.name).toBe('John')
341
+ const alice = await User.create({ name: 'Alice', role: 'user' })
342
+ expect(alice.name).toBe('Alice')
343
+ const product = await Product.create({ name: 'paper', addedBy: john })
344
+ expect(product.name).toBe('paper')
345
+
346
+ product.addedBy = alice._id
347
+ await product.save()
348
+
349
+ const history = await History.find({})
350
+ expect(history).toHaveLength(4)
351
+
352
+ const [first, second, third, fourth] = history
353
+
354
+ // 1 create
355
+ expect(first.version).toBe(0)
356
+ expect(first.op).toBe('create')
357
+ expect(first.modelName).toBe('User')
358
+ expect(first.collectionName).toBe('users')
359
+ expect(first.collectionId).toEqual(john._id)
360
+
361
+ expect(first.doc).toHaveProperty('_id', john._id)
362
+ expect(first.doc).toHaveProperty('name', 'John')
363
+ expect(first.doc).toHaveProperty('role', 'user')
364
+ expect(first.doc).toHaveProperty('createdAt')
365
+ expect(first.doc).toHaveProperty('updatedAt')
366
+
367
+ expect(first.patch).toHaveLength(0)
368
+
369
+ // 2 create
370
+
371
+ expect(second.version).toBe(0)
372
+ expect(second.op).toBe('create')
373
+ expect(second.modelName).toBe('User')
374
+ expect(second.collectionName).toBe('users')
375
+ expect(second.collectionId).toEqual(alice._id)
376
+
377
+ expect(second.doc).toHaveProperty('_id', alice._id)
378
+ expect(second.doc).toHaveProperty('name', 'Alice')
379
+ expect(second.doc).toHaveProperty('role', 'user')
380
+ expect(second.doc).toHaveProperty('createdAt')
381
+ expect(second.doc).toHaveProperty('updatedAt')
382
+
383
+ expect(second.patch).toHaveLength(0)
384
+
385
+ // 3 create
386
+ expect(third.version).toBe(0)
387
+ expect(third.op).toBe('create')
388
+ expect(third.modelName).toBe('Product')
389
+ expect(third.collectionName).toBe('products')
390
+ expect(third.collectionId).toEqual(product._id)
391
+
392
+ expect(third.doc).toHaveProperty('_id', product._id)
393
+ expect(third.doc).toHaveProperty('name', 'paper')
394
+ expect(third.doc).toHaveProperty('addedBy', john._id)
395
+ expect(third.doc).toHaveProperty('createdAt')
396
+ expect(third.doc).toHaveProperty('updatedAt')
397
+
398
+ expect(third.patch).toHaveLength(0)
399
+
400
+ // 4 update
401
+ expect(fourth.version).toBe(1)
402
+ expect(fourth.op).toBe('update')
403
+ expect(fourth.modelName).toBe('Product')
404
+ expect(fourth.collectionName).toBe('products')
405
+ expect(fourth.collectionId).toEqual(product._id)
406
+
407
+ expect(fourth.doc).toBeUndefined()
408
+
409
+ expect(fourth.patch).toHaveLength(2)
410
+ expect(fourth.patch).toMatchObject([
411
+ { op: 'test', path: '/addedBy', value: john._id.toString() },
412
+ { op: 'replace', path: '/addedBy', value: alice._id.toString() },
413
+ ])
414
+
415
+ expect(em.emit).toHaveBeenCalledTimes(4)
416
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: first.doc })
417
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: second.doc })
418
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: third.doc })
419
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_UPDATED, {
420
+ oldDoc: expect.objectContaining({ _id: product._id, name: 'paper', addedBy: john._id }),
421
+ doc: expect.objectContaining({ _id: product._id, name: 'paper', addedBy: alice._id }),
422
+ patch: fourth.patch,
423
+ })
424
+ })
425
+
426
+ it('should update objectID', async () => {
427
+ const john = await User.create({ name: 'John', role: 'user' })
428
+ expect(john.name).toBe('John')
429
+ const alice = await User.create({ name: 'Alice', role: 'user' })
430
+ expect(alice.name).toBe('Alice')
431
+ const product = await Product.create({ name: 'paper', addedBy: john })
432
+ expect(product.name).toBe('paper')
433
+
434
+ await product.updateOne({
435
+ addedBy: alice,
436
+ }).exec()
437
+
438
+ await product.updateOne({
439
+ addedBy: { _id: john._id, name: 'John', role: 'manager' },
440
+ }).exec()
441
+
442
+ const history = await History.find({})
443
+ expect(history).toHaveLength(5)
444
+
445
+ const [first, second, third, fourth, fifth] = history
446
+
447
+ // 1 create
448
+ expect(first.version).toBe(0)
449
+ expect(first.op).toBe('create')
450
+ expect(first.modelName).toBe('User')
451
+ expect(first.collectionName).toBe('users')
452
+ expect(first.collectionId).toEqual(john._id)
453
+
454
+ expect(first.doc).toHaveProperty('_id', john._id)
455
+ expect(first.doc).toHaveProperty('name', 'John')
456
+ expect(first.doc).toHaveProperty('role', 'user')
457
+ expect(first.doc).toHaveProperty('createdAt')
458
+ expect(first.doc).toHaveProperty('updatedAt')
459
+
460
+ expect(first.patch).toHaveLength(0)
461
+
462
+ // 2 create
463
+
464
+ expect(second.version).toBe(0)
465
+ expect(second.op).toBe('create')
466
+ expect(second.modelName).toBe('User')
467
+ expect(second.collectionName).toBe('users')
468
+ expect(second.collectionId).toEqual(alice._id)
469
+
470
+ expect(second.doc).toHaveProperty('_id', alice._id)
471
+ expect(second.doc).toHaveProperty('name', 'Alice')
472
+ expect(second.doc).toHaveProperty('role', 'user')
473
+ expect(second.doc).toHaveProperty('createdAt')
474
+ expect(second.doc).toHaveProperty('updatedAt')
475
+
476
+ expect(second.patch).toHaveLength(0)
477
+
478
+ // 3 create
479
+ expect(third.version).toBe(0)
480
+ expect(third.op).toBe('create')
481
+ expect(third.modelName).toBe('Product')
482
+ expect(third.collectionName).toBe('products')
483
+ expect(third.collectionId).toEqual(product._id)
484
+
485
+ expect(third.doc).toHaveProperty('_id', product._id)
486
+ expect(third.doc).toHaveProperty('name', 'paper')
487
+ expect(third.doc).toHaveProperty('addedBy', john._id)
488
+ expect(third.doc).toHaveProperty('createdAt')
489
+ expect(third.doc).toHaveProperty('updatedAt')
490
+
491
+ expect(third.patch).toHaveLength(0)
492
+
493
+ // 4 update
494
+ expect(fourth.version).toBe(1)
495
+ expect(fourth.op).toBe('updateOne')
496
+ expect(fourth.modelName).toBe('Product')
497
+ expect(fourth.collectionName).toBe('products')
498
+ expect(fourth.collectionId).toEqual(product._id)
499
+
500
+ expect(fourth.doc).toBeUndefined()
501
+
502
+ expect(fourth.patch).toHaveLength(2)
503
+ expect(fourth.patch).toMatchObject([
504
+ { op: 'test', path: '/addedBy', value: john._id.toString() },
505
+ { op: 'replace', path: '/addedBy', value: alice._id.toString() },
506
+ ])
507
+
508
+ // 5 update
509
+ expect(fifth.version).toBe(2)
510
+ expect(fifth.op).toBe('updateOne')
511
+ expect(fifth.modelName).toBe('Product')
512
+ expect(fifth.collectionName).toBe('products')
513
+ expect(fifth.collectionId).toEqual(product._id)
514
+
515
+ expect(fifth.doc).toBeUndefined()
516
+
517
+ expect(fifth.patch).toHaveLength(2)
518
+ expect(fifth.patch).toMatchObject([
519
+ { op: 'test', path: '/addedBy', value: alice._id.toString() },
520
+ { op: 'replace', path: '/addedBy', value: john._id.toString() },
521
+ ])
522
+
523
+ expect(em.emit).toHaveBeenCalledTimes(5)
524
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: first.doc })
525
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: second.doc })
526
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_CREATED, { doc: third.doc })
527
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_UPDATED, {
528
+ oldDoc: expect.objectContaining({ _id: product._id, name: 'paper', addedBy: john._id }),
529
+ doc: expect.objectContaining({ _id: product._id, name: 'paper', addedBy: alice._id }),
530
+ patch: fourth.patch,
531
+ })
532
+ expect(em.emit).toHaveBeenCalledWith(GLOBAL_UPDATED, {
533
+ oldDoc: expect.objectContaining({ _id: product._id, name: 'paper', addedBy: alice._id }),
534
+ doc: expect.objectContaining({ _id: product._id, name: 'paper', addedBy: john._id }),
535
+ patch: fifth.patch,
536
+ })
537
+ })
188
538
  })
@@ -9,10 +9,20 @@ const ProductSchema = new Schema<IProduct>({
9
9
  type: String,
10
10
  required: true,
11
11
  },
12
+ groups: {
13
+ type: [String],
14
+ required: false,
15
+ default: undefined,
16
+ },
12
17
  description: {
13
18
  type: DescriptionSchema,
14
19
  required: false,
15
20
  },
21
+ addedBy: {
22
+ type: Schema.Types.ObjectId,
23
+ required: false,
24
+ ref: 'User',
25
+ },
16
26
  }, { timestamps: true })
17
27
 
18
28
  export default ProductSchema