@alterior/common 3.9.1 → 3.13.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.
Files changed (162) hide show
  1. package/dist/base64.d.ts +6 -6
  2. package/dist/base64.js +52 -52
  3. package/dist/base64.js.map +1 -1
  4. package/dist/base64.test.d.ts +1 -1
  5. package/dist/cache.d.ts +84 -84
  6. package/dist/cache.js +148 -148
  7. package/dist/cache.js.map +1 -1
  8. package/dist/cache.test.d.ts +1 -1
  9. package/dist/check-native-async.d.ts +1 -1
  10. package/dist/check-native-async.js +27 -28
  11. package/dist/check-native-async.js.map +1 -1
  12. package/dist/clone.d.ts +23 -23
  13. package/dist/clone.js +59 -60
  14. package/dist/clone.js.map +1 -1
  15. package/dist/clone.test.d.ts +1 -1
  16. package/dist/coalesce.d.ts +5 -5
  17. package/dist/coalesce.js +15 -16
  18. package/dist/coalesce.js.map +1 -1
  19. package/dist/coalesce.test.d.ts +1 -1
  20. package/dist/colors.d.ts +62 -62
  21. package/dist/colors.js +66 -66
  22. package/dist/console.d.ts +31 -31
  23. package/dist/console.d.ts.map +1 -1
  24. package/dist/console.js +65 -86
  25. package/dist/console.js.map +1 -1
  26. package/dist/constructor.d.ts +6 -6
  27. package/dist/constructor.js +2 -2
  28. package/dist/decorators.d.ts +1 -1
  29. package/dist/decorators.d.ts.map +1 -1
  30. package/dist/decorators.js +6 -7
  31. package/dist/decorators.js.map +1 -1
  32. package/dist/environment.d.ts +11 -11
  33. package/dist/environment.d.ts.map +1 -1
  34. package/dist/environment.js +27 -27
  35. package/dist/environment.js.map +1 -1
  36. package/dist/errors.d.ts +66 -66
  37. package/dist/errors.js +133 -133
  38. package/dist/errors.test.d.ts +1 -1
  39. package/dist/get-param-names.d.ts +5 -5
  40. package/dist/get-param-names.js +48 -49
  41. package/dist/get-param-names.js.map +1 -1
  42. package/dist/index.d.ts +20 -20
  43. package/dist/index.js +23 -23
  44. package/dist/is-constructor.d.ts +12 -12
  45. package/dist/is-constructor.js +28 -29
  46. package/dist/is-constructor.js.map +1 -1
  47. package/dist/is-constructor.test.d.ts +1 -1
  48. package/dist/lazy-promise.d.ts +14 -14
  49. package/dist/lazy-promise.js +32 -32
  50. package/dist/lazy-promise.js.map +1 -1
  51. package/dist/lazy-subject.d.ts +22 -22
  52. package/dist/lazy-subject.js +22 -23
  53. package/dist/lazy-subject.js.map +1 -1
  54. package/dist/locks.d.ts +23 -23
  55. package/dist/locks.js +76 -76
  56. package/dist/locks.js.map +1 -1
  57. package/dist/locks.test.d.ts +1 -1
  58. package/dist/locks.test.js.map +1 -1
  59. package/dist/padding.d.ts +22 -22
  60. package/dist/padding.js +42 -43
  61. package/dist/padding.js.map +1 -1
  62. package/dist/presentation.d.ts +49 -49
  63. package/dist/presentation.d.ts.map +1 -1
  64. package/dist/presentation.js +132 -132
  65. package/dist/presentation.js.map +1 -1
  66. package/dist/presentation.test.d.ts +1 -1
  67. package/dist/presentation.test.js.map +1 -1
  68. package/dist/serializer.d.ts +8 -8
  69. package/dist/serializer.js +23 -24
  70. package/dist/serializer.js.map +1 -1
  71. package/dist/test.d.ts +2 -2
  72. package/dist/time.d.ts +9 -9
  73. package/dist/time.js +22 -22
  74. package/dist/time.js.map +1 -1
  75. package/dist/timeout.d.ts +13 -13
  76. package/dist/timeout.js +27 -28
  77. package/dist/timeout.js.map +1 -1
  78. package/dist/zones.d.ts +46 -46
  79. package/dist/zones.js +139 -139
  80. package/dist/zones.js.map +1 -1
  81. package/dist.esm/base64.d.ts +6 -6
  82. package/dist.esm/base64.js +48 -48
  83. package/dist.esm/base64.js.map +1 -1
  84. package/dist.esm/base64.test.d.ts +1 -1
  85. package/dist.esm/cache.d.ts +84 -84
  86. package/dist.esm/cache.js +144 -144
  87. package/dist.esm/cache.js.map +1 -1
  88. package/dist.esm/cache.test.d.ts +1 -1
  89. package/dist.esm/check-native-async.d.ts +1 -1
  90. package/dist.esm/check-native-async.js +24 -24
  91. package/dist.esm/check-native-async.js.map +1 -1
  92. package/dist.esm/clone.d.ts +23 -23
  93. package/dist.esm/clone.js +53 -53
  94. package/dist.esm/clone.js.map +1 -1
  95. package/dist.esm/clone.test.d.ts +1 -1
  96. package/dist.esm/coalesce.d.ts +5 -5
  97. package/dist.esm/coalesce.js +12 -12
  98. package/dist.esm/coalesce.js.map +1 -1
  99. package/dist.esm/coalesce.test.d.ts +1 -1
  100. package/dist.esm/colors.d.ts +62 -62
  101. package/dist.esm/colors.js +63 -63
  102. package/dist.esm/console.d.ts +31 -31
  103. package/dist.esm/console.d.ts.map +1 -1
  104. package/dist.esm/console.js +60 -80
  105. package/dist.esm/console.js.map +1 -1
  106. package/dist.esm/constructor.d.ts +6 -6
  107. package/dist.esm/constructor.js +1 -1
  108. package/dist.esm/decorators.d.ts +1 -1
  109. package/dist.esm/decorators.d.ts.map +1 -1
  110. package/dist.esm/decorators.js +3 -3
  111. package/dist.esm/environment.d.ts +11 -11
  112. package/dist.esm/environment.d.ts.map +1 -1
  113. package/dist.esm/environment.js +24 -24
  114. package/dist.esm/environment.js.map +1 -1
  115. package/dist.esm/errors.d.ts +66 -66
  116. package/dist.esm/errors.js +115 -115
  117. package/dist.esm/errors.test.d.ts +1 -1
  118. package/dist.esm/get-param-names.d.ts +5 -5
  119. package/dist.esm/get-param-names.js +45 -45
  120. package/dist.esm/get-param-names.js.map +1 -1
  121. package/dist.esm/index.d.ts +20 -20
  122. package/dist.esm/index.js +20 -20
  123. package/dist.esm/is-constructor.d.ts +12 -12
  124. package/dist.esm/is-constructor.js +24 -24
  125. package/dist.esm/is-constructor.js.map +1 -1
  126. package/dist.esm/is-constructor.test.d.ts +1 -1
  127. package/dist.esm/lazy-promise.d.ts +14 -14
  128. package/dist.esm/lazy-promise.js +28 -28
  129. package/dist.esm/lazy-promise.js.map +1 -1
  130. package/dist.esm/lazy-subject.d.ts +22 -22
  131. package/dist.esm/lazy-subject.js +19 -19
  132. package/dist.esm/locks.d.ts +23 -23
  133. package/dist.esm/locks.js +71 -71
  134. package/dist.esm/locks.js.map +1 -1
  135. package/dist.esm/locks.test.d.ts +1 -1
  136. package/dist.esm/locks.test.js.map +1 -1
  137. package/dist.esm/padding.d.ts +22 -22
  138. package/dist.esm/padding.js +37 -37
  139. package/dist.esm/presentation.d.ts +49 -49
  140. package/dist.esm/presentation.d.ts.map +1 -1
  141. package/dist.esm/presentation.js +126 -126
  142. package/dist.esm/presentation.js.map +1 -1
  143. package/dist.esm/presentation.test.d.ts +1 -1
  144. package/dist.esm/presentation.test.js.map +1 -1
  145. package/dist.esm/serializer.d.ts +8 -8
  146. package/dist.esm/serializer.js +20 -20
  147. package/dist.esm/test.d.ts +2 -2
  148. package/dist.esm/time.d.ts +9 -9
  149. package/dist.esm/time.js +19 -19
  150. package/dist.esm/time.js.map +1 -1
  151. package/dist.esm/timeout.d.ts +13 -13
  152. package/dist.esm/timeout.js +23 -23
  153. package/dist.esm/tsconfig.esm.tsbuildinfo +1 -0
  154. package/dist.esm/zones.d.ts +46 -46
  155. package/dist.esm/zones.js +135 -135
  156. package/dist.esm/zones.js.map +1 -1
  157. package/package.json +11 -8
  158. package/src/console.ts +2 -22
  159. package/src/environment.ts +2 -0
  160. package/tsconfig.esm.json +0 -3
  161. package/tsconfig.json +0 -2
  162. package/tsconfig.tsbuildinfo +1 -3791
package/dist.esm/clone.js CHANGED
@@ -1,54 +1,54 @@
1
- /**
2
- * Perform a shallow clone of the object, producing one that has the
3
- * same constructor chain and prototype as the passed object.
4
- * @param obj
5
- */
6
- export function shallowClone(obj) {
7
- if (typeof obj !== 'object')
8
- return obj;
9
- let clone = Object.create(obj.constructor.prototype);
10
- Object.assign(clone, obj);
11
- return clone;
12
- }
13
- /**
14
- * Perform a standard clone using serialization (see cloneBySerialization)
15
- * @param obj
16
- */
17
- export function clone(obj) {
18
- return cloneBySerialization(obj);
19
- }
20
- /**
21
- * Deeply clone the given value. If the value is an object, all subobjects
22
- * are deeply cloned as well.
23
- *
24
- * @param o
25
- */
26
- export function deepClone(o) {
27
- return deepCloneWithMemoization(o, new WeakMap());
28
- }
29
- function deepCloneWithMemoization(o, memo) {
30
- if (o === null)
31
- return null;
32
- if (!Array.isArray(o) && typeof o !== 'object')
33
- return o;
34
- if (memo.has(o))
35
- return memo.get(o);
36
- let output, v, key;
37
- output = Array.isArray(o) ? [] : {};
38
- memo.set(o, output);
39
- for (key in o) {
40
- v = o[key];
41
- output[key] = (typeof v === 'object') ? deepCloneWithMemoization(v, memo) : v;
42
- }
43
- return output;
44
- }
45
- /**
46
- * Clone the value by serializing it to JSON and back.
47
- * @param obj
48
- */
49
- export function cloneBySerialization(obj) {
50
- if (obj === undefined || obj === null || typeof obj !== 'object')
51
- return obj;
52
- return JSON.parse(JSON.stringify(obj));
53
- }
1
+ /**
2
+ * Perform a shallow clone of the object, producing one that has the
3
+ * same constructor chain and prototype as the passed object.
4
+ * @param obj
5
+ */
6
+ export function shallowClone(obj) {
7
+ if (typeof obj !== 'object')
8
+ return obj;
9
+ let clone = Object.create(obj.constructor.prototype);
10
+ Object.assign(clone, obj);
11
+ return clone;
12
+ }
13
+ /**
14
+ * Perform a standard clone using serialization (see cloneBySerialization)
15
+ * @param obj
16
+ */
17
+ export function clone(obj) {
18
+ return cloneBySerialization(obj);
19
+ }
20
+ /**
21
+ * Deeply clone the given value. If the value is an object, all subobjects
22
+ * are deeply cloned as well.
23
+ *
24
+ * @param o
25
+ */
26
+ export function deepClone(o) {
27
+ return deepCloneWithMemoization(o, new WeakMap());
28
+ }
29
+ function deepCloneWithMemoization(o, memo) {
30
+ if (o === null)
31
+ return null;
32
+ if (!Array.isArray(o) && typeof o !== 'object')
33
+ return o;
34
+ if (memo.has(o))
35
+ return memo.get(o);
36
+ let output, v, key;
37
+ output = Array.isArray(o) ? [] : {};
38
+ memo.set(o, output);
39
+ for (key in o) {
40
+ v = o[key];
41
+ output[key] = (typeof v === 'object') ? deepCloneWithMemoization(v, memo) : v;
42
+ }
43
+ return output;
44
+ }
45
+ /**
46
+ * Clone the value by serializing it to JSON and back.
47
+ * @param obj
48
+ */
49
+ export function cloneBySerialization(obj) {
50
+ if (obj === undefined || obj === null || typeof obj !== 'object')
51
+ return obj;
52
+ return JSON.parse(JSON.stringify(obj));
53
+ }
54
54
  //# sourceMappingURL=clone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC;IAEZ,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAU,GAAO;IACrC,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,CAAC;IAC1B,OAAO,wBAAwB,CAAC,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,wBAAwB,CAAC,CAAC,EAAE,IAAwB;IAC5D,IAAI,CAAC,KAAK,IAAI;QACb,OAAO,IAAI,CAAC;IACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAC7C,OAAO,CAAC,CAAC;IAEV,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC;IACnB,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAEpB,KAAK,GAAG,IAAI,CAAC,EAAE;QACd,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9E;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAG;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAC/D,OAAO,GAAG,CAAC;IAEZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC;IAEZ,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAU,GAAO;IACrC,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,CAAC;IAC1B,OAAO,wBAAwB,CAAC,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,wBAAwB,CAAC,CAAC,EAAE,IAAwB;IAC5D,IAAI,CAAC,KAAK,IAAI;QACb,OAAO,IAAI,CAAC;IACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAC7C,OAAO,CAAC,CAAC;IAEV,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC;IACnB,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAEpB,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;QACf,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAG;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAC/D,OAAO,GAAG,CAAC;IAEZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=clone.test.d.ts.map
@@ -1,6 +1,6 @@
1
- /**
2
- * Return the first value that is not undefined of the passed parameters.
3
- * @param values
4
- */
5
- export declare function coalesce(...values: any[]): any;
1
+ /**
2
+ * Return the first value that is not undefined of the passed parameters.
3
+ * @param values
4
+ */
5
+ export declare function coalesce(...values: any[]): any;
6
6
  //# sourceMappingURL=coalesce.d.ts.map
@@ -1,13 +1,13 @@
1
- /**
2
- * Return the first value that is not undefined of the passed parameters.
3
- * @param values
4
- */
5
- export function coalesce(...values) {
6
- for (let value of values) {
7
- if (value === undefined)
8
- continue;
9
- return value;
10
- }
11
- return undefined;
12
- }
1
+ /**
2
+ * Return the first value that is not undefined of the passed parameters.
3
+ * @param values
4
+ */
5
+ export function coalesce(...values) {
6
+ for (let value of values) {
7
+ if (value === undefined)
8
+ continue;
9
+ return value;
10
+ }
11
+ return undefined;
12
+ }
13
13
  //# sourceMappingURL=coalesce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coalesce.js","sourceRoot":"","sources":["../src/coalesce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,MAAa;IACrC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;QACtB,IAAI,KAAK,KAAK,SAAS;YACnB,SAAS;QACb,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"coalesce.js","sourceRoot":"","sources":["../src/coalesce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,MAAa;IACrC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS;YACnB,SAAS;QACb,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=coalesce.test.d.ts.map
@@ -1,63 +1,63 @@
1
- export declare const CONSOLE_COLORS: {
2
- reset: number[];
3
- bold: number[];
4
- dim: number[];
5
- italic: number[];
6
- underline: number[];
7
- inverse: number[];
8
- hidden: number[];
9
- strikethrough: number[];
10
- black: number[];
11
- red: number[];
12
- green: number[];
13
- yellow: number[];
14
- blue: number[];
15
- magenta: number[];
16
- cyan: number[];
17
- white: number[];
18
- gray: number[];
19
- grey: number[];
20
- bgBlack: number[];
21
- bgRed: number[];
22
- bgGreen: number[];
23
- bgYellow: number[];
24
- bgBlue: number[];
25
- bgMagenta: number[];
26
- bgCyan: number[];
27
- bgWhite: number[];
28
- };
29
- export type ColorLibrary<T> = {
30
- [K in keyof T]: (message: string) => string;
31
- };
32
- /**
33
- * Provides methods for colorizing strings
34
- */
35
- export declare const ConsoleColors: ColorLibrary<{
36
- reset: number[];
37
- bold: number[];
38
- dim: number[];
39
- italic: number[];
40
- underline: number[];
41
- inverse: number[];
42
- hidden: number[];
43
- strikethrough: number[];
44
- black: number[];
45
- red: number[];
46
- green: number[];
47
- yellow: number[];
48
- blue: number[];
49
- magenta: number[];
50
- cyan: number[];
51
- white: number[];
52
- gray: number[];
53
- grey: number[];
54
- bgBlack: number[];
55
- bgRed: number[];
56
- bgGreen: number[];
57
- bgYellow: number[];
58
- bgBlue: number[];
59
- bgMagenta: number[];
60
- bgCyan: number[];
61
- bgWhite: number[];
62
- }>;
1
+ export declare const CONSOLE_COLORS: {
2
+ reset: number[];
3
+ bold: number[];
4
+ dim: number[];
5
+ italic: number[];
6
+ underline: number[];
7
+ inverse: number[];
8
+ hidden: number[];
9
+ strikethrough: number[];
10
+ black: number[];
11
+ red: number[];
12
+ green: number[];
13
+ yellow: number[];
14
+ blue: number[];
15
+ magenta: number[];
16
+ cyan: number[];
17
+ white: number[];
18
+ gray: number[];
19
+ grey: number[];
20
+ bgBlack: number[];
21
+ bgRed: number[];
22
+ bgGreen: number[];
23
+ bgYellow: number[];
24
+ bgBlue: number[];
25
+ bgMagenta: number[];
26
+ bgCyan: number[];
27
+ bgWhite: number[];
28
+ };
29
+ export type ColorLibrary<T> = {
30
+ [K in keyof T]: (message: string) => string;
31
+ };
32
+ /**
33
+ * Provides methods for colorizing strings
34
+ */
35
+ export declare const ConsoleColors: ColorLibrary<{
36
+ reset: number[];
37
+ bold: number[];
38
+ dim: number[];
39
+ italic: number[];
40
+ underline: number[];
41
+ inverse: number[];
42
+ hidden: number[];
43
+ strikethrough: number[];
44
+ black: number[];
45
+ red: number[];
46
+ green: number[];
47
+ yellow: number[];
48
+ blue: number[];
49
+ magenta: number[];
50
+ cyan: number[];
51
+ white: number[];
52
+ gray: number[];
53
+ grey: number[];
54
+ bgBlack: number[];
55
+ bgRed: number[];
56
+ bgGreen: number[];
57
+ bgYellow: number[];
58
+ bgBlue: number[];
59
+ bgMagenta: number[];
60
+ bgCyan: number[];
61
+ bgWhite: number[];
62
+ }>;
63
63
  //# sourceMappingURL=colors.d.ts.map
@@ -1,64 +1,64 @@
1
- /*
2
- * The MIT License (MIT)
3
- *
4
- * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining a copy
7
- * of this software and associated documentation files (the "Software"), to deal
8
- * in the Software without restriction, including without limitation the rights
9
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- * copies of the Software, and to permit persons to whom the Software is
11
- * furnished to do so, subject to the following conditions:
12
- * The above copyright notice and this permission notice shall be included in
13
- * all copies or substantial portions of the Software.
14
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- * THE SOFTWARE.
21
- */
22
- export const CONSOLE_COLORS = {
23
- reset: [0, 0],
24
- bold: [1, 22],
25
- dim: [2, 22],
26
- italic: [3, 23],
27
- underline: [4, 24],
28
- inverse: [7, 27],
29
- hidden: [8, 28],
30
- strikethrough: [9, 29],
31
- black: [30, 39],
32
- red: [31, 39],
33
- green: [32, 39],
34
- yellow: [33, 39],
35
- blue: [34, 39],
36
- magenta: [35, 39],
37
- cyan: [36, 39],
38
- white: [37, 39],
39
- gray: [90, 39],
40
- grey: [90, 39],
41
- bgBlack: [40, 49],
42
- bgRed: [41, 49],
43
- bgGreen: [42, 49],
44
- bgYellow: [43, 49],
45
- bgBlue: [44, 49],
46
- bgMagenta: [45, 49],
47
- bgCyan: [46, 49],
48
- bgWhite: [47, 49],
49
- };
50
- function objectLibrary(codes) {
51
- let library = {};
52
- Object.keys(codes).forEach(function (key) {
53
- let val = codes[key];
54
- let open = '\u001b[' + val[0] + 'm';
55
- let close = '\u001b[' + val[1] + 'm';
56
- library[key] = (message) => `${open}${message}${close}`;
57
- });
58
- return library;
59
- }
60
- /**
61
- * Provides methods for colorizing strings
62
- */
63
- export const ConsoleColors = objectLibrary(CONSOLE_COLORS);
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ * THE SOFTWARE.
21
+ */
22
+ export const CONSOLE_COLORS = {
23
+ reset: [0, 0],
24
+ bold: [1, 22],
25
+ dim: [2, 22],
26
+ italic: [3, 23],
27
+ underline: [4, 24],
28
+ inverse: [7, 27],
29
+ hidden: [8, 28],
30
+ strikethrough: [9, 29],
31
+ black: [30, 39],
32
+ red: [31, 39],
33
+ green: [32, 39],
34
+ yellow: [33, 39],
35
+ blue: [34, 39],
36
+ magenta: [35, 39],
37
+ cyan: [36, 39],
38
+ white: [37, 39],
39
+ gray: [90, 39],
40
+ grey: [90, 39],
41
+ bgBlack: [40, 49],
42
+ bgRed: [41, 49],
43
+ bgGreen: [42, 49],
44
+ bgYellow: [43, 49],
45
+ bgBlue: [44, 49],
46
+ bgMagenta: [45, 49],
47
+ bgCyan: [46, 49],
48
+ bgWhite: [47, 49],
49
+ };
50
+ function objectLibrary(codes) {
51
+ let library = {};
52
+ Object.keys(codes).forEach(function (key) {
53
+ let val = codes[key];
54
+ let open = '\u001b[' + val[0] + 'm';
55
+ let close = '\u001b[' + val[1] + 'm';
56
+ library[key] = (message) => `${open}${message}${close}`;
57
+ });
58
+ return library;
59
+ }
60
+ /**
61
+ * Provides methods for colorizing strings
62
+ */
63
+ export const ConsoleColors = objectLibrary(CONSOLE_COLORS);
64
64
  //# sourceMappingURL=colors.js.map
@@ -1,32 +1,32 @@
1
- export interface Console {
2
- log(...args: any[]): any;
3
- info(...args: any[]): any;
4
- warn(...args: any[]): any;
5
- error(...args: any[]): any;
6
- debug(...args: any[]): any;
7
- dir(...args: any[]): any;
8
- }
9
- /**
10
- * Intercept console messages emitted within the given function, allowing you to programmatically call the underlying raw console implementation (or not).
11
- *
12
- * @param handler
13
- * @param callback
14
- */
15
- export declare function interceptConsole(handler: (method: string, originalImpl: Function, console: Console, args: any[]) => void, callback: Function): void;
16
- /**
17
- * Intercept all console messages emitted within the given function and indent them with
18
- * the given number of spaces before printing them out.
19
- *
20
- * @param spaces
21
- * @param callback
22
- */
23
- export declare function indentConsole(spaces: number, callback: Function): void;
24
- /**
25
- * Intercept all console messages emitted within the given function and format them using the given formatter before
26
- * printing them.
27
- *
28
- * @param formatter
29
- * @param callback
30
- */
31
- export declare function formatConsole(formatter: (message: string) => string, callback: Function): void;
1
+ export interface Console {
2
+ log(...args: any[]): any;
3
+ info(...args: any[]): any;
4
+ warn(...args: any[]): any;
5
+ error(...args: any[]): any;
6
+ debug(...args: any[]): any;
7
+ dir(...args: any[]): any;
8
+ }
9
+ /**
10
+ * Intercept console messages emitted within the given function, allowing you to programmatically call the underlying raw console implementation (or not).
11
+ *
12
+ * @param handler
13
+ * @param callback
14
+ */
15
+ export declare function interceptConsole(handler: (method: string, originalImpl: Function, console: Console, args: any[]) => void, callback: Function): void;
16
+ /**
17
+ * Intercept all console messages emitted within the given function and indent them with
18
+ * the given number of spaces before printing them out.
19
+ *
20
+ * @param spaces
21
+ * @param callback
22
+ */
23
+ export declare function indentConsole(spaces: number, callback: Function): void;
24
+ /**
25
+ * Intercept all console messages emitted within the given function and format them using the given formatter before
26
+ * printing them.
27
+ *
28
+ * @param formatter
29
+ * @param callback
30
+ */
31
+ export declare function formatConsole(formatter: (message: string) => string, callback: Function): void;
32
32
  //# sourceMappingURL=console.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,OAAO;IACpB,GAAG,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACrB,IAAI,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACtB,IAAI,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACtB,KAAK,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACvB,KAAK,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACvB,GAAG,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;CACxB;AAaD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAG,CAAC,MAAM,EAAG,MAAM,EAAE,YAAY,EAAG,QAAQ,EAAE,OAAO,EAAG,OAAO,EAAE,IAAI,EAAG,GAAG,EAAE,KAAK,IAAI,EAAE,QAAQ,EAAG,QAAQ,QAoBlJ;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAG,MAAM,EAAE,QAAQ,EAAG,QAAQ,QAcjE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAG,CAAC,OAAO,EAAG,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAG,QAAQ,QAa1F"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,OAAO;IACpB,GAAG,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACrB,IAAI,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACtB,IAAI,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACtB,KAAK,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACvB,KAAK,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;IACvB,GAAG,CAAC,GAAG,IAAI,EAAG,GAAG,EAAE,OAAE;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAG,CAAC,MAAM,EAAG,MAAM,EAAE,YAAY,EAAG,QAAQ,EAAE,OAAO,EAAG,OAAO,EAAE,IAAI,EAAG,GAAG,EAAE,KAAK,IAAI,EAAE,QAAQ,EAAG,QAAQ,QAoBlJ;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAG,MAAM,EAAE,QAAQ,EAAG,QAAQ,QAUjE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAG,CAAC,OAAO,EAAG,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAG,QAAQ,QAQ1F"}
@@ -1,81 +1,61 @@
1
- function safeRequire(name) {
2
- if (typeof require === 'undefined')
3
- return undefined;
4
- try {
5
- return require(name);
6
- }
7
- catch (e) {
8
- return undefined;
9
- }
10
- }
11
- /**
12
- * Intercept console messages emitted within the given function, allowing you to programmatically call the underlying raw console implementation (or not).
13
- *
14
- * @param handler
15
- * @param callback
16
- */
17
- export function interceptConsole(handler, callback) {
18
- let methods = ['log', 'info', 'warn', 'error', 'debug', 'dir'];
19
- let rawConsole = {};
20
- let origConsole = {};
21
- for (let method of methods) {
22
- origConsole[method] = console[method];
23
- rawConsole[method] = (console[method] || console.log).bind(console);
24
- console[method] = function () {
25
- handler(method, rawConsole[method], rawConsole, Array.from(arguments));
26
- };
27
- }
28
- try {
29
- callback();
30
- }
31
- finally {
32
- for (let method of methods)
33
- console[method] = origConsole[method];
34
- }
35
- }
36
- /**
37
- * Intercept all console messages emitted within the given function and indent them with
38
- * the given number of spaces before printing them out.
39
- *
40
- * @param spaces
41
- * @param callback
42
- */
43
- export function indentConsole(spaces, callback) {
44
- let indent = Array(spaces).join(' ');
45
- return interceptConsole((method, original, console, args) => {
46
- if (method == 'dir') {
47
- const util = safeRequire('util');
48
- if (util)
49
- console.log(`${indent}${util.inspect(args[0])}`);
50
- else
51
- original(...args);
52
- }
53
- else {
54
- original(`${indent}${args.join(' ')}`);
55
- }
56
- }, callback);
57
- }
58
- /**
59
- * Intercept all console messages emitted within the given function and format them using the given formatter before
60
- * printing them.
61
- *
62
- * @param formatter
63
- * @param callback
64
- */
65
- export function formatConsole(formatter, callback) {
66
- return interceptConsole((method, original, console, args) => {
67
- if (method == 'dir') {
68
- const util = safeRequire('util');
69
- if (util) {
70
- console.log(`${formatter(util.inspect(args[0]))}`);
71
- }
72
- else {
73
- original(...args);
74
- }
75
- }
76
- else {
77
- original(`${formatter(args.join(' '))}`);
78
- }
79
- }, callback);
80
- }
1
+ /**
2
+ * Intercept console messages emitted within the given function, allowing you to programmatically call the underlying raw console implementation (or not).
3
+ *
4
+ * @param handler
5
+ * @param callback
6
+ */
7
+ export function interceptConsole(handler, callback) {
8
+ let methods = ['log', 'info', 'warn', 'error', 'debug', 'dir'];
9
+ let rawConsole = {};
10
+ let origConsole = {};
11
+ for (let method of methods) {
12
+ origConsole[method] = console[method];
13
+ rawConsole[method] = (console[method] || console.log).bind(console);
14
+ console[method] = function () {
15
+ handler(method, rawConsole[method], rawConsole, Array.from(arguments));
16
+ };
17
+ }
18
+ try {
19
+ callback();
20
+ }
21
+ finally {
22
+ for (let method of methods)
23
+ console[method] = origConsole[method];
24
+ }
25
+ }
26
+ /**
27
+ * Intercept all console messages emitted within the given function and indent them with
28
+ * the given number of spaces before printing them out.
29
+ *
30
+ * @param spaces
31
+ * @param callback
32
+ */
33
+ export function indentConsole(spaces, callback) {
34
+ let indent = Array(spaces).join(' ');
35
+ return interceptConsole((method, original, console, args) => {
36
+ if (method == 'dir') {
37
+ original(...args);
38
+ }
39
+ else {
40
+ original(`${indent}${args.join(' ')}`);
41
+ }
42
+ }, callback);
43
+ }
44
+ /**
45
+ * Intercept all console messages emitted within the given function and format them using the given formatter before
46
+ * printing them.
47
+ *
48
+ * @param formatter
49
+ * @param callback
50
+ */
51
+ export function formatConsole(formatter, callback) {
52
+ return interceptConsole((method, original, console, args) => {
53
+ if (method == 'dir') {
54
+ original(...args);
55
+ }
56
+ else {
57
+ original(`${formatter(args.join(' '))}`);
58
+ }
59
+ }, callback);
60
+ }
81
61
  //# sourceMappingURL=console.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"AAUA,SAAS,WAAW,CAAC,IAAa;IAC9B,IAAI,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,SAAS,CAAC;IAErB,IAAI;QACA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;KACxB;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA6F,EAAE,QAAmB;IAC/I,IAAI,OAAO,GAAG,CAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAE,CAAC;IAEjE,IAAI,UAAU,GAAa,EAAS,CAAC;IACrC,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;QACxB,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,GAAG;YACd,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC;KACL;IAED,IAAI;QACA,QAAQ,EAAE,CAAC;KACd;YAAS;QACN,KAAK,IAAI,MAAM,IAAI,OAAO;YACtB,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;KAC7C;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,QAAmB;IAC9D,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErC,OAAO,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACxD,IAAI,MAAM,IAAI,KAAK,EAAE;YACjB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI;gBACJ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;;gBAEhD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;SACzB;aAAM;YACH,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAC1C;IACL,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAAwC,EAAE,QAAmB;IACvF,OAAO,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACxD,IAAI,MAAM,IAAI,KAAK,EAAE;YACjB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI,EAAE;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;aACrD;iBAAM;gBACH,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;aACrB;SACJ;aAAM;YACH,QAAQ,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5C;IACL,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA6F,EAAE,QAAmB;IAC/I,IAAI,OAAO,GAAG,CAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAE,CAAC;IAEjE,IAAI,UAAU,GAAa,EAAS,CAAC;IACrC,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QACzB,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,GAAG;YACd,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC;IACN,CAAC;IAED,IAAI,CAAC;QACD,QAAQ,EAAE,CAAC;IACf,CAAC;YAAS,CAAC;QACP,KAAK,IAAI,MAAM,IAAI,OAAO;YACtB,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,QAAmB;IAC9D,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErC,OAAO,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACxD,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAAwC,EAAE,QAAmB;IACvF,OAAO,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACxD,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjB,CAAC"}