taon-typeorm 18.0.13 → 18.0.15
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/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +2 -2
- package/browser/fesm2022/taon-typeorm.mjs +1 -1
- package/browser/fesm2022/taon-typeorm.mjs.map +1 -1
- package/client/README.md +24 -24
- package/client/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +2 -2
- package/client/fesm2022/taon-typeorm.mjs +1 -1
- package/client/fesm2022/taon-typeorm.mjs.map +1 -1
- package/lib/typeorm/driver/sqljs/SqljsDriver.js +6 -7
- package/lib/typeorm/driver/sqljs/SqljsDriver.js.map +1 -1
- package/migrations/index.d.ts +1 -0
- package/migrations/index.js +6 -0
- package/migrations/index.js.map +1 -0
- package/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/migrations/migrations_index._auto-generated_.js +4 -0
- package/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/package.json +3 -3
- package/taon.jsonc +34 -34
- package/tmp-environment.json +39 -31
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +2 -2
- package/websql/fesm2022/taon-typeorm.mjs +1 -1
- package/websql/fesm2022/taon-typeorm.mjs.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
THIS FILE IS GENERATED. THIS FILE IS GENERATED. THIS FILE IS GENERATED.
|
|
2
2
|
|
|
3
|
-
Assets from this folder are being shipped with this npm package (taon-typeorm@18.0.
|
|
3
|
+
Assets from this folder are being shipped with this npm package (taon-typeorm@18.0.15)
|
|
4
4
|
created from this project.
|
|
5
5
|
|
|
6
6
|
THIS FILE IS GENERATED.THIS FILE IS GENERATED. THIS FILE IS GENERATED.
|
package/browser/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) {
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsanNEcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90YW9uLXR5cGVvcm0vcHJvamVjdHMvdGFvbi10eXBlb3JtL3NyYy9saWIvdHlwZW9ybS9kcml2ZXIvc3FsanMvU3FsanNEcml2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUc5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJTCxJQUFJLFdBQVcsR0FBRyxFQUFTLENBQUM7QUFDNUIsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsYUFBYTtBQUNiLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFJNUIsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSxPQUFPLFdBQVksU0FBUSxvQkFBb0I7SUFrQmpELFlBQVksVUFBc0I7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBZm5CLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2QixpQkFBWSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxF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QVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMzRCxDQUFDO2FBQU0sQ0FBQyxDQUFDLGFBQWE7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFFeEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUE7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3RCLElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUVuQyxhQUFhO1lBQ2IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsYUFBYTtZQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUV4QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQztnQkFDRCxNQUFNLE1BQU0sR0FDUixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsYUFBYTtnQkFDckUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7WUFDeEIsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxJQUFJLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUNoRSxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUZBQWlGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IEFic3RyYWN0U3FsaXRlRHJpdmVyIH0gZnJvbSBcIi4uL3NxbGl0ZS1hYnN0cmFjdC9BYnN0cmFjdFNxbGl0ZURyaXZlclwiXG5pbXBvcnQgeyBTcWxqc0Nvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4vU3FsanNDb25uZWN0aW9uT3B0aW9uc1wiXG5pbXBvcnQgeyBTcWxqc1F1ZXJ5UnVubmVyIH0gZnJvbSBcIi4vU3FsanNRdWVyeVJ1bm5lclwiXG5pbXBvcnQgeyBRdWVyeVJ1bm5lciB9IGZyb20gXCIuLi8uLi9xdWVyeS1ydW5uZXIvUXVlcnlSdW5uZXJcIlxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuLi8uLi9kYXRhLXNvdXJjZS9EYXRhU291cmNlXCJcbmltcG9ydCB7IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvci9Ecml2ZXJQYWNrYWdlTm90SW5zdGFsbGVkRXJyb3JcIlxuaW1wb3J0IHsgRHJpdmVyT3B0aW9uTm90U2V0RXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3IvRHJpdmVyT3B0aW9uTm90U2V0RXJyb3JcIlxuaW1wb3J0IHsgUGxhdGZvcm1Ub29scyB9IGZyb20gXCIuLi8uLi9wbGF0Zm9ybS9QbGF0Zm9ybVRvb2xzXCJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL21ldGFkYXRhL0VudGl0eU1ldGFkYXRhXCJcbmltcG9ydCB7IE9ybVV0aWxzIH0gZnJvbSBcIi4uLy4uL3V0aWwvT3JtVXRpbHNcIlxuaW1wb3J0IHsgT2JqZWN0TGl0ZXJhbCB9IGZyb20gXCIuLi8uLi9jb21tb24vT2JqZWN0TGl0ZXJhbFwiXG5pbXBvcnQgeyBSZXBsaWNhdGlvbk1vZGUgfSBmcm9tIFwiLi4vdHlwZXMvUmVwbGljYXRpb25Nb2RlXCJcbmltcG9ydCB7IFR5cGVPUk1FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvclwiXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxubGV0IGVudmlyb25tZW50ID0ge30gYXMgYW55O1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLy8gQHRzLWlnbm9yZVxuZW52aXJvbm1lbnQgPSB3aW5kb3dbJ0VOViddO1xuXG5cblxuY29uc3QgU0FWRV9MT0NBTF9GT1JHRV9USU1FT1VUID0gNTAwO1xuXG5leHBvcnQgY2xhc3MgU3FsanNEcml2ZXIgZXh0ZW5kcyBBYnN0cmFjdFNxbGl0ZURyaXZlciB7XG5cbiAgICBvcHRpb25zOiBTcWxqc0Nvbm5lY3Rpb25PcHRpb25zO1xuICAgIGxvY2FsRm9yZ2VJbnN0YW5jZTogYW55O1xuICAgIGRhdGFiYXNlQXJyYXlGYXN0ID0ge307XG4gICAgZGVib3VuY2VTYXZlID0gXy5kZWJvdW5jZShhc3luYyAocGF0aCk9PiB7XG5cbiAgICAgIGF3YWl0IHRoaXMubG9jYWxGb3JnZUluc3RhbmNlLnNldEl0ZW0oXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbcGF0aF0sXG4gICAgICApO1xuXG4gICAgfSxTQVZFX0xPQ0FMX0ZPUkdFX1RJTUVPVVQpO1xuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBEYXRhU291cmNlKSB7XG4gICAgICBzdXBlcihjb25uZWN0aW9uKVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBsb2NhbEZvcmdlID0gd2luZG93Wydsb2NhbGZvcmFnZSddO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UgPSBsb2NhbEZvcmdlPy5jcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgIGRyaXZlcjogbG9jYWxGb3JnZS5JTkRFWEVEREIsXG4gICAgICAgIHN0b3JlTmFtZTogJ2ZpcmVkZXYtdHlwZW9ybV8nICsgXy5rZWJhYkNhc2UoZW52aXJvbm1lbnQ/LmN1cnJlbnRQcm9qZWN0R2VuZXJpY05hbWUpLFxuICAgICAgfSlcblxuXG5cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuYXV0b1NhdmUgJiZcbiAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYXRpb24gJiZcbiAgICAgICAgICAgICF0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFja1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBEcml2ZXJPcHRpb25Ob3RTZXRFcnJvcihgbG9jYXRpb24gb3IgYXV0b1NhdmVDYWxsYmFja2ApXG4gICAgICAgIH1cblxuXG4gICAgICAgIHRoaXMubG9hZERlcGVuZGVuY2llcygpXG4gICAgfVxuXG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZS5cbiAgICAgKi9cbiAgICBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IGF3YWl0IHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgY29ubmVjdGlvbiB3aXRoIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGFzeW5jIGRpc2Nvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMucXVlcnlSdW5uZXIgPSB1bmRlZmluZWRcbiAgICAgICAgdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uY2xvc2UoKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBxdWVyeSBydW5uZXIgdXNlZCB0byBleGVjdXRlIGRhdGFiYXNlIHF1ZXJpZXMuXG4gICAgICovXG4gICAgY3JlYXRlUXVlcnlSdW5uZXIobW9kZTogUmVwbGljYXRpb25Nb2RlKTogUXVlcnlSdW5uZXIgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICghdGhpcy5xdWVyeVJ1bm5lcikgdGhpcy5xdWVyeVJ1bm5lciA9IG5ldyBTcWxqc1F1ZXJ5UnVubmVyKHRoaXMpXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlSdW5uZXJcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIExvYWRzIGEgZGF0YWJhc2UgZnJvbSBhIGdpdmVuIGZpbGUgKE5vZGUuanMpLCBsb2NhbCBzdG9yYWdlIGtleSAoYnJvd3Nlcikgb3IgYXJyYXkuXG4gICAgICogVGhpcyB3aWxsIGRlbGV0ZSB0aGUgY3VycmVudCBkYXRhYmFzZSFcbiAgICAgKi9cbiAgICBhc3luYyBsb2FkKFxuICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgICAgICBjaGVja0lmRmlsZU9yTG9jYWxTdG9yYWdlRXhpc3RzOiBib29sZWFuID0gdHJ1ZSxcbiAgICApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAodHlwZW9mIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEgPT09IFwic3RyaW5nXCIpIHtcblxuICAgICAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJub2RlXCIpIHtcblxuXG4gICAgICAgICAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMuZmlsZUV4aXN0KGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlID0gUGxhdGZvcm1Ub29scy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQoZGF0YWJhc2UpXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGVja0lmRmlsZU9yTG9jYWxTdG9yYWdlRXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlT1JNRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgRmlsZSAke2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGF9IGRvZXMgbm90IGV4aXN0YCxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuICAgICAgICAgICAgICAgIGxldCBsb2NhbFN0b3JhZ2VDb250ZW50ID0gbnVsbFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXNlTG9jYWxGb3JhZ2UpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKF8uaXNVbmRlZmluZWQodGhpcy5kYXRhYmFzZUFycmF5RmFzdFtmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhXSkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UuZ2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdID0gY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZUNvbnRlbnQgPSB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBsb2NhbGZvcmFnZSBpcyBub3QgZGVmaW5lZCAtIHBsZWFzZSBpbXBvcnQgbG9jYWxmb3JhZ2UuanMgaW50byB5b3VyIHNpdGVgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2VDb250ZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtVG9vbHMuZ2V0R2xvYmFsVmFyaWFibGUoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2VDb250ZW50ICE9IG51bGwpIHtcblxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbiA9IHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSA/IGxvY2FsU3RvcmFnZUNvbnRlbnQgOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZUNvbnRlbnQpLFxuICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlICR7ZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YX0gZG9lcyBub3QgZXhpc3RgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChcbiAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZWQgdGhlIGN1cnJlbnQgZGF0YWJhc2UgdG8gdGhlIGdpdmVuIGZpbGUgKE5vZGUuanMpLCBsb2NhbCBzdG9yYWdlIGtleSAoYnJvd3Nlcikgb3JcbiAgICAgKiBpbmRleGVkREIga2V5IChicm93c2VyIHdpdGggZW5hYmxlZCB1c2VMb2NhbEZvcmFnZSBvcHRpb24pLlxuICAgICAqIElmIG5vIGxvY2F0aW9uIHBhdGggaXMgZ2l2ZW4sIHRoZSBsb2NhdGlvbiBwYXRoIGluIHRoZSBvcHRpb25zIChpZiBzcGVjaWZpZWQpIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICBhc3luYyBzYXZlKGxvY2F0aW9uPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbG9jYXRpb24gJiYgIXRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICBgTm8gbG9jYXRpb24gaXMgc2V0LCBzcGVjaWZ5IGEgbG9jYXRpb24gcGFyYW1ldGVyIG9yIGFkZCB0aGUgbG9jYXRpb24gb3B0aW9uIHRvIHlvdXIgY29uZmlndXJhdGlvbmAsXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGF0aCA9IFwiXCJcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBwYXRoID0gbG9jYXRpb25cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHBhdGggPSB0aGlzLm9wdGlvbnMubG9jYXRpb25cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChQbGF0Zm9ybVRvb2xzLnR5cGUgPT09IFwibm9kZVwiKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlOiBVaW50OEFycmF5ID0gdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uZXhwb3J0KClcblxuICAgICAgICAgICAgY29uc3QgZGF0YWJhc2VBcnJheSA9IFtdLnNsaWNlLmNhbGwoZGF0YWJhc2UpXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnVzZUxvY2FsRm9yYWdlKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhYmFzZUFycmF5RmFzdFtwYXRoXSA9IGRhdGFiYXNlQXJyYXk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVib3VuY2VTYXZlKHBhdGgpO1xuXG5cblxuXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBsb2NhbGZvcmFnZSBpcyBub3QgZGVmaW5lZCAtIHBsZWFzZSBpbXBvcnQgbG9jYWxmb3JhZ2UuanMgaW50byB5b3VyIHNpdGVgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFBsYXRmb3JtVG9vbHMuZ2V0R2xvYmFsVmFyaWFibGUoKS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YWJhc2VBcnJheSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBnZXRzIGNhbGxlZCBieSB0aGUgUXVlcnlSdW5uZXIgd2hlbiBhIGNoYW5nZSB0byB0aGUgZGF0YWJhc2UgaXMgbWFkZS5cbiAgICAgKiBJZiBhIGN1c3RvbSBhdXRvU2F2ZUNhbGxiYWNrIGlzIHNwZWNpZmllZCwgaXQgZ2V0J3MgY2FsbGVkIHdpdGggdGhlIGRhdGFiYXNlIGFzIFVpbnQ4QXJyYXksXG4gICAgICogb3RoZXJ3aXNlIHRoZSBzYXZlIG1ldGhvZCBpcyBjYWxsZWQgd2hpY2ggc2F2ZXMgaXQgdG8gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2UgKGJyb3dzZXIpXG4gICAgICogb3IgaW5kZXhlZERCIChicm93c2VyIHdpdGggZW5hYmxlZCB1c2VMb2NhbEZvcmFnZSBvcHRpb24pLlxuICAgICAqIERvbid0IGF1dG8tc2F2ZSB3aGVuIGluIHRyYW5zYWN0aW9uIGFzIHRoZSBjYWxsIHRvIGV4cG9ydCB3aWxsIGVuZCB0aGUgY3VycmVudCB0cmFuc2FjdGlvblxuICAgICAqL1xuICAgIGFzeW5jIGF1dG9TYXZlKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlICYmICF0aGlzLnF1ZXJ5UnVubmVyPy5pc1RyYW5zYWN0aW9uQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFjayh0aGlzLmV4cG9ydCgpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRhYmFzZSBhcyBVaW50OEFycmF5LlxuICAgICAqL1xuICAgIGV4cG9ydCgpOiBVaW50OEFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4cG9ydCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBnZW5lcmF0ZWQgbWFwIG9mIHZhbHVlcyBnZW5lcmF0ZWQgb3IgcmV0dXJuZWQgYnkgZGF0YWJhc2UgYWZ0ZXIgSU5TRVJUIHF1ZXJ5LlxuICAgICAqL1xuICAgIGNyZWF0ZUdlbmVyYXRlZE1hcChtZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsIGluc2VydFJlc3VsdDogYW55KSB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZE1hcCA9IG1ldGFkYXRhLmdlbmVyYXRlZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKG1hcCwgZ2VuZXJhdGVkQ29sdW1uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5pc1ByaW1hcnkgJiZcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9PT0gXCJpbmNyZW1lbnRcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IFwiU0VMRUNUIGxhc3RfaW5zZXJ0X3Jvd2lkKClcIlxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4ZWMocXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1F1ZXJ5KHF1ZXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ybVV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNyZWF0ZVZhbHVlTWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0udmFsdWVzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nUXVlcnlFcnJvcihlLCBxdWVyeSwgW10pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30gYXMgT2JqZWN0TGl0ZXJhbCxcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhnZW5lcmF0ZWRNYXApLmxlbmd0aCA+IDAgPyBnZW5lcmF0ZWRNYXAgOiB1bmRlZmluZWRcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIHRoZSBkYXRhYmFzZS5cbiAgICAgKiBJZiB0aGUgbG9jYXRpb24gb3B0aW9uIGlzIHNldCwgdGhlIGRhdGFiYXNlIGlzIGxvYWRlZCBmaXJzdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQodGhpcy5vcHRpb25zLmxvY2F0aW9uLCBmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQodGhpcy5vcHRpb25zLmRhdGFiYXNlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGRhdGFiYXNlLlxuICAgICAqIElmIGRhdGFiYXNlIGlzIHNwZWNpZmllZCBpdCBpcyBsb2FkZWQsIG90aGVyd2lzZSBhIG5ldyBlbXB0eSBkYXRhYmFzZSBpcyBjcmVhdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICBkYXRhYmFzZT86IFVpbnQ4QXJyYXksXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcblxuICAgICAgICBjb25zdCBpc0xlZ2FjeVZlcnNpb24gPSB0eXBlb2YgdGhpcy5zcWxpdGUuRGF0YWJhc2UgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICBjb25zdCBzcWxpdGUgPSBpc0xlZ2FjeVZlcnNpb25cbiAgICAgICAgICAgID8gdGhpcy5zcWxpdGVcbiAgICAgICAgICAgIDogYXdhaXQgdGhpcy5zcWxpdGUodGhpcy5vcHRpb25zLnNxbEpzQ29uZmlnKVxuICAgICAgICBpZiAoZGF0YWJhc2UgJiYgZGF0YWJhc2UubGVuZ3RoID4gMCkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IG5ldyBzcWxpdGUuRGF0YWJhc2UoZGF0YWJhc2UpXG4gICAgICAgIH0gZWxzZSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IHNxbGl0ZS5EYXRhYmFzZSgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leGVjKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gT05gKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRyaXZlciBkZXBlbmRlbmN5IGlzIG5vdCBnaXZlbiBleHBsaWNpdGx5LCB0aGVuIHRyeSB0byBsb2FkIGl0IHZpYSBcInJlcXVpcmVcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZERlcGVuZGVuY2llcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJicm93c2VyXCIpIHtcblxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3Qgc3FsaXRlID0gdGhpcy5vcHRpb25zLmRyaXZlciB8fCB3aW5kb3dbJ1NRTCddIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3FsaXRlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyaXZlciB8fCBQbGF0Zm9ybVRvb2xzLmxvYWQoXCJzcWwuanNcIikgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvcihcInNxbC5qc1wiLCBcInNxbC5qc1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL2RyaXZlci9zcWxqcy9TcWxqc0RyaXZlci50cyJdfQ==
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsanNEcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90YW9uLXR5cGVvcm0vcHJvamVjdHMvdGFvbi10eXBlb3JtL3NyYy9saWIvdHlwZW9ybS9kcml2ZXIvc3FsanMvU3FsanNEcml2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUc5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJTCxJQUFJLFdBQVcsR0FBRyxFQUFTLENBQUM7QUFDNUIsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsYUFBYTtBQUNiLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFJNUIsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSxPQUFPLFdBQVksU0FBUSxvQkFBb0I7SUFrQmpELFlBQVksVUFBc0I7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBZm5CLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2QixpQkFBWSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxF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TSxDQUFDLENBQUMsYUFBYTtZQUNsQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUV4RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0I7UUFDdEIsSUFBSSxhQUFhLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBRW5DLGFBQWE7WUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxhQUFhO1lBQ2pFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBRXhCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDO2dCQUNELE1BQU0sTUFBTSxHQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxhQUFhO2dCQUNyRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtZQUN4QixDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxNQUFNLElBQUksOEJBQThCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQ2hFLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRkFBaUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQWJzdHJhY3RTcWxpdGVEcml2ZXIgfSBmcm9tIFwiLi4vc3FsaXRlLWFic3RyYWN0L0Fic3RyYWN0U3FsaXRlRHJpdmVyXCJcbmltcG9ydCB7IFNxbGpzQ29ubmVjdGlvbk9wdGlvbnMgfSBmcm9tIFwiLi9TcWxqc0Nvbm5lY3Rpb25PcHRpb25zXCJcbmltcG9ydCB7IFNxbGpzUXVlcnlSdW5uZXIgfSBmcm9tIFwiLi9TcWxqc1F1ZXJ5UnVubmVyXCJcbmltcG9ydCB7IFF1ZXJ5UnVubmVyIH0gZnJvbSBcIi4uLy4uL3F1ZXJ5LXJ1bm5lci9RdWVyeVJ1bm5lclwiXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uLy4uL2RhdGEtc291cmNlL0RhdGFTb3VyY2VcIlxuaW1wb3J0IHsgRHJpdmVyUGFja2FnZU5vdEluc3RhbGxlZEVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yL0RyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvclwiXG5pbXBvcnQgeyBEcml2ZXJPcHRpb25Ob3RTZXRFcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvci9Ecml2ZXJPcHRpb25Ob3RTZXRFcnJvclwiXG5pbXBvcnQgeyBQbGF0Zm9ybVRvb2xzIH0gZnJvbSBcIi4uLy4uL3BsYXRmb3JtL1BsYXRmb3JtVG9vbHNcIlxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGEgfSBmcm9tIFwiLi4vLi4vbWV0YWRhdGEvRW50aXR5TWV0YWRhdGFcIlxuaW1wb3J0IHsgT3JtVXRpbHMgfSBmcm9tIFwiLi4vLi4vdXRpbC9Pcm1VdGlsc1wiXG5pbXBvcnQgeyBPYmplY3RMaXRlcmFsIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9PYmplY3RMaXRlcmFsXCJcbmltcG9ydCB7IFJlcGxpY2F0aW9uTW9kZSB9IGZyb20gXCIuLi90eXBlcy9SZXBsaWNhdGlvbk1vZGVcIlxuaW1wb3J0IHsgVHlwZU9STUVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yXCJcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5sZXQgZW52aXJvbm1lbnQgPSB7fSBhcyBhbnk7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vLyBAdHMtaWdub3JlXG5lbnZpcm9ubWVudCA9IHdpbmRvd1snRU5WJ107XG5cblxuXG5jb25zdCBTQVZFX0xPQ0FMX0ZPUkdFX1RJTUVPVVQgPSA1MDA7XG5cbmV4cG9ydCBjbGFzcyBTcWxqc0RyaXZlciBleHRlbmRzIEFic3RyYWN0U3FsaXRlRHJpdmVyIHtcblxuICAgIG9wdGlvbnM6IFNxbGpzQ29ubmVjdGlvbk9wdGlvbnM7XG4gICAgbG9jYWxGb3JnZUluc3RhbmNlOiBhbnk7XG4gICAgZGF0YWJhc2VBcnJheUZhc3QgPSB7fTtcbiAgICBkZWJvdW5jZVNhdmUgPSBfLmRlYm91bmNlKGFzeW5jIChwYXRoKT0+IHtcblxuICAgICAgYXdhaXQgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2Uuc2V0SXRlbShcbiAgICAgICAgcGF0aCxcbiAgICAgICAgdGhpcy5kYXRhYmFzZUFycmF5RmFzdFtwYXRoXSxcbiAgICAgICk7XG5cbiAgICB9LFNBVkVfTE9DQUxfRk9SR0VfVElNRU9VVCk7XG5cblxuXG5cblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IERhdGFTb3VyY2UpIHtcbiAgICAgIHN1cGVyKGNvbm5lY3Rpb24pXG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IGxvY2FsRm9yZ2UgPSB3aW5kb3dbJ2xvY2FsZm9yYWdlJ107XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSA9IGxvY2FsRm9yZ2U/LmNyZWF0ZUluc3RhbmNlKHtcbiAgICAgICAgZHJpdmVyOiBsb2NhbEZvcmdlLklOREVYRUREQixcbiAgICAgICAgc3RvcmVOYW1lOiAnZmlyZWRldi10eXBlb3JtXycgKyBfLmtlYmFiQ2FzZShlbnZpcm9ubWVudD8uY3VycmVudFByb2plY3RHZW5lcmljTmFtZSksXG4gICAgICB9KVxuXG5cblxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5hdXRvU2F2ZSAmJlxuICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5sb2NhdGlvbiAmJlxuICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5hdXRvU2F2ZUNhbGxiYWNrXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlck9wdGlvbk5vdFNldEVycm9yKGBsb2NhdGlvbiBvciBhdXRvU2F2ZUNhbGxiYWNrYClcbiAgICAgICAgfVxuXG5cbiAgICAgICAgdGhpcy5sb2FkRGVwZW5kZW5jaWVzKClcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGNvbm5lY3Rpb24gdG8gdGhlIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gYXdhaXQgdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb24oKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyBjb25uZWN0aW9uIHdpdGggZGF0YWJhc2UuXG4gICAgICovXG4gICAgYXN5bmMgZGlzY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5xdWVyeVJ1bm5lciA9IHVuZGVmaW5lZFxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5jbG9zZSgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHF1ZXJ5IHJ1bm5lciB1c2VkIHRvIGV4ZWN1dGUgZGF0YWJhc2UgcXVlcmllcy5cbiAgICAgKi9cbiAgICBjcmVhdGVRdWVyeVJ1bm5lcihtb2RlOiBSZXBsaWNhdGlvbk1vZGUpOiBRdWVyeVJ1bm5lciB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKCF0aGlzLnF1ZXJ5UnVubmVyKSB0aGlzLnF1ZXJ5UnVubmVyID0gbmV3IFNxbGpzUXVlcnlSdW5uZXIodGhpcylcblxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVJ1bm5lclxuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgYSBkYXRhYmFzZSBmcm9tIGEgZ2l2ZW4gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2Uga2V5IChicm93c2VyKSBvciBhcnJheS5cbiAgICAgKiBUaGlzIHdpbGwgZGVsZXRlIHRoZSBjdXJyZW50IGRhdGFiYXNlIVxuICAgICAqL1xuICAgIGFzeW5jIGxvYWQoXG4gICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGE6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgICAgIGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHM6IGJvb2xlYW4gPSB0cnVlLFxuICAgICk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSA9PT0gXCJzdHJpbmdcIikge1xuXG4gICAgICAgICAgICBpZiAoUGxhdGZvcm1Ub29scy50eXBlID09PSBcIm5vZGVcIikge1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoUGxhdGZvcm1Ub29scy5maWxlRXhpc3QoZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBQbGF0Zm9ybVRvb2xzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChkYXRhYmFzZSlcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlICR7ZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YX0gZG9lcyBub3QgZXhpc3RgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcblxuXG4gICAgICAgICAgICAgICAgbGV0IGxvY2FsU3RvcmFnZUNvbnRlbnQgPSBudWxsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy51c2VMb2NhbEZvcmFnZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYoXy5pc1VuZGVmaW5lZCh0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZS5nZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YV0gPSBjb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlQ29udGVudCA9IHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YV07XG5cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlT1JNRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGxvY2FsZm9yYWdlIGlzIG5vdCBkZWZpbmVkIC0gcGxlYXNlIGltcG9ydCBsb2NhbGZvcmFnZS5qcyBpbnRvIHlvdXIgc2l0ZWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZUNvbnRlbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Ub29scy5nZXRHbG9iYWxWYXJpYWJsZSgpLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZUNvbnRlbnQgIT0gbnVsbCkge1xuXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uID0gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxGb3JnZUluc3RhbmNlID8gbG9jYWxTdG9yYWdlQ29udGVudCA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlQ29udGVudCksXG4gICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hlY2tJZkZpbGVPckxvY2FsU3RvcmFnZUV4aXN0cykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgYEZpbGUgJHtmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhfSBkb2VzIG5vdCBleGlzdGAsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG5cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTYXZlZCB0aGUgY3VycmVudCBkYXRhYmFzZSB0byB0aGUgZ2l2ZW4gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2Uga2V5IChicm93c2VyKSBvclxuICAgICAqIGluZGV4ZWREQiBrZXkgKGJyb3dzZXIgd2l0aCBlbmFibGVkIHVzZUxvY2FsRm9yYWdlIG9wdGlvbikuXG4gICAgICogSWYgbm8gbG9jYXRpb24gcGF0aCBpcyBnaXZlbiwgdGhlIGxvY2F0aW9uIHBhdGggaW4gdGhlIG9wdGlvbnMgKGlmIHNwZWNpZmllZCkgd2lsbCBiZSB1c2VkLlxuICAgICAqL1xuICAgIGFzeW5jIHNhdmUobG9jYXRpb24/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFsb2NhdGlvbiAmJiAhdGhpcy5vcHRpb25zLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgIGBObyBsb2NhdGlvbiBpcyBzZXQsIHNwZWNpZnkgYSBsb2NhdGlvbiBwYXJhbWV0ZXIgb3IgYWRkIHRoZSBsb2NhdGlvbiBvcHRpb24gdG8geW91ciBjb25maWd1cmF0aW9uYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXRoID0gXCJcIlxuICAgICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIHBhdGggPSBsb2NhdGlvblxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgICAgICAgcGF0aCA9IHRoaXMub3B0aW9ucy5sb2NhdGlvblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJub2RlXCIpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0YWJhc2U6IFVpbnQ4QXJyYXkgPSB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leHBvcnQoKVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhYmFzZUFycmF5ID0gW10uc2xpY2UuY2FsbChkYXRhYmFzZSlcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXNlTG9jYWxGb3JhZ2UpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W3BhdGhdID0gZGF0YWJhc2VBcnJheTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJvdW5jZVNhdmUocGF0aCk7XG5cblxuXG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgYGxvY2FsZm9yYWdlIGlzIG5vdCBkZWZpbmVkIC0gcGxlYXNlIGltcG9ydCBsb2NhbGZvcmFnZS5qcyBpbnRvIHlvdXIgc2l0ZWAsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgUGxhdGZvcm1Ub29scy5nZXRHbG9iYWxWYXJpYWJsZSgpLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShkYXRhYmFzZUFycmF5KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGdldHMgY2FsbGVkIGJ5IHRoZSBRdWVyeVJ1bm5lciB3aGVuIGEgY2hhbmdlIHRvIHRoZSBkYXRhYmFzZSBpcyBtYWRlLlxuICAgICAqIElmIGEgY3VzdG9tIGF1dG9TYXZlQ2FsbGJhY2sgaXMgc3BlY2lmaWVkLCBpdCBnZXQncyBjYWxsZWQgd2l0aCB0aGUgZGF0YWJhc2UgYXMgVWludDhBcnJheSxcbiAgICAgKiBvdGhlcndpc2UgdGhlIHNhdmUgbWV0aG9kIGlzIGNhbGxlZCB3aGljaCBzYXZlcyBpdCB0byBmaWxlIChOb2RlLmpzKSwgbG9jYWwgc3RvcmFnZSAoYnJvd3NlcilcbiAgICAgKiBvciBpbmRleGVkREIgKGJyb3dzZXIgd2l0aCBlbmFibGVkIHVzZUxvY2FsRm9yYWdlIG9wdGlvbikuXG4gICAgICogRG9uJ3QgYXV0by1zYXZlIHdoZW4gaW4gdHJhbnNhY3Rpb24gYXMgdGhlIGNhbGwgdG8gZXhwb3J0IHdpbGwgZW5kIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uXG4gICAgICovXG4gICAgYXN5bmMgYXV0b1NhdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b1NhdmVcblxuXG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFjayh0aGlzLmV4cG9ydCgpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRhYmFzZSBhcyBVaW50OEFycmF5LlxuICAgICAqL1xuICAgIGV4cG9ydCgpOiBVaW50OEFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4cG9ydCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBnZW5lcmF0ZWQgbWFwIG9mIHZhbHVlcyBnZW5lcmF0ZWQgb3IgcmV0dXJuZWQgYnkgZGF0YWJhc2UgYWZ0ZXIgSU5TRVJUIHF1ZXJ5LlxuICAgICAqL1xuICAgIGNyZWF0ZUdlbmVyYXRlZE1hcChtZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsIGluc2VydFJlc3VsdDogYW55KSB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZE1hcCA9IG1ldGFkYXRhLmdlbmVyYXRlZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKG1hcCwgZ2VuZXJhdGVkQ29sdW1uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5pc1ByaW1hcnkgJiZcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9PT0gXCJpbmNyZW1lbnRcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IFwiU0VMRUNUIGxhc3RfaW5zZXJ0X3Jvd2lkKClcIlxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4ZWMocXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1F1ZXJ5KHF1ZXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ybVV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNyZWF0ZVZhbHVlTWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0udmFsdWVzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nUXVlcnlFcnJvcihlLCBxdWVyeSwgW10pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30gYXMgT2JqZWN0TGl0ZXJhbCxcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhnZW5lcmF0ZWRNYXApLmxlbmd0aCA+IDAgPyBnZW5lcmF0ZWRNYXAgOiB1bmRlZmluZWRcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIHRoZSBkYXRhYmFzZS5cbiAgICAgKiBJZiB0aGUgbG9jYXRpb24gb3B0aW9uIGlzIHNldCwgdGhlIGRhdGFiYXNlIGlzIGxvYWRlZCBmaXJzdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQodGhpcy5vcHRpb25zLmxvY2F0aW9uLCBmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQodGhpcy5vcHRpb25zLmRhdGFiYXNlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGRhdGFiYXNlLlxuICAgICAqIElmIGRhdGFiYXNlIGlzIHNwZWNpZmllZCBpdCBpcyBsb2FkZWQsIG90aGVyd2lzZSBhIG5ldyBlbXB0eSBkYXRhYmFzZSBpcyBjcmVhdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICBkYXRhYmFzZT86IFVpbnQ4QXJyYXksXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcblxuICAgICAgICBjb25zdCBpc0xlZ2FjeVZlcnNpb24gPSB0eXBlb2YgdGhpcy5zcWxpdGUuRGF0YWJhc2UgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICBjb25zdCBzcWxpdGUgPSBpc0xlZ2FjeVZlcnNpb25cbiAgICAgICAgICAgID8gdGhpcy5zcWxpdGVcbiAgICAgICAgICAgIDogYXdhaXQgdGhpcy5zcWxpdGUodGhpcy5vcHRpb25zLnNxbEpzQ29uZmlnKVxuICAgICAgICBpZiAoZGF0YWJhc2UgJiYgZGF0YWJhc2UubGVuZ3RoID4gMCkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IG5ldyBzcWxpdGUuRGF0YWJhc2UoZGF0YWJhc2UpXG4gICAgICAgIH0gZWxzZSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IHNxbGl0ZS5EYXRhYmFzZSgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leGVjKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gT05gKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRyaXZlciBkZXBlbmRlbmN5IGlzIG5vdCBnaXZlbiBleHBsaWNpdGx5LCB0aGVuIHRyeSB0byBsb2FkIGl0IHZpYSBcInJlcXVpcmVcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZERlcGVuZGVuY2llcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJicm93c2VyXCIpIHtcblxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3Qgc3FsaXRlID0gdGhpcy5vcHRpb25zLmRyaXZlciB8fCB3aW5kb3dbJ1NRTCddIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3FsaXRlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyaXZlciB8fCBQbGF0Zm9ybVRvb2xzLmxvYWQoXCJzcWwuanNcIikgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvcihcInNxbC5qc1wiLCBcInNxbC5qc1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL2RyaXZlci9zcWxqcy9TcWxqc0RyaXZlci50cyJdfQ==
|
|
@@ -14084,7 +14084,7 @@ class SqljsDriver extends AbstractSqliteDriver {
|
|
|
14084
14084
|
* Don't auto-save when in transaction as the call to export will end the current transaction
|
|
14085
14085
|
*/
|
|
14086
14086
|
async autoSave() {
|
|
14087
|
-
if (this.options.autoSave
|
|
14087
|
+
if (this.options.autoSave) {
|
|
14088
14088
|
if (this.options.autoSaveCallback) {
|
|
14089
14089
|
await this.options.autoSaveCallback(this.export());
|
|
14090
14090
|
}
|