typescript-class-helpers 13.0.24 → 13.0.26

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.
Files changed (45) hide show
  1. package/app.d.ts +1 -0
  2. package/app.js +5 -33
  3. package/app.js.map +1 -1
  4. package/browser/esm2020/lib/errors-messages.mjs +2 -2
  5. package/browser/fesm2015/typescript-class-helpers.mjs +1 -1
  6. package/browser/fesm2015/typescript-class-helpers.mjs.map +1 -1
  7. package/browser/fesm2020/typescript-class-helpers.mjs +1 -1
  8. package/browser/fesm2020/typescript-class-helpers.mjs.map +1 -1
  9. package/browser/lib/errors-messages.d.ts +1 -1
  10. package/client/esm2020/lib/errors-messages.mjs +2 -2
  11. package/client/fesm2015/typescript-class-helpers.mjs +1 -1
  12. package/client/fesm2015/typescript-class-helpers.mjs.map +1 -1
  13. package/client/fesm2020/typescript-class-helpers.mjs +1 -1
  14. package/client/fesm2020/typescript-class-helpers.mjs.map +1 -1
  15. package/client/lib/errors-messages.d.ts +1 -1
  16. package/package.json +3 -3
  17. package/tmp-environment.json +47 -39
  18. package/websql/README.md +24 -0
  19. package/websql/esm2020/lib/classname.mjs +172 -0
  20. package/websql/esm2020/lib/describe-class.mjs +64 -0
  21. package/websql/esm2020/lib/errors-messages.mjs +12 -0
  22. package/websql/esm2020/lib/index.mjs +144 -0
  23. package/websql/esm2020/lib/models.mjs +24 -0
  24. package/websql/esm2020/lib/registerd-db.mjs +5 -0
  25. package/websql/esm2020/lib/set-class-name.mjs +97 -0
  26. package/websql/esm2020/lib/storage.mjs +22 -0
  27. package/websql/esm2020/lib/symbols.mjs +7 -0
  28. package/websql/esm2020/public-api.mjs +2 -0
  29. package/websql/esm2020/typescript-class-helpers.mjs +5 -0
  30. package/websql/fesm2015/typescript-class-helpers.mjs +531 -0
  31. package/websql/fesm2015/typescript-class-helpers.mjs.map +1 -0
  32. package/websql/fesm2020/typescript-class-helpers.mjs +531 -0
  33. package/websql/fesm2020/typescript-class-helpers.mjs.map +1 -0
  34. package/websql/lib/classname.d.ts +16 -0
  35. package/websql/lib/describe-class.d.ts +6 -0
  36. package/websql/lib/errors-messages.d.ts +1 -0
  37. package/websql/lib/index.d.ts +33 -0
  38. package/websql/lib/models.d.ts +57 -0
  39. package/websql/lib/registerd-db.d.ts +5 -0
  40. package/websql/lib/set-class-name.d.ts +2 -0
  41. package/websql/lib/storage.d.ts +1 -0
  42. package/websql/lib/symbols.d.ts +6 -0
  43. package/websql/package.json +31 -0
  44. package/websql/public-api.d.ts +1 -0
  45. package/websql/typescript-class-helpers.d.ts +5 -0
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "name": "typescript-class-helpers",
47
47
  "description": "Usefull helper to have in your typescript project",
48
- "version": "13.0.24",
48
+ "version": "13.0.26",
49
49
  "scripts": {
50
50
  "test": "mocha --require ts-node/register src/**/*.spec.ts",
51
51
  "test:watch": "mocha --compilers ts-node/register src/**/*.spec.ts --watch"
@@ -66,15 +66,14 @@
66
66
  "homepage": "https://github.com/darekf77/typescript-class-helpers#readme",
67
67
  "dependencies": {
68
68
  "enum-values": "1.2.1",
69
- "ng2-logger": "~13.0.22"
69
+ "ng2-logger": "~13.0.25"
70
70
  },
71
71
  "license": "MIT",
72
72
  "private": false,
73
- "lastBuildTagHash": "9ccaa45e384a16c331fa38a881460b7df7cdcbf7",
73
+ "lastBuildTagHash": "25a0e8857f77dd3ca192d25fd08dc382d5083c3b",
74
74
  "devDependencies": {
75
75
  "@angular-devkit/build-angular": "~13.2.5",
76
76
  "@angular-devkit/core": "~13.2.6",
77
- "@angular/animations": "~13.2.0",
78
77
  "@angular/cdk": "~13.2.4",
79
78
  "@angular/cli": "~13.2.5",
80
79
  "@angular/common": "~13.2.0",
@@ -141,13 +140,16 @@
141
140
  "@types/vinyl": "2.0.2",
142
141
  "@types/watch": "1.0.0",
143
142
  "accepts": "1.3.4",
143
+ "any-project-cli": "~0.0.11",
144
144
  "axios": "0.17.1",
145
- "background-worker-process": "~13.0.20",
145
+ "background-worker-process": "~13.0.22",
146
146
  "bcryptjs": "2.4.3",
147
- "better-sqlite3": "7.5.1",
147
+ "better-sqlite3": "7.6.2",
148
148
  "body-parser": "1.18.2",
149
149
  "bootstrap": "5.1.3",
150
- "bs4-breakpoint": "13.0.28",
150
+ "browserify": "17.0.0",
151
+ "browserify-fs": "1.0.0",
152
+ "bs4-breakpoint": "13.0.32",
151
153
  "buffer-shims": "1.0.0",
152
154
  "callsite-record": "4.1.3",
153
155
  "chai": "4.2.0",
@@ -165,6 +167,7 @@
165
167
  "cors": "2.8.4",
166
168
  "cpr": "3.0.1",
167
169
  "cross-spawn": "7.0.3",
170
+ "crypto-browserify": "3.12.0",
168
171
  "dateformat": "3.0.3",
169
172
  "detect-mocha": "0.1.0",
170
173
  "diff": "3.2.0",
@@ -181,10 +184,10 @@
181
184
  "fbgraph": "1.4.1",
182
185
  "file-loader": "1.1.5",
183
186
  "firedev": "^13",
184
- "firedev-crud": "~13.0.28",
185
- "firedev-crud-deamon": "~13.0.19",
186
- "firedev-ports": "~13.0.22",
187
- "firedev-storage": "~13.0.14",
187
+ "firedev-crud": "~13.0.30",
188
+ "firedev-crud-deamon": "~13.0.21",
189
+ "firedev-ports": "~13.0.24",
190
+ "firedev-storage": "~13.0.16",
188
191
  "fkill": "6.1.0",
189
192
  "font-awesome": "4.7.0",
190
193
  "fs-extra": "8.1.0",
@@ -195,17 +198,17 @@
195
198
  "http-proxy": "1.16.2",
196
199
  "http-proxy-middleware": "0.19.1",
197
200
  "http-server": "0.11.1",
198
- "incremental-compiler": "~13.0.20",
201
+ "incremental-compiler": "~13.0.27",
199
202
  "inquirer": "7.3.3",
200
203
  "inquirer-autocomplete-prompt": "1.3.0",
201
204
  "is-elevated": "3.0.0",
202
- "isomorphic-region-loader": "1.0.2",
205
+ "isomorphic-region-loader": "~1.0.2",
203
206
  "istanbul-instrumenter-loader": "2.0.0",
204
207
  "jasmine-core": "4.0.0",
205
208
  "jscodeshift": "0.6.3",
206
209
  "json-stringify-safe": "5.0.1",
207
- "json10": "~13.0.21",
208
- "json10-writer": "~13.0.19",
210
+ "json10": "~13.0.23",
211
+ "json10-writer": "~13.0.21",
209
212
  "json5": "2.1.3",
210
213
  "json5-writer": "0.2.0",
211
214
  "karma": "6.3.0",
@@ -217,25 +220,25 @@
217
220
  "lnk": "1.0.1",
218
221
  "lockfile": "1.0.4",
219
222
  "lodash": "4.17.4",
220
- "lodash-walk-object": "~13.0.21",
223
+ "lodash-walk-object": "~13.0.23",
221
224
  "lodash.get": ">= 4",
222
225
  "lodash.isequal": ">= 4",
223
226
  "lodash.merge": ">= 4",
224
227
  "lodash.set": ">= 4",
225
228
  "lowdb": "1.0.0",
226
- "magic-renamer": "~13.0.12",
229
+ "magic-renamer": "~13.0.13",
227
230
  "material-design-icons": "3.0.1",
228
231
  "method-override": "2.3.10",
229
232
  "minimist": "1.2.0",
230
233
  "mkdirp": "0.5.1",
231
234
  "mocha": "5.2.0",
232
235
  "moment": "2.22.2",
233
- "morphi": "~13.0.44",
236
+ "morphi": "~13.0.48",
234
237
  "ng-packagr": "13.0.0",
235
- "ng-talkback": "~13.0.14",
236
- "ng2-rest": "~13.0.29",
237
- "ng4-icons": "~13.0.16",
238
- "ng4-modal": "~13.0.18",
238
+ "ng-talkback": "~13.0.15",
239
+ "ng2-rest": "~13.0.34",
240
+ "ng4-icons": "~13.0.17",
241
+ "ng4-modal": "~13.0.19",
239
242
  "ngx-bootstrap": "8.0.0",
240
243
  "ngx-editor": "12.2.1",
241
244
  "ngx-moment": "6.0.2",
@@ -243,7 +246,7 @@
243
246
  "ngx-store": "3.1.1",
244
247
  "ngx-toastr": "14.2.2",
245
248
  "ngx-wig": "13.0.3",
246
- "node-cli-tester": "~13.0.14",
249
+ "node-cli-tester": "~13.0.15",
247
250
  "node-localstorage": "2.1.6",
248
251
  "node-notifier": "6.0.0",
249
252
  "nodemon": "1.14.11",
@@ -252,9 +255,11 @@
252
255
  "omelette": "0.4.5",
253
256
  "open": "7.2.1",
254
257
  "ora": "3.4.0",
258
+ "os-browserify": "0.3.0",
255
259
  "passport": "0.3.2",
256
260
  "passport-http-bearer": "1.0.1",
257
261
  "password-hash": "1.2.2",
262
+ "path-browserify": "1.0.1",
258
263
  "portfinder": "1.0.21",
259
264
  "prettier": "2.5.1",
260
265
  "progress": "2.0.3",
@@ -263,7 +268,7 @@
263
268
  "ps-node": "0.1.6",
264
269
  "q": "1.5.1",
265
270
  "randomcolor": "0.5.3",
266
- "record-replay-req-res-scenario": "~13.0.15",
271
+ "record-replay-req-res-scenario": "~13.0.16",
267
272
  "reflect-metadata": "0.1.10",
268
273
  "rimraf": "2.6.2",
269
274
  "rxjs": "~7.5.0",
@@ -272,38 +277,41 @@
272
277
  "sloc": "0.2.0",
273
278
  "socket.io": "2.4.1",
274
279
  "sort-package-json": "1.11.0",
275
- "static-columns": "13.0.22",
280
+ "static-columns": "~13.0.24",
281
+ "stream-browserify": "3.0.0",
282
+ "stream-http": "3.2.0",
276
283
  "string-similarity": "4.0.2",
277
284
  "sudo-block": "3.0.0",
278
285
  "systeminformation": "3.45.7",
279
286
  "task.js": "0.1.5",
280
- "tnp-cli": "~13.0.24",
281
- "tnp-config": "~13.0.28",
282
- "tnp-core": "~13.0.51",
283
- "tnp-db": "~13.0.29",
284
- "tnp-helpers": "~13.0.32",
285
- "tnp-models": "~13.0.22",
286
- "tnp-ui": "~13.0.19",
287
+ "timers-browserify": "2.0.12",
288
+ "tnp-cli": "~13.0.25",
289
+ "tnp-config": "~13.0.31",
290
+ "tnp-core": "~13.0.67",
291
+ "tnp-db": "~13.0.31",
292
+ "tnp-helpers": "~13.0.37",
293
+ "tnp-models": "~13.0.25",
294
+ "tnp-ui": "~13.0.20",
287
295
  "ts-debug": "1.3.0",
288
296
  "ts-loader": "2.3.1",
289
297
  "ts-node": "10.7.0",
290
298
  "tslib": "~2.3.0",
291
- "typeorm": "~0.2.45",
299
+ "typeorm": "~0.3.7",
292
300
  "typescript": "~4.5.2",
293
- "typescript-class-helpers": "~13.0.23",
301
+ "typescript-class-helpers": "~13.0.25",
294
302
  "typescript-formatter": "~7.2.2",
295
303
  "underscore": "1.9.1",
296
304
  "uuid": "8.3.2",
297
305
  "validator": "9.2.0",
298
- "vpn-split": "~13.0.19",
306
+ "vpn-split": "~13.0.20",
299
307
  "watch": "1.0.2",
300
308
  "zone.js": "~0.11.4"
301
309
  }
302
310
  },
303
311
  "build": {
304
- "number": 248,
305
- "date": "2022-07-26T09:19:08.000Z",
306
- "hash": "1e96cd61995645d0904fb280d2a04ee7386ae5af",
312
+ "number": 254,
313
+ "date": "2022-10-02T22:16:31.000Z",
314
+ "hash": "e47b452f39b88d819e2319061096db301c0c7c96",
307
315
  "options": {}
308
316
  },
309
317
  "currentProjectName": "typescript-class-helpers",
@@ -311,7 +319,7 @@
311
319
  "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\"]}]}",
312
320
  "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\"}]}",
313
321
  "currentProjectType": "isomorphic-lib",
314
- "currentFrameworkVersion": "13.0.93",
322
+ "currentFrameworkVersion": "13.0.103",
315
323
  "currentProjectIsStrictSite": false,
316
324
  "currentProjectIsDependencySite": false,
317
325
  "currentProjectIsStatic": false,
@@ -0,0 +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.
@@ -0,0 +1,172 @@
1
+ import { _ } from 'tnp-core/websql';
2
+ import { Models } from './models';
3
+ import { SYMBOL } from './symbols';
4
+ import { TchHelpers } from './index';
5
+ import { Helpers } from 'tnp-core/websql';
6
+ import { getStorage } from './storage';
7
+ import { setClassName } from './set-class-name';
8
+ import { registerd } from './registerd-db';
9
+ import { ERROR_MSG_CLASS_WITHOUT_DECORATOR } from './errors-messages';
10
+ function getClasses() {
11
+ const s = getStorage();
12
+ return s[SYMBOL.CLASSES];
13
+ }
14
+ export var CLASSNAME;
15
+ (function (CLASSNAME_1) {
16
+ function getClassConfig(target, configs = [], callerTarget) {
17
+ if (!_.isFunction(target)) {
18
+ throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;
19
+ }
20
+ let config;
21
+ const parentClass = Object.getPrototypeOf(target);
22
+ const isValidParent = (_.isFunction(parentClass) && parentClass.name !== '');
23
+ if (registerd.classes.includes(target)) {
24
+ config = registerd.configs[registerd.classes.findIndex(c => c === target)];
25
+ }
26
+ else {
27
+ config = new Models.ClassConfig();
28
+ config.classReference = target;
29
+ registerd.classes.push(target);
30
+ }
31
+ registerd.configs[registerd.classes.findIndex(c => c === target)] = config;
32
+ if (callerTarget) {
33
+ const callerTargetConfig = registerd.configs[registerd.classes.findIndex(c => c === callerTarget)];
34
+ if (!config.vChildren.includes(callerTargetConfig)) {
35
+ config.vChildren.push(callerTargetConfig);
36
+ }
37
+ callerTargetConfig.vParent = config;
38
+ }
39
+ configs.push(config);
40
+ return isValidParent ? getClassConfig(parentClass, configs, target) : configs;
41
+ }
42
+ CLASSNAME_1.getClassConfig = getClassConfig;
43
+ /**
44
+ * PLEASE PROVIDE NAME AS TYPED STRING, NOT VARIABLE
45
+ * Decorator requred for production mode
46
+ * @param name Name of class
47
+ */
48
+ function CLASSNAME(className, options) {
49
+ return function (target) {
50
+ // console.log(`CLASSNAME Inited ${className}`)
51
+ return setClassName(target, className, options);
52
+ };
53
+ }
54
+ CLASSNAME_1.CLASSNAME = CLASSNAME;
55
+ function getClassName(target, production = false) {
56
+ if (_.isNil(target)) {
57
+ // console.log(target);
58
+ // Helpers.warn(`[typescript-class-helpers][getClassName] target is nil`)
59
+ return void 0;
60
+ }
61
+ if (_.isString(target)) {
62
+ console.log(target);
63
+ Helpers.warn(`[typescript-class-helpers][getClassName] target is string: '${target}', produciton: ${production}`);
64
+ return target;
65
+ }
66
+ if (!_.isFunction(target)) {
67
+ console.log(target);
68
+ Helpers.warn(`[typescript-class-helpers][getClassName] target is not a class`);
69
+ return void 0;
70
+ }
71
+ const configs = getClassConfig(target);
72
+ const config = _.first(configs);
73
+ const classNameInBrowser = config?.classNameInBrowser;
74
+ if (Helpers.isBrowser && _.isString(classNameInBrowser)) {
75
+ return classNameInBrowser;
76
+ }
77
+ const className = config?.className;
78
+ if (className) {
79
+ return className;
80
+ }
81
+ if (production) {
82
+ console.log('class without @CLASS.NAME deocrator', target);
83
+ throw new Error(ERROR_MSG_CLASS_WITHOUT_DECORATOR);
84
+ }
85
+ else {
86
+ // Helpers.log('check for ' + target.name)
87
+ // setTimeout(() => {
88
+ // // Helpers.log('check for ' + target.name + ' === ' + config.className)/
89
+ // // TODO this may work, but not yet in singleton/morphi
90
+ // if (!config.className) {
91
+ // if (target?.name && target.name !== 'Object') {
92
+ // ConfigHelpers.log(`[typescript-class-helpers] Please use @CLASS.NAME`
93
+ // + `('${(target?.name && !!target.name) ? target.name : '...'}') decorator for class ${target?.name}`)
94
+ // }
95
+ // }
96
+ // })
97
+ }
98
+ return target.name;
99
+ }
100
+ CLASSNAME_1.getClassName = getClassName;
101
+ // @ts-ignore
102
+ function getObjectIndexPropertyValue(obj) {
103
+ const className = TchHelpers.getNameFromObject(obj);
104
+ // console.log('className',className)
105
+ let c = getClasses().find(c => c.className === className);
106
+ // console.log('c',c)
107
+ if (c) {
108
+ return c.uniqueKey;
109
+ }
110
+ }
111
+ CLASSNAME_1.getObjectIndexPropertyValue = getObjectIndexPropertyValue;
112
+ // @ts-ignore
113
+ function getClassFamilyByClassName(className) {
114
+ let c = getClasses().find(c => c.className === className);
115
+ // console.log('getClasses()', getClasses())
116
+ if (c) {
117
+ return c.classFamily;
118
+ }
119
+ }
120
+ CLASSNAME_1.getClassFamilyByClassName = getClassFamilyByClassName;
121
+ // @ts-ignore
122
+ function getObjectClassFamily(obj) {
123
+ const className = TchHelpers.getNameFromObject(obj);
124
+ // console.log('className',className)
125
+ let c = getClasses().find(c => c.className === className);
126
+ // console.log('c',c)
127
+ if (c) {
128
+ return c.classFamily;
129
+ }
130
+ }
131
+ CLASSNAME_1.getObjectClassFamily = getObjectClassFamily;
132
+ function getObjectIndexValue(obj) {
133
+ const className = TchHelpers.getNameFromObject(obj);
134
+ // console.log('className',className)
135
+ let c = getClasses().find(c => c.className === className);
136
+ // console.log('c',c)
137
+ if (c && _.isString(c.uniqueKey)) {
138
+ return obj[c.uniqueKey];
139
+ }
140
+ }
141
+ CLASSNAME_1.getObjectIndexValue = getObjectIndexValue;
142
+ function getClassBy(className) {
143
+ let res;
144
+ if (Array.isArray(className)) {
145
+ if (className.length !== 1) {
146
+ throw `Mapping error... please use proper class names:
147
+ {
148
+ propertyObject: 'MyClassName',
149
+ propertyWithArray: ['MyClassName']
150
+ }
151
+
152
+ `;
153
+ }
154
+ className = className[0];
155
+ }
156
+ if (typeof className === 'function') { // TODO QUICK_FIX
157
+ res = className;
158
+ }
159
+ if (className === 'Date') {
160
+ res = Date;
161
+ }
162
+ let c = getClasses().find(c => c.className === className);
163
+ if (c) {
164
+ res = c.target;
165
+ }
166
+ // console.log(`getClassBy "${className} return \n\n ${res} \n\n`)
167
+ // @ts-ignore
168
+ return res;
169
+ }
170
+ CLASSNAME_1.getClassBy = getClassBy;
171
+ })(CLASSNAME || (CLASSNAME = {}));
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NuYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3Byb2plY3RzL3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9zcmMvbGliL2NsYXNzbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUd0RSxTQUFTLFVBQVU7SUFDakIsTUFBTSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDdkIsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBUSxDQUFDO0FBQ2xDLENBQUM7QUFDRCxNQUFNLEtBQVcsU0FBUyxDQTBLekI7QUExS0QsV0FBaUIsV0FBUztJQUV4QixTQUFnQixjQUFjLENBQUMsTUFBZ0IsRUFBRSxVQUFnQyxFQUFFLEVBQUUsWUFBdUI7UUFDMUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsTUFBTSwyRUFBMkUsTUFBTSxFQUFFLENBQUE7U0FDMUY7UUFFRCxJQUFJLE1BQTBCLENBQUM7UUFDL0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztRQUU3RSxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDNUU7YUFBTTtZQUNMLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztZQUMvQixTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNoQztRQUVELFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDM0UsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDbkcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDM0M7WUFDRCxrQkFBa0IsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyQixPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNoRixDQUFDO0lBN0JlLDBCQUFjLGlCQTZCN0IsQ0FBQTtJQUVEOzs7O09BSUc7SUFDSCxTQUFnQixTQUFTLENBQUMsU0FBaUIsRUFDekMsT0FBaUM7UUFDakMsT0FBTyxVQUFVLE1BQWdCO1lBQy9CLCtDQUErQztZQUMvQyxPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQVEsQ0FBQztJQUNYLENBQUM7SUFOZSxxQkFBUyxZQU14QixDQUFBO0lBRUQsU0FBZ0IsWUFBWSxDQUFDLE1BQWdCLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDL0QsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLHVCQUF1QjtZQUN2Qix5RUFBeUU7WUFDekUsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQywrREFBK0QsTUFBTSxrQkFBa0IsVUFBVSxFQUFFLENBQUMsQ0FBQTtZQUNqSCxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLGdFQUFnRSxDQUFDLENBQUE7WUFDOUUsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLEVBQUUsa0JBQWtCLENBQUM7UUFFdEQsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUN2RCxPQUFPLGtCQUFrQixDQUFDO1NBQzNCO1FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUVwQyxJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxFQUFFLE1BQWEsQ0FBQyxDQUFBO1lBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsMENBQTBDO1lBQzFDLHFCQUFxQjtZQUNyQiw2RUFBNkU7WUFDN0UsMkRBQTJEO1lBQzNELDZCQUE2QjtZQUM3QixzREFBc0Q7WUFDdEQsOEVBQThFO1lBQzlFLGdIQUFnSDtZQUNoSCxRQUFRO1lBQ1IsTUFBTTtZQUNOLEtBQUs7U0FFTjtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBbERlLHdCQUFZLGVBa0QzQixDQUFBO0lBRUQsYUFBYTtJQUNiLFNBQWdCLDJCQUEyQixDQUFDLEdBQVE7UUFDbEQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELHFDQUFxQztRQUNyQyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzFELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsRUFBRTtZQUNMLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFSZSx1Q0FBMkIsOEJBUTFDLENBQUE7SUFFRCxhQUFhO0lBQ2IsU0FBZ0IseUJBQXlCLENBQUMsU0FBaUI7UUFDekQsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUMxRCw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLEVBQUU7WUFDTCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBTmUscUNBQXlCLDRCQU14QyxDQUFBO0lBRUQsYUFBYTtJQUNiLFNBQWdCLG9CQUFvQixDQUFDLEdBQVE7UUFDM0MsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELHFDQUFxQztRQUNyQyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzFELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsRUFBRTtZQUNMLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFSZSxnQ0FBb0IsdUJBUW5DLENBQUE7SUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxHQUFRO1FBQzFDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUMxRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQVJlLCtCQUFtQixzQkFRbEMsQ0FBQTtJQUVELFNBQWdCLFVBQVUsQ0FBQyxTQUE0QjtRQUNyRCxJQUFJLEdBQUcsQ0FBQztRQUNSLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM1QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixNQUFNOzs7Ozs7U0FNTCxDQUFBO2FBQ0Y7WUFDRCxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3pCO1FBQ0QsSUFBSSxPQUFPLFNBQVMsS0FBSyxVQUFVLEVBQUUsRUFBRSxpQkFBaUI7WUFDdEQsR0FBRyxHQUFHLFNBQVMsQ0FBQztTQUNqQjtRQUNELElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRTtZQUN4QixHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ1o7UUFFRCxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxFQUFFO1lBQ0wsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7U0FDaEI7UUFDRCxrRUFBa0U7UUFDbEUsYUFBYTtRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQTdCZSxzQkFBVSxhQTZCekIsQ0FBQTtBQUVILENBQUMsRUExS2dCLFNBQVMsS0FBVCxTQUFTLFFBMEt6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgU1lNQk9MIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IFRjaEhlbHBlcnMgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gJy4vc3RvcmFnZSc7XG5pbXBvcnQgeyBzZXRDbGFzc05hbWUgfSBmcm9tICcuL3NldC1jbGFzcy1uYW1lJztcbmltcG9ydCB7IHJlZ2lzdGVyZCB9IGZyb20gJy4vcmVnaXN0ZXJkLWRiJztcbmltcG9ydCB7IEVSUk9SX01TR19DTEFTU19XSVRIT1VUX0RFQ09SQVRPUiB9IGZyb20gJy4vZXJyb3JzLW1lc3NhZ2VzJztcblxuXG5mdW5jdGlvbiBnZXRDbGFzc2VzKCk6IE1vZGVscy5DbGFzc01ldGFbXSB7XG4gIGNvbnN0IHMgPSBnZXRTdG9yYWdlKCk7XG4gIHJldHVybiBzW1NZTUJPTC5DTEFTU0VTXSBhcyBhbnk7XG59XG5leHBvcnQgbmFtZXNwYWNlIENMQVNTTkFNRSB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzQ29uZmlnKHRhcmdldDogRnVuY3Rpb24sIGNvbmZpZ3M6IE1vZGVscy5DbGFzc0NvbmZpZ1tdID0gW10sIGNhbGxlclRhcmdldD86IEZ1bmN0aW9uKTogTW9kZWxzLkNsYXNzQ29uZmlnW10ge1xuICAgIGlmICghXy5pc0Z1bmN0aW9uKHRhcmdldCkpIHtcbiAgICAgIHRocm93IGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJdW2dldENsYXNzQ29uZmlnXSBDYW5ub3QgZ2V0IGNsYXNzIGNvbmZpZyBmcm9tOiAke3RhcmdldH1gXG4gICAgfVxuXG4gICAgbGV0IGNvbmZpZzogTW9kZWxzLkNsYXNzQ29uZmlnO1xuICAgIGNvbnN0IHBhcmVudENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCk7XG4gICAgY29uc3QgaXNWYWxpZFBhcmVudCA9IChfLmlzRnVuY3Rpb24ocGFyZW50Q2xhc3MpICYmIHBhcmVudENsYXNzLm5hbWUgIT09ICcnKTtcblxuICAgIGlmIChyZWdpc3RlcmQuY2xhc3Nlcy5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgICBjb25maWcgPSByZWdpc3RlcmQuY29uZmlnc1tyZWdpc3RlcmQuY2xhc3Nlcy5maW5kSW5kZXgoYyA9PiBjID09PSB0YXJnZXQpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gbmV3IE1vZGVscy5DbGFzc0NvbmZpZygpO1xuICAgICAgY29uZmlnLmNsYXNzUmVmZXJlbmNlID0gdGFyZ2V0O1xuICAgICAgcmVnaXN0ZXJkLmNsYXNzZXMucHVzaCh0YXJnZXQpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyZC5jb25maWdzW3JlZ2lzdGVyZC5jbGFzc2VzLmZpbmRJbmRleChjID0+IGMgPT09IHRhcmdldCldID0gY29uZmlnO1xuICAgIGlmIChjYWxsZXJUYXJnZXQpIHtcbiAgICAgIGNvbnN0IGNhbGxlclRhcmdldENvbmZpZyA9IHJlZ2lzdGVyZC5jb25maWdzW3JlZ2lzdGVyZC5jbGFzc2VzLmZpbmRJbmRleChjID0+IGMgPT09IGNhbGxlclRhcmdldCldO1xuICAgICAgaWYgKCFjb25maWcudkNoaWxkcmVuLmluY2x1ZGVzKGNhbGxlclRhcmdldENvbmZpZykpIHtcbiAgICAgICAgY29uZmlnLnZDaGlsZHJlbi5wdXNoKGNhbGxlclRhcmdldENvbmZpZyk7XG4gICAgICB9XG4gICAgICBjYWxsZXJUYXJnZXRDb25maWcudlBhcmVudCA9IGNvbmZpZztcbiAgICB9XG5cbiAgICBjb25maWdzLnB1c2goY29uZmlnKTtcblxuICAgIHJldHVybiBpc1ZhbGlkUGFyZW50ID8gZ2V0Q2xhc3NDb25maWcocGFyZW50Q2xhc3MsIGNvbmZpZ3MsIHRhcmdldCkgOiBjb25maWdzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBMRUFTRSBQUk9WSURFIE5BTUUgQVMgVFlQRUQgU1RSSU5HLCBOT1QgVkFSSUFCTEVcbiAgICogRGVjb3JhdG9yIHJlcXVyZWQgZm9yIHByb2R1Y3Rpb24gbW9kZVxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIGNsYXNzXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gQ0xBU1NOQU1FKGNsYXNzTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBNb2RlbHMuQ0xBU1NOQU1FT3B0aW9ucykge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgICAgLy8gY29uc29sZS5sb2coYENMQVNTTkFNRSBJbml0ZWQgJHtjbGFzc05hbWV9YClcbiAgICAgIHJldHVybiBzZXRDbGFzc05hbWUodGFyZ2V0LCBjbGFzc05hbWUsIG9wdGlvbnMpO1xuICAgIH0gYXMgYW55O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzTmFtZSh0YXJnZXQ6IEZ1bmN0aW9uLCBwcm9kdWN0aW9uID0gZmFsc2UpIHtcbiAgICBpZiAoXy5pc05pbCh0YXJnZXQpKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyh0YXJnZXQpO1xuICAgICAgLy8gSGVscGVycy53YXJuKGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXVtnZXRDbGFzc05hbWVdIHRhcmdldCBpcyBuaWxgKVxuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcodGFyZ2V0KSkge1xuICAgICAgY29uc29sZS5sb2codGFyZ2V0KTtcbiAgICAgIEhlbHBlcnMud2FybihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bZ2V0Q2xhc3NOYW1lXSB0YXJnZXQgaXMgc3RyaW5nOiAnJHt0YXJnZXR9JywgcHJvZHVjaXRvbjogJHtwcm9kdWN0aW9ufWApXG4gICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cbiAgICBpZiAoIV8uaXNGdW5jdGlvbih0YXJnZXQpKSB7XG4gICAgICBjb25zb2xlLmxvZyh0YXJnZXQpO1xuICAgICAgSGVscGVycy53YXJuKGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXVtnZXRDbGFzc05hbWVdIHRhcmdldCBpcyBub3QgYSBjbGFzc2ApXG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZ3MgPSBnZXRDbGFzc0NvbmZpZyh0YXJnZXQpO1xuICAgIGNvbnN0IGNvbmZpZyA9IF8uZmlyc3QoY29uZmlncyk7XG5cbiAgICBjb25zdCBjbGFzc05hbWVJbkJyb3dzZXIgPSBjb25maWc/LmNsYXNzTmFtZUluQnJvd3NlcjtcblxuICAgIGlmIChIZWxwZXJzLmlzQnJvd3NlciAmJiBfLmlzU3RyaW5nKGNsYXNzTmFtZUluQnJvd3NlcikpIHtcbiAgICAgIHJldHVybiBjbGFzc05hbWVJbkJyb3dzZXI7XG4gICAgfVxuXG4gICAgY29uc3QgY2xhc3NOYW1lID0gY29uZmlnPy5jbGFzc05hbWU7XG5cbiAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lO1xuICAgIH1cblxuICAgIGlmIChwcm9kdWN0aW9uKSB7XG4gICAgICBjb25zb2xlLmxvZygnY2xhc3Mgd2l0aG91dCBAQ0xBU1MuTkFNRSBkZW9jcmF0b3InLCB0YXJnZXQgYXMgYW55KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKEVSUk9SX01TR19DTEFTU19XSVRIT1VUX0RFQ09SQVRPUik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEhlbHBlcnMubG9nKCdjaGVjayBmb3IgJyArIHRhcmdldC5uYW1lKVxuICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyAgIC8vIEhlbHBlcnMubG9nKCdjaGVjayBmb3IgJyArIHRhcmdldC5uYW1lICsgJyA9PT0gJyArIGNvbmZpZy5jbGFzc05hbWUpL1xuICAgICAgLy8gICAvLyBUT0RPIHRoaXMgbWF5IHdvcmssIGJ1dCBub3QgeWV0IGluIHNpbmdsZXRvbi9tb3JwaGlcbiAgICAgIC8vICAgaWYgKCFjb25maWcuY2xhc3NOYW1lKSB7XG4gICAgICAvLyAgICAgaWYgKHRhcmdldD8ubmFtZSAmJiB0YXJnZXQubmFtZSAhPT0gJ09iamVjdCcpIHtcbiAgICAgIC8vICAgICAgIENvbmZpZ0hlbHBlcnMubG9nKGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXSBQbGVhc2UgdXNlIEBDTEFTUy5OQU1FYFxuICAgICAgLy8gICAgICAgICArIGAoJyR7KHRhcmdldD8ubmFtZSAmJiAhIXRhcmdldC5uYW1lKSA/IHRhcmdldC5uYW1lIDogJy4uLid9JykgZGVjb3JhdG9yIGZvciBjbGFzcyAke3RhcmdldD8ubmFtZX1gKVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSlcblxuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0Lm5hbWU7XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RJbmRleFByb3BlcnR5VmFsdWUob2JqOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG4gICAgLy8gY29uc29sZS5sb2coJ2NsYXNzTmFtZScsY2xhc3NOYW1lKVxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbiAgICAvLyBjb25zb2xlLmxvZygnYycsYylcbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMudW5pcXVlS2V5O1xuICAgIH1cbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzRmFtaWx5QnlDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG4gICAgLy8gY29uc29sZS5sb2coJ2dldENsYXNzZXMoKScsIGdldENsYXNzZXMoKSlcbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMuY2xhc3NGYW1pbHk7XG4gICAgfVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0Q2xhc3NGYW1pbHkob2JqOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG4gICAgLy8gY29uc29sZS5sb2coJ2NsYXNzTmFtZScsY2xhc3NOYW1lKVxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbiAgICAvLyBjb25zb2xlLmxvZygnYycsYylcbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMuY2xhc3NGYW1pbHk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdEluZGV4VmFsdWUob2JqOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBUY2hIZWxwZXJzLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG4gICAgLy8gY29uc29sZS5sb2coJ2NsYXNzTmFtZScsY2xhc3NOYW1lKVxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbiAgICAvLyBjb25zb2xlLmxvZygnYycsYylcbiAgICBpZiAoYyAmJiBfLmlzU3RyaW5nKGMudW5pcXVlS2V5KSkge1xuICAgICAgcmV0dXJuIG9ialtjLnVuaXF1ZUtleV07XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzQnkoY2xhc3NOYW1lOiBzdHJpbmcgfCBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcbiAgICBsZXQgcmVzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNsYXNzTmFtZSkpIHtcbiAgICAgIGlmIChjbGFzc05hbWUubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IGBNYXBwaW5nIGVycm9yLi4uIHBsZWFzZSB1c2UgcHJvcGVyIGNsYXNzIG5hbWVzOlxuICB7XG4gICAgcHJvcGVydHlPYmplY3Q6ICdNeUNsYXNzTmFtZScsXG4gICAgcHJvcGVydHlXaXRoQXJyYXk6IFsnTXlDbGFzc05hbWUnXVxuICB9XG5cbiAgICAgICAgYFxuICAgICAgfVxuICAgICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lWzBdXG4gICAgfVxuICAgIGlmICh0eXBlb2YgY2xhc3NOYW1lID09PSAnZnVuY3Rpb24nKSB7IC8vIFRPRE8gUVVJQ0tfRklYXG4gICAgICByZXMgPSBjbGFzc05hbWU7XG4gICAgfVxuICAgIGlmIChjbGFzc05hbWUgPT09ICdEYXRlJykge1xuICAgICAgcmVzID0gRGF0ZTtcbiAgICB9XG5cbiAgICBsZXQgYyA9IGdldENsYXNzZXMoKS5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG5cbiAgICBpZiAoYykge1xuICAgICAgcmVzID0gYy50YXJnZXQ7XG4gICAgfVxuICAgIC8vIGNvbnNvbGUubG9nKGBnZXRDbGFzc0J5IFwiJHtjbGFzc05hbWV9IHJldHVybiBcXG5cXG4gJHtyZXN9IFxcblxcbmApXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiByZXM7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,64 @@
1
+ import { _ } from 'tnp-core/websql';
2
+ import { SYMBOL } from './symbols';
3
+ /**
4
+ * @DEPRECATED
5
+ * Describe fields assigned in class
6
+ */
7
+ const FRegEx = new RegExp(/(?:this\.)(.+?(?= ))/g);
8
+ export function describeFromClassStringify(target, parent = false) {
9
+ // @ts-ignore
10
+ var result = [];
11
+ if (parent) {
12
+ var proto = Object.getPrototypeOf(target.prototype);
13
+ if (proto) {
14
+ // @ts-ignore
15
+ result = result.concat(describeFromClassStringify(proto.constructor, parent));
16
+ }
17
+ }
18
+ result = result.concat(target.toString().match(FRegEx) || []);
19
+ return result.map(prop => prop.replace('this.', ''));
20
+ }
21
+ /**
22
+ * Describe fields assigne through @DefaultModelWithMapping decorator
23
+ * without functions
24
+ */
25
+ export function describeByDefaultModelsAndMapping(target) {
26
+ let res = {};
27
+ if (target) {
28
+ // @ts-ignore
29
+ if (target[SYMBOL.DEFAULT_MODEL]) {
30
+ // @ts-ignore
31
+ Object.keys(target[SYMBOL.DEFAULT_MODEL])
32
+ .filter(key => {
33
+ // @ts-ignore
34
+ return !_.isFunction(target[SYMBOL.DEFAULT_MODEL][key]);
35
+ })
36
+ .forEach(key => {
37
+ // @ts-ignore
38
+ return res[key] = null;
39
+ });
40
+ }
41
+ // @ts-ignore
42
+ let mapping = target[SYMBOL.MODELS_MAPPING];
43
+ if (_.isArray(mapping)) {
44
+ mapping.forEach(m => {
45
+ Object.keys(m)
46
+ .forEach(key => {
47
+ // @ts-ignore
48
+ res[key] = null;
49
+ });
50
+ });
51
+ }
52
+ else if (mapping) {
53
+ Object.keys(mapping)
54
+ .forEach(key => {
55
+ // @ts-ignore
56
+ res[key] = null;
57
+ });
58
+ }
59
+ }
60
+ let propNames = Object.keys(res).filter(f => !!f);
61
+ propNames = (!propNames.includes('id') ? ['id'] : []).concat(propNames);
62
+ return propNames;
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvcHJvamVjdHMvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3NyYy9saWIvZGVzY3JpYmUtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJbkM7OztJQUdJO0FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNuRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBZ0IsRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN6RSxhQUFhO0lBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxhQUFhO1lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQy9FO0tBQ0Y7SUFDRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFdEQsQ0FBQztBQUVEOzs7S0FHSztBQUNMLE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxNQUFnQjtJQUNoRSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7SUFDWixJQUFJLE1BQU0sRUFBRTtRQUNWLGFBQWE7UUFDYixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNaLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsYUFBYTtnQkFDYixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELGFBQWE7UUFDYixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2IsYUFBYTtvQkFDYixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFBO1NBQ0g7YUFBTSxJQUFJLE9BQU8sRUFBRTtZQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLGFBQWE7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztTQUNOO0tBQ0Y7SUFFRCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBTWU1CT0wgfSBmcm9tICcuL3N5bWJvbHMnO1xuXG5cblxuLyoqXG4gICogQERFUFJFQ0FURURcbiAgKiBEZXNjcmliZSBmaWVsZHMgYXNzaWduZWQgaW4gY2xhc3NcbiAgKi9cbmNvbnN0IEZSZWdFeCA9IG5ldyBSZWdFeHAoLyg/OnRoaXNcXC4pKC4rPyg/PSApKS9nKTtcbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUZyb21DbGFzc1N0cmluZ2lmeSh0YXJnZXQ6IEZ1bmN0aW9uLCBwYXJlbnQgPSBmYWxzZSk6IHN0cmluZ1tdIHtcbiAgLy8gQHRzLWlnbm9yZVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGlmIChwYXJlbnQpIHtcbiAgICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0LnByb3RvdHlwZSk7XG4gICAgaWYgKHByb3RvKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGRlc2NyaWJlRnJvbUNsYXNzU3RyaW5naWZ5KHByb3RvLmNvbnN0cnVjdG9yLCBwYXJlbnQpKTtcbiAgICB9XG4gIH1cbiAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCh0YXJnZXQudG9TdHJpbmcoKS5tYXRjaChGUmVnRXgpIHx8IFtdKTtcbiAgcmV0dXJuIHJlc3VsdC5tYXAocHJvcCA9PiBwcm9wLnJlcGxhY2UoJ3RoaXMuJywgJycpKVxuXG59XG5cbi8qKlxuICAgKiBEZXNjcmliZSBmaWVsZHMgYXNzaWduZSB0aHJvdWdoIEBEZWZhdWx0TW9kZWxXaXRoTWFwcGluZyBkZWNvcmF0b3JcbiAgICogd2l0aG91dCBmdW5jdGlvbnNcbiAgICovXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVCeURlZmF1bHRNb2RlbHNBbmRNYXBwaW5nKHRhcmdldDogRnVuY3Rpb24pOiBzdHJpbmdbXSB7XG4gIGxldCByZXMgPSB7fVxuICBpZiAodGFyZ2V0KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh0YXJnZXRbU1lNQk9MLkRFRkFVTFRfTU9ERUxdKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBPYmplY3Qua2V5cyh0YXJnZXRbU1lNQk9MLkRFRkFVTFRfTU9ERUxdKVxuICAgICAgICAuZmlsdGVyKGtleSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHJldHVybiAhXy5pc0Z1bmN0aW9uKHRhcmdldFtTWU1CT0wuREVGQVVMVF9NT0RFTF1ba2V5XSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHJldHVybiByZXNba2V5XSA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbGV0IG1hcHBpbmcgPSB0YXJnZXRbU1lNQk9MLk1PREVMU19NQVBQSU5HXTtcbiAgICBpZiAoXy5pc0FycmF5KG1hcHBpbmcpKSB7XG4gICAgICBtYXBwaW5nLmZvckVhY2gobSA9PiB7XG4gICAgICAgIE9iamVjdC5rZXlzKG0pXG4gICAgICAgICAgLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJlc1trZXldID0gbnVsbDtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChtYXBwaW5nKSB7XG5cbiAgICAgIE9iamVjdC5rZXlzKG1hcHBpbmcpXG4gICAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHJlc1trZXldID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHByb3BOYW1lcyA9IE9iamVjdC5rZXlzKHJlcykuZmlsdGVyKGYgPT4gISFmKTtcbiAgcHJvcE5hbWVzID0gKCFwcm9wTmFtZXMuaW5jbHVkZXMoJ2lkJykgPyBbJ2lkJ10gOiBbXSkuY29uY2F0KHByb3BOYW1lcyk7XG4gIHJldHVybiBwcm9wTmFtZXM7XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ export const ERROR_MSG_CLASS_WITHOUT_DECORATOR = `[typescript-class-helpers][getClassName(...)](PRODUCTION MODE ERROR)
2
+ Please use decoartor @CLASSNAME for each entity or controller
3
+ This is preventing class name problem in minified code.
4
+
5
+ import { CLASS } from 'typescript-class-helpers';
6
+
7
+ @CLASS.NAME('ExampleClass')
8
+ class ExampleClass {
9
+ ...
10
+ }
11
+ `;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLW1lc3NhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3Byb2plY3RzL3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9zcmMvbGliL2Vycm9ycy1tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRzs7Ozs7Ozs7OztDQVVoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVSUk9SX01TR19DTEFTU19XSVRIT1VUX0RFQ09SQVRPUiA9IGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzXVtnZXRDbGFzc05hbWUoLi4uKV0oUFJPRFVDVElPTiBNT0RFIEVSUk9SKVxuUGxlYXNlIHVzZSBkZWNvYXJ0b3IgQENMQVNTTkFNRSBmb3IgZWFjaCBlbnRpdHkgb3IgY29udHJvbGxlclxuVGhpcyBpcyBwcmV2ZW50aW5nIGNsYXNzIG5hbWUgcHJvYmxlbSBpbiBtaW5pZmllZCBjb2RlLlxuXG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycyc7XG5cbkBDTEFTUy5OQU1FKCdFeGFtcGxlQ2xhc3MnKVxuY2xhc3MgRXhhbXBsZUNsYXNzIHtcbiAgLi4uXG59XG5gO1xuIl19