taon 18.0.21 → 18.0.23
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/README.md +114 -114
- package/assets/shared/shared_folder_info.txt +1 -1
- package/bin/start.js +279 -279
- package/bin/taon +6 -6
- package/bin/taon-debug +5 -5
- package/bin/taon-debug-brk +5 -5
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/base-classes/base-migration.mjs +3 -3
- package/browser/esm2022/lib/context-db-migrations.mjs +16 -1
- package/browser/esm2022/lib/create-context.mjs +8 -3
- package/browser/esm2022/lib/endpoint-context.mjs +12 -2
- package/browser/esm2022/lib/models.mjs +1 -1
- package/browser/esm2022/lib/orm.mjs +1 -1
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +24 -26
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +4 -9
- package/browser/fesm2022/taon.mjs +63 -37
- package/browser/fesm2022/taon.mjs.map +1 -1
- package/browser/lib/context-db-migrations.d.ts +1 -0
- package/browser/lib/endpoint-context.d.ts +1 -0
- package/browser/lib/models.d.ts +1 -0
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +1 -2
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +0 -3
- package/client/README.md +24 -24
- package/client/esm2022/lib/base-classes/base-migration.mjs +3 -3
- package/client/esm2022/lib/context-db-migrations.mjs +16 -1
- package/client/esm2022/lib/create-context.mjs +8 -3
- package/client/esm2022/lib/endpoint-context.mjs +12 -2
- package/client/esm2022/lib/models.mjs +1 -1
- package/client/esm2022/lib/orm.mjs +1 -1
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +24 -26
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +4 -9
- package/client/fesm2022/taon.mjs +63 -37
- package/client/fesm2022/taon.mjs.map +1 -1
- package/client/lib/context-db-migrations.d.ts +1 -0
- package/client/lib/endpoint-context.d.ts +1 -0
- package/client/lib/models.d.ts +1 -0
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +1 -2
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +0 -3
- package/lib/base-classes/base-migration.d.ts +2 -2
- package/lib/base-classes/base-migration.js +2 -2
- package/lib/base-classes/base-migration.js.map +1 -1
- package/lib/base-classes/base-repository.d.ts +4 -4
- package/lib/base-classes/base-subscriber-for-entity.d.ts +2 -2
- package/lib/context-db-migrations.d.ts +3 -2
- package/lib/context-db-migrations.js +35 -15
- package/lib/context-db-migrations.js.map +1 -1
- package/lib/create-context.js +8 -2
- package/lib/create-context.js.map +1 -1
- package/lib/decorators/classes/entity-decorator.d.ts +2 -2
- package/lib/decorators/http/http-decorators.d.ts +2 -2
- package/lib/decorators/http/http-methods-decorators.d.ts +3 -3
- package/lib/endpoint-context.d.ts +2 -1
- package/lib/endpoint-context.js +93 -83
- package/lib/endpoint-context.js.map +1 -1
- package/lib/formly/fromly.d.ts +2 -2
- package/lib/models.d.ts +4 -3
- package/lib/models.js.map +1 -1
- package/lib/orm.d.ts +7 -3
- package/lib/orm.js +11 -2
- package/lib/orm.js.map +1 -1
- package/lib/ui/directives/index.js +2 -2
- package/lib/ui/directives/taon-long-press.directive.d.ts +1 -1
- package/lib/ui/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +2 -3
- package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
- package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
- package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
- package/lib/ui/taon-progress-bar/index.js +2 -2
- package/lib/ui/taon-session-passcode/index.js +2 -2
- package/lib/ui/taon-table/index.js +2 -2
- package/lib/ui/taon-table/taon-table.component.d.ts +1 -1
- package/lib/ui/taon.models.d.ts +2 -2
- package/package.json +7 -7
- package/taon.jsonc +47 -47
- package/tmp-environment.json +30 -29
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/base-classes/base-migration.mjs +3 -3
- package/websql/esm2022/lib/context-db-migrations.mjs +7 -2
- package/websql/esm2022/lib/create-context.mjs +8 -3
- package/websql/esm2022/lib/endpoint-context.mjs +24 -15
- package/websql/esm2022/lib/models.mjs +1 -1
- package/websql/esm2022/lib/orm.mjs +7 -2
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +24 -26
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +4 -9
- package/websql/fesm2022/taon.mjs +70 -51
- package/websql/fesm2022/taon.mjs.map +1 -1
- package/websql/lib/context-db-migrations.d.ts +1 -0
- package/websql/lib/endpoint-context.d.ts +1 -0
- package/websql/lib/models.d.ts +1 -0
- package/websql/lib/orm.d.ts +5 -1
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +1 -2
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +0 -3
package/taon.jsonc
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
{
|
|
2
|
-
"resources": ["README.md", "bin"],
|
|
3
|
-
|
|
4
|
-
"overrided": {
|
|
5
|
-
"linkedFolders": [],
|
|
6
|
-
"includeAsDev": [],
|
|
7
|
-
|
|
8
|
-
"includeOnly": [
|
|
9
|
-
"tnp",
|
|
10
|
-
"tslib",
|
|
11
|
-
"ora",
|
|
12
|
-
"ng2-rest",
|
|
13
|
-
"json10",
|
|
14
|
-
"lodash-walk-object",
|
|
15
|
-
"taon-type-sql",
|
|
16
|
-
"socket.io"
|
|
17
|
-
],
|
|
18
|
-
|
|
19
|
-
"ignoreDepsPattern": [],
|
|
20
|
-
"dependencies": {},
|
|
21
|
-
"npmFixes": []
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
"smartContainerBuildTarget": "",
|
|
25
|
-
"linkedRepos": [],
|
|
26
|
-
|
|
27
|
-
"libReleaseOptions": {
|
|
28
|
-
"nodts": false,
|
|
29
|
-
"obscure": false,
|
|
30
|
-
"ugly": false,
|
|
31
|
-
"includeNodeModules": false,
|
|
32
|
-
"cliBuildNoDts": false,
|
|
33
|
-
"cliBuildObscure": false,
|
|
34
|
-
"cliBuildIncludeNodeModules": false,
|
|
35
|
-
"cliBuildUglify": false
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
"smartContainerTarget": "",
|
|
39
|
-
"type": "isomorphic-lib",
|
|
40
|
-
"version": "v18",
|
|
41
|
-
"additionalNpmNames": [],
|
|
42
|
-
"scripts": {},
|
|
43
|
-
"description": "Isomorphic solution for backend and frontend",
|
|
44
|
-
"license": "MIT",
|
|
45
|
-
"private": false,
|
|
46
|
-
"author": "Dariusz Filipiak",
|
|
47
|
-
"homepage": "https://github.com/darekf77/taon#readme"
|
|
1
|
+
{
|
|
2
|
+
"resources": ["README.md", "bin"],
|
|
3
|
+
|
|
4
|
+
"overrided": {
|
|
5
|
+
"linkedFolders": [],
|
|
6
|
+
"includeAsDev": [],
|
|
7
|
+
|
|
8
|
+
"includeOnly": [
|
|
9
|
+
"tnp",
|
|
10
|
+
"tslib",
|
|
11
|
+
"ora",
|
|
12
|
+
"ng2-rest",
|
|
13
|
+
"json10",
|
|
14
|
+
"lodash-walk-object",
|
|
15
|
+
"taon-type-sql",
|
|
16
|
+
"socket.io"
|
|
17
|
+
],
|
|
18
|
+
|
|
19
|
+
"ignoreDepsPattern": [],
|
|
20
|
+
"dependencies": {},
|
|
21
|
+
"npmFixes": []
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
"smartContainerBuildTarget": "",
|
|
25
|
+
"linkedRepos": [],
|
|
26
|
+
|
|
27
|
+
"libReleaseOptions": {
|
|
28
|
+
"nodts": false,
|
|
29
|
+
"obscure": false,
|
|
30
|
+
"ugly": false,
|
|
31
|
+
"includeNodeModules": false,
|
|
32
|
+
"cliBuildNoDts": false,
|
|
33
|
+
"cliBuildObscure": false,
|
|
34
|
+
"cliBuildIncludeNodeModules": false,
|
|
35
|
+
"cliBuildUglify": false
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
"smartContainerTarget": "",
|
|
39
|
+
"type": "isomorphic-lib",
|
|
40
|
+
"version": "v18",
|
|
41
|
+
"additionalNpmNames": [],
|
|
42
|
+
"scripts": {},
|
|
43
|
+
"description": "Isomorphic solution for backend and frontend",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"private": false,
|
|
46
|
+
"author": "Dariusz Filipiak",
|
|
47
|
+
"homepage": "https://github.com/darekf77/taon#readme"
|
|
48
48
|
}
|
package/tmp-environment.json
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"homepage": "https://github.com/darekf77/taon#readme"
|
|
52
52
|
},
|
|
53
53
|
"name": "taon",
|
|
54
|
-
"version": "18.0.
|
|
54
|
+
"version": "18.0.23",
|
|
55
55
|
"description": "Isomorphic solution for backend and frontend",
|
|
56
56
|
"scripts": {
|
|
57
57
|
"mkdocs": "python3 -m mkdocs"
|
|
@@ -66,18 +66,18 @@
|
|
|
66
66
|
},
|
|
67
67
|
"homepage": "https://github.com/darekf77/taon#readme",
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"json10": "~18.0.
|
|
70
|
-
"lodash-walk-object": "~18.0.
|
|
71
|
-
"ng2-rest": "~18.0.
|
|
69
|
+
"json10": "~18.0.18",
|
|
70
|
+
"lodash-walk-object": "~18.0.18",
|
|
71
|
+
"ng2-rest": "~18.0.18",
|
|
72
72
|
"ora": "3.4.0",
|
|
73
73
|
"socket.io": "4.7.5",
|
|
74
|
-
"taon-type-sql": "18.0.
|
|
75
|
-
"tnp": "~18.0.
|
|
74
|
+
"taon-type-sql": "18.0.18",
|
|
75
|
+
"tnp": "~18.0.23",
|
|
76
76
|
"tslib": "~2.6.3"
|
|
77
77
|
},
|
|
78
78
|
"license": "MIT",
|
|
79
79
|
"private": false,
|
|
80
|
-
"lastBuildTagHash": "
|
|
80
|
+
"lastBuildTagHash": "4295d1dd29047b6cb4454ae737387447c5efee4b",
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@angular-builders/custom-webpack": "~18.0.0",
|
|
83
83
|
"@angular-devkit/build-angular": "~18.1.4",
|
|
@@ -242,13 +242,14 @@
|
|
|
242
242
|
"image-focus": "1.2.1",
|
|
243
243
|
"immer": "10.0.2",
|
|
244
244
|
"immutable": "4.3.7",
|
|
245
|
-
"incremental-compiler": "~18.0.
|
|
245
|
+
"incremental-compiler": "~18.0.19",
|
|
246
246
|
"inquirer": "7.3.3",
|
|
247
247
|
"inquirer-autocomplete-prompt": "1.4.0",
|
|
248
248
|
"inquirer-autocomplete-standalone": "0.8.1",
|
|
249
249
|
"inquirer-select-pro": "1.0.0-alpha.7",
|
|
250
|
+
"inquirer-toggle": "1.0.1",
|
|
250
251
|
"is-elevated": "3.0.0",
|
|
251
|
-
"isomorphic-region-loader": "~18.0.
|
|
252
|
+
"isomorphic-region-loader": "~18.0.18",
|
|
252
253
|
"istanbul-instrumenter-loader": "3.0.1",
|
|
253
254
|
"jest": "29.7.0",
|
|
254
255
|
"jest-date-mock": "1.0.10",
|
|
@@ -259,7 +260,7 @@
|
|
|
259
260
|
"joi": "17.13.3",
|
|
260
261
|
"jscodeshift": "0.6.3",
|
|
261
262
|
"json-stringify-safe": "5.0.1",
|
|
262
|
-
"json10-writer": "~18.0.
|
|
263
|
+
"json10-writer": "~18.0.18",
|
|
263
264
|
"json5": "2.2.3",
|
|
264
265
|
"json5-writer": "0.2.0",
|
|
265
266
|
"jszip": "3.10.1",
|
|
@@ -269,7 +270,7 @@
|
|
|
269
270
|
"lockfile": "1.0.4",
|
|
270
271
|
"lodash": "4.17.21",
|
|
271
272
|
"lowdb": "7.0.1",
|
|
272
|
-
"magic-renamer": "~18.0.
|
|
273
|
+
"magic-renamer": "~18.0.18",
|
|
273
274
|
"material-design-icons": "3.0.1",
|
|
274
275
|
"method-override": "2.3.10",
|
|
275
276
|
"minimist": "1.2.8",
|
|
@@ -280,10 +281,10 @@
|
|
|
280
281
|
"ng-in-viewport": "16.1.0",
|
|
281
282
|
"ng-lock": "18.0.1",
|
|
282
283
|
"ng-packagr": "18.1.0",
|
|
283
|
-
"ng-talkback": "~18.0.
|
|
284
|
-
"ng2-logger": "~18.0.
|
|
284
|
+
"ng-talkback": "~18.0.17",
|
|
285
|
+
"ng2-logger": "~18.0.20",
|
|
285
286
|
"ng2-pdfjs-viewer": "18.0.0",
|
|
286
|
-
"ng2-rest-swagger-generator": "18.0.
|
|
287
|
+
"ng2-rest-swagger-generator": "18.0.15",
|
|
287
288
|
"ngx-ace-wrapper": "17.0.0",
|
|
288
289
|
"ngx-editor": "17.5.4",
|
|
289
290
|
"ngx-highlightjs": "12.0.0",
|
|
@@ -297,7 +298,7 @@
|
|
|
297
298
|
"ngx-scrolltop": "18.0.0",
|
|
298
299
|
"ngx-store": "3.1.1",
|
|
299
300
|
"ngx-typed-js": "2.1.1",
|
|
300
|
-
"node-cli-tester": "~18.0.
|
|
301
|
+
"node-cli-tester": "~18.0.17",
|
|
301
302
|
"node-localstorage": "2.1.6",
|
|
302
303
|
"node-notifier": "10.0.1",
|
|
303
304
|
"node-polyfill-webpack-plugin": "2.0.1",
|
|
@@ -327,7 +328,7 @@
|
|
|
327
328
|
"q": "1.5.1",
|
|
328
329
|
"rallax.js": "2.0.4",
|
|
329
330
|
"randomcolor": "0.5.3",
|
|
330
|
-
"record-replay-req-res-scenario": "~18.0.
|
|
331
|
+
"record-replay-req-res-scenario": "~18.0.17",
|
|
331
332
|
"reflect-metadata": "0.2.2",
|
|
332
333
|
"rimraf": "2.6.2",
|
|
333
334
|
"rxjs": "~7.8.1",
|
|
@@ -340,21 +341,21 @@
|
|
|
340
341
|
"sql-template-strings": "2.2.2",
|
|
341
342
|
"sql-template-tag": "5.2.1",
|
|
342
343
|
"sql.js": "1.8.0",
|
|
343
|
-
"static-columns": "~18.0.
|
|
344
|
+
"static-columns": "~18.0.19",
|
|
344
345
|
"string-similarity": "4.0.4",
|
|
345
346
|
"sudo-block": "3.0.0",
|
|
346
347
|
"supertest": "7.0.0",
|
|
347
348
|
"sweetalert2": "11.7.32",
|
|
348
349
|
"systeminformation": "3.45.7",
|
|
349
350
|
"taon": "^18",
|
|
350
|
-
"taon-storage": "18.0.
|
|
351
|
-
"taon-typeorm": "18.0.
|
|
351
|
+
"taon-storage": "18.0.26",
|
|
352
|
+
"taon-typeorm": "18.0.16",
|
|
352
353
|
"task.js": "0.1.5",
|
|
353
354
|
"threads": "1.7.0",
|
|
354
|
-
"tnp-config": "~18.0.
|
|
355
|
-
"tnp-core": "~18.0.
|
|
356
|
-
"tnp-helpers": "~18.0.
|
|
357
|
-
"tnp-models": "~18.0.
|
|
355
|
+
"tnp-config": "~18.0.20",
|
|
356
|
+
"tnp-core": "~18.0.45",
|
|
357
|
+
"tnp-helpers": "~18.0.18",
|
|
358
|
+
"tnp-models": "~18.0.19",
|
|
358
359
|
"ts-debug": "1.3.0",
|
|
359
360
|
"ts-json-schema-generator": "2.3.0-next.5",
|
|
360
361
|
"ts-loader": "2.3.1",
|
|
@@ -365,14 +366,14 @@
|
|
|
365
366
|
"typedoc": "0.26.5",
|
|
366
367
|
"typedoc-plugin-markdown": "4.2.3",
|
|
367
368
|
"typescript": "~5.5.4",
|
|
368
|
-
"typescript-class-helpers": "~18.0.
|
|
369
|
+
"typescript-class-helpers": "~18.0.19",
|
|
369
370
|
"typescript-formatter": "~7.2.2",
|
|
370
371
|
"typescript-string-enums": "~1.0.0",
|
|
371
372
|
"underscore": "1.13.7",
|
|
372
373
|
"uuid": "10.0.0",
|
|
373
374
|
"validator": "13.5.2",
|
|
374
375
|
"video.js": "8.3.0",
|
|
375
|
-
"vpn-split": "~18.0.
|
|
376
|
+
"vpn-split": "~18.0.16",
|
|
376
377
|
"vscode": "1.1.37",
|
|
377
378
|
"wait-on": "8.0.1",
|
|
378
379
|
"watch": "1.0.2",
|
|
@@ -390,14 +391,14 @@
|
|
|
390
391
|
}
|
|
391
392
|
},
|
|
392
393
|
"build": {
|
|
393
|
-
"number":
|
|
394
|
-
"date": "
|
|
395
|
-
"hash": "
|
|
394
|
+
"number": 1773,
|
|
395
|
+
"date": "2025-01-14T22:34:57.000Z",
|
|
396
|
+
"hash": "ac1051e99c26d1d5cb81e7b29801c57fc01c0240"
|
|
396
397
|
},
|
|
397
398
|
"currentProjectName": "taon",
|
|
398
399
|
"currentProjectGenericName": "taon",
|
|
399
400
|
"currentProjectType": "isomorphic-lib",
|
|
400
|
-
"currentFrameworkVersion": "18.0.
|
|
401
|
+
"currentFrameworkVersion": "18.0.23",
|
|
401
402
|
"isStandaloneProject": true,
|
|
402
403
|
"isSmartContainer": false,
|
|
403
404
|
"pathesTsconfig": "\"paths\": {\"taon\":[\"./src/lib\"],\"taon/*\":[\"./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.
|
|
@@ -12,12 +12,12 @@ export class BaseMigration extends BaseInjector {
|
|
|
12
12
|
return _.startCase(ClassHelpers.getName(this));
|
|
13
13
|
}
|
|
14
14
|
async up(queryRunner) {
|
|
15
|
-
console.log(`Running migration UP "${ClassHelpers.getName(this)}"`);
|
|
15
|
+
console.log(`[BaseMigration] Running migration UP "${ClassHelpers.getName(this)}"`);
|
|
16
16
|
}
|
|
17
17
|
async down(queryRunner) {
|
|
18
|
-
console.log(`Running migration DOWN "${ClassHelpers.getName(this)}"`);
|
|
18
|
+
console.log(`[BaseMigration] Running migration DOWN "${ClassHelpers.getName(this)}"`);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
;
|
|
22
22
|
({}); // @--end-of-file-for-module=taon lib/base-classes/base-migration.ts
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvYmFzZS1jbGFzc2VzL2Jhc2UtbWlncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE1BQU0sT0FBTyxhQUFjLFNBQVEsWUFBWTtJQUM3Qzs7T0FFRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBd0I7UUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEYsQ0FBQztDQUNGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvRUFBb0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgQmFzZUluamVjdG9yIH0gZnJvbSAnLi9iYXNlLWluamVjdG9yJztcbmltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcblxuZXhwb3J0IGNsYXNzIEJhc2VNaWdyYXRpb24gZXh0ZW5kcyBCYXNlSW5qZWN0b3IgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICAvKipcbiAgICogYnkgZGVmYXVsdCBpcyBSRUFEWSB0byBydW5cbiAgICovXG4gIHB1YmxpYyBpc1JlYWR5VG9SdW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBfLnN0YXJ0Q2FzZShDbGFzc0hlbHBlcnMuZ2V0TmFtZSh0aGlzKSk7XG4gIH1cblxuICBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnNvbGUubG9nKGBbQmFzZU1pZ3JhdGlvbl0gUnVubmluZyBtaWdyYXRpb24gVVAgXCIke0NsYXNzSGVscGVycy5nZXROYW1lKHRoaXMpfVwiYCk7XG4gIH1cbiAgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnNvbGUubG9nKGBbQmFzZU1pZ3JhdGlvbl0gUnVubmluZyBtaWdyYXRpb24gRE9XTiBcIiR7Q2xhc3NIZWxwZXJzLmdldE5hbWUodGhpcyl9XCJgKTtcbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvYmFzZS1jbGFzc2VzL2Jhc2UtbWlncmF0aW9uLnRzIl19
|
|
@@ -58,6 +58,7 @@ export class ContextDbMigrations {
|
|
|
58
58
|
if (hasTable) {
|
|
59
59
|
this.ctx.logMigrations &&
|
|
60
60
|
console.log(`Table ${this.DEFAULT_MIGRATION_TABLE_NAME} already exists.`);
|
|
61
|
+
await queryRunner.commitTransaction();
|
|
61
62
|
await queryRunner.release();
|
|
62
63
|
return; // Exit early if the table exists
|
|
63
64
|
}
|
|
@@ -78,6 +79,9 @@ export class ContextDbMigrations {
|
|
|
78
79
|
await queryRunner.release();
|
|
79
80
|
}
|
|
80
81
|
}
|
|
82
|
+
async logSelectALl(name, queryRunner) {
|
|
83
|
+
console.log(name, (await queryRunner.query(`SELECT * FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE context = $1`, [this.ctx.contextName])).map(m => m.name));
|
|
84
|
+
}
|
|
81
85
|
async revertMigrationToTimestamp(timestamp) {
|
|
82
86
|
if (this.ctx.remoteHost) {
|
|
83
87
|
return;
|
|
@@ -120,7 +124,8 @@ export class ContextDbMigrations {
|
|
|
120
124
|
}
|
|
121
125
|
await queryRunner.commitTransaction();
|
|
122
126
|
this.ctx.logMigrations &&
|
|
123
|
-
console.log(
|
|
127
|
+
console.log(`Migrations successfully reverted ` +
|
|
128
|
+
`to the specified timestamp ${timestamp} .`);
|
|
124
129
|
}
|
|
125
130
|
catch (error) {
|
|
126
131
|
this.ctx.logMigrations &&
|
|
@@ -266,4 +271,4 @@ export class ContextDbMigrations {
|
|
|
266
271
|
}
|
|
267
272
|
;
|
|
268
273
|
({}); // @--end-of-file-for-module=taon lib/context-db-migrations.ts
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYi1taWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2NvbnRleHQtZGItbWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBSyxNQUFNLGlCQUFpQixDQUFDO0FBRzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBd0csS0FBSyxFQUFtQixVQUFVLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxDQUFBLEtBQUs7QUFpQnJMLE1BQU0sT0FBTyxtQkFBbUI7SUErRDlCLFlBQW9CLEdBQW9CO1FBQXBCLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBM0QvQixpQ0FBNEIsR0FBRyxxQkFBcUIsQ0FBQztRQUlyRCwrQkFBMEIsR0FBb0IsV0FBVyxDQUFDO1FBQzFELDZCQUF3QixHQUFvQixTQUFTLENBQUM7UUFJdEQsVUFBSyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsNEJBQTRCO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsU0FBUztvQkFDZixTQUFTLEVBQUUsSUFBSSxFQUFFLDZCQUE2QjtvQkFDOUMsV0FBVyxFQUFFLElBQUksRUFBRSx5QkFBeUI7b0JBQzVDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSw4QkFBOEI7aUJBQ2hFO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxLQUFLO29CQUNiLFFBQVEsRUFBRSxJQUFJLEVBQUUsNEJBQTRCO29CQUM1QyxVQUFV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QUMsS0FBSyxDQUFDLDhCQUE4QixhQUFhLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFHdEUsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUNyQixlQUFlLElBQUksQ0FBQyw0QkFBNEIsa0JBQWtCLEVBQ2xFLENBQUMsYUFBYSxDQUFDLENBQ2hCLENBQUM7b0JBRUYsTUFBTSxLQUFLLENBQUMsQ0FBQyxtREFBbUQ7Z0JBQ2xFLENBQUM7WUFDSCxDQUFDO1lBSUQsTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFFSCxDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhEQUE4RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IEhlbHBlcnMsIFV0aWxzTWlncmF0aW9ucywgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBCYXNlTWlncmF0aW9uIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1taWdyYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgICBDb2x1bW4sICAgRGF0YVNvdXJjZSwgICBFbnRpdHksICAgRW50aXR5U2NoZW1hLCAgIEluZGV4LCAgIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4sICAgUXVlcnlSdW5uZXIsICAgVGFibGUsICAgVGFibGVDb2x1bW4sICAgVGFibGVJbmRleCwgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuXG5cblxuZXhwb3J0IHR5cGUgTWlncmF0aW9uU3RhdHVzID0gJ2NvbXBsZXRlZCcgfCAncGVuZGluZyc7XG5cbmV4cG9ydCBjbGFzcyBDb250ZXh0RGJNaWdyYXRpb25zIHtcblxuXG5cbiAgcmVhZG9ubHkgREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRSA9ICdUQU9OX01JR1JBVElPTl9NRVRBJztcblxuXG5cbiAgcmVhZG9ubHkgTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUQ6IE1pZ3JhdGlvblN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICByZWFkb25seSBNSUdSQVRJT05fU1RBVFVTX1BFTkRJTkc6IE1pZ3JhdGlvblN0YXR1cyA9ICdwZW5kaW5nJztcblxuXG5cbiAgcmVhZG9ubHkgdGFibGUgPSBuZXcgVGFibGUoe1xuICAgIG5hbWU6IHRoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRSxcbiAgICBjb2x1bW5zOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgaXNQcmltYXJ5OiB0cnVlLCAvLyBNYXJrIGl0IGFzIHRoZSBwcmltYXJ5IGtleVxuICAgICAgICBpc0dlbmVyYXRlZDogdHJ1ZSwgLy8gRW5hYmxlIGF1dG8tZ2VuZXJhdGlvblxuICAgICAgICBnZW5lcmF0aW9uU3RyYXRlZ3k6ICdpbmNyZW1lbnQnLCAvLyBVc2UgYXV0by1pbmNyZW1lbnQgc3RyYXRlZ3lcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgdHlwZTogJ3ZhcmNoYXInLFxuICAgICAgICBsZW5ndGg6ICcyNTUnLFxuICAgICAgICBpc1VuaXF1ZTogdHJ1ZSwgLy8gRW5zdXJlIHRoZSBuYW1lIGlzIHVuaXF1ZVxuICAgICAgICBpc051bGxhYmxlOiBmYWxzZSwgLy8gRW5zdXJlIHRoaXMgZmllbGQgaXMgcmVxdWlyZWRcbiAgICAgIH0sXG4gICAgICB7XG5cbiAgICAgICAgbmFtZTogJ2NvbnRleHQnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzI1NScsXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLCAvLyBPcHRpb25hbCBjb250ZXh0IGZvciBtaWdyYXRpb25zIChlLmcuLCB0ZW5hbnQgb3IgbW9kdWxlIG5hbWUpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYXBwbGllZF9hdCcsXG4gICAgICAgIHR5cGU6ICd0aW1lc3RhbXAnLFxuICAgICAgICBkZWZhdWx0OiAnQ1VSUkVOVF9USU1FU1RBTVAnLCAvLyBBdXRvbWF0aWNhbGx5IHNldCB0aGUgdGltZXN0YW1wXG4gICAgICAgIGlzTnVsbGFibGU6IHRydWUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3RhdHVzJyxcbiAgICAgICAgdHlwZTogJ3ZhcmNoYXInLFxuICAgICAgICBsZW5ndGg6ICc1MCcsXG4gICAgICAgIGRlZmF1bHQ6IGAnJHt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVEfSdgLFxuICAgICAgICBpc051bGxhYmxlOiBmYWxzZSxcbiAgICAgIH0sXG5cblxuXG5cblxuXG4gICAgXSxcbiAgfSk7XG5cblxuXG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN0eDogRW5kcG9pbnRDb250ZXh0KSB7fVxuXG5cblxuICBhc3luYyBlbnN1cmVNaWdyYXRpb25UYWJsZUV4aXN0cygpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cblxuICAgIGNvbnN0IGhhc1RhYmxlID0gYXdhaXQgcXVlcnlSdW5uZXIuaGFzVGFibGUoXG4gICAgICB0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUUsXG4gICAgKTtcbiAgICBpZiAoaGFzVGFibGUpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFRhYmxlICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBhbHJlYWR5IGV4aXN0cy5gLFxuICAgICAgICApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgICAgcmV0dXJuOyAvLyBFeGl0IGVhcmx5IGlmIHRoZSB0YWJsZSBleGlzdHNcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY3JlYXRlVGFibGUodGhpcy50YWJsZSk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jcmVhdGVJbmRleChcbiAgICAgICAgdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgICAgICBuZXcgVGFibGVJbmRleCh7XG4gICAgICAgICAgbmFtZTogJ0lEWF9OQU1FJyxcbiAgICAgICAgICBjb2x1bW5OYW1lczogWyduYW1lJ10sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBUcmFuc2FjdGlvbiBmYWlsZWQgW2Vuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzXWAgKyBgLCByb2xsaW5nIGJhY2s6YCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuXG4gIH1cblxuXG5cbiAgYXN5bmMgcmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghVXRpbHNNaWdyYXRpb25zLmlzVmFsaWRUaW1lc3RhbXAodGltZXN0YW1wKSkge1xuICAgICAgSGVscGVycy50aHJvdyhcbiAgICAgICAgYEludmFsaWQgdGltZXN0YW1wIHByb3ZpZGVkIGZvciBtaWdyYXRpb24gcmV2ZXJ0OiAke3RpbWVzdGFtcH1gLFxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4XG4gICAgICAuZ2V0Q2xhc3NGdW5CeUFycihNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTilcbiAgICAgIC5yZXZlcnNlKCk7XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXNUb1JldmVydDogQmFzZU1pZ3JhdGlvbltdID1cbiAgICAgIG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgICAubWFwKGNsYXNzRm4gPT4ge1xuICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcEZyb21DbGFzc05hbWUgPSBOdW1iZXIoXG4gICAgICAgICAgICBVdGlsc01pZ3JhdGlvbnMuZ2V0VGltZXN0YW1wRnJvbUNsYXNzTmFtZShcbiAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoY2xhc3NGbiksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodGltZXN0YW1wRnJvbUNsYXNzTmFtZSA8PSB0aW1lc3RhbXApIHtcblxuXG5cblxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkgYXMgYW55O1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgICAuZmlsdGVyKG1pZ3JhdGlvbkluc3RhbmNlID0+IG1pZ3JhdGlvbkluc3RhbmNlLmlzUmVhZHlUb1J1bigpKTtcblxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cblxuICAgICAgY29uc3QgYXBwbGllZE1pZ3JhdGlvbnNGb3JDb250ZXh0ID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgV0hFUkUgc3RhdHVzID0gJDEgQU5EIGNvbnRleHQgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHROYW1lcyA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5tYXAoXG4gICAgICAgIG0gPT4gbS5uYW1lLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvbkNsYXNzSW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlc1RvUmV2ZXJ0KSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShtaWdyYXRpb25DbGFzc0luc3RhbmNlKTtcblxuICAgICAgICBpZiAoIWFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dE5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgU2tpcHBpbmcgbWlncmF0aW9uIG5vdCBtYXJrZWQgYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFJldmVydGluZyBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX0gLCBjb250ZXh0OiAke3RoaXMuY3R4LmNvbnRleHROYW1lfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgbWlncmF0aW9uQ2xhc3NJbnN0YW5jZS5kb3duKHF1ZXJ5UnVubmVyKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBERUxFVEUgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZV0sXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICdNaWdyYXRpb25zIHN1Y2Nlc3NmdWxseSByZXZlcnRlZCB0byB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC4nLFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RyYW5zYWN0aW9uIGZhaWxlZCwgcm9sbGluZyBiYWNrOicsIGVycm9yKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuICB9XG5cblxuXG4gIGFzeW5jIGNsZWFyTWlncmF0aW9uVGFibGUoKSB7XG5cbiAgICBpZiAodGhpcy5jdHgucmVtb3RlSG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuY3R4LmNvbm5lY3Rpb24uY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNsZWFyVGFibGUodGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgYXN5bmMgbWFya0FsbE1pZ3JhdGlvbnNBc0FwcGxpZWQoKSB7XG5cbiAgICBpZiAodGhpcy5jdHgucmVtb3RlSG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtaWdyYXRpb25zQ2xhc3NGbnM6IEZ1bmN0aW9uW10gPSB0aGlzLmN0eC5nZXRDbGFzc0Z1bkJ5QXJyKFxuICAgICAgTW9kZWxzLkNsYXNzVHlwZS5NSUdSQVRJT04sXG4gICAgKTtcblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXM6IEJhc2VNaWdyYXRpb25bXSA9IG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgLm1hcChjbGFzc0ZuID0+IHRoaXMuY3R4LmdldEluc3RhbmNlQnkoY2xhc3NGbiBhcyBhbnkpKVxuICAgICAgLm1hcChmID0+IGYgYXMgQmFzZU1pZ3JhdGlvbilcbiAgICAgIC5maWx0ZXIobWlncmF0aW9uSW5zdGFuY2UgPT4gbWlncmF0aW9uSW5zdGFuY2UuaXNSZWFkeVRvUnVuKCkpO1xuXG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG4gICAgICBjb25zdCBhbGxNaWdyYXRpb25zSW5EYiA9IGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICBgU0VMRUNUIG5hbWUgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX1gLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYWxsTWlncmF0aW9uSW5EQk5hbWVzID0gYWxsTWlncmF0aW9uc0luRGIubWFwKG0gPT4gbS5uYW1lKTtcblxuICAgICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiBtaWdyYXRpb25DbGFzc2VzSW5zdGFuY2VzKSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShpbnN0YW5jZSk7XG5cbiAgICAgICAgaWYgKGFsbE1pZ3JhdGlvbkluREJOYW1lcy5pbmNsdWRlcyhtaWdyYXRpb25OYW1lKSkge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZyBhbHJlYWR5IGFwcGxpZWQgbWlncmF0aW9uOiAke21pZ3JhdGlvbk5hbWV9YCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgY29uc29sZS5sb2coYE1hcmtpbmcgbWlncmF0aW9uIGFzIGFwcGxpZWQ6ICR7bWlncmF0aW9uTmFtZX1gKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBJTlNFUlQgSU5UTyAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gKG5hbWUsIHN0YXR1cywgY29udGV4dCwgYXBwbGllZF9hdCkgYCArXG4gICAgICAgICAgICBgVkFMVUVTICgkMSwgJDIsICQzLCBDVVJSRU5UX1RJTUVTVEFNUClgLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIG1pZ3JhdGlvbk5hbWUsXG4gICAgICAgICAgICB0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELFxuICAgICAgICAgICAgaW5zdGFuY2UuY3R4LmNvbnRleHROYW1lLFxuICAgICAgICAgIF0sXG4gICAgICAgICk7XG4gICAgICB9XG5cblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBVUERBVEUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9XG4gICAgICAgICBTRVQgc3RhdHVzID0gJDEsIGFwcGxpZWRfYXQgPSBDVVJSRU5UX1RJTUVTVEFNUFxuICAgICAgICAgV0hFUkUgc3RhdHVzID0gJDJgLFxuICAgICAgICBbdGhpcy5NSUdSQVRJT05fU1RBVFVTX0NPTVBMRVRFRCwgdGhpcy5NSUdSQVRJT05fU1RBVFVTX1BFTkRJTkddLFxuICAgICAgKTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5sb2coJ0FsbCBtaWdyYXRpb25zIG1hcmtlZCBhcyBhcHBsaWVkLicpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ0ZhaWxlZCB0byBtYXJrIGFsbCBtaWdyYXRpb25zIGFzIGFwcGxpZWQsIHJvbGxpbmcgYmFjazonLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgYXN5bmMgcnVuQWxsTm90Q29tcGxldGVkTWlncmF0aW9ucygpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4LmdldENsYXNzRnVuQnlBcnIoXG4gICAgICBNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTixcbiAgICApO1xuXG4gICAgY29uc3QgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlczogQmFzZU1pZ3JhdGlvbltdID0gbWlncmF0aW9uc0NsYXNzRm5zXG4gICAgICAubWFwKGNsYXNzRm4gPT4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkpXG4gICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgLmZpbHRlcihtaWdyYXRpb25JbnN0YW5jZSA9PiBtaWdyYXRpb25JbnN0YW5jZS5pc1JlYWR5VG9SdW4oKSk7XG5cbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuY3R4LmNvbm5lY3Rpb24uY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuXG5cblxuXG5cbiAgICAgIGNvbnN0IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dCA9IGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICBgU0VMRUNUIG5hbWUsIHN0YXR1cyBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBgICtcbiAgICAgICAgICBgV0hFUkUgY29udGV4dCA9ICQxYCxcbiAgICAgICAgW3RoaXMuY3R4LmNvbnRleHROYW1lXSxcbiAgICAgICk7XG5cblxuICAgICAgY29uc3QgcGVuZGluZ01pZ3JhdGlvbnNGb3JDb250ZXh0ID0gYXBwbGllZE1pZ3JhdGlvbnNGb3JDb250ZXh0LmZpbHRlcihcbiAgICAgICAgbSA9PiBtLnN0YXR1cyA9PT0gdGhpcy5NSUdSQVRJT05fU1RBVFVTX1BFTkRJTkcsXG4gICAgICApO1xuXG5cbiAgICAgIGZvciAoY29uc3QgcGVuZGluZ0NvbnRleHRNaWdyYXRpb24gb2YgcGVuZGluZ01pZ3JhdGlvbnNGb3JDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbkluc3RhbmNlID0gbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlcy5maW5kKFxuICAgICAgICAgIGluc3RhbmNlID0+XG4gICAgICAgICAgICBDbGFzc0hlbHBlcnMuZ2V0TmFtZShpbnN0YW5jZSkgPT09IHBlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWUsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFtaWdyYXRpb25JbnN0YW5jZSkge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgYFBlbmRpbmcgbWlncmF0aW9uICR7cGVuZGluZ0NvbnRleHRNaWdyYXRpb24ubmFtZX0gbm90IGZvdW5kIGluIGxvYWRlZCBtaWdyYXRpb25zLmAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYENvbXBsZXRpbmcgcGVuZGluZyBtaWdyYXRpb246ICR7cGVuZGluZ0NvbnRleHRNaWdyYXRpb24ubmFtZX1gLFxuICAgICAgICAgICk7XG4gICAgICAgIGF3YWl0IG1pZ3JhdGlvbkluc3RhbmNlLnVwKHF1ZXJ5UnVubmVyKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBVUERBVEUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9XG4gICAgICAgICAgIFNFVCBzdGF0dXMgPSAkMSwgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QXG4gICAgICAgICAgIFdIRVJFIG5hbWUgPSAkMmAsXG4gICAgICAgICAgW3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUQsIHBlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWVdLFxuICAgICAgICApO1xuICAgICAgfVxuXG5cblxuICAgICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiBtaWdyYXRpb25DbGFzc2VzSW5zdGFuY2VzKSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShpbnN0YW5jZSk7XG5cbiAgICAgICAgaWYgKGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5zb21lKG0gPT4gbS5uYW1lID09PSBtaWdyYXRpb25OYW1lKSkge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZyBhbHJlYWR5IGFwcGxpZWQgbWlncmF0aW9uOiAke21pZ3JhdGlvbk5hbWV9YCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgY29uc29sZS5sb2coYEFwcGx5aW5nIG5ldyBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gKTtcblxuICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICBgSU5TRVJUIElOVE8gJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IChuYW1lLCBzdGF0dXMsIGNvbnRleHQsIGFwcGxpZWRfYXQpIGAgK1xuICAgICAgICAgICAgYFZBTFVFUyAoJDEsICQyLCAkMywgTlVMTClgLFxuICAgICAgICAgIFttaWdyYXRpb25OYW1lLCB0aGlzLk1JR1JBVElPTl9TVEFUVVNfUEVORElORywgdGhpcy5jdHguY29udGV4dE5hbWVdLFxuICAgICAgICApO1xuXG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICBhd2FpdCBpbnN0YW5jZS51cChxdWVyeVJ1bm5lcik7XG5cblxuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgICAgYFVQREFURSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gYCArXG4gICAgICAgICAgICAgIGBTRVQgc3RhdHVzID0gJyR7dGhpcy5NSUdSQVRJT05fU1RBVFVTX0NPTVBMRVRFRH0nLCBhcHBsaWVkX2F0ID0gQ1VSUkVOVF9USU1FU1RBTVAgYCArXG4gICAgICAgICAgICAgIGBXSEVSRSBuYW1lID0gJDFgLFxuICAgICAgICAgICAgW21pZ3JhdGlvbk5hbWVdLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGFwcGx5IG1pZ3JhdGlvbjogJHttaWdyYXRpb25OYW1lfWAsIGVycm9yKTtcblxuXG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgICBgREVMRVRFIEZST00gJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IFdIRVJFIG5hbWUgPSAkMWAsXG4gICAgICAgICAgICBbbWlncmF0aW9uTmFtZV0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRocm93IGVycm9yOyAvLyBSZXRocm93IHRvIGVuc3VyZSB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2tcbiAgICAgICAgfVxuICAgICAgfVxuXG5cblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKCdUcmFuc2FjdGlvbiBmYWlsZWQsIHJvbGxpbmcgYmFjazonLCBlcnJvcik7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9jb250ZXh0LWRiLW1pZ3JhdGlvbnMudHMiXX0=
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYi1taWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2NvbnRleHQtZGItbWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBSyxNQUFNLGlCQUFpQixDQUFDO0FBRzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBd0csS0FBSyxFQUFtQixVQUFVLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxDQUFBLEtBQUs7QUFpQnJMLE1BQU0sT0FBTyxtQkFBbUI7SUErRDlCLFlBQW9CLEdBQW9CO1FBQXBCLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBM0QvQixpQ0FBNEIsR0FBRyxxQkFBcUIsQ0FBQztRQUlyRCwrQkFBMEIsR0FBb0IsV0FBVyxDQUFDO1FBQzFELDZCQUF3QixHQUFvQixTQUFTLENBQUM7UUFJdEQsVUFBSyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsNEJBQTRCO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsU0FBUztvQkFDZixTQUFTLEVBQUUsSUFBSSxFQUFFLDZCQUE2QjtvQkFDOUMsV0FBVyxFQUFFLElBQUksRUFBRSx5QkFBeUI7b0JBQzVDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSw4QkFBOEI7aUJBQ2hFO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxLQUFLO29CQUNiLFFBQVEsRUFBRSxJQUFJLEVBQUUsNEJBQTRCO29CQUM1QyxVQUFV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bHNNaWdyYXRpb25zLCBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEJhc2VNaWdyYXRpb24gfSBmcm9tICcuL2Jhc2UtY2xhc3Nlcy9iYXNlLW1pZ3JhdGlvbic7XG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyAgIENvbHVtbiwgICBEYXRhU291cmNlLCAgIEVudGl0eSwgICBFbnRpdHlTY2hlbWEsICAgSW5kZXgsICAgUHJpbWFyeUdlbmVyYXRlZENvbHVtbiwgICBRdWVyeVJ1bm5lciwgICBUYWJsZSwgICBUYWJsZUNvbHVtbiwgICBUYWJsZUluZGV4LCB9IGZyb20gJ3Rhb24tdHlwZW9ybS93ZWJzcWwnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5cblxuXG5leHBvcnQgdHlwZSBNaWdyYXRpb25TdGF0dXMgPSAnY29tcGxldGVkJyB8ICdwZW5kaW5nJztcblxuZXhwb3J0IGNsYXNzIENvbnRleHREYk1pZ3JhdGlvbnMge1xuXG5cblxuICByZWFkb25seSBERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FID0gJ1RBT05fTUlHUkFUSU9OX01FVEEnO1xuXG5cblxuICByZWFkb25seSBNSUdSQVRJT05fU1RBVFVTX0NPTVBMRVRFRDogTWlncmF0aW9uU3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gIHJlYWRvbmx5IE1JR1JBVElPTl9TVEFUVVNfUEVORElORzogTWlncmF0aW9uU3RhdHVzID0gJ3BlbmRpbmcnO1xuXG5cblxuICByZWFkb25seSB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgbmFtZTogdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgIGNvbHVtbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICBpc1ByaW1hcnk6IHRydWUsIC8vIE1hcmsgaXQgYXMgdGhlIHByaW1hcnkga2V5XG4gICAgICAgIGlzR2VuZXJhdGVkOiB0cnVlLCAvLyBFbmFibGUgYXV0by1nZW5lcmF0aW9uXG4gICAgICAgIGdlbmVyYXRpb25TdHJhdGVneTogJ2luY3JlbWVudCcsIC8vIFVzZSBhdXRvLWluY3JlbWVudCBzdHJhdGVneVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzI1NScsXG4gICAgICAgIGlzVW5pcXVlOiB0cnVlLCAvLyBFbnN1cmUgdGhlIG5hbWUgaXMgdW5pcXVlXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLCAvLyBFbnN1cmUgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICAgICAgfSxcbiAgICAgIHtcblxuICAgICAgICBuYW1lOiAnY29udGV4dCcsXG4gICAgICAgIHR5cGU6ICd2YXJjaGFyJyxcbiAgICAgICAgbGVuZ3RoOiAnMjU1JyxcbiAgICAgICAgaXNOdWxsYWJsZTogZmFsc2UsIC8vIE9wdGlvbmFsIGNvbnRleHQgZm9yIG1pZ3JhdGlvbnMgKGUuZy4sIHRlbmFudCBvciBtb2R1bGUgbmFtZSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdhcHBsaWVkX2F0JyxcbiAgICAgICAgdHlwZTogJ3RpbWVzdGFtcCcsXG4gICAgICAgIGRlZmF1bHQ6ICdDVVJSRU5UX1RJTUVTVEFNUCcsIC8vIEF1dG9tYXRpY2FsbHkgc2V0IHRoZSB0aW1lc3RhbXBcbiAgICAgICAgaXNOdWxsYWJsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzUwJyxcbiAgICAgICAgZGVmYXVsdDogYCcke3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUR9J2AsXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLFxuICAgICAgfSxcblxuXG5cblxuXG5cbiAgICBdLFxuICB9KTtcblxuXG5cblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3R4OiBFbmRwb2ludENvbnRleHQpIHt9XG5cblxuXG4gIGFzeW5jIGVuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzKCkge1xuXG4gICAgaWYgKHRoaXMuY3R4LnJlbW90ZUhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG4gICAgY29uc3QgaGFzVGFibGUgPSBhd2FpdCBxdWVyeVJ1bm5lci5oYXNUYWJsZShcbiAgICAgIHRoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRSxcbiAgICApO1xuICAgIGlmIChoYXNUYWJsZSkge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgVGFibGUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IGFscmVhZHkgZXhpc3RzLmAsXG4gICAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgICAgcmV0dXJuOyAvLyBFeGl0IGVhcmx5IGlmIHRoZSB0YWJsZSBleGlzdHNcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY3JlYXRlVGFibGUodGhpcy50YWJsZSk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jcmVhdGVJbmRleChcbiAgICAgICAgdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgICAgICBuZXcgVGFibGVJbmRleCh7XG4gICAgICAgICAgbmFtZTogJ0lEWF9OQU1FJyxcbiAgICAgICAgICBjb2x1bW5OYW1lczogWyduYW1lJ10sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBUcmFuc2FjdGlvbiBmYWlsZWQgW2Vuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzXWAgKyBgLCByb2xsaW5nIGJhY2s6YCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuXG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBhc3luYyBsb2dTZWxlY3RBTGwobmFtZTogc3RyaW5nLCBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIG5hbWUsXG4gICAgICAoXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBTRUxFQ1QgKiBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBXSEVSRSBjb250ZXh0ID0gJDFgLFxuICAgICAgICAgIFt0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICAgIClcbiAgICAgICkubWFwKG0gPT4gbS5uYW1lKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghVXRpbHNNaWdyYXRpb25zLmlzVmFsaWRUaW1lc3RhbXAodGltZXN0YW1wKSkge1xuICAgICAgSGVscGVycy50aHJvdyhcbiAgICAgICAgYEludmFsaWQgdGltZXN0YW1wIHByb3ZpZGVkIGZvciBtaWdyYXRpb24gcmV2ZXJ0OiAke3RpbWVzdGFtcH1gLFxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4XG4gICAgICAuZ2V0Q2xhc3NGdW5CeUFycihNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTilcbiAgICAgIC5yZXZlcnNlKCk7XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXNUb1JldmVydDogQmFzZU1pZ3JhdGlvbltdID1cbiAgICAgIG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgICAubWFwKGNsYXNzRm4gPT4ge1xuICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcEZyb21DbGFzc05hbWUgPSBOdW1iZXIoXG4gICAgICAgICAgICBVdGlsc01pZ3JhdGlvbnMuZ2V0VGltZXN0YW1wRnJvbUNsYXNzTmFtZShcbiAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoY2xhc3NGbiksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodGltZXN0YW1wRnJvbUNsYXNzTmFtZSA8PSB0aW1lc3RhbXApIHtcblxuXG5cblxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkgYXMgYW55O1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgICAuZmlsdGVyKG1pZ3JhdGlvbkluc3RhbmNlID0+IG1pZ3JhdGlvbkluc3RhbmNlLmlzUmVhZHlUb1J1bigpKTtcblxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cblxuICAgICAgY29uc3QgYXBwbGllZE1pZ3JhdGlvbnNGb3JDb250ZXh0ID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgV0hFUkUgc3RhdHVzID0gJDEgQU5EIGNvbnRleHQgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHROYW1lcyA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5tYXAoXG4gICAgICAgIG0gPT4gbS5uYW1lLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvbkNsYXNzSW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlc1RvUmV2ZXJ0KSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShtaWdyYXRpb25DbGFzc0luc3RhbmNlKTtcblxuICAgICAgICBpZiAoIWFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dE5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgU2tpcHBpbmcgbWlncmF0aW9uIG5vdCBtYXJrZWQgYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFJldmVydGluZyBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX0gLCBjb250ZXh0OiAke3RoaXMuY3R4LmNvbnRleHROYW1lfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgbWlncmF0aW9uQ2xhc3NJbnN0YW5jZS5kb3duKHF1ZXJ5UnVubmVyKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBERUxFVEUgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZV0sXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBNaWdyYXRpb25zIHN1Y2Nlc3NmdWxseSByZXZlcnRlZCBgICtcbiAgICAgICAgICAgIGB0byB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcCAke3RpbWVzdGFtcH0gLmAsXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgYXN5bmMgY2xlYXJNaWdyYXRpb25UYWJsZSgpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY2xlYXJUYWJsZSh0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUUpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKCdUcmFuc2FjdGlvbiBmYWlsZWQsIHJvbGxpbmcgYmFjazonLCBlcnJvcik7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBhc3luYyBtYXJrQWxsTWlncmF0aW9uc0FzQXBwbGllZCgpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4LmdldENsYXNzRnVuQnlBcnIoXG4gICAgICBNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTixcbiAgICApO1xuXG4gICAgY29uc3QgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlczogQmFzZU1pZ3JhdGlvbltdID0gbWlncmF0aW9uc0NsYXNzRm5zXG4gICAgICAubWFwKGNsYXNzRm4gPT4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkpXG4gICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgLmZpbHRlcihtaWdyYXRpb25JbnN0YW5jZSA9PiBtaWdyYXRpb25JbnN0YW5jZS5pc1JlYWR5VG9SdW4oKSk7XG5cbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuY3R4LmNvbm5lY3Rpb24uY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuXG5cbiAgICAgIGNvbnN0IGFsbE1pZ3JhdGlvbnNJbkRiID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfWAsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhbGxNaWdyYXRpb25JbkRCTmFtZXMgPSBhbGxNaWdyYXRpb25zSW5EYi5tYXAobSA9PiBtLm5hbWUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXMpIHtcbiAgICAgICAgY29uc3QgbWlncmF0aW9uTmFtZSA9IENsYXNzSGVscGVycy5nZXROYW1lKGluc3RhbmNlKTtcblxuICAgICAgICBpZiAoYWxsTWlncmF0aW9uSW5EQk5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS5sb2coYFNraXBwaW5nIGFscmVhZHkgYXBwbGllZCBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTWFya2luZyBtaWdyYXRpb24gYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWApO1xuXG5cbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgYElOU0VSVCBJTlRPICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSAobmFtZSwgc3RhdHVzLCBjb250ZXh0LCBhcHBsaWVkX2F0KSBgICtcbiAgICAgICAgICAgIGBWQUxVRVMgKCQxLCAkMiwgJDMsIENVUlJFTlRfVElNRVNUQU1QKWAsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgbWlncmF0aW9uTmFtZSxcbiAgICAgICAgICAgIHRoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUQsXG4gICAgICAgICAgICBpbnN0YW5jZS5jdHguY29udGV4dE5hbWUsXG4gICAgICAgICAgXSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuXG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgYFVQREFURSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX1cbiAgICAgICAgIFNFVCBzdGF0dXMgPSAkMSwgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QXG4gICAgICAgICBXSEVSRSBzdGF0dXMgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLk1JR1JBVElPTl9TVEFUVVNfUEVORElOR10sXG4gICAgICApO1xuXG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmxvZygnQWxsIG1pZ3JhdGlvbnMgbWFya2VkIGFzIGFwcGxpZWQuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRmFpbGVkIHRvIG1hcmsgYWxsIG1pZ3JhdGlvbnMgYXMgYXBwbGllZCwgcm9sbGluZyBiYWNrOicsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBhc3luYyBydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCkge1xuXG4gICAgaWYgKHRoaXMuY3R4LnJlbW90ZUhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWlncmF0aW9uc0NsYXNzRm5zOiBGdW5jdGlvbltdID0gdGhpcy5jdHguZ2V0Q2xhc3NGdW5CeUFycihcbiAgICAgIE1vZGVscy5DbGFzc1R5cGUuTUlHUkFUSU9OLFxuICAgICk7XG5cblxuXG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXM6IEJhc2VNaWdyYXRpb25bXSA9IG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgLm1hcChjbGFzc0ZuID0+IHRoaXMuY3R4LmdldEluc3RhbmNlQnkoY2xhc3NGbiBhcyBhbnkpKVxuICAgICAgLm1hcChmID0+IGYgYXMgQmFzZU1pZ3JhdGlvbilcbiAgICAgIC5maWx0ZXIobWlncmF0aW9uSW5zdGFuY2UgPT4gbWlncmF0aW9uSW5zdGFuY2UuaXNSZWFkeVRvUnVuKCkpO1xuXG5cblxuXG5cblxuXG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG5cblxuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHQgPSBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgYFNFTEVDVCBuYW1lLCBzdGF0dXMgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gYCArXG4gICAgICAgICAgYFdIRVJFIGNvbnRleHQgPSAkMWAsXG4gICAgICAgIFt0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG5cbiAgICAgIGNvbnN0IHBlbmRpbmdNaWdyYXRpb25zRm9yQ29udGV4dCA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5maWx0ZXIoXG4gICAgICAgIG0gPT4gbS5zdGF0dXMgPT09IHRoaXMuTUlHUkFUSU9OX1NUQVRVU19QRU5ESU5HLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IHBlbmRpbmdDb250ZXh0TWlncmF0aW9uIG9mIHBlbmRpbmdNaWdyYXRpb25zRm9yQ29udGV4dCkge1xuICAgICAgICBjb25zdCBtaWdyYXRpb25JbnN0YW5jZSA9IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXMuZmluZChcbiAgICAgICAgICBpbnN0YW5jZSA9PlxuICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoaW5zdGFuY2UpID09PSBwZW5kaW5nQ29udGV4dE1pZ3JhdGlvbi5uYW1lLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWlncmF0aW9uSW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBQZW5kaW5nIG1pZ3JhdGlvbiAke3BlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWV9IG5vdCBmb3VuZCBpbiBsb2FkZWQgbWlncmF0aW9ucy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBDb21wbGV0aW5nIHBlbmRpbmcgbWlncmF0aW9uOiAke3BlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWV9YCxcbiAgICAgICAgICApO1xuICAgICAgICBhd2FpdCBtaWdyYXRpb25JbnN0YW5jZS51cChxdWVyeVJ1bm5lcik7XG5cblxuICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICBgVVBEQVRFICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgICBTRVQgc3RhdHVzID0gJDEsIGFwcGxpZWRfYXQgPSBDVVJSRU5UX1RJTUVTVEFNUFxuICAgICAgICAgICBXSEVSRSBuYW1lID0gJDJgLFxuICAgICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCBwZW5kaW5nQ29udGV4dE1pZ3JhdGlvbi5uYW1lXSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuXG5cbiAgICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlcykge1xuICAgICAgICBjb25zdCBtaWdyYXRpb25OYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUoaW5zdGFuY2UpO1xuXG4gICAgICAgIGlmIChhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHQuc29tZShtID0+IG0ubmFtZSA9PT0gbWlncmF0aW9uTmFtZSkpIHtcbiAgICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgU2tpcHBpbmcgYWxyZWFkeSBhcHBsaWVkIG1pZ3JhdGlvbjogJHttaWdyYXRpb25OYW1lfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKGBBcHBseWluZyBuZXcgbWlncmF0aW9uOiAke21pZ3JhdGlvbk5hbWV9YCk7XG5cbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgYElOU0VSVCBJTlRPICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSAobmFtZSwgc3RhdHVzLCBjb250ZXh0LCBhcHBsaWVkX2F0KSBgICtcbiAgICAgICAgICAgIGBWQUxVRVMgKCQxLCAkMiwgJDMsIE5VTEwpYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZSwgdGhpcy5NSUdSQVRJT05fU1RBVFVTX1BFTkRJTkcsIHRoaXMuY3R4LmNvbnRleHROYW1lXSxcbiAgICAgICAgKTtcblxuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgYXdhaXQgaW5zdGFuY2UudXAocXVlcnlSdW5uZXIpO1xuXG5cbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICAgIGBVUERBVEUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IGAgK1xuICAgICAgICAgICAgICBgU0VUIHN0YXR1cyA9ICcke3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUR9JywgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QIGAgK1xuICAgICAgICAgICAgICBgV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICAgIFttaWdyYXRpb25OYW1lXSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBhcHBseSBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gLCBlcnJvcik7XG5cblxuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgICAgYERFTEVURSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBXSEVSRSBuYW1lID0gJDFgLFxuICAgICAgICAgICAgW21pZ3JhdGlvbk5hbWVdLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aHJvdyBlcnJvcjsgLy8gUmV0aHJvdyB0byBlbnN1cmUgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrXG4gICAgICAgIH1cbiAgICAgIH1cblxuXG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY29udGV4dC1kYi1taWdyYXRpb25zLnRzIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Helpers } from 'tnp-core/websql';
|
|
1
|
+
import { Helpers, UtilsOs } from 'tnp-core/websql';
|
|
2
2
|
import { EndpointContext } from './endpoint-context';
|
|
3
3
|
import { ENV } from './env';
|
|
4
4
|
import { TaonAdminService } from './ui/taon-admin-mode-configuration/taon-admin.service';
|
|
@@ -80,9 +80,14 @@ export const createContext = (configFn) => {
|
|
|
80
80
|
keepWebsqlDbDataAfterReload =
|
|
81
81
|
TaonAdminService.Instance?.keepWebsqlDbDataAfterReload;
|
|
82
82
|
if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {
|
|
83
|
-
|
|
83
|
+
!UtilsOs.isRunningInCliMode() &&
|
|
84
|
+
Helpers.info(`[taon] Keeping websql data after reload ` +
|
|
85
|
+
`(context=${endpointContextRef.contextName}).`);
|
|
84
86
|
}
|
|
85
87
|
else {
|
|
88
|
+
!UtilsOs.isRunningInCliMode() &&
|
|
89
|
+
Helpers.info(`[taon] Dropping all tables and data ` +
|
|
90
|
+
`(context=${endpointContextRef.contextName}).`);
|
|
86
91
|
await endpointContextRef.reinitControllers();
|
|
87
92
|
}
|
|
88
93
|
///#region TODO this may be usefull but for now
|
|
@@ -118,4 +123,4 @@ export const createContext = (configFn) => {
|
|
|
118
123
|
};
|
|
119
124
|
;
|
|
120
125
|
({}); // @--end-of-file-for-module=taon lib/create-context.ts
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBT3pGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQVczQixRQVVDLEVBQ0QsRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQixNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqRSxNQUFNLEdBQUcsR0FBRztRQUVWLEtBQUssRUFBRTtZQW1CTCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFlBQVk7Z0JBQ2QsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLFNBQVM7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFVBQVU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQzNCLENBQUM7U0FDRjtRQUdELElBQUksUUFBUTtZQUNWLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxX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QUksUUFBUTtZQUNWLE9BQU87Z0JBQ0wsSUFBSSxNQUFNO29CQUNSLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDO2dCQUMzQyxDQUFDO2dCQUNELElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztJQUNGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0QsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IEVOViB9IGZyb20gJy4vZW52JztcblxuaW1wb3J0IHsgVGFvbkFkbWluU2VydmljZSB9IGZyb20gJy4vdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi5zZXJ2aWNlJztcblxuXG5cblxuXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb250ZXh0ID0gPFxuXG4gIENUWCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG9iamVjdD4sXG4gIENUUkwgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBFTlRJVFkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBSRVBPIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUFJPVklERVIgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBTVUJTQ1JJQkVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgTUlHUkFUSU9OIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcblxuPihcbiAgY29uZmlnRm46IChcbiAgICBlbnY6IGFueSxcbiAgKSA9PiBNb2RlbHMuQ29udGV4dE9wdGlvbnM8XG4gICAgQ1RYLFxuICAgIENUUkwsXG4gICAgRU5USVRZLFxuICAgIFJFUE8sXG4gICAgUFJPVklERVIsXG4gICAgU1VCU0NSSUJFUixcbiAgICBNSUdSQVRJT05cbiAgPixcbikgPT4ge1xuICBsZXQgY29uZmlnID0gY29uZmlnRm4oRU5WKTtcblxuICBjb25zdCBlbmRwb2ludENvbnRleHRSZWYgPSBuZXcgRW5kcG9pbnRDb250ZXh0KGNvbmZpZywgY29uZmlnRm4pO1xuXG4gIGNvbnN0IHJlcyA9IHtcblxuICAgIHR5cGVzOiB7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICBnZXQgY29udHJvbGxlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcuY29udHJvbGxlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHJlcG9zaXRvcmllcygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5yZXBvc2l0b3JpZXM7XG4gICAgICB9LFxuICAgICAgZ2V0IHByb3ZpZGVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5wcm92aWRlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHN1YnNjcmliZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLnN1YnNjcmliZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCBtaWdyYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLm1pZ3JhdGlvbnM7XG4gICAgICB9LFxuICAgIH0sXG5cblxuICAgIGdldCBjb250ZXh0cygpIHtcbiAgICAgIHJldHVybiBjb25maWcuY29udGV4dHM7XG4gICAgfSxcbiAgICBnZXQgY29udGV4dE5hbWUoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHROYW1lO1xuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogLSBnZXQgcmVmZXJlbmNlIHRvIGludGVybmFsIGNvbnRleHRcbiAgICAgKi9cbiAgICBhc3luYyBfX3JlZigpIHtcbiAgICAgIGlmICghZW5kcG9pbnRDb250ZXh0UmVmLmluaXRlZCkge1xuICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdCh7XG4gICAgICAgICAgaW5pdEZyb21SZWNydXNpdmVDb250ZXh0UmVzb3ZsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogb25seSBmb3IgaW50ZXJuYWwgdXNlXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBnZXQgX19yZWZTeW5jKCkge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIGdldENsYXNzSW5zdGFuY2U8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5nZXRJbnN0YW5jZUJ5KGN0b3IpO1xuICAgIH0sXG5cbiAgICBnZXRDbGFzczxUPihjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCB7XG4gICAgICBjb25zdCBjbGFzc0Z1biA9IGVuZHBvaW50Q29udGV4dFJlZi5nZXRDbGFzc0Z1bkJ5Q2xhc3MoY3Rvcik7XG4gICAgICByZXR1cm4gY2xhc3NGdW4gYXMgYW55O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfSxcblxuXG4gICAgLyoqXG4gICAgICogLSBjcmVhdGUgY29udHJvbGxlciBpbnN0YW5jZXMgZm9yIGNvbnRleHRcbiAgICAgKiAtIGluaXQgZGF0YWJhc2UgKGlmIGVuYWJsZSkgKyBtaWdhdGlvbiBzY3JpcHRzXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZTogYXN5bmMgKG92ZXJyaWRlT3B0aW9ucz86IHtcbiAgICAgIG92ZXJyaWRlSG9zdD86IHN0cmluZztcbiAgICAgIG92ZXJyaWRlUmVtb3RlSG9zdD86IHN0cmluZztcbiAgICAgIG9ubHlNaWdyYXRpb25SdW4/OiBib29sZWFuO1xuICAgICAgb25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPEVuZHBvaW50Q29udGV4dD4gPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgICAgLi4ub3ZlcnJpZGVPcHRpb25zLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZy5hYnN0cmFjdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBYnN0cmFjdCBjb250ZXh0IGNhbiBub3QgYmUgaW5pdGlhbGl6ZWRgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdEVudGl0aWVzKCk7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRTdWJzY3JpYmVycygpO1xuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXREYXRhYmFzZUNvbm5lY3Rpb24oKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMuZW5zdXJlTWlncmF0aW9uVGFibGVFeGlzdHMoKTtcblxuXG5cblxuXG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYuaW5pdENvbnRyb2xsZXJzKCk7XG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLnN0YXJ0U2VydmVyKCk7XG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYud3JpdGVBY3RpdmVSb3V0ZXMoKTtcblxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRDbGFzc2VzKCk7XG4gICAgICAgICAgbGV0IGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9IGZhbHNlO1xuXG4gICAgICAgICAga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkID1cbiAgICAgICAgICAgIFRhb25BZG1pblNlcnZpY2UuSW5zdGFuY2U/LmtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZDtcblxuICAgICAgICAgIGlmICghSGVscGVycy5pc05vZGUgJiYga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkKSB7XG4gICAgICAgICAgICBIZWxwZXJzLmluZm8oYFt0YW9uXSBLZWVwIHdlYnNxbCBkYXRhIGFmdGVyIHJlbG9hZGApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYucmVpbml0Q29udHJvbGxlcnMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8vI3JlZ2lvbiBUT0RPIHRoaXMgbWF5IGJlIHVzZWZ1bGwgYnV0IGZvciBub3dcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICAgICAgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUnVuKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXApIHtcbiAgICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMucmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAoXG4gICAgICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvbHZlKGVuZHBvaW50Q29udGV4dFJlZik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlYWx0aW1lIGNvbW11bmljYXRpb24gd2l0aCBzZXJ2ZXJcbiAgICAgKiBVZHAgc29ja2V0LmlvIChvciBpcGMpIGJhc2VkLlxuICAgICAqL1xuICAgIGdldCByZWFsdGltZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCBjbGllbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZUNsaWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHNlcnZlcigpIHtcbiAgICAgICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmLnJlYWx0aW1lU2VydmVyO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gcmVzO1xufTtcblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY3JlYXRlLWNvbnRleHQudHMiXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU96RixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FXM0IsUUFVQyxFQUNELEVBQUU7SUFDRixJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFakUsTUFBTSxHQUFHLEdBQUc7UUFFVixLQUFLLEVBQUU7WUFtQkwsSUFBSSxXQUFXO2dCQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxZQUFZO2dCQUNkLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxTQUFTO2dCQUNYLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUMxQixDQUFDO1lBQ0QsSUFBSSxXQUFXO2dCQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxVQUFVO2dCQUNaLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUMzQixDQUFDO1NBQ0Y7UUFHRCxJQUFJLFFBQVE7WUFDVixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQztR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QztvQkFDSixDQUFDO3lCQUFNLENBQUM7d0JBQ04sTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztvQkFDdkUsQ0FBQztvQkFFRCxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7O1dBR0c7UUFDSCxJQUFJLFFBQVE7WUFDVixPQUFPO2dCQUNMLElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQztnQkFDRCxJQUFJLE1BQU07b0JBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7Z0JBQzNDLENBQUM7YUFDRixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7SUFDRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUdELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSGVscGVycywgVXRpbHNPcyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5pbXBvcnQgeyBFTlYgfSBmcm9tICcuL2Vudic7XG5cbmltcG9ydCB7IFRhb25BZG1pblNlcnZpY2UgfSBmcm9tICcuL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4uc2VydmljZSc7XG5cblxuXG5cblxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29udGV4dCA9IDxcblxuICBDVFggZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+LFxuICBDVFJMIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgRU5USVRZIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUkVQTyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIFBST1ZJREVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgU1VCU0NSSUJFUiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIE1JR1JBVElPTiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG5cbj4oXG4gIGNvbmZpZ0ZuOiAoXG4gICAgZW52OiBhbnksXG4gICkgPT4gTW9kZWxzLkNvbnRleHRPcHRpb25zPFxuICAgIENUWCxcbiAgICBDVFJMLFxuICAgIEVOVElUWSxcbiAgICBSRVBPLFxuICAgIFBST1ZJREVSLFxuICAgIFNVQlNDUklCRVIsXG4gICAgTUlHUkFUSU9OXG4gID4sXG4pID0+IHtcbiAgbGV0IGNvbmZpZyA9IGNvbmZpZ0ZuKEVOVik7XG5cbiAgY29uc3QgZW5kcG9pbnRDb250ZXh0UmVmID0gbmV3IEVuZHBvaW50Q29udGV4dChjb25maWcsIGNvbmZpZ0ZuKTtcblxuICBjb25zdCByZXMgPSB7XG5cbiAgICB0eXBlczoge1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgZ2V0IGNvbnRyb2xsZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLmNvbnRyb2xsZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCByZXBvc2l0b3JpZXMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcucmVwb3NpdG9yaWVzO1xuICAgICAgfSxcbiAgICAgIGdldCBwcm92aWRlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcucHJvdmlkZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCBzdWJzY3JpYmVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5zdWJzY3JpYmVycztcbiAgICAgIH0sXG4gICAgICBnZXQgbWlncmF0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5taWdyYXRpb25zO1xuICAgICAgfSxcbiAgICB9LFxuXG5cbiAgICBnZXQgY29udGV4dHMoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHRzO1xuICAgIH0sXG4gICAgZ2V0IGNvbnRleHROYW1lKCkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5jb250ZXh0TmFtZTtcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIC0gZ2V0IHJlZmVyZW5jZSB0byBpbnRlcm5hbCBjb250ZXh0XG4gICAgICovXG4gICAgYXN5bmMgX19yZWYoKSB7XG4gICAgICBpZiAoIWVuZHBvaW50Q29udGV4dFJlZi5pbml0ZWQpIHtcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgIGluaXRGcm9tUmVjcnVzaXZlQ29udGV4dFJlc292bGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIG9ubHkgZm9yIGludGVybmFsIHVzZVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgZ2V0IF9fcmVmU3luYygpIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWY7XG4gICAgfSxcbiAgICBnZXRDbGFzc0luc3RhbmNlPFQ+KGN0b3I6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWYuZ2V0SW5zdGFuY2VCeShjdG9yKTtcbiAgICB9LFxuXG4gICAgZ2V0Q2xhc3M8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQge1xuICAgICAgY29uc3QgY2xhc3NGdW4gPSBlbmRwb2ludENvbnRleHRSZWYuZ2V0Q2xhc3NGdW5CeUNsYXNzKGN0b3IpO1xuICAgICAgcmV0dXJuIGNsYXNzRnVuIGFzIGFueTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIC0gY3JlYXRlIGNvbnRyb2xsZXIgaW5zdGFuY2VzIGZvciBjb250ZXh0XG4gICAgICogLSBpbml0IGRhdGFiYXNlIChpZiBlbmFibGUpICsgbWlnYXRpb24gc2NyaXB0c1xuICAgICAqL1xuICAgIGluaXRpYWxpemU6IGFzeW5jIChvdmVycmlkZU9wdGlvbnM/OiB7XG4gICAgICBvdmVycmlkZUhvc3Q/OiBzdHJpbmc7XG4gICAgICBvdmVycmlkZVJlbW90ZUhvc3Q/OiBzdHJpbmc7XG4gICAgICBvbmx5TWlncmF0aW9uUnVuPzogYm9vbGVhbjtcbiAgICAgIG9ubHlNaWdyYXRpb25SZXZlcnRUb1RpbWVzdGFtcD86IG51bWJlcjtcbiAgICB9KTogUHJvbWlzZTxFbmRwb2ludENvbnRleHQ+ID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0KHtcbiAgICAgICAgICAgIC4uLm92ZXJyaWRlT3B0aW9ucyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChjb25maWcuYWJzdHJhY3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWJzdHJhY3QgY29udGV4dCBjYW4gbm90IGJlIGluaXRpYWxpemVkYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRFbnRpdGllcygpO1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0U3Vic2NyaWJlcnMoKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0RGF0YWJhc2VDb25uZWN0aW9uKCk7XG5cbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLmVuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzKCk7XG5cblxuXG5cblxuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRDb250cm9sbGVycygpO1xuICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5zdGFydFNlcnZlcigpO1xuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLndyaXRlQWN0aXZlUm91dGVzKCk7XG5cblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0Q2xhc3NlcygpO1xuICAgICAgICAgIGxldCBrZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQgPSBmYWxzZTtcblxuICAgICAgICAgIGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9XG4gICAgICAgICAgICBUYW9uQWRtaW5TZXJ2aWNlLkluc3RhbmNlPy5rZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQ7XG5cblxuICAgICAgICAgIGlmICghSGVscGVycy5pc05vZGUgJiYga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkKSB7XG4gICAgICAgICAgICAhVXRpbHNPcy5pc1J1bm5pbmdJbkNsaU1vZGUoKSAmJlxuICAgICAgICAgICAgICBIZWxwZXJzLmluZm8oXG4gICAgICAgICAgICAgICAgYFt0YW9uXSBLZWVwaW5nIHdlYnNxbCBkYXRhIGFmdGVyIHJlbG9hZCBgICtcbiAgICAgICAgICAgICAgICAgIGAoY29udGV4dD0ke2VuZHBvaW50Q29udGV4dFJlZi5jb250ZXh0TmFtZX0pLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICFVdGlsc09zLmlzUnVubmluZ0luQ2xpTW9kZSgpICYmXG4gICAgICAgICAgICAgIEhlbHBlcnMuaW5mbyhcbiAgICAgICAgICAgICAgICBgW3Rhb25dIERyb3BwaW5nIGFsbCB0YWJsZXMgYW5kIGRhdGEgYCArXG4gICAgICAgICAgICAgICAgICBgKGNvbnRleHQ9JHtlbmRwb2ludENvbnRleHRSZWYuY29udGV4dE5hbWV9KS5gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLnJlaW5pdENvbnRyb2xsZXJzKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vLyNyZWdpb24gVE9ETyB0aGlzIG1heSBiZSB1c2VmdWxsIGJ1dCBmb3Igbm93XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgICAgIGlmIChlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJ1bikge1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmRiTWlncmF0aW9ucy5ydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJldmVydE1pZ3JhdGlvblRvVGltZXN0YW1wKFxuICAgICAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmRiTWlncmF0aW9ucy5ydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb2x2ZShlbmRwb2ludENvbnRleHRSZWYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZWFsdGltZSBjb21tdW5pY2F0aW9uIHdpdGggc2VydmVyXG4gICAgICogVWRwIHNvY2tldC5pbyAob3IgaXBjKSBiYXNlZC5cbiAgICAgKi9cbiAgICBnZXQgcmVhbHRpbWUoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQgY2xpZW50KCkge1xuICAgICAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWYucmVhbHRpbWVDbGllbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBzZXJ2ZXIoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZVNlcnZlcjtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHJlcztcbn07XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2NyZWF0ZS1jb250ZXh0LnRzIl19
|