ts-patch-mongoose 1.1.3 → 1.1.5

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.
package/.eslintrc CHANGED
@@ -10,13 +10,15 @@
10
10
  "plugins": [
11
11
  "@typescript-eslint",
12
12
  "jest",
13
- "jest-formatting"
13
+ "jest-formatting",
14
+ "sonarjs"
14
15
  ],
15
16
  "extends": [
16
17
  "standard",
17
18
  "eslint:recommended",
18
19
  "plugin:@typescript-eslint/eslint-recommended",
19
- "plugin:@typescript-eslint/recommended"
20
+ "plugin:@typescript-eslint/recommended",
21
+ "plugin:sonarjs/recommended"
20
22
  ],
21
23
  "globals": {
22
24
  "Atomics": "readonly",
@@ -61,7 +63,10 @@
61
63
  "plugin:jest/style",
62
64
  "plugin:jest/recommended",
63
65
  "plugin:jest-formatting/recommended"
64
- ]
66
+ ],
67
+ "rules": {
68
+ "sonarjs/no-duplicate-string": "off"
69
+ }
65
70
  },
66
71
  {
67
72
  "parserOptions": {
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deletePatch = exports.updatePatch = exports.createPatch = exports.bulkPatch = exports.getObjects = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
+ const omit_deep_1 = tslib_1.__importDefault(require("omit-deep"));
7
+ const fast_json_patch_1 = tslib_1.__importDefault(require("fast-json-patch"));
8
+ const History_1 = tslib_1.__importDefault(require("./models/History"));
9
+ const em_1 = tslib_1.__importDefault(require("./em"));
10
+ function getObjects(opts, current, original) {
11
+ let currentObject = JSON.parse(JSON.stringify(current));
12
+ let originalObject = JSON.parse(JSON.stringify(original));
13
+ if (opts.omit) {
14
+ currentObject = (0, omit_deep_1.default)(currentObject, opts.omit);
15
+ originalObject = (0, omit_deep_1.default)(originalObject, opts.omit);
16
+ }
17
+ return { currentObject, originalObject };
18
+ }
19
+ exports.getObjects = getObjects;
20
+ async function bulkPatch(opts, context, eventKey, docsKey) {
21
+ const event = opts[eventKey];
22
+ const docs = context[docsKey];
23
+ const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc';
24
+ if (lodash_1.default.isEmpty(docs) || (!event && opts.patchHistoryDisabled))
25
+ return;
26
+ const chunks = lodash_1.default.chunk(docs, 1000);
27
+ for await (const chunk of chunks) {
28
+ const bulk = [];
29
+ for (const doc of chunk) {
30
+ if (event)
31
+ em_1.default.emit(event, { [key]: doc });
32
+ if (!opts.patchHistoryDisabled) {
33
+ bulk.push({
34
+ insertOne: {
35
+ document: {
36
+ op: context.op,
37
+ modelName: context.modelName,
38
+ collectionName: context.collectionName,
39
+ collectionId: doc._id,
40
+ doc,
41
+ version: 0
42
+ }
43
+ }
44
+ });
45
+ }
46
+ }
47
+ if (!opts.patchHistoryDisabled) {
48
+ await History_1.default.bulkWrite(bulk, { ordered: false });
49
+ }
50
+ }
51
+ }
52
+ exports.bulkPatch = bulkPatch;
53
+ async function createPatch(opts, context) {
54
+ await bulkPatch(opts, context, 'eventCreated', 'createdDocs');
55
+ }
56
+ exports.createPatch = createPatch;
57
+ async function updatePatch(opts, context, current, original) {
58
+ const { currentObject, originalObject } = getObjects(opts, current, original);
59
+ if (lodash_1.default.isEmpty(originalObject) || lodash_1.default.isEmpty(currentObject))
60
+ return;
61
+ const patch = fast_json_patch_1.default.compare(originalObject, currentObject, true);
62
+ if (lodash_1.default.isEmpty(patch))
63
+ return;
64
+ if (opts.eventUpdated) {
65
+ em_1.default.emit(opts.eventUpdated, { oldDoc: original, doc: current, patch });
66
+ }
67
+ if (opts.patchHistoryDisabled)
68
+ return;
69
+ let version = 0;
70
+ const lastHistory = await History_1.default.findOne({ collectionId: original._id }).sort('-version').exec();
71
+ if (lastHistory && lastHistory.version >= 0) {
72
+ version = lastHistory.version + 1;
73
+ }
74
+ await History_1.default.create({
75
+ op: context.op,
76
+ modelName: context.modelName,
77
+ collectionName: context.collectionName,
78
+ collectionId: original._id,
79
+ patch,
80
+ version
81
+ });
82
+ }
83
+ exports.updatePatch = updatePatch;
84
+ async function deletePatch(opts, context) {
85
+ await bulkPatch(opts, context, 'eventDeleted', 'deletedDocs');
86
+ }
87
+ exports.deletePatch = deletePatch;
88
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
@@ -3,96 +3,39 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.patchHistoryPlugin = exports.patchEventEmitter = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
- const omit_deep_1 = tslib_1.__importDefault(require("omit-deep"));
7
- const fast_json_patch_1 = tslib_1.__importDefault(require("fast-json-patch"));
8
6
  const power_assign_1 = require("power-assign");
7
+ const patch_1 = require("./patch");
9
8
  const em_1 = tslib_1.__importDefault(require("./em"));
10
- const History_1 = tslib_1.__importDefault(require("./models/History"));
11
9
  const options = {
12
10
  document: false,
13
11
  query: true
14
12
  };
15
- function getObjects(opts, current, original) {
16
- let currentObject = JSON.parse(JSON.stringify(current));
17
- let originalObject = JSON.parse(JSON.stringify(original));
18
- if (opts.omit) {
19
- currentObject = (0, omit_deep_1.default)(currentObject, opts.omit);
20
- originalObject = (0, omit_deep_1.default)(originalObject, opts.omit);
21
- }
22
- return { currentObject, originalObject };
23
- }
24
- async function updatePatch(opts, context, current, original) {
25
- const { currentObject, originalObject } = getObjects(opts, current, original);
26
- if (lodash_1.default.isEmpty(originalObject) || lodash_1.default.isEmpty(currentObject))
27
- return;
28
- const patch = fast_json_patch_1.default.compare(originalObject, currentObject, true);
29
- if (lodash_1.default.isEmpty(patch))
30
- return;
31
- if (opts.eventUpdated) {
32
- em_1.default.emit(opts.eventUpdated, { oldDoc: original, doc: current, patch });
33
- }
34
- if (opts.patchHistoryDisabled)
35
- return;
36
- let version = 0;
37
- const lastHistory = await History_1.default.findOne({ collectionId: original._id }).sort('-version').exec();
38
- if (lastHistory && lastHistory.version >= 0) {
39
- version = lastHistory.version + 1;
40
- }
41
- await History_1.default.create({
42
- op: context.op,
43
- modelName: context.modelName,
44
- collectionName: context.collectionName,
45
- collectionId: original._id,
46
- patch,
47
- version
48
- });
49
- }
50
- async function bulkPatch(opts, context, eventKey, docsKey) {
51
- const event = opts[eventKey];
52
- const docs = context[docsKey];
53
- const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc';
54
- if (lodash_1.default.isEmpty(docs) || (!event && opts.patchHistoryDisabled))
55
- return;
56
- const chunks = lodash_1.default.chunk(docs, 1000);
57
- for await (const chunk of chunks) {
58
- const bulk = [];
59
- for (const doc of chunk) {
60
- if (event)
61
- em_1.default.emit(event, { [key]: doc });
62
- if (!opts.patchHistoryDisabled) {
63
- bulk.push({
64
- insertOne: {
65
- document: {
66
- op: context.op,
67
- modelName: context.modelName,
68
- collectionName: context.collectionName,
69
- collectionId: doc._id,
70
- doc,
71
- version: 0
72
- }
73
- }
74
- });
75
- }
76
- }
77
- if (!opts.patchHistoryDisabled) {
78
- await History_1.default
79
- .bulkWrite(bulk, { ordered: false })
80
- .catch((err) => {
81
- console.error(err);
82
- });
83
- }
84
- }
85
- }
86
- async function createPatch(opts, context) {
87
- await bulkPatch(opts, context, 'eventCreated', 'createdDocs');
88
- }
89
- async function deletePatch(opts, context) {
90
- await bulkPatch(opts, context, 'eventDeleted', 'deletedDocs');
91
- }
13
+ const toObjectOptions = {
14
+ depopulate: true,
15
+ virtuals: false
16
+ };
17
+ const updateMethods = [
18
+ 'update',
19
+ 'updateOne',
20
+ 'replaceOne',
21
+ 'updateMany',
22
+ 'findOneAndUpdate',
23
+ 'findOneAndReplace',
24
+ 'findByIdAndUpdate'
25
+ ];
26
+ const deleteMethods = [
27
+ 'remove',
28
+ 'findOneAndDelete',
29
+ 'findOneAndRemove',
30
+ 'findByIdAndDelete',
31
+ 'findByIdAndRemove',
32
+ 'deleteOne',
33
+ 'deleteMany'
34
+ ];
92
35
  exports.patchEventEmitter = em_1.default;
93
36
  const patchHistoryPlugin = function plugin(schema, opts) {
94
37
  schema.pre('save', async function (next) {
95
- const current = this.toObject({ depopulate: true });
38
+ const current = this.toObject(toObjectOptions);
96
39
  const model = this.constructor;
97
40
  const context = {
98
41
  op: this.isNew ? 'create' : 'update',
@@ -100,21 +43,16 @@ const patchHistoryPlugin = function plugin(schema, opts) {
100
43
  collectionName: opts.collectionName ?? model.collection.collectionName,
101
44
  createdDocs: [current]
102
45
  };
103
- try {
104
- if (this.isNew) {
105
- await createPatch(opts, context);
106
- }
107
- else {
108
- const original = await model.findById(current._id).exec();
109
- if (original) {
110
- await updatePatch(opts, context, current, original);
111
- }
112
- }
113
- next();
46
+ if (this.isNew) {
47
+ await (0, patch_1.createPatch)(opts, context);
114
48
  }
115
- catch (error) {
116
- next(error);
49
+ else {
50
+ const original = await model.findById(current._id).exec();
51
+ if (original) {
52
+ await (0, patch_1.updatePatch)(opts, context, current, original);
53
+ }
117
54
  }
55
+ next();
118
56
  });
119
57
  schema.post('insertMany', async function (docs) {
120
58
  const context = {
@@ -123,9 +61,9 @@ const patchHistoryPlugin = function plugin(schema, opts) {
123
61
  collectionName: opts.collectionName ?? this.collection.collectionName,
124
62
  createdDocs: docs
125
63
  };
126
- await createPatch(opts, context);
64
+ await (0, patch_1.createPatch)(opts, context);
127
65
  });
128
- schema.pre(['update', 'updateOne', 'updateMany', 'findOneAndUpdate', 'findOneAndReplace'], async function (next) {
66
+ schema.pre(updateMethods, async function (next) {
129
67
  const filter = this.getFilter();
130
68
  const update = this.getUpdate();
131
69
  const options = this.getOptions();
@@ -137,70 +75,54 @@ const patchHistoryPlugin = function plugin(schema, opts) {
137
75
  collectionName: opts.collectionName ?? this.model.collection.collectionName,
138
76
  isNew: options.upsert && count === 0
139
77
  };
140
- try {
141
- const keys = lodash_1.default.keys(update).filter((key) => key.startsWith('$'));
142
- if (update && !lodash_1.default.isEmpty(keys)) {
143
- lodash_1.default.forEach(keys, (key) => {
144
- commands.push({ [key]: update[key] });
145
- delete update[key];
146
- });
147
- }
148
- const cursor = this.model.find(filter).cursor();
149
- await cursor.eachAsync(async (doc) => {
150
- let current = doc.toObject({ depopulate: true });
151
- const original = doc.toObject({ depopulate: true });
152
- current = (0, power_assign_1.assign)(current, update);
153
- lodash_1.default.forEach(commands, (command) => {
154
- try {
155
- current = (0, power_assign_1.assign)(current, command);
156
- }
157
- catch (error) {
158
- }
159
- });
160
- await updatePatch(opts, this._context, current, original);
78
+ const keys = lodash_1.default.keys(update).filter((key) => key.startsWith('$'));
79
+ if (update && !lodash_1.default.isEmpty(keys)) {
80
+ lodash_1.default.forEach(keys, (key) => {
81
+ commands.push({ [key]: update[key] });
82
+ delete update[key];
161
83
  });
162
- next();
163
- }
164
- catch (error) {
165
- next(error);
166
84
  }
167
- });
168
- schema.post(['update', 'updateOne', 'updateMany', 'findOneAndUpdate'], async function () {
169
- const update = this.getUpdate();
170
- if (update && this._context.isNew) {
171
- const cursor = this.model.findOne(update).cursor();
172
- await cursor.eachAsync((doc) => {
173
- const current = doc.toObject({ depopulate: true });
174
- if (this._context.createdDocs) {
175
- this._context.createdDocs.push(current);
85
+ const cursor = this.model.find(filter).cursor();
86
+ await cursor.eachAsync(async (doc) => {
87
+ let current = doc.toObject(toObjectOptions);
88
+ const original = doc.toObject(toObjectOptions);
89
+ current = (0, power_assign_1.assign)(current, update);
90
+ lodash_1.default.forEach(commands, (command) => {
91
+ try {
92
+ current = (0, power_assign_1.assign)(current, command);
176
93
  }
177
- else {
178
- this._context.createdDocs = [current];
94
+ catch (error) {
179
95
  }
180
96
  });
181
- await createPatch(opts, this._context);
97
+ await (0, patch_1.updatePatch)(opts, this._context, current, original);
98
+ });
99
+ next();
100
+ });
101
+ schema.post(updateMethods, async function () {
102
+ const update = this.getUpdate();
103
+ if (!update || !this._context.isNew)
104
+ return;
105
+ const found = await this.model.findOne(update).exec();
106
+ if (found) {
107
+ const current = found.toObject(toObjectOptions);
108
+ this._context.createdDocs = [current];
109
+ await (0, patch_1.createPatch)(opts, this._context);
182
110
  }
183
111
  });
184
- schema.pre('remove', async function (next) {
185
- const original = this.toObject({ depopulate: true });
112
+ schema.post('remove', async function () {
113
+ const original = this.toObject(toObjectOptions);
186
114
  const model = this.constructor;
187
115
  const context = {
188
116
  op: 'delete',
189
117
  modelName: opts.modelName ?? model.modelName,
190
118
  collectionName: opts.collectionName ?? model.collection.collectionName
191
119
  };
192
- try {
193
- if (opts.eventDeleted) {
194
- em_1.default.emit(opts.eventDeleted, { oldDoc: original });
195
- }
196
- await deletePatch(opts, context);
197
- next();
198
- }
199
- catch (error) {
200
- next(error);
120
+ if (opts.eventDeleted) {
121
+ em_1.default.emit(opts.eventDeleted, { oldDoc: original });
201
122
  }
123
+ await (0, patch_1.deletePatch)(opts, context);
202
124
  });
203
- schema.pre(['remove', 'findOneAndDelete', 'findOneAndRemove', 'deleteOne', 'deleteMany'], options, async function (next) {
125
+ schema.pre(deleteMethods, options, async function (next) {
204
126
  const filter = this.getFilter();
205
127
  const options = this.getOptions();
206
128
  const ignore = options.__ignore;
@@ -223,13 +145,13 @@ const patchHistoryPlugin = function plugin(schema, opts) {
223
145
  this._context.deletedDocs = [doc];
224
146
  }
225
147
  }
226
- if (opts.preDeleteManyCallback && lodash_1.default.isArray(this._context.deletedDocs) && !lodash_1.default.isEmpty(this._context.deletedDocs)) {
227
- await opts.preDeleteManyCallback(this._context.deletedDocs);
148
+ if (opts.preDeleteCallback && lodash_1.default.isArray(this._context.deletedDocs) && !lodash_1.default.isEmpty(this._context.deletedDocs)) {
149
+ await opts.preDeleteCallback(this._context.deletedDocs);
228
150
  }
229
151
  next();
230
152
  });
231
- schema.post(['remove', 'findOneAndDelete', 'findOneAndRemove', 'deleteOne', 'deleteMany'], options, async function () {
232
- await deletePatch(opts, this._context);
153
+ schema.post(deleteMethods, options, async function () {
154
+ await (0, patch_1.deletePatch)(opts, this._context);
233
155
  });
234
156
  };
235
157
  exports.patchHistoryPlugin = patchHistoryPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ interface IPluginOptions<T> {
6
6
  eventCreated?: string;
7
7
  eventDeleted?: string;
8
8
  patchHistoryDisabled?: boolean;
9
- preDeleteManyCallback?: (docs: HydratedDocument<T>[]) => Promise<void>;
9
+ preDeleteCallback?: (docs: HydratedDocument<T>[]) => Promise<void>;
10
10
  omit?: string[];
11
11
  }
12
12
  export default IPluginOptions;
@@ -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,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,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;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,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,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { HydratedDocument } from 'mongoose';
2
+ import type IPluginOptions from './interfaces/IPluginOptions';
3
+ import type IContext from './interfaces/IContext';
4
+ export declare function getObjects<T>(opts: IPluginOptions<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): {
5
+ currentObject: Partial<T>;
6
+ originalObject: Partial<T>;
7
+ };
8
+ export declare function bulkPatch<T>(opts: IPluginOptions<T>, context: IContext<T>, eventKey: 'eventCreated' | 'eventDeleted', docsKey: 'createdDocs' | 'deletedDocs'): Promise<void>;
9
+ export declare function createPatch<T>(opts: IPluginOptions<T>, context: IContext<T>): Promise<void>;
10
+ export declare function updatePatch<T>(opts: IPluginOptions<T>, context: IContext<T>, current: HydratedDocument<T>, original: HydratedDocument<T>): Promise<void>;
11
+ export declare function deletePatch<T>(opts: IPluginOptions<T>, context: IContext<T>): Promise<void>;
12
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +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,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AAKjD,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,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,CAmCnL;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,CA+B/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 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,KAAK,EAAmC,KAAK,EAAiB,MAAM,EAAS,MAAM,UAAU,CAAA;AAEpG,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AA2G7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IA2JlG,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,KAAK,EAAoB,KAAK,EAA2B,MAAM,EAAmB,MAAM,UAAU,CAAA;AAEzG,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAwC7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAAK,CAAA;AAQnC,eAAO,MAAM,kBAAkB,oOAAoE,IAgJlG,CAAA"}
@@ -0,0 +1,79 @@
1
+ import _ from 'lodash';
2
+ import omit from 'omit-deep';
3
+ import jsonpatch from 'fast-json-patch';
4
+ import History from './models/History';
5
+ import em from './em';
6
+ export function getObjects(opts, current, original) {
7
+ let currentObject = JSON.parse(JSON.stringify(current));
8
+ let originalObject = JSON.parse(JSON.stringify(original));
9
+ if (opts.omit) {
10
+ currentObject = omit(currentObject, opts.omit);
11
+ originalObject = omit(originalObject, opts.omit);
12
+ }
13
+ return { currentObject, originalObject };
14
+ }
15
+ export async function bulkPatch(opts, context, eventKey, docsKey) {
16
+ const event = opts[eventKey];
17
+ const docs = context[docsKey];
18
+ const key = eventKey === 'eventCreated' ? 'doc' : 'oldDoc';
19
+ if (_.isEmpty(docs) || (!event && opts.patchHistoryDisabled))
20
+ return;
21
+ const chunks = _.chunk(docs, 1000);
22
+ for await (const chunk of chunks) {
23
+ const bulk = [];
24
+ for (const doc of chunk) {
25
+ if (event)
26
+ em.emit(event, { [key]: doc });
27
+ if (!opts.patchHistoryDisabled) {
28
+ bulk.push({
29
+ insertOne: {
30
+ document: {
31
+ op: context.op,
32
+ modelName: context.modelName,
33
+ collectionName: context.collectionName,
34
+ collectionId: doc._id,
35
+ doc,
36
+ version: 0
37
+ }
38
+ }
39
+ });
40
+ }
41
+ }
42
+ if (!opts.patchHistoryDisabled) {
43
+ await History.bulkWrite(bulk, { ordered: false });
44
+ }
45
+ }
46
+ }
47
+ export async function createPatch(opts, context) {
48
+ await bulkPatch(opts, context, 'eventCreated', 'createdDocs');
49
+ }
50
+ export async function updatePatch(opts, context, current, original) {
51
+ const { currentObject, originalObject } = getObjects(opts, current, original);
52
+ if (_.isEmpty(originalObject) || _.isEmpty(currentObject))
53
+ return;
54
+ const patch = jsonpatch.compare(originalObject, currentObject, true);
55
+ if (_.isEmpty(patch))
56
+ return;
57
+ if (opts.eventUpdated) {
58
+ em.emit(opts.eventUpdated, { oldDoc: original, doc: current, patch });
59
+ }
60
+ if (opts.patchHistoryDisabled)
61
+ return;
62
+ let version = 0;
63
+ const lastHistory = await History.findOne({ collectionId: original._id }).sort('-version').exec();
64
+ if (lastHistory && lastHistory.version >= 0) {
65
+ version = lastHistory.version + 1;
66
+ }
67
+ await History.create({
68
+ op: context.op,
69
+ modelName: context.modelName,
70
+ collectionName: context.collectionName,
71
+ collectionId: original._id,
72
+ patch,
73
+ version
74
+ });
75
+ }
76
+ export async function deletePatch(opts, context) {
77
+ await bulkPatch(opts, context, 'eventDeleted', 'deletedDocs');
78
+ }
79
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,SAAS,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAQrC,OAAO,EAAE,MAAM,MAAM,CAAA;AACrB,OAAO,OAAO,MAAM,kBAAkB,CAAA;AAEtC,MAAM,OAAO,GAAG;IACd,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;CACZ,CAAA;AAED,SAAS,UAAU,CAAK,IAAuB,EAAE,OAA4B,EAAE,QAA6B;IAC1G,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;QACb,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9C,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;KACjD;IAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAC1C,CAAC;AAED,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB,EAAE,OAA4B,EAAE,QAA6B;IACvI,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE7E,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;IAEpE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IAE5B,IAAI,IAAI,CAAC,YAAY,EAAE;QACrB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;KACtE;IAED,IAAI,IAAI,CAAC,oBAAoB;QAAE,OAAM;IAErC,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,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;IAEnH,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,EAAE;QAC3C,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;KAClC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,QAAQ,CAAC,GAAqB;QAC5C,KAAK;QACL,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAK,IAAuB,EAAE,OAAoB,EAAE,QAAyC,EAAE,OAAsC;IAC3J,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,IAAI,CAAC,oBAAoB,CAAC;QAAE,OAAM;IAEpE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE;QAChC,MAAM,IAAI,GAAG,EAAE,CAAA;QACf,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,IAAI,KAAK;gBAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;YAEzC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,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,OAAO,EAAE,CAAC;yBACX;qBACF;iBACF,CAAC,CAAA;aACH;SACF;QAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,MAAM,OAAO;iBACV,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBACnC,KAAK,CAAC,CAAC,GAAkB,EAAE,EAAE;gBAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;SACL;KACF;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB;IAC1E,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAED,KAAK,UAAU,WAAW,CAAK,IAAuB,EAAE,OAAoB;IAC1E,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;AAC/D,CAAC;AAKD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAQnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,MAAM,CAAK,MAAiB,EAAE,IAAuB;IAC9F,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,WAAW,IAAI;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuB,CAAA;QAE1C,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;YAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;YACtE,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB,CAAA;QAED,IAAI;YACF,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aACjC;iBAAM;gBACL,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;gBACzD,IAAI,QAAQ,EAAE;oBACZ,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;iBACpD;aACF;YACD,IAAI,EAAE,CAAA;SACP;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAsB,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,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;IAEF,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAE,KAAK,WAAkC,IAAI;QACpI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAuC,CAAA;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAEjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QACnD,MAAM,QAAQ,GAAiC,EAAE,CAAA;QAEjD,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,MAAM,IAAI,KAAK,KAAK,CAAC;SACrC,CAAA;QAED,IAAI;YACF,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;YAChE,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9B,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBAErC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;aACH;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;YACpE,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACnC,IAAI,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;gBACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;gBAC1E,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACjC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC9B,IAAI;wBACF,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;qBACnC;oBAAC,OAAO,KAAK,EAAE;qBAEf;gBACH,CAAC,CAAC,CAAA;gBACF,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;YACF,IAAI,EAAE,CAAA;SACP;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAsB,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,EAAE,KAAK;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAE/B,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;YACvE,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAwB,CAAA;gBACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;oBAC7B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBACxC;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,CAAA;iBACtC;YACH,CAAC,CAAC,CAAA;YACF,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;SACvC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,WAAsC,IAAI;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAuB,CAAA;QAE1C,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;YAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc;SACvE,CAAA;QAED,IAAI;YACF,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;aACjD;YACD,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAChC,IAAI,EAAE,CAAA;SACP;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAsB,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,WAAkC,IAAI;QAC5I,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAmB,CAAA;QAE1C,IAAI,MAAM;YAAE,OAAO,IAAI,EAAE,CAAA;QAEzB,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;SAC5E,CAAA;QAED,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;YACtE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAA;aACjC;SACF;aAAM;YACL,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;YACxE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;aAClC;SACF;QAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC/G,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;SAC5D;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK;QACvG,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}