typescript-class-helpers 16.5.1 → 16.5.3
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/esm2022/lib/classname.mjs +23 -1
- package/browser/esm2022/lib/describe-class.mjs +4 -1
- package/browser/esm2022/lib/index.mjs +12 -1
- package/browser/esm2022/lib/set-class-name.mjs +10 -1
- package/browser/fesm2022/typescript-class-helpers.mjs +45 -0
- package/browser/fesm2022/typescript-class-helpers.mjs.map +1 -1
- package/client/esm2022/lib/classname.mjs +23 -1
- package/client/esm2022/lib/describe-class.mjs +4 -1
- package/client/esm2022/lib/index.mjs +12 -1
- package/client/esm2022/lib/set-class-name.mjs +10 -1
- package/client/fesm2022/typescript-class-helpers.mjs +45 -0
- package/client/fesm2022/typescript-class-helpers.mjs.map +1 -1
- package/client/package.json +32 -32
- package/package.json +3 -3
- package/src.d.ts +6 -0
- package/tmp-environment.json +36 -37
- package/websql/esm2022/lib/classname.mjs +23 -1
- package/websql/esm2022/lib/describe-class.mjs +4 -1
- package/websql/esm2022/lib/index.mjs +12 -1
- package/websql/esm2022/lib/set-class-name.mjs +10 -1
- package/websql/fesm2022/typescript-class-helpers.mjs +45 -0
- package/websql/fesm2022/typescript-class-helpers.mjs.map +1 -1
package/tmp-environment.json
CHANGED
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"name": "typescript-class-helpers",
|
|
51
51
|
"description": "Usefull helper to have in your typescript project",
|
|
52
|
-
"version": "16.5.
|
|
52
|
+
"version": "16.5.3",
|
|
53
53
|
"scripts": {
|
|
54
54
|
"test": "mocha --require ts-node/register src/**/*.spec.ts",
|
|
55
55
|
"test:watch": "mocha --compilers ts-node/register src/**/*.spec.ts --watch"
|
|
@@ -70,11 +70,11 @@
|
|
|
70
70
|
"homepage": "https://github.com/darekf77/typescript-class-helpers#readme",
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"enum-values": "1.2.1",
|
|
73
|
-
"ng2-logger": "~16.5.
|
|
73
|
+
"ng2-logger": "~16.5.3"
|
|
74
74
|
},
|
|
75
75
|
"license": "MIT",
|
|
76
76
|
"private": false,
|
|
77
|
-
"lastBuildTagHash": "
|
|
77
|
+
"lastBuildTagHash": "1fcf21bc85f1a342e53bcab0b6b32e00f3c6258c",
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@angular-devkit/build-angular": "~16.0.5",
|
|
80
80
|
"@angular-devkit/core": "~16.0.5",
|
|
@@ -156,9 +156,9 @@
|
|
|
156
156
|
"angular-material-css-vars": "5.0.2",
|
|
157
157
|
"angular-resize-event": "3.2.0",
|
|
158
158
|
"animate.css": "4.1.1 ",
|
|
159
|
-
"any-project-cli": "~16.
|
|
159
|
+
"any-project-cli": "~16.5.2",
|
|
160
160
|
"axios": "1.3.5",
|
|
161
|
-
"background-worker-process": "~16.
|
|
161
|
+
"background-worker-process": "~16.5.2",
|
|
162
162
|
"base32": "0.0.7",
|
|
163
163
|
"bcryptjs": "2.4.3",
|
|
164
164
|
"better-sqlite3": "7.6.2",
|
|
@@ -204,13 +204,13 @@
|
|
|
204
204
|
"file-saver": "2.0.5",
|
|
205
205
|
"file-type": "18.5.0",
|
|
206
206
|
"firedev": "^16",
|
|
207
|
-
"firedev-crud": "~16.
|
|
208
|
-
"firedev-crud-deamon": "~16.
|
|
209
|
-
"firedev-ports": "~16.
|
|
210
|
-
"firedev-storage": "~16.
|
|
211
|
-
"firedev-type-sql": "~16.
|
|
212
|
-
"firedev-typeorm": "~16.
|
|
213
|
-
"firedev-ui": "~16.
|
|
207
|
+
"firedev-crud": "~16.5.2",
|
|
208
|
+
"firedev-crud-deamon": "~16.5.2",
|
|
209
|
+
"firedev-ports": "~16.5.2",
|
|
210
|
+
"firedev-storage": "~16.5.2",
|
|
211
|
+
"firedev-type-sql": "~16.5.2",
|
|
212
|
+
"firedev-typeorm": "~16.5.2",
|
|
213
|
+
"firedev-ui": "~16.5.2",
|
|
214
214
|
"fkill": "6.1.0",
|
|
215
215
|
"font-awesome": "4.7.0",
|
|
216
216
|
"form-data": "4.0.0",
|
|
@@ -227,11 +227,11 @@
|
|
|
227
227
|
"image-focus": "1.2.1",
|
|
228
228
|
"immer": "10.0.2",
|
|
229
229
|
"immutable": "4.3.0",
|
|
230
|
-
"incremental-compiler": "~16.
|
|
230
|
+
"incremental-compiler": "~16.5.12",
|
|
231
231
|
"inquirer": "7.3.3",
|
|
232
232
|
"inquirer-autocomplete-prompt": "1.3.0",
|
|
233
233
|
"is-elevated": "3.0.0",
|
|
234
|
-
"isomorphic-region-loader": "~16.
|
|
234
|
+
"isomorphic-region-loader": "~16.5.2",
|
|
235
235
|
"istanbul-instrumenter-loader": "2.0.0",
|
|
236
236
|
"jest": "29.5.0",
|
|
237
237
|
"jest-date-mock": "1.0.8",
|
|
@@ -242,8 +242,8 @@
|
|
|
242
242
|
"joi": "17.9.2",
|
|
243
243
|
"jscodeshift": "0.6.3",
|
|
244
244
|
"json-stringify-safe": "5.0.1",
|
|
245
|
-
"json10": "~16.
|
|
246
|
-
"json10-writer": "~16.
|
|
245
|
+
"json10": "~16.5.2",
|
|
246
|
+
"json10-writer": "~16.5.2",
|
|
247
247
|
"json5": "2.2.1",
|
|
248
248
|
"json5-writer": "0.2.0",
|
|
249
249
|
"jszip": "3.10.1",
|
|
@@ -252,22 +252,22 @@
|
|
|
252
252
|
"localforage": "1.10.0",
|
|
253
253
|
"lockfile": "1.0.4",
|
|
254
254
|
"lodash": "4.17.20",
|
|
255
|
-
"lodash-walk-object": "~16.
|
|
255
|
+
"lodash-walk-object": "~16.5.2",
|
|
256
256
|
"lowdb": "1.0.0",
|
|
257
|
-
"magic-renamer": "~16.
|
|
257
|
+
"magic-renamer": "~16.5.2",
|
|
258
258
|
"material-design-icons": "3.0.1",
|
|
259
259
|
"method-override": "2.3.10",
|
|
260
260
|
"minimist": "1.2.0",
|
|
261
261
|
"mkdirp": "0.5.1",
|
|
262
262
|
"mocha": "10.2.0",
|
|
263
263
|
"moment": "2.29.3",
|
|
264
|
-
"morphi": "~16.2
|
|
264
|
+
"morphi": "~16.5.2",
|
|
265
265
|
"ng-for-track-by-property": "16.0.1",
|
|
266
266
|
"ng-in-viewport": "15.0.2",
|
|
267
267
|
"ng-lock": "16.0.1",
|
|
268
268
|
"ng-packagr": "16.0.1",
|
|
269
|
-
"ng-talkback": "~16.2
|
|
270
|
-
"ng2-rest": "~16.
|
|
269
|
+
"ng-talkback": "~16.5.2",
|
|
270
|
+
"ng2-rest": "~16.5.2",
|
|
271
271
|
"ngx-ace-wrapper": "14.0.0",
|
|
272
272
|
"ngx-editor": "15.3.0",
|
|
273
273
|
"ngx-highlightjs": "9.0.0",
|
|
@@ -280,7 +280,7 @@
|
|
|
280
280
|
"ngx-scrolltop": "6.0.0",
|
|
281
281
|
"ngx-store": "3.1.1",
|
|
282
282
|
"ngx-typed-js": "2.1.1",
|
|
283
|
-
"node-cli-tester": "~16.
|
|
283
|
+
"node-cli-tester": "~16.5.2",
|
|
284
284
|
"node-localstorage": "2.1.6",
|
|
285
285
|
"node-notifier": "6.0.0",
|
|
286
286
|
"node-polyfill-webpack-plugin": "2.0.1",
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
"q": "1.5.1",
|
|
308
308
|
"rallax.js": "2.0.4",
|
|
309
309
|
"randomcolor": "0.5.3",
|
|
310
|
-
"record-replay-req-res-scenario": "~16.
|
|
310
|
+
"record-replay-req-res-scenario": "~16.5.2",
|
|
311
311
|
"reflect-metadata": "0.1.10",
|
|
312
312
|
"rimraf": "2.6.2",
|
|
313
313
|
"rxjs": "~7.8.0",
|
|
@@ -318,7 +318,7 @@
|
|
|
318
318
|
"socket.io": "2.4.1",
|
|
319
319
|
"sort-package-json": "1.11.0",
|
|
320
320
|
"sql.js": "1.8.0",
|
|
321
|
-
"static-columns": "~16.
|
|
321
|
+
"static-columns": "~16.5.2",
|
|
322
322
|
"string-similarity": "4.0.2",
|
|
323
323
|
"sudo-block": "3.0.0",
|
|
324
324
|
"supertest": "6.3.3",
|
|
@@ -326,12 +326,12 @@
|
|
|
326
326
|
"systeminformation": "3.45.7",
|
|
327
327
|
"task.js": "0.1.5",
|
|
328
328
|
"threads": "1.7.0",
|
|
329
|
-
"tnp-cli": "~16.
|
|
330
|
-
"tnp-config": "~16.5.
|
|
331
|
-
"tnp-core": "~16.5.
|
|
332
|
-
"tnp-db": "~16.
|
|
333
|
-
"tnp-helpers": "~16.
|
|
334
|
-
"tnp-models": "~16.
|
|
329
|
+
"tnp-cli": "~16.5.2",
|
|
330
|
+
"tnp-config": "~16.5.3",
|
|
331
|
+
"tnp-core": "~16.5.8",
|
|
332
|
+
"tnp-db": "~16.5.2",
|
|
333
|
+
"tnp-helpers": "~16.5.2",
|
|
334
|
+
"tnp-models": "~16.5.2",
|
|
335
335
|
"ts-debug": "1.3.0",
|
|
336
336
|
"ts-loader": "2.3.1",
|
|
337
337
|
"ts-node": "10.9.1",
|
|
@@ -340,30 +340,29 @@
|
|
|
340
340
|
"turndown": "7.1.2",
|
|
341
341
|
"typeorm": "~0.3.10",
|
|
342
342
|
"typescript": "~5.0.2",
|
|
343
|
-
"typescript-class-helpers": "~16.
|
|
343
|
+
"typescript-class-helpers": "~16.5.2",
|
|
344
344
|
"typescript-formatter": "~7.2.2",
|
|
345
345
|
"underscore": "1.9.1",
|
|
346
346
|
"uuid": "8.3.2",
|
|
347
347
|
"validator": "9.2.0",
|
|
348
348
|
"video.js": "8.3.0",
|
|
349
|
-
"vpn-split": "~16.
|
|
349
|
+
"vpn-split": "~16.5.2",
|
|
350
350
|
"watch": "1.0.2",
|
|
351
351
|
"yup": "1.1.1",
|
|
352
352
|
"zone.js": "~0.13.0"
|
|
353
353
|
}
|
|
354
354
|
},
|
|
355
355
|
"build": {
|
|
356
|
-
"number":
|
|
357
|
-
"date": "2023-12-
|
|
358
|
-
"hash": "
|
|
356
|
+
"number": 348,
|
|
357
|
+
"date": "2023-12-23T19:35:02.000Z",
|
|
358
|
+
"hash": "892695de8546b8d2c462cf8f1b5cae3373f1ba10",
|
|
359
359
|
"options": {}
|
|
360
360
|
},
|
|
361
361
|
"currentProjectName": "typescript-class-helpers",
|
|
362
362
|
"currentProjectGenericName": "typescript-class-helpers",
|
|
363
|
-
"currentProjectLaunchConfiguration": "{\"version\":\"0.2.0\",\"configurations\":[{\"type\":\"node\",\"request\":\"launch\",\"name\":\"Launch Server standalone\",\"program\":\"${workspaceFolder}/run.js\",\"args\":[\"--ENVoverride=%7B%0A%20%20%20%20%22clientProjectName%22%3A%20%22typescript-class-helpers%22%0A%7D\"],\"runtimeArgs\":[\"--nolazy\",\"-r\",\"ts-node/register\",\"--experimental-worker\"]},{\"name\":\"Debugger with ng serve\",\"type\":\"chrome\",\"request\":\"launch\",\"preLaunchTask\":\"Ng Serve\",\"postDebugTask\":\"terminateall\",\"sourceMaps\":true,\"webRoot\":\"${workspaceFolder}\",\"sourceMapPathOverrides\":{\"webpack:/*\":\"${webRoot}/*\",\"/./*\":\"${webRoot}/*\",\"/tmp-src/*\":\"${webRoot}/*\",\"/*\":\"*\",\"/./~/*\":\"${webRoot}/node_modules/*\"}},{\"type\":\"node\",\"request\":\"attach\",\"name\":\"Attach to global cli tool\",\"port\":9229,\"skipFiles\":[\"<node_internals>/**\"]}],\"compounds\":[{\"name\":\"Debug backend/frontend\",\"configurations\":[\"Launch Server standalone\",\"Debugger with ng serve\"]}]}",
|
|
364
363
|
"currentProjectTasksConfiguration": "{\"version\":\"2.0.0\",\"tasks\":[{\"label\":\"terminateall\",\"command\":\"echo ${input:terminate}\",\"type\":\"shell\",\"problemMatcher\":[]},{\"label\":\"Ng Serve\",\"type\":\"shell\",\"command\":\"tnp build\",\"isBackground\":true,\"presentation\":{\"reveal\":\"always\"},\"group\":{\"kind\":\"build\",\"isDefault\":true},\"problemMatcher\":{\"owner\":\"typescript\",\"source\":\"ts\",\"applyTo\":\"closedDocuments\",\"fileLocation\":[\"relative\",\"${cwd}\"],\"pattern\":\"$tsc\",\"background\":{\"activeOnStart\":true,\"beginsPattern\":{\"regexp\":\"(.*?)\"},\"endsPattern\":{\"regexp\":\"Compiled |Failed to compile.\"}}}}],\"inputs\":[{\"id\":\"terminate\",\"type\":\"command\",\"command\":\"workbench.action.tasks.terminate\",\"args\":\"terminateAll\"}]}",
|
|
365
364
|
"currentProjectType": "isomorphic-lib",
|
|
366
|
-
"currentFrameworkVersion": "16.5.
|
|
365
|
+
"currentFrameworkVersion": "16.5.9",
|
|
367
366
|
"isStandaloneProject": true,
|
|
368
367
|
"isSmartContainer": false,
|
|
369
368
|
"frameworks": [
|
|
@@ -49,12 +49,15 @@ export var CLASSNAME;
|
|
|
49
49
|
*/
|
|
50
50
|
function CLASSNAME(className, options) {
|
|
51
51
|
return function (target) {
|
|
52
|
+
/* \/\/ console\.log\(`CLASSNAME Inited \$\{className\}`\) */
|
|
52
53
|
return setClassName(target, className, options);
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
56
|
CLASSNAME_1.CLASSNAME = CLASSNAME;
|
|
56
57
|
function getClassName(target, production = false) {
|
|
57
58
|
if (_.isNil(target)) {
|
|
59
|
+
/* \/\/ console\.log\(target\); */
|
|
60
|
+
/* \/\/ Helpers\.warn\(`\[typescript\-class\-helpers\]\[getClassName\] target is nil`\) */
|
|
58
61
|
return void 0;
|
|
59
62
|
}
|
|
60
63
|
if (_.isString(target)) {
|
|
@@ -82,6 +85,17 @@ export var CLASSNAME;
|
|
|
82
85
|
throw new Error(ERROR_MSG_CLASS_WITHOUT_DECORATOR);
|
|
83
86
|
}
|
|
84
87
|
else {
|
|
88
|
+
/* \/\/ Helpers\.log\('check for ' \+ target\.name\) */
|
|
89
|
+
/* \/\/ setTimeout\(\(\) => \{ */
|
|
90
|
+
/* \/\/ \/\/ Helpers\.log\('check for ' \+ target\.name \+ ' === ' \+ config\.className\)\/ */
|
|
91
|
+
/* \/\/ \/\/ TODO this may work, but not yet in singleton\/morphi */
|
|
92
|
+
/* \/\/ if \(!config\.className\) \{ */
|
|
93
|
+
/* \/\/ if \(target\?\.name && target\.name !== 'Object'\) \{ */
|
|
94
|
+
/* \/\/ ConfigHelpers\.log\(`\[typescript\-class\-helpers\] Please use @CLASS\.NAME` */
|
|
95
|
+
/* \/\/ \+ `\('\$\{\(target\?\.name && !!target\.name\) \? target\.name : '\.\.\.'\}'\) decorator for class \$\{target\?\.name\}`\) */
|
|
96
|
+
/* \/\/ \} */
|
|
97
|
+
/* \/\/ \} */
|
|
98
|
+
/* \/\/ \}\) */
|
|
85
99
|
}
|
|
86
100
|
return target.name;
|
|
87
101
|
}
|
|
@@ -89,7 +103,9 @@ export var CLASSNAME;
|
|
|
89
103
|
// @ts-ignore
|
|
90
104
|
function getObjectIndexPropertyValue(obj) {
|
|
91
105
|
const className = TchHelpers.getNameFromObject(obj);
|
|
106
|
+
/* \/\/ console\.log\('className',className\) */
|
|
92
107
|
let c = getClasses().find(c => c.className === className);
|
|
108
|
+
/* \/\/ console\.log\('c',c\) */
|
|
93
109
|
if (c) {
|
|
94
110
|
return c.uniqueKey;
|
|
95
111
|
}
|
|
@@ -98,6 +114,7 @@ export var CLASSNAME;
|
|
|
98
114
|
// @ts-ignore
|
|
99
115
|
function getClassFamilyByClassName(className) {
|
|
100
116
|
let c = getClasses().find(c => c.className === className);
|
|
117
|
+
/* \/\/ console\.log\('getClasses\(\)', getClasses\(\)\) */
|
|
101
118
|
if (c) {
|
|
102
119
|
return c.classFamily;
|
|
103
120
|
}
|
|
@@ -106,7 +123,9 @@ export var CLASSNAME;
|
|
|
106
123
|
// @ts-ignore
|
|
107
124
|
function getObjectClassFamily(obj) {
|
|
108
125
|
const className = TchHelpers.getNameFromObject(obj);
|
|
126
|
+
/* \/\/ console\.log\('className',className\) */
|
|
109
127
|
let c = getClasses().find(c => c.className === className);
|
|
128
|
+
/* \/\/ console\.log\('c',c\) */
|
|
110
129
|
if (c) {
|
|
111
130
|
return c.classFamily;
|
|
112
131
|
}
|
|
@@ -114,7 +133,9 @@ export var CLASSNAME;
|
|
|
114
133
|
CLASSNAME_1.getObjectClassFamily = getObjectClassFamily;
|
|
115
134
|
function getObjectIndexValue(obj) {
|
|
116
135
|
const className = TchHelpers.getNameFromObject(obj);
|
|
136
|
+
/* \/\/ console\.log\('className',className\) */
|
|
117
137
|
let c = getClasses().find(c => c.className === className);
|
|
138
|
+
/* \/\/ console\.log\('c',c\) */
|
|
118
139
|
if (c && _.isString(c.uniqueKey)) {
|
|
119
140
|
return obj[c.uniqueKey];
|
|
120
141
|
}
|
|
@@ -147,6 +168,7 @@ export var CLASSNAME;
|
|
|
147
168
|
if (c) {
|
|
148
169
|
res = c.target;
|
|
149
170
|
}
|
|
171
|
+
/* \/\/ console\.log\(`getClassBy "\$\{className\} return \\n\\n \$\{res\} \\n\\n`\) */
|
|
150
172
|
// @ts-ignore
|
|
151
173
|
return res;
|
|
152
174
|
}
|
|
@@ -154,4 +176,4 @@ export var CLASSNAME;
|
|
|
154
176
|
})(CLASSNAME || (CLASSNAME = {}));
|
|
155
177
|
;
|
|
156
178
|
({}); // @--end-of-file-for-module=typescript-class-helpers lib/classname.ts
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NuYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3Byb2plY3RzL3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9zcmMvbGliL2NsYXNzbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxLQUFLO0FBQ0wsS0FBSztBQUdMLFNBQVMsVUFBVTtJQUNqQixNQUFNLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUN2QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFRLENBQUM7QUFDbEMsQ0FBQztBQUNELE1BQU0sS0FBVyxTQUFTLENBOEt6QjtBQTlLRCxXQUFpQixXQUFTO0lBRXhCLFNBQWdCLGNBQWMsQ0FBQyxNQUFnQixFQUFFLFVBQWdDLEVBQUUsRUFBRSxZQUF1QjtRQUMxRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixNQUFNLDJFQUEyRSxNQUFNLEVBQUUsQ0FBQTtT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QUMsQ0FBQyxDQUFDLENBQUE7U0FDekI7UUFDRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRSxFQUFFLGlCQUFpQjtZQUN0RCxHQUFHLEdBQUcsU0FBUyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUVELElBQUksU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUM1QixHQUFHLEdBQUcsUUFBUSxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsRUFBRTtZQUNMLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ2hCO1FBRUQsYUFBYTtRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQWpDZSxzQkFBVSxhQWlDekIsQ0FBQTtBQUVILENBQUMsRUE5S2dCLFNBQVMsS0FBVCxTQUFTLFFBOEt6QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0VBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgU1lNQk9MIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IFRjaEhlbHBlcnMgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gJy4vc3RvcmFnZSc7XG5pbXBvcnQgeyBzZXRDbGFzc05hbWUgfSBmcm9tICcuL3NldC1jbGFzcy1uYW1lJztcbmltcG9ydCB7IHJlZ2lzdGVyZCB9IGZyb20gJy4vcmVnaXN0ZXJkLWRiJztcbmltcG9ydCB7IEVSUk9SX01TR19DTEFTU19XSVRIT1VUX0RFQ09SQVRPUiB9IGZyb20gJy4vZXJyb3JzLW1lc3NhZ2VzJztcbi8qICovXG4vKiAqL1xuICBcblxuZnVuY3Rpb24gZ2V0Q2xhc3NlcygpOiBNb2RlbHMuQ2xhc3NNZXRhW10ge1xuICBjb25zdCBzID0gZ2V0U3RvcmFnZSgpO1xuICByZXR1cm4gc1tTWU1CT0wuQ0xBU1NFU10gYXMgYW55O1xufVxuZXhwb3J0IG5hbWVzcGFjZSBDTEFTU05BTUUge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc0NvbmZpZyh0YXJnZXQ6IEZ1bmN0aW9uLCBjb25maWdzOiBNb2RlbHMuQ2xhc3NDb25maWdbXSA9IFtdLCBjYWxsZXJUYXJnZXQ/OiBGdW5jdGlvbik6IE1vZGVscy5DbGFzc0NvbmZpZ1tdIHtcbiAgICBpZiAoIV8uaXNGdW5jdGlvbih0YXJnZXQpKSB7XG4gICAgICB0aHJvdyBgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyXVtnZXRDbGFzc0NvbmZpZ10gQ2Fubm90IGdldCBjbGFzcyBjb25maWcgZnJvbTogJHt0YXJnZXR9YFxuICAgIH1cblxuICAgIGxldCBjb25maWc6IE1vZGVscy5DbGFzc0NvbmZpZztcbiAgICBjb25zdCBwYXJlbnRDbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpO1xuICAgIGNvbnN0IGlzVmFsaWRQYXJlbnQgPSAoXy5pc0Z1bmN0aW9uKHBhcmVudENsYXNzKSAmJiBwYXJlbnRDbGFzcy5uYW1lICE9PSAnJyk7XG5cbiAgICBpZiAocmVnaXN0ZXJkLmNsYXNzZXMuaW5jbHVkZXModGFyZ2V0KSkge1xuICAgICAgY29uZmlnID0gcmVnaXN0ZXJkLmNvbmZpZ3NbcmVnaXN0ZXJkLmNsYXNzZXMuZmluZEluZGV4KGMgPT4gYyA9PT0gdGFyZ2V0KV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZyA9IG5ldyBNb2RlbHMuQ2xhc3NDb25maWcoKTtcbiAgICAgIGNvbmZpZy5jbGFzc1JlZmVyZW5jZSA9IHRhcmdldDtcbiAgICAgIHJlZ2lzdGVyZC5jbGFzc2VzLnB1c2godGFyZ2V0KTtcbiAgICB9XG5cbiAgICByZWdpc3RlcmQuY29uZmlnc1tyZWdpc3RlcmQuY2xhc3Nlcy5maW5kSW5kZXgoYyA9PiBjID09PSB0YXJnZXQpXSA9IGNvbmZpZztcbiAgICBpZiAoY2FsbGVyVGFyZ2V0KSB7XG4gICAgICBjb25zdCBjYWxsZXJUYXJnZXRDb25maWcgPSByZWdpc3RlcmQuY29uZmlnc1tyZWdpc3RlcmQuY2xhc3Nlcy5maW5kSW5kZXgoYyA9PiBjID09PSBjYWxsZXJUYXJnZXQpXTtcbiAgICAgIGlmICghY29uZmlnLnZDaGlsZHJlbi5pbmNsdWRlcyhjYWxsZXJUYXJnZXRDb25maWcpKSB7XG4gICAgICAgIGNvbmZpZy52Q2hpbGRyZW4ucHVzaChjYWxsZXJUYXJnZXRDb25maWcpO1xuICAgICAgfVxuICAgICAgY2FsbGVyVGFyZ2V0Q29uZmlnLnZQYXJlbnQgPSBjb25maWc7XG4gICAgfVxuXG4gICAgY29uZmlncy5wdXNoKGNvbmZpZyk7XG5cbiAgICByZXR1cm4gaXNWYWxpZFBhcmVudCA/IGdldENsYXNzQ29uZmlnKHBhcmVudENsYXNzLCBjb25maWdzLCB0YXJnZXQpIDogY29uZmlncztcbiAgfVxuXG4gIC8qKlxuICAgKiBQTEVBU0UgUFJPVklERSBOQU1FIEFTIFRZUEVEIFNUUklORywgTk9UIFZBUklBQkxFXG4gICAqIERlY29yYXRvciByZXF1cmVkIGZvciBwcm9kdWN0aW9uIG1vZGVcbiAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiBjbGFzc1xuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIENMQVNTTkFNRShjbGFzc05hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogTW9kZWxzLkNMQVNTTkFNRU9wdGlvbnMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogRnVuY3Rpb24pIHtcblxuICAgICAgcmV0dXJuIHNldENsYXNzTmFtZSh0YXJnZXQsIGNsYXNzTmFtZSwgb3B0aW9ucyk7XG4gICAgfSBhcyBhbnk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NOYW1lKHRhcmdldDogRnVuY3Rpb24sIHByb2R1Y3Rpb24gPSBmYWxzZSkge1xuICAgIGlmIChfLmlzTmlsKHRhcmdldCkpIHtcblxuXG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyh0YXJnZXQpKSB7XG4gICAgICBjb25zb2xlLmxvZyh0YXJnZXQpO1xuICAgICAgSGVscGVycy53YXJuKGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXVtnZXRDbGFzc05hbWVdIHRhcmdldCBpcyBzdHJpbmc6ICcke3RhcmdldH0nLCBwcm9kdWNpdG9uOiAke3Byb2R1Y3Rpb259YClcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuICAgIGlmICghXy5pc0Z1bmN0aW9uKHRhcmdldCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRhcmdldCk7XG4gICAgICBIZWxwZXJzLndhcm4oYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnNdW2dldENsYXNzTmFtZV0gdGFyZ2V0IGlzIG5vdCBhIGNsYXNzYClcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlncyA9IGdldENsYXNzQ29uZmlnKHRhcmdldCk7XG4gICAgY29uc3QgY29uZmlnID0gXy5maXJzdChjb25maWdzKTtcblxuICAgIGNvbnN0IGNsYXNzTmFtZUluQnJvd3NlciA9IGNvbmZpZz8uY2xhc3NOYW1lSW5Ccm93c2VyO1xuXG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyICYmIF8uaXNTdHJpbmcoY2xhc3NOYW1lSW5Ccm93c2VyKSkge1xuICAgICAgcmV0dXJuIGNsYXNzTmFtZUluQnJvd3NlcjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGFzc05hbWUgPSBjb25maWc/LmNsYXNzTmFtZTtcblxuICAgIGlmIChjbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiBjbGFzc05hbWU7XG4gICAgfVxuXG4gICAgaWYgKHByb2R1Y3Rpb24pIHtcbiAgICAgIGNvbnNvbGUubG9nKCdjbGFzcyB3aXRob3V0IEBDTEFTUy5OQU1FIGRlb2NyYXRvcicsIHRhcmdldCBhcyBhbnkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoRVJST1JfTVNHX0NMQVNTX1dJVEhPVVRfREVDT1JBVE9SKTtcbiAgICB9IGVsc2Uge1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0Lm5hbWU7XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RJbmRleFByb3BlcnR5VmFsdWUob2JqOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG5cbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG5cbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMudW5pcXVlS2V5O1xuICAgIH1cbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzRmFtaWx5QnlDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG5cbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMuY2xhc3NGYW1pbHk7XG4gICAgfVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0Q2xhc3NGYW1pbHkob2JqOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG5cbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG5cbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMuY2xhc3NGYW1pbHk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdEluZGV4VmFsdWUob2JqOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG5cbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG5cbiAgICBpZiAoYyAmJiBfLmlzU3RyaW5nKGMudW5pcXVlS2V5KSkge1xuICAgICAgcmV0dXJuIG9ialtjLnVuaXF1ZUtleV07XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzQnkoY2xhc3NOYW1lOiBzdHJpbmcgfCBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcbiAgICBsZXQgcmVzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNsYXNzTmFtZSkpIHtcbiAgICAgIGlmIChjbGFzc05hbWUubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IGBNYXBwaW5nIGVycm9yLi4uIHBsZWFzZSB1c2UgcHJvcGVyIGNsYXNzIG5hbWVzOlxuICB7XG4gICAgcHJvcGVydHlPYmplY3Q6ICdNeUNsYXNzTmFtZScsXG4gICAgcHJvcGVydHlXaXRoQXJyYXk6IFsnTXlDbGFzc05hbWUnXVxuICB9XG5cbiAgICAgICAgYFxuICAgICAgfVxuICAgICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lWzBdXG4gICAgfVxuICAgIGlmICh0eXBlb2YgY2xhc3NOYW1lID09PSAnZnVuY3Rpb24nKSB7IC8vIFRPRE8gUVVJQ0tfRklYXG4gICAgICByZXMgPSBjbGFzc05hbWU7XG4gICAgfVxuICAgIGlmIChjbGFzc05hbWUgPT09ICdEYXRlJykge1xuICAgICAgcmVzID0gRGF0ZTtcbiAgICB9XG5cbiAgICBpZiAoY2xhc3NOYW1lID09PSAnRm9ybURhdGEnKSB7XG4gICAgICByZXMgPSBGb3JtRGF0YTtcbiAgICB9XG5cbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG5cbiAgICBpZiAoYykge1xuICAgICAgcmVzID0gYy50YXJnZXQ7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiByZXM7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzIGxpYi9jbGFzc25hbWUudHMiXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NuYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3Byb2plY3RzL3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9zcmMvbGliL2NsYXNzbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxLQUFLO0FBQ0wsS0FBSztBQUdMLFNBQVMsVUFBVTtJQUNqQixNQUFNLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUN2QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFRLENBQUM7QUFDbEMsQ0FBQztBQUNELE1BQU0sS0FBVyxTQUFTLENBOEt6QjtBQTlLRCxXQUFpQixXQUFTO0lBRXhCLFNBQWdCLGNBQWMsQ0FBQyxNQUFnQixFQUFFLFVBQWdDLEVBQUUsRUFBRSxZQUF1QjtRQUMxRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixNQUFNLDJFQUEyRSxNQUFNLEVBQUUsQ0FBQTtT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QUNoQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBUmUsK0JBQW1CLHNCQVFsQyxDQUFBO0lBRUQsU0FBZ0IsVUFBVSxDQUFDLFNBQTRCO1FBQ3JELElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzVCLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLE1BQU07Ozs7OztTQU1MLENBQUE7YUFDRjtZQUNELFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDekI7UUFDRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRSxFQUFFLGlCQUFpQjtZQUN0RCxHQUFHLEdBQUcsU0FBUyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUVELElBQUksU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUM1QixHQUFHLEdBQUcsUUFBUSxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsRUFBRTtZQUNMLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ2hCO1FBQ0wsMkZBQTJGO1FBQ3ZGLGFBQWE7UUFDYixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFqQ2Usc0JBQVUsYUFpQ3pCLENBQUE7QUFFSCxDQUFDLEVBOUtnQixTQUFTLEtBQVQsU0FBUyxRQThLekI7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHNFQUFzRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFNZTUJPTCB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBUY2hIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tICcuL3N0b3JhZ2UnO1xuaW1wb3J0IHsgc2V0Q2xhc3NOYW1lIH0gZnJvbSAnLi9zZXQtY2xhc3MtbmFtZSc7XG5pbXBvcnQgeyByZWdpc3RlcmQgfSBmcm9tICcuL3JlZ2lzdGVyZC1kYic7XG5pbXBvcnQgeyBFUlJPUl9NU0dfQ0xBU1NfV0lUSE9VVF9ERUNPUkFUT1IgfSBmcm9tICcuL2Vycm9ycy1tZXNzYWdlcyc7XG4vKiAqL1xuLyogKi9cbiAgXG5cbmZ1bmN0aW9uIGdldENsYXNzZXMoKTogTW9kZWxzLkNsYXNzTWV0YVtdIHtcbiAgY29uc3QgcyA9IGdldFN0b3JhZ2UoKTtcbiAgcmV0dXJuIHNbU1lNQk9MLkNMQVNTRVNdIGFzIGFueTtcbn1cbmV4cG9ydCBuYW1lc3BhY2UgQ0xBU1NOQU1FIHtcblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NDb25maWcodGFyZ2V0OiBGdW5jdGlvbiwgY29uZmlnczogTW9kZWxzLkNsYXNzQ29uZmlnW10gPSBbXSwgY2FsbGVyVGFyZ2V0PzogRnVuY3Rpb24pOiBNb2RlbHMuQ2xhc3NDb25maWdbXSB7XG4gICAgaWYgKCFfLmlzRnVuY3Rpb24odGFyZ2V0KSkge1xuICAgICAgdGhyb3cgYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcl1bZ2V0Q2xhc3NDb25maWddIENhbm5vdCBnZXQgY2xhc3MgY29uZmlnIGZyb206ICR7dGFyZ2V0fWBcbiAgICB9XG5cbiAgICBsZXQgY29uZmlnOiBNb2RlbHMuQ2xhc3NDb25maWc7XG4gICAgY29uc3QgcGFyZW50Q2xhc3MgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KTtcbiAgICBjb25zdCBpc1ZhbGlkUGFyZW50ID0gKF8uaXNGdW5jdGlvbihwYXJlbnRDbGFzcykgJiYgcGFyZW50Q2xhc3MubmFtZSAhPT0gJycpO1xuXG4gICAgaWYgKHJlZ2lzdGVyZC5jbGFzc2VzLmluY2x1ZGVzKHRhcmdldCkpIHtcbiAgICAgIGNvbmZpZyA9IHJlZ2lzdGVyZC5jb25maWdzW3JlZ2lzdGVyZC5jbGFzc2VzLmZpbmRJbmRleChjID0+IGMgPT09IHRhcmdldCldO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcgPSBuZXcgTW9kZWxzLkNsYXNzQ29uZmlnKCk7XG4gICAgICBjb25maWcuY2xhc3NSZWZlcmVuY2UgPSB0YXJnZXQ7XG4gICAgICByZWdpc3RlcmQuY2xhc3Nlcy5wdXNoKHRhcmdldCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJkLmNvbmZpZ3NbcmVnaXN0ZXJkLmNsYXNzZXMuZmluZEluZGV4KGMgPT4gYyA9PT0gdGFyZ2V0KV0gPSBjb25maWc7XG4gICAgaWYgKGNhbGxlclRhcmdldCkge1xuICAgICAgY29uc3QgY2FsbGVyVGFyZ2V0Q29uZmlnID0gcmVnaXN0ZXJkLmNvbmZpZ3NbcmVnaXN0ZXJkLmNsYXNzZXMuZmluZEluZGV4KGMgPT4gYyA9PT0gY2FsbGVyVGFyZ2V0KV07XG4gICAgICBpZiAoIWNvbmZpZy52Q2hpbGRyZW4uaW5jbHVkZXMoY2FsbGVyVGFyZ2V0Q29uZmlnKSkge1xuICAgICAgICBjb25maWcudkNoaWxkcmVuLnB1c2goY2FsbGVyVGFyZ2V0Q29uZmlnKTtcbiAgICAgIH1cbiAgICAgIGNhbGxlclRhcmdldENvbmZpZy52UGFyZW50ID0gY29uZmlnO1xuICAgIH1cblxuICAgIGNvbmZpZ3MucHVzaChjb25maWcpO1xuXG4gICAgcmV0dXJuIGlzVmFsaWRQYXJlbnQgPyBnZXRDbGFzc0NvbmZpZyhwYXJlbnRDbGFzcywgY29uZmlncywgdGFyZ2V0KSA6IGNvbmZpZ3M7XG4gIH1cblxuICAvKipcbiAgICogUExFQVNFIFBST1ZJREUgTkFNRSBBUyBUWVBFRCBTVFJJTkcsIE5PVCBWQVJJQUJMRVxuICAgKiBEZWNvcmF0b3IgcmVxdXJlZCBmb3IgcHJvZHVjdGlvbiBtb2RlXG4gICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgY2xhc3NcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBDTEFTU05BTUUoY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IE1vZGVscy5DTEFTU05BTUVPcHRpb25zKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IEZ1bmN0aW9uKSB7XG4vKiAgICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKGBDTEFTU05BTUUgSW5pdGVkIFxcJFxce2NsYXNzTmFtZVxcfWBcXCkgKi9cbiAgICAgIHJldHVybiBzZXRDbGFzc05hbWUodGFyZ2V0LCBjbGFzc05hbWUsIG9wdGlvbnMpO1xuICAgIH0gYXMgYW55O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzTmFtZSh0YXJnZXQ6IEZ1bmN0aW9uLCBwcm9kdWN0aW9uID0gZmFsc2UpIHtcbiAgICBpZiAoXy5pc05pbCh0YXJnZXQpKSB7XG4vKiAgICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKHRhcmdldFxcKTsgKi9cbi8qICAgICAgIFxcL1xcLyBIZWxwZXJzXFwud2FyblxcKGBcXFt0eXBlc2NyaXB0XFwtY2xhc3NcXC1oZWxwZXJzXFxdXFxbZ2V0Q2xhc3NOYW1lXFxdIHRhcmdldCBpcyBuaWxgXFwpICovXG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyh0YXJnZXQpKSB7XG4gICAgICBjb25zb2xlLmxvZyh0YXJnZXQpO1xuICAgICAgSGVscGVycy53YXJuKGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXVtnZXRDbGFzc05hbWVdIHRhcmdldCBpcyBzdHJpbmc6ICcke3RhcmdldH0nLCBwcm9kdWNpdG9uOiAke3Byb2R1Y3Rpb259YClcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuICAgIGlmICghXy5pc0Z1bmN0aW9uKHRhcmdldCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRhcmdldCk7XG4gICAgICBIZWxwZXJzLndhcm4oYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnNdW2dldENsYXNzTmFtZV0gdGFyZ2V0IGlzIG5vdCBhIGNsYXNzYClcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlncyA9IGdldENsYXNzQ29uZmlnKHRhcmdldCk7XG4gICAgY29uc3QgY29uZmlnID0gXy5maXJzdChjb25maWdzKTtcblxuICAgIGNvbnN0IGNsYXNzTmFtZUluQnJvd3NlciA9IGNvbmZpZz8uY2xhc3NOYW1lSW5Ccm93c2VyO1xuXG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyICYmIF8uaXNTdHJpbmcoY2xhc3NOYW1lSW5Ccm93c2VyKSkge1xuICAgICAgcmV0dXJuIGNsYXNzTmFtZUluQnJvd3NlcjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGFzc05hbWUgPSBjb25maWc/LmNsYXNzTmFtZTtcblxuICAgIGlmIChjbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiBjbGFzc05hbWU7XG4gICAgfVxuXG4gICAgaWYgKHByb2R1Y3Rpb24pIHtcbiAgICAgIGNvbnNvbGUubG9nKCdjbGFzcyB3aXRob3V0IEBDTEFTUy5OQU1FIGRlb2NyYXRvcicsIHRhcmdldCBhcyBhbnkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoRVJST1JfTVNHX0NMQVNTX1dJVEhPVVRfREVDT1JBVE9SKTtcbiAgICB9IGVsc2Uge1xuLyogICAgICAgXFwvXFwvIEhlbHBlcnNcXC5sb2dcXCgnY2hlY2sgZm9yICcgXFwrIHRhcmdldFxcLm5hbWVcXCkgKi9cbi8qICAgICAgIFxcL1xcLyBzZXRUaW1lb3V0XFwoXFwoXFwpID0+IFxceyAqL1xuLyogICAgICAgXFwvXFwvICAgXFwvXFwvIEhlbHBlcnNcXC5sb2dcXCgnY2hlY2sgZm9yICcgXFwrIHRhcmdldFxcLm5hbWUgXFwrICcgPT09ICcgXFwrIGNvbmZpZ1xcLmNsYXNzTmFtZVxcKVxcLyAqL1xuLyogICAgICAgXFwvXFwvICAgXFwvXFwvIFRPRE8gdGhpcyBtYXkgd29yaywgYnV0IG5vdCB5ZXQgaW4gc2luZ2xldG9uXFwvbW9ycGhpICovXG4vKiAgICAgICBcXC9cXC8gICBpZiBcXCghY29uZmlnXFwuY2xhc3NOYW1lXFwpIFxceyAqL1xuLyogICAgICAgXFwvXFwvICAgICBpZiBcXCh0YXJnZXRcXD9cXC5uYW1lICYmIHRhcmdldFxcLm5hbWUgIT09ICdPYmplY3QnXFwpIFxceyAqL1xuLyogICAgICAgXFwvXFwvICAgICAgIENvbmZpZ0hlbHBlcnNcXC5sb2dcXChgXFxbdHlwZXNjcmlwdFxcLWNsYXNzXFwtaGVscGVyc1xcXSBQbGVhc2UgdXNlIEBDTEFTU1xcLk5BTUVgICovXG4vKiAgICAgICBcXC9cXC8gICAgICAgICBcXCsgYFxcKCdcXCRcXHtcXCh0YXJnZXRcXD9cXC5uYW1lICYmICEhdGFyZ2V0XFwubmFtZVxcKSBcXD8gdGFyZ2V0XFwubmFtZSA6ICdcXC5cXC5cXC4nXFx9J1xcKSBkZWNvcmF0b3IgZm9yIGNsYXNzIFxcJFxce3RhcmdldFxcP1xcLm5hbWVcXH1gXFwpICovXG4vKiAgICAgICBcXC9cXC8gICAgIFxcfSAqL1xuLyogICAgICAgXFwvXFwvICAgXFx9ICovXG4vKiAgICAgICBcXC9cXC8gXFx9XFwpICovXG5cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldC5uYW1lO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0SW5kZXhQcm9wZXJ0eVZhbHVlKG9iajogYW55KSB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gVGNoSGVscGVycy5nZXROYW1lRnJvbU9iamVjdChvYmopO1xuLyogICAgIFxcL1xcLyBjb25zb2xlXFwubG9nXFwoJ2NsYXNzTmFtZScsY2xhc3NOYW1lXFwpICovXG4gICAgbGV0IGMgPSBnZXRDbGFzc2VzKCkuZmluZChjID0+IGMuY2xhc3NOYW1lID09PSBjbGFzc05hbWUpO1xuLyogICAgIFxcL1xcLyBjb25zb2xlXFwubG9nXFwoJ2MnLGNcXCkgKi9cbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMudW5pcXVlS2V5O1xuICAgIH1cbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzRmFtaWx5QnlDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXCgnZ2V0Q2xhc3Nlc1xcKFxcKScsIGdldENsYXNzZXNcXChcXClcXCkgKi9cbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMuY2xhc3NGYW1pbHk7XG4gICAgfVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0Q2xhc3NGYW1pbHkob2JqOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXCgnY2xhc3NOYW1lJyxjbGFzc05hbWVcXCkgKi9cbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXCgnYycsY1xcKSAqL1xuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5jbGFzc0ZhbWlseTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0SW5kZXhWYWx1ZShvYmo6IGFueSkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFRjaEhlbHBlcnMuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcbi8qICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKCdjbGFzc05hbWUnLGNsYXNzTmFtZVxcKSAqL1xuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbi8qICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKCdjJyxjXFwpICovXG4gICAgaWYgKGMgJiYgXy5pc1N0cmluZyhjLnVuaXF1ZUtleSkpIHtcbiAgICAgIHJldHVybiBvYmpbYy51bmlxdWVLZXldO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc0J5KGNsYXNzTmFtZTogc3RyaW5nIHwgRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgbGV0IHJlcztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjbGFzc05hbWUpKSB7XG4gICAgICBpZiAoY2xhc3NOYW1lLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBgTWFwcGluZyBlcnJvci4uLiBwbGVhc2UgdXNlIHByb3BlciBjbGFzcyBuYW1lczpcbiAge1xuICAgIHByb3BlcnR5T2JqZWN0OiAnTXlDbGFzc05hbWUnLFxuICAgIHByb3BlcnR5V2l0aEFycmF5OiBbJ015Q2xhc3NOYW1lJ11cbiAgfVxuXG4gICAgICAgIGBcbiAgICAgIH1cbiAgICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZVswXVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGNsYXNzTmFtZSA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBUT0RPIFFVSUNLX0ZJWFxuICAgICAgcmVzID0gY2xhc3NOYW1lO1xuICAgIH1cbiAgICBpZiAoY2xhc3NOYW1lID09PSAnRGF0ZScpIHtcbiAgICAgIHJlcyA9IERhdGU7XG4gICAgfVxuXG4gICAgaWYgKGNsYXNzTmFtZSA9PT0gJ0Zvcm1EYXRhJykge1xuICAgICAgcmVzID0gRm9ybURhdGE7XG4gICAgfVxuXG4gICAgbGV0IGMgPSBnZXRDbGFzc2VzKCkuZmluZChjID0+IGMuY2xhc3NOYW1lID09PSBjbGFzc05hbWUpO1xuXG4gICAgaWYgKGMpIHtcbiAgICAgIHJlcyA9IGMudGFyZ2V0O1xuICAgIH1cbi8qICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKGBnZXRDbGFzc0J5IFwiXFwkXFx7Y2xhc3NOYW1lXFx9IHJldHVybiBcXFxcblxcXFxuIFxcJFxce3Jlc1xcfSBcXFxcblxcXFxuYFxcKSAqL1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXR5cGVzY3JpcHQtY2xhc3MtaGVscGVycyBsaWIvY2xhc3NuYW1lLnRzIl19
|
|
@@ -17,6 +17,9 @@ export function describeFromClassStringify(target, parent = false) {
|
|
|
17
17
|
}
|
|
18
18
|
const classString = target.toString();
|
|
19
19
|
const matches = classString.match(FRegEx) || [];
|
|
20
|
+
/* \/\/ console\.log\(\{ */
|
|
21
|
+
/* \/\/ classString, */
|
|
22
|
+
/* \/\/ \}\); */
|
|
20
23
|
result = result.concat(matches);
|
|
21
24
|
return result.map(prop => prop
|
|
22
25
|
.replace('this.', '')
|
|
@@ -69,4 +72,4 @@ export function describeByDefaultModelsAndMapping(target) {
|
|
|
69
72
|
}
|
|
70
73
|
;
|
|
71
74
|
({}); // @--end-of-file-for-module=typescript-class-helpers lib/describe-class.ts
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvcHJvamVjdHMvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3NyYy9saWIvZGVzY3JpYmUtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJbkM7OztJQUdJO0FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNuRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBZ0IsRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN6RSxhQUFhO0lBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxhQUFhO1lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQy9FO0tBQ0Y7SUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDakQsNkJBQTZCO0lBQzdCLDJCQUEyQjtJQUUzQixrQkFBa0I7SUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSTtTQUMzQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUNwQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztTQUNoQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztTQUNoQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUNsQixDQUFBO0FBRUgsQ0FBQztBQUVEOzs7S0FHSztBQUNMLE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxNQUFnQjtJQUNoRSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7SUFDWixJQUFJLE1BQU0sRUFBRTtRQUNWLGFBQWE7UUFDYixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNaLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsYUFBYTtnQkFDYixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELGFBQWE7UUFDYixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2IsYUFBYTtvQkFDYixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFBO1NBQ0g7YUFBTSxJQUFJLE9BQU8sRUFBRTtZQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLGFBQWE7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztTQUNOO0tBQ0Y7SUFFRCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyRUFBMkUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBTWU1CT0wgfSBmcm9tICcuL3N5bWJvbHMnO1xuXG5cblxuLyoqXG4gICogQERFUFJFQ0FURURcbiAgKiBEZXNjcmliZSBmaWVsZHMgYXNzaWduZWQgaW4gY2xhc3NcbiAgKi9cbmNvbnN0IEZSZWdFeCA9IG5ldyBSZWdFeHAoLyg/OnRoaXNcXC4pKC4rPyg/PSApKS9nKTtcbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUZyb21DbGFzc1N0cmluZ2lmeSh0YXJnZXQ6IEZ1bmN0aW9uLCBwYXJlbnQgPSBmYWxzZSk6IHN0cmluZ1tdIHtcbiAgLy8gQHRzLWlnbm9yZVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGlmIChwYXJlbnQpIHtcbiAgICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0LnByb3RvdHlwZSk7XG4gICAgaWYgKHByb3RvKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGRlc2NyaWJlRnJvbUNsYXNzU3RyaW5naWZ5KHByb3RvLmNvbnN0cnVjdG9yLCBwYXJlbnQpKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgY2xhc3NTdHJpbmcgPSB0YXJnZXQudG9TdHJpbmcoKTtcbiAgY29uc3QgbWF0Y2hlcyA9IGNsYXNzU3RyaW5nLm1hdGNoKEZSZWdFeCkgfHwgW11cbi8qICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChcXHsgKi9cbi8qICAgXFwvXFwvICAgY2xhc3NTdHJpbmcsICovXG5cbi8qICAgXFwvXFwvIFxcfVxcKTsgKi9cbiAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChtYXRjaGVzKTtcbiAgcmV0dXJuIHJlc3VsdC5tYXAocHJvcCA9PiBwcm9wXG4gICAgLnJlcGxhY2UoJ3RoaXMuJywgJycpXG4gICAgLnJlcGxhY2UoJy4nLCAnJylcbiAgICAucmVwbGFjZSgnKScsICcnKVxuICAgIC5yZXBsYWNlKCcoJywgJycpXG4gIClcblxufVxuXG4vKipcbiAgICogRGVzY3JpYmUgZmllbGRzIGFzc2lnbmUgdGhyb3VnaCBARGVmYXVsdE1vZGVsV2l0aE1hcHBpbmcgZGVjb3JhdG9yXG4gICAqIHdpdGhvdXQgZnVuY3Rpb25zXG4gICAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlQnlEZWZhdWx0TW9kZWxzQW5kTWFwcGluZyh0YXJnZXQ6IEZ1bmN0aW9uKTogc3RyaW5nW10ge1xuICBsZXQgcmVzID0ge31cbiAgaWYgKHRhcmdldCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodGFyZ2V0W1NZTUJPTC5ERUZBVUxUX01PREVMXSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgT2JqZWN0LmtleXModGFyZ2V0W1NZTUJPTC5ERUZBVUxUX01PREVMXSlcbiAgICAgICAgLmZpbHRlcihrZXkgPT4ge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICByZXR1cm4gIV8uaXNGdW5jdGlvbih0YXJnZXRbU1lNQk9MLkRFRkFVTFRfTU9ERUxdW2tleV0pO1xuICAgICAgICB9KVxuICAgICAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICByZXR1cm4gcmVzW2tleV0gPSBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGxldCBtYXBwaW5nID0gdGFyZ2V0W1NZTUJPTC5NT0RFTFNfTUFQUElOR107XG4gICAgaWYgKF8uaXNBcnJheShtYXBwaW5nKSkge1xuICAgICAgbWFwcGluZy5mb3JFYWNoKG0gPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhtKVxuICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXNba2V5XSA9IG51bGw7XG4gICAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAobWFwcGluZykge1xuXG4gICAgICBPYmplY3Qua2V5cyhtYXBwaW5nKVxuICAgICAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICByZXNba2V5XSA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGxldCBwcm9wTmFtZXMgPSBPYmplY3Qua2V5cyhyZXMpLmZpbHRlcihmID0+ICEhZik7XG4gIHByb3BOYW1lcyA9ICghcHJvcE5hbWVzLmluY2x1ZGVzKCdpZCcpID8gWydpZCddIDogW10pLmNvbmNhdChwcm9wTmFtZXMpO1xuICByZXR1cm4gcHJvcE5hbWVzO1xufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzIGxpYi9kZXNjcmliZS1jbGFzcy50cyJdfQ==
|
|
@@ -49,9 +49,11 @@ export const CLASS = {
|
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
const config = TchHelpers.getConfigs(target)[0];
|
|
52
|
+
/* \/\/ console\.log\(`getSingleton for \$\{target\.name\}: `, config\.singleton\) */
|
|
52
53
|
return config.singleton;
|
|
53
54
|
},
|
|
54
55
|
setSingletonObj(target, singletonObject) {
|
|
56
|
+
/* \/\/ console\.log\('SET SINGLETON', singletonObject\) */
|
|
55
57
|
if (typeof target !== 'function') {
|
|
56
58
|
console.error(`[typescript-class-helpers][setSingletonObj] Type of target is not a function`);
|
|
57
59
|
return;
|
|
@@ -65,6 +67,7 @@ export const CLASS = {
|
|
|
65
67
|
return;
|
|
66
68
|
}
|
|
67
69
|
const className = CLASS.getName(target);
|
|
70
|
+
/* \/\/ console\.log\(`SINGLETON SET for TARGET \$\{className\}`\) */
|
|
68
71
|
const config = TchHelpers.getConfigs(target)[0];
|
|
69
72
|
if (config.singleton) {
|
|
70
73
|
console.warn(`[typescript-class-helpers] You are trying to set singleton of "${className}" second time with different object.`);
|
|
@@ -103,6 +106,7 @@ export const CLASS = {
|
|
|
103
106
|
return false;
|
|
104
107
|
}
|
|
105
108
|
if (obj === anotherObj) {
|
|
109
|
+
/* \/\/ console\.log\(`EQ v1: , v2: \- class1 \$\{CLASS\.getNameFromObject\(obj\)\}, class2 \$\{CLASS\.getNameFromObject\(anotherObj\)\}`, obj, anotherObj\) */
|
|
106
110
|
return true;
|
|
107
111
|
}
|
|
108
112
|
const v1 = CLASSNAME.getObjectIndexValue(obj);
|
|
@@ -110,12 +114,19 @@ export const CLASS = {
|
|
|
110
114
|
const f1 = CLASSNAME.getObjectClassFamily(obj);
|
|
111
115
|
const f2 = CLASSNAME.getObjectClassFamily(anotherObj);
|
|
112
116
|
const isFamilyDiff = (!_.isString(f1) || !_.isString(f2) || (f1 !== f2));
|
|
117
|
+
/* \/\/ console\.log\(`DIFF FAMILY \$\{isFamilyDiff\} v1: \$\{CLASSNAME\.getObjectClassFamily\(obj\)\}, v2: \$\{CLASSNAME\.getObjectClassFamily\(anotherObj\)\} \- class1 \$\{CLASS\.getNameFromObject\(obj\)\}, class2 \$\{CLASS\.getNameFromObject\(anotherObj\)\}`\) */
|
|
113
118
|
if (isFamilyDiff) {
|
|
119
|
+
/* \/\/ console\.log\(`DIFF v1: \$\{v1\}, v2: \$\{v2\} \- class1 \$\{CLASS\.getNameFromObject\(obj\)\}, class2 \$\{CLASS\.getNameFromObject\(anotherObj\)\}`\) */
|
|
114
120
|
return false;
|
|
115
121
|
}
|
|
116
122
|
if (!CLASS.OBJECT(obj).isClassObject || !CLASS.OBJECT(anotherObj).isClassObject) {
|
|
123
|
+
/* \/\/ console\.log\(`NOT CLASS v1: \$\{v1\}, v2: \$\{v2\} \- class1 \$\{CLASS\.getNameFromObject\(obj\)\}, class2 \$\{CLASS\.getNameFromObject\(anotherObj\)\}`\) */
|
|
117
124
|
return false;
|
|
118
125
|
}
|
|
126
|
+
/* \/\/ console\.log\(`v1: \$\{v1\} ,class \$\{CLASS\.getNameFromObject\(obj\)\} ,prop: \$\{CLASS\.OBJECT\(obj\)\.indexProperty\}`\) */
|
|
127
|
+
/* \/\/ console\.log\(`v2: \$\{v2\} ,class \$\{CLASS\.getNameFromObject\(anotherObj\)\} ,prop: \$\{CLASS\.OBJECT\(anotherObj\)\.indexProperty\}`\) */
|
|
128
|
+
/* \/\/ console\.log\(`v1: \$\{v1\}, v2: \$\{v2\} \- class1 \$\{CLASS\.getNameFromObject\(obj\)\}, class2 \$\{CLASS\.getNameFromObject\(anotherObj\)\}`\) */
|
|
129
|
+
/* \/\/ console\.log\(''\) */
|
|
119
130
|
if ((_.isNumber(v1) && _.isNumber(v2)) || (_.isString(v1) && _.isString(v2))) {
|
|
120
131
|
const res = (v1 === v2);
|
|
121
132
|
// @ts-ignore
|
|
@@ -132,4 +143,4 @@ export const CLASS = {
|
|
|
132
143
|
export * from 'enum-values';
|
|
133
144
|
;
|
|
134
145
|
({}); // @--end-of-file-for-module=typescript-class-helpers lib/index.ts
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvcHJvamVjdHMvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxNQUFNLE9BQU8sVUFBVTtJQUVyQixNQUFNLENBQUMsS0FBSyxDQUFDLFNBQTRCO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFTO1FBQzVCLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUM7U0FDdEI7UUFDRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBZ0IsRUFBRSxVQUFVLEdBQUcsS0FBSztRQUNqRCxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBVyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBUztRQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFnQjtRQUNoQyxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFnQjtRQUN4QyxNQUFNLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLEVBQUUsR0FBRyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxhQUFhO1FBQ2IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNyQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0NBRUY7QUFHRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxTQUFTO0lBQ3pCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztJQUN2QixZQUFZLENBQVUsTUFBZ0I7UUFDcEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7WUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFBO1lBQzdGLE9BQU07U0FDUDtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFHL0MsT0FBTyxNQUFNLENBQUMsU0FBYyxDQUFDO0lBQy9CLENBQUM7SUFDRCxlQUFlLENBQUMsTUFBZ0IsRUFBRSxlQUFvQjtRQUVwRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUNoQyxPQUFPLENBQUMsS0FBSyxDQUFDLDhFQUE4RSxDQUFDLENBQUE7WUFDN0YsT0FBTTtTQUNQO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQTtZQUNoRyxPQUFNO1NBQ1A7UUFFRCxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLHNGQUFzRixDQUFDLENBQUE7WUFDckcsT0FBTTtTQUNQO1FBRUQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUl4QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRS9DLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLGtFQUFrRSxTQUFTLHNDQUFzQyxDQUFDLENBQUE7U0FDaEk7UUFFRCxNQUFNLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO0lBQ2pDLFNBQVMsRUFBRSxDQUFDLE1BQWdCLEVBQUUsRUFBRTtRQUM5QixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7SUFDdkMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO0lBQzNCLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxpQkFBaUI7SUFDL0Msa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtJQUNqRCxNQUFNLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtRQUNuQixPQUFPO1lBQ0wsSUFBSSxVQUFVO2dCQUNaLE9BQU8sU0FBUyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFDRCxJQUFJLGFBQWE7Z0JBQ2YsT0FBTyxTQUFTLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELElBQUksYUFBYTtnQkFFZixJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO29CQUN2RCxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3pDLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2dCQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDakIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBQ0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUM5QyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxLQUFLLFFBQVEsQ0FBQztZQUN6RCxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsVUFBZSxFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLEVBQUU7b0JBQy9FLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2dCQUNELElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRTtvQkFFdEIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBQ0QsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDOUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFBO2dCQUNyRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFekUsSUFBSSxZQUFZLEVBQUU7b0JBRWhCLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2dCQUNELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFO29CQUUvRSxPQUFPLEtBQUssQ0FBQTtpQkFDYjtnQkFNRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtvQkFFNUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQ3hCLGFBQWE7b0JBQ2IsT0FBTyxHQUFHLENBQUM7aUJBQ1o7Z0JBQ0QsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtpQkFDekI7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFBO0FBRUQsY0FBYyxhQUFhLENBQUM7QUFFM0IsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrRUFBa0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDTEFTU05BTUUgfSBmcm9tICcuL2NsYXNzbmFtZSc7XG5pbXBvcnQgeyBkZXNjcmliZUZyb21DbGFzc1N0cmluZ2lmeSwgZGVzY3JpYmVCeURlZmF1bHRNb2RlbHNBbmRNYXBwaW5nIH0gZnJvbSAnLi9kZXNjcmliZS1jbGFzcyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBzZXRDbGFzc05hbWUgfSBmcm9tICcuL3NldC1jbGFzcy1uYW1lJztcblxuZXhwb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuZXhwb3J0IHsgU1lNQk9MIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IGNsYXNzIFRjaEhlbHBlcnMge1xuXG4gIHN0YXRpYyBnZXRCeShjbGFzc05hbWU6IHN0cmluZyB8IEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIENMQVNTTkFNRS5nZXRDbGFzc0J5KGNsYXNzTmFtZSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0RnJvbU9iamVjdChvOiBPYmplY3QpIHtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvKSB8fCBfLmlzTnVsbChvKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoby5jb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIG8uY29uc3RydWN0b3I7XG4gICAgfVxuICAgIGNvbnN0IHAgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YobylcbiAgICByZXR1cm4gcCAmJiBwLmNvbnN0cnVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldE5hbWUodGFyZ2V0OiBGdW5jdGlvbiwgcHJvZHVjdGlvbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIENMQVNTTkFNRS5nZXRDbGFzc05hbWUodGFyZ2V0LCBwcm9kdWN0aW9uKSBhcyBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZ2V0TmFtZUZyb21PYmplY3QobzogT2JqZWN0KSB7XG4gICAgY29uc3QgZm5DTGFzcyA9IHRoaXMuZ2V0RnJvbU9iamVjdChvKTtcbiAgICByZXR1cm4gdGhpcy5nZXROYW1lKGZuQ0xhc3MpO1xuICB9XG5cbiAgc3RhdGljIGdldENvbmZpZ3ModGFyZ2V0OiBGdW5jdGlvbik6IE1vZGVscy5DbGFzc0NvbmZpZ1tdIHtcbiAgICByZXR1cm4gQ0xBU1NOQU1FLmdldENsYXNzQ29uZmlnKHRhcmdldClcbiAgfVxuXG4gIHN0YXRpYyBkZXNjcmliZVByb3Blcml0ZXModGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIGNvbnN0IGQxID0gZGVzY3JpYmVGcm9tQ2xhc3NTdHJpbmdpZnkodGFyZ2V0KTtcbiAgICBjb25zdCBkMiA9IGRlc2NyaWJlQnlEZWZhdWx0TW9kZWxzQW5kTWFwcGluZyh0YXJnZXQpO1xuICAgIGxldCB1bmlxID0ge307XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGQxLmNvbmNhdChkMikuZm9yRWFjaChwID0+IHVuaXFbcF0gPSBwKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModW5pcSlcbiAgICAgIC5maWx0ZXIoZCA9PiAhIWQpXG4gICAgICAuZmlsdGVyKGQgPT4gdHlwZW9mIHRhcmdldC5wcm90b3R5cGVbZF0gIT09ICdmdW5jdGlvbicpXG4gIH1cblxufVxuXG5cbmV4cG9ydCBjb25zdCBDTEFTUyA9IHtcbiAgTkFNRTogQ0xBU1NOQU1FLkNMQVNTTkFNRSxcbiAgc2V0TmFtZTogc2V0Q2xhc3NOYW1lLFxuICBnZXRCeTogVGNoSGVscGVycy5nZXRCeSxcbiAgZ2V0U2luZ2xldG9uPFQgPSBhbnk+KHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bc2V0U2luZ2xldG9uT2JqXSBUeXBlIG9mIHRhcmdldCBpcyBub3QgYSBmdW5jdGlvbmApXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgY29uZmlnID0gVGNoSGVscGVycy5nZXRDb25maWdzKHRhcmdldClbMF1cblxuXG4gICAgcmV0dXJuIGNvbmZpZy5zaW5nbGV0b24gYXMgVDtcbiAgfSxcbiAgc2V0U2luZ2xldG9uT2JqKHRhcmdldDogRnVuY3Rpb24sIHNpbmdsZXRvbk9iamVjdDogYW55KSB7XG5cbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bc2V0U2luZ2xldG9uT2JqXSBUeXBlIG9mIHRhcmdldCBpcyBub3QgYSBmdW5jdGlvbmApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzaW5nbGV0b25PYmplY3QpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXVtzZXRTaW5nbGV0b25PYmpdIFNpbmdsZXRvbiBpbnN0YW5jZSBjYW50IGJlIGFuIGFycmF5YClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc2luZ2xldG9uT2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS5lcnJvcihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bc2V0U2luZ2xldG9uT2JqXSBTaW5nbGV0b24gaW5zdGFuY2UgY2FudCBtdXN0IGJlIGEgb2JqZWN0YClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IENMQVNTLmdldE5hbWUodGFyZ2V0KTtcblxuXG5cbiAgICBjb25zdCBjb25maWcgPSBUY2hIZWxwZXJzLmdldENvbmZpZ3ModGFyZ2V0KVswXVxuXG4gICAgaWYgKGNvbmZpZy5zaW5nbGV0b24pIHtcbiAgICAgIGNvbnNvbGUud2FybihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc10gWW91IGFyZSB0cnlpbmcgdG8gc2V0IHNpbmdsZXRvbiBvZiBcIiR7Y2xhc3NOYW1lfVwiIHNlY29uZCB0aW1lIHdpdGggZGlmZmVyZW50IG9iamVjdC5gKVxuICAgIH1cblxuICAgIGNvbmZpZy5zaW5nbGV0b24gPSBzaW5nbGV0b25PYmplY3Q7XG4gIH0sXG4gIGdldENvbmZpZ3M6IFRjaEhlbHBlcnMuZ2V0Q29uZmlncyxcbiAgZ2V0Q29uZmlnOiAodGFyZ2V0OiBGdW5jdGlvbikgPT4ge1xuICAgIHJldHVybiBfLmZpcnN0KFRjaEhlbHBlcnMuZ2V0Q29uZmlncyh0YXJnZXQpKTtcbiAgfSxcbiAgZ2V0RnJvbU9iamVjdDogVGNoSGVscGVycy5nZXRGcm9tT2JqZWN0LFxuICBnZXROYW1lOiBUY2hIZWxwZXJzLmdldE5hbWUsXG4gIGdldE5hbWVGcm9tT2JqZWN0OiBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0LFxuICBkZXNjcmliZVByb3Blcml0ZXM6IFRjaEhlbHBlcnMuZGVzY3JpYmVQcm9wZXJpdGVzLFxuICBPQkpFQ1Q6IChvYmo6IGFueSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBnZXQgaW5kZXhWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIENMQVNTTkFNRS5nZXRPYmplY3RJbmRleFZhbHVlKG9iaik7XG4gICAgICB9LFxuICAgICAgZ2V0IGluZGV4UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiBDTEFTU05BTUUuZ2V0T2JqZWN0SW5kZXhQcm9wZXJ0eVZhbHVlKG9iaik7XG4gICAgICB9LFxuICAgICAgZ2V0IGlzQ2xhc3NPYmplY3QoKSB7XG5cbiAgICAgICAgaWYgKCFfLmlzT2JqZWN0KG9iaikgfHwgXy5pc0FycmF5KG9iaikgfHwgXy5pc1JlZ0V4cChvYmopIHx8XG4gICAgICAgICAgXy5pc0J1ZmZlcihvYmopIHx8IF8uaXNBcnJheUJ1ZmZlcihvYmopKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzRGF0ZShvYmopKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gQ0xBU1MuZ2V0TmFtZUZyb21PYmplY3Qob2JqKVxuICAgICAgICByZXR1cm4gXy5pc1N0cmluZyhjbGFzc05hbWUpICYmIGNsYXNzTmFtZSAhPT0gJ09iamVjdCc7XG4gICAgICB9LFxuICAgICAgaXNFcXVhbDogKGFub3RoZXJPYmo6IGFueSwgY29tcGFyZURlZXAgPSBmYWxzZSkgPT4ge1xuICAgICAgICBpZiAoIUNMQVNTLk9CSkVDVChvYmopLmlzQ2xhc3NPYmplY3QgfHwgIUNMQVNTLk9CSkVDVChhbm90aGVyT2JqKS5pc0NsYXNzT2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvYmogPT09IGFub3RoZXJPYmopIHtcblxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHYxID0gQ0xBU1NOQU1FLmdldE9iamVjdEluZGV4VmFsdWUob2JqKTtcbiAgICAgICAgY29uc3QgdjIgPSBDTEFTU05BTUUuZ2V0T2JqZWN0SW5kZXhWYWx1ZShhbm90aGVyT2JqKTtcbiAgICAgICAgY29uc3QgZjEgPSBDTEFTU05BTUUuZ2V0T2JqZWN0Q2xhc3NGYW1pbHkob2JqKVxuICAgICAgICBjb25zdCBmMiA9IENMQVNTTkFNRS5nZXRPYmplY3RDbGFzc0ZhbWlseShhbm90aGVyT2JqKVxuICAgICAgICBjb25zdCBpc0ZhbWlseURpZmYgPSAoIV8uaXNTdHJpbmcoZjEpIHx8ICFfLmlzU3RyaW5nKGYyKSB8fCAoZjEgIT09IGYyKSk7XG5cbiAgICAgICAgaWYgKGlzRmFtaWx5RGlmZikge1xuXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghQ0xBU1MuT0JKRUNUKG9iaikuaXNDbGFzc09iamVjdCB8fCAhQ0xBU1MuT0JKRUNUKGFub3RoZXJPYmopLmlzQ2xhc3NPYmplY3QpIHtcblxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICBpZiAoKF8uaXNOdW1iZXIodjEpICYmIF8uaXNOdW1iZXIodjIpKSB8fCAoXy5pc1N0cmluZyh2MSkgJiYgXy5pc1N0cmluZyh2MikpKSB7XG5cbiAgICAgICAgICBjb25zdCByZXMgPSAodjEgPT09IHYyKTtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tcGFyZURlZXApIHtcbiAgICAgICAgICByZXR1cm4gXy5pc0VxdWFsKHYxLCB2MilcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJ2VudW0tdmFsdWVzJztcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXR5cGVzY3JpcHQtY2xhc3MtaGVscGVycyBsaWIvaW5kZXgudHMiXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvcHJvamVjdHMvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxNQUFNLE9BQU8sVUFBVTtJQUVyQixNQUFNLENBQUMsS0FBSyxDQUFDLFNBQTRCO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFTO1FBQzVCLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUM7U0FDdEI7UUFDRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMs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QTZKO2dCQUM3SixvS0FBb0s7Z0JBQ3BLLHFDQUFxQztnQkFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBRTVFLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixhQUFhO29CQUNiLE9BQU8sR0FBRyxDQUFDO2lCQUNaO2dCQUNELElBQUksV0FBVyxFQUFFO29CQUNmLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7aUJBQ3pCO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQUVELGNBQWMsYUFBYSxDQUFDO0FBRTNCLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0VBQWtFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ0xBU1NOQU1FIH0gZnJvbSAnLi9jbGFzc25hbWUnO1xuaW1wb3J0IHsgZGVzY3JpYmVGcm9tQ2xhc3NTdHJpbmdpZnksIGRlc2NyaWJlQnlEZWZhdWx0TW9kZWxzQW5kTWFwcGluZyB9IGZyb20gJy4vZGVzY3JpYmUtY2xhc3MnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgc2V0Q2xhc3NOYW1lIH0gZnJvbSAnLi9zZXQtY2xhc3MtbmFtZSc7XG5cbmV4cG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCB7IFNZTUJPTCB9IGZyb20gJy4vc3ltYm9scyc7XG5cbmV4cG9ydCBjbGFzcyBUY2hIZWxwZXJzIHtcblxuICBzdGF0aWMgZ2V0QnkoY2xhc3NOYW1lOiBzdHJpbmcgfCBGdW5jdGlvbikge1xuICAgIHJldHVybiBDTEFTU05BTUUuZ2V0Q2xhc3NCeShjbGFzc05hbWUpO1xuICB9XG5cbiAgc3RhdGljIGdldEZyb21PYmplY3QobzogT2JqZWN0KSB7XG4gICAgaWYgKF8uaXNVbmRlZmluZWQobykgfHwgXy5pc051bGwobykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG8uY29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiBvLmNvbnN0cnVjdG9yO1xuICAgIH1cbiAgICBjb25zdCBwID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pXG4gICAgcmV0dXJuIHAgJiYgcC5jb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXROYW1lKHRhcmdldDogRnVuY3Rpb24sIHByb2R1Y3Rpb24gPSBmYWxzZSkge1xuICAgIHJldHVybiBDTEFTU05BTUUuZ2V0Q2xhc3NOYW1lKHRhcmdldCwgcHJvZHVjdGlvbikgYXMgc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGdldE5hbWVGcm9tT2JqZWN0KG86IE9iamVjdCkge1xuICAgIGNvbnN0IGZuQ0xhc3MgPSB0aGlzLmdldEZyb21PYmplY3Qobyk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TmFtZShmbkNMYXNzKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb25maWdzKHRhcmdldDogRnVuY3Rpb24pOiBNb2RlbHMuQ2xhc3NDb25maWdbXSB7XG4gICAgcmV0dXJuIENMQVNTTkFNRS5nZXRDbGFzc0NvbmZpZyh0YXJnZXQpXG4gIH1cblxuICBzdGF0aWMgZGVzY3JpYmVQcm9wZXJpdGVzKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICBjb25zdCBkMSA9IGRlc2NyaWJlRnJvbUNsYXNzU3RyaW5naWZ5KHRhcmdldCk7XG4gICAgY29uc3QgZDIgPSBkZXNjcmliZUJ5RGVmYXVsdE1vZGVsc0FuZE1hcHBpbmcodGFyZ2V0KTtcbiAgICBsZXQgdW5pcSA9IHt9O1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkMS5jb25jYXQoZDIpLmZvckVhY2gocCA9PiB1bmlxW3BdID0gcCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHVuaXEpXG4gICAgICAuZmlsdGVyKGQgPT4gISFkKVxuICAgICAgLmZpbHRlcihkID0+IHR5cGVvZiB0YXJnZXQucHJvdG90eXBlW2RdICE9PSAnZnVuY3Rpb24nKVxuICB9XG5cbn1cblxuXG5leHBvcnQgY29uc3QgQ0xBU1MgPSB7XG4gIE5BTUU6IENMQVNTTkFNRS5DTEFTU05BTUUsXG4gIHNldE5hbWU6IHNldENsYXNzTmFtZSxcbiAgZ2V0Qnk6IFRjaEhlbHBlcnMuZ2V0QnksXG4gIGdldFNpbmdsZXRvbjxUID0gYW55Pih0YXJnZXQ6IEZ1bmN0aW9uKSB7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXQgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnNdW3NldFNpbmdsZXRvbk9ial0gVHlwZSBvZiB0YXJnZXQgaXMgbm90IGEgZnVuY3Rpb25gKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGNvbmZpZyA9IFRjaEhlbHBlcnMuZ2V0Q29uZmlncyh0YXJnZXQpWzBdXG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgZ2V0U2luZ2xldG9uIGZvciBcXCRcXHt0YXJnZXRcXC5uYW1lXFx9OiBgLCBjb25maWdcXC5zaW5nbGV0b25cXCkgKi9cblxuICAgIHJldHVybiBjb25maWcuc2luZ2xldG9uIGFzIFQ7XG4gIH0sXG4gIHNldFNpbmdsZXRvbk9iaih0YXJnZXQ6IEZ1bmN0aW9uLCBzaW5nbGV0b25PYmplY3Q6IGFueSkge1xuLyogICAgIFxcL1xcLyBjb25zb2xlXFwubG9nXFwoJ1NFVCBTSU5HTEVUT04nLCBzaW5nbGV0b25PYmplY3RcXCkgKi9cbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bc2V0U2luZ2xldG9uT2JqXSBUeXBlIG9mIHRhcmdldCBpcyBub3QgYSBmdW5jdGlvbmApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzaW5nbGV0b25PYmplY3QpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXVtzZXRTaW5nbGV0b25PYmpdIFNpbmdsZXRvbiBpbnN0YW5jZSBjYW50IGJlIGFuIGFycmF5YClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc2luZ2xldG9uT2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS5lcnJvcihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bc2V0U2luZ2xldG9uT2JqXSBTaW5nbGV0b24gaW5zdGFuY2UgY2FudCBtdXN0IGJlIGEgb2JqZWN0YClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IENMQVNTLmdldE5hbWUodGFyZ2V0KTtcblxuXG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgU0lOR0xFVE9OIFNFVCBmb3IgVEFSR0VUIFxcJFxce2NsYXNzTmFtZVxcfWBcXCkgKi9cbiAgICBjb25zdCBjb25maWcgPSBUY2hIZWxwZXJzLmdldENvbmZpZ3ModGFyZ2V0KVswXVxuXG4gICAgaWYgKGNvbmZpZy5zaW5nbGV0b24pIHtcbiAgICAgIGNvbnNvbGUud2FybihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc10gWW91IGFyZSB0cnlpbmcgdG8gc2V0IHNpbmdsZXRvbiBvZiBcIiR7Y2xhc3NOYW1lfVwiIHNlY29uZCB0aW1lIHdpdGggZGlmZmVyZW50IG9iamVjdC5gKVxuICAgIH1cblxuICAgIGNvbmZpZy5zaW5nbGV0b24gPSBzaW5nbGV0b25PYmplY3Q7XG4gIH0sXG4gIGdldENvbmZpZ3M6IFRjaEhlbHBlcnMuZ2V0Q29uZmlncyxcbiAgZ2V0Q29uZmlnOiAodGFyZ2V0OiBGdW5jdGlvbikgPT4ge1xuICAgIHJldHVybiBfLmZpcnN0KFRjaEhlbHBlcnMuZ2V0Q29uZmlncyh0YXJnZXQpKTtcbiAgfSxcbiAgZ2V0RnJvbU9iamVjdDogVGNoSGVscGVycy5nZXRGcm9tT2JqZWN0LFxuICBnZXROYW1lOiBUY2hIZWxwZXJzLmdldE5hbWUsXG4gIGdldE5hbWVGcm9tT2JqZWN0OiBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0LFxuICBkZXNjcmliZVByb3Blcml0ZXM6IFRjaEhlbHBlcnMuZGVzY3JpYmVQcm9wZXJpdGVzLFxuICBPQkpFQ1Q6IChvYmo6IGFueSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBnZXQgaW5kZXhWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIENMQVNTTkFNRS5nZXRPYmplY3RJbmRleFZhbHVlKG9iaik7XG4gICAgICB9LFxuICAgICAgZ2V0IGluZGV4UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiBDTEFTU05BTUUuZ2V0T2JqZWN0SW5kZXhQcm9wZXJ0eVZhbHVlKG9iaik7XG4gICAgICB9LFxuICAgICAgZ2V0IGlzQ2xhc3NPYmplY3QoKSB7XG5cbiAgICAgICAgaWYgKCFfLmlzT2JqZWN0KG9iaikgfHwgXy5pc0FycmF5KG9iaikgfHwgXy5pc1JlZ0V4cChvYmopIHx8XG4gICAgICAgICAgXy5pc0J1ZmZlcihvYmopIHx8IF8uaXNBcnJheUJ1ZmZlcihvYmopKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzRGF0ZShvYmopKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gQ0xBU1MuZ2V0TmFtZUZyb21PYmplY3Qob2JqKVxuICAgICAgICByZXR1cm4gXy5pc1N0cmluZyhjbGFzc05hbWUpICYmIGNsYXNzTmFtZSAhPT0gJ09iamVjdCc7XG4gICAgICB9LFxuICAgICAgaXNFcXVhbDogKGFub3RoZXJPYmo6IGFueSwgY29tcGFyZURlZXAgPSBmYWxzZSkgPT4ge1xuICAgICAgICBpZiAoIUNMQVNTLk9CSkVDVChvYmopLmlzQ2xhc3NPYmplY3QgfHwgIUNMQVNTLk9CSkVDVChhbm90aGVyT2JqKS5pc0NsYXNzT2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvYmogPT09IGFub3RoZXJPYmopIHtcbi8qICAgICAgICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKGBFUSB2MTogLCB2MjogIFxcLSBjbGFzczEgXFwkXFx7Q0xBU1NcXC5nZXROYW1lRnJvbU9iamVjdFxcKG9ialxcKVxcfSwgY2xhc3MyIFxcJFxce0NMQVNTXFwuZ2V0TmFtZUZyb21PYmplY3RcXChhbm90aGVyT2JqXFwpXFx9YCwgb2JqLCBhbm90aGVyT2JqXFwpICovXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdjEgPSBDTEFTU05BTUUuZ2V0T2JqZWN0SW5kZXhWYWx1ZShvYmopO1xuICAgICAgICBjb25zdCB2MiA9IENMQVNTTkFNRS5nZXRPYmplY3RJbmRleFZhbHVlKGFub3RoZXJPYmopO1xuICAgICAgICBjb25zdCBmMSA9IENMQVNTTkFNRS5nZXRPYmplY3RDbGFzc0ZhbWlseShvYmopXG4gICAgICAgIGNvbnN0IGYyID0gQ0xBU1NOQU1FLmdldE9iamVjdENsYXNzRmFtaWx5KGFub3RoZXJPYmopXG4gICAgICAgIGNvbnN0IGlzRmFtaWx5RGlmZiA9ICghXy5pc1N0cmluZyhmMSkgfHwgIV8uaXNTdHJpbmcoZjIpIHx8IChmMSAhPT0gZjIpKTtcbi8qICAgICAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgRElGRiBGQU1JTFkgXFwkXFx7aXNGYW1pbHlEaWZmXFx9IHYxOiBcXCRcXHtDTEFTU05BTUVcXC5nZXRPYmplY3RDbGFzc0ZhbWlseVxcKG9ialxcKVxcfSwgdjI6IFxcJFxce0NMQVNTTkFNRVxcLmdldE9iamVjdENsYXNzRmFtaWx5XFwoYW5vdGhlck9ialxcKVxcfSBcXC0gY2xhc3MxIFxcJFxce0NMQVNTXFwuZ2V0TmFtZUZyb21PYmplY3RcXChvYmpcXClcXH0sIGNsYXNzMiBcXCRcXHtDTEFTU1xcLmdldE5hbWVGcm9tT2JqZWN0XFwoYW5vdGhlck9ialxcKVxcfWBcXCkgKi9cbiAgICAgICAgaWYgKGlzRmFtaWx5RGlmZikge1xuLyogICAgICAgICAgIFxcL1xcLyBjb25zb2xlXFwubG9nXFwoYERJRkYgdjE6IFxcJFxce3YxXFx9LCB2MjogXFwkXFx7djJcXH0gXFwtIGNsYXNzMSBcXCRcXHtDTEFTU1xcLmdldE5hbWVGcm9tT2JqZWN0XFwob2JqXFwpXFx9LCBjbGFzczIgXFwkXFx7Q0xBU1NcXC5nZXROYW1lRnJvbU9iamVjdFxcKGFub3RoZXJPYmpcXClcXH1gXFwpICovXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghQ0xBU1MuT0JKRUNUKG9iaikuaXNDbGFzc09iamVjdCB8fCAhQ0xBU1MuT0JKRUNUKGFub3RoZXJPYmopLmlzQ2xhc3NPYmplY3QpIHtcbi8qICAgICAgICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKGBOT1QgQ0xBU1MgdjE6IFxcJFxce3YxXFx9LCB2MjogXFwkXFx7djJcXH0gXFwtIGNsYXNzMSBcXCRcXHtDTEFTU1xcLmdldE5hbWVGcm9tT2JqZWN0XFwob2JqXFwpXFx9LCBjbGFzczIgXFwkXFx7Q0xBU1NcXC5nZXROYW1lRnJvbU9iamVjdFxcKGFub3RoZXJPYmpcXClcXH1gXFwpICovXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cblxuLyogICAgICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKGB2MTogXFwkXFx7djFcXH0gLGNsYXNzIFxcJFxce0NMQVNTXFwuZ2V0TmFtZUZyb21PYmplY3RcXChvYmpcXClcXH0gLHByb3A6IFxcJFxce0NMQVNTXFwuT0JKRUNUXFwob2JqXFwpXFwuaW5kZXhQcm9wZXJ0eVxcfWBcXCkgKi9cbi8qICAgICAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgdjI6IFxcJFxce3YyXFx9ICxjbGFzcyBcXCRcXHtDTEFTU1xcLmdldE5hbWVGcm9tT2JqZWN0XFwoYW5vdGhlck9ialxcKVxcfSAscHJvcDogXFwkXFx7Q0xBU1NcXC5PQkpFQ1RcXChhbm90aGVyT2JqXFwpXFwuaW5kZXhQcm9wZXJ0eVxcfWBcXCkgKi9cbi8qICAgICAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgdjE6IFxcJFxce3YxXFx9LCB2MjogXFwkXFx7djJcXH0gXFwtIGNsYXNzMSBcXCRcXHtDTEFTU1xcLmdldE5hbWVGcm9tT2JqZWN0XFwob2JqXFwpXFx9LCBjbGFzczIgXFwkXFx7Q0xBU1NcXC5nZXROYW1lRnJvbU9iamVjdFxcKGFub3RoZXJPYmpcXClcXH1gXFwpICovXG4vKiAgICAgICAgIFxcL1xcLyBjb25zb2xlXFwubG9nXFwoJydcXCkgKi9cbiAgICAgICAgaWYgKChfLmlzTnVtYmVyKHYxKSAmJiBfLmlzTnVtYmVyKHYyKSkgfHwgKF8uaXNTdHJpbmcodjEpICYmIF8uaXNTdHJpbmcodjIpKSkge1xuXG4gICAgICAgICAgY29uc3QgcmVzID0gKHYxID09PSB2Mik7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbXBhcmVEZWVwKSB7XG4gICAgICAgICAgcmV0dXJuIF8uaXNFcXVhbCh2MSwgdjIpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICdlbnVtLXZhbHVlcyc7XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMgbGliL2luZGV4LnRzIl19
|
|
@@ -27,6 +27,7 @@ export function setClassName(target, className, options) {
|
|
|
27
27
|
config.className = className;
|
|
28
28
|
config.uniqueKey = uniqueKey;
|
|
29
29
|
config.classNameInBrowser = classNameInBrowser;
|
|
30
|
+
/* \/\/ console\.log\(`Setting class Name to "\$\{target\.name\}"`\) */
|
|
30
31
|
}
|
|
31
32
|
const existed = getClasses()
|
|
32
33
|
.find(f => f.className === className);
|
|
@@ -60,17 +61,21 @@ export function setClassName(target, className, options) {
|
|
|
60
61
|
const obj = {
|
|
61
62
|
// @ts-ignore
|
|
62
63
|
decoratedConstructor: function (...args) {
|
|
64
|
+
/* \/\/ console\.log\(`DECORATED CONSTRUCTOR OF \$\{Original\.name\}`\) */
|
|
63
65
|
const context = Original.apply(this, args);
|
|
64
66
|
const existedSingleton = CLASS.getSingleton(Original);
|
|
65
67
|
if (!existedSingleton || singleton === 'last-instance') {
|
|
66
68
|
CLASS.setSingletonObj(Original, this);
|
|
67
69
|
CLASS.setSingletonObj(obj.decoratedConstructor, this);
|
|
70
|
+
/* \/\/ console\.log\(`Singleton created for "\$\{className\}", mode: \$\{singleton\} `\); */
|
|
68
71
|
}
|
|
69
72
|
else {
|
|
73
|
+
/* \/\/ console\.log\('ingleton exists'\) */
|
|
70
74
|
}
|
|
71
75
|
return context;
|
|
72
76
|
}
|
|
73
77
|
};
|
|
78
|
+
/* \/\/ copy prototype so intanceof operator still works */
|
|
74
79
|
obj.decoratedConstructor.prototype = Original.prototype;
|
|
75
80
|
// @ts-ignore
|
|
76
81
|
Object.keys(Original).forEach((name) => { obj.decoratedConstructor[name] = Original[name]; });
|
|
@@ -78,13 +83,17 @@ export function setClassName(target, className, options) {
|
|
|
78
83
|
value: className,
|
|
79
84
|
configurable: true,
|
|
80
85
|
});
|
|
86
|
+
/* \/\/ \(obj\.decoratedConstructor as any\)\.name = className; */
|
|
87
|
+
/* \/\/ console\.log\('return new contruor', decoratedConstructor\) */
|
|
81
88
|
return obj.decoratedConstructor;
|
|
82
89
|
}
|
|
83
90
|
else if (singleton === 'autoinstance') {
|
|
91
|
+
/* \/\/ console\.log\(`AUTOINSTANCE FOR \$\{target\.name\}`\) */
|
|
84
92
|
const auto = new Original();
|
|
85
93
|
CLASS.setSingletonObj(Original, auto);
|
|
94
|
+
/* \/\/ console\.log\(`Singleton created for "\$\{className\}", mode: \$\{singleton\} `\) */
|
|
86
95
|
}
|
|
87
96
|
}
|
|
88
97
|
;
|
|
89
98
|
({}); // @--end-of-file-for-module=typescript-class-helpers lib/set-class-name.ts
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWNsYXNzLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvcHJvamVjdHMvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3NyYy9saWIvc2V0LWNsYXNzLW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHaEMsU0FBUyxVQUFVO0lBQ2pCLE1BQU0sQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQVEsQ0FBQztBQUNsQyxDQUFDO0FBRUQsYUFBYTtBQUNiLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBZ0IsRUFBRSxTQUFpQixFQUFFLE9BQWlDO0lBRWpHLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sSUFBSTtRQUN6RSxXQUFXLEVBQUUsS0FBSyxDQUFDO1FBQ25CLFNBQVMsRUFBRSxJQUFJO1FBQ2Ysa0JBQWtCLEVBQUUsS0FBSyxDQUFDO1FBQzFCLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDakIsWUFBWSxFQUFFLEtBQUs7S0FDTyxDQUFDO0lBRTdCLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxFQUFFO1FBQ3BF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QUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFO1lBQ3RELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQTtRQUNOLHNFQUFzRTtRQUN0RSwwRUFBMEU7UUFDdEUsT0FBTyxHQUFHLENBQUMsb0JBQW9CLENBQUM7S0FDakM7U0FBTSxJQUFJLFNBQVMsS0FBSyxjQUFjLEVBQUU7UUFFM0Msb0VBQW9FO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUssUUFBZ0IsRUFBRSxDQUFDO1FBQ3JDLEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3pDLGdHQUFnRztLQUU3RjtBQUNILENBQUM7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDJFQUEyRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IFNZTUJPTCB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSAnLi9zdG9yYWdlJztcbmltcG9ydCB7IENMQVNTTkFNRSB9IGZyb20gJy4vY2xhc3NuYW1lJztcbmltcG9ydCB7IENMQVNTIH0gZnJvbSAnLi9pbmRleCc7XG5cblxuZnVuY3Rpb24gZ2V0Q2xhc3NlcygpOiBNb2RlbHMuQ2xhc3NNZXRhW10ge1xuICBjb25zdCBzID0gZ2V0U3RvcmFnZSgpO1xuICByZXR1cm4gc1tTWU1CT0wuQ0xBU1NFU10gYXMgYW55O1xufVxuXG4vLyBAdHMtaWdub3JlXG5leHBvcnQgZnVuY3Rpb24gc2V0Q2xhc3NOYW1lKHRhcmdldDogRnVuY3Rpb24sIGNsYXNzTmFtZTogc3RyaW5nLCBvcHRpb25zPzogTW9kZWxzLkNMQVNTTkFNRU9wdGlvbnMpIHtcblxuICBsZXQgeyBjbGFzc0ZhbWlseSwgdW5pcXVlS2V5LCBjbGFzc05hbWVJbkJyb3dzZXIsIHNpbmdsZXRvbiB9ID0gb3B0aW9ucyB8fCB7XG4gICAgY2xhc3NGYW1pbHk6IHZvaWQgMCxcbiAgICB1bmlxdWVLZXk6ICdpZCcsXG4gICAgY2xhc3NOYW1lSW5Ccm93c2VyOiB2b2lkIDAsXG4gICAgc2luZ2xldG9uOiB2b2lkIDAsXG4gICAgYXV0b2luc3RhbmNlOiBmYWxzZVxuICB9IGFzIE1vZGVscy5DTEFTU05BTUVPcHRpb25zO1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZChzaW5nbGV0b24pICYmIF8uaXNCb29sZWFuKHNpbmdsZXRvbikgJiYgc2luZ2xldG9uKSB7XG4gICAgc2luZ2xldG9uID0gJ2ZpcnN0LWluc3RhbmNlJ1xuICB9XG5cbiAgaWYgKCF1bmlxdWVLZXkpIHtcbiAgICB1bmlxdWVLZXkgPSAnaWQnXG4gIH1cblxuICBpZiAodGFyZ2V0KSB7XG4gICAgY29uc3QgY29uZmlnID0gXy5maXJzdChDTEFTU05BTUUuZ2V0Q2xhc3NDb25maWcodGFyZ2V0KSk7XG4gICAgY29uZmlnLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICBjb25maWcudW5pcXVlS2V5ID0gdW5pcXVlS2V5O1xuICAgIGNvbmZpZy5jbGFzc05hbWVJbkJyb3dzZXIgPSBjbGFzc05hbWVJbkJyb3dzZXI7XG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgU2V0dGluZyBjbGFzcyBOYW1lIHRvIFwiXFwkXFx7dGFyZ2V0XFwubmFtZVxcfVwiYFxcKSAqL1xuICB9XG5cbiAgY29uc3QgZXhpc3RlZCA9IChnZXRDbGFzc2VzKCkgYXMgeyBjbGFzc05hbWU6IHN0cmluZzsgdGFyZ2V0OiBGdW5jdGlvbjsgfVtdKVxuICAgIC5maW5kKGYgPT4gZi5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSlcblxuICBpZiAoZXhpc3RlZCkge1xuICAgIGV4aXN0ZWQudGFyZ2V0ID0gdGFyZ2V0O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNsYXNzTmFtZUluQnJvd3NlcixcbiAgICAgIHRhcmdldCxcbiAgICAgIHVuaXF1ZUtleSxcbiAgICAgIGNsYXNzRmFtaWx5XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQoY2xhc3NGYW1pbHkpKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzLCAnY2xhc3NGYW1pbHknLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnN0IHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpO1xuICAgICAgICAgIGlmICghXy5pc0Z1bmN0aW9uKHBhcmVudCkgfHwgcGFyZW50Lm5hbWUgPT09ICdPYmplY3QnIHx8IHBhcmVudC5uYW1lID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgY2xhc3NOYW1lTmV3ID0gQ0xBU1NOQU1FLmdldENsYXNzTmFtZShwYXJlbnQpXG4gICAgICAgICAgcmV0dXJuIENMQVNTTkFNRS5nZXRDbGFzc0ZhbWlseUJ5Q2xhc3NOYW1lKGNsYXNzTmFtZU5ldylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgZ2V0Q2xhc3NlcygpLnB1c2gocmVzKVxuICB9XG4gIGNvbnN0IE9yaWdpbmFsID0gdGFyZ2V0O1xuXG5cbiAgaWYgKHNpbmdsZXRvbiA9PT0gJ2ZpcnN0LWluc3RhbmNlJyB8fCBzaW5nbGV0b24gPT09ICdsYXN0LWluc3RhbmNlJykge1xuICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGRlY29yYXRlZENvbnN0cnVjdG9yOiBmdW5jdGlvbiAoLi4uYXJncykge1xuLyogICAgICAgICBcXC9cXC8gY29uc29sZVxcLmxvZ1xcKGBERUNPUkFURUQgQ09OU1RSVUNUT1IgT0YgXFwkXFx7T3JpZ2luYWxcXC5uYW1lXFx9YFxcKSAqL1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gT3JpZ2luYWwuYXBwbHkodGhpcywgYXJncyk7XG5cbiAgICAgICAgY29uc3QgZXhpc3RlZFNpbmdsZXRvbiA9IENMQVNTLmdldFNpbmdsZXRvbihPcmlnaW5hbClcbiAgICAgICAgaWYgKCFleGlzdGVkU2luZ2xldG9uIHx8IHNpbmdsZXRvbiA9PT0gJ2xhc3QtaW5zdGFuY2UnKSB7XG4gICAgICAgICAgQ0xBU1Muc2V0U2luZ2xldG9uT2JqKE9yaWdpbmFsLCB0aGlzKVxuICAgICAgICAgIENMQVNTLnNldFNpbmdsZXRvbk9iaihvYmouZGVjb3JhdGVkQ29uc3RydWN0b3IsIHRoaXMpXG4vKiAgICAgICAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgU2luZ2xldG9uIGNyZWF0ZWQgZm9yIFwiXFwkXFx7Y2xhc3NOYW1lXFx9XCIsIG1vZGU6IFxcJFxce3NpbmdsZXRvblxcfSBgXFwpOyAqL1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuLyogICAgICAgICAgIFxcL1xcLyBjb25zb2xlXFwubG9nXFwoJ2luZ2xldG9uIGV4aXN0cydcXCkgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgICAgfVxuICAgIH07XG5cbi8qICAgICBcXC9cXC8gY29weSBwcm90b3R5cGUgc28gaW50YW5jZW9mIG9wZXJhdG9yIHN0aWxsIHdvcmtzICovXG4gICAgb2JqLmRlY29yYXRlZENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IE9yaWdpbmFsLnByb3RvdHlwZTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgT2JqZWN0LmtleXMoT3JpZ2luYWwpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4geyBvYmouZGVjb3JhdGVkQ29uc3RydWN0b3JbbmFtZV0gPSAoPGFueT5PcmlnaW5hbClbbmFtZV07IH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmouZGVjb3JhdGVkQ29uc3RydWN0b3IsICduYW1lJywge1xuICAgICAgdmFsdWU6IGNsYXNzTmFtZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KVxuLyogICAgIFxcL1xcLyBcXChvYmpcXC5kZWNvcmF0ZWRDb25zdHJ1Y3RvciBhcyBhbnlcXClcXC5uYW1lID0gY2xhc3NOYW1lOyAqL1xuLyogICAgIFxcL1xcLyBjb25zb2xlXFwubG9nXFwoJ3JldHVybiBuZXcgY29udHJ1b3InLCBkZWNvcmF0ZWRDb25zdHJ1Y3RvclxcKSAqL1xuICAgIHJldHVybiBvYmouZGVjb3JhdGVkQ29uc3RydWN0b3I7XG4gIH0gZWxzZSBpZiAoc2luZ2xldG9uID09PSAnYXV0b2luc3RhbmNlJykge1xuXG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgQVVUT0lOU1RBTkNFIEZPUiBcXCRcXHt0YXJnZXRcXC5uYW1lXFx9YFxcKSAqL1xuICAgIGNvbnN0IGF1dG8gPSBuZXcgKE9yaWdpbmFsIGFzIGFueSkoKTtcbiAgICBDTEFTUy5zZXRTaW5nbGV0b25PYmooT3JpZ2luYWwsIGF1dG8pXG4vKiAgICAgXFwvXFwvIGNvbnNvbGVcXC5sb2dcXChgU2luZ2xldG9uIGNyZWF0ZWQgZm9yIFwiXFwkXFx7Y2xhc3NOYW1lXFx9XCIsIG1vZGU6IFxcJFxce3NpbmdsZXRvblxcfSBgXFwpICovXG5cbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzIGxpYi9zZXQtY2xhc3MtbmFtZS50cyJdfQ==
|