taon-typeorm 18.0.15 → 18.0.17

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.
@@ -4,7 +4,7 @@ import { QueryRunner } from "../../query-runner/QueryRunner";
4
4
  import { DataSource } from "../../data-source/DataSource";
5
5
  import { EntityMetadata } from "../../metadata/EntityMetadata";
6
6
  import { ReplicationMode } from "../types/ReplicationMode";
7
- import { _ } from 'tnp-core/src';
7
+ import { _ } from 'tnp-core';
8
8
  export declare class SqljsDriver extends AbstractSqliteDriver {
9
9
  options: SqljsConnectionOptions;
10
10
  localForgeInstance: any;
@@ -64,4 +64,4 @@ export declare class SqljsDriver extends AbstractSqliteDriver {
64
64
  * If driver dependency is not given explicitly, then try to load it via "require".
65
65
  */
66
66
  protected loadDependencies(): void;
67
- }
67
+ }
@@ -250,19 +250,20 @@ var SqljsDriver = /** @class */ (function (_super) {
250
250
  */
251
251
  SqljsDriver.prototype.autoSave = function () {
252
252
  return tslib_1.__awaiter(this, void 0, void 0, function () {
253
- return tslib_1.__generator(this, function (_a) {
254
- switch (_a.label) {
253
+ var _a;
254
+ return tslib_1.__generator(this, function (_b) {
255
+ switch (_b.label) {
255
256
  case 0:
256
- if (!this.options.autoSave) return [3 /*break*/, 4];
257
+ if (!(this.options.autoSave && !((_a = this.queryRunner) === null || _a === void 0 ? void 0 : _a.isTransactionActive))) return [3 /*break*/, 4];
257
258
  if (!this.options.autoSaveCallback) return [3 /*break*/, 2];
258
259
  return [4 /*yield*/, this.options.autoSaveCallback(this.export())];
259
260
  case 1:
260
- _a.sent();
261
+ _b.sent();
261
262
  return [3 /*break*/, 4];
262
263
  case 2: return [4 /*yield*/, this.save()];
263
264
  case 3:
264
- _a.sent();
265
- _a.label = 4;
265
+ _b.sent();
266
+ _b.label = 4;
266
267
  case 4: return [2 /*return*/];
267
268
  }
268
269
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SqljsDriver.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqljsDriver.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;AAAA,gFAA8E;AAE9E,uDAAqD;AAGrD,6FAA2F;AAC3F,+EAA6E;AAC7E,8DAA4D;AAE5D,gDAA8C;AAG9C,qCAA0C;AAC1C,qCAA6B;AAE7B,kBAAkB;AAClB,aAAa;AACb,IAAM,MAAM,GAAO,MAAM,CAAC;AAC1B,YAAY;AAGZ,IAAI,WAAW,GAAG,EAAS,CAAC;AAC5B,kBAAkB;AAClB,aAAa;AACb,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAY;AACZ,KAAK;AACL,KAAK;AACL,KAAK;AAIL,IAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;IAAiC,uCAAoB;IAcjD,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,qBAAY,UAAsB;QAChC,YAAA,MAAK,YAAC,UAAU,CAAC,SAAA;QAfnB,uBAAiB,GAAG,EAAE,CAAC;QACvB,kBAAY,GAAG,YAAC,CAAC,QAAQ,CAAC,UAAO,IAAI;;;;oBACnC,qCAAqC;oBACrC,qBAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACnC,IAAI,EACJ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAC7B,EAAA;;wBAJD,qCAAqC;wBACrC,SAGC,CAAC;;;;aAEH,EAAC,wBAAwB,CAAC,CAAC;QAQhC,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QAGG,8EAA8E;QAC9E,uEAAuE;QACvE,IACI,KAAI,CAAC,OAAO,CAAC,QAAQ;YACrB,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,CAAC,KAAI,CAAC,OAAO,CAAC,gBAAgB,EAChC,CAAC;YACC,MAAM,IAAI,iDAAuB,CAAC,8BAA8B,CAAC,CAAA;QACrE,CAAC;QAED,sBAAsB;QACtB,KAAI,CAAC,gBAAgB,EAAE,CAAA;;IAC3B,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,6BAAO,GAAb;;;;;;wBACI,KAAA,IAAI,CAAA;wBAAsB,qBAAM,IAAI,CAAC,wBAAwB,EAAE,EAAA;;wBAA/D,GAAK,kBAAkB,GAAG,SAAqC,CAAA;;;;;KAClE;IAED;;OAEG;IACG,gCAAU,GAAhB;;;gBACI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;;;;KAClC;IAED;;OAEG;IACH,uCAAiB,GAAjB,UAAkB,IAAqB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,CAAA;QAEpE,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IAGD;;;OAGG;IACG,0BAAI,GAAV;oEACI,4BAAiD,EACjD,+BAA+C;;YAA/C,gDAAA,EAAA,sCAA+C;;gBAE/C,IAAI,OAAO,4BAA4B,KAAK,QAAQ,EAAE,CAAC;oBACnD,2BAA2B;oBAC3B,IAAI,6BAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAChC,UAAU;wBACV,4DAA4D;wBAC5D,IAAI,6BAAa,CAAC,SAAS,CAAC,4BAA4B,CAAC,EAAE,CAAC;4BAClD,QAAQ,GAAG,6BAAa,CAAC,YAAY,CACvC,4BAA4B,CAC/B,CAAA;4BACD,sBAAO,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,EAAA;wBAC5D,CAAC;6BAAM,IAAI,+BAA+B,EAAE,CAAC;4BACzC,MAAM,IAAI,oBAAY,CAClB,eAAQ,4BAA4B,oBAAiB,CACxD,CAAA;wBACL,CAAC;6BAAM,CAAC;4BACJ,0EAA0E;4BAC1E,gEAAgE;4BAChE,iDAAiD;4BACjD,sBAAO,IAAI,CAAC,kCAAkC,EAAE,EAAA;wBACpD,CAAC;oBACL,CAAC;yBAAM,CAAC;wBAGA,mBAAmB,GAAG,IAAI,CAAA;wBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;4BAClD,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;wBAEW,CAAC;6BAAM,CAAC;4BACJ,mBAAmB;gCACf,6BAAa,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,OAAO,CAClD,4BAA4B,CAC/B,CAAA;wBACT,CAAC;wBAED,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;4BAGxB,GAAG,GAAG,IAAI,CAAC,kCAAkC,CACjD,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAChF,CAAA;4BACD,sCAAsC;4BACtC,sBAAO,GAAG,EAAC;wBACf,CAAC;6BAAM,IAAI,+BAA+B,EAAE,CAAC;4BACzC,MAAM,IAAI,oBAAY,CAClB,eAAQ,4BAA4B,oBAAiB,CACxD,CAAA;wBACL,CAAC;6BAAM,CAAC;4BACJ,wFAAwF;4BACxF,wDAAwD;4BACxD,+DAA+D;4BAC/D,sBAAO,IAAI,CAAC,kCAAkC,EAAE,EAAA;wBACpD,CAAC;oBACL,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,sBAAO,IAAI,CAAC,kCAAkC,CAC1C,4BAA4B,CAC/B,EAAA;gBACL,CAAC;;;;KACJ;IAED;;;;OAIG;IACG,0BAAI,GAAV,UAAW,QAAiB;;;;;;wBACxB,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACtC,MAAM,IAAI,oBAAY,CAClB,mGAAmG,CACtG,CAAA;wBACL,CAAC;wBAEG,IAAI,GAAG,EAAE,CAAA;wBACb,IAAI,QAAQ,EAAE,CAAC;4BACX,IAAI,GAAG,QAAQ,CAAA;wBACnB,CAAC;6BAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;4BAC/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;wBAChC,CAAC;6BAEG,CAAA,6BAAa,CAAC,IAAI,KAAK,MAAM,CAAA,EAA7B,wBAA6B;;;;wBAGnB,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC7D,qBAAM,6BAAa,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAA;;wBAA5C,SAA4C,CAAA;;;;wBAE5C,MAAM,IAAI,oBAAY,CAAC,0CAAmC,GAAC,CAAE,CAAC,CAAA;;;wBAI5D,QAAQ,GAAe,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAA;wBAEvD,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;4BAC9C,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK;wBAEO,CAAC;6BAAM,CAAC;4BACJ,6BAAa,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,OAAO,CAClD,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAChC,CAAA;wBACL,CAAC;;;;;;KAER;IAED;;;;;;OAMG;IACG,8BAAQ,GAAd;;;;;;6BACQ,CAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,mBAAmB,CAAA,CAAA,EAA/D,wBAA+D;6BAC3D,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAA7B,wBAA6B;wBAC7B,qBAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAA;;wBAAlD,SAAkD,CAAA;;4BAElD,qBAAM,IAAI,CAAC,IAAI,EAAE,EAAA;;wBAAjB,SAAiB,CAAA;;;;;;KAG5B;IAED;;OAEG;IACH,4BAAM,GAAN;QACI,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,wCAAkB,GAAlB,UAAmB,QAAwB,EAAE,YAAiB;QAA9D,iBA6BC;QA5BG,IAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CACjD,UAAC,GAAG,EAAE,eAAe;YACjB,mGAAmG;YACnG,IACI,eAAe,CAAC,SAAS;gBACzB,eAAe,CAAC,kBAAkB,KAAK,WAAW,EACpD,CAAC;gBACC,IAAM,KAAK,GAAG,4BAA4B,CAAA;gBAC1C,IAAI,CAAC;oBACD,IAAI,MAAM,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAChD,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;oBACtC,OAAO,mBAAQ,CAAC,SAAS,CACrB,GAAG,EACH,eAAe,CAAC,cAAc,CAC1B,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzB,CACJ,CAAA;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;gBACtD,CAAC;YACL,CAAC;YAED,OAAO,GAAG,CAAA;QACd,CAAC,EACD,EAAmB,CACtB,CAAA;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1E,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;;OAGG;IACO,8CAAwB,GAAlC;QACI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzE,CAAC;IAED;;;OAGG;IACa,wDAAkC,GAAlD,UACI,QAAqB;;;;;;wBAGf,eAAe,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAA;6BACnD,eAAe,EAAf,wBAAe;wBACxB,KAAA,IAAI,CAAC,MAAM,CAAA;;4BACX,qBAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAA;;wBAA3C,KAAA,SAA2C,CAAA;;;wBAF3C,MAAM,KAEqC;wBACjD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,aAAa;4BAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;wBAC3D,CAAC;6BAAM,CAAC,CAAC,aAAa;4BAClB,IAAI,CAAC,kBAAkB,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAA;wBACnD,CAAC;wBAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;wBAExD,sBAAO,IAAI,CAAC,kBAAkB,EAAA;;;;KACjC;IAED;;OAEG;IACO,sCAAgB,GAA1B;QACI,IAAI,6BAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/C,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;QAEG,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC;gBACD,IAAM,MAAM,GACR,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAC,aAAa;gBACrE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACxB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,+DAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAChE,CAAC;QACL,CAAC;IACL,CAAC;IACL,kBAAC;AAAD,CAAC,AA1UD,CAAiC,2CAAoB,GA0UpD;AA1UY,kCAAW"}
package/package.json CHANGED
@@ -39,11 +39,11 @@
39
39
  "@sqltools/formatter": "1.2.5",
40
40
  "app-root-path": "3.1.0",
41
41
  "cli-highlight": "2.1.11",
42
- "tnp-core": "~18.0.42"
42
+ "tnp-core": "~18.0.45"
43
43
  },
44
44
  "devDependencies": {},
45
45
  "name": "taon-typeorm",
46
- "version": "18.0.15",
47
- "lastBuildTagHash": "ffc6b00e3fee87587c0a0196a33b2ca171b6056a",
46
+ "version": "18.0.17",
47
+ "lastBuildTagHash": "dc82fb6fcbb3cd998fbbc21cf756f7dda0b1402b",
48
48
  "main": "dist/app.electron.js"
49
49
  }
package/taon.jsonc CHANGED
@@ -1,35 +1,35 @@
1
- {
2
- "resources": [],
3
-
4
- "overrided": {
5
- "linkedFolders": [],
6
- "ignoreDepsPattern": [],
7
- "includeAsDev": [],
8
- "includeOnly": ["tnp-core", "cli-highlight", "@sqltools/formatter", "app-root-path"],
9
- "dependencies": {},
10
- "npmFixes": []
11
- },
12
-
13
- "smartContainerBuildTarget": "",
14
- "linkedRepos": [],
15
-
16
- "libReleaseOptions": {
17
- "nodts": false,
18
- "obscure": false,
19
- "ugly": false,
20
- "includeNodeModules": false,
21
- "cliBuildNoDts": false,
22
- "cliBuildObscure": false,
23
- "cliBuildIncludeNodeModules": false,
24
- "cliBuildUglify": false
25
- },
26
-
27
- "smartContainerTarget": "",
28
- "type": "isomorphic-lib",
29
- "version": "v18",
30
- "isCoreProject": false,
31
- "isGenerated": false,
32
- "useFramework": false,
33
- "required": [],
34
- "requiredServers": []
1
+ {
2
+ "resources": [],
3
+
4
+ "overrided": {
5
+ "linkedFolders": [],
6
+ "ignoreDepsPattern": [],
7
+ "includeAsDev": [],
8
+ "includeOnly": ["tnp-core", "cli-highlight", "@sqltools/formatter", "app-root-path"],
9
+ "dependencies": {},
10
+ "npmFixes": []
11
+ },
12
+
13
+ "smartContainerBuildTarget": "",
14
+ "linkedRepos": [],
15
+
16
+ "libReleaseOptions": {
17
+ "nodts": false,
18
+ "obscure": false,
19
+ "ugly": false,
20
+ "includeNodeModules": false,
21
+ "cliBuildNoDts": false,
22
+ "cliBuildObscure": false,
23
+ "cliBuildIncludeNodeModules": false,
24
+ "cliBuildUglify": false
25
+ },
26
+
27
+ "smartContainerTarget": "",
28
+ "type": "isomorphic-lib",
29
+ "version": "v18",
30
+ "isCoreProject": false,
31
+ "isGenerated": false,
32
+ "useFramework": false,
33
+ "required": [],
34
+ "requiredServers": []
35
35
  }
@@ -43,7 +43,7 @@
43
43
  "@sqltools/formatter": "1.2.5",
44
44
  "app-root-path": "3.1.0",
45
45
  "cli-highlight": "2.1.11",
46
- "tnp-core": "~18.0.42"
46
+ "tnp-core": "~18.0.45"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@angular-builders/custom-webpack": "~18.0.0",
@@ -206,13 +206,14 @@
206
206
  "image-focus": "1.2.1",
207
207
  "immer": "10.0.2",
208
208
  "immutable": "4.3.7",
209
- "incremental-compiler": "~18.0.16",
209
+ "incremental-compiler": "~18.0.19",
210
210
  "inquirer": "7.3.3",
211
211
  "inquirer-autocomplete-prompt": "1.4.0",
212
212
  "inquirer-autocomplete-standalone": "0.8.1",
213
213
  "inquirer-select-pro": "1.0.0-alpha.7",
214
+ "inquirer-toggle": "1.0.1",
214
215
  "is-elevated": "3.0.0",
215
- "isomorphic-region-loader": "~18.0.16",
216
+ "isomorphic-region-loader": "~18.0.18",
216
217
  "istanbul-instrumenter-loader": "3.0.1",
217
218
  "jest": "29.7.0",
218
219
  "jest-date-mock": "1.0.10",
@@ -223,8 +224,8 @@
223
224
  "joi": "17.13.3",
224
225
  "jscodeshift": "0.6.3",
225
226
  "json-stringify-safe": "5.0.1",
226
- "json10": "~18.0.16",
227
- "json10-writer": "~18.0.16",
227
+ "json10": "~18.0.18",
228
+ "json10-writer": "~18.0.18",
228
229
  "json5": "2.2.3",
229
230
  "json5-writer": "0.2.0",
230
231
  "jszip": "3.10.1",
@@ -233,9 +234,9 @@
233
234
  "localforage": "1.10.0",
234
235
  "lockfile": "1.0.4",
235
236
  "lodash": "4.17.21",
236
- "lodash-walk-object": "~18.0.16",
237
+ "lodash-walk-object": "~18.0.18",
237
238
  "lowdb": "7.0.1",
238
- "magic-renamer": "~18.0.16",
239
+ "magic-renamer": "~18.0.18",
239
240
  "material-design-icons": "3.0.1",
240
241
  "method-override": "2.3.10",
241
242
  "minimist": "1.2.8",
@@ -246,11 +247,11 @@
246
247
  "ng-in-viewport": "16.1.0",
247
248
  "ng-lock": "18.0.1",
248
249
  "ng-packagr": "18.1.0",
249
- "ng-talkback": "~18.0.15",
250
- "ng2-logger": "~18.0.18",
250
+ "ng-talkback": "~18.0.17",
251
+ "ng2-logger": "~18.0.20",
251
252
  "ng2-pdfjs-viewer": "18.0.0",
252
- "ng2-rest": "~18.0.16",
253
- "ng2-rest-swagger-generator": "18.0.13",
253
+ "ng2-rest": "~18.0.18",
254
+ "ng2-rest-swagger-generator": "18.0.15",
254
255
  "ngx-ace-wrapper": "17.0.0",
255
256
  "ngx-editor": "17.5.4",
256
257
  "ngx-highlightjs": "12.0.0",
@@ -264,7 +265,7 @@
264
265
  "ngx-scrolltop": "18.0.0",
265
266
  "ngx-store": "3.1.1",
266
267
  "ngx-typed-js": "2.1.1",
267
- "node-cli-tester": "~18.0.15",
268
+ "node-cli-tester": "~18.0.17",
268
269
  "node-localstorage": "2.1.6",
269
270
  "node-notifier": "10.0.1",
270
271
  "node-polyfill-webpack-plugin": "2.0.1",
@@ -295,7 +296,7 @@
295
296
  "q": "1.5.1",
296
297
  "rallax.js": "2.0.4",
297
298
  "randomcolor": "0.5.3",
298
- "record-replay-req-res-scenario": "~18.0.15",
299
+ "record-replay-req-res-scenario": "~18.0.17",
299
300
  "reflect-metadata": "0.2.2",
300
301
  "rimraf": "2.6.2",
301
302
  "rxjs": "~7.8.1",
@@ -309,22 +310,22 @@
309
310
  "sql-template-strings": "2.2.2",
310
311
  "sql-template-tag": "5.2.1",
311
312
  "sql.js": "1.8.0",
312
- "static-columns": "~18.0.17",
313
+ "static-columns": "~18.0.19",
313
314
  "string-similarity": "4.0.4",
314
315
  "sudo-block": "3.0.0",
315
316
  "supertest": "7.0.0",
316
317
  "sweetalert2": "11.7.32",
317
318
  "systeminformation": "3.45.7",
318
319
  "taon": "^18",
319
- "taon-storage": "18.0.25",
320
- "taon-type-sql": "18.0.16",
321
- "taon-typeorm": "18.0.14",
320
+ "taon-storage": "18.0.27",
321
+ "taon-type-sql": "18.0.18",
322
+ "taon-typeorm": "18.0.16",
322
323
  "task.js": "0.1.5",
323
324
  "threads": "1.7.0",
324
- "tnp": "~18.0.18",
325
- "tnp-config": "~18.0.18",
326
- "tnp-helpers": "~18.0.16",
327
- "tnp-models": "~18.0.17",
325
+ "tnp": "~18.0.23",
326
+ "tnp-config": "~18.0.20",
327
+ "tnp-helpers": "~18.0.18",
328
+ "tnp-models": "~18.0.19",
328
329
  "ts-debug": "1.3.0",
329
330
  "ts-json-schema-generator": "2.3.0-next.5",
330
331
  "ts-loader": "2.3.1",
@@ -336,14 +337,14 @@
336
337
  "typedoc": "0.26.5",
337
338
  "typedoc-plugin-markdown": "4.2.3",
338
339
  "typescript": "~5.5.4",
339
- "typescript-class-helpers": "~18.0.17",
340
+ "typescript-class-helpers": "~18.0.19",
340
341
  "typescript-formatter": "~7.2.2",
341
342
  "typescript-string-enums": "~1.0.0",
342
343
  "underscore": "1.13.7",
343
344
  "uuid": "10.0.0",
344
345
  "validator": "13.5.2",
345
346
  "video.js": "8.3.0",
346
- "vpn-split": "~18.0.14",
347
+ "vpn-split": "~18.0.16",
347
348
  "vscode": "1.1.37",
348
349
  "wait-on": "8.0.1",
349
350
  "watch": "1.0.2",
@@ -354,19 +355,19 @@
354
355
  "zone.js": "~0.13.0"
355
356
  },
356
357
  "name": "taon-typeorm",
357
- "version": "18.0.15",
358
- "lastBuildTagHash": "ffc6b00e3fee87587c0a0196a33b2ca171b6056a",
358
+ "version": "18.0.17",
359
+ "lastBuildTagHash": "dc82fb6fcbb3cd998fbbc21cf756f7dda0b1402b",
359
360
  "main": "dist/app.electron.js"
360
361
  },
361
362
  "build": {
362
- "number": 208,
363
- "date": "2024-12-29T23:34:49.000Z",
364
- "hash": "c3aa571bcbf644fe466e653c926159b211d8dbe1"
363
+ "number": 211,
364
+ "date": "2025-01-10T04:16:33.000Z",
365
+ "hash": "06a852f2119d724ff24e5de798dd5cc8361a3ddb"
365
366
  },
366
367
  "currentProjectName": "taon-typeorm",
367
368
  "currentProjectGenericName": "taon-typeorm",
368
369
  "currentProjectType": "isomorphic-lib",
369
- "currentFrameworkVersion": "18.0.18",
370
+ "currentFrameworkVersion": "18.0.23",
370
371
  "isStandaloneProject": true,
371
372
  "isSmartContainer": false,
372
373
  "pathesTsconfig": "\"paths\": {\"taon-typeorm\":[\"./src/lib\"],\"taon-typeorm/*\":[\"./src/lib/*\"]},",
package/websql/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # MyLib
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
- > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -160,7 +160,7 @@ export class SqljsDriver extends AbstractSqliteDriver {
160
160
  * Don't auto-save when in transaction as the call to export will end the current transaction
161
161
  */
162
162
  async autoSave() {
163
- if (this.options.autoSave) {
163
+ if (this.options.autoSave && !this.queryRunner?.isTransactionActive) {
164
164
  if (this.options.autoSaveCallback) {
165
165
  await this.options.autoSaveCallback(this.export());
166
166
  }
@@ -246,4 +246,4 @@ export class SqljsDriver extends AbstractSqliteDriver {
246
246
  }
247
247
  ;
248
248
  ({}); // @--end-of-file-for-module=taon-typeorm lib/typeorm/driver/sqljs/SqljsDriver.ts
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsanNEcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlb3JtL3Byb2plY3RzL3Rhb24tdHlwZW9ybS9zcmMvbGliL3R5cGVvcm0vZHJpdmVyL3NxbGpzL1NxbGpzRHJpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFHOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsSUFBSSxXQUFXLEdBQUcsRUFBUyxDQUFDO0FBQzVCLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdMLGFBQWE7QUFDYixXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBSTVCLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0FBRXJDLE1BQU0sT0FBTyxXQUFZLFNBQVEsb0JBQW9CO0lBa0JqRCxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQWZuQixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJ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QUFDO2FBQU0sQ0FBQyxDQUFDLGFBQWE7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFFeEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUE7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3RCLElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUVuQyxhQUFhO1lBQ2IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsYUFBYTtZQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUV4QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQztnQkFDRCxNQUFNLE1BQU0sR0FDUixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsYUFBYTtnQkFDckUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7WUFDeEIsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxJQUFJLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUNoRSxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUZBQWlGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IEFic3RyYWN0U3FsaXRlRHJpdmVyIH0gZnJvbSBcIi4uL3NxbGl0ZS1hYnN0cmFjdC9BYnN0cmFjdFNxbGl0ZURyaXZlclwiXG5pbXBvcnQgeyBTcWxqc0Nvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4vU3FsanNDb25uZWN0aW9uT3B0aW9uc1wiXG5pbXBvcnQgeyBTcWxqc1F1ZXJ5UnVubmVyIH0gZnJvbSBcIi4vU3FsanNRdWVyeVJ1bm5lclwiXG5pbXBvcnQgeyBRdWVyeVJ1bm5lciB9IGZyb20gXCIuLi8uLi9xdWVyeS1ydW5uZXIvUXVlcnlSdW5uZXJcIlxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuLi8uLi9kYXRhLXNvdXJjZS9EYXRhU291cmNlXCJcbmltcG9ydCB7IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvci9Ecml2ZXJQYWNrYWdlTm90SW5zdGFsbGVkRXJyb3JcIlxuaW1wb3J0IHsgRHJpdmVyT3B0aW9uTm90U2V0RXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3IvRHJpdmVyT3B0aW9uTm90U2V0RXJyb3JcIlxuaW1wb3J0IHsgUGxhdGZvcm1Ub29scyB9IGZyb20gXCIuLi8uLi9wbGF0Zm9ybS9QbGF0Zm9ybVRvb2xzXCJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL21ldGFkYXRhL0VudGl0eU1ldGFkYXRhXCJcbmltcG9ydCB7IE9ybVV0aWxzIH0gZnJvbSBcIi4uLy4uL3V0aWwvT3JtVXRpbHNcIlxuaW1wb3J0IHsgT2JqZWN0TGl0ZXJhbCB9IGZyb20gXCIuLi8uLi9jb21tb24vT2JqZWN0TGl0ZXJhbFwiXG5pbXBvcnQgeyBSZXBsaWNhdGlvbk1vZGUgfSBmcm9tIFwiLi4vdHlwZXMvUmVwbGljYXRpb25Nb2RlXCJcbmltcG9ydCB7IFR5cGVPUk1FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvclwiXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5sZXQgZW52aXJvbm1lbnQgPSB7fSBhcyBhbnk7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vLyBAdHMtaWdub3JlXG5lbnZpcm9ubWVudCA9IHdpbmRvd1snRU5WJ107XG5cblxuXG5jb25zdCBTQVZFX0xPQ0FMX0ZPUkdFX1RJTUVPVVQgPSA1MDA7XG5cbmV4cG9ydCBjbGFzcyBTcWxqc0RyaXZlciBleHRlbmRzIEFic3RyYWN0U3FsaXRlRHJpdmVyIHtcblxuICAgIG9wdGlvbnM6IFNxbGpzQ29ubmVjdGlvbk9wdGlvbnM7XG4gICAgbG9jYWxGb3JnZUluc3RhbmNlOiBhbnk7XG4gICAgZGF0YWJhc2VBcnJheUZhc3QgPSB7fTtcbiAgICBkZWJvdW5jZVNhdmUgPSBfLmRlYm91bmNlKGFzeW5jIChwYXRoKT0+IHtcblxuICAgICAgYXdhaXQgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2Uuc2V0SXRlbShcbiAgICAgICAgcGF0aCxcbiAgICAgICAgdGhpcy5kYXRhYmFzZUFycmF5RmFzdFtwYXRoXSxcbiAgICAgICk7XG5cbiAgICB9LFNBVkVfTE9DQUxfRk9SR0VfVElNRU9VVCk7XG5cblxuXG5cblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IERhdGFTb3VyY2UpIHtcbiAgICAgIHN1cGVyKGNvbm5lY3Rpb24pXG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IGxvY2FsRm9yZ2UgPSB3aW5kb3dbJ2xvY2FsZm9yYWdlJ107XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSA9IGxvY2FsRm9yZ2U/LmNyZWF0ZUluc3RhbmNlKHtcbiAgICAgICAgZHJpdmVyOiBsb2NhbEZvcmdlLklOREVYRUREQixcbiAgICAgICAgc3RvcmVOYW1lOiAnZmlyZWRldi10eXBlb3JtXycgKyBfLmtlYmFiQ2FzZShlbnZpcm9ubWVudD8uY3VycmVudFByb2plY3RHZW5lcmljTmFtZSksXG4gICAgICB9KVxuXG5cblxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5hdXRvU2F2ZSAmJlxuICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5sb2NhdGlvbiAmJlxuICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5hdXRvU2F2ZUNhbGxiYWNrXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlck9wdGlvbk5vdFNldEVycm9yKGBsb2NhdGlvbiBvciBhdXRvU2F2ZUNhbGxiYWNrYClcbiAgICAgICAgfVxuXG5cbiAgICAgICAgdGhpcy5sb2FkRGVwZW5kZW5jaWVzKClcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGNvbm5lY3Rpb24gdG8gdGhlIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gYXdhaXQgdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb24oKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyBjb25uZWN0aW9uIHdpdGggZGF0YWJhc2UuXG4gICAgICovXG4gICAgYXN5bmMgZGlzY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5xdWVyeVJ1bm5lciA9IHVuZGVmaW5lZFxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5jbG9zZSgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHF1ZXJ5IHJ1bm5lciB1c2VkIHRvIGV4ZWN1dGUgZGF0YWJhc2UgcXVlcmllcy5cbiAgICAgKi9cbiAgICBjcmVhdGVRdWVyeVJ1bm5lcihtb2RlOiBSZXBsaWNhdGlvbk1vZGUpOiBRdWVyeVJ1bm5lciB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKCF0aGlzLnF1ZXJ5UnVubmVyKSB0aGlzLnF1ZXJ5UnVubmVyID0gbmV3IFNxbGpzUXVlcnlSdW5uZXIodGhpcylcblxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVJ1bm5lclxuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgYSBkYXRhYmFzZSBmcm9tIGEgZ2l2ZW4gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2Uga2V5IChicm93c2VyKSBvciBhcnJheS5cbiAgICAgKiBUaGlzIHdpbGwgZGVsZXRlIHRoZSBjdXJyZW50IGRhdGFiYXNlIVxuICAgICAqL1xuICAgIGFzeW5jIGxvYWQoXG4gICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGE6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgICAgIGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHM6IGJvb2xlYW4gPSB0cnVlLFxuICAgICk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSA9PT0gXCJzdHJpbmdcIikge1xuXG4gICAgICAgICAgICBpZiAoUGxhdGZvcm1Ub29scy50eXBlID09PSBcIm5vZGVcIikge1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoUGxhdGZvcm1Ub29scy5maWxlRXhpc3QoZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBQbGF0Zm9ybVRvb2xzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChkYXRhYmFzZSlcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlICR7ZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YX0gZG9lcyBub3QgZXhpc3RgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcblxuXG4gICAgICAgICAgICAgICAgbGV0IGxvY2FsU3RvcmFnZUNvbnRlbnQgPSBudWxsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy51c2VMb2NhbEZvcmFnZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYoXy5pc1VuZGVmaW5lZCh0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZS5nZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YV0gPSBjb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlQ29udGVudCA9IHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YV07XG5cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlT1JNRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGxvY2FsZm9yYWdlIGlzIG5vdCBkZWZpbmVkIC0gcGxlYXNlIGltcG9ydCBsb2NhbGZvcmFnZS5qcyBpbnRvIHlvdXIgc2l0ZWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZUNvbnRlbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Ub29scy5nZXRHbG9iYWxWYXJpYWJsZSgpLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZUNvbnRlbnQgIT0gbnVsbCkge1xuXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uID0gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxGb3JnZUluc3RhbmNlID8gbG9jYWxTdG9yYWdlQ29udGVudCA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlQ29udGVudCksXG4gICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hlY2tJZkZpbGVPckxvY2FsU3RvcmFnZUV4aXN0cykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgYEZpbGUgJHtmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhfSBkb2VzIG5vdCBleGlzdGAsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG5cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTYXZlZCB0aGUgY3VycmVudCBkYXRhYmFzZSB0byB0aGUgZ2l2ZW4gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2Uga2V5IChicm93c2VyKSBvclxuICAgICAqIGluZGV4ZWREQiBrZXkgKGJyb3dzZXIgd2l0aCBlbmFibGVkIHVzZUxvY2FsRm9yYWdlIG9wdGlvbikuXG4gICAgICogSWYgbm8gbG9jYXRpb24gcGF0aCBpcyBnaXZlbiwgdGhlIGxvY2F0aW9uIHBhdGggaW4gdGhlIG9wdGlvbnMgKGlmIHNwZWNpZmllZCkgd2lsbCBiZSB1c2VkLlxuICAgICAqL1xuICAgIGFzeW5jIHNhdmUobG9jYXRpb24/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFsb2NhdGlvbiAmJiAhdGhpcy5vcHRpb25zLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgIGBObyBsb2NhdGlvbiBpcyBzZXQsIHNwZWNpZnkgYSBsb2NhdGlvbiBwYXJhbWV0ZXIgb3IgYWRkIHRoZSBsb2NhdGlvbiBvcHRpb24gdG8geW91ciBjb25maWd1cmF0aW9uYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXRoID0gXCJcIlxuICAgICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIHBhdGggPSBsb2NhdGlvblxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgICAgICAgcGF0aCA9IHRoaXMub3B0aW9ucy5sb2NhdGlvblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJub2RlXCIpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0YWJhc2U6IFVpbnQ4QXJyYXkgPSB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leHBvcnQoKVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhYmFzZUFycmF5ID0gW10uc2xpY2UuY2FsbChkYXRhYmFzZSlcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXNlTG9jYWxGb3JhZ2UpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W3BhdGhdID0gZGF0YWJhc2VBcnJheTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJvdW5jZVNhdmUocGF0aCk7XG5cblxuXG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgYGxvY2FsZm9yYWdlIGlzIG5vdCBkZWZpbmVkIC0gcGxlYXNlIGltcG9ydCBsb2NhbGZvcmFnZS5qcyBpbnRvIHlvdXIgc2l0ZWAsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgUGxhdGZvcm1Ub29scy5nZXRHbG9iYWxWYXJpYWJsZSgpLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShkYXRhYmFzZUFycmF5KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGdldHMgY2FsbGVkIGJ5IHRoZSBRdWVyeVJ1bm5lciB3aGVuIGEgY2hhbmdlIHRvIHRoZSBkYXRhYmFzZSBpcyBtYWRlLlxuICAgICAqIElmIGEgY3VzdG9tIGF1dG9TYXZlQ2FsbGJhY2sgaXMgc3BlY2lmaWVkLCBpdCBnZXQncyBjYWxsZWQgd2l0aCB0aGUgZGF0YWJhc2UgYXMgVWludDhBcnJheSxcbiAgICAgKiBvdGhlcndpc2UgdGhlIHNhdmUgbWV0aG9kIGlzIGNhbGxlZCB3aGljaCBzYXZlcyBpdCB0byBmaWxlIChOb2RlLmpzKSwgbG9jYWwgc3RvcmFnZSAoYnJvd3NlcilcbiAgICAgKiBvciBpbmRleGVkREIgKGJyb3dzZXIgd2l0aCBlbmFibGVkIHVzZUxvY2FsRm9yYWdlIG9wdGlvbikuXG4gICAgICogRG9uJ3QgYXV0by1zYXZlIHdoZW4gaW4gdHJhbnNhY3Rpb24gYXMgdGhlIGNhbGwgdG8gZXhwb3J0IHdpbGwgZW5kIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uXG4gICAgICovXG4gICAgYXN5bmMgYXV0b1NhdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b1NhdmVcblxuXG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFjayh0aGlzLmV4cG9ydCgpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRhYmFzZSBhcyBVaW50OEFycmF5LlxuICAgICAqL1xuICAgIGV4cG9ydCgpOiBVaW50OEFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4cG9ydCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBnZW5lcmF0ZWQgbWFwIG9mIHZhbHVlcyBnZW5lcmF0ZWQgb3IgcmV0dXJuZWQgYnkgZGF0YWJhc2UgYWZ0ZXIgSU5TRVJUIHF1ZXJ5LlxuICAgICAqL1xuICAgIGNyZWF0ZUdlbmVyYXRlZE1hcChtZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsIGluc2VydFJlc3VsdDogYW55KSB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZE1hcCA9IG1ldGFkYXRhLmdlbmVyYXRlZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKG1hcCwgZ2VuZXJhdGVkQ29sdW1uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5pc1ByaW1hcnkgJiZcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9PT0gXCJpbmNyZW1lbnRcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IFwiU0VMRUNUIGxhc3RfaW5zZXJ0X3Jvd2lkKClcIlxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4ZWMocXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1F1ZXJ5KHF1ZXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ybVV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNyZWF0ZVZhbHVlTWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0udmFsdWVzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nUXVlcnlFcnJvcihlLCBxdWVyeSwgW10pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30gYXMgT2JqZWN0TGl0ZXJhbCxcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhnZW5lcmF0ZWRNYXApLmxlbmd0aCA+IDAgPyBnZW5lcmF0ZWRNYXAgOiB1bmRlZmluZWRcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIHRoZSBkYXRhYmFzZS5cbiAgICAgKiBJZiB0aGUgbG9jYXRpb24gb3B0aW9uIGlzIHNldCwgdGhlIGRhdGFiYXNlIGlzIGxvYWRlZCBmaXJzdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQodGhpcy5vcHRpb25zLmxvY2F0aW9uLCBmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQodGhpcy5vcHRpb25zLmRhdGFiYXNlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGRhdGFiYXNlLlxuICAgICAqIElmIGRhdGFiYXNlIGlzIHNwZWNpZmllZCBpdCBpcyBsb2FkZWQsIG90aGVyd2lzZSBhIG5ldyBlbXB0eSBkYXRhYmFzZSBpcyBjcmVhdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICBkYXRhYmFzZT86IFVpbnQ4QXJyYXksXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcblxuICAgICAgICBjb25zdCBpc0xlZ2FjeVZlcnNpb24gPSB0eXBlb2YgdGhpcy5zcWxpdGUuRGF0YWJhc2UgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICBjb25zdCBzcWxpdGUgPSBpc0xlZ2FjeVZlcnNpb25cbiAgICAgICAgICAgID8gdGhpcy5zcWxpdGVcbiAgICAgICAgICAgIDogYXdhaXQgdGhpcy5zcWxpdGUodGhpcy5vcHRpb25zLnNxbEpzQ29uZmlnKVxuICAgICAgICBpZiAoZGF0YWJhc2UgJiYgZGF0YWJhc2UubGVuZ3RoID4gMCkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IG5ldyBzcWxpdGUuRGF0YWJhc2UoZGF0YWJhc2UpXG4gICAgICAgIH0gZWxzZSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IHNxbGl0ZS5EYXRhYmFzZSgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leGVjKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gT05gKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRyaXZlciBkZXBlbmRlbmN5IGlzIG5vdCBnaXZlbiBleHBsaWNpdGx5LCB0aGVuIHRyeSB0byBsb2FkIGl0IHZpYSBcInJlcXVpcmVcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZERlcGVuZGVuY2llcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJicm93c2VyXCIpIHtcblxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3Qgc3FsaXRlID0gdGhpcy5vcHRpb25zLmRyaXZlciB8fCB3aW5kb3dbJ1NRTCddIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3FsaXRlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyaXZlciB8fCBQbGF0Zm9ybVRvb2xzLmxvYWQoXCJzcWwuanNcIikgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvcihcInNxbC5qc1wiLCBcInNxbC5qc1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL2RyaXZlci9zcWxqcy9TcWxqc0RyaXZlci50cyJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsanNEcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlb3JtL3Byb2plY3RzL3Rhb24tdHlwZW9ybS9zcmMvbGliL3R5cGVvcm0vZHJpdmVyL3NxbGpzL1NxbGpzRHJpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFHOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsSUFBSSxXQUFXLEdBQUcsRUFBUyxDQUFDO0FBQzVCLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdMLGFBQWE7QUFDYixXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBSTVCLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0FBRXJDLE1BQU0sT0FBTyxXQUFZLFNBQVEsb0JBQW9CO0lBa0JqRCxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQWZuQixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJ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Q0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDM0QsQ0FBQzthQUFNLENBQUMsQ0FBQyxhQUFhO1lBQ2xCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNuRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBRXhELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFBO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQjtRQUN0QixJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFFbkMsYUFBYTtZQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLGFBQWE7WUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFFeEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLGFBQWE7Z0JBQ3JFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1lBQ3hCLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFDaEUsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlGQUFpRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBBYnN0cmFjdFNxbGl0ZURyaXZlciB9IGZyb20gXCIuLi9zcWxpdGUtYWJzdHJhY3QvQWJzdHJhY3RTcWxpdGVEcml2ZXJcIlxuaW1wb3J0IHsgU3FsanNDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gXCIuL1NxbGpzQ29ubmVjdGlvbk9wdGlvbnNcIlxuaW1wb3J0IHsgU3FsanNRdWVyeVJ1bm5lciB9IGZyb20gXCIuL1NxbGpzUXVlcnlSdW5uZXJcIlxuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tIFwiLi4vLi4vcXVlcnktcnVubmVyL1F1ZXJ5UnVubmVyXCJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vZGF0YS1zb3VyY2UvRGF0YVNvdXJjZVwiXG5pbXBvcnQgeyBEcml2ZXJQYWNrYWdlTm90SW5zdGFsbGVkRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3IvRHJpdmVyUGFja2FnZU5vdEluc3RhbGxlZEVycm9yXCJcbmltcG9ydCB7IERyaXZlck9wdGlvbk5vdFNldEVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yL0RyaXZlck9wdGlvbk5vdFNldEVycm9yXCJcbmltcG9ydCB7IFBsYXRmb3JtVG9vbHMgfSBmcm9tIFwiLi4vLi4vcGxhdGZvcm0vUGxhdGZvcm1Ub29sc1wiXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi8uLi9tZXRhZGF0YS9FbnRpdHlNZXRhZGF0YVwiXG5pbXBvcnQgeyBPcm1VdGlscyB9IGZyb20gXCIuLi8uLi91dGlsL09ybVV0aWxzXCJcbmltcG9ydCB7IE9iamVjdExpdGVyYWwgfSBmcm9tIFwiLi4vLi4vY29tbW9uL09iamVjdExpdGVyYWxcIlxuaW1wb3J0IHsgUmVwbGljYXRpb25Nb2RlIH0gZnJvbSBcIi4uL3R5cGVzL1JlcGxpY2F0aW9uTW9kZVwiXG5pbXBvcnQgeyBUeXBlT1JNRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JcIlxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxubGV0IGVudmlyb25tZW50ID0ge30gYXMgYW55O1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLy8gQHRzLWlnbm9yZVxuZW52aXJvbm1lbnQgPSB3aW5kb3dbJ0VOViddO1xuXG5cblxuY29uc3QgU0FWRV9MT0NBTF9GT1JHRV9USU1FT1VUID0gNTAwO1xuXG5leHBvcnQgY2xhc3MgU3FsanNEcml2ZXIgZXh0ZW5kcyBBYnN0cmFjdFNxbGl0ZURyaXZlciB7XG5cbiAgICBvcHRpb25zOiBTcWxqc0Nvbm5lY3Rpb25PcHRpb25zO1xuICAgIGxvY2FsRm9yZ2VJbnN0YW5jZTogYW55O1xuICAgIGRhdGFiYXNlQXJyYXlGYXN0ID0ge307XG4gICAgZGVib3VuY2VTYXZlID0gXy5kZWJvdW5jZShhc3luYyAocGF0aCk9PiB7XG5cbiAgICAgIGF3YWl0IHRoaXMubG9jYWxGb3JnZUluc3RhbmNlLnNldEl0ZW0oXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbcGF0aF0sXG4gICAgICApO1xuXG4gICAgfSxTQVZFX0xPQ0FMX0ZPUkdFX1RJTUVPVVQpO1xuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBEYXRhU291cmNlKSB7XG4gICAgICBzdXBlcihjb25uZWN0aW9uKVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBsb2NhbEZvcmdlID0gd2luZG93Wydsb2NhbGZvcmFnZSddO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UgPSBsb2NhbEZvcmdlPy5jcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgIGRyaXZlcjogbG9jYWxGb3JnZS5JTkRFWEVEREIsXG4gICAgICAgIHN0b3JlTmFtZTogJ2ZpcmVkZXYtdHlwZW9ybV8nICsgXy5rZWJhYkNhc2UoZW52aXJvbm1lbnQ/LmN1cnJlbnRQcm9qZWN0R2VuZXJpY05hbWUpLFxuICAgICAgfSlcblxuXG5cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuYXV0b1NhdmUgJiZcbiAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYXRpb24gJiZcbiAgICAgICAgICAgICF0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFja1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBEcml2ZXJPcHRpb25Ob3RTZXRFcnJvcihgbG9jYXRpb24gb3IgYXV0b1NhdmVDYWxsYmFja2ApXG4gICAgICAgIH1cblxuXG4gICAgICAgIHRoaXMubG9hZERlcGVuZGVuY2llcygpXG4gICAgfVxuXG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZS5cbiAgICAgKi9cbiAgICBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IGF3YWl0IHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgY29ubmVjdGlvbiB3aXRoIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGFzeW5jIGRpc2Nvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMucXVlcnlSdW5uZXIgPSB1bmRlZmluZWRcbiAgICAgICAgdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uY2xvc2UoKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBxdWVyeSBydW5uZXIgdXNlZCB0byBleGVjdXRlIGRhdGFiYXNlIHF1ZXJpZXMuXG4gICAgICovXG4gICAgY3JlYXRlUXVlcnlSdW5uZXIobW9kZTogUmVwbGljYXRpb25Nb2RlKTogUXVlcnlSdW5uZXIgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICghdGhpcy5xdWVyeVJ1bm5lcikgdGhpcy5xdWVyeVJ1bm5lciA9IG5ldyBTcWxqc1F1ZXJ5UnVubmVyKHRoaXMpXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlSdW5uZXJcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIExvYWRzIGEgZGF0YWJhc2UgZnJvbSBhIGdpdmVuIGZpbGUgKE5vZGUuanMpLCBsb2NhbCBzdG9yYWdlIGtleSAoYnJvd3Nlcikgb3IgYXJyYXkuXG4gICAgICogVGhpcyB3aWxsIGRlbGV0ZSB0aGUgY3VycmVudCBkYXRhYmFzZSFcbiAgICAgKi9cbiAgICBhc3luYyBsb2FkKFxuICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgICAgICBjaGVja0lmRmlsZU9yTG9jYWxTdG9yYWdlRXhpc3RzOiBib29sZWFuID0gdHJ1ZSxcbiAgICApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAodHlwZW9mIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEgPT09IFwic3RyaW5nXCIpIHtcblxuICAgICAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJub2RlXCIpIHtcblxuXG4gICAgICAgICAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMuZmlsZUV4aXN0KGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlID0gUGxhdGZvcm1Ub29scy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQoZGF0YWJhc2UpXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGVja0lmRmlsZU9yTG9jYWxTdG9yYWdlRXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlT1JNRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgRmlsZSAke2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGF9IGRvZXMgbm90IGV4aXN0YCxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuICAgICAgICAgICAgICAgIGxldCBsb2NhbFN0b3JhZ2VDb250ZW50ID0gbnVsbFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXNlTG9jYWxGb3JhZ2UpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKF8uaXNVbmRlZmluZWQodGhpcy5kYXRhYmFzZUFycmF5RmFzdFtmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhXSkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UuZ2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdID0gY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZUNvbnRlbnQgPSB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBsb2NhbGZvcmFnZSBpcyBub3QgZGVmaW5lZCAtIHBsZWFzZSBpbXBvcnQgbG9jYWxmb3JhZ2UuanMgaW50byB5b3VyIHNpdGVgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2VDb250ZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtVG9vbHMuZ2V0R2xvYmFsVmFyaWFibGUoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2VDb250ZW50ICE9IG51bGwpIHtcblxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbiA9IHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSA/IGxvY2FsU3RvcmFnZUNvbnRlbnQgOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZUNvbnRlbnQpLFxuICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlICR7ZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YX0gZG9lcyBub3QgZXhpc3RgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChcbiAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZWQgdGhlIGN1cnJlbnQgZGF0YWJhc2UgdG8gdGhlIGdpdmVuIGZpbGUgKE5vZGUuanMpLCBsb2NhbCBzdG9yYWdlIGtleSAoYnJvd3Nlcikgb3JcbiAgICAgKiBpbmRleGVkREIga2V5IChicm93c2VyIHdpdGggZW5hYmxlZCB1c2VMb2NhbEZvcmFnZSBvcHRpb24pLlxuICAgICAqIElmIG5vIGxvY2F0aW9uIHBhdGggaXMgZ2l2ZW4sIHRoZSBsb2NhdGlvbiBwYXRoIGluIHRoZSBvcHRpb25zIChpZiBzcGVjaWZpZWQpIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICBhc3luYyBzYXZlKGxvY2F0aW9uPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbG9jYXRpb24gJiYgIXRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICBgTm8gbG9jYXRpb24gaXMgc2V0LCBzcGVjaWZ5IGEgbG9jYXRpb24gcGFyYW1ldGVyIG9yIGFkZCB0aGUgbG9jYXRpb24gb3B0aW9uIHRvIHlvdXIgY29uZmlndXJhdGlvbmAsXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGF0aCA9IFwiXCJcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBwYXRoID0gbG9jYXRpb25cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHBhdGggPSB0aGlzLm9wdGlvbnMubG9jYXRpb25cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChQbGF0Zm9ybVRvb2xzLnR5cGUgPT09IFwibm9kZVwiKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlOiBVaW50OEFycmF5ID0gdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uZXhwb3J0KClcblxuICAgICAgICAgICAgY29uc3QgZGF0YWJhc2VBcnJheSA9IFtdLnNsaWNlLmNhbGwoZGF0YWJhc2UpXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnVzZUxvY2FsRm9yYWdlKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhYmFzZUFycmF5RmFzdFtwYXRoXSA9IGRhdGFiYXNlQXJyYXk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVib3VuY2VTYXZlKHBhdGgpO1xuXG5cblxuXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBsb2NhbGZvcmFnZSBpcyBub3QgZGVmaW5lZCAtIHBsZWFzZSBpbXBvcnQgbG9jYWxmb3JhZ2UuanMgaW50byB5b3VyIHNpdGVgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFBsYXRmb3JtVG9vbHMuZ2V0R2xvYmFsVmFyaWFibGUoKS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YWJhc2VBcnJheSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBnZXRzIGNhbGxlZCBieSB0aGUgUXVlcnlSdW5uZXIgd2hlbiBhIGNoYW5nZSB0byB0aGUgZGF0YWJhc2UgaXMgbWFkZS5cbiAgICAgKiBJZiBhIGN1c3RvbSBhdXRvU2F2ZUNhbGxiYWNrIGlzIHNwZWNpZmllZCwgaXQgZ2V0J3MgY2FsbGVkIHdpdGggdGhlIGRhdGFiYXNlIGFzIFVpbnQ4QXJyYXksXG4gICAgICogb3RoZXJ3aXNlIHRoZSBzYXZlIG1ldGhvZCBpcyBjYWxsZWQgd2hpY2ggc2F2ZXMgaXQgdG8gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2UgKGJyb3dzZXIpXG4gICAgICogb3IgaW5kZXhlZERCIChicm93c2VyIHdpdGggZW5hYmxlZCB1c2VMb2NhbEZvcmFnZSBvcHRpb24pLlxuICAgICAqIERvbid0IGF1dG8tc2F2ZSB3aGVuIGluIHRyYW5zYWN0aW9uIGFzIHRoZSBjYWxsIHRvIGV4cG9ydCB3aWxsIGVuZCB0aGUgY3VycmVudCB0cmFuc2FjdGlvblxuICAgICAqL1xuICAgIGFzeW5jIGF1dG9TYXZlKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlICYmICF0aGlzLnF1ZXJ5UnVubmVyPy5pc1RyYW5zYWN0aW9uQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFjayh0aGlzLmV4cG9ydCgpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRhYmFzZSBhcyBVaW50OEFycmF5LlxuICAgICAqL1xuICAgIGV4cG9ydCgpOiBVaW50OEFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4cG9ydCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBnZW5lcmF0ZWQgbWFwIG9mIHZhbHVlcyBnZW5lcmF0ZWQgb3IgcmV0dXJuZWQgYnkgZGF0YWJhc2UgYWZ0ZXIgSU5TRVJUIHF1ZXJ5LlxuICAgICAqL1xuICAgIGNyZWF0ZUdlbmVyYXRlZE1hcChtZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsIGluc2VydFJlc3VsdDogYW55KSB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZE1hcCA9IG1ldGFkYXRhLmdlbmVyYXRlZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKG1hcCwgZ2VuZXJhdGVkQ29sdW1uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5pc1ByaW1hcnkgJiZcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9PT0gXCJpbmNyZW1lbnRcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IFwiU0VMRUNUIGxhc3RfaW5zZXJ0X3Jvd2lkKClcIlxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4ZWMocXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1F1ZXJ5KHF1ZXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ybVV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNyZWF0ZVZhbHVlTWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0udmFsdWVzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nUXVlcnlFcnJvcihlLCBxdWVyeSwgW10pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30gYXMgT2JqZWN0TGl0ZXJhbCxcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhnZW5lcmF0ZWRNYXApLmxlbmd0aCA+IDAgPyBnZW5lcmF0ZWRNYXAgOiB1bmRlZmluZWRcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIHRoZSBkYXRhYmFzZS5cbiAgICAgKiBJZiB0aGUgbG9jYXRpb24gb3B0aW9uIGlzIHNldCwgdGhlIGRhdGFiYXNlIGlzIGxvYWRlZCBmaXJzdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQodGhpcy5vcHRpb25zLmxvY2F0aW9uLCBmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQodGhpcy5vcHRpb25zLmRhdGFiYXNlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGRhdGFiYXNlLlxuICAgICAqIElmIGRhdGFiYXNlIGlzIHNwZWNpZmllZCBpdCBpcyBsb2FkZWQsIG90aGVyd2lzZSBhIG5ldyBlbXB0eSBkYXRhYmFzZSBpcyBjcmVhdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICBkYXRhYmFzZT86IFVpbnQ4QXJyYXksXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcblxuICAgICAgICBjb25zdCBpc0xlZ2FjeVZlcnNpb24gPSB0eXBlb2YgdGhpcy5zcWxpdGUuRGF0YWJhc2UgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICBjb25zdCBzcWxpdGUgPSBpc0xlZ2FjeVZlcnNpb25cbiAgICAgICAgICAgID8gdGhpcy5zcWxpdGVcbiAgICAgICAgICAgIDogYXdhaXQgdGhpcy5zcWxpdGUodGhpcy5vcHRpb25zLnNxbEpzQ29uZmlnKVxuICAgICAgICBpZiAoZGF0YWJhc2UgJiYgZGF0YWJhc2UubGVuZ3RoID4gMCkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IG5ldyBzcWxpdGUuRGF0YWJhc2UoZGF0YWJhc2UpXG4gICAgICAgIH0gZWxzZSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IHNxbGl0ZS5EYXRhYmFzZSgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leGVjKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gT05gKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRyaXZlciBkZXBlbmRlbmN5IGlzIG5vdCBnaXZlbiBleHBsaWNpdGx5LCB0aGVuIHRyeSB0byBsb2FkIGl0IHZpYSBcInJlcXVpcmVcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZERlcGVuZGVuY2llcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJicm93c2VyXCIpIHtcblxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3Qgc3FsaXRlID0gdGhpcy5vcHRpb25zLmRyaXZlciB8fCB3aW5kb3dbJ1NRTCddIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3FsaXRlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyaXZlciB8fCBQbGF0Zm9ybVRvb2xzLmxvYWQoXCJzcWwuanNcIikgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvcihcInNxbC5qc1wiLCBcInNxbC5qc1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL2RyaXZlci9zcWxqcy9TcWxqc0RyaXZlci50cyJdfQ==
@@ -14069,7 +14069,7 @@ class SqljsDriver extends AbstractSqliteDriver {
14069
14069
  * Don't auto-save when in transaction as the call to export will end the current transaction
14070
14070
  */
14071
14071
  async autoSave() {
14072
- if (this.options.autoSave) {
14072
+ if (this.options.autoSave && !this.queryRunner?.isTransactionActive) {
14073
14073
  if (this.options.autoSaveCallback) {
14074
14074
  await this.options.autoSaveCallback(this.export());
14075
14075
  }