@nu-art/ts-common 0.300.8 → 0.400.0

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 (211) hide show
  1. package/consts/consts.js +2 -4
  2. package/consts/consts.js.map +1 -0
  3. package/core/application.d.ts +1 -1
  4. package/core/application.js +3 -6
  5. package/core/application.js.map +1 -0
  6. package/core/debug-flags.d.ts +1 -1
  7. package/core/debug-flags.js +15 -17
  8. package/core/debug-flags.js.map +1 -0
  9. package/core/dispatcher.d.ts +2 -2
  10. package/core/dispatcher.js +7 -8
  11. package/core/dispatcher.js.map +1 -0
  12. package/core/error-handling.d.ts +5 -5
  13. package/core/error-handling.js +7 -9
  14. package/core/error-handling.js.map +1 -0
  15. package/core/exceptions/exceptions.d.ts +2 -2
  16. package/core/exceptions/exceptions.js +33 -44
  17. package/core/exceptions/exceptions.js.map +1 -0
  18. package/core/exceptions/http-codes.d.ts +8 -2
  19. package/core/exceptions/http-codes.js +6 -6
  20. package/core/exceptions/http-codes.js.map +1 -0
  21. package/core/exceptions/types.js +2 -2
  22. package/core/exceptions/types.js.map +1 -0
  23. package/core/logger/BeLogged.d.ts +2 -2
  24. package/core/logger/BeLogged.js +9 -11
  25. package/core/logger/BeLogged.js.map +1 -0
  26. package/core/logger/LogClient.d.ts +3 -1
  27. package/core/logger/LogClient.js +21 -24
  28. package/core/logger/LogClient.js.map +1 -0
  29. package/core/logger/LogClient_BaseRotate.d.ts +2 -2
  30. package/core/logger/LogClient_BaseRotate.js +12 -12
  31. package/core/logger/LogClient_BaseRotate.js.map +1 -0
  32. package/core/logger/LogClient_Browser.d.ts +2 -2
  33. package/core/logger/LogClient_Browser.js +40 -45
  34. package/core/logger/LogClient_Browser.js.map +1 -0
  35. package/core/logger/LogClient_BrowserGroups.d.ts +2 -2
  36. package/core/logger/LogClient_BrowserGroups.js +65 -67
  37. package/core/logger/LogClient_BrowserGroups.js.map +1 -0
  38. package/core/logger/LogClient_ConsoleProxy.d.ts +23 -0
  39. package/core/logger/LogClient_ConsoleProxy.js +89 -0
  40. package/core/logger/LogClient_ConsoleProxy.js.map +1 -0
  41. package/core/logger/LogClient_File.d.ts +1 -1
  42. package/core/logger/LogClient_File.js +6 -30
  43. package/core/logger/LogClient_File.js.map +1 -0
  44. package/core/logger/LogClient_Function.d.ts +2 -2
  45. package/core/logger/LogClient_Function.js +6 -8
  46. package/core/logger/LogClient_Function.js.map +1 -0
  47. package/core/logger/LogClient_MemBuffer.d.ts +2 -2
  48. package/core/logger/LogClient_MemBuffer.js +19 -21
  49. package/core/logger/LogClient_MemBuffer.js.map +1 -0
  50. package/core/logger/LogClient_Terminal.d.ts +2 -2
  51. package/core/logger/LogClient_Terminal.js +16 -21
  52. package/core/logger/LogClient_Terminal.js.map +1 -0
  53. package/core/logger/Logger.d.ts +2 -2
  54. package/core/logger/Logger.js +37 -39
  55. package/core/logger/Logger.js.map +1 -0
  56. package/core/logger/types.js +4 -6
  57. package/core/logger/types.js.map +1 -0
  58. package/core/logger/utils.d.ts +1 -1
  59. package/core/logger/utils.js +10 -15
  60. package/core/logger/utils.js.map +1 -0
  61. package/core/module-manager.d.ts +8 -6
  62. package/core/module-manager.js +28 -26
  63. package/core/module-manager.js.map +1 -0
  64. package/core/module.d.ts +5 -5
  65. package/core/module.js +28 -28
  66. package/core/module.js.map +1 -0
  67. package/csv.d.ts +2 -2
  68. package/csv.js +3 -18
  69. package/csv.js.map +1 -0
  70. package/db/consts.d.ts +3 -0
  71. package/db/consts.js +17 -7
  72. package/db/consts.js.map +1 -0
  73. package/db/dependencies-test.js +2 -2
  74. package/db/dependencies-test.js.map +1 -0
  75. package/db/types.d.ts +10 -2
  76. package/db/types.js +2 -2
  77. package/db/types.js.map +1 -0
  78. package/esm.d.ts +1 -0
  79. package/esm.js +4 -0
  80. package/esm.js.map +1 -0
  81. package/index.d.ts +50 -49
  82. package/index.js +51 -65
  83. package/index.js.map +1 -0
  84. package/mem-storage/MemStorage.d.ts +3 -1
  85. package/mem-storage/MemStorage.js +90 -72
  86. package/mem-storage/MemStorage.js.map +1 -0
  87. package/mem-storage/index.d.ts +1 -0
  88. package/mem-storage/index.js +2 -0
  89. package/mem-storage/index.js.map +1 -0
  90. package/modules/CSVModule.d.ts +2 -2
  91. package/modules/CSVModule.js +22 -48
  92. package/modules/CSVModule.js.map +1 -0
  93. package/modules/CSVModuleV3.d.ts +2 -2
  94. package/modules/CSVModuleV3.js +60 -86
  95. package/modules/CSVModuleV3.js.map +1 -0
  96. package/modules/CliParamsModule.d.ts +2 -2
  97. package/modules/CliParamsModule.js +23 -28
  98. package/modules/CliParamsModule.js.map +1 -0
  99. package/modules/JSONCSVModule.d.ts +2 -2
  100. package/modules/JSONCSVModule.js +56 -78
  101. package/modules/JSONCSVModule.js.map +1 -0
  102. package/modules/csv-serializer.d.ts +1 -1
  103. package/modules/csv-serializer.js +11 -5
  104. package/modules/csv-serializer.js.map +1 -0
  105. package/package.json +20 -11
  106. package/replacer-v2/ReplacerV2.d.ts +1 -1
  107. package/replacer-v2/ReplacerV2.js +6 -9
  108. package/replacer-v2/ReplacerV2.js.map +1 -0
  109. package/test-index.d.ts +2 -2
  110. package/test-index.js +3 -18
  111. package/test-index.js.map +1 -0
  112. package/testing/consts.d.ts +13 -2
  113. package/testing/consts.js +66 -26
  114. package/testing/consts.js.map +1 -0
  115. package/testing/test-template.test.d.ts +1 -0
  116. package/testing/test-template.test.js +42 -0
  117. package/testing/test-template.test.js.map +1 -0
  118. package/testing/types.d.ts +17 -5
  119. package/testing/types.js +2 -2
  120. package/testing/types.js.map +1 -0
  121. package/testing/workspace-creator.d.ts +10 -0
  122. package/testing/workspace-creator.js +79 -0
  123. package/testing/workspace-creator.js.map +1 -0
  124. package/tools/Replacer.d.ts +2 -2
  125. package/tools/Replacer.js +22 -24
  126. package/tools/Replacer.js.map +1 -0
  127. package/tools/get-log-style.js +4 -6
  128. package/tools/get-log-style.js.map +1 -0
  129. package/utils/FileSystemUtils.d.ts +34 -0
  130. package/utils/FileSystemUtils.js +153 -0
  131. package/utils/FileSystemUtils.js.map +1 -0
  132. package/utils/array-tools.d.ts +4 -4
  133. package/utils/array-tools.js +56 -83
  134. package/utils/array-tools.js.map +1 -0
  135. package/utils/conflict-tools.d.ts +1 -0
  136. package/utils/conflict-tools.js +3 -0
  137. package/utils/conflict-tools.js.map +1 -0
  138. package/utils/crypto-tools.d.ts +44 -0
  139. package/utils/crypto-tools.js +101 -10
  140. package/utils/crypto-tools.js.map +1 -0
  141. package/utils/date-time-tools.d.ts +48 -4
  142. package/utils/date-time-tools.js +166 -64
  143. package/utils/date-time-tools.js.map +1 -0
  144. package/utils/db-object-tools.d.ts +7 -2
  145. package/utils/db-object-tools.js +20 -20
  146. package/utils/db-object-tools.js.map +1 -0
  147. package/utils/exception-tools.js +13 -15
  148. package/utils/exception-tools.js.map +1 -0
  149. package/utils/filter-tools.js +48 -48
  150. package/utils/filter-tools.js.map +1 -0
  151. package/utils/hash-tools.js +14 -22
  152. package/utils/hash-tools.js.map +1 -0
  153. package/utils/index.d.ts +27 -0
  154. package/utils/index.js +28 -0
  155. package/utils/index.js.map +1 -0
  156. package/utils/json-tools.js +5 -8
  157. package/utils/json-tools.js.map +1 -0
  158. package/utils/merge-tools.d.ts +9 -0
  159. package/utils/merge-tools.js +18 -19
  160. package/utils/merge-tools.js.map +1 -0
  161. package/utils/mimetype-tools.d.ts +1 -0
  162. package/utils/mimetype-tools.js +26 -27
  163. package/utils/mimetype-tools.js.map +1 -0
  164. package/utils/number-tools.js +3 -7
  165. package/utils/number-tools.js.map +1 -0
  166. package/utils/object-tools.d.ts +15 -1
  167. package/utils/object-tools.js +110 -33
  168. package/utils/object-tools.js.map +1 -0
  169. package/utils/promise-tools.d.ts +5 -0
  170. package/utils/promise-tools.js +9 -5
  171. package/utils/promise-tools.js.map +1 -0
  172. package/utils/query-params.js +3 -6
  173. package/utils/query-params.js.map +1 -0
  174. package/utils/queue-v2.d.ts +1 -1
  175. package/utils/queue-v2.js +72 -73
  176. package/utils/queue-v2.js.map +1 -0
  177. package/utils/queue.d.ts +1 -1
  178. package/utils/queue.js +15 -17
  179. package/utils/queue.js.map +1 -0
  180. package/utils/random-tools.js +7 -11
  181. package/utils/random-tools.js.map +1 -0
  182. package/utils/storage-capacity-tools.js +7 -9
  183. package/utils/storage-capacity-tools.js.map +1 -0
  184. package/utils/string-tools.js +17 -31
  185. package/utils/string-tools.js.map +1 -0
  186. package/utils/time-proxy.d.ts +8 -0
  187. package/utils/time-proxy.js +10 -0
  188. package/utils/time-proxy.js.map +1 -0
  189. package/utils/tools.d.ts +1 -1
  190. package/utils/tools.js +18 -28
  191. package/utils/tools.js.map +1 -0
  192. package/utils/types.d.ts +9 -3
  193. package/utils/types.js +2 -4
  194. package/utils/types.js.map +1 -0
  195. package/utils/ui-tools.js +6 -12
  196. package/utils/ui-tools.js.map +1 -0
  197. package/utils/url-tools.d.ts +5 -0
  198. package/utils/url-tools.js +20 -0
  199. package/utils/url-tools.js.map +1 -0
  200. package/utils/version-tools.js +17 -12
  201. package/utils/version-tools.js.map +1 -0
  202. package/validator/type-validators.d.ts +14 -10
  203. package/validator/type-validators.js +84 -105
  204. package/validator/type-validators.js.map +1 -0
  205. package/validator/validator-core.d.ts +4 -4
  206. package/validator/validator-core.js +16 -21
  207. package/validator/validator-core.js.map +1 -0
  208. package/validator/validators.d.ts +9 -5
  209. package/validator/validators.js +48 -47
  210. package/validator/validators.js.map +1 -0
  211. package/tsconfig.json +0 -23
@@ -0,0 +1,79 @@
1
+ import { mkdirSync, readFileSync, writeFileSync, rmSync } from 'fs';
2
+ import { dirname, resolve } from 'path';
3
+ import { Logger } from '../core/logger/Logger.js';
4
+ const FILE_HEADER_REGEX = /^\/\/ file: (.+)$/gm;
5
+ const INNER_FILE_HEADER_REGEX = /^(\/\/)*?\/\/\/\/ file:/gm;
6
+ export class TestWorkspaceCreator extends Logger {
7
+ pathToFixtures;
8
+ pathToWorkspace;
9
+ constructor(pathToFixtures, pathToWorkspace) {
10
+ super();
11
+ this.pathToFixtures = pathToFixtures;
12
+ this.pathToWorkspace = pathToWorkspace;
13
+ }
14
+ setupWorkspace(fixtures, relativePath = '', clean = true) {
15
+ if (clean)
16
+ this.clearWorkspace(relativePath);
17
+ for (const fixture of fixtures) {
18
+ this.extractFixture(resolve(this.pathToFixtures, fixture), relativePath);
19
+ }
20
+ }
21
+ clearWorkspace(relativePathInWorkspace = '') {
22
+ const path = resolve(this.pathToWorkspace, relativePathInWorkspace);
23
+ this.logWarning(`Deleting folder: ${path}`);
24
+ rmSync(path, { recursive: true, force: true });
25
+ }
26
+ extractFixture(pathToFixture, relativePathInWorkspace = '') {
27
+ const content = readFileSync(pathToFixture, 'utf8');
28
+ const matches = [...content.matchAll(FILE_HEADER_REGEX)];
29
+ if (matches.length === 0) {
30
+ this.logError('No matching file headers found. Aborting.');
31
+ return;
32
+ }
33
+ for (let i = 0; i < matches.length; i++) {
34
+ const currentMatch = matches[i];
35
+ const startIndex = currentMatch.index;
36
+ const endIndex = i < matches.length - 1 ? matches[i + 1].index : content.length;
37
+ const rawPath = currentMatch[1].trim();
38
+ if (!rawPath.startsWith('./'))
39
+ throw new Error(`Path must be relative and start with './' => received: "${rawPath}"`);
40
+ const relativePath = rawPath.slice(2);
41
+ const targetPath = resolve(this.pathToWorkspace, relativePathInWorkspace, relativePath);
42
+ let fileContent = content
43
+ .slice(startIndex + currentMatch[0].length, endIndex)
44
+ .trimStart();
45
+ fileContent = fileContent.replace(INNER_FILE_HEADER_REGEX, '\$1// file:');
46
+ mkdirSync(dirname(targetPath), { recursive: true });
47
+ writeFileSync(targetPath, fileContent);
48
+ this.logVerbose(`Wrote: ${targetPath}`);
49
+ }
50
+ }
51
+ }
52
+ export function setupWorkspace(pathToWorkspaceFile, outputRootDir, clean = true) {
53
+ const content = readFileSync(pathToWorkspaceFile, 'utf8');
54
+ if (clean)
55
+ rmSync(outputRootDir, { recursive: true, force: true });
56
+ const matches = [...content.matchAll(FILE_HEADER_REGEX)];
57
+ if (matches.length === 0) {
58
+ console.error('No matching file headers found. Aborting.');
59
+ return;
60
+ }
61
+ for (let i = 0; i < matches.length; i++) {
62
+ const currentMatch = matches[i];
63
+ const startIndex = currentMatch.index;
64
+ const endIndex = i < matches.length - 1 ? matches[i + 1].index : content.length;
65
+ const rawPath = currentMatch[1].trim();
66
+ if (!rawPath.startsWith('./'))
67
+ throw new Error(`Path must be relative and start with './' => received: "${rawPath}"`);
68
+ const relativePath = rawPath.slice(2);
69
+ const targetPath = resolve(outputRootDir, relativePath);
70
+ let fileContent = content
71
+ .slice(startIndex + currentMatch[0].length, endIndex)
72
+ .trimStart();
73
+ fileContent = fileContent.replace(INNER_FILE_HEADER_REGEX, '// file:');
74
+ mkdirSync(dirname(targetPath), { recursive: true });
75
+ writeFileSync(targetPath, fileContent);
76
+ console.log(`Wrote: ${targetPath}`);
77
+ }
78
+ }
79
+ //# sourceMappingURL=workspace-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-creator.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["testing/workspace-creator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Logger } from '../core/logger/Logger';
2
- import { KeyValue, TS_Object } from '../utils/types';
1
+ import { Logger } from '../core/logger/Logger.js';
2
+ import { KeyValue, TS_Object } from '../utils/types.js';
3
3
  export declare class Replacer extends Logger {
4
4
  private strictMode;
5
5
  private static RuntimeParam;
package/tools/Replacer.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,16 +15,21 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.Replacer = void 0;
21
- const Logger_1 = require("../core/logger/Logger");
22
- const validator_core_1 = require("../validator/validator-core");
23
- class Replacer extends Logger_1.Logger {
18
+ import { Logger } from '../core/logger/Logger.js';
19
+ import { ValidationException } from '../validator/validator-core.js';
20
+ export class Replacer extends Logger {
21
+ strictMode = true;
22
+ static RuntimeParam = '__runtime';
23
+ static Indicator_RuntimeParam = '__';
24
+ static Regexp_paramGroup = /\$\{(\{?.*?\}?)\}/g;
25
+ static Regexp_param = /\$\{(\{?.*?\}?)\}/;
26
+ static Regexp_forLoopGroupStart = /\{\{foreach (.*?) in (.*?)\}\}/g;
27
+ static Regexp_forLoopParam = /\{\{foreach (.*?) in (.*?)\}\}/;
28
+ input = {};
29
+ aliases = [];
30
+ fallbackReplacer;
24
31
  constructor() {
25
32
  super();
26
- this.strictMode = true;
27
- this.input = {};
28
- this.aliases = [];
29
33
  }
30
34
  setFallbackReplacer(fallbackReplacer) {
31
35
  this.fallbackReplacer = fallbackReplacer;
@@ -52,7 +56,7 @@ class Replacer extends Logger_1.Logger {
52
56
  }
53
57
  replaceParams(content = '', runtime) {
54
58
  const matches = content.match(Replacer.Regexp_paramGroup);
55
- return (matches === null || matches === void 0 ? void 0 : matches.reduce((toRet, match) => {
59
+ return matches?.reduce((toRet, match) => {
56
60
  let param = match;
57
61
  while (Replacer.Regexp_param.test(param))
58
62
  param = param.match(Replacer.Regexp_param)[1];
@@ -60,7 +64,7 @@ class Replacer extends Logger_1.Logger {
60
64
  return toRet;
61
65
  const value = this.resolveParam(param, toRet, runtime);
62
66
  return toRet.replace(match, value);
63
- }, content)) || content;
67
+ }, content) || content;
64
68
  }
65
69
  resolveParam(param, toRet, runtime) {
66
70
  const value = this.resolveParamValue(param, runtime);
@@ -70,7 +74,7 @@ class Replacer extends Logger_1.Logger {
70
74
  }
71
75
  replaceLoops(content = '', runtime) {
72
76
  const matches = content.match(Replacer.Regexp_forLoopGroupStart);
73
- return (matches === null || matches === void 0 ? void 0 : matches.reduce((toRet, match) => {
77
+ return matches?.reduce((toRet, match) => {
74
78
  const varsMatch = match.match(Replacer.Regexp_forLoopParam);
75
79
  const string = varsMatch[0];
76
80
  const iterable = varsMatch[1];
@@ -90,7 +94,7 @@ class Replacer extends Logger_1.Logger {
90
94
  loopArray = this.resolveParamValue(iterableProp, runtime);
91
95
  }
92
96
  catch (e) {
93
- throw new validator_core_1.ValidationException(`Error while looping on variable for parts: `, iterableProp, JSON.stringify(this.input), e);
97
+ throw new ValidationException(`Error while looping on variable for parts: `, iterableProp, JSON.stringify(this.input), e);
94
98
  }
95
99
  if (!Array.isArray(loopArray))
96
100
  this.logWarning(`Loop object is not an array.. found:`, loopArray);
@@ -99,7 +103,7 @@ class Replacer extends Logger_1.Logger {
99
103
  }, '');
100
104
  const s = toRet.replace(fullOriginLoopText, replacement);
101
105
  return s;
102
- }, content)) || content;
106
+ }, content) || content;
103
107
  }
104
108
  resolveParamValue(_param, runtime) {
105
109
  let param = _param;
@@ -117,18 +121,18 @@ class Replacer extends Logger_1.Logger {
117
121
  let value;
118
122
  try {
119
123
  if (runtime)
120
- value = parts.reduce((value, key) => value === null || value === void 0 ? void 0 : value[key], runtime);
124
+ value = parts.reduce((value, key) => value?.[key], runtime);
121
125
  if (value === undefined)
122
126
  value = parts.reduce((value, key) => value[key], this.input);
123
127
  }
124
128
  catch (e) {
125
129
  this.logWarning('input', this.input);
126
- throw new validator_core_1.ValidationException(`Error while resolving runtime variable for parts ${param}`, param, JSON.stringify(this.input), e);
130
+ throw new ValidationException(`Error while resolving runtime variable for parts ${param}`, param, JSON.stringify(this.input), e);
127
131
  }
128
132
  if (value === undefined) {
129
133
  this.logWarning('input', this.input);
130
134
  if (this.strictMode)
131
- throw new validator_core_1.ValidationException(`Cannot resolve runtime variable for parts ${param}`, param, JSON.stringify(this.input));
135
+ throw new ValidationException(`Cannot resolve runtime variable for parts ${param}`, param, JSON.stringify(this.input));
132
136
  }
133
137
  return value;
134
138
  // this.logDebug(`Input:`, this.input);
@@ -136,10 +140,4 @@ class Replacer extends Logger_1.Logger {
136
140
  // this.logDebug(value);
137
141
  }
138
142
  }
139
- exports.Replacer = Replacer;
140
- Replacer.RuntimeParam = '__runtime';
141
- Replacer.Indicator_RuntimeParam = '__';
142
- Replacer.Regexp_paramGroup = /\$\{(\{?.*?\}?)\}/g;
143
- Replacer.Regexp_param = /\$\{(\{?.*?\}?)\}/;
144
- Replacer.Regexp_forLoopGroupStart = /\{\{foreach (.*?) in (.*?)\}\}/g;
145
- Replacer.Regexp_forLoopParam = /\{\{foreach (.*?) in (.*?)\}\}/;
143
+ //# sourceMappingURL=Replacer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Replacer.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["tools/Replacer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAGnE,MAAM,OAAO,QACZ,SAAQ,MAAM;IACN,UAAU,GAAG,IAAI,CAAC;IAClB,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAErC,MAAM,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;IAChD,MAAM,CAAC,YAAY,GAAG,mBAAmB,CAAC;IAE1C,MAAM,CAAC,wBAAwB,GAAG,iCAAiC,CAAC;IACpE,MAAM,CAAC,mBAAmB,GAAG,gCAAgC,CAAC;IAE9D,KAAK,GAAc,EAAE,CAAC;IACtB,OAAO,GAAe,EAAE,CAAC;IACzB,gBAAgB,CAAY;IAEpC;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IAED,mBAAmB,CAAC,gBAA2B;QAC9C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,YAAY;QACX,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,KAAgB,EAAE,UAAsB,EAAE;QAClD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,OAAO,CAAC,QAAQ,GAAG,EAAE,EAAE,OAAmB;QAChD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/C,IAAI,QAAQ,KAAK,OAAO;YACvB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE1C,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,OAAO,GAAG,EAAE,EAAE,OAAmB;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC1D,OAAO,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAE,CAAC,CAAC,CAAC,CAAC;YAEhD,IAAI,KAAK,KAAK,SAAS;gBACtB,OAAO,KAAK,CAAC;YAEd,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC;IACxB,CAAC;IAEO,YAAY,CAAC,KAAa,EAAE,KAAa,EAAE,OAAmB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAElE,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,OAAO,GAAG,EAAE,EAAE,OAAmB;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACjE,OAAO,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAqB,CAAC;YAChF,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,cAAc,QAAQ,IAAI,CAAC;YAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChG,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAEpF,IAAI,CAAC,QAAQ,CAAC,eAAe,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,WAAW,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;YAEvC,IAAI,SAAc,CAAC;YACnB,MAAM,YAAY,GAAG,GAAG,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC;gBACJ,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,mBAAmB,CAAS,6CAA6C,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACnI,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,sCAAsC,EAAE,SAAS,CAAC,CAAC;YAEpE,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAc,EAAE,KAAU,EAAE,EAAE;gBACnE,OAAO,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;YAC3D,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;YACzD,OAAO,CAAC,CAAC;QACV,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC;IACxB,CAAC;IAEO,iBAAiB,CAAC,MAAc,EAAE,OAAmB;QAC5D,IAAI,KAAK,GAAG,MAAM,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;QAC9D,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACrC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;QAC9B,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACpD,KAAK,GAAG,GAAG,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE/F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAU,CAAC;QACf,IAAI,CAAC;YACJ,IAAI,OAAO;gBACV,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YAE7D,IAAI,KAAK,KAAK,SAAS;gBACtB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,IAAI,mBAAmB,CAAC,oDAAoD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClI,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU;gBAClB,MAAM,IAAI,mBAAmB,CAAC,6CAA6C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,OAAO,KAAK,CAAC;QACb,uCAAuC;QACvC,sDAAsD;QACtD,wBAAwB;IACzB,CAAC"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,9 +15,7 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.getLogStyle = getLogStyle;
21
- const object_tools_1 = require("../utils/object-tools");
18
+ import { _keys } from '../utils/object-tools.js';
22
19
  /**
23
20
  * Returns a style string for console.log()
24
21
  * To log with style, make sure to add '%c' at the start of the log.
@@ -26,12 +23,13 @@ const object_tools_1 = require("../utils/object-tools");
26
23
  *
27
24
  * @param styleObj - one or more style objects defining the log style
28
25
  */
29
- function getLogStyle(...styleObj) {
26
+ export function getLogStyle(...styleObj) {
30
27
  let style = '';
31
28
  styleObj.forEach(obj => {
32
- const _arr = (0, object_tools_1._keys)(obj).map(key => `${key}: ${obj[key]}`);
29
+ const _arr = _keys(obj).map(key => `${key}: ${obj[key]}`);
33
30
  style += _arr.join(';');
34
31
  style += ';';
35
32
  });
36
33
  return style;
37
34
  }
35
+ //# sourceMappingURL=get-log-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-log-style.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["tools/get-log-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAS/C;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG,QAAoB;IAClD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,IAAI,GAAG,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { StringMap } from './types.js';
2
+ export declare const DEFAULT_TEMPLATE_PATTERN: RegExp;
3
+ export declare const DEFAULT_OLD_TEMPLATE_PATTERN: RegExp;
4
+ export declare const FileSystemUtils: {
5
+ file: {
6
+ exists: (pathToFile: string) => Promise<boolean>;
7
+ delete: (pathToFile: string, mustExist?: boolean) => Promise<void>;
8
+ write: (pathToFile: string, content: string) => Promise<void>;
9
+ read: (pathToFile: string) => Promise<string>;
10
+ copy: (sourcePath: string, targetPath: string) => Promise<void>;
11
+ template: {
12
+ read: (pathToFile: string, params: StringMap, pattern?: RegExp) => Promise<string>;
13
+ transform: (input: string, params: StringMap, pattern?: RegExp) => string;
14
+ write: (pathToFile: string, content: string, params: StringMap, pattern?: RegExp) => Promise<void>;
15
+ copy: (sourcePath: string, targetPath: string, params: StringMap, pattern?: RegExp) => Promise<void>;
16
+ };
17
+ };
18
+ folder: {
19
+ delete: (pathToFolder: string, mustExist?: boolean) => Promise<void>;
20
+ empty: (pathToFolder: string, mustExist?: boolean) => Promise<void>;
21
+ create: (pathToFolder: string) => Promise<string | void>;
22
+ list: ((pathToFolder: string) => Promise<string[]>) & {
23
+ forEach: ((pathToFolder: string, callback: (path: string) => Promise<any>) => Promise<void>) & {
24
+ file: (pathToFolder: string, callback: (path: string) => Promise<any>) => Promise<void>;
25
+ folder: (pathToFolder: string, callback: (path: string) => Promise<any>) => Promise<void>;
26
+ };
27
+ };
28
+ };
29
+ symlink: {
30
+ create: (targetPath: string, linkPath: string) => Promise<void>;
31
+ delete: (pathToLink: string, mustExist?: boolean) => Promise<void>;
32
+ read: (pathToLink: string) => Promise<string>;
33
+ };
34
+ };
@@ -0,0 +1,153 @@
1
+ import { promises as _fs } from 'fs';
2
+ import { resolve } from 'path';
3
+ import { BadImplementationException } from '../core/exceptions/exceptions.js';
4
+ import { exists } from './tools.js';
5
+ async function isFile(path) {
6
+ return (await _fs.stat(path)).isFile();
7
+ }
8
+ async function isFolder(path) {
9
+ return (await _fs.stat(path)).isDirectory();
10
+ }
11
+ async function assertFile(path) {
12
+ if (!(await isFile(path)))
13
+ throw new BadImplementationException(`Expected file but found directory or non-file: ${path}`);
14
+ }
15
+ async function assertFolder(path) {
16
+ if (!(await isFolder(path)))
17
+ throw new BadImplementationException(`Expected folder but found file or non-directory: ${path}`);
18
+ }
19
+ async function fileExists(path) {
20
+ try {
21
+ await _fs.access(path);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ async function assertExists(path, mustExist, type) {
29
+ const doesExist = await fileExists(path);
30
+ if (!doesExist) {
31
+ if (mustExist)
32
+ throw new BadImplementationException(`${type} does not exist: ${path}`);
33
+ return false;
34
+ }
35
+ return true;
36
+ }
37
+ const escapeRegExp = (string) => string.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
38
+ export const DEFAULT_TEMPLATE_PATTERN = new RegExp(`\{\{([a-zA-Z]\\w{2,}?)\}\}`);
39
+ export const DEFAULT_OLD_TEMPLATE_PATTERN = new RegExp(`(?<!\\\\)\\$([a-zA-Z]\\w{2,})`);
40
+ export const FileSystemUtils = {
41
+ file: {
42
+ exists: async (pathToFile) => {
43
+ return await fileExists(pathToFile);
44
+ },
45
+ delete: async (pathToFile, mustExist = false) => {
46
+ if (!await assertExists(pathToFile, mustExist, 'File'))
47
+ return;
48
+ await assertFile(pathToFile);
49
+ return _fs.rm(pathToFile);
50
+ },
51
+ write: async (pathToFile, content) => {
52
+ await FileSystemUtils.folder.create(resolve(pathToFile, '..'));
53
+ return _fs.writeFile(pathToFile, content, 'utf-8');
54
+ },
55
+ read: async (pathToFile) => {
56
+ await assertFile(pathToFile);
57
+ return _fs.readFile(pathToFile, 'utf-8');
58
+ },
59
+ copy: async (sourcePath, targetPath) => {
60
+ await assertExists(targetPath, false, 'File');
61
+ await assertFile(sourcePath);
62
+ await FileSystemUtils.folder.create(resolve(targetPath, '..'));
63
+ return _fs.copyFile(sourcePath, targetPath);
64
+ },
65
+ template: {
66
+ read: async (pathToFile, params, pattern = DEFAULT_TEMPLATE_PATTERN) => {
67
+ const content = await FileSystemUtils.file.read(pathToFile);
68
+ return FileSystemUtils.file.template.transform(content, params, pattern);
69
+ },
70
+ transform: (input, params, pattern = DEFAULT_TEMPLATE_PATTERN) => {
71
+ let match;
72
+ while (match = input.match(pattern)) {
73
+ const value = params[match[1]];
74
+ if (!exists(value))
75
+ throw new BadImplementationException(`Missing template param: ${match[1]}`);
76
+ const fullMatchRegex = new RegExp(escapeRegExp(match[0]), 'g');
77
+ input = input.replace(fullMatchRegex, value);
78
+ }
79
+ return input;
80
+ },
81
+ write: async (pathToFile, content, params, pattern = DEFAULT_TEMPLATE_PATTERN) => {
82
+ const transformedContent = FileSystemUtils.file.template.transform(content, params, pattern);
83
+ return FileSystemUtils.file.write(pathToFile, transformedContent);
84
+ },
85
+ copy: async (sourcePath, targetPath, params, pattern = DEFAULT_TEMPLATE_PATTERN) => {
86
+ const content = await FileSystemUtils.file.read(sourcePath);
87
+ const transformedContent = FileSystemUtils.file.template.transform(content, params, pattern);
88
+ return FileSystemUtils.file.write(targetPath, transformedContent);
89
+ }
90
+ },
91
+ },
92
+ folder: {
93
+ delete: async (pathToFolder, mustExist = false) => {
94
+ if (!await assertExists(pathToFolder, mustExist, 'Folder'))
95
+ return;
96
+ await assertFolder(pathToFolder);
97
+ return _fs.rm(pathToFolder, { recursive: true, force: true });
98
+ },
99
+ empty: async (pathToFolder, mustExist = true) => {
100
+ if (!await assertExists(pathToFolder, mustExist, 'Folder'))
101
+ return;
102
+ await assertFolder(pathToFolder);
103
+ const entries = await _fs.readdir(pathToFolder);
104
+ await Promise.all(entries.map(entry => _fs.rm(resolve(pathToFolder, entry), { recursive: true, force: true })));
105
+ },
106
+ create: async (pathToFolder) => {
107
+ if (await fileExists(pathToFolder))
108
+ return assertFolder(pathToFolder);
109
+ return _fs.mkdir(pathToFolder, { recursive: true });
110
+ },
111
+ list: Object.assign(async (pathToFolder) => {
112
+ return await _fs.readdir(pathToFolder);
113
+ }, {
114
+ forEach: Object.assign(async (pathToFolder, callback) => {
115
+ const entries = await _fs.readdir(pathToFolder);
116
+ for (const entry of entries)
117
+ await callback(resolve(pathToFolder, entry));
118
+ }, {
119
+ file: async (pathToFolder, callback) => {
120
+ await FileSystemUtils.folder.list.forEach(pathToFolder, async (entry) => {
121
+ if (!await isFile(entry))
122
+ return;
123
+ await callback(entry);
124
+ });
125
+ },
126
+ folder: async (pathToFolder, callback) => {
127
+ await FileSystemUtils.folder.list.forEach(pathToFolder, async (entry) => {
128
+ if (!await isFolder(entry))
129
+ return;
130
+ await callback(entry);
131
+ });
132
+ }
133
+ })
134
+ })
135
+ },
136
+ symlink: {
137
+ create: async (targetPath, linkPath) => {
138
+ return _fs.symlink(targetPath, linkPath);
139
+ },
140
+ delete: async (pathToLink, mustExist = false) => {
141
+ if (!await assertExists(pathToLink, mustExist, 'Symlink'))
142
+ return;
143
+ const stat = await _fs.lstat(pathToLink);
144
+ if (!stat.isSymbolicLink())
145
+ throw new BadImplementationException(`Expected symlink but found something else: ${pathToLink}`);
146
+ return _fs.unlink(pathToLink);
147
+ },
148
+ read: async (pathToLink) => {
149
+ return _fs.readlink(pathToLink);
150
+ }
151
+ }
152
+ };
153
+ //# sourceMappingURL=FileSystemUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemUtils.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/FileSystemUtils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NestedArrayType, TypedMap } from './types';
1
+ import { NestedArrayType, TypedMap } from './types.js';
2
2
  export declare function filterInOut<T>(input: T[], filter: (object: T) => boolean): {
3
3
  filteredIn: T[];
4
4
  filteredOut: T[];
@@ -12,7 +12,7 @@ export declare function removeItemFromArray<T>(array: T[], item: T): T[];
12
12
  * Removes the first item answering the condition given from array in place
13
13
  * tested V
14
14
  */
15
- export declare function removeFromArray<T>(array: T[], item: (_item: T) => boolean): T[];
15
+ export declare function removeFromArray<T>(array: T[], filter: (_item: T) => boolean): T[];
16
16
  /**
17
17
  * Removes item from array in index
18
18
  * tested V
@@ -28,7 +28,7 @@ export declare function toggleElementInArray<T>(array: T[], item: T): T[];
28
28
  /**
29
29
  * Removes all items answering the condition given from array in place
30
30
  */
31
- export declare function filterAsync<T>(arr: T[], filter: (parameter: T) => Promise<boolean>): Promise<T[]>;
31
+ export declare function filterAsync<T>(arr: T[], filter: (parameter: T) => (Promise<boolean> | boolean)): Promise<T[]>;
32
32
  /**
33
33
  * builds array that holds all items that are in array1 and array2
34
34
  * problem with objects
@@ -37,7 +37,7 @@ export declare function findDuplicates<T>(array1: T[], array2: T[]): T[];
37
37
  /**
38
38
  remove all duplicates in array
39
39
  * */
40
- export declare function filterDuplicates<T>(source: T[], mapper?: (item: T) => any): T[];
40
+ export declare function filterDuplicates<T>(source: T[], mapper?: (keyof T) | ((item: T) => any)): T[];
41
41
  /**
42
42
  * filter array of all undefined and null
43
43
  * */