ts-patch-mongoose 2.5.5 → 2.6.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 (70) hide show
  1. package/.eslintrc +5 -25
  2. package/dist/cjs/helpers.js +1 -1
  3. package/dist/cjs/hooks/delete-hooks.js +2 -2
  4. package/dist/cjs/hooks/save-hooks.js +3 -1
  5. package/dist/cjs/hooks/save-hooks.js.map +1 -1
  6. package/dist/cjs/hooks/update-hooks.js +11 -7
  7. package/dist/cjs/hooks/update-hooks.js.map +1 -1
  8. package/dist/cjs/models/History.js +11 -11
  9. package/dist/cjs/patch.js +5 -5
  10. package/dist/cjs/patch.js.map +1 -1
  11. package/dist/cjs/plugin.js +2 -2
  12. package/dist/cjs/plugin.js.map +1 -1
  13. package/dist/cjs/types/helpers.d.ts.map +1 -1
  14. package/dist/cjs/types/hooks/delete-hooks.d.ts +2 -2
  15. package/dist/cjs/types/hooks/delete-hooks.d.ts.map +1 -1
  16. package/dist/cjs/types/hooks/save-hooks.d.ts +2 -2
  17. package/dist/cjs/types/hooks/save-hooks.d.ts.map +1 -1
  18. package/dist/cjs/types/hooks/update-hooks.d.ts +2 -2
  19. package/dist/cjs/types/hooks/update-hooks.d.ts.map +1 -1
  20. package/dist/cjs/types/patch.d.ts.map +1 -1
  21. package/dist/cjs/types/plugin.d.ts +15 -15
  22. package/dist/cjs/types/plugin.d.ts.map +1 -1
  23. package/dist/esm/helpers.js +1 -1
  24. package/dist/esm/hooks/delete-hooks.js +2 -2
  25. package/dist/esm/hooks/save-hooks.js +3 -1
  26. package/dist/esm/hooks/save-hooks.js.map +1 -1
  27. package/dist/esm/hooks/update-hooks.js +12 -8
  28. package/dist/esm/hooks/update-hooks.js.map +1 -1
  29. package/dist/esm/models/History.js +11 -11
  30. package/dist/esm/patch.js +5 -5
  31. package/dist/esm/patch.js.map +1 -1
  32. package/dist/esm/plugin.js +2 -2
  33. package/dist/esm/plugin.js.map +1 -1
  34. package/dist/esm/types/helpers.d.ts.map +1 -1
  35. package/dist/esm/types/hooks/delete-hooks.d.ts +2 -2
  36. package/dist/esm/types/hooks/delete-hooks.d.ts.map +1 -1
  37. package/dist/esm/types/hooks/save-hooks.d.ts +2 -2
  38. package/dist/esm/types/hooks/save-hooks.d.ts.map +1 -1
  39. package/dist/esm/types/hooks/update-hooks.d.ts +2 -2
  40. package/dist/esm/types/hooks/update-hooks.d.ts.map +1 -1
  41. package/dist/esm/types/patch.d.ts.map +1 -1
  42. package/dist/esm/types/plugin.d.ts +15 -15
  43. package/dist/esm/types/plugin.d.ts.map +1 -1
  44. package/jest-mongodb-config.ts +3 -3
  45. package/jest.config.ts +7 -7
  46. package/package.json +11 -10
  47. package/src/helpers.ts +2 -2
  48. package/src/hooks/delete-hooks.ts +3 -3
  49. package/src/hooks/save-hooks.ts +5 -2
  50. package/src/hooks/update-hooks.ts +14 -9
  51. package/src/models/History.ts +11 -11
  52. package/src/patch.ts +17 -17
  53. package/src/plugin.ts +8 -8
  54. package/tests/constants/events.ts +4 -0
  55. package/tests/em.test.ts +2 -2
  56. package/tests/interfaces/IDescription.ts +5 -0
  57. package/tests/interfaces/IProduct.ts +14 -0
  58. package/tests/patch.test.ts +15 -15
  59. package/tests/plugin-event-created.test.ts +34 -34
  60. package/tests/plugin-event-deleted.test.ts +24 -25
  61. package/tests/plugin-event-updated.test.ts +42 -42
  62. package/tests/plugin-global.test.ts +538 -0
  63. package/tests/plugin-omit-all.test.ts +1 -1
  64. package/tests/plugin-patch-history-disabled.test.ts +1 -1
  65. package/tests/plugin-pre-delete.test.ts +15 -15
  66. package/tests/plugin.test.ts +20 -20
  67. package/tests/schemas/DescriptionSchema.ts +12 -0
  68. package/tests/schemas/ProductSchema.ts +28 -0
  69. package/tests/schemas/UserSchema.ts +3 -3
  70. package/tsconfig.json +2 -1
@@ -2,40 +2,40 @@ import { Schema, model } from 'mongoose';
2
2
  const HistorySchema = new Schema({
3
3
  op: {
4
4
  type: String,
5
- required: true
5
+ required: true,
6
6
  },
7
7
  modelName: {
8
8
  type: String,
9
- required: true
9
+ required: true,
10
10
  },
11
11
  collectionName: {
12
12
  type: String,
13
- required: true
13
+ required: true,
14
14
  },
15
15
  collectionId: {
16
16
  type: Schema.Types.ObjectId,
17
- required: true
17
+ required: true,
18
18
  },
19
19
  doc: {
20
- type: Object
20
+ type: Object,
21
21
  },
22
22
  patch: {
23
- type: Array
23
+ type: Array,
24
24
  },
25
25
  user: {
26
- type: Object
26
+ type: Object,
27
27
  },
28
28
  reason: {
29
- type: String
29
+ type: String,
30
30
  },
31
31
  metadata: {
32
- type: Object
32
+ type: Object,
33
33
  },
34
34
  version: {
35
35
  type: Number,
36
36
  min: 0,
37
- default: 0
38
- }
37
+ default: 0,
38
+ },
39
39
  }, { timestamps: true });
40
40
  HistorySchema.index({ collectionId: 1, version: -1 });
41
41
  HistorySchema.index({ op: 1, modelName: 1, collectionName: 1, collectionId: 1, reason: 1, version: 1 });
package/dist/esm/patch.js CHANGED
@@ -43,7 +43,7 @@ export async function getData(opts) {
43
43
  return [
44
44
  getValue(user),
45
45
  getValue(reason),
46
- getValue(metadata)
46
+ getValue(metadata),
47
47
  ];
48
48
  });
49
49
  }
@@ -77,9 +77,9 @@ export async function bulkPatch(opts, context, eventKey, docsKey) {
77
77
  user,
78
78
  reason,
79
79
  metadata,
80
- version: 0
81
- }
82
- }
80
+ version: 0,
81
+ },
82
+ },
83
83
  });
84
84
  }
85
85
  }
@@ -116,7 +116,7 @@ export async function updatePatch(opts, context, current, original) {
116
116
  user,
117
117
  reason,
118
118
  metadata,
119
- version
119
+ version,
120
120
  });
121
121
  }
122
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,SAAS,MAAM,iBAAiB,CAAA;AASvC,OAAO,OAAO,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,MAAM,MAAM,CAAA;AAErB,SAAS,qBAAqB,CAAK,IAAuB,EAAE,OAAoB;IAC9E,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,UAAU,CAAK,IAAuB,EAAE,OAA4B,EAAE,QAA6B;IACjH,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAe,CAAA;IACrE,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAe,CAAA;IAEvE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9C,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAK,IAAuB;IACvD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAK,IAAuB;IACzD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAK,IAAuB;IAC3D,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;IACjC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAM,IAA6B;IACzD,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAK,IAAuB;IACvD,OAAO,OAAO;SACX,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;QACjC,OAAO;YACL,QAAQ,CAAC,IAAI,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC;YAChB,QAAQ,CAAC,QAAQ,CAAC;SACnB,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,SAAS,CAAK,OAAoB,EAAE,KAAyB,EAAE,IAAe;IAC5F,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAClC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAK,IAAuB,EAAE,OAAoB,EAAE,QAAyC,EAAE,OAAsC;IAClK,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE1D,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC;QAAE,OAAM;IAEnD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,CAAA;QAEf,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;YAEzC,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC;oBACR,SAAS,EAAE;wBACT,QAAQ,EAAE;4BACR,EAAE,EAAE,OAAO,CAAC,EAAE;4BACd,SAAS,EAAE,OAAO,CAAC,SAAS;4BAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;4BACtC,YAAY,EAAE,GAAG,CAAC,GAAqB;4BACvC,GAAG;4BACH,IAAI;4BACJ,MAAM;4BACN,QAAQ;4BACR,OAAO,EAAE,CAAC;yBACX;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB;IACjF,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB,EAAE,OAA4B,EAAE,QAA6B;IAC9I,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEpD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7E,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAM;IAEjE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IACpE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IAE5B,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IAEhF,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;QAEnH,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAEpD,MAAM,OAAO,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,YAAY,EAAE,QAAQ,CAAC,GAAqB;YAC5C,KAAK;YACL,IAAI;YACJ,MAAM;YACN,QAAQ;YACR,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB;IACjF,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
17
17
  op: 'create',
18
18
  modelName: opts.modelName ?? this.modelName,
19
19
  collectionName: opts.collectionName ?? this.collection.collectionName,
20
- createdDocs: docs
20
+ createdDocs: docs,
21
21
  };
22
22
  await createPatch(opts, context);
23
23
  });
@@ -35,7 +35,7 @@ export const patchHistoryPlugin = function plugin(schema, opts) {
35
35
  op: 'delete',
36
36
  modelName: opts.modelName ?? model.modelName,
37
37
  collectionName: opts.collectionName ?? model.collection.collectionName,
38
- deletedDocs: [original]
38
+ deletedDocs: [original],
39
39
  };
40
40
  await deletePatch(opts, context);
41
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,MAAM,MAAM,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAM5D,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAA;AAK3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAQnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,MAAM,CAAK,MAAiB,EAAE,IAAuB;IAE9F,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACjC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAGnC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,WAAW,IAAI;QAC5C,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc;YACrE,WAAW,EAAE,IAAwC;SACtD,CAAA;QAED,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAIF,IAAI,mBAAmB,EAAE,CAAC;QAExB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK;YAGxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAwB,CAAA;YAEtE,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;YAClC,CAAC;QACH,CAAC,CAAC,CAAA;QAGF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAwB,CAAA;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuB,CAAA;YAE1C,MAAM,OAAO,GAAgB;gBAC3B,EAAE,EAAE,QAAQ;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;gBAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;gBACtE,WAAW,EAAE,CAAC,QAAQ,CAAC;aACxB,CAAA;YAED,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,MAAM,MAAM,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAM5D,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAA;AAK3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAQnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,MAAM,CAAI,MAAiB,EAAE,IAAuB;IAE7F,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACjC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAGnC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,WAAW,IAAI;QAC5C,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc;YACrE,WAAW,EAAE,IAAwC;SACtD,CAAA;QAED,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAIF,IAAI,mBAAmB,EAAE,CAAC;QAExB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK;YAGxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAwB,CAAA;YAEtE,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;YAClC,CAAC;QACH,CAAC,CAAC,CAAA;QAGF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAwB,CAAA;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuB,CAAA;YAE1C,MAAM,OAAO,GAAgB;gBAC3B,EAAE,EAAE,QAAQ;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;gBAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;gBACtE,WAAW,EAAE,CAAC,QAAQ,CAAC;aACxB,CAAA;YAED,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA"}
@@ -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,mCAAkC,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,7 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
- import type { Model, Schema } from 'mongoose';
25
+ import type { Schema } from 'mongoose';
26
26
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
- export declare const deleteHooksInitialize: <T>(schema: Schema<T, Model<T, any, any, any, import("mongoose").IfAny<T, any, import("mongoose").Document<unknown, any, T> & import("mongoose").Require_id<T>>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>, import("mongoose").IfAny<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>, any, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>> & import("mongoose").Require_id<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>>>>, opts: IPluginOptions<T>) => void;
27
+ export declare const deleteHooksInitialize: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
28
28
  //# sourceMappingURL=delete-hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/delete-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAAE,MAAM,UAAU,CAAA;AACxF,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,qBAAqB,y8BAAoD,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,7 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
- import type { Model, Schema } from 'mongoose';
25
+ import type { Schema } from 'mongoose';
26
26
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
- export declare const saveHooksInitialize: <T>(schema: Schema<T, Model<T, any, any, any, import("mongoose").IfAny<T, any, import("mongoose").Document<unknown, any, T> & import("mongoose").Require_id<T>>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>, import("mongoose").IfAny<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>, any, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>> & import("mongoose").Require_id<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>>>>, opts: IPluginOptions<T>) => void;
27
+ export declare const saveHooksInitialize: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
28
28
  //# sourceMappingURL=save-hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/save-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,eAAO,MAAM,mBAAmB,y8BAAoD,IAqBnF,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,12 +22,12 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
- import type { HydratedDocument, Model, Schema, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
25
+ import type { HydratedDocument, Schema, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
26
26
  import type IPluginOptions from '../interfaces/IPluginOptions';
27
27
  export declare const assignUpdate: <T>(document: HydratedDocument<T>, update: UpdateQuery<T>, commands: Record<string, unknown>[]) => HydratedDocument<T>;
28
28
  export declare const splitUpdateAndCommands: <T>(updateQuery: UpdateWithAggregationPipeline | UpdateQuery<T> | null) => {
29
29
  update: UpdateQuery<T>;
30
30
  commands: Record<string, unknown>[];
31
31
  };
32
- export declare const updateHooksInitialize: <T>(schema: Schema<T, Model<T, any, any, any, import("mongoose").IfAny<T, any, import("mongoose").Document<unknown, any, T> & import("mongoose").Require_id<T>>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>, import("mongoose").IfAny<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>, any, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>> & import("mongoose").Require_id<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>>>>, opts: IPluginOptions<T>) => void;
32
+ export declare const updateHooksInitialize: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
33
33
  //# sourceMappingURL=update-hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../../src/hooks/update-hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAA2B,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AACpI,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAa9D,eAAO,MAAM,YAAY,uEAAwE,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,wBAWzH,CAAA;AAED,eAAO,MAAM,sBAAsB;;cAAgH,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE;CAiB3K,CAAA;AAED,eAAO,MAAM,qBAAqB,y8BAAoD,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;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,IAgDrF,CAAA"}
@@ -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,EAAG,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,CAU9K;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAKpF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAKxF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAK5F;AAED,wBAAgB,QAAQ,CAAE,CAAC,EAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAE1E;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAUhI;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAIpG;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAG,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,CAwCnL;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,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,CAkC/J;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG"}
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,25 +23,25 @@
23
23
  /// <reference types="mongoose/types/validation" />
24
24
  /// <reference types="mongoose/types/virtuals" />
25
25
  /// <reference types="mongoose/types/inferschematype" />
26
- import type { Model, Schema } from 'mongoose';
26
+ import type { Schema } from 'mongoose';
27
27
  import type IPluginOptions from './interfaces/IPluginOptions';
28
28
  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;
29
+ [EventEmitter.captureRejectionSymbol]?<K>(error: Error, event: string | symbol, ...args: any[]): void;
30
+ addListener<K_1>(eventName: string | symbol, listener: (...args: any[]) => void): any;
31
+ on<K_2>(eventName: string | symbol, listener: (...args: any[]) => void): any;
32
+ once<K_3>(eventName: string | symbol, listener: (...args: any[]) => void): any;
33
+ removeListener<K_4>(eventName: string | symbol, listener: (...args: any[]) => void): any;
34
+ off<K_5>(eventName: string | symbol, listener: (...args: any[]) => void): any;
35
+ removeAllListeners(eventName?: string | symbol | undefined): any;
36
36
  setMaxListeners(n: number): any;
37
37
  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;
38
+ listeners<K_6>(eventName: string | symbol): Function[];
39
+ rawListeners<K_7>(eventName: string | symbol): Function[];
40
+ emit<K_8>(eventName: string | symbol, ...args: any[]): boolean;
41
+ listenerCount<K_9>(eventName: string | symbol, listener?: Function | undefined): number;
42
+ prependListener<K_10>(eventName: string | symbol, listener: (...args: any[]) => void): any;
43
+ prependOnceListener<K_11>(eventName: string | symbol, listener: (...args: any[]) => void): any;
44
44
  eventNames(): (string | symbol)[];
45
45
  };
46
- export declare const patchHistoryPlugin: <T>(schema: Schema<T, Model<T, any, any, any, import("mongoose").IfAny<T, any, import("mongoose").Document<unknown, any, T> & import("mongoose").Require_id<T>>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>, import("mongoose").IfAny<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>, any, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>> & import("mongoose").Require_id<import("mongoose").FlatRecord<import("mongoose").ObtainDocumentType<any, T, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>>>>>>, opts: IPluginOptions<T>) => void;
46
+ export declare const patchHistoryPlugin: <T>(schema: Schema<T>, opts: IPluginOptions<T>) => void;
47
47
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,OAAO,KAAK,EAAoB,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAQ7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,y8BAAoE,IA+ClG,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,10 +1,10 @@
1
1
  export default {
2
2
  mongodbMemoryServerOptions: {
3
3
  binary: {
4
- skipMD5: true
4
+ skipMD5: true,
5
5
  },
6
6
  autoStart: false,
7
- instance: {}
7
+ instance: {},
8
8
  },
9
- useSharedDBForAllJestWorkers: false
9
+ useSharedDBForAllJestWorkers: false,
10
10
  }
package/jest.config.ts CHANGED
@@ -5,28 +5,28 @@ const mongo = require('@shelf/jest-mongodb/jest-preset')
5
5
  const config = recursive(mongo, {
6
6
  roots: [
7
7
  '<rootDir>/src/',
8
- '<rootDir>/tests/'
8
+ '<rootDir>/tests/',
9
9
  ],
10
10
  clearMocks: true,
11
11
  collectCoverage: true,
12
12
  collectCoverageFrom: [
13
13
  'src/**/*.ts',
14
14
  '!src/**/*.d.ts',
15
- '!src/interfaces/**/*.ts'
15
+ '!src/interfaces/**/*.ts',
16
16
  ],
17
17
  coverageDirectory: 'coverage',
18
18
  testMatch: [
19
- '<rootDir>/tests/**/*.test.ts'
19
+ '<rootDir>/tests/**/*.test.ts',
20
20
  ],
21
21
  transform: {
22
- '^.+\\.(t|j)sx?$': '@swc/jest'
22
+ '^.+\\.(t|j)sx?$': '@swc/jest',
23
23
  },
24
24
  testPathIgnorePatterns: [
25
- 'node_modules'
25
+ 'node_modules',
26
26
  ],
27
27
  watchPathIgnorePatterns: [
28
- 'globalConfig'
29
- ]
28
+ 'globalConfig',
29
+ ],
30
30
  })
31
31
 
32
32
  module.exports = config
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-patch-mongoose",
3
- "version": "2.5.5",
3
+ "version": "2.6.0",
4
4
  "description": "Patch history & events for mongoose models",
5
5
  "author": "Alex Eagle",
6
6
  "license": "MIT",
@@ -85,25 +85,26 @@
85
85
  },
86
86
  "devDependencies": {
87
87
  "@shelf/jest-mongodb": "4.2.0",
88
- "@swc/cli": "0.3.9",
89
- "@swc/core": "1.4.2",
90
- "@swc/helpers": "0.5.6",
88
+ "@stylistic/eslint-plugin": "1.7.0",
89
+ "@swc/cli": "0.3.12",
90
+ "@swc/core": "1.4.11",
91
+ "@swc/helpers": "0.5.8",
91
92
  "@swc/jest": "0.2.36",
92
93
  "@swc/register": "0.1.10",
93
94
  "@types/jest": "29.5.12",
94
- "@types/lodash": "4.14.202",
95
+ "@types/lodash": "4.17.0",
95
96
  "@types/node": "20",
96
- "@typescript-eslint/eslint-plugin": "7.0.2",
97
- "@typescript-eslint/parser": "7.0.2",
97
+ "@typescript-eslint/eslint-plugin": "7.4.0",
98
+ "@typescript-eslint/parser": "7.4.0",
98
99
  "eslint": "8.57.0",
99
100
  "eslint-plugin-jest": "27.9.0",
100
101
  "eslint-plugin-jest-formatting": "3.1.0",
101
- "eslint-plugin-sonarjs": "0.24.0",
102
+ "eslint-plugin-sonarjs": "0.25.0",
102
103
  "jest": "29.7.0",
103
104
  "merge": "2.1.1",
104
- "mongoose": "latest",
105
+ "mongoose": "8.2.4",
105
106
  "open-cli": "8.0.0",
106
- "typescript": "5.3.3"
107
+ "typescript": "5.4.3"
107
108
  },
108
109
  "peerDependencies": {
109
110
  "mongoose": ">=6.6.0 < 9"
package/src/helpers.ts CHANGED
@@ -6,5 +6,5 @@ export const isHookIgnored = <T>(options: QueryOptions<T>): boolean => {
6
6
 
7
7
  export const toObjectOptions: ToObjectOptions = {
8
8
  depopulate: true,
9
- virtuals: false
10
- }
9
+ virtuals: false,
10
+ }
@@ -14,7 +14,7 @@ const deleteMethods = [
14
14
  'findByIdAndDelete',
15
15
  'findByIdAndRemove',
16
16
  'deleteOne',
17
- 'deleteMany'
17
+ 'deleteMany',
18
18
  ]
19
19
 
20
20
  export const deleteHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions<T>): void => {
@@ -30,7 +30,7 @@ export const deleteHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions
30
30
  modelName: opts.modelName ?? this.model.modelName,
31
31
  collectionName: opts.collectionName ?? this.model.collection.collectionName,
32
32
  ignoreEvent: options['ignoreEvent'] as boolean,
33
- ignorePatchHistory: options['ignorePatchHistory'] as boolean
33
+ ignorePatchHistory: options['ignorePatchHistory'] as boolean,
34
34
  }
35
35
 
36
36
  if (['remove', 'deleteMany'].includes(this._context.op) && !options['single']) {
@@ -56,4 +56,4 @@ export const deleteHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions
56
56
 
57
57
  await deletePatch(opts, this._context)
58
58
  })
59
- }
59
+ }
@@ -7,6 +7,9 @@ import type IContext from '../interfaces/IContext'
7
7
 
8
8
  export const saveHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions<T>): void => {
9
9
  schema.pre('save', async function () {
10
+ if (this.constructor.name !== 'model')
11
+ return
12
+
10
13
  const current = this.toObject(toObjectOptions) as HydratedDocument<T>
11
14
  const model = this.constructor as Model<T>
12
15
 
@@ -14,7 +17,7 @@ export const saveHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions<T
14
17
  op: this.isNew ? 'create' : 'update',
15
18
  modelName: opts.modelName ?? model.modelName,
16
19
  collectionName: opts.collectionName ?? model.collection.collectionName,
17
- createdDocs: [current]
20
+ createdDocs: [current],
18
21
  }
19
22
 
20
23
  if (this.isNew) {
@@ -26,4 +29,4 @@ export const saveHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions<T
26
29
  }
27
30
  }
28
31
  })
29
- }
32
+ }
@@ -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'
@@ -15,11 +15,11 @@ const updateMethods = [
15
15
  'updateMany',
16
16
  'findOneAndUpdate',
17
17
  'findOneAndReplace',
18
- 'findByIdAndUpdate'
18
+ 'findByIdAndUpdate',
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>[] } => {
@@ -65,15 +69,16 @@ export const updateHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions
65
69
  collectionName: opts.collectionName ?? this.model.collection.collectionName,
66
70
  isNew: Boolean(options.upsert) && count === 0,
67
71
  ignoreEvent: options['ignoreEvent'] as boolean,
68
- ignorePatchHistory: options['ignorePatchHistory'] as boolean
72
+ ignorePatchHistory: options['ignorePatchHistory'] as boolean,
69
73
  }
70
74
 
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) {
@@ -97,4 +102,4 @@ export const updateHooksInitialize = <T>(schema: Schema<T>, opts: IPluginOptions
97
102
  }
98
103
  }
99
104
  })
100
- }
105
+ }
@@ -5,40 +5,40 @@ import type IHistory from '../interfaces/IHistory'
5
5
  const HistorySchema = new Schema<IHistory>({
6
6
  op: {
7
7
  type: String,
8
- required: true
8
+ required: true,
9
9
  },
10
10
  modelName: {
11
11
  type: String,
12
- required: true
12
+ required: true,
13
13
  },
14
14
  collectionName: {
15
15
  type: String,
16
- required: true
16
+ required: true,
17
17
  },
18
18
  collectionId: {
19
19
  type: Schema.Types.ObjectId,
20
- required: true
20
+ required: true,
21
21
  },
22
22
  doc: {
23
- type: Object
23
+ type: Object,
24
24
  },
25
25
  patch: {
26
- type: Array
26
+ type: Array,
27
27
  },
28
28
  user: {
29
- type: Object
29
+ type: Object,
30
30
  },
31
31
  reason: {
32
- type: String
32
+ type: String,
33
33
  },
34
34
  metadata: {
35
- type: Object
35
+ type: Object,
36
36
  },
37
37
  version: {
38
38
  type: Number,
39
39
  min: 0,
40
- default: 0
41
- }
40
+ default: 0,
41
+ },
42
42
  }, { timestamps: true })
43
43
 
44
44
  HistorySchema.index({ collectionId: 1, version: -1 })