nongo-driver 3.3.4 → 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,41 +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
- await this.db.collection(this.collectionEnvironmentMapping).updateOne({ originalId: revisionId }, { $set: {
166
- originalId: insertedId,
167
- environments: { [environmentId]: insertedId },
168
- }
169
- });
186
+ const path = `environments.${environmentId}`;
187
+ await this.db
188
+ .collection(this.collectionEnvironmentMapping)
189
+ .updateOne({ [path]: revisionId }, { $set: { [path]: insertedId } });
170
190
  }
171
191
  async updateIntentEntityBlockMapping(oldId, newId, environment) {
172
- if (this.collection === "Block") {
192
+ if (this.collection === 'Block') {
173
193
  // update intent and entity mappings
174
194
  const filter = { block_id: oldId, environment };
175
- const update = { $set: { 'block_id': newId } };
195
+ const update = { $set: { block_id: newId } };
176
196
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
177
197
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
178
198
  }
179
- else if (this.collection === "Intent") {
199
+ else if (this.collection === 'Intent') {
180
200
  // update intent mapping
181
201
  const filter = { intent_id: oldId, environment };
182
- const update = { $set: { 'intent_id': newId } };
202
+ const update = { $set: { intent_id: newId } };
183
203
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
184
204
  }
185
- else if (this.collection === "Entity") {
205
+ else if (this.collection === 'Entity') {
186
206
  // update entity mapping
187
207
  const filter = { entity_id: oldId, environment };
188
- const update = { $set: { 'entity_id': newId } };
208
+ const update = { $set: { entity_id: newId } };
189
209
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
190
210
  }
211
+ else if (this.collection === 'FormModel') {
212
+ return;
213
+ }
191
214
  else {
192
215
  throw Error(`${this.collection} is unsupported revision type.`);
193
216
  }
@@ -195,10 +218,14 @@ class Model {
195
218
  async revertVersion(id, revisionId) {
196
219
  const revisionObjId = new mongodb_1.ObjectId();
197
220
  // get the actuall object
198
- 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) });
199
224
  // get revision
200
- const objToRevert = await this.db.collection(this.collectionRevision).findOne({ _id: new mongodb_1.ObjectId(revisionId) });
201
- // 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
202
229
  objToRevert.revision = nongo_1.default.revisionNumber(obj.revision);
203
230
  objToRevert.history = nongo_1.default.revisionHistory(obj, revisionObjId);
204
231
  delete objToRevert.diffs;
@@ -233,7 +260,9 @@ class Model {
233
260
  return new this.constructor(this.nongo, doc);
234
261
  }
235
262
  async saveEnvironmentRevision(id, environmentId) {
236
- 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) });
237
266
  const revisionObj = (0, clone_deep_1.default)(obj);
238
267
  revisionObj._id = new mongodb_1.ObjectId();
239
268
  revisionObj.environment = environmentId;
@@ -243,7 +272,9 @@ class Model {
243
272
  return new this.constructor(this.nongo, revisionObj);
244
273
  }
245
274
  async removeEnvironmentRevisions(environmentId) {
246
- 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 });
247
278
  return result;
248
279
  }
249
280
  /*
@@ -311,14 +342,16 @@ class Model {
311
342
  return this.findOne({ _id: id });
312
343
  }
313
344
  async getRevisionHistory(history) {
314
- const revisionIds = history.map(i => new mongodb_1.ObjectId(i.id));
345
+ const revisionIds = history.map((i) => new mongodb_1.ObjectId(i.id));
315
346
  return this.toArray(await this.findIterator({ _id: { $in: revisionIds } }, { sort: { revision: 'descending' } }, this.collectionRevision));
316
347
  }
317
348
  async getRevisions(query, options) {
318
349
  return this.toArray(await this.findIterator(query, options, this.collectionRevision));
319
350
  }
320
351
  async getRevision(query) {
321
- const doc = await this.db.collection(this.collectionRevision).findOne(query);
352
+ const doc = await this.db
353
+ .collection(this.collectionRevision)
354
+ .findOne(query);
322
355
  // Return null if no doc was found
323
356
  if (doc == null) {
324
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,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,SAAS,CACnE,EAAC,UAAU,EAAE,UAAU,EAAC,EACxB,EAAE,IAAI,EACJ;gBACE,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,EAAC,CAAC,aAAa,CAAC,EAAE,UAAU,EAAC;aAC5C;SACF,CACF,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;AA7kBD,wBA6kBC"}
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.4",
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,49 +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
- await this.db.collection(this.collectionEnvironmentMapping).updateOne(
189
- {originalId: revisionId},
190
- { $set:
191
- {
192
- originalId: insertedId,
193
- environments: {[environmentId]: insertedId},
194
- }
195
- }
196
- )
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}});
197
252
  }
198
253
 
199
- private async updateIntentEntityBlockMapping(oldId: string, newId: string, environment: string): Promise<void> {
200
- 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') {
201
260
  // update intent and entity mappings
202
- const filter = {block_id: oldId, environment}
203
- const update = {$set: {'block_id': newId}}
261
+ const filter = {block_id: oldId, environment};
262
+ const update = {$set: {block_id: newId}};
204
263
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
205
264
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
206
- } else if (this.collection === "Intent") {
265
+ } else if (this.collection === 'Intent') {
207
266
  // update intent mapping
208
- const filter = {intent_id: oldId, environment}
209
- const update = {$set: {'intent_id': newId}}
267
+ const filter = {intent_id: oldId, environment};
268
+ const update = {$set: {intent_id: newId}};
210
269
  await this.db.collection('IntentBlockMapping').updateMany(filter, update);
211
- } else if (this.collection === "Entity") {
270
+ } else if (this.collection === 'Entity') {
212
271
  // update entity mapping
213
- const filter = {entity_id: oldId, environment}
214
- const update = {$set: {'entity_id': newId}}
272
+ const filter = {entity_id: oldId, environment};
273
+ const update = {$set: {entity_id: newId}};
215
274
  await this.db.collection('EntityBlockMapping').updateMany(filter, update);
216
- } else {
275
+ } else if (this.collection === 'FormModel') {
276
+ return;
277
+ } else {
217
278
  throw Error(`${this.collection} is unsupported revision type.`);
218
279
  }
219
280
  }
@@ -221,12 +282,16 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
221
282
  public async revertVersion(id: string, revisionId: string): Promise<this> {
222
283
  const revisionObjId = new ObjectId();
223
284
  // get the actuall object
224
- const obj = await this.db.collection(this.collection).findOne({_id: new ObjectId(id)});
225
-
285
+ const obj = await this.db
286
+ .collection(this.collection)
287
+ .findOne({_id: new ObjectId(id)});
288
+
226
289
  // get revision
227
- 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)});
228
293
 
229
- // update revision object
294
+ // update revision object
230
295
  objToRevert.revision = Nongo.revisionNumber(obj.revision);
231
296
  objToRevert.history = Nongo.revisionHistory(obj, revisionObjId);
232
297
  delete objToRevert.diffs;
@@ -238,7 +303,6 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
238
303
  .collection(this.collection)
239
304
  .replaceOne({_id: obj._id}, objToRevert);
240
305
 
241
-
242
306
  // make actuall object as revision object and save it to the revision collection
243
307
  obj._id = revisionObjId;
244
308
  await this.db.collection(this.collectionRevision).insertOne(obj);
@@ -248,7 +312,10 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
248
312
  return new this.constructor(this.nongo, objToRevert);
249
313
  }
250
314
 
251
- public async getRevisionObjForEnvironment(isLive: boolean, id: string): Promise<this> {
315
+ public async getRevisionObjForEnvironment(
316
+ isLive: boolean,
317
+ id: string,
318
+ ): Promise<this> {
252
319
  let doc;
253
320
  const _id = new ObjectId(id);
254
321
 
@@ -268,8 +335,13 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
268
335
  return new this.constructor(this.nongo, doc);
269
336
  }
270
337
 
271
- public async saveEnvironmentRevision(id: string, environmentId: string): Promise<this> {
272
- 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)});
273
345
 
274
346
  const revisionObj = clone(obj);
275
347
  revisionObj._id = new ObjectId();
@@ -281,8 +353,12 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
281
353
  return new this.constructor(this.nongo, revisionObj);
282
354
  }
283
355
 
284
- public async removeEnvironmentRevisions(environmentId: string): Promise<DeleteResult> {
285
- 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});
286
362
  return result;
287
363
  }
288
364
 
@@ -355,17 +431,30 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
355
431
  return this.findOne({_id: id});
356
432
  }
357
433
 
358
- public async getRevisionHistory (history: RevisionHistory[]) {
359
- const revisionIds = history.map(i => new ObjectId(i.id));
360
- 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
+ );
361
443
  }
362
444
 
363
- public async getRevisions(query: Filter<Document>, options?: FindOptions<Document>): Promise<this[]> {
364
- 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
+ );
365
452
  }
366
453
 
367
- public async getRevision (query: Filter<Document>): Promise<this> {
368
- 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);
369
458
 
370
459
  // Return null if no doc was found
371
460
  if (doc == null) {
@@ -382,7 +471,10 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
382
471
  * @param options: the query options e.g. sorting, limiting results etc.
383
472
  * @return the results of the query as an array of models.
384
473
  */
385
- 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[]> {
386
478
  return this.toArray(await this.findIterator(query, options));
387
479
  }
388
480
 
@@ -402,7 +494,7 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
402
494
  * @param options: the query options e.g. sorting, limiting results etc.
403
495
  * @return the results of the query as an {@link AsyncIterator}.
404
496
  */
405
- public async findIterator(
497
+ public async findIterator(
406
498
  query: Filter<Document> = {},
407
499
  options?: FindOptions<Document>,
408
500
  collection = this.collection,
@@ -411,7 +503,7 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
411
503
  const cursor = this.db.collection(collection).find(query, options);
412
504
  return new CursorIterator<this>(
413
505
  cursor,
414
- // @ts-ignore
506
+ // @ts-ignore
415
507
  (obj) => new this.constructor(this.nongo, obj),
416
508
  );
417
509
  }
@@ -434,12 +526,18 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
434
526
  return new this.constructor(this.nongo, doc);
435
527
  }
436
528
 
437
- public async remove(query: Filter<Document>, options?: DeleteOptions): Promise<DeleteResult> {
529
+ public async remove(
530
+ query: Filter<Document>,
531
+ options?: DeleteOptions,
532
+ ): Promise<DeleteResult> {
438
533
  query = this.prepareQuery(query);
439
534
  return this.db.collection(this.collection).deleteMany(query, options);
440
535
  }
441
536
 
442
- public async aggregate(pipeline: Document[], options?: AggregateOptions): Promise<any[]> {
537
+ public async aggregate(
538
+ pipeline: Document[],
539
+ options?: AggregateOptions,
540
+ ): Promise<any[]> {
443
541
  return this.toArray(await this.aggregateIterator(pipeline, options));
444
542
  }
445
543
 
@@ -462,14 +560,21 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
462
560
  return this.db.collection(this.collection).distinct(field, filter);
463
561
  }
464
562
 
465
- 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>> {
466
568
  query = this.prepareQuery(query);
467
569
  return this.db
468
570
  .collection(this.collection)
469
571
  .updateMany(query, updates, options);
470
572
  }
471
573
 
472
- public async count(query: Document = {}, options?: CountDocumentsOptions): Promise<number> {
574
+ public async count(
575
+ query: Document = {},
576
+ options?: CountDocumentsOptions,
577
+ ): Promise<number> {
473
578
  return this.db.collection(this.collection).countDocuments(query, options);
474
579
  }
475
580
 
@@ -498,7 +603,9 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
498
603
  if (typeof _id === 'string') {
499
604
  query._id = Nongo.toObjectId(query._id);
500
605
  } else if (_id.$in) {
501
- _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
+ );
502
609
  }
503
610
 
504
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
- }