@smartsoft001/mongo 1.1.72 → 1.1.75

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartsoft001/mongo",
3
- "version": "1.1.72",
3
+ "version": "1.1.75",
4
4
  "description": "Utils to mongo",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,26 +18,26 @@
18
18
  },
19
19
  "homepage": "https://github.com/emiljuchnikowski/smartsoft#readme",
20
20
  "dependencies": {
21
- "@angular/common": "15.1.1",
22
- "@angular/core": "15.1.1",
23
- "@angular/platform-browser-dynamic": "15.1.1",
24
- "@nestjs/common": "9.4.0",
21
+ "@angular/common": "16.1.3",
22
+ "@angular/core": "16.1.3",
23
+ "@angular/platform-browser-dynamic": "16.1.3",
24
+ "@nestjs/common": "^10.0.5",
25
25
  "flatted": "^3.2.4",
26
26
  "guid-typescript": "1.0.9",
27
27
  "lodash": "^4.17.20",
28
28
  "md5": "2.3.0",
29
- "mongodb": "^3.7.3",
29
+ "mongodb": "5.6.0",
30
30
  "reflect-metadata": "0.1.13",
31
31
  "rxjs": "7.8.1"
32
32
  },
33
33
  "peerDependencies": {
34
- "@smartsoft001/crud-shell-dtos": "1.1.72",
35
- "@smartsoft001/domain-core": "1.1.72",
36
- "@smartsoft001/models": "1.1.72",
37
- "@smartsoft001/users": "1.1.72",
38
- "@smartsoft001/utils": "1.1.72",
34
+ "@smartsoft001/crud-shell-dtos": "1.1.75",
35
+ "@smartsoft001/domain-core": "1.1.75",
36
+ "@smartsoft001/models": "1.1.75",
37
+ "@smartsoft001/users": "1.1.75",
38
+ "@smartsoft001/utils": "1.1.75",
39
39
  "util": "0.12.5",
40
- "tslib": "2.4.1"
40
+ "tslib": "2.5.3"
41
41
  },
42
42
  "main": "./src/index.js",
43
43
  "types": "./src/index.d.ts"
@@ -7,58 +7,50 @@ const common_1 = require("@nestjs/common");
7
7
  const domain_core_1 = require("@smartsoft001/domain-core");
8
8
  const mongo_config_1 = require("./mongo.config");
9
9
  const mongo_utils_1 = require("./mongo.utils");
10
- let MongoUnitOfWork = class MongoUnitOfWork extends domain_core_1.IUnitOfWork {
10
+ let MongoUnitOfWork = exports.MongoUnitOfWork = class MongoUnitOfWork extends domain_core_1.IUnitOfWork {
11
11
  constructor(config) {
12
12
  super();
13
13
  this.config = config;
14
14
  }
15
15
  scope(definition) {
16
- return new Promise((res, rej) => {
17
- mongodb_1.MongoClient.connect(this.getUrl(), (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
18
- if (err) {
19
- rej(err);
20
- return;
21
- }
22
- // Step 1: Start a Client Session
23
- const session = client.startSession();
24
- // Step 2: Optional. Define options to use for the transaction
25
- const transactionOptions = {
26
- readPreference: 'primary',
27
- readConcern: { level: 'local' },
28
- writeConcern: { w: 'majority' }
29
- };
30
- // Step 3: Use withTransaction to start a transaction, execute the callback, and commit (or abort on error)
31
- // Note: The callback for withTransaction MUST be async and/or return a Promise.
32
- let error = null;
33
- try {
34
- yield session.withTransaction(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
35
- yield definition({
36
- session,
37
- connection: client
38
- });
39
- }), transactionOptions);
40
- }
41
- catch (e) {
42
- error = e;
43
- }
44
- finally {
45
- yield session.endSession();
46
- yield client.close();
47
- }
48
- if (error)
49
- rej(error);
50
- else
51
- res();
52
- }));
16
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
+ const client = yield mongodb_1.MongoClient.connect(this.getUrl());
18
+ // Step 1: Start a Client Session
19
+ const session = client.startSession();
20
+ // Step 2: Optional. Define options to use for the transaction
21
+ const transactionOptions = {
22
+ readPreference: 'primary',
23
+ readConcern: { level: 'local' },
24
+ writeConcern: { w: 'majority' }
25
+ };
26
+ // Step 3: Use withTransaction to start a transaction, execute the callback, and commit (or abort on error)
27
+ // Note: The callback for withTransaction MUST be async and/or return a Promise.
28
+ let error = null;
29
+ try {
30
+ yield session.withTransaction(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ yield definition({
32
+ session,
33
+ connection: client
34
+ });
35
+ }), transactionOptions);
36
+ }
37
+ catch (e) {
38
+ error = e;
39
+ }
40
+ finally {
41
+ yield session.endSession();
42
+ yield client.close();
43
+ }
44
+ if (error)
45
+ throw error;
53
46
  });
54
47
  }
55
48
  getUrl() {
56
49
  return (0, mongo_utils_1.getMongoUrl)(this.config);
57
50
  }
58
51
  };
59
- MongoUnitOfWork = tslib_1.__decorate([
52
+ exports.MongoUnitOfWork = MongoUnitOfWork = tslib_1.__decorate([
60
53
  (0, common_1.Injectable)(),
61
54
  tslib_1.__metadata("design:paramtypes", [mongo_config_1.MongoConfig])
62
55
  ], MongoUnitOfWork);
63
- exports.MongoUnitOfWork = MongoUnitOfWork;
64
56
  //# sourceMappingURL=mongo.unitofwork.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongo.unitofwork.js","sourceRoot":"","sources":["../../../../../../libs/shared/mongo/src/lib/mongo.unitofwork.ts"],"names":[],"mappings":";;;;AAAA,qCAAuE;AACvE,2CAA0C;AAE1C,2DAAoE;AAEpE,iDAA2C;AAC3C,+CAA0C;AAOnC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,yBAAW;IAC5C,YAAoB,MAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,WAAM,GAAN,MAAM,CAAa;IAEvC,CAAC;IAED,KAAK,CAAC,UAAwD;QAC1D,OAAO,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAClC,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAO,GAAG,EAAE,MAAM,EAAE,EAAE;gBACrD,IAAI,GAAG,EAAE;oBACL,GAAG,CAAC,GAAG,CAAC,CAAC;oBACT,OAAO;iBACV;gBAED,iCAAiC;gBACjC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;gBAEtC,8DAA8D;gBAC9D,MAAM,kBAAkB,GAAuB;oBAC3C,cAAc,EAAE,SAAS;oBACzB,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;oBAC/B,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE;iBAClC,CAAC;gBAEF,2GAA2G;gBAC3G,gFAAgF;gBAEhF,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI;oBACA,MAAM,OAAO,CAAC,eAAe,CAAC,GAAS,EAAE;wBACrC,MAAM,UAAU,CAAC;4BACb,OAAO;4BACP,UAAU,EAAE,MAAM;yBACA,CAAC,CAAC;oBAC5B,CAAC,CAAA,EAAE,kBAAkB,CAAC,CAAC;iBAC1B;gBAAC,OAAO,CAAC,EAAE;oBACR,KAAK,GAAG,CAAC,CAAC;iBACb;wBAAU;oBACP,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC3B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;iBACxB;gBAED,IAAI,KAAK;oBAAE,GAAG,CAAE,KAAK,CAAC,CAAC;;oBAClB,GAAG,EAAE,CAAC;YACf,CAAC,CAAA,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM;QACV,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACJ,CAAA;AAlDY,eAAe;IAD3B,IAAA,mBAAU,GAAE;6CAEmB,0BAAW;GAD9B,eAAe,CAkD3B;AAlDY,0CAAe"}
1
+ {"version":3,"file":"mongo.unitofwork.js","sourceRoot":"","sources":["../../../../../../libs/shared/mongo/src/lib/mongo.unitofwork.ts"],"names":[],"mappings":";;;;AAAA,qCAAuE;AACvE,2CAA0C;AAE1C,2DAAoE;AAEpE,iDAA2C;AAC3C,+CAA0C;AAOnC,IAAM,eAAe,6BAArB,MAAM,eAAgB,SAAQ,yBAAW;IAC5C,YAAoB,MAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,WAAM,GAAN,MAAM,CAAa;IAEvC,CAAC;IAEK,KAAK,CAAC,UAAwD;;YAChE,MAAM,MAAM,GAAG,MAAO,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzD,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAEtC,8DAA8D;YAC9D,MAAM,kBAAkB,GAAuB;gBAC3C,cAAc,EAAE,SAAS;gBACzB,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC/B,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE;aAClC,CAAC;YAEF,2GAA2G;YAC3G,gFAAgF;YAEhF,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI;gBACA,MAAM,OAAO,CAAC,eAAe,CAAC,GAAS,EAAE;oBACrC,MAAM,UAAU,CAAC;wBACb,OAAO;wBACP,UAAU,EAAE,MAAM;qBACA,CAAC,CAAC;gBAC5B,CAAC,CAAA,EAAE,kBAAkB,CAAC,CAAC;aAC1B;YAAC,OAAO,CAAC,EAAE;gBACR,KAAK,GAAG,CAAC,CAAC;aACb;oBAAU;gBACP,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;aACxB;YAED,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QAC3B,CAAC;KAAA;IAEO,MAAM;QACV,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACJ,CAAA;0BA1CY,eAAe;IAD3B,IAAA,mBAAU,GAAE;6CAEmB,0BAAW;GAD9B,eAAe,CA0C3B"}
@@ -8,18 +8,15 @@ const mongo = require("mongodb");
8
8
  const domain_core_1 = require("@smartsoft001/domain-core");
9
9
  const mongo_config_1 = require("../mongo.config");
10
10
  const mongo_utils_1 = require("../mongo.utils");
11
- let MongoAttachmentRepository = class MongoAttachmentRepository extends domain_core_1.IAttachmentRepository {
11
+ let MongoAttachmentRepository = exports.MongoAttachmentRepository = class MongoAttachmentRepository extends domain_core_1.IAttachmentRepository {
12
12
  constructor(config) {
13
13
  super();
14
14
  this.config = config;
15
15
  }
16
16
  upload(data, options) {
17
- return new Promise((res, rej) => {
18
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: true }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
19
- if (err) {
20
- rej(err);
21
- return;
22
- }
17
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
+ const client = yield mongodb_1.MongoClient.connect(this.getUrl());
19
+ return yield new Promise((res, rej) => {
23
20
  const db = client.db(this.config.database);
24
21
  const bucket = new mongo.GridFSBucket(db, {
25
22
  bucketName: this.config.collection
@@ -36,83 +33,56 @@ let MongoAttachmentRepository = class MongoAttachmentRepository extends domain_c
36
33
  writeStream.on("finish", () => {
37
34
  res();
38
35
  });
39
- }));
36
+ });
40
37
  });
41
38
  }
42
39
  getInfo(id) {
43
- return new Promise((res, rej) => {
44
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: true }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
45
- if (err) {
46
- rej(err);
47
- return;
48
- }
49
- const db = client.db(this.config.database);
50
- const bucket = new mongo.GridFSBucket(db, {
51
- bucketName: this.config.collection
52
- });
53
- bucket.find({
54
- _id: id
55
- }).toArray((errDelete, items) => {
56
- if (errDelete) {
57
- rej(errDelete);
58
- return;
59
- }
60
- client.close();
61
- if (!items[0])
62
- res(items[0]);
63
- else
64
- res({
65
- fileName: items[0].filename,
66
- contentType: items[0].contentType,
67
- length: items[0].length
68
- });
69
- });
70
- }));
40
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
41
+ const client = yield mongodb_1.MongoClient.connect(this.getUrl());
42
+ const db = client.db(this.config.database);
43
+ const bucket = new mongo.GridFSBucket(db, {
44
+ bucketName: this.config.collection
45
+ });
46
+ const items = yield bucket.find({
47
+ _id: id
48
+ }).toArray();
49
+ yield client;
50
+ if (!items[0])
51
+ return null;
52
+ return {
53
+ fileName: items[0].filename,
54
+ contentType: items[0].contentType,
55
+ length: items[0].length
56
+ };
71
57
  });
72
58
  }
73
59
  getStream(id, options) {
74
- return new Promise((res, rej) => {
75
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: true }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
76
- if (err) {
77
- rej(err);
78
- return;
79
- }
80
- const db = client.db(this.config.database);
81
- const bucket = new mongo.GridFSBucket(db, {
82
- bucketName: this.config.collection
83
- });
84
- res(bucket.openDownloadStream(id, options));
85
- }));
60
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
+ const client = yield mongodb_1.MongoClient.connect(this.getUrl());
62
+ const db = client.db(this.config.database);
63
+ const bucket = new mongo.GridFSBucket(db, {
64
+ bucketName: this.config.collection
65
+ });
66
+ return bucket.openDownloadStream(id, options);
86
67
  });
87
68
  }
88
69
  delete(id) {
89
- return new Promise((res, rej) => {
90
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: true }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
91
- if (err) {
92
- rej(err);
93
- return;
94
- }
95
- const db = client.db(this.config.database);
96
- const bucket = new mongo.GridFSBucket(db, {
97
- bucketName: this.config.collection
98
- });
99
- bucket.delete(id, (err2) => {
100
- if (err2)
101
- rej(err2);
102
- else
103
- res();
104
- client.close();
105
- });
106
- }));
70
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
+ const client = yield mongodb_1.MongoClient.connect(this.getUrl());
72
+ const db = client.db(this.config.database);
73
+ const bucket = new mongo.GridFSBucket(db, {
74
+ bucketName: this.config.collection
75
+ });
76
+ yield bucket.delete(id);
77
+ yield client.close();
107
78
  });
108
79
  }
109
80
  getUrl() {
110
81
  return (0, mongo_utils_1.getMongoUrl)(this.config);
111
82
  }
112
83
  };
113
- MongoAttachmentRepository = tslib_1.__decorate([
84
+ exports.MongoAttachmentRepository = MongoAttachmentRepository = tslib_1.__decorate([
114
85
  (0, common_1.Injectable)(),
115
86
  tslib_1.__metadata("design:paramtypes", [mongo_config_1.MongoConfig])
116
87
  ], MongoAttachmentRepository);
117
- exports.MongoAttachmentRepository = MongoAttachmentRepository;
118
88
  //# sourceMappingURL=attachment.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/attachment.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/attachment.repository.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { Db } from "mongodb";
2
- import { Observable } from "rxjs";
3
- import { IEntity, IItemRepository, IItemRepositoryOptions, ISpecification } from "@smartsoft001/domain-core";
4
- import { IUser } from "@smartsoft001/users";
5
- import { ItemChangedData } from "@smartsoft001/crud-shell-dtos";
6
- import { MongoConfig } from "../mongo.config";
1
+ import { Collection, Db } from 'mongodb';
2
+ import { Observable } from 'rxjs';
3
+ import { IEntity, IItemRepository, IItemRepositoryOptions, ISpecification } from '@smartsoft001/domain-core';
4
+ import { IUser } from '@smartsoft001/users';
5
+ import { ItemChangedData } from '@smartsoft001/crud-shell-dtos';
6
+ import { MongoConfig } from '../mongo.config';
7
7
  export declare class MongoItemRepository<T extends IEntity<string>> extends IItemRepository<T> {
8
8
  protected config: MongoConfig;
9
9
  readonly useUnifiedTopology = false;
@@ -44,8 +44,9 @@ export declare class MongoItemRepository<T extends IEntity<string>> extends IIte
44
44
  };
45
45
  protected getModelToResult(item: T): T;
46
46
  protected getUrl(): string;
47
- protected logChange(type: any, item: any, options: any, user: any, error: any): void;
47
+ protected logChange(type: any, item: any, options: any, user: any, error: any): Promise<void>;
48
48
  protected generateSearch(criteria: any): void;
49
49
  protected convertIdInCriteria(criteria: any): void;
50
50
  protected convertRegex(val: string): string;
51
+ protected collectionContext<T>(callback: (collection: Collection) => Promise<any>, repoOptions?: IItemRepositoryOptions): Promise<any>;
51
52
  }
@@ -11,240 +11,105 @@ const utils_1 = require("@smartsoft001/utils");
11
11
  const models_1 = require("@smartsoft001/models");
12
12
  const mongo_config_1 = require("../mongo.config");
13
13
  const mongo_utils_1 = require("../mongo.utils");
14
- let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemRepository {
14
+ let MongoItemRepository = exports.MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemRepository {
15
15
  constructor(config) {
16
16
  super();
17
17
  this.config = config;
18
18
  this.useUnifiedTopology = false;
19
19
  }
20
20
  create(item, user, repoOptions) {
21
- if (repoOptions && repoOptions.transaction) {
22
- return new Promise((res, rej) => {
23
- const db = repoOptions.transaction.connection.db(this.config.database);
24
- db.collection(this.config.collection).insertOne(this.getModelToCreate(item, user), { session: repoOptions.transaction.session }, (errInsert) => {
25
- this.logChange("create", item, repoOptions, user, errInsert);
26
- if (errInsert) {
27
- rej(errInsert);
28
- return;
29
- }
30
- res();
31
- });
32
- });
33
- }
34
- return new Promise((res, rej) => {
35
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
36
- if (err) {
37
- rej(err);
38
- return;
21
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ try {
24
+ yield collection.insertOne(this.getModelToCreate(item, user), {
25
+ session: repoOptions.transaction.session,
26
+ });
27
+ this.logChange('create', item, repoOptions, user, null);
39
28
  }
40
- const db = client.db(this.config.database);
41
- db.collection(this.config.collection).insertOne(this.getModelToCreate(item, user), (errInsert) => {
42
- this.logChange("create", item, repoOptions, user, errInsert);
43
- if (errInsert) {
44
- rej(errInsert);
45
- return;
46
- }
47
- client.close();
48
- res();
49
- });
50
- });
29
+ catch (errInsert) {
30
+ this.logChange('create', item, repoOptions, user, errInsert);
31
+ throw errInsert;
32
+ }
33
+ }));
51
34
  });
52
35
  }
53
36
  clear(user, repoOptions) {
54
- if (repoOptions && repoOptions.transaction) {
55
- return new Promise((res, rej) => {
56
- const db = repoOptions.transaction.connection.db(this.config.database);
57
- db.collection(this.config.collection).deleteMany({}, { session: repoOptions.transaction.session }, (errClear) => {
58
- this.logChange("clear", null, repoOptions, user, errClear);
59
- if (errClear) {
60
- rej(errClear);
61
- return;
62
- }
63
- res();
64
- });
65
- });
66
- }
67
- return new Promise((res, rej) => {
68
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
69
- if (err) {
70
- rej(err);
71
- return;
37
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
+ yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ try {
40
+ yield collection.deleteMany({}, { session: repoOptions.transaction.session });
41
+ this.logChange('clear', null, repoOptions, user, null);
72
42
  }
73
- const db = client.db(this.config.database);
74
- db.collection(this.config.collection).deleteMany({}, (err2) => {
75
- this.logChange("clear", null, repoOptions, user, err2);
76
- if (err2) {
77
- rej(err2);
78
- return;
79
- }
80
- client.close();
81
- res();
82
- });
83
- });
43
+ catch (errClear) {
44
+ this.logChange('clear', null, repoOptions, user, errClear);
45
+ throw errClear;
46
+ }
47
+ }));
84
48
  });
85
49
  }
86
50
  createMany(list, user, repoOptions) {
87
- if (repoOptions && repoOptions.transaction) {
88
- return new Promise((res, rej) => {
89
- const db = repoOptions.transaction.connection.db(this.config.database);
90
- db.collection(this.config.collection).insertMany(list.map((item) => this.getModelToCreate(item, user)), { session: repoOptions.transaction.session }, (errInsert) => {
91
- this.logChange("createMany", null, repoOptions, user, errInsert);
92
- if (errInsert) {
93
- rej(errInsert);
94
- return;
95
- }
96
- res();
97
- });
98
- });
99
- }
100
- return new Promise((res, rej) => {
101
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
102
- if (err) {
103
- rej(err);
104
- return;
51
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
52
+ yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
53
+ try {
54
+ yield collection.insertMany(list.map((item) => this.getModelToCreate(item, user)), { session: repoOptions.transaction.session });
55
+ this.logChange('createMany', null, repoOptions, user, null);
105
56
  }
106
- const db = client.db(this.config.database);
107
- db.collection(this.config.collection).insertMany(list.map((item) => this.getModelToCreate(item, user)), (errInsert) => {
108
- this.logChange("createMany", null, repoOptions, user, errInsert);
109
- if (errInsert) {
110
- rej(errInsert);
111
- return;
112
- }
113
- client.close();
114
- res();
115
- });
116
- });
57
+ catch (errInsert) {
58
+ this.logChange('createMany', null, repoOptions, user, errInsert);
59
+ throw errInsert;
60
+ }
61
+ }));
117
62
  });
118
63
  }
119
64
  update(item, user, repoOptions) {
120
65
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
121
- if (repoOptions && repoOptions.transaction) {
122
- return new Promise((res, rej) => {
123
- (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
124
- const db = repoOptions.transaction.connection.db(this.config.database);
125
- const collection = db.collection(this.config.collection);
126
- const info = yield this.getInfo(item.id, collection);
127
- db.collection(this.config.collection).replaceOne({ _id: item.id }, this.getModelToUpdate(item, user, info), { session: repoOptions.transaction.session }, (errInsert) => {
128
- this.logChange("update", item, repoOptions, user, errInsert);
129
- if (errInsert) {
130
- rej(errInsert);
131
- return;
132
- }
133
- res();
134
- });
135
- }))();
136
- });
137
- }
138
- return new Promise((res, rej) => {
139
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
140
- if (err) {
141
- rej(err);
142
- return;
143
- }
144
- const db = client.db(this.config.database);
145
- const collection = db.collection(this.config.collection);
66
+ yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
67
+ try {
146
68
  const info = yield this.getInfo(item.id, collection);
147
- db.collection(this.config.collection).replaceOne({ _id: item.id }, this.getModelToUpdate(item, user, info), (errUpdate) => {
148
- this.logChange("update", item, repoOptions, user, errUpdate);
149
- if (errUpdate) {
150
- rej(errUpdate);
151
- return;
152
- }
153
- client.close();
154
- res();
155
- });
156
- }));
157
- });
69
+ yield collection.replaceOne({ _id: item.id }, this.getModelToUpdate(item, user, info), { session: repoOptions.transaction.session });
70
+ this.logChange('update', item, repoOptions, user, null);
71
+ }
72
+ catch (errInsert) {
73
+ this.logChange('update', item, repoOptions, user, errInsert);
74
+ throw errInsert;
75
+ }
76
+ }));
158
77
  });
159
78
  }
160
79
  updatePartial(item, user, repoOptions) {
161
- if (repoOptions && repoOptions.transaction) {
162
- return new Promise((res, rej) => {
163
- (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
164
- const db = repoOptions.transaction.connection.db(this.config.database);
165
- const collection = db.collection(this.config.collection);
80
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
81
+ yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
82
+ try {
166
83
  const info = yield this.getInfo(item.id, collection);
167
- db.collection(this.config.collection).updateOne({ _id: item.id }, {
84
+ yield collection.updateOne({ _id: item.id }, {
168
85
  $set: this.getModelToUpdate(item, user, info),
169
- }, { session: repoOptions.transaction.session }, (errUpdate) => {
170
- this.logChange("updatePartial", item, repoOptions, user, errUpdate);
171
- if (errUpdate) {
172
- rej(errUpdate);
173
- return;
174
- }
175
- res();
176
- });
177
- }))();
178
- });
179
- }
180
- return new Promise((res, rej) => {
181
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
182
- if (err) {
183
- rej(err);
184
- return;
86
+ }, { session: repoOptions.transaction.session });
87
+ this.logChange('updatePartial', item, repoOptions, user, null);
88
+ }
89
+ catch (errUpdate) {
90
+ this.logChange('updatePartial', item, repoOptions, user, errUpdate);
91
+ throw errUpdate;
185
92
  }
186
- const db = client.db(this.config.database);
187
- const collection = db.collection(this.config.collection);
188
- const info = yield this.getInfo(item.id, collection);
189
- db.collection(this.config.collection).updateOne({ _id: item.id }, {
190
- $set: this.getModelToUpdate(item, user, info),
191
- }, (errUpdate) => {
192
- this.logChange("updatePartial", item, repoOptions, user, errUpdate);
193
- if (errUpdate) {
194
- rej(errUpdate);
195
- return;
196
- }
197
- client.close();
198
- res();
199
- });
200
93
  }));
201
94
  });
202
95
  }
203
96
  updatePartialManyByCriteria(criteria, set, user, repoOptions) {
204
- if (repoOptions && repoOptions.transaction) {
205
- return new Promise((res, rej) => {
206
- (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
207
- const db = repoOptions.transaction.connection.db(this.config.database);
97
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
+ yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
99
+ try {
208
100
  this.convertIdInCriteria(criteria);
209
- db.collection(this.config.collection).updateMany(criteria, {
210
- $set: Object.assign(Object.assign({}, set), { "__info.update": {
101
+ yield collection.updateMany(criteria, {
102
+ $set: Object.assign(Object.assign({}, set), { '__info.update': {
211
103
  username: user === null || user === void 0 ? void 0 : user.username,
212
104
  date: new Date(),
213
105
  } }),
214
- }, { session: repoOptions.transaction.session }, (errUpdate) => {
215
- this.logChange("updatePartialManyByCriteria", Object.assign(Object.assign({}, criteria), { set }), repoOptions, user, errUpdate);
216
- if (errUpdate) {
217
- rej(errUpdate);
218
- return;
219
- }
220
- res();
221
- });
222
- }))();
223
- });
224
- }
225
- return new Promise((res, rej) => {
226
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
227
- if (err) {
228
- rej(err);
229
- return;
106
+ }, { session: repoOptions.transaction.session });
107
+ this.logChange('updatePartialManyByCriteria', Object.assign(Object.assign({}, criteria), { set }), repoOptions, user, null);
108
+ }
109
+ catch (errUpdate) {
110
+ this.logChange('updatePartialManyByCriteria', Object.assign(Object.assign({}, criteria), { set }), repoOptions, user, errUpdate);
111
+ throw errUpdate;
230
112
  }
231
- const db = client.db(this.config.database);
232
- const collection = db.collection(this.config.collection);
233
- this.convertIdInCriteria(criteria);
234
- db.collection(this.config.collection).updateMany(criteria, {
235
- $set: Object.assign(Object.assign({}, set), { "__info.update": {
236
- username: user === null || user === void 0 ? void 0 : user.username,
237
- date: new Date(),
238
- } }),
239
- }, (errUpdate) => {
240
- this.logChange("updatePartialManyByCriteria", Object.assign(Object.assign({}, criteria), { set }), repoOptions, user, errUpdate);
241
- if (errUpdate) {
242
- rej(errUpdate);
243
- return;
244
- }
245
- client.close();
246
- res();
247
- });
248
113
  }));
249
114
  });
250
115
  }
@@ -252,88 +117,39 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
252
117
  return this.updatePartialManyByCriteria(spec.criteria, set, user, repoOptions);
253
118
  }
254
119
  delete(id, user, repoOptions) {
255
- if (repoOptions && repoOptions.transaction) {
256
- return new Promise((res, rej) => {
257
- (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
258
- const db = repoOptions.transaction.connection.db(this.config.database);
259
- db.collection(this.config.collection).deleteOne({ _id: id }, { session: repoOptions.transaction.session }, (errDelete) => {
260
- this.logChange("delete", {
261
- id,
262
- }, repoOptions, user, errDelete);
263
- if (errDelete) {
264
- rej(errDelete);
265
- return;
266
- }
267
- res();
268
- });
269
- }))();
270
- });
271
- }
272
- return new Promise((res, rej) => {
273
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
274
- if (err) {
275
- rej(err);
276
- return;
120
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
121
+ yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
122
+ try {
123
+ yield collection.deleteOne({ _id: id }, { session: repoOptions.transaction.session });
124
+ this.logChange('delete', {
125
+ id,
126
+ }, repoOptions, user, null);
277
127
  }
278
- const db = client.db(this.config.database);
279
- db.collection(this.config.collection).deleteOne({ _id: id }, (errDelete) => {
280
- this.logChange("delete", {
128
+ catch (errDelete) {
129
+ this.logChange('delete', {
281
130
  id,
282
131
  }, repoOptions, user, errDelete);
283
- if (errDelete) {
284
- rej(errDelete);
285
- return;
286
- }
287
- client.close();
288
- res();
289
- });
290
- });
132
+ throw errDelete;
133
+ }
134
+ }));
291
135
  });
292
136
  }
293
137
  getById(id, repoOptions) {
294
- return new Promise((res, rej) => {
295
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
296
- if (err) {
297
- rej(err);
298
- return;
299
- }
300
- const db = client.db(this.config.database);
301
- if (repoOptions && repoOptions.transaction) {
302
- db.collection(this.config.collection).findOne({ _id: id }, {
303
- session: repoOptions.transaction.session,
304
- }, (errDelete, item) => {
305
- if (errDelete) {
306
- rej(errDelete);
307
- return;
308
- }
309
- client.close();
310
- res(this.getModelToResult(item));
311
- });
312
- }
313
- db.collection(this.config.collection).findOne({ _id: id }, (errDelete, item) => {
314
- if (errDelete) {
315
- rej(errDelete);
316
- return;
317
- }
318
- client.close();
319
- res(this.getModelToResult(item));
138
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
139
+ return yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
140
+ const item = yield collection.findOne({ _id: id }, {
141
+ session: repoOptions.transaction.session,
320
142
  });
321
- });
143
+ return this.getModelToResult(item);
144
+ }));
322
145
  });
323
146
  }
324
147
  getByCriteria(criteria, options = {}) {
325
- return new Promise((res, rej) => {
326
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
327
- if (err) {
328
- rej(err);
329
- return;
330
- }
148
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
149
+ return yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
331
150
  this.convertIdInCriteria(criteria);
332
151
  this.generateSearch(criteria);
333
- const db = client.db(this.config.database);
334
- const collection = db.collection(this.config.collection);
335
152
  const totalCount = yield this.getCount(criteria, collection);
336
- let cursor = null;
337
153
  const aggregate = [];
338
154
  if (criteria) {
339
155
  aggregate.push({ $match: criteria });
@@ -359,22 +175,16 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
359
175
  if (options === null || options === void 0 ? void 0 : options.group) {
360
176
  aggregate.push({ $group: options.group });
361
177
  }
362
- collection
178
+ const list = yield collection
363
179
  .aggregate(aggregate, {
364
180
  allowDiskUse: options === null || options === void 0 ? void 0 : options.allowDiskUse,
365
181
  session: options === null || options === void 0 ? void 0 : options.session,
366
182
  })
367
- .toArray((errDelete, list) => {
368
- if (errDelete) {
369
- rej(errDelete);
370
- return;
371
- }
372
- client.close();
373
- res({
374
- data: list.map((item) => this.getModelToResult(item)),
375
- totalCount,
376
- });
377
- });
183
+ .toArray();
184
+ return {
185
+ data: list.map((item) => this.getModelToResult(item)),
186
+ totalCount,
187
+ };
378
188
  }));
379
189
  });
380
190
  }
@@ -382,19 +192,11 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
382
192
  return this.getByCriteria(spec.criteria, options);
383
193
  }
384
194
  countByCriteria(criteria) {
385
- return new Promise((res, rej) => {
386
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
387
- if (err) {
388
- rej(err);
389
- return;
390
- }
195
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
196
+ return yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
391
197
  this.convertIdInCriteria(criteria);
392
198
  this.generateSearch(criteria);
393
- const db = client.db(this.config.database);
394
- const collection = db.collection(this.config.collection);
395
- const result = yield this.getCount(criteria, collection);
396
- yield client.close();
397
- res(result);
199
+ return yield this.getCount(criteria, collection);
398
200
  }));
399
201
  });
400
202
  }
@@ -405,69 +207,59 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
405
207
  let stream;
406
208
  let client;
407
209
  return new rxjs_1.Observable((observer) => {
408
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, c) => tslib_1.__awaiter(this, void 0, void 0, function* () {
409
- client = c;
410
- if (err) {
411
- observer.error(err);
412
- return;
413
- }
414
- const db = client.db(this.config.database);
415
- const collection = db.collection(this.config.collection);
416
- const pipeline = criteria.id
417
- ? [
418
- {
419
- $match: {
420
- "documentKey._id": criteria.id,
210
+ (() => tslib_1.__awaiter(this, void 0, void 0, function* () {
211
+ try {
212
+ client = yield mongodb_1.MongoClient.connect(this.getUrl());
213
+ const db = client.db(this.config.database);
214
+ const collection = db.collection(this.config.collection);
215
+ const pipeline = criteria.id
216
+ ? [
217
+ {
218
+ $match: {
219
+ 'documentKey._id': criteria.id,
220
+ },
421
221
  },
422
- },
423
- ]
424
- : [];
425
- stream = collection.watch(pipeline).on("change", (result) => {
426
- observer.next({
427
- id: result["documentKey"]["_id"],
428
- type: this.mapChangeType(result.operationType),
429
- data: result.operationType === "update"
430
- ? result["updateDescription"]
431
- : this.getModelToResult(result["fullDocument"]),
222
+ ]
223
+ : [];
224
+ stream = collection.watch(pipeline).on('change', (result) => {
225
+ observer.next({
226
+ id: result['documentKey']['_id'],
227
+ type: this.mapChangeType(result.operationType),
228
+ data: result.operationType === 'update'
229
+ ? result['updateDescription']
230
+ : this.getModelToResult(result['fullDocument']),
231
+ });
432
232
  });
433
- });
434
- }));
233
+ }
234
+ catch (err) {
235
+ observer.error(err);
236
+ }
237
+ }))();
435
238
  }).pipe((0, operators_1.finalize)(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
436
- console.log("Stop watch");
239
+ console.log('Stop watch');
437
240
  yield stream.close();
438
241
  yield client.close();
439
242
  })), (0, operators_1.share)());
440
243
  }
441
244
  getContext(handler) {
442
- return new Promise((res, rej) => {
443
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
444
- if (err) {
445
- rej(err);
446
- return;
447
- }
448
- const db = client.db(this.config.database);
449
- try {
450
- const result = yield handler(db);
451
- yield client.close();
452
- res(result);
453
- }
454
- catch (e) {
455
- yield client.close();
456
- rej(e);
457
- }
458
- }));
245
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
246
+ const client = yield mongodb_1.MongoClient.connect(this.getUrl());
247
+ const db = client.db(this.config.database);
248
+ try {
249
+ const result = yield handler(db);
250
+ yield client.close();
251
+ return result;
252
+ }
253
+ catch (e) {
254
+ yield client.close();
255
+ throw e;
256
+ }
459
257
  });
460
258
  }
461
259
  getCount(criteria, collection) {
462
- return new Promise((res, rej) => {
260
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
463
261
  this.convertIdInCriteria(criteria);
464
- collection.countDocuments(criteria, (err, count) => {
465
- if (err) {
466
- rej(err);
467
- return;
468
- }
469
- res(count);
470
- });
262
+ return yield collection.countDocuments(criteria);
471
263
  });
472
264
  }
473
265
  getInfo(id, collection) {
@@ -482,15 +274,15 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
482
274
  if (!array || !array[0]) {
483
275
  res(null);
484
276
  }
485
- res(array[0]["__info"]);
277
+ res(array[0]['__info']);
486
278
  });
487
279
  });
488
280
  }
489
281
  getModelToCreate(item, user) {
490
282
  const result = utils_1.ObjectService.removeTypes(item);
491
- result["_id"] = result.id;
283
+ result['_id'] = result.id;
492
284
  delete result.id;
493
- result["__info"] = {
285
+ result['__info'] = {
494
286
  create: {
495
287
  username: user ? user.username : null,
496
288
  date: new Date(),
@@ -500,17 +292,17 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
500
292
  }
501
293
  mapChangeType(dbType) {
502
294
  const map = {
503
- insert: "create",
504
- update: "update",
505
- delete: "delete",
295
+ insert: 'create',
296
+ update: 'update',
297
+ delete: 'delete',
506
298
  };
507
299
  return map[dbType];
508
300
  }
509
301
  getModelToUpdate(item, user, info) {
510
302
  const result = utils_1.ObjectService.removeTypes(item);
511
- result["_id"] = result.id;
303
+ result['_id'] = result.id;
512
304
  delete result.id;
513
- result["__info"] = Object.assign(Object.assign({}, info), { update: {
305
+ result['__info'] = Object.assign(Object.assign({}, info), { update: {
514
306
  username: user ? user.username : null,
515
307
  date: new Date(),
516
308
  } });
@@ -520,40 +312,39 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
520
312
  if (!item)
521
313
  return null;
522
314
  const result = utils_1.ObjectService.removeTypes(item);
523
- result["id"] = result._id;
315
+ result['id'] = result._id;
524
316
  delete result._id;
525
- delete result["__info"];
317
+ delete result['__info'];
526
318
  return result;
527
319
  }
528
320
  getUrl() {
529
321
  return (0, mongo_utils_1.getMongoUrl)(this.config);
530
322
  }
531
323
  logChange(type, item, options, user, error) {
532
- mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
533
- if (err) {
534
- console.warn(err);
535
- return;
536
- }
324
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
325
+ const client = yield mongodb_1.MongoClient.connect(this.getUrl());
537
326
  const db = client.db(this.config.database);
538
- db.collection("changes").insertOne({
539
- type,
540
- collection: this.config.collection,
541
- item,
542
- options,
543
- user,
544
- error,
545
- date: new Date(),
546
- }, (errInsert) => {
547
- client.close();
548
- if (errInsert) {
549
- console.warn(err);
550
- return;
551
- }
552
- });
327
+ try {
328
+ yield db.collection('changes').insertOne({
329
+ type,
330
+ collection: this.config.collection,
331
+ item,
332
+ options,
333
+ user,
334
+ error,
335
+ date: new Date(),
336
+ });
337
+ }
338
+ catch (e) {
339
+ console.warn(e);
340
+ }
341
+ finally {
342
+ yield client.close();
343
+ }
553
344
  });
554
345
  }
555
346
  generateSearch(criteria) {
556
- if (!criteria["$search"])
347
+ if (!criteria['$search'])
557
348
  return;
558
349
  if (this.config.type) {
559
350
  const modelFields = (0, models_1.getModelFieldsWithOptions)(new this.config.type()).filter((i) => i.options.search);
@@ -562,43 +353,60 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
562
353
  modelFields.forEach((val) => {
563
354
  const res = {};
564
355
  res[val.key] = {
565
- $regex: this.convertRegex(criteria["$search"]),
566
- $options: "i",
356
+ $regex: this.convertRegex(criteria['$search']),
357
+ $options: 'i',
567
358
  };
568
359
  searchArray.push(res);
569
360
  });
570
- if (!criteria["$or"])
571
- criteria["$or"] = searchArray;
572
- else if (criteria["$or"] && !criteria["$and"]) {
573
- criteria["$and"] = [{ $or: criteria["$or"] }, { $or: searchArray }];
574
- delete criteria["$or"];
361
+ if (!criteria['$or'])
362
+ criteria['$or'] = searchArray;
363
+ else if (criteria['$or'] && !criteria['$and']) {
364
+ criteria['$and'] = [{ $or: criteria['$or'] }, { $or: searchArray }];
365
+ delete criteria['$or'];
575
366
  }
576
- else if (criteria["$and"]) {
577
- criteria["$and"] = [...criteria["$and"], { $or: searchArray }];
367
+ else if (criteria['$and']) {
368
+ criteria['$and'] = [...criteria['$and'], { $or: searchArray }];
578
369
  }
579
- delete criteria["$search"];
370
+ delete criteria['$search'];
580
371
  return;
581
372
  }
582
373
  }
583
374
  const customCriteria = {
584
- $text: { $search: ' "' + this.convertRegex(criteria["$search"]) + '" ' },
375
+ $text: { $search: ' "' + this.convertRegex(criteria['$search']) + '" ' },
585
376
  };
586
- delete criteria["$search"];
377
+ delete criteria['$search'];
587
378
  criteria = Object.assign(Object.assign({}, criteria), customCriteria);
588
379
  }
589
380
  convertIdInCriteria(criteria) {
590
- if (criteria["id"]) {
591
- criteria["_id"] = criteria["id"];
592
- delete criteria["id"];
381
+ if (criteria['id']) {
382
+ criteria['_id'] = criteria['id'];
383
+ delete criteria['id'];
593
384
  }
594
385
  }
595
386
  convertRegex(val) {
596
- return val.toString().replace(/\*/g, "[*]");
387
+ return val.toString().replace(/\*/g, '[*]');
388
+ }
389
+ collectionContext(callback, repoOptions) {
390
+ var _a;
391
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
392
+ const client = ((_a = repoOptions === null || repoOptions === void 0 ? void 0 : repoOptions.transaction) === null || _a === void 0 ? void 0 : _a.connection)
393
+ ? repoOptions.transaction.connection
394
+ : yield mongodb_1.MongoClient.connect(this.getUrl());
395
+ const db = client.db(this.config.database);
396
+ let result;
397
+ try {
398
+ result = yield callback(db.collection(this.config.collection));
399
+ }
400
+ finally {
401
+ if (!(repoOptions === null || repoOptions === void 0 ? void 0 : repoOptions.transaction))
402
+ yield client.close();
403
+ }
404
+ return result;
405
+ });
597
406
  }
598
407
  };
599
- MongoItemRepository = tslib_1.__decorate([
408
+ exports.MongoItemRepository = MongoItemRepository = tslib_1.__decorate([
600
409
  (0, common_1.Injectable)(),
601
410
  tslib_1.__metadata("design:paramtypes", [mongo_config_1.MongoConfig])
602
411
  ], MongoItemRepository);
603
- exports.MongoItemRepository = MongoItemRepository;
604
412
  //# sourceMappingURL=item.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"item.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/item.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/item.repository.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,qCAAoE;AACpE,+BAA4C;AAC5C,8CAAiD;AAEjD,2DAKmC;AAGnC,+CAAiE;AACjE,iDAAiE;AAEjE,kDAA8C;AAC9C,gDAA6C;AAItC,IAAM,mBAAmB,iCAAzB,MAAM,mBAEX,SAAQ,6BAAkB;IAG1B,YAAsB,MAAmB;QACvC,KAAK,EAAE,CAAC;QADY,WAAM,GAAN,MAAM,CAAa;QAFhC,uBAAkB,GAAG,KAAK,CAAC;IAIpC,CAAC;IAEK,MAAM,CACV,IAAO,EACP,IAAW,EACX,WAAoC;;YAEpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAO,UAAU,EAAE,EAAE;gBAChD,IAAI;oBACF,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAS,EAAE,IAAI,CAAC,EAAE;wBACjE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO;qBAChE,CAAC,CAAC;oBACH,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBACzD;gBAAC,OAAO,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC7D,MAAM,SAAS,CAAC;iBACjB;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,KAAK,CACT,IAAW,EACX,WAAoC;;YAEpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAO,UAAU,EAAE,EAAE;gBAChD,IAAI;oBACF,MAAM,UAAU,CAAC,UAAU,CACzB,EAAE,EACF,EAAE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO,EAAE,CACpE,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBACxD;gBAAC,OAAO,QAAQ,EAAE;oBACjB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC3D,MAAM,QAAQ,CAAC;iBAChB;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,UAAU,CACd,IAAS,EACT,IAAW,EACX,WAAoC;;YAEpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAO,UAAU,EAAE,EAAE;gBAChD,IAAI;oBACF,MAAM,UAAU,CAAC,UAAU,CACzB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAS,EAAE,IAAI,CAAC,CAAC,EAC1D,EAAE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO,EAAE,CACpE,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBAC7D;gBAAC,OAAO,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;oBACjE,MAAM,SAAS,CAAC;iBACjB;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,MAAM,CACV,IAAO,EACP,IAAW,EACX,WAAoC;;YAEpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAO,UAAU,EAAE,EAAE;gBAChD,IAAI;oBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAErD,MAAM,UAAU,CAAC,UAAU,CACzB,EAAE,GAAG,EAAE,IAAI,CAAC,EAAS,EAAE,EACvB,IAAI,CAAC,gBAAgB,CAAC,IAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAC5C,EAAE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO,EAAE,CACpE,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBACzD;gBAAC,OAAO,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC7D,MAAM,SAAS,CAAC;iBACjB;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,aAAa,CACjB,IAAiC,EACjC,IAAW,EACX,WAAoC;;YAEpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAO,UAAU,EAAE,EAAE;gBAChD,IAAI;oBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAErD,MAAM,UAAU,CAAC,SAAS,CACxB,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAChB;wBACE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAS,EAAE,IAAI,EAAE,IAAI,CAAC;qBACnD,EACD,EAAE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO,EAAE,CACpE,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBAChE;gBAAC,OAAO,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;oBACpE,MAAM,SAAS,CAAC;iBACjB;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,2BAA2B,CAC/B,QAAa,EACb,GAAe,EACf,IAAW,EACX,WAAoC;;YAEpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAO,UAAU,EAAE,EAAE;gBAChD,IAAI;oBACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oBAEnC,MAAM,UAAU,CAAC,UAAU,CACzB,QAAQ,EACR;wBACE,IAAI,kCACC,GAAG,KACN,eAAe,EAAE;gCACf,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ;gCACxB,IAAI,EAAE,IAAI,IAAI,EAAE;6BACjB,GACF;qBACF,EACD,EAAE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO,EAAE,CACpE,CAAC;oBACF,IAAI,CAAC,SAAS,CACZ,6BAA6B,kCAExB,QAAQ,KACX,GAAG,KAEL,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;iBACH;gBAAC,OAAO,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CACZ,6BAA6B,kCAExB,QAAQ,KACX,GAAG,KAEL,WAAW,EACX,IAAI,EACJ,SAAS,CACV,CAAC;oBACF,MAAM,SAAS,CAAC;iBACjB;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAED,gCAAgC,CAC9B,IAAoB,EACpB,GAAe,EACf,IAAW,EACX,WAAoC;QAEpC,OAAO,IAAI,CAAC,2BAA2B,CACrC,IAAI,CAAC,QAAQ,EACb,GAAG,EACH,IAAI,EACJ,WAAW,CACZ,CAAC;IACJ,CAAC;IAEK,MAAM,CACV,EAAU,EACV,IAAW,EACX,WAAoC;;YAEpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAO,UAAU,EAAE,EAAE;gBAChD,IAAI;oBACF,MAAM,UAAU,CAAC,SAAS,CACxB,EAAE,GAAG,EAAE,EAAS,EAAE,EAClB,EAAE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO,EAAE,CACpE,CAAC;oBACF,IAAI,CAAC,SAAS,CACZ,QAAQ,EACR;wBACE,EAAE;qBACH,EACD,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;iBACH;gBAAC,OAAO,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CACZ,QAAQ,EACR;wBACE,EAAE;qBACH,EACD,WAAW,EACX,IAAI,EACJ,SAAS,CACV,CAAC;oBACF,MAAM,SAAS,CAAC;iBACjB;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,OAAO,CAAC,EAAU,EAAE,WAAoC;;YAC5D,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAI,CAAO,UAAU,EAAE,EAAE;gBAC1D,MAAM,IAAI,GAAI,MAAM,UAAU,CAAC,OAAO,CACpC,EAAE,GAAG,EAAE,EAAS,EAAE,EAClB;oBACE,OAAO,EAAG,WAAW,CAAC,WAAiC,CAAC,OAAO;iBAChE,CACF,CAAC;gBAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,aAAa,CACjB,QAAa,EACb,UAAe,EAAE;;YAEjB,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAI,CAAO,UAAU,EAAE,EAAE;gBAC1D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAE9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAE7D,MAAM,SAAS,GAAG,EAAE,CAAC;gBAErB,IAAI,QAAQ,EAAE;oBACZ,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACtC;gBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;oBACjB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;iBACzC;gBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE;oBACjB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;iBACzC;gBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE;oBAClB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC3C;gBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE;oBACpB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC/C;gBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE;oBAChB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;iBACvC;gBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAE;oBAChB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;iBACvC;gBAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE;oBAClB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC3C;gBAED,MAAM,IAAI,GAAG,MAAM,UAAU;qBAC1B,SAAS,CAAI,SAAS,EAAE;oBACvB,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;oBACnC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;iBAC1B,CAAC;qBACD,OAAO,EAAE,CAAC;gBAEb,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACnD,UAAU;iBACb,CAAA;YACH,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAED,kBAAkB,CAChB,IAAoB,EACpB,UAAe,EAAE;QAEjB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEK,eAAe,CAAC,QAAa;;YACjC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAS,CAAO,UAAU,EAAE,EAAE;gBAC/D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAE9B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAED,oBAAoB,CAAC,IAAoB;QACvC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,QAAyB;QACzC,IAAI,MAAyB,CAAC;QAC9B,IAAI,MAAmB,CAAC;QAExB,OAAO,IAAI,iBAAU,CAAC,CAAC,QAAmC,EAAE,EAAE;YAC5D,CAAC,GAAS,EAAE;gBACV,IAAI;oBACF,MAAM,GAAG,MAAM,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBAClD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE;wBAC1B,CAAC,CAAC;4BACA;gCACE,MAAM,EAAE;oCACN,iBAAiB,EAAE,QAAQ,CAAC,EAAE;iCAC/B;6BACF;yBACF;wBACD,CAAC,CAAC,EAAE,CAAC;oBAEP,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;wBAC1D,QAAQ,CAAC,IAAI,CAAC;4BACZ,EAAE,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;4BAChC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC9C,IAAI,EACF,MAAM,CAAC,aAAa,KAAK,QAAQ;gCAC/B,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;gCAC7B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;yBAC7C,CAAC,CAAC;oBACZ,CAAC,CAAC,CAAC;iBACJ;gBAAC,OAAO,GAAG,EAAE;oBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACrB;YACH,CAAC,CAAA,CAAC,EAAE,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CACL,IAAA,oBAAQ,EAAC,GAAS,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAE1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC,CAAA,CAAC,EACF,IAAA,iBAAK,GAAE,CACR,CAAC;IACJ,CAAC;IAEe,UAAU,CACxB,OAAqC;;YAErC,MAAM,MAAM,GAAG,MAAM,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAExD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,MAAM,CAAC;aACf;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,MAAM,CAAC,CAAC;aACT;QACH,CAAC;KAAA;IAEgB,QAAQ,CAAC,QAAa,EAAE,UAAU;;YACjD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,MAAM,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;KAAA;IAES,OAAO,CAAC,EAAU,EAAE,UAAU;QACtC,OAAO,IAAI,OAAO,CAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnC,UAAU;iBACP,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;iBACjE,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACtB,IAAI,GAAG,EAAE;oBACP,GAAG,CAAC,GAAG,CAAC,CAAC;oBACT,OAAO;iBACR;gBAED,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACvB,GAAG,CAAC,IAAI,CAAC,CAAC;iBACX;gBAED,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,IAAO,EAAE,IAAW;QAC7C,MAAM,MAAM,GAAG,qBAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,EAAE,CAAC;QAEjB,MAAM,CAAC,QAAQ,CAAC,GAAG;YACjB,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;gBACrC,IAAI,EAAE,IAAI,IAAI,EAAE;aACjB;SACF,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,aAAa,CAAC,MAAc;QACpC,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;SACjB,CAAC;QAEF,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAES,gBAAgB,CACxB,IAAoB,EACpB,IAAW,EACX,IAAI;QAEJ,MAAM,MAAM,GAAG,qBAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,EAAE,CAAC;QAEjB,MAAM,CAAC,QAAQ,CAAC,mCACX,IAAI,KACP,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;gBACrC,IAAI,EAAE,IAAI,IAAI,EAAE;aACjB,GACF,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,gBAAgB,CAAC,IAAO;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,MAAM,MAAM,GAAG,qBAAa,CAAC,WAAW,CAAC,IAAI,CAAQ,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QAE1B,OAAO,MAAM,CAAC,GAAG,CAAC;QAClB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;QAExB,OAAO,MAAW,CAAC;IACrB,CAAC;IAES,MAAM;QACd,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAEgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK;;YACzD,MAAM,MAAM,GAAG,MAAM,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAExD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI;gBACF,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CACtC;oBACE,IAAI;oBACJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;oBAClC,IAAI;oBACJ,OAAO;oBACP,IAAI;oBACJ,KAAK;oBACL,IAAI,EAAE,IAAI,IAAI,EAAE;iBACjB,CACF,CAAC;aACH;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;oBAAS;gBACR,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;aACtB;QACH,CAAC;KAAA;IAES,cAAc,CAAC,QAAa;QACpC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO;QAEjC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACpB,MAAM,WAAW,GAAG,IAAA,kCAAyB,EAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CACvB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAElC,IAAI,WAAW,CAAC,MAAM,EAAE;gBACtB,MAAM,WAAW,GAAG,EAAE,CAAC;gBAEvB,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1B,MAAM,GAAG,GAAG,EAAE,CAAC;oBAEf,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG;wBACb,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAC9C,QAAQ,EAAE,GAAG;qBACd,CAAC;oBAEF,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;qBAC/C,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC7C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;oBAEpE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACxB;qBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC3B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;iBAChE;gBAED,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAE3B,OAAO;aACR;SACF;QAED,MAAM,cAAc,GAAG;YACrB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE;SACzE,CAAC;QAEF,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE3B,QAAQ,mCACH,QAAQ,GACR,cAAc,CAClB,CAAC;IACJ,CAAC;IAES,mBAAmB,CAAC,QAAa;QACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClB,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC;IAES,YAAY,CAAC,GAAW;QAChC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEe,iBAAiB,CAC/B,QAAkD,EAClD,WAAoC;;;YAEpC,MAAM,MAAM,GAAgB,CAAA,MAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAiC,0CACvE,UAAU;gBACZ,CAAC,CAAE,WAAW,CAAC,WAAiC,CAAC,UAAU;gBAC3D,CAAC,CAAC,MAAM,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAE7C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,MAAS,CAAC;YAEd,IAAI;gBACF,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;aAChE;oBAAS;gBACR,IAAI,CAAC,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAiC,CAAA;oBAClD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;aACxB;YAED,OAAO,MAAM,CAAC;;KACf;CACF,CAAA;8BAziBY,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;6CAMmB,0BAAW;GAL9B,mBAAmB,CAyiB/B"}