nongo-driver 3.3.5 → 3.3.6

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/dist/model.d.ts CHANGED
@@ -14,6 +14,7 @@ export default abstract class Model<T extends {
14
14
  history?: RevisionHistory[];
15
15
  diffs?: any;
16
16
  name?: string;
17
+ key?: string;
17
18
  environment?: string;
18
19
  deleted?: true;
19
20
  } = any> {
package/dist/model.js CHANGED
@@ -43,9 +43,13 @@ class Model {
43
43
  }
44
44
  this.collection = this.defineCollection();
45
45
  this.collectionRevision = // e.g. BlockRevision
46
- this.schemaVersioningEnabled() ? `${this.defineCollection()}${nongo_1.default.REVISION}` : null;
46
+ this.schemaVersioningEnabled()
47
+ ? `${this.defineCollection()}${nongo_1.default.REVISION}`
48
+ : null;
47
49
  this.collectionEnvironmentMapping = // e.g. BlockEnvironmentMapping
48
- this.schemaVersioningEnabled() ? `${this.defineCollection()}${nongo_1.default.ENVIRONMENT_MAPPING}` : null;
50
+ this.schemaVersioningEnabled()
51
+ ? `${this.defineCollection()}${nongo_1.default.ENVIRONMENT_MAPPING}`
52
+ : null;
49
53
  this.name = this.constructor.name;
50
54
  this.dynamic = false;
51
55
  this.initStructure();
@@ -70,13 +74,18 @@ class Model {
70
74
  return this.obj._id.toHexString();
71
75
  }
72
76
  async getLatestRevisionNumber(name) {
73
- const liveObj = await this.db.collection(this.collection).findOne({ name }, { sort: { revision: -1 } });
74
- const revObj = await this.db.collection(this.collectionRevision).findOne({ name }, { sort: { revision: -1 } });
75
- let version = "0.0.1";
77
+ const query = this.collection === 'FormModel' ? { key: name } : { name };
78
+ const liveObj = await this.db
79
+ .collection(this.collection)
80
+ .findOne(query, { sort: { revision: -1 } });
81
+ const revObj = await this.db
82
+ .collection(this.collectionRevision)
83
+ .findOne(query, { sort: { revision: -1 } });
84
+ let version = '0.0.1';
76
85
  if (liveObj && revObj) {
77
- (0, gt_1.default)(liveObj.revision, revObj.revision) ?
78
- version = (0, inc_1.default)(liveObj.revision, 'patch') :
79
- version = (0, inc_1.default)(revObj.revision, 'patch');
86
+ (0, gt_1.default)(liveObj.revision, revObj.revision)
87
+ ? (version = (0, inc_1.default)(liveObj.revision, 'patch'))
88
+ : (version = (0, inc_1.default)(revObj.revision, 'patch'));
80
89
  }
81
90
  else if (liveObj) {
82
91
  version = (0, inc_1.default)(liveObj.revision, 'patch');
@@ -105,29 +114,39 @@ class Model {
105
114
  }
106
115
  }
107
116
  if (this.collectionRevision) {
108
- const query = mongodb_1.ObjectId.isValid(this.obj.environment) ? { _id: new mongodb_1.ObjectId(this.obj.environment) } : { isLive: true };
117
+ const query = mongodb_1.ObjectId.isValid(this.obj.environment)
118
+ ? { _id: new mongodb_1.ObjectId(this.obj.environment) }
119
+ : { isLive: true };
109
120
  const clientEnv = await this.db.collection('Environment').findOne(query);
110
121
  const environmentId = clientEnv._id.toHexString();
111
- const { name } = this.obj;
112
- this.obj.revision = await this.getLatestRevisionNumber(name);
122
+ const { name, key } = this.obj;
123
+ this.obj.revision = await this.getLatestRevisionNumber(name || key);
113
124
  if (clientEnv.isLive) {
114
125
  const revisionObjId = new mongodb_1.ObjectId();
115
- const liveRevisionObject = await this.db.collection(this.collection).findOne({ _id: this.obj._id });
126
+ const liveRevisionObject = await this.db
127
+ .collection(this.collection)
128
+ .findOne({ _id: this.obj._id });
116
129
  this.obj.history = nongo_1.default.revisionHistory(liveRevisionObject, revisionObjId);
117
130
  await this.db
118
131
  .collection(this.collection)
119
132
  .replaceOne({ _id: this.obj._id }, this.obj, { upsert: true });
120
133
  if (liveRevisionObject) {
121
134
  liveRevisionObject._id = revisionObjId;
122
- await this.db.collection(this.collectionRevision).insertOne(liveRevisionObject);
135
+ await this.db
136
+ .collection(this.collectionRevision)
137
+ .insertOne(liveRevisionObject);
123
138
  }
124
139
  }
125
140
  else {
126
- const revisionObj = await this.db.collection(this.collectionRevision).findOne({ _id: this.obj._id });
141
+ const revisionObj = await this.db
142
+ .collection(this.collectionRevision)
143
+ .findOne({ _id: this.obj._id });
127
144
  this.obj.history = nongo_1.default.revisionHistory(revisionObj, this.idString());
128
145
  this.obj._id = new mongodb_1.ObjectId();
129
- const r = await this.db.collection(this.collectionRevision).insertOne(this.obj);
130
- if (this.obj.revision !== "0.0.1") {
146
+ const r = await this.db
147
+ .collection(this.collectionRevision)
148
+ .insertOne(this.obj);
149
+ if (this.obj.revision !== '0.0.1') {
131
150
  // update relevant mappings
132
151
  const revisionId = revisionObj._id.toHexString();
133
152
  const insertedId = r.insertedId.toHexString();
@@ -135,7 +154,7 @@ class Model {
135
154
  await this.updateIntentEntityBlockMapping(revisionId, insertedId, environmentId);
136
155
  }
137
156
  }
138
- if (this.obj.revision === "0.0.1") {
157
+ if (this.obj.revision === '0.0.1') {
139
158
  await this.createEnvironmentMapping(environmentId);
140
159
  }
141
160
  if (this.obj.deleted) {
@@ -153,38 +172,45 @@ class Model {
153
172
  }
154
173
  async removeEnvironmentMapping(environmentId) {
155
174
  const path = `environments.${environmentId}`;
156
- await this.db.collection(this.collectionEnvironmentMapping).updateOne({ originalId: this.idString() }, { $unset: { [path]: "" } });
175
+ await this.db
176
+ .collection(this.collectionEnvironmentMapping)
177
+ .updateOne({ originalId: this.idString() }, { $unset: { [path]: '' } });
157
178
  }
158
179
  async createEnvironmentMapping(environmentId) {
159
180
  await this.db.collection(this.collectionEnvironmentMapping).insertOne({
160
181
  originalId: this.idString(),
161
- environments: { [environmentId]: this.idString() }
182
+ environments: { [environmentId]: this.idString() },
162
183
  });
163
184
  }
164
185
  async updateEnvironmentMapping(revisionId, insertedId, environmentId) {
165
186
  const path = `environments.${environmentId}`;
166
- await this.db.collection(this.collectionEnvironmentMapping).updateOne({ [path]: revisionId }, { $set: { [path]: insertedId } });
187
+ await this.db
188
+ .collection(this.collectionEnvironmentMapping)
189
+ .updateOne({ [path]: revisionId }, { $set: { [path]: insertedId } });
167
190
  }
168
191
  async updateIntentEntityBlockMapping(oldId, newId, environment) {
169
- if (this.collection === "Block") {
192
+ if (this.collection === 'Block') {
170
193
  // update intent and entity mappings
171
194
  const filter = { block_id: oldId, environment };
172
- const update = { $set: { 'block_id': newId } };
195
+ const update = { $set: { block_id: newId } };
173
196
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
174
197
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
175
198
  }
176
- else if (this.collection === "Intent") {
199
+ else if (this.collection === 'Intent') {
177
200
  // update intent mapping
178
201
  const filter = { intent_id: oldId, environment };
179
- const update = { $set: { 'intent_id': newId } };
202
+ const update = { $set: { intent_id: newId } };
180
203
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
181
204
  }
182
- else if (this.collection === "Entity") {
205
+ else if (this.collection === 'Entity') {
183
206
  // update entity mapping
184
207
  const filter = { entity_id: oldId, environment };
185
- const update = { $set: { 'entity_id': newId } };
208
+ const update = { $set: { entity_id: newId } };
186
209
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
187
210
  }
211
+ else if (this.collection === 'FormModel') {
212
+ return;
213
+ }
188
214
  else {
189
215
  throw Error(`${this.collection} is unsupported revision type.`);
190
216
  }
@@ -192,10 +218,14 @@ class Model {
192
218
  async revertVersion(id, revisionId) {
193
219
  const revisionObjId = new mongodb_1.ObjectId();
194
220
  // get the actuall object
195
- const obj = await this.db.collection(this.collection).findOne({ _id: new mongodb_1.ObjectId(id) });
221
+ const obj = await this.db
222
+ .collection(this.collection)
223
+ .findOne({ _id: new mongodb_1.ObjectId(id) });
196
224
  // get revision
197
- const objToRevert = await this.db.collection(this.collectionRevision).findOne({ _id: new mongodb_1.ObjectId(revisionId) });
198
- // update revision object
225
+ const objToRevert = await this.db
226
+ .collection(this.collectionRevision)
227
+ .findOne({ _id: new mongodb_1.ObjectId(revisionId) });
228
+ // update revision object
199
229
  objToRevert.revision = nongo_1.default.revisionNumber(obj.revision);
200
230
  objToRevert.history = nongo_1.default.revisionHistory(obj, revisionObjId);
201
231
  delete objToRevert.diffs;
@@ -230,7 +260,9 @@ class Model {
230
260
  return new this.constructor(this.nongo, doc);
231
261
  }
232
262
  async saveEnvironmentRevision(id, environmentId) {
233
- const obj = await this.db.collection(this.collection).findOne({ _id: new mongodb_1.ObjectId(id) });
263
+ const obj = await this.db
264
+ .collection(this.collection)
265
+ .findOne({ _id: new mongodb_1.ObjectId(id) });
234
266
  const revisionObj = (0, clone_deep_1.default)(obj);
235
267
  revisionObj._id = new mongodb_1.ObjectId();
236
268
  revisionObj.environment = environmentId;
@@ -240,7 +272,9 @@ class Model {
240
272
  return new this.constructor(this.nongo, revisionObj);
241
273
  }
242
274
  async removeEnvironmentRevisions(environmentId) {
243
- const result = await this.db.collection(this.collectionRevision).deleteMany({ environment: environmentId });
275
+ const result = await this.db
276
+ .collection(this.collectionRevision)
277
+ .deleteMany({ environment: environmentId });
244
278
  return result;
245
279
  }
246
280
  /*
@@ -308,14 +342,16 @@ class Model {
308
342
  return this.findOne({ _id: id });
309
343
  }
310
344
  async getRevisionHistory(history) {
311
- const revisionIds = history.map(i => new mongodb_1.ObjectId(i.id));
345
+ const revisionIds = history.map((i) => new mongodb_1.ObjectId(i.id));
312
346
  return this.toArray(await this.findIterator({ _id: { $in: revisionIds } }, { sort: { revision: 'descending' } }, this.collectionRevision));
313
347
  }
314
348
  async getRevisions(query, options) {
315
349
  return this.toArray(await this.findIterator(query, options, this.collectionRevision));
316
350
  }
317
351
  async getRevision(query) {
318
- const doc = await this.db.collection(this.collectionRevision).findOne(query);
352
+ const doc = await this.db
353
+ .collection(this.collectionRevision)
354
+ .findOne(query);
319
355
  // Return null if no doc was found
320
356
  if (doc == null) {
321
357
  return null;
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAA+B;AAC/B,qCAA+O;AAC/O,yCAA+B;AAC/B,6DAA2C;AAC3C,+DAA8C;AAE9C,wEAA+C;AAG/C,oDAA4B;AAC5B,4DAAoC;AAEpC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAE7D,SAAS,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa;IAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAQD,MAA8B,KAAK;IAWjC,YAAmB,KAAY,EAAS,GAAM;QAA3B,UAAK,GAAL,KAAK,CAAO;QAAS,QAAG,GAAH,GAAG,CAAG;QAV9C,sEAAsE;QACtE,uDAAuD;QAChD,iBAAY,GAAS,IAAI,CAAC;QAS/B,6BAA6B;QAC7B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;SACpB;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE;YAChD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,kBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,qBAAqB;YAC7C,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,eAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,IAAI,CAAC,4BAA4B,GAAG,+BAA+B;YACjE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,eAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAES,uBAAuB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,eAAe;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,qBAAqB;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,mBAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,IAAY;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC;QACxG,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,OAAO,IAAI,MAAM,EAAE;YACrB,IAAA,YAAQ,EAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3C,OAAO,GAAG,IAAA,aAAU,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjD,OAAO,GAAG,IAAA,aAAU,EAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAClD;aAAM,IAAI,OAAO,EAAE;YAClB,OAAO,GAAG,IAAA,aAAU,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;SAChD;aAAM,IAAI,MAAM,EAAE;YACjB,OAAO,GAAG,IAAA,aAAU,EAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;SAC/C;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI;QACf,+CAA+C;QAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE9C,kFAAkF;QAClF,IAAI,CAAC,GAAG,GAAG,IAAA,oBAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,wEAAwE;QACxE,yBAAyB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,sBAAsB;YACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAChC;SACF;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,MAAM,KAAK,GAAG,kBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,IAAI,kBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,CAAA;YAChH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAElD,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAE7D,IAAI,SAAS,CAAC,MAAM,EAAE;gBACpB,MAAM,aAAa,GAAG,IAAI,kBAAQ,EAAE,CAAC;gBACrC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,CAAC,CAAC;gBAClG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,eAAK,CAAC,eAAe,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;gBAC5E,MAAM,IAAI,CAAC,EAAE;qBACV,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;qBAC3B,UAAU,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC7D,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,GAAG,GAAG,aAAa,CAAC;oBACvC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;iBACjF;aACF;iBAAM;gBACL,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,CAAC,CAAC;gBAEnG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,eAAK,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,kBAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChF,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE;oBACjC,2BAA2B;oBAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACjD,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC9C,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;oBAC3E,MAAM,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;iBAClF;aACF;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE;gBACjC,MAAM,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;aACpD;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBACpB,MAAM,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAA;aACnD;SACF;aAAM;YACL,6BAA6B;YAC7B,MAAM,IAAI,CAAC,EAAE;iBACZ,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC3B,UAAU,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;SAC5D;QAED,yBAAyB;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,aAAqB;QAC1D,MAAM,IAAI,GAAG,gBAAgB,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,SAAS,CACnE,EAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAC,EAC7B,EAAC,MAAM,EAAE,EAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,EAAC,CACrB,CAAA;IACT,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,aAAqB;QAC1D,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,SAAS,CAAC;YACpE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC3B,YAAY,EAAE,EAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAC;SACjD,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,UAAkB,EAAE,UAAkB,EAAE,aAAqB;QAClG,MAAM,IAAI,GAAG,gBAAgB,aAAa,EAAE,CAAA;QAC5C,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,SAAS,CACnE,EAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAC,EACpB,EAAE,IAAI,EAAE,EAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAC,EAAC,CAC9B,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAAC,KAAa,EAAE,KAAa,EAAE,WAAmB;QAC5F,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC/B,oCAAoC;YACpC,MAAM,MAAM,GAAG,EAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,EAAC,IAAI,EAAE,EAAC,UAAU,EAAE,KAAK,EAAC,EAAC,CAAA;YAC1C,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3E;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YACvC,wBAAwB;YACxB,MAAM,MAAM,GAAG,EAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,EAAC,IAAI,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC,EAAC,CAAA;YAC3C,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3E;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YACvC,wBAAwB;YACxB,MAAM,MAAM,GAAG,EAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,EAAC,IAAI,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC,EAAC,CAAA;YAC3C,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3E;aAAM;YACL,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,gCAAgC,CAAC,CAAC;SACjE;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,UAAkB;QACvD,MAAM,aAAa,GAAG,IAAI,kBAAQ,EAAE,CAAC;QACrC,yBAAyB;QACzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QAEvF,eAAe;QACf,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,kBAAQ,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;QAE/G,0BAA0B;QAC1B,WAAW,CAAC,QAAQ,GAAG,eAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1D,WAAW,CAAC,OAAO,GAAG,eAAK,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACrC,WAAW,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QAE1B,MAAM,IAAI,CAAC,EAAE;aACV,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;aAC3B,UAAU,CAAC,EAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAC,EAAE,WAAW,CAAC,CAAC;QAG3C,gFAAgF;QAChF,GAAG,CAAC,GAAG,GAAG,aAAa,CAAC;QACxB,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEjE,4BAA4B;QAC5B,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,MAAe,EAAE,EAAU;QACnE,IAAI,GAAG,CAAC;QACR,MAAM,GAAG,GAAG,IAAI,kBAAQ,CAAC,EAAE,CAAC,CAAC;QAE7B,IAAI,MAAM,EAAE;YACV,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC;SAChE;aAAM;YACL,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC;SACxE;QAED,kCAAkC;QAClC,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,4BAA4B;QAC5B,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,EAAU,EAAE,aAAqB;QACpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QAEvF,MAAM,WAAW,GAAG,IAAA,oBAAK,EAAC,GAAG,CAAC,CAAC;QAC/B,WAAW,CAAC,GAAG,GAAG,IAAI,kBAAQ,EAAE,CAAC;QACjC,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;QAExC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACzE,4BAA4B;QAC5B,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAC,aAAqB;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,EAAC,WAAW,EAAE,aAAa,EAAC,CAAC,CAAA;QACzG,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,UAAU,EAAE,OAAO;QAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAEvD,6CAA6C;YAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3D,SAAS;aACV;YAED,4CAA4C;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE/B,oEAAoE;aACrE;iBAAM;gBACL,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAE3B,2EAA2E;gBAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBACxB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;4BAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;yBAC3B;oBACH,CAAC,CAAC,CAAC;oBAEH,mDAAmD;iBACpD;qBAAM,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACrD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBACzB;aACF;SACF;IACH,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,IAAI,EAAE,GAAG;QACxB,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QAED,sEAAsE;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;SAClB;aAAM;YACL,mDAAmD;YACnD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;aAC1D;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;aACtC;SACF;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAE,OAA0B;QACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,kBAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAC,GAAG,EAAE,EAAC,GAAG,EAAE,WAAW,EAAC,EAAC,EAAE,EAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAC,EAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrI,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAuB,EAAE,OAA+B;QAChF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,WAAW,CAAE,KAAuB;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE7E,kCAAkC;QAClC,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,sCAAsC;QACtC,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,QAA0B,EAAE,EAAE,OAA+B;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,SAAS,CACpB,UAA6C,EAC7C,OAA0B;QAE1B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAE,YAAY,CACxB,QAA0B,EAAE,EAC5B,OAA+B,EAC/B,UAAU,GAAG,IAAI,CAAC,UAAU;QAE5B,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,IAAI,yBAAc,CACvB,MAAM;QACR,aAAa;QACX,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO,CAAC,QAA0B,EAAE;QAC/C,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAErE,kCAAkC;QAClC,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,sCAAsC;QACtC,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAuB,EAAE,OAAuB;QAClE,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAoB,EAAE,OAA0B;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,QAAoB,EACpB,OAA0B;QAE1B,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;YAChC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;SAC7B;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;aACzB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;aAC3B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChC,aAAa;QACb,OAAO,IAAI,yBAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,SAA2B,EAAE;QAChE,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAuB,EAAE,OAA+B,EAAE,OAAuB;QACnG,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,EAAE;aACX,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;aAC3B,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,QAAkB,EAAE,EAAE,OAA+B;QACtE,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAOM,mBAAmB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,KAAK;QACvB,KAAK,GAAG,IAAA,oBAAK,EAAC,KAAK,CAAC,CAAC;QACrB,MAAM,EAAC,GAAG,EAAC,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,KAAK,CAAC;SACd;QAED,sDAAsD;QACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,KAAK,CAAC,GAAG,GAAG,eAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzC;aAAM,IAAI,GAAG,CAAC,GAAG,EAAE;YAClB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACnF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEO,oBAAoB,CAAC,MAAgB;QAC3C,IAAI,MAAM,CAAC;QACX,IAAI;YACF,MAAM,GAAG,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;SAC1E;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC;SACpD;QACD,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,YAAiB;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC3C,4DAA4D;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC,MAAM,CAAC;YACrB,OAAO,MAAM,CAAC,OAAO,CAAC;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC;YAEnB,oCAAoC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;oBAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;iBAChC;aACF;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aAC9B;SACF;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,cAAoC;;QACxD,MAAM,GAAG,GAAG,EAAE,CAAC;;YACf,aAAa;YACb,KAAsB,eAAA,mBAAA,cAAA,cAAc,CAAA,oBAAA;gBAAd,8BAAc;gBAAd,WAAc;;oBAAzB,MAAM,CAAC,KAAA,CAAA;oBAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;aACb;;;;;;;;;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,GAAG,GAAG,EAAO,CAAC;SACpB;QAED,+EAA+E;QAC/E,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACtD;IACH,CAAC;IAEO,OAAO,CAAC,MAAM,EAAE,YAAY;QAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAEzB,wCAAwC;YACxC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpB,QAAQ;gBACN,OAAO,QAAQ,KAAK,UAAU;oBAC5B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;oBACjC,CAAC,CAAC,QAAQ,CAAC;YAEf,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC;YAEvD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,IAAI,cAAc,EAAE;oBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBAClB;gBAED,iFAAiF;gBACjF,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;oBACrD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBACjC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;qBAC1D;iBACF;aACF;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBACnC,2CAA2C;gBAC3C,IAAI,cAAc,EAAE;oBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBAClB;gBAED,+CAA+C;gBAC/C,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;oBAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;iBACjC;aACF;iBAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,cAAc,EAAE;gBAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAClB;SACF;IACH,CAAC;CACF;AAzkBD,wBAykBC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nongo-driver",
3
- "version": "3.3.5",
3
+ "version": "3.3.6",
4
4
  "description": "A promise driven, schema lead, mongo driver.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/model.ts CHANGED
@@ -1,5 +1,21 @@
1
1
  import clone from 'clone-deep';
2
- import {AggregateOptions, AnyBulkWriteOperation, BulkWriteOptions, BulkWriteResult, CountDocumentsOptions, Db, DeleteOptions, DeleteResult, Document, Filter, FindOptions, ObjectId, UpdateFilter, UpdateOptions, UpdateResult} from 'mongodb';
2
+ import {
3
+ AggregateOptions,
4
+ AnyBulkWriteOperation,
5
+ BulkWriteOptions,
6
+ BulkWriteResult,
7
+ CountDocumentsOptions,
8
+ Db,
9
+ DeleteOptions,
10
+ DeleteResult,
11
+ Document,
12
+ Filter,
13
+ FindOptions,
14
+ ObjectId,
15
+ UpdateFilter,
16
+ UpdateOptions,
17
+ UpdateResult,
18
+ } from 'mongodb';
3
19
  import {diff} from 'just-diff';
4
20
  import semverGt from 'semver/functions/gt';
5
21
  import incVersion from 'semver/functions/inc';
@@ -10,14 +26,14 @@ import MongoIndex from './mongo-index';
10
26
  import Nongo from './nongo';
11
27
  import Validator from './validator';
12
28
 
13
- const DEFAULT_PATHS = ['_id', 'revision', 'history', 'diffs']
29
+ const DEFAULT_PATHS = ['_id', 'revision', 'history', 'diffs'];
14
30
 
15
31
  function excludePathsFromDiff(diff, excludedPaths = DEFAULT_PATHS) {
16
32
  return diff.filter((d) => {
17
33
  if (!excludedPaths.includes(d.path[0])) {
18
34
  return true;
19
35
  }
20
- })
36
+ });
21
37
  }
22
38
 
23
39
  export interface RevisionHistory {
@@ -26,7 +42,18 @@ export interface RevisionHistory {
26
42
  created?: Date;
27
43
  }
28
44
 
29
- export default abstract class Model<T extends {_id?: ObjectId, revision?: string, history?: RevisionHistory[], diffs?: any, name?: string, environment?: string, deleted?:true} = any> {
45
+ export default abstract class Model<
46
+ T extends {
47
+ _id?: ObjectId;
48
+ revision?: string;
49
+ history?: RevisionHistory[];
50
+ diffs?: any;
51
+ name?: string;
52
+ key?: string;
53
+ environment?: string;
54
+ deleted?: true;
55
+ } = any,
56
+ > {
30
57
  // {@code instanceof} can be a bit funny when importing classes across
31
58
  // modules so this is an explicit type guard we can use
32
59
  public isNongoModel: true = true;
@@ -50,15 +77,19 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
50
77
 
51
78
  this.collection = this.defineCollection();
52
79
  this.collectionRevision = // e.g. BlockRevision
53
- this.schemaVersioningEnabled() ? `${this.defineCollection()}${Nongo.REVISION}` : null;
80
+ this.schemaVersioningEnabled()
81
+ ? `${this.defineCollection()}${Nongo.REVISION}`
82
+ : null;
54
83
  this.collectionEnvironmentMapping = // e.g. BlockEnvironmentMapping
55
- this.schemaVersioningEnabled() ? `${this.defineCollection()}${Nongo.ENVIRONMENT_MAPPING}` : null;
84
+ this.schemaVersioningEnabled()
85
+ ? `${this.defineCollection()}${Nongo.ENVIRONMENT_MAPPING}`
86
+ : null;
56
87
  this.name = this.constructor.name;
57
88
  this.dynamic = false;
58
89
  this.initStructure();
59
90
  }
60
91
 
61
- public getCollectionRevision (): string {
92
+ public getCollectionRevision(): string {
62
93
  return this.collectionRevision;
63
94
  }
64
95
 
@@ -84,17 +115,22 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
84
115
  }
85
116
 
86
117
  private async getLatestRevisionNumber(name: string): Promise<string> {
87
- const liveObj = await this.db.collection(this.collection).findOne({name}, {sort:{revision: -1}});
88
- const revObj = await this.db.collection(this.collectionRevision).findOne({name}, {sort:{revision: -1}});
89
- let version = "0.0.1";
118
+ const query = this.collection === 'FormModel' ? {key: name} : {name};
119
+ const liveObj = await this.db
120
+ .collection(this.collection)
121
+ .findOne(query, {sort: {revision: -1}});
122
+ const revObj = await this.db
123
+ .collection(this.collectionRevision)
124
+ .findOne(query, {sort: {revision: -1}});
125
+ let version = '0.0.1';
90
126
  if (liveObj && revObj) {
91
- semverGt(liveObj.revision, revObj.revision) ?
92
- version = incVersion(liveObj.revision, 'patch') :
93
- version = incVersion(revObj.revision, 'patch');
127
+ semverGt(liveObj.revision, revObj.revision)
128
+ ? (version = incVersion(liveObj.revision, 'patch'))
129
+ : (version = incVersion(revObj.revision, 'patch'));
94
130
  } else if (liveObj) {
95
- version = incVersion(liveObj.revision, 'patch')
131
+ version = incVersion(liveObj.revision, 'patch');
96
132
  } else if (revObj) {
97
- version = incVersion(revObj.revision, 'patch')
133
+ version = incVersion(revObj.revision, 'patch');
98
134
  }
99
135
  return version;
100
136
  }
@@ -118,51 +154,72 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
118
154
  this.throwValidationError(err);
119
155
  }
120
156
  }
121
-
157
+
122
158
  if (this.collectionRevision) {
123
- const query = ObjectId.isValid(this.obj.environment) ? {_id: new ObjectId(this.obj.environment)} : {isLive:true}
159
+ const query = ObjectId.isValid(this.obj.environment)
160
+ ? {_id: new ObjectId(this.obj.environment)}
161
+ : {isLive: true};
124
162
  const clientEnv = await this.db.collection('Environment').findOne(query);
125
163
  const environmentId = clientEnv._id.toHexString();
126
164
 
127
- const {name} = this.obj;
128
- this.obj.revision = await this.getLatestRevisionNumber(name);
165
+ const {name, key} = this.obj;
166
+ this.obj.revision = await this.getLatestRevisionNumber(name || key);
129
167
 
130
168
  if (clientEnv.isLive) {
131
169
  const revisionObjId = new ObjectId();
132
- const liveRevisionObject = await this.db.collection(this.collection).findOne({_id: this.obj._id});
133
- this.obj.history = Nongo.revisionHistory(liveRevisionObject, revisionObjId);
170
+ const liveRevisionObject = await this.db
171
+ .collection(this.collection)
172
+ .findOne({_id: this.obj._id});
173
+ this.obj.history = Nongo.revisionHistory(
174
+ liveRevisionObject,
175
+ revisionObjId,
176
+ );
134
177
  await this.db
135
178
  .collection(this.collection)
136
179
  .replaceOne({_id: this.obj._id}, this.obj, {upsert: true});
137
180
  if (liveRevisionObject) {
138
181
  liveRevisionObject._id = revisionObjId;
139
- await this.db.collection(this.collectionRevision).insertOne(liveRevisionObject);
182
+ await this.db
183
+ .collection(this.collectionRevision)
184
+ .insertOne(liveRevisionObject);
140
185
  }
141
186
  } else {
142
- const revisionObj = await this.db.collection(this.collectionRevision).findOne({_id: this.obj._id});
143
-
187
+ const revisionObj = await this.db
188
+ .collection(this.collectionRevision)
189
+ .findOne({_id: this.obj._id});
190
+
144
191
  this.obj.history = Nongo.revisionHistory(revisionObj, this.idString());
145
192
  this.obj._id = new ObjectId();
146
- const r = await this.db.collection(this.collectionRevision).insertOne(this.obj);
147
- if (this.obj.revision !== "0.0.1") {
193
+ const r = await this.db
194
+ .collection(this.collectionRevision)
195
+ .insertOne(this.obj);
196
+ if (this.obj.revision !== '0.0.1') {
148
197
  // update relevant mappings
149
198
  const revisionId = revisionObj._id.toHexString();
150
199
  const insertedId = r.insertedId.toHexString();
151
- await this.updateEnvironmentMapping(revisionId, insertedId, environmentId);
152
- await this.updateIntentEntityBlockMapping(revisionId, insertedId, environmentId);
200
+ await this.updateEnvironmentMapping(
201
+ revisionId,
202
+ insertedId,
203
+ environmentId,
204
+ );
205
+ await this.updateIntentEntityBlockMapping(
206
+ revisionId,
207
+ insertedId,
208
+ environmentId,
209
+ );
153
210
  }
154
211
  }
155
- if (this.obj.revision === "0.0.1") {
212
+ if (this.obj.revision === '0.0.1') {
156
213
  await this.createEnvironmentMapping(environmentId);
157
214
  }
158
215
  if (this.obj.deleted) {
159
- await this.removeEnvironmentMapping(environmentId)
216
+ await this.removeEnvironmentMapping(environmentId);
160
217
  }
161
218
  } else {
162
219
  // Upsert non revision models
163
220
  await this.db
164
- .collection(this.collection)
165
- .replaceOne({_id: this.obj._id}, this.obj, {upsert: true});
221
+ .collection(this.collection)
222
+ .replaceOne({_id: this.obj._id}, this.obj, {upsert: true});
166
223
  }
167
224
 
168
225
  // Return the saved model
@@ -171,45 +228,53 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
171
228
 
172
229
  private async removeEnvironmentMapping(environmentId: string): Promise<void> {
173
230
  const path = `environments.${environmentId}`;
174
- await this.db.collection(this.collectionEnvironmentMapping).updateOne(
175
- {originalId: this.idString()},
176
- {$unset: {[path]: ""}}
177
- )
231
+ await this.db
232
+ .collection(this.collectionEnvironmentMapping)
233
+ .updateOne({originalId: this.idString()}, {$unset: {[path]: ''}});
178
234
  }
179
235
 
180
236
  private async createEnvironmentMapping(environmentId: string): Promise<void> {
181
237
  await this.db.collection(this.collectionEnvironmentMapping).insertOne({
182
238
  originalId: this.idString(),
183
- environments: {[environmentId]: this.idString()}
184
- })
239
+ environments: {[environmentId]: this.idString()},
240
+ });
185
241
  }
186
242
 
187
- private async updateEnvironmentMapping(revisionId: string, insertedId: string, environmentId: string): Promise<void> {
188
- const path = `environments.${environmentId}`
189
- await this.db.collection(this.collectionEnvironmentMapping).updateOne(
190
- {[path]: revisionId},
191
- { $set: {[path]: insertedId}}
192
- )
243
+ private async updateEnvironmentMapping(
244
+ revisionId: string,
245
+ insertedId: string,
246
+ environmentId: string,
247
+ ): Promise<void> {
248
+ const path = `environments.${environmentId}`;
249
+ await this.db
250
+ .collection(this.collectionEnvironmentMapping)
251
+ .updateOne({[path]: revisionId}, {$set: {[path]: insertedId}});
193
252
  }
194
253
 
195
- private async updateIntentEntityBlockMapping(oldId: string, newId: string, environment: string): Promise<void> {
196
- if (this.collection === "Block") {
254
+ private async updateIntentEntityBlockMapping(
255
+ oldId: string,
256
+ newId: string,
257
+ environment: string,
258
+ ): Promise<void> {
259
+ if (this.collection === 'Block') {
197
260
  // update intent and entity mappings
198
- const filter = {block_id: oldId, environment}
199
- const update = {$set: {'block_id': newId}}
261
+ const filter = {block_id: oldId, environment};
262
+ const update = {$set: {block_id: newId}};
200
263
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
201
264
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
202
- } else if (this.collection === "Intent") {
265
+ } else if (this.collection === 'Intent') {
203
266
  // update intent mapping
204
- const filter = {intent_id: oldId, environment}
205
- const update = {$set: {'intent_id': newId}}
267
+ const filter = {intent_id: oldId, environment};
268
+ const update = {$set: {intent_id: newId}};
206
269
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
207
- } else if (this.collection === "Entity") {
270
+ } else if (this.collection === 'Entity') {
208
271
  // update entity mapping
209
- const filter = {entity_id: oldId, environment}
210
- const update = {$set: {'entity_id': newId}}
272
+ const filter = {entity_id: oldId, environment};
273
+ const update = {$set: {entity_id: newId}};
211
274
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
212
- } else {
275
+ } else if (this.collection === 'FormModel') {
276
+ return;
277
+ } else {
213
278
  throw Error(`${this.collection} is unsupported revision type.`);
214
279
  }
215
280
  }
@@ -217,12 +282,16 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
217
282
  public async revertVersion(id: string, revisionId: string): Promise<this> {
218
283
  const revisionObjId = new ObjectId();
219
284
  // get the actuall object
220
- const obj = await this.db.collection(this.collection).findOne({_id: new ObjectId(id)});
221
-
285
+ const obj = await this.db
286
+ .collection(this.collection)
287
+ .findOne({_id: new ObjectId(id)});
288
+
222
289
  // get revision
223
- const objToRevert = await this.db.collection(this.collectionRevision).findOne({_id: new ObjectId(revisionId)});
290
+ const objToRevert = await this.db
291
+ .collection(this.collectionRevision)
292
+ .findOne({_id: new ObjectId(revisionId)});
224
293
 
225
- // update revision object
294
+ // update revision object
226
295
  objToRevert.revision = Nongo.revisionNumber(obj.revision);
227
296
  objToRevert.history = Nongo.revisionHistory(obj, revisionObjId);
228
297
  delete objToRevert.diffs;
@@ -234,7 +303,6 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
234
303
  .collection(this.collection)
235
304
  .replaceOne({_id: obj._id}, objToRevert);
236
305
 
237
-
238
306
  // make actuall object as revision object and save it to the revision collection
239
307
  obj._id = revisionObjId;
240
308
  await this.db.collection(this.collectionRevision).insertOne(obj);
@@ -244,7 +312,10 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
244
312
  return new this.constructor(this.nongo, objToRevert);
245
313
  }
246
314
 
247
- public async getRevisionObjForEnvironment(isLive: boolean, id: string): Promise<this> {
315
+ public async getRevisionObjForEnvironment(
316
+ isLive: boolean,
317
+ id: string,
318
+ ): Promise<this> {
248
319
  let doc;
249
320
  const _id = new ObjectId(id);
250
321
 
@@ -264,8 +335,13 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
264
335
  return new this.constructor(this.nongo, doc);
265
336
  }
266
337
 
267
- public async saveEnvironmentRevision(id: string, environmentId: string): Promise<this> {
268
- const obj = await this.db.collection(this.collection).findOne({_id: new ObjectId(id)});
338
+ public async saveEnvironmentRevision(
339
+ id: string,
340
+ environmentId: string,
341
+ ): Promise<this> {
342
+ const obj = await this.db
343
+ .collection(this.collection)
344
+ .findOne({_id: new ObjectId(id)});
269
345
 
270
346
  const revisionObj = clone(obj);
271
347
  revisionObj._id = new ObjectId();
@@ -277,8 +353,12 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
277
353
  return new this.constructor(this.nongo, revisionObj);
278
354
  }
279
355
 
280
- public async removeEnvironmentRevisions(environmentId: string): Promise<DeleteResult> {
281
- const result = await this.db.collection(this.collectionRevision).deleteMany({environment: environmentId})
356
+ public async removeEnvironmentRevisions(
357
+ environmentId: string,
358
+ ): Promise<DeleteResult> {
359
+ const result = await this.db
360
+ .collection(this.collectionRevision)
361
+ .deleteMany({environment: environmentId});
282
362
  return result;
283
363
  }
284
364
 
@@ -351,17 +431,30 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
351
431
  return this.findOne({_id: id});
352
432
  }
353
433
 
354
- public async getRevisionHistory (history: RevisionHistory[]) {
355
- const revisionIds = history.map(i => new ObjectId(i.id));
356
- return this.toArray(await this.findIterator({_id: {$in: revisionIds}}, {sort: {revision: 'descending'}}, this.collectionRevision));
434
+ public async getRevisionHistory(history: RevisionHistory[]) {
435
+ const revisionIds = history.map((i) => new ObjectId(i.id));
436
+ return this.toArray(
437
+ await this.findIterator(
438
+ {_id: {$in: revisionIds}},
439
+ {sort: {revision: 'descending'}},
440
+ this.collectionRevision,
441
+ ),
442
+ );
357
443
  }
358
444
 
359
- public async getRevisions(query: Filter<Document>, options?: FindOptions<Document>): Promise<this[]> {
360
- return this.toArray(await this.findIterator(query, options, this.collectionRevision));
445
+ public async getRevisions(
446
+ query: Filter<Document>,
447
+ options?: FindOptions<Document>,
448
+ ): Promise<this[]> {
449
+ return this.toArray(
450
+ await this.findIterator(query, options, this.collectionRevision),
451
+ );
361
452
  }
362
453
 
363
- public async getRevision (query: Filter<Document>): Promise<this> {
364
- const doc = await this.db.collection(this.collectionRevision).findOne(query);
454
+ public async getRevision(query: Filter<Document>): Promise<this> {
455
+ const doc = await this.db
456
+ .collection(this.collectionRevision)
457
+ .findOne(query);
365
458
 
366
459
  // Return null if no doc was found
367
460
  if (doc == null) {
@@ -378,7 +471,10 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
378
471
  * @param options: the query options e.g. sorting, limiting results etc.
379
472
  * @return the results of the query as an array of models.
380
473
  */
381
- public async find(query: Filter<Document> = {}, options?: FindOptions<Document>): Promise<this[]> {
474
+ public async find(
475
+ query: Filter<Document> = {},
476
+ options?: FindOptions<Document>,
477
+ ): Promise<this[]> {
382
478
  return this.toArray(await this.findIterator(query, options));
383
479
  }
384
480
 
@@ -398,7 +494,7 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
398
494
  * @param options: the query options e.g. sorting, limiting results etc.
399
495
  * @return the results of the query as an {@link AsyncIterator}.
400
496
  */
401
- public async findIterator(
497
+ public async findIterator(
402
498
  query: Filter<Document> = {},
403
499
  options?: FindOptions<Document>,
404
500
  collection = this.collection,
@@ -407,7 +503,7 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
407
503
  const cursor = this.db.collection(collection).find(query, options);
408
504
  return new CursorIterator<this>(
409
505
  cursor,
410
- // @ts-ignore
506
+ // @ts-ignore
411
507
  (obj) => new this.constructor(this.nongo, obj),
412
508
  );
413
509
  }
@@ -430,12 +526,18 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
430
526
  return new this.constructor(this.nongo, doc);
431
527
  }
432
528
 
433
- public async remove(query: Filter<Document>, options?: DeleteOptions): Promise<DeleteResult> {
529
+ public async remove(
530
+ query: Filter<Document>,
531
+ options?: DeleteOptions,
532
+ ): Promise<DeleteResult> {
434
533
  query = this.prepareQuery(query);
435
534
  return this.db.collection(this.collection).deleteMany(query, options);
436
535
  }
437
536
 
438
- public async aggregate(pipeline: Document[], options?: AggregateOptions): Promise<any[]> {
537
+ public async aggregate(
538
+ pipeline: Document[],
539
+ options?: AggregateOptions,
540
+ ): Promise<any[]> {
439
541
  return this.toArray(await this.aggregateIterator(pipeline, options));
440
542
  }
441
543
 
@@ -458,14 +560,21 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
458
560
  return this.db.collection(this.collection).distinct(field, filter);
459
561
  }
460
562
 
461
- public async update(query: Filter<Document>, updates: UpdateFilter<Document>, options?: UpdateOptions): Promise<UpdateResult<Document>> {
563
+ public async update(
564
+ query: Filter<Document>,
565
+ updates: UpdateFilter<Document>,
566
+ options?: UpdateOptions,
567
+ ): Promise<UpdateResult<Document>> {
462
568
  query = this.prepareQuery(query);
463
569
  return this.db
464
570
  .collection(this.collection)
465
571
  .updateMany(query, updates, options);
466
572
  }
467
573
 
468
- public async count(query: Document = {}, options?: CountDocumentsOptions): Promise<number> {
574
+ public async count(
575
+ query: Document = {},
576
+ options?: CountDocumentsOptions,
577
+ ): Promise<number> {
469
578
  return this.db.collection(this.collection).countDocuments(query, options);
470
579
  }
471
580
 
@@ -494,7 +603,9 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
494
603
  if (typeof _id === 'string') {
495
604
  query._id = Nongo.toObjectId(query._id);
496
605
  } else if (_id.$in) {
497
- _id.$in = _id.$in.map((el) => typeof el === 'string' ? Nongo.toObjectId(el) : el);
606
+ _id.$in = _id.$in.map((el) =>
607
+ typeof el === 'string' ? Nongo.toObjectId(el) : el,
608
+ );
498
609
  }
499
610
 
500
611
  return query;
@@ -1,12 +0,0 @@
1
- // This file was generated using nongo-driver's TsInterfaceGenerator.
2
- export default interface DummyModelChangedObj {
3
- 'name': string;
4
- 'pets': Array<{
5
- 'species'?: string;
6
- 'likes'?: {
7
- 'food'?: string[];
8
- 'drink'?: string[];
9
- };
10
- }>;
11
- '_id'?: any;
12
- }
@@ -1,40 +0,0 @@
1
- // This file was generated using nongo-driver's TsInterfaceGenerator.
2
- export default interface DummyModelObj {
3
- 'dontStripChildren'?: any;
4
- 'dontStripChildren2'?: any;
5
- 'exampleMap'?: {[key: string]: {
6
- 'mapValueField': string;
7
- }};
8
- 'created'?: Date;
9
- 'arrayOfObject'?: object[];
10
- 'name': string;
11
- 'age': number;
12
- 'pets': Array<{
13
- 'species'?: string;
14
- 'likes'?: {
15
- 'food'?: string[];
16
- 'drink'?: string[];
17
- };
18
- }>;
19
- 'job': {
20
- 'role': string;
21
- 'at'?: string;
22
- };
23
- 'location'?: {
24
- 'address1'?: string;
25
- };
26
- 'autoInit': {
27
- 'initArray': Array<{
28
- 'nestedObj': any;
29
- }>;
30
- 'initNestedObj'?: {
31
- 'hello'?: string;
32
- };
33
- 'initNestedNative'?: any;
34
- };
35
- 'notEmptyFields'?: {
36
- 'aString': string;
37
- 'anArray': string[];
38
- };
39
- '_id'?: any;
40
- }
@@ -1,195 +0,0 @@
1
- // This file was generated using nongo-driver's TsInterfaceGenerator.
2
- export default interface DummyModelWithMaxIndexObj {
3
- 'clients'?: {
4
- 'client1'?: {
5
- 'favouritePet'?: string;
6
- };
7
- 'client2'?: {
8
- 'favouritePet'?: string;
9
- };
10
- 'client3'?: {
11
- 'favouritePet'?: string;
12
- };
13
- 'client4'?: {
14
- 'favouritePet'?: string;
15
- };
16
- 'client5'?: {
17
- 'favouritePet'?: string;
18
- };
19
- 'client6'?: {
20
- 'favouritePet'?: string;
21
- };
22
- 'client7'?: {
23
- 'favouritePet'?: string;
24
- };
25
- 'client8'?: {
26
- 'favouritePet'?: string;
27
- };
28
- 'client9'?: {
29
- 'favouritePet'?: string;
30
- };
31
- 'client10'?: {
32
- 'favouritePet'?: string;
33
- };
34
- 'client11'?: {
35
- 'favouritePet'?: string;
36
- };
37
- 'client12'?: {
38
- 'favouritePet'?: string;
39
- };
40
- 'client13'?: {
41
- 'favouritePet'?: string;
42
- };
43
- 'client14'?: {
44
- 'favouritePet'?: string;
45
- };
46
- 'client15'?: {
47
- 'favouritePet'?: string;
48
- };
49
- 'client16'?: {
50
- 'favouritePet'?: string;
51
- };
52
- 'client17'?: {
53
- 'favouritePet'?: string;
54
- };
55
- 'client18'?: {
56
- 'favouritePet'?: string;
57
- };
58
- 'client19'?: {
59
- 'favouritePet'?: string;
60
- };
61
- 'client20'?: {
62
- 'favouritePet'?: string;
63
- };
64
- 'client21'?: {
65
- 'favouritePet'?: string;
66
- };
67
- 'client22'?: {
68
- 'favouritePet'?: string;
69
- };
70
- 'client23'?: {
71
- 'favouritePet'?: string;
72
- };
73
- 'client24'?: {
74
- 'favouritePet'?: string;
75
- };
76
- 'client25'?: {
77
- 'favouritePet'?: string;
78
- };
79
- 'client26'?: {
80
- 'favouritePet'?: string;
81
- };
82
- 'client27'?: {
83
- 'favouritePet'?: string;
84
- };
85
- 'client28'?: {
86
- 'favouritePet'?: string;
87
- };
88
- 'client29'?: {
89
- 'favouritePet'?: string;
90
- };
91
- 'client30'?: {
92
- 'favouritePet'?: string;
93
- };
94
- 'client31'?: {
95
- 'favouritePet'?: string;
96
- };
97
- 'client32'?: {
98
- 'favouritePet'?: string;
99
- };
100
- 'client33'?: {
101
- 'favouritePet'?: string;
102
- };
103
- 'client34'?: {
104
- 'favouritePet'?: string;
105
- };
106
- 'client35'?: {
107
- 'favouritePet'?: string;
108
- };
109
- 'client36'?: {
110
- 'favouritePet'?: string;
111
- };
112
- 'client37'?: {
113
- 'favouritePet'?: string;
114
- };
115
- 'client38'?: {
116
- 'favouritePet'?: string;
117
- };
118
- 'client39'?: {
119
- 'favouritePet'?: string;
120
- };
121
- 'client40'?: {
122
- 'favouritePet'?: string;
123
- };
124
- 'client41'?: {
125
- 'favouritePet'?: string;
126
- };
127
- 'client42'?: {
128
- 'favouritePet'?: string;
129
- };
130
- 'client43'?: {
131
- 'favouritePet'?: string;
132
- };
133
- 'client44'?: {
134
- 'favouritePet'?: string;
135
- };
136
- 'client45'?: {
137
- 'favouritePet'?: string;
138
- };
139
- 'client46'?: {
140
- 'favouritePet'?: string;
141
- };
142
- 'client47'?: {
143
- 'favouritePet'?: string;
144
- };
145
- 'client48'?: {
146
- 'favouritePet'?: string;
147
- };
148
- 'client49'?: {
149
- 'favouritePet'?: string;
150
- };
151
- 'client50'?: {
152
- 'favouritePet'?: string;
153
- };
154
- 'client51'?: {
155
- 'favouritePet'?: string;
156
- };
157
- 'client52'?: {
158
- 'favouritePet'?: string;
159
- };
160
- 'client53'?: {
161
- 'favouritePet'?: string;
162
- };
163
- 'client54'?: {
164
- 'favouritePet'?: string;
165
- };
166
- 'client55'?: {
167
- 'favouritePet'?: string;
168
- };
169
- 'client56'?: {
170
- 'favouritePet'?: string;
171
- };
172
- 'client57'?: {
173
- 'favouritePet'?: string;
174
- };
175
- 'client58'?: {
176
- 'favouritePet'?: string;
177
- };
178
- 'client59'?: {
179
- 'favouritePet'?: string;
180
- };
181
- 'client60'?: {
182
- 'favouritePet'?: string;
183
- };
184
- 'client61'?: {
185
- 'favouritePet'?: string;
186
- };
187
- 'client62'?: {
188
- 'favouritePet'?: string;
189
- };
190
- 'client63'?: {
191
- 'favouritePet'?: string;
192
- };
193
- };
194
- '_id'?: any;
195
- }
@@ -1,13 +0,0 @@
1
- // This file was generated using nongo-driver's TsInterfaceGenerator.
2
- export default interface DummyModelWithRevisionObj {
3
- 'revision'?: string;
4
- 'history'?: Array<{
5
- 'id'?: string;
6
- 'revision'?: string;
7
- 'created'?: Date;
8
- }>;
9
- 'created': Date;
10
- 'name': string;
11
- 'age'?: number;
12
- '_id'?: any;
13
- }
@@ -1,12 +0,0 @@
1
- // This file was generated using nongo-driver's TsInterfaceGenerator.
2
- export default interface TextIndexModelModifiedObj {
3
- 'name'?: string;
4
- 'module'?: string;
5
- 'description'?: {
6
- 'en'?: string;
7
- 'cy'?: string;
8
- 'es'?: string;
9
- };
10
- 'summary'?: string;
11
- '_id'?: any;
12
- }
@@ -1,11 +0,0 @@
1
- // This file was generated using nongo-driver's TsInterfaceGenerator.
2
- export default interface TextIndexModelObj {
3
- 'name'?: string;
4
- 'module'?: string;
5
- 'description'?: {
6
- 'en'?: string;
7
- 'cy'?: string;
8
- };
9
- 'summary'?: string;
10
- '_id'?: any;
11
- }
@@ -1,11 +0,0 @@
1
- // This file was generated using nongo-driver's TsInterfaceGenerator.
2
- export default interface TextIndexModelTooLongObj {
3
- 'name'?: string;
4
- 'module'?: string;
5
- 'description'?: {
6
- 'en'?: string;
7
- 'cy'?: string;
8
- };
9
- 'summary'?: string;
10
- '_id'?: any;
11
- }