typescript-class-helpers 13.2.2 → 13.2.4
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/app.js +3 -3
- package/browser/README.md +24 -24
- package/browser/esm2020/lib/classname.mjs +150 -150
- package/browser/esm2020/lib/describe-class.mjs +65 -65
- package/browser/esm2020/lib/errors-messages.mjs +3 -3
- package/browser/esm2020/lib/index.mjs +134 -134
- package/browser/esm2020/lib/models.mjs +26 -26
- package/browser/esm2020/lib/registerd-db.mjs +5 -5
- package/browser/esm2020/lib/set-class-name.mjs +89 -89
- package/browser/esm2020/lib/storage.mjs +23 -23
- package/browser/esm2020/lib/symbols.mjs +7 -7
- package/browser/esm2020/public-api.mjs +1 -1
- package/browser/esm2020/typescript-class-helpers.mjs +4 -4
- package/browser/fesm2015/typescript-class-helpers.mjs +470 -470
- package/browser/fesm2020/typescript-class-helpers.mjs +470 -470
- package/browser/lib/classname.d.ts +15 -15
- package/browser/lib/describe-class.d.ts +5 -5
- package/browser/lib/index.d.ts +32 -32
- package/browser/lib/models.d.ts +66 -66
- package/browser/lib/registerd-db.d.ts +4 -4
- package/browser/lib/set-class-name.d.ts +1 -1
- package/browser/lib/symbols.d.ts +5 -5
- package/browser/typescript-class-helpers.d.ts +4 -4
- package/client/README.md +24 -24
- package/client/esm2020/lib/classname.mjs +150 -150
- package/client/esm2020/lib/describe-class.mjs +65 -65
- package/client/esm2020/lib/errors-messages.mjs +3 -3
- package/client/esm2020/lib/index.mjs +134 -134
- package/client/esm2020/lib/models.mjs +26 -26
- package/client/esm2020/lib/registerd-db.mjs +5 -5
- package/client/esm2020/lib/set-class-name.mjs +89 -89
- package/client/esm2020/lib/storage.mjs +23 -23
- package/client/esm2020/lib/symbols.mjs +7 -7
- package/client/esm2020/public-api.mjs +1 -1
- package/client/esm2020/typescript-class-helpers.mjs +4 -4
- package/client/fesm2015/typescript-class-helpers.mjs +470 -470
- package/client/fesm2020/typescript-class-helpers.mjs +470 -470
- package/client/lib/classname.d.ts +15 -15
- package/client/lib/describe-class.d.ts +5 -5
- package/client/lib/index.d.ts +32 -32
- package/client/lib/models.d.ts +66 -66
- package/client/lib/registerd-db.d.ts +4 -4
- package/client/lib/set-class-name.d.ts +1 -1
- package/client/lib/symbols.d.ts +5 -5
- package/client/typescript-class-helpers.d.ts +4 -4
- package/index.d.ts +1 -1
- package/lib/classname.d.ts +16 -16
- package/lib/describe-class.d.ts +6 -6
- package/lib/errors-messages.d.ts +1 -1
- package/lib/index.d.ts +33 -33
- package/lib/models.d.ts +68 -68
- package/lib/registerd-db.d.ts +5 -5
- package/lib/set-class-name.d.ts +2 -2
- package/lib/storage.d.ts +1 -1
- package/lib/symbols.d.ts +6 -6
- package/package.json +3 -3
- package/package.json_devDependencies.json +223 -223
- package/package.json_tnp.json5 +48 -48
- package/tmp-environment.json +13 -13
- package/websql/README.md +24 -24
- package/websql/esm2020/lib/classname.mjs +150 -150
- package/websql/esm2020/lib/describe-class.mjs +65 -65
- package/websql/esm2020/lib/errors-messages.mjs +3 -3
- package/websql/esm2020/lib/index.mjs +134 -134
- package/websql/esm2020/lib/models.mjs +24 -24
- package/websql/esm2020/lib/registerd-db.mjs +5 -5
- package/websql/esm2020/lib/set-class-name.mjs +89 -89
- package/websql/esm2020/lib/storage.mjs +23 -23
- package/websql/esm2020/lib/symbols.mjs +7 -7
- package/websql/esm2020/public-api.mjs +1 -1
- package/websql/esm2020/typescript-class-helpers.mjs +4 -4
- package/websql/fesm2015/typescript-class-helpers.mjs +468 -468
- package/websql/fesm2020/typescript-class-helpers.mjs +468 -468
- package/websql/lib/classname.d.ts +15 -15
- package/websql/lib/describe-class.d.ts +5 -5
- package/websql/lib/index.d.ts +32 -32
- package/websql/lib/models.d.ts +67 -67
- package/websql/lib/registerd-db.d.ts +4 -4
- package/websql/lib/set-class-name.d.ts +1 -1
- package/websql/lib/symbols.d.ts +5 -5
- package/websql/typescript-class-helpers.d.ts +4 -4
package/websql/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# MyLib
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
-
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# MyLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -1,157 +1,157 @@
|
|
|
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
|
-
/* */
|
|
11
|
-
/* */
|
|
12
|
-
function getClasses() {
|
|
13
|
-
const s = getStorage();
|
|
14
|
-
return s[SYMBOL.CLASSES];
|
|
15
|
-
}
|
|
16
|
-
export var CLASSNAME;
|
|
17
|
-
(function (CLASSNAME_1) {
|
|
18
|
-
function getClassConfig(target, configs = [], callerTarget) {
|
|
19
|
-
if (!_.isFunction(target)) {
|
|
20
|
-
throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;
|
|
21
|
-
}
|
|
22
|
-
let config;
|
|
23
|
-
const parentClass = Object.getPrototypeOf(target);
|
|
24
|
-
const isValidParent = (_.isFunction(parentClass) && parentClass.name !== '');
|
|
25
|
-
if (registerd.classes.includes(target)) {
|
|
26
|
-
config = registerd.configs[registerd.classes.findIndex(c => c === target)];
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
config = new Models.ClassConfig();
|
|
30
|
-
config.classReference = target;
|
|
31
|
-
registerd.classes.push(target);
|
|
32
|
-
}
|
|
33
|
-
registerd.configs[registerd.classes.findIndex(c => c === target)] = config;
|
|
34
|
-
if (callerTarget) {
|
|
35
|
-
const callerTargetConfig = registerd.configs[registerd.classes.findIndex(c => c === callerTarget)];
|
|
36
|
-
if (!config.vChildren.includes(callerTargetConfig)) {
|
|
37
|
-
config.vChildren.push(callerTargetConfig);
|
|
38
|
-
}
|
|
39
|
-
callerTargetConfig.vParent = config;
|
|
40
|
-
}
|
|
41
|
-
configs.push(config);
|
|
42
|
-
return isValidParent ? getClassConfig(parentClass, configs, target) : configs;
|
|
43
|
-
}
|
|
44
|
-
CLASSNAME_1.getClassConfig = getClassConfig;
|
|
45
|
-
/**
|
|
46
|
-
* PLEASE PROVIDE NAME AS TYPED STRING, NOT VARIABLE
|
|
47
|
-
* Decorator requred for production mode
|
|
48
|
-
* @param name Name of class
|
|
49
|
-
*/
|
|
50
|
-
function CLASSNAME(className, options) {
|
|
51
|
-
return function (target) {
|
|
52
|
-
return setClassName(target, className, options);
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
CLASSNAME_1.CLASSNAME = CLASSNAME;
|
|
56
|
-
function getClassName(target, production = false) {
|
|
57
|
-
if (_.isNil(target)) {
|
|
58
|
-
return void 0;
|
|
59
|
-
}
|
|
60
|
-
if (_.isString(target)) {
|
|
61
|
-
console.log(target);
|
|
62
|
-
Helpers.warn(`[typescript-class-helpers][getClassName] target is string: '${target}', produciton: ${production}`);
|
|
63
|
-
return target;
|
|
64
|
-
}
|
|
65
|
-
if (!_.isFunction(target)) {
|
|
66
|
-
console.log(target);
|
|
67
|
-
Helpers.warn(`[typescript-class-helpers][getClassName] target is not a class`);
|
|
68
|
-
return void 0;
|
|
69
|
-
}
|
|
70
|
-
const configs = getClassConfig(target);
|
|
71
|
-
const config = _.first(configs);
|
|
72
|
-
const classNameInBrowser = config?.classNameInBrowser;
|
|
73
|
-
if (Helpers.isBrowser && _.isString(classNameInBrowser)) {
|
|
74
|
-
return classNameInBrowser;
|
|
75
|
-
}
|
|
76
|
-
const className = config?.className;
|
|
77
|
-
if (className) {
|
|
78
|
-
return className;
|
|
79
|
-
}
|
|
80
|
-
if (production) {
|
|
81
|
-
console.log('class without @CLASS.NAME deocrator', target);
|
|
82
|
-
throw new Error(ERROR_MSG_CLASS_WITHOUT_DECORATOR);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
}
|
|
86
|
-
return target.name;
|
|
87
|
-
}
|
|
88
|
-
CLASSNAME_1.getClassName = getClassName;
|
|
89
|
-
// @ts-ignore
|
|
90
|
-
function getObjectIndexPropertyValue(obj) {
|
|
91
|
-
const className = TchHelpers.getNameFromObject(obj);
|
|
92
|
-
let c = getClasses().find(c => c.className === className);
|
|
93
|
-
if (c) {
|
|
94
|
-
return c.uniqueKey;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
CLASSNAME_1.getObjectIndexPropertyValue = getObjectIndexPropertyValue;
|
|
98
|
-
// @ts-ignore
|
|
99
|
-
function getClassFamilyByClassName(className) {
|
|
100
|
-
let c = getClasses().find(c => c.className === className);
|
|
101
|
-
if (c) {
|
|
102
|
-
return c.classFamily;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
CLASSNAME_1.getClassFamilyByClassName = getClassFamilyByClassName;
|
|
106
|
-
// @ts-ignore
|
|
107
|
-
function getObjectClassFamily(obj) {
|
|
108
|
-
const className = TchHelpers.getNameFromObject(obj);
|
|
109
|
-
let c = getClasses().find(c => c.className === className);
|
|
110
|
-
if (c) {
|
|
111
|
-
return c.classFamily;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
CLASSNAME_1.getObjectClassFamily = getObjectClassFamily;
|
|
115
|
-
function getObjectIndexValue(obj) {
|
|
116
|
-
const className = TchHelpers.getNameFromObject(obj);
|
|
117
|
-
let c = getClasses().find(c => c.className === className);
|
|
118
|
-
if (c && _.isString(c.uniqueKey)) {
|
|
119
|
-
return obj[c.uniqueKey];
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
CLASSNAME_1.getObjectIndexValue = getObjectIndexValue;
|
|
123
|
-
function getClassBy(className) {
|
|
124
|
-
let res;
|
|
125
|
-
if (Array.isArray(className)) {
|
|
126
|
-
if (className.length !== 1) {
|
|
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
|
+
/* */
|
|
11
|
+
/* */
|
|
12
|
+
function getClasses() {
|
|
13
|
+
const s = getStorage();
|
|
14
|
+
return s[SYMBOL.CLASSES];
|
|
15
|
+
}
|
|
16
|
+
export var CLASSNAME;
|
|
17
|
+
(function (CLASSNAME_1) {
|
|
18
|
+
function getClassConfig(target, configs = [], callerTarget) {
|
|
19
|
+
if (!_.isFunction(target)) {
|
|
20
|
+
throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;
|
|
21
|
+
}
|
|
22
|
+
let config;
|
|
23
|
+
const parentClass = Object.getPrototypeOf(target);
|
|
24
|
+
const isValidParent = (_.isFunction(parentClass) && parentClass.name !== '');
|
|
25
|
+
if (registerd.classes.includes(target)) {
|
|
26
|
+
config = registerd.configs[registerd.classes.findIndex(c => c === target)];
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
config = new Models.ClassConfig();
|
|
30
|
+
config.classReference = target;
|
|
31
|
+
registerd.classes.push(target);
|
|
32
|
+
}
|
|
33
|
+
registerd.configs[registerd.classes.findIndex(c => c === target)] = config;
|
|
34
|
+
if (callerTarget) {
|
|
35
|
+
const callerTargetConfig = registerd.configs[registerd.classes.findIndex(c => c === callerTarget)];
|
|
36
|
+
if (!config.vChildren.includes(callerTargetConfig)) {
|
|
37
|
+
config.vChildren.push(callerTargetConfig);
|
|
38
|
+
}
|
|
39
|
+
callerTargetConfig.vParent = config;
|
|
40
|
+
}
|
|
41
|
+
configs.push(config);
|
|
42
|
+
return isValidParent ? getClassConfig(parentClass, configs, target) : configs;
|
|
43
|
+
}
|
|
44
|
+
CLASSNAME_1.getClassConfig = getClassConfig;
|
|
45
|
+
/**
|
|
46
|
+
* PLEASE PROVIDE NAME AS TYPED STRING, NOT VARIABLE
|
|
47
|
+
* Decorator requred for production mode
|
|
48
|
+
* @param name Name of class
|
|
49
|
+
*/
|
|
50
|
+
function CLASSNAME(className, options) {
|
|
51
|
+
return function (target) {
|
|
52
|
+
return setClassName(target, className, options);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
CLASSNAME_1.CLASSNAME = CLASSNAME;
|
|
56
|
+
function getClassName(target, production = false) {
|
|
57
|
+
if (_.isNil(target)) {
|
|
58
|
+
return void 0;
|
|
59
|
+
}
|
|
60
|
+
if (_.isString(target)) {
|
|
61
|
+
console.log(target);
|
|
62
|
+
Helpers.warn(`[typescript-class-helpers][getClassName] target is string: '${target}', produciton: ${production}`);
|
|
63
|
+
return target;
|
|
64
|
+
}
|
|
65
|
+
if (!_.isFunction(target)) {
|
|
66
|
+
console.log(target);
|
|
67
|
+
Helpers.warn(`[typescript-class-helpers][getClassName] target is not a class`);
|
|
68
|
+
return void 0;
|
|
69
|
+
}
|
|
70
|
+
const configs = getClassConfig(target);
|
|
71
|
+
const config = _.first(configs);
|
|
72
|
+
const classNameInBrowser = config?.classNameInBrowser;
|
|
73
|
+
if (Helpers.isBrowser && _.isString(classNameInBrowser)) {
|
|
74
|
+
return classNameInBrowser;
|
|
75
|
+
}
|
|
76
|
+
const className = config?.className;
|
|
77
|
+
if (className) {
|
|
78
|
+
return className;
|
|
79
|
+
}
|
|
80
|
+
if (production) {
|
|
81
|
+
console.log('class without @CLASS.NAME deocrator', target);
|
|
82
|
+
throw new Error(ERROR_MSG_CLASS_WITHOUT_DECORATOR);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
}
|
|
86
|
+
return target.name;
|
|
87
|
+
}
|
|
88
|
+
CLASSNAME_1.getClassName = getClassName;
|
|
89
|
+
// @ts-ignore
|
|
90
|
+
function getObjectIndexPropertyValue(obj) {
|
|
91
|
+
const className = TchHelpers.getNameFromObject(obj);
|
|
92
|
+
let c = getClasses().find(c => c.className === className);
|
|
93
|
+
if (c) {
|
|
94
|
+
return c.uniqueKey;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
CLASSNAME_1.getObjectIndexPropertyValue = getObjectIndexPropertyValue;
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
function getClassFamilyByClassName(className) {
|
|
100
|
+
let c = getClasses().find(c => c.className === className);
|
|
101
|
+
if (c) {
|
|
102
|
+
return c.classFamily;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
CLASSNAME_1.getClassFamilyByClassName = getClassFamilyByClassName;
|
|
106
|
+
// @ts-ignore
|
|
107
|
+
function getObjectClassFamily(obj) {
|
|
108
|
+
const className = TchHelpers.getNameFromObject(obj);
|
|
109
|
+
let c = getClasses().find(c => c.className === className);
|
|
110
|
+
if (c) {
|
|
111
|
+
return c.classFamily;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
CLASSNAME_1.getObjectClassFamily = getObjectClassFamily;
|
|
115
|
+
function getObjectIndexValue(obj) {
|
|
116
|
+
const className = TchHelpers.getNameFromObject(obj);
|
|
117
|
+
let c = getClasses().find(c => c.className === className);
|
|
118
|
+
if (c && _.isString(c.uniqueKey)) {
|
|
119
|
+
return obj[c.uniqueKey];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
CLASSNAME_1.getObjectIndexValue = getObjectIndexValue;
|
|
123
|
+
function getClassBy(className) {
|
|
124
|
+
let res;
|
|
125
|
+
if (Array.isArray(className)) {
|
|
126
|
+
if (className.length !== 1) {
|
|
127
127
|
throw `Mapping error... please use proper class names:
|
|
128
128
|
{
|
|
129
129
|
propertyObject: 'MyClassName',
|
|
130
130
|
propertyWithArray: ['MyClassName']
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
`;
|
|
134
|
-
}
|
|
135
|
-
className = className[0];
|
|
136
|
-
}
|
|
137
|
-
if (typeof className === 'function') { // TODO QUICK_FIX
|
|
138
|
-
res = className;
|
|
139
|
-
}
|
|
140
|
-
if (className === 'Date') {
|
|
141
|
-
res = Date;
|
|
142
|
-
}
|
|
143
|
-
if (className === 'FormData') {
|
|
144
|
-
res = FormData;
|
|
145
|
-
}
|
|
146
|
-
let c = getClasses().find(c => c.className === className);
|
|
147
|
-
if (c) {
|
|
148
|
-
res = c.target;
|
|
149
|
-
}
|
|
150
|
-
// @ts-ignore
|
|
151
|
-
return res;
|
|
152
|
-
}
|
|
153
|
-
CLASSNAME_1.getClassBy = getClassBy;
|
|
154
|
-
})(CLASSNAME || (CLASSNAME = {}));
|
|
155
|
-
;
|
|
156
|
-
({}); // @--end-of-file-for-module=typescript-class-helpers lib/classname.ts
|
|
133
|
+
`;
|
|
134
|
+
}
|
|
135
|
+
className = className[0];
|
|
136
|
+
}
|
|
137
|
+
if (typeof className === 'function') { // TODO QUICK_FIX
|
|
138
|
+
res = className;
|
|
139
|
+
}
|
|
140
|
+
if (className === 'Date') {
|
|
141
|
+
res = Date;
|
|
142
|
+
}
|
|
143
|
+
if (className === 'FormData') {
|
|
144
|
+
res = FormData;
|
|
145
|
+
}
|
|
146
|
+
let c = getClasses().find(c => c.className === className);
|
|
147
|
+
if (c) {
|
|
148
|
+
res = c.target;
|
|
149
|
+
}
|
|
150
|
+
// @ts-ignore
|
|
151
|
+
return res;
|
|
152
|
+
}
|
|
153
|
+
CLASSNAME_1.getClassBy = getClassBy;
|
|
154
|
+
})(CLASSNAME || (CLASSNAME = {}));
|
|
155
|
+
;
|
|
156
|
+
({}); // @--end-of-file-for-module=typescript-class-helpers lib/classname.ts
|
|
157
157
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NuYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3Byb2plY3RzL3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9zcmMvbGliL2NsYXNzbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxLQUFLO0FBQ0wsS0FBSztBQUdMLFNBQVMsVUFBVTtJQUNqQixNQUFNLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUN2QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFRLENBQUM7QUFDbEMsQ0FBQztBQUNELE1BQU0sS0FBVyxTQUFTLENBOEt6QjtBQTlLRCxXQUFpQixXQUFTO0lBRXhCLFNBQWdCLGNBQWMsQ0FBQyxNQUFnQixFQUFFLFVBQWdDLEVBQUUsRUFBRSxZQUF1QjtRQUMxRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixNQUFNLDJFQUEyRSxNQUFNLEVBQUUsQ0FBQTtTQUMxRjtRQUVELElBQUksTUFBMEIsQ0FBQztRQUMvQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRTdFLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztTQUM1RTthQUFNO1lBQ0wsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1lBQy9CLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUMzRSxJQUFJLFlBQVksRUFBRTtZQUNoQixNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNuRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtnQkFDbEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUMzQztZQUNELGtCQUFrQixDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FDckM7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2hGLENBQUM7SUE3QmUsMEJBQWMsaUJBNkI3QixDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILFNBQWdCLFNBQVMsQ0FBQyxTQUFpQixFQUN6QyxPQUFpQztRQUNqQyxPQUFPLFVBQVUsTUFBZ0I7WUFFL0IsT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFRLENBQUM7SUFDWCxDQUFDO0lBTmUscUJBQVMsWUFNeEIsQ0FBQTtJQUVELFNBQWdCLFlBQVksQ0FBQyxNQUFnQixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQy9ELElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUduQixPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLCtEQUErRCxNQUFNLGtCQUFrQixVQUFVLEVBQUUsQ0FBQyxDQUFBO1lBQ2pILE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0VBQWdFLENBQUMsQ0FBQTtZQUM5RSxPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVoQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztRQUV0RCxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sa0JBQWtCLENBQUM7U0FDM0I7UUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBRXBDLElBQUksU0FBUyxFQUFFO1lBQ2IsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUUsTUFBYSxDQUFDLENBQUE7WUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO2FBQU07U0FhTjtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBbERlLHdCQUFZLGVBa0QzQixDQUFBO0lBRUQsYUFBYTtJQUNiLFNBQWdCLDJCQUEyQixDQUFDLEdBQVE7UUFDbEQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLEVBQUU7WUFDTCxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBUmUsdUNBQTJCLDhCQVExQyxDQUFBO0lBRUQsYUFBYTtJQUNiLFNBQWdCLHlCQUF5QixDQUFDLFNBQWlCO1FBQ3pELElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLEVBQUU7WUFDTCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBTmUscUNBQXlCLDRCQU14QyxDQUFBO0lBRUQsYUFBYTtJQUNiLFNBQWdCLG9CQUFvQixDQUFDLEdBQVE7UUFDM0MsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLEVBQUU7WUFDTCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBUmUsZ0NBQW9CLHVCQVFuQyxDQUFBO0lBRUQsU0FBZ0IsbUJBQW1CLENBQUMsR0FBUTtRQUMxQyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBUmUsK0JBQW1CLHNCQVFsQyxDQUFBO0lBRUQsU0FBZ0IsVUFBVSxDQUFDLFNBQTRCO1FBQ3JELElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzVCLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLE1BQU07Ozs7OztTQU1MLENBQUE7YUFDRjtZQUNELFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDekI7UUFDRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRSxFQUFFLGlCQUFpQjtZQUN0RCxHQUFHLEdBQUcsU0FBUyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUVELElBQUksU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUM1QixHQUFHLEdBQUcsUUFBUSxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsRUFBRTtZQUNMLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ2hCO1FBRUQsYUFBYTtRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQWpDZSxzQkFBVSxhQWlDekIsQ0FBQTtBQUVILENBQUMsRUE5S2dCLFNBQVMsS0FBVCxTQUFTLFFBOEt6QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0VBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBTWU1CT0wgfSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgVGNoSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSAnLi9zdG9yYWdlJztcbmltcG9ydCB7IHNldENsYXNzTmFtZSB9IGZyb20gJy4vc2V0LWNsYXNzLW5hbWUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJkIH0gZnJvbSAnLi9yZWdpc3RlcmQtZGInO1xuaW1wb3J0IHsgRVJST1JfTVNHX0NMQVNTX1dJVEhPVVRfREVDT1JBVE9SIH0gZnJvbSAnLi9lcnJvcnMtbWVzc2FnZXMnO1xuLyogKi9cbi8qICovXG4gIFxuXG5mdW5jdGlvbiBnZXRDbGFzc2VzKCk6IE1vZGVscy5DbGFzc01ldGFbXSB7XG4gIGNvbnN0IHMgPSBnZXRTdG9yYWdlKCk7XG4gIHJldHVybiBzW1NZTUJPTC5DTEFTU0VTXSBhcyBhbnk7XG59XG5leHBvcnQgbmFtZXNwYWNlIENMQVNTTkFNRSB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzQ29uZmlnKHRhcmdldDogRnVuY3Rpb24sIGNvbmZpZ3M6IE1vZGVscy5DbGFzc0NvbmZpZ1tdID0gW10sIGNhbGxlclRhcmdldD86IEZ1bmN0aW9uKTogTW9kZWxzLkNsYXNzQ29uZmlnW10ge1xuICAgIGlmICghXy5pc0Z1bmN0aW9uKHRhcmdldCkpIHtcbiAgICAgIHRocm93IGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJdW2dldENsYXNzQ29uZmlnXSBDYW5ub3QgZ2V0IGNsYXNzIGNvbmZpZyBmcm9tOiAke3RhcmdldH1gXG4gICAgfVxuXG4gICAgbGV0IGNvbmZpZzogTW9kZWxzLkNsYXNzQ29uZmlnO1xuICAgIGNvbnN0IHBhcmVudENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCk7XG4gICAgY29uc3QgaXNWYWxpZFBhcmVudCA9IChfLmlzRnVuY3Rpb24ocGFyZW50Q2xhc3MpICYmIHBhcmVudENsYXNzLm5hbWUgIT09ICcnKTtcblxuICAgIGlmIChyZWdpc3RlcmQuY2xhc3Nlcy5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgICBjb25maWcgPSByZWdpc3RlcmQuY29uZmlnc1tyZWdpc3RlcmQuY2xhc3Nlcy5maW5kSW5kZXgoYyA9PiBjID09PSB0YXJnZXQpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gbmV3IE1vZGVscy5DbGFzc0NvbmZpZygpO1xuICAgICAgY29uZmlnLmNsYXNzUmVmZXJlbmNlID0gdGFyZ2V0O1xuICAgICAgcmVnaXN0ZXJkLmNsYXNzZXMucHVzaCh0YXJnZXQpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyZC5jb25maWdzW3JlZ2lzdGVyZC5jbGFzc2VzLmZpbmRJbmRleChjID0+IGMgPT09IHRhcmdldCldID0gY29uZmlnO1xuICAgIGlmIChjYWxsZXJUYXJnZXQpIHtcbiAgICAgIGNvbnN0IGNhbGxlclRhcmdldENvbmZpZyA9IHJlZ2lzdGVyZC5jb25maWdzW3JlZ2lzdGVyZC5jbGFzc2VzLmZpbmRJbmRleChjID0+IGMgPT09IGNhbGxlclRhcmdldCldO1xuICAgICAgaWYgKCFjb25maWcudkNoaWxkcmVuLmluY2x1ZGVzKGNhbGxlclRhcmdldENvbmZpZykpIHtcbiAgICAgICAgY29uZmlnLnZDaGlsZHJlbi5wdXNoKGNhbGxlclRhcmdldENvbmZpZyk7XG4gICAgICB9XG4gICAgICBjYWxsZXJUYXJnZXRDb25maWcudlBhcmVudCA9IGNvbmZpZztcbiAgICB9XG5cbiAgICBjb25maWdzLnB1c2goY29uZmlnKTtcblxuICAgIHJldHVybiBpc1ZhbGlkUGFyZW50ID8gZ2V0Q2xhc3NDb25maWcocGFyZW50Q2xhc3MsIGNvbmZpZ3MsIHRhcmdldCkgOiBjb25maWdzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBMRUFTRSBQUk9WSURFIE5BTUUgQVMgVFlQRUQgU1RSSU5HLCBOT1QgVkFSSUFCTEVcbiAgICogRGVjb3JhdG9yIHJlcXVyZWQgZm9yIHByb2R1Y3Rpb24gbW9kZVxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIGNsYXNzXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gQ0xBU1NOQU1FKGNsYXNzTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBNb2RlbHMuQ0xBU1NOQU1FT3B0aW9ucykge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBGdW5jdGlvbikge1xuXG4gICAgICByZXR1cm4gc2V0Q2xhc3NOYW1lKHRhcmdldCwgY2xhc3NOYW1lLCBvcHRpb25zKTtcbiAgICB9IGFzIGFueTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc05hbWUodGFyZ2V0OiBGdW5jdGlvbiwgcHJvZHVjdGlvbiA9IGZhbHNlKSB7XG4gICAgaWYgKF8uaXNOaWwodGFyZ2V0KSkge1xuXG5cbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHRhcmdldCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRhcmdldCk7XG4gICAgICBIZWxwZXJzLndhcm4oYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnNdW2dldENsYXNzTmFtZV0gdGFyZ2V0IGlzIHN0cmluZzogJyR7dGFyZ2V0fScsIHByb2R1Y2l0b246ICR7cHJvZHVjdGlvbn1gKVxuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG4gICAgaWYgKCFfLmlzRnVuY3Rpb24odGFyZ2V0KSkge1xuICAgICAgY29uc29sZS5sb2codGFyZ2V0KTtcbiAgICAgIEhlbHBlcnMud2FybihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bZ2V0Q2xhc3NOYW1lXSB0YXJnZXQgaXMgbm90IGEgY2xhc3NgKVxuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWdzID0gZ2V0Q2xhc3NDb25maWcodGFyZ2V0KTtcbiAgICBjb25zdCBjb25maWcgPSBfLmZpcnN0KGNvbmZpZ3MpO1xuXG4gICAgY29uc3QgY2xhc3NOYW1lSW5Ccm93c2VyID0gY29uZmlnPy5jbGFzc05hbWVJbkJyb3dzZXI7XG5cbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIgJiYgXy5pc1N0cmluZyhjbGFzc05hbWVJbkJyb3dzZXIpKSB7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lSW5Ccm93c2VyO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNvbmZpZz8uY2xhc3NOYW1lO1xuXG4gICAgaWYgKGNsYXNzTmFtZSkge1xuICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBpZiAocHJvZHVjdGlvbikge1xuICAgICAgY29uc29sZS5sb2coJ2NsYXNzIHdpdGhvdXQgQENMQVNTLk5BTUUgZGVvY3JhdG9yJywgdGFyZ2V0IGFzIGFueSlcbiAgICAgIHRocm93IG5ldyBFcnJvcihFUlJPUl9NU0dfQ0xBU1NfV0lUSE9VVF9ERUNPUkFUT1IpO1xuICAgIH0gZWxzZSB7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQubmFtZTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdEluZGV4UHJvcGVydHlWYWx1ZShvYmo6IGFueSkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFRjaEhlbHBlcnMuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy51bmlxdWVLZXk7XG4gICAgfVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NGYW1pbHlCeUNsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZykge1xuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5jbGFzc0ZhbWlseTtcbiAgICB9XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0ZhbWlseShvYmo6IGFueSkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFRjaEhlbHBlcnMuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5jbGFzc0ZhbWlseTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0SW5kZXhWYWx1ZShvYmo6IGFueSkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFRjaEhlbHBlcnMuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjICYmIF8uaXNTdHJpbmcoYy51bmlxdWVLZXkpKSB7XG4gICAgICByZXR1cm4gb2JqW2MudW5pcXVlS2V5XTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NCeShjbGFzc05hbWU6IHN0cmluZyB8IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xuICAgIGxldCByZXM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2xhc3NOYW1lKSkge1xuICAgICAgaWYgKGNsYXNzTmFtZS5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgdGhyb3cgYE1hcHBpbmcgZXJyb3IuLi4gcGxlYXNlIHVzZSBwcm9wZXIgY2xhc3MgbmFtZXM6XG4gIHtcbiAgICBwcm9wZXJ0eU9iamVjdDogJ015Q2xhc3NOYW1lJyxcbiAgICBwcm9wZXJ0eVdpdGhBcnJheTogWydNeUNsYXNzTmFtZSddXG4gIH1cblxuICAgICAgICBgXG4gICAgICB9XG4gICAgICBjbGFzc05hbWUgPSBjbGFzc05hbWVbMF1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbGFzc05hbWUgPT09ICdmdW5jdGlvbicpIHsgLy8gVE9ETyBRVUlDS19GSVhcbiAgICAgIHJlcyA9IGNsYXNzTmFtZTtcbiAgICB9XG4gICAgaWYgKGNsYXNzTmFtZSA9PT0gJ0RhdGUnKSB7XG4gICAgICByZXMgPSBEYXRlO1xuICAgIH1cblxuICAgIGlmIChjbGFzc05hbWUgPT09ICdGb3JtRGF0YScpIHtcbiAgICAgIHJlcyA9IEZvcm1EYXRhO1xuICAgIH1cblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXMgPSBjLnRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMgbGliL2NsYXNzbmFtZS50cyJdfQ==
|
|
@@ -1,66 +1,66 @@
|
|
|
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
|
-
;
|
|
65
|
-
({}); // @--end-of-file-for-module=typescript-class-helpers lib/describe-class.ts
|
|
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
|
+
;
|
|
65
|
+
({}); // @--end-of-file-for-module=typescript-class-helpers lib/describe-class.ts
|
|
66
66
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvcHJvamVjdHMvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3NyYy9saWIvZGVzY3JpYmUtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJbkM7OztJQUdJO0FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNuRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBZ0IsRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN6RSxhQUFhO0lBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxhQUFhO1lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQy9FO0tBQ0Y7SUFDRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFdEQsQ0FBQztBQUVEOzs7S0FHSztBQUNMLE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxNQUFnQjtJQUNoRSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7SUFDWixJQUFJLE1BQU0sRUFBRTtRQUNWLGFBQWE7UUFDYixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNaLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsYUFBYTtnQkFDYixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELGFBQWE7UUFDYixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2IsYUFBYTtvQkFDYixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFBO1NBQ0g7YUFBTSxJQUFJLE9BQU8sRUFBRTtZQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLGFBQWE7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztTQUNOO0tBQ0Y7SUFFRCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyRUFBMkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IFNZTUJPTCB9IGZyb20gJy4vc3ltYm9scyc7XG5cblxuXG4vKipcbiAgKiBAREVQUkVDQVRFRFxuICAqIERlc2NyaWJlIGZpZWxkcyBhc3NpZ25lZCBpbiBjbGFzc1xuICAqL1xuY29uc3QgRlJlZ0V4ID0gbmV3IFJlZ0V4cCgvKD86dGhpc1xcLikoLis/KD89ICkpL2cpO1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRnJvbUNsYXNzU3RyaW5naWZ5KHRhcmdldDogRnVuY3Rpb24sIHBhcmVudCA9IGZhbHNlKTogc3RyaW5nW10ge1xuICAvLyBAdHMtaWdub3JlXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKHBhcmVudCkge1xuICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQucHJvdG90eXBlKTtcbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoZGVzY3JpYmVGcm9tQ2xhc3NTdHJpbmdpZnkocHJvdG8uY29uc3RydWN0b3IsIHBhcmVudCkpO1xuICAgIH1cbiAgfVxuICByZXN1bHQgPSByZXN1bHQuY29uY2F0KHRhcmdldC50b1N0cmluZygpLm1hdGNoKEZSZWdFeCkgfHwgW10pO1xuICByZXR1cm4gcmVzdWx0Lm1hcChwcm9wID0+IHByb3AucmVwbGFjZSgndGhpcy4nLCAnJykpXG5cbn1cblxuLyoqXG4gICAqIERlc2NyaWJlIGZpZWxkcyBhc3NpZ25lIHRocm91Z2ggQERlZmF1bHRNb2RlbFdpdGhNYXBwaW5nIGRlY29yYXRvclxuICAgKiB3aXRob3V0IGZ1bmN0aW9uc1xuICAgKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUJ5RGVmYXVsdE1vZGVsc0FuZE1hcHBpbmcodGFyZ2V0OiBGdW5jdGlvbik6IHN0cmluZ1tdIHtcbiAgbGV0IHJlcyA9IHt9XG4gIGlmICh0YXJnZXQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHRhcmdldFtTWU1CT0wuREVGQVVMVF9NT0RFTF0pIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIE9iamVjdC5rZXlzKHRhcmdldFtTWU1CT0wuREVGQVVMVF9NT0RFTF0pXG4gICAgICAgIC5maWx0ZXIoa2V5ID0+IHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgcmV0dXJuICFfLmlzRnVuY3Rpb24odGFyZ2V0W1NZTUJPTC5ERUZBVUxUX01PREVMXVtrZXldKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgcmV0dXJuIHJlc1trZXldID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBsZXQgbWFwcGluZyA9IHRhcmdldFtTWU1CT0wuTU9ERUxTX01BUFBJTkddO1xuICAgIGlmIChfLmlzQXJyYXkobWFwcGluZykpIHtcbiAgICAgIG1hcHBpbmcuZm9yRWFjaChtID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMobSlcbiAgICAgICAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmVzW2tleV0gPSBudWxsO1xuICAgICAgICAgIH0pO1xuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKG1hcHBpbmcpIHtcblxuICAgICAgT2JqZWN0LmtleXMobWFwcGluZylcbiAgICAgICAgLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgcmVzW2tleV0gPSBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBsZXQgcHJvcE5hbWVzID0gT2JqZWN0LmtleXMocmVzKS5maWx0ZXIoZiA9PiAhIWYpO1xuICBwcm9wTmFtZXMgPSAoIXByb3BOYW1lcy5pbmNsdWRlcygnaWQnKSA/IFsnaWQnXSA6IFtdKS5jb25jYXQocHJvcE5hbWVzKTtcbiAgcmV0dXJuIHByb3BOYW1lcztcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXR5cGVzY3JpcHQtY2xhc3MtaGVscGVycyBsaWIvZGVzY3JpYmUtY2xhc3MudHMiXX0=
|
|
@@ -8,7 +8,7 @@ import { CLASS } from 'typescript-class-helpers/websql';
|
|
|
8
8
|
class ExampleClass {
|
|
9
9
|
...
|
|
10
10
|
}
|
|
11
|
-
`;
|
|
12
|
-
;
|
|
13
|
-
({}); // @--end-of-file-for-module=typescript-class-helpers lib/errors-messages.ts
|
|
11
|
+
`;
|
|
12
|
+
;
|
|
13
|
+
({}); // @--end-of-file-for-module=typescript-class-helpers lib/errors-messages.ts
|
|
14
14
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLW1lc3NhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3Byb2plY3RzL3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9zcmMvbGliL2Vycm9ycy1tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRzs7Ozs7Ozs7OztDQVVoRCxDQUFDO0FBRUQsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0RUFBNEUiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBFUlJPUl9NU0dfQ0xBU1NfV0lUSE9VVF9ERUNPUkFUT1IgPSBgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bZ2V0Q2xhc3NOYW1lKC4uLildKFBST0RVQ1RJT04gTU9ERSBFUlJPUilcblBsZWFzZSB1c2UgZGVjb2FydG9yIEBDTEFTU05BTUUgZm9yIGVhY2ggZW50aXR5IG9yIGNvbnRyb2xsZXJcblRoaXMgaXMgcHJldmVudGluZyBjbGFzcyBuYW1lIHByb2JsZW0gaW4gbWluaWZpZWQgY29kZS5cblxuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcblxuQENMQVNTLk5BTUUoJ0V4YW1wbGVDbGFzcycpXG5jbGFzcyBFeGFtcGxlQ2xhc3Mge1xuICAuLi5cbn1cbmA7XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMgbGliL2Vycm9ycy1tZXNzYWdlcy50cyJdfQ==
|