typescript-class-helpers 13.2.12 → 16.0.14

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 (87) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/{esm2020 → esm2022}/lib/classname.mjs +150 -150
  3. package/browser/{esm2020 → esm2022}/lib/describe-class.mjs +71 -71
  4. package/{client/esm2020 → browser/esm2022}/lib/errors-messages.mjs +3 -3
  5. package/{client/esm2020 → browser/esm2022}/lib/index.mjs +134 -134
  6. package/browser/{esm2020 → esm2022}/lib/models.mjs +26 -26
  7. package/browser/{esm2020 → esm2022}/lib/registerd-db.mjs +5 -5
  8. package/{client/esm2020 → browser/esm2022}/lib/set-class-name.mjs +89 -89
  9. package/{client/esm2020 → browser/esm2022}/lib/storage.mjs +23 -23
  10. package/browser/{esm2020 → esm2022}/lib/symbols.mjs +7 -7
  11. package/browser/{esm2020 → esm2022}/public-api.mjs +1 -1
  12. package/{client/esm2020 → browser/esm2022}/typescript-class-helpers.mjs +4 -4
  13. package/browser/{fesm2020 → fesm2022}/typescript-class-helpers.mjs +476 -476
  14. package/browser/{typescript-class-helpers.d.ts → index.d.ts} +4 -4
  15. package/browser/lib/classname.d.ts +15 -15
  16. package/browser/lib/describe-class.d.ts +5 -5
  17. package/browser/lib/index.d.ts +32 -32
  18. package/browser/lib/models.d.ts +66 -66
  19. package/browser/lib/registerd-db.d.ts +4 -4
  20. package/browser/lib/set-class-name.d.ts +1 -1
  21. package/browser/lib/symbols.d.ts +5 -5
  22. package/browser/package.json +6 -12
  23. package/client/{esm2020 → esm2022}/lib/classname.mjs +150 -150
  24. package/client/{esm2020 → esm2022}/lib/describe-class.mjs +71 -71
  25. package/{browser/esm2020 → client/esm2022}/lib/errors-messages.mjs +3 -3
  26. package/{browser/esm2020 → client/esm2022}/lib/index.mjs +134 -134
  27. package/client/{esm2020 → esm2022}/lib/models.mjs +26 -26
  28. package/client/{esm2020 → esm2022}/lib/registerd-db.mjs +5 -5
  29. package/{browser/esm2020 → client/esm2022}/lib/set-class-name.mjs +89 -89
  30. package/{browser/esm2020 → client/esm2022}/lib/storage.mjs +23 -23
  31. package/client/{esm2020 → esm2022}/lib/symbols.mjs +7 -7
  32. package/client/{esm2020 → esm2022}/public-api.mjs +1 -1
  33. package/{browser/esm2020 → client/esm2022}/typescript-class-helpers.mjs +4 -4
  34. package/client/{fesm2020 → fesm2022}/typescript-class-helpers.mjs +476 -476
  35. package/client/{typescript-class-helpers.d.ts → index.d.ts} +4 -4
  36. package/client/lib/classname.d.ts +15 -15
  37. package/client/lib/describe-class.d.ts +5 -5
  38. package/client/lib/index.d.ts +32 -32
  39. package/client/lib/models.d.ts +66 -66
  40. package/client/lib/registerd-db.d.ts +4 -4
  41. package/client/lib/set-class-name.d.ts +1 -1
  42. package/client/lib/symbols.d.ts +5 -5
  43. package/client/package.json +89 -85
  44. package/index.d.ts +1 -1
  45. package/lib/classname.d.ts +16 -16
  46. package/lib/describe-class.d.ts +6 -6
  47. package/lib/errors-messages.d.ts +1 -1
  48. package/lib/index.d.ts +33 -33
  49. package/lib/index.js.map +1 -1
  50. package/lib/models.d.ts +68 -68
  51. package/lib/registerd-db.d.ts +5 -5
  52. package/lib/set-class-name.d.ts +2 -2
  53. package/lib/storage.d.ts +1 -1
  54. package/lib/symbols.d.ts +6 -6
  55. package/package.json +3 -3
  56. package/package.json_tnp.json5 +1 -1
  57. package/tmp-environment.json +94 -90
  58. package/websql/{esm2020 → esm2022}/lib/classname.mjs +150 -150
  59. package/websql/{esm2020 → esm2022}/lib/describe-class.mjs +71 -71
  60. package/websql/{esm2020 → esm2022}/lib/errors-messages.mjs +3 -3
  61. package/websql/{esm2020 → esm2022}/lib/index.mjs +134 -134
  62. package/websql/{esm2020 → esm2022}/lib/models.mjs +24 -24
  63. package/websql/{esm2020 → esm2022}/lib/registerd-db.mjs +5 -5
  64. package/websql/{esm2020 → esm2022}/lib/set-class-name.mjs +89 -89
  65. package/websql/{esm2020 → esm2022}/lib/storage.mjs +23 -23
  66. package/websql/{esm2020 → esm2022}/lib/symbols.mjs +7 -7
  67. package/websql/{esm2020 → esm2022}/public-api.mjs +1 -1
  68. package/websql/{esm2020 → esm2022}/typescript-class-helpers.mjs +4 -4
  69. package/websql/{fesm2020 → fesm2022}/typescript-class-helpers.mjs +474 -474
  70. package/websql/{typescript-class-helpers.d.ts → index.d.ts} +4 -4
  71. package/websql/lib/classname.d.ts +15 -15
  72. package/websql/lib/describe-class.d.ts +5 -5
  73. package/websql/lib/index.d.ts +32 -32
  74. package/websql/lib/models.d.ts +67 -67
  75. package/websql/lib/registerd-db.d.ts +4 -4
  76. package/websql/lib/set-class-name.d.ts +1 -1
  77. package/websql/lib/symbols.d.ts +5 -5
  78. package/websql/package.json +6 -12
  79. package/browser/fesm2015/typescript-class-helpers.mjs +0 -517
  80. package/browser/fesm2015/typescript-class-helpers.mjs.map +0 -1
  81. package/client/fesm2015/typescript-class-helpers.mjs +0 -517
  82. package/client/fesm2015/typescript-class-helpers.mjs.map +0 -1
  83. package/websql/fesm2015/typescript-class-helpers.mjs +0 -515
  84. package/websql/fesm2015/typescript-class-helpers.mjs.map +0 -1
  85. /package/browser/{fesm2020 → fesm2022}/typescript-class-helpers.mjs.map +0 -0
  86. /package/client/{fesm2020 → fesm2022}/typescript-class-helpers.mjs.map +0 -0
  87. /package/websql/{fesm2020 → fesm2022}/typescript-class-helpers.mjs.map +0 -0
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NuYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3Byb2plY3RzL3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9zcmMvbGliL2NsYXNzbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxLQUFLO0FBQ0wsS0FBSztBQUdMLFNBQVMsVUFBVTtJQUNqQixNQUFNLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUN2QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFRLENBQUM7QUFDbEMsQ0FBQztBQUNELE1BQU0sS0FBVyxTQUFTLENBOEt6QjtBQTlLRCxXQUFpQixXQUFTO0lBRXhCLFNBQWdCLGNBQWMsQ0FBQyxNQUFnQixFQUFFLFVBQWdDLEVBQUUsRUFBRSxZQUF1QjtRQUMxRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixNQUFNLDJFQUEyRSxNQUFNLEVBQUUsQ0FBQTtT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QUMsQ0FBQyxDQUFDLENBQUE7U0FDekI7UUFDRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRSxFQUFFLGlCQUFpQjtZQUN0RCxHQUFHLEdBQUcsU0FBUyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUVELElBQUksU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUM1QixHQUFHLEdBQUcsUUFBUSxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsRUFBRTtZQUNMLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ2hCO1FBRUQsYUFBYTtRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQWpDZSxzQkFBVSxhQWlDekIsQ0FBQTtBQUVILENBQUMsRUE5S2dCLFNBQVMsS0FBVCxTQUFTLFFBOEt6QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0VBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBTWU1CT0wgfSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgVGNoSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSAnLi9zdG9yYWdlJztcbmltcG9ydCB7IHNldENsYXNzTmFtZSB9IGZyb20gJy4vc2V0LWNsYXNzLW5hbWUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJkIH0gZnJvbSAnLi9yZWdpc3RlcmQtZGInO1xuaW1wb3J0IHsgRVJST1JfTVNHX0NMQVNTX1dJVEhPVVRfREVDT1JBVE9SIH0gZnJvbSAnLi9lcnJvcnMtbWVzc2FnZXMnO1xuLyogKi9cbi8qICovXG4gIFxuXG5mdW5jdGlvbiBnZXRDbGFzc2VzKCk6IE1vZGVscy5DbGFzc01ldGFbXSB7XG4gIGNvbnN0IHMgPSBnZXRTdG9yYWdlKCk7XG4gIHJldHVybiBzW1NZTUJPTC5DTEFTU0VTXSBhcyBhbnk7XG59XG5leHBvcnQgbmFtZXNwYWNlIENMQVNTTkFNRSB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzQ29uZmlnKHRhcmdldDogRnVuY3Rpb24sIGNvbmZpZ3M6IE1vZGVscy5DbGFzc0NvbmZpZ1tdID0gW10sIGNhbGxlclRhcmdldD86IEZ1bmN0aW9uKTogTW9kZWxzLkNsYXNzQ29uZmlnW10ge1xuICAgIGlmICghXy5pc0Z1bmN0aW9uKHRhcmdldCkpIHtcbiAgICAgIHRocm93IGBbdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJdW2dldENsYXNzQ29uZmlnXSBDYW5ub3QgZ2V0IGNsYXNzIGNvbmZpZyBmcm9tOiAke3RhcmdldH1gXG4gICAgfVxuXG4gICAgbGV0IGNvbmZpZzogTW9kZWxzLkNsYXNzQ29uZmlnO1xuICAgIGNvbnN0IHBhcmVudENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCk7XG4gICAgY29uc3QgaXNWYWxpZFBhcmVudCA9IChfLmlzRnVuY3Rpb24ocGFyZW50Q2xhc3MpICYmIHBhcmVudENsYXNzLm5hbWUgIT09ICcnKTtcblxuICAgIGlmIChyZWdpc3RlcmQuY2xhc3Nlcy5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgICBjb25maWcgPSByZWdpc3RlcmQuY29uZmlnc1tyZWdpc3RlcmQuY2xhc3Nlcy5maW5kSW5kZXgoYyA9PiBjID09PSB0YXJnZXQpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gbmV3IE1vZGVscy5DbGFzc0NvbmZpZygpO1xuICAgICAgY29uZmlnLmNsYXNzUmVmZXJlbmNlID0gdGFyZ2V0O1xuICAgICAgcmVnaXN0ZXJkLmNsYXNzZXMucHVzaCh0YXJnZXQpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyZC5jb25maWdzW3JlZ2lzdGVyZC5jbGFzc2VzLmZpbmRJbmRleChjID0+IGMgPT09IHRhcmdldCldID0gY29uZmlnO1xuICAgIGlmIChjYWxsZXJUYXJnZXQpIHtcbiAgICAgIGNvbnN0IGNhbGxlclRhcmdldENvbmZpZyA9IHJlZ2lzdGVyZC5jb25maWdzW3JlZ2lzdGVyZC5jbGFzc2VzLmZpbmRJbmRleChjID0+IGMgPT09IGNhbGxlclRhcmdldCldO1xuICAgICAgaWYgKCFjb25maWcudkNoaWxkcmVuLmluY2x1ZGVzKGNhbGxlclRhcmdldENvbmZpZykpIHtcbiAgICAgICAgY29uZmlnLnZDaGlsZHJlbi5wdXNoKGNhbGxlclRhcmdldENvbmZpZyk7XG4gICAgICB9XG4gICAgICBjYWxsZXJUYXJnZXRDb25maWcudlBhcmVudCA9IGNvbmZpZztcbiAgICB9XG5cbiAgICBjb25maWdzLnB1c2goY29uZmlnKTtcblxuICAgIHJldHVybiBpc1ZhbGlkUGFyZW50ID8gZ2V0Q2xhc3NDb25maWcocGFyZW50Q2xhc3MsIGNvbmZpZ3MsIHRhcmdldCkgOiBjb25maWdzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBMRUFTRSBQUk9WSURFIE5BTUUgQVMgVFlQRUQgU1RSSU5HLCBOT1QgVkFSSUFCTEVcbiAgICogRGVjb3JhdG9yIHJlcXVyZWQgZm9yIHByb2R1Y3Rpb24gbW9kZVxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIGNsYXNzXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gQ0xBU1NOQU1FKGNsYXNzTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBNb2RlbHMuQ0xBU1NOQU1FT3B0aW9ucykge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBGdW5jdGlvbikge1xuXG4gICAgICByZXR1cm4gc2V0Q2xhc3NOYW1lKHRhcmdldCwgY2xhc3NOYW1lLCBvcHRpb25zKTtcbiAgICB9IGFzIGFueTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc05hbWUodGFyZ2V0OiBGdW5jdGlvbiwgcHJvZHVjdGlvbiA9IGZhbHNlKSB7XG4gICAgaWYgKF8uaXNOaWwodGFyZ2V0KSkge1xuXG5cbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHRhcmdldCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRhcmdldCk7XG4gICAgICBIZWxwZXJzLndhcm4oYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnNdW2dldENsYXNzTmFtZV0gdGFyZ2V0IGlzIHN0cmluZzogJyR7dGFyZ2V0fScsIHByb2R1Y2l0b246ICR7cHJvZHVjdGlvbn1gKVxuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG4gICAgaWYgKCFfLmlzRnVuY3Rpb24odGFyZ2V0KSkge1xuICAgICAgY29uc29sZS5sb2codGFyZ2V0KTtcbiAgICAgIEhlbHBlcnMud2FybihgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyc11bZ2V0Q2xhc3NOYW1lXSB0YXJnZXQgaXMgbm90IGEgY2xhc3NgKVxuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWdzID0gZ2V0Q2xhc3NDb25maWcodGFyZ2V0KTtcbiAgICBjb25zdCBjb25maWcgPSBfLmZpcnN0KGNvbmZpZ3MpO1xuXG4gICAgY29uc3QgY2xhc3NOYW1lSW5Ccm93c2VyID0gY29uZmlnPy5jbGFzc05hbWVJbkJyb3dzZXI7XG5cbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIgJiYgXy5pc1N0cmluZyhjbGFzc05hbWVJbkJyb3dzZXIpKSB7XG4gICAgICByZXR1cm4gY2xhc3NOYW1lSW5Ccm93c2VyO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNvbmZpZz8uY2xhc3NOYW1lO1xuXG4gICAgaWYgKGNsYXNzTmFtZSkge1xuICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBpZiAocHJvZHVjdGlvbikge1xuICAgICAgY29uc29sZS5sb2coJ2NsYXNzIHdpdGhvdXQgQENMQVNTLk5BTUUgZGVvY3JhdG9yJywgdGFyZ2V0IGFzIGFueSlcbiAgICAgIHRocm93IG5ldyBFcnJvcihFUlJPUl9NU0dfQ0xBU1NfV0lUSE9VVF9ERUNPUkFUT1IpO1xuICAgIH0gZWxzZSB7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQubmFtZTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdEluZGV4UHJvcGVydHlWYWx1ZShvYmo6IGFueSkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFRjaEhlbHBlcnMuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy51bmlxdWVLZXk7XG4gICAgfVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NGYW1pbHlCeUNsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZykge1xuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5jbGFzc0ZhbWlseTtcbiAgICB9XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0ZhbWlseShvYmo6IGFueSkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFRjaEhlbHBlcnMuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5jbGFzc0ZhbWlseTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0SW5kZXhWYWx1ZShvYmo6IGFueSkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IFRjaEhlbHBlcnMuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjICYmIF8uaXNTdHJpbmcoYy51bmlxdWVLZXkpKSB7XG4gICAgICByZXR1cm4gb2JqW2MudW5pcXVlS2V5XTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NCeShjbGFzc05hbWU6IHN0cmluZyB8IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xuICAgIGxldCByZXM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2xhc3NOYW1lKSkge1xuICAgICAgaWYgKGNsYXNzTmFtZS5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgdGhyb3cgYE1hcHBpbmcgZXJyb3IuLi4gcGxlYXNlIHVzZSBwcm9wZXIgY2xhc3MgbmFtZXM6XG4gIHtcbiAgICBwcm9wZXJ0eU9iamVjdDogJ015Q2xhc3NOYW1lJyxcbiAgICBwcm9wZXJ0eVdpdGhBcnJheTogWydNeUNsYXNzTmFtZSddXG4gIH1cblxuICAgICAgICBgXG4gICAgICB9XG4gICAgICBjbGFzc05hbWUgPSBjbGFzc05hbWVbMF1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbGFzc05hbWUgPT09ICdmdW5jdGlvbicpIHsgLy8gVE9ETyBRVUlDS19GSVhcbiAgICAgIHJlcyA9IGNsYXNzTmFtZTtcbiAgICB9XG4gICAgaWYgKGNsYXNzTmFtZSA9PT0gJ0RhdGUnKSB7XG4gICAgICByZXMgPSBEYXRlO1xuICAgIH1cblxuICAgIGlmIChjbGFzc05hbWUgPT09ICdGb3JtRGF0YScpIHtcbiAgICAgIHJlcyA9IEZvcm1EYXRhO1xuICAgIH1cblxuICAgIGxldCBjID0gZ2V0Q2xhc3NlcygpLmZpbmQoYyA9PiBjLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcblxuICAgIGlmIChjKSB7XG4gICAgICByZXMgPSBjLnRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMgbGliL2NsYXNzbmFtZS50cyJdfQ==
@@ -1,72 +1,72 @@
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
- const classString = target.toString();
19
- const matches = classString.match(FRegEx) || [];
20
- result = result.concat(matches);
21
- return result.map(prop => prop
22
- .replace('this.', '')
23
- .replace('.', '')
24
- .replace(')', '')
25
- .replace('(', ''));
26
- }
27
- /**
28
- * Describe fields assigne through @DefaultModelWithMapping decorator
29
- * without functions
30
- */
31
- export function describeByDefaultModelsAndMapping(target) {
32
- let res = {};
33
- if (target) {
34
- // @ts-ignore
35
- if (target[SYMBOL.DEFAULT_MODEL]) {
36
- // @ts-ignore
37
- Object.keys(target[SYMBOL.DEFAULT_MODEL])
38
- .filter(key => {
39
- // @ts-ignore
40
- return !_.isFunction(target[SYMBOL.DEFAULT_MODEL][key]);
41
- })
42
- .forEach(key => {
43
- // @ts-ignore
44
- return res[key] = null;
45
- });
46
- }
47
- // @ts-ignore
48
- let mapping = target[SYMBOL.MODELS_MAPPING];
49
- if (_.isArray(mapping)) {
50
- mapping.forEach(m => {
51
- Object.keys(m)
52
- .forEach(key => {
53
- // @ts-ignore
54
- res[key] = null;
55
- });
56
- });
57
- }
58
- else if (mapping) {
59
- Object.keys(mapping)
60
- .forEach(key => {
61
- // @ts-ignore
62
- res[key] = null;
63
- });
64
- }
65
- }
66
- let propNames = Object.keys(res).filter(f => !!f);
67
- propNames = (!propNames.includes('id') ? ['id'] : []).concat(propNames);
68
- return propNames;
69
- }
70
- ;
71
- ({}); // @--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
+ const classString = target.toString();
19
+ const matches = classString.match(FRegEx) || [];
20
+ result = result.concat(matches);
21
+ return result.map(prop => prop
22
+ .replace('this.', '')
23
+ .replace('.', '')
24
+ .replace(')', '')
25
+ .replace('(', ''));
26
+ }
27
+ /**
28
+ * Describe fields assigne through @DefaultModelWithMapping decorator
29
+ * without functions
30
+ */
31
+ export function describeByDefaultModelsAndMapping(target) {
32
+ let res = {};
33
+ if (target) {
34
+ // @ts-ignore
35
+ if (target[SYMBOL.DEFAULT_MODEL]) {
36
+ // @ts-ignore
37
+ Object.keys(target[SYMBOL.DEFAULT_MODEL])
38
+ .filter(key => {
39
+ // @ts-ignore
40
+ return !_.isFunction(target[SYMBOL.DEFAULT_MODEL][key]);
41
+ })
42
+ .forEach(key => {
43
+ // @ts-ignore
44
+ return res[key] = null;
45
+ });
46
+ }
47
+ // @ts-ignore
48
+ let mapping = target[SYMBOL.MODELS_MAPPING];
49
+ if (_.isArray(mapping)) {
50
+ mapping.forEach(m => {
51
+ Object.keys(m)
52
+ .forEach(key => {
53
+ // @ts-ignore
54
+ res[key] = null;
55
+ });
56
+ });
57
+ }
58
+ else if (mapping) {
59
+ Object.keys(mapping)
60
+ .forEach(key => {
61
+ // @ts-ignore
62
+ res[key] = null;
63
+ });
64
+ }
65
+ }
66
+ let propNames = Object.keys(res).filter(f => !!f);
67
+ propNames = (!propNames.includes('id') ? ['id'] : []).concat(propNames);
68
+ return propNames;
69
+ }
70
+ ;
71
+ ({}); // @--end-of-file-for-module=typescript-class-helpers lib/describe-class.ts
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvcHJvamVjdHMvdHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3NyYy9saWIvZGVzY3JpYmUtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJbkM7OztJQUdJO0FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNuRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBZ0IsRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN6RSxhQUFhO0lBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxhQUFhO1lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQy9FO0tBQ0Y7SUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7SUFLL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSTtTQUMzQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUNwQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztTQUNoQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztTQUNoQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUNsQixDQUFBO0FBRUgsQ0FBQztBQUVEOzs7S0FHSztBQUNMLE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxNQUFnQjtJQUNoRSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7SUFDWixJQUFJLE1BQU0sRUFBRTtRQUNWLGFBQWE7UUFDYixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNaLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsYUFBYTtnQkFDYixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELGFBQWE7UUFDYixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2IsYUFBYTtvQkFDYixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFBO1NBQ0g7YUFBTSxJQUFJLE9BQU8sRUFBRTtZQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLGFBQWE7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztTQUNOO0tBQ0Y7SUFFRCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyRUFBMkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IFNZTUJPTCB9IGZyb20gJy4vc3ltYm9scyc7XG5cblxuXG4vKipcbiAgKiBAREVQUkVDQVRFRFxuICAqIERlc2NyaWJlIGZpZWxkcyBhc3NpZ25lZCBpbiBjbGFzc1xuICAqL1xuY29uc3QgRlJlZ0V4ID0gbmV3IFJlZ0V4cCgvKD86dGhpc1xcLikoLis/KD89ICkpL2cpO1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRnJvbUNsYXNzU3RyaW5naWZ5KHRhcmdldDogRnVuY3Rpb24sIHBhcmVudCA9IGZhbHNlKTogc3RyaW5nW10ge1xuICAvLyBAdHMtaWdub3JlXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKHBhcmVudCkge1xuICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQucHJvdG90eXBlKTtcbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoZGVzY3JpYmVGcm9tQ2xhc3NTdHJpbmdpZnkocHJvdG8uY29uc3RydWN0b3IsIHBhcmVudCkpO1xuICAgIH1cbiAgfVxuICBjb25zdCBjbGFzc1N0cmluZyA9IHRhcmdldC50b1N0cmluZygpO1xuICBjb25zdCBtYXRjaGVzID0gY2xhc3NTdHJpbmcubWF0Y2goRlJlZ0V4KSB8fCBbXVxuXG5cblxuXG4gIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQobWF0Y2hlcyk7XG4gIHJldHVybiByZXN1bHQubWFwKHByb3AgPT4gcHJvcFxuICAgIC5yZXBsYWNlKCd0aGlzLicsICcnKVxuICAgIC5yZXBsYWNlKCcuJywgJycpXG4gICAgLnJlcGxhY2UoJyknLCAnJylcbiAgICAucmVwbGFjZSgnKCcsICcnKVxuICApXG5cbn1cblxuLyoqXG4gICAqIERlc2NyaWJlIGZpZWxkcyBhc3NpZ25lIHRocm91Z2ggQERlZmF1bHRNb2RlbFdpdGhNYXBwaW5nIGRlY29yYXRvclxuICAgKiB3aXRob3V0IGZ1bmN0aW9uc1xuICAgKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUJ5RGVmYXVsdE1vZGVsc0FuZE1hcHBpbmcodGFyZ2V0OiBGdW5jdGlvbik6IHN0cmluZ1tdIHtcbiAgbGV0IHJlcyA9IHt9XG4gIGlmICh0YXJnZXQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHRhcmdldFtTWU1CT0wuREVGQVVMVF9NT0RFTF0pIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIE9iamVjdC5rZXlzKHRhcmdldFtTWU1CT0wuREVGQVVMVF9NT0RFTF0pXG4gICAgICAgIC5maWx0ZXIoa2V5ID0+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==