@zajno/common 2.7.1 → 2.7.2

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 (168) hide show
  1. package/cjs/api/call.js +5 -5
  2. package/cjs/api/call.js.map +1 -1
  3. package/cjs/api/config.js +30 -5
  4. package/cjs/api/config.js.map +1 -1
  5. package/cjs/api/index.js +5 -8
  6. package/cjs/api/index.js.map +1 -1
  7. package/cjs/api/interceptor.js +1 -1
  8. package/cjs/api/logging.js +3 -3
  9. package/cjs/api/logging.js.map +1 -1
  10. package/cjs/functions/assert.js +2 -4
  11. package/cjs/functions/assert.js.map +1 -1
  12. package/cjs/functions/disposer.js +10 -18
  13. package/cjs/functions/disposer.js.map +1 -1
  14. package/cjs/functions/throttle.js +8 -17
  15. package/cjs/functions/throttle.js.map +1 -1
  16. package/cjs/logger/batch.js +23 -3
  17. package/cjs/logger/batch.js.map +1 -1
  18. package/cjs/logger/buffered/base.js +52 -0
  19. package/cjs/logger/buffered/base.js.map +1 -0
  20. package/cjs/logger/buffered/buffered.logger.js +40 -0
  21. package/cjs/logger/buffered/buffered.logger.js.map +1 -0
  22. package/cjs/logger/buffered/buffered.memory.js +71 -0
  23. package/cjs/logger/buffered/buffered.memory.js.map +1 -0
  24. package/cjs/logger/buffered/file/buffered.file.js +43 -0
  25. package/cjs/logger/buffered/file/buffered.file.js.map +1 -0
  26. package/cjs/logger/buffered/file/index.js +5 -0
  27. package/cjs/logger/buffered/file/index.js.map +1 -0
  28. package/cjs/logger/buffered/index.js +7 -0
  29. package/cjs/logger/buffered/index.js.map +1 -0
  30. package/cjs/logger/console.js +1 -39
  31. package/cjs/logger/console.js.map +1 -1
  32. package/cjs/logger/empty.js +11 -0
  33. package/cjs/logger/empty.js.map +1 -0
  34. package/cjs/logger/index.js +5 -7
  35. package/cjs/logger/index.js.map +1 -1
  36. package/cjs/logger/loggable.js +39 -0
  37. package/cjs/logger/loggable.js.map +1 -0
  38. package/cjs/logger/manager.js +70 -20
  39. package/cjs/logger/manager.js.map +1 -1
  40. package/cjs/logger/named.js +15 -12
  41. package/cjs/logger/named.js.map +1 -1
  42. package/cjs/logger/provider.js +33 -0
  43. package/cjs/logger/provider.js.map +1 -0
  44. package/cjs/logger/proxy.js +3 -7
  45. package/cjs/logger/proxy.js.map +1 -1
  46. package/cjs/logger/types.js +9 -0
  47. package/cjs/logger/types.js.map +1 -0
  48. package/cjs/models/LogicModel.js +13 -11
  49. package/cjs/models/LogicModel.js.map +1 -1
  50. package/cjs/observing/event.js +5 -18
  51. package/cjs/observing/event.js.map +1 -1
  52. package/cjs/observing/progressTracker.js +8 -15
  53. package/cjs/observing/progressTracker.js.map +1 -1
  54. package/cjs/structures/promiseCache.js +14 -20
  55. package/cjs/structures/promiseCache.js.map +1 -1
  56. package/cjs/structures/queue/parallel.js +11 -13
  57. package/cjs/structures/queue/parallel.js.map +1 -1
  58. package/cjs/structures/subscribersMap.js +9 -7
  59. package/cjs/structures/subscribersMap.js.map +1 -1
  60. package/esm/api/call.js +5 -5
  61. package/esm/api/call.js.map +1 -1
  62. package/esm/api/config.js +28 -4
  63. package/esm/api/config.js.map +1 -1
  64. package/esm/api/index.js +3 -3
  65. package/esm/api/index.js.map +1 -1
  66. package/esm/api/interceptor.js +1 -1
  67. package/esm/api/logging.js +3 -3
  68. package/esm/api/logging.js.map +1 -1
  69. package/esm/functions/assert.js +2 -3
  70. package/esm/functions/assert.js.map +1 -1
  71. package/esm/functions/disposer.js +10 -17
  72. package/esm/functions/disposer.js.map +1 -1
  73. package/esm/functions/throttle.js +6 -15
  74. package/esm/functions/throttle.js.map +1 -1
  75. package/esm/logger/batch.js +23 -3
  76. package/esm/logger/batch.js.map +1 -1
  77. package/esm/logger/buffered/base.js +48 -0
  78. package/esm/logger/buffered/base.js.map +1 -0
  79. package/esm/logger/buffered/buffered.logger.js +36 -0
  80. package/esm/logger/buffered/buffered.logger.js.map +1 -0
  81. package/esm/logger/buffered/buffered.memory.js +67 -0
  82. package/esm/logger/buffered/buffered.memory.js.map +1 -0
  83. package/esm/logger/buffered/file/buffered.file.js +38 -0
  84. package/esm/logger/buffered/file/buffered.file.js.map +1 -0
  85. package/esm/logger/buffered/file/index.js +2 -0
  86. package/esm/logger/buffered/file/index.js.map +1 -0
  87. package/esm/logger/buffered/index.js +4 -0
  88. package/esm/logger/buffered/index.js.map +1 -0
  89. package/esm/logger/console.js +0 -37
  90. package/esm/logger/console.js.map +1 -1
  91. package/esm/logger/empty.js +7 -0
  92. package/esm/logger/empty.js.map +1 -0
  93. package/esm/logger/index.js +3 -7
  94. package/esm/logger/index.js.map +1 -1
  95. package/esm/logger/loggable.js +35 -0
  96. package/esm/logger/loggable.js.map +1 -0
  97. package/esm/logger/manager.js +70 -20
  98. package/esm/logger/manager.js.map +1 -1
  99. package/esm/logger/named.js +8 -4
  100. package/esm/logger/named.js.map +1 -1
  101. package/esm/logger/provider.js +29 -0
  102. package/esm/logger/provider.js.map +1 -0
  103. package/esm/logger/proxy.js +2 -6
  104. package/esm/logger/proxy.js.map +1 -1
  105. package/esm/logger/types.js +6 -0
  106. package/esm/logger/types.js.map +1 -0
  107. package/esm/models/LogicModel.js +13 -11
  108. package/esm/models/LogicModel.js.map +1 -1
  109. package/esm/observing/event.js +5 -18
  110. package/esm/observing/event.js.map +1 -1
  111. package/esm/observing/progressTracker.js +8 -14
  112. package/esm/observing/progressTracker.js.map +1 -1
  113. package/esm/structures/promiseCache.js +14 -20
  114. package/esm/structures/promiseCache.js.map +1 -1
  115. package/esm/structures/queue/parallel.js +11 -13
  116. package/esm/structures/queue/parallel.js.map +1 -1
  117. package/esm/structures/subscribersMap.js +9 -7
  118. package/esm/structures/subscribersMap.js.map +1 -1
  119. package/package.json +13 -1
  120. package/tsconfig.cjs.tsbuildinfo +1 -1
  121. package/tsconfig.esm.tsbuildinfo +1 -1
  122. package/tsconfig.types.tsbuildinfo +1 -1
  123. package/types/api/call.types.d.ts +2 -2
  124. package/types/api/config.d.ts +11 -4
  125. package/types/api/extensions/endpointHooks.d.ts +1 -1
  126. package/types/api/index.d.ts +3 -3
  127. package/types/api/interceptor.d.ts +1 -1
  128. package/types/api/logging.d.ts +8 -6
  129. package/types/functions/assert.d.ts +3 -3
  130. package/types/functions/disposer.d.ts +7 -6
  131. package/types/functions/throttle.d.ts +4 -5
  132. package/types/logger/batch.d.ts +3 -2
  133. package/types/logger/buffered/base.d.ts +23 -0
  134. package/types/logger/buffered/buffered.logger.d.ts +8 -0
  135. package/types/logger/buffered/buffered.memory.d.ts +19 -0
  136. package/types/logger/buffered/file/buffered.file.d.ts +9 -0
  137. package/types/logger/buffered/file/index.d.ts +1 -0
  138. package/types/logger/buffered/index.d.ts +3 -0
  139. package/types/logger/console.d.ts +1 -13
  140. package/types/logger/empty.d.ts +3 -0
  141. package/types/logger/index.d.ts +6 -10
  142. package/types/logger/loggable.d.ts +13 -0
  143. package/types/logger/manager.d.ts +31 -7
  144. package/types/logger/named.d.ts +4 -3
  145. package/types/logger/provider.d.ts +11 -0
  146. package/types/logger/proxy.d.ts +1 -2
  147. package/types/logger/types.d.ts +21 -0
  148. package/types/models/LogicModel.d.ts +4 -4
  149. package/types/observing/event.d.ts +3 -6
  150. package/types/observing/progressTracker.d.ts +3 -4
  151. package/types/structures/promiseCache.d.ts +3 -4
  152. package/types/structures/queue/parallel.d.ts +3 -3
  153. package/types/structures/subscribersMap.d.ts +3 -2
  154. package/cjs/logger/abstractions.js +0 -3
  155. package/cjs/logger/abstractions.js.map +0 -1
  156. package/cjs/logger/file.js +0 -65
  157. package/cjs/logger/file.js.map +0 -1
  158. package/cjs/logger/shared.js +0 -18
  159. package/cjs/logger/shared.js.map +0 -1
  160. package/esm/logger/abstractions.js +0 -2
  161. package/esm/logger/abstractions.js.map +0 -1
  162. package/esm/logger/file.js +0 -60
  163. package/esm/logger/file.js.map +0 -1
  164. package/esm/logger/shared.js +0 -15
  165. package/esm/logger/shared.js.map +0 -1
  166. package/types/logger/abstractions.d.ts +0 -10
  167. package/types/logger/file.d.ts +0 -15
  168. package/types/logger/shared.d.ts +0 -15
package/cjs/api/call.js CHANGED
@@ -5,11 +5,11 @@ const config_js_1 = require("./config.js");
5
5
  const hooks_js_1 = require("./hooks.js");
6
6
  const call_config_js_1 = require("./call.config.js");
7
7
  function buildApiCaller(options) {
8
- const { request, config: endpointsConfigSource, hooks: hooksSource = {}, } = options;
8
+ const { request, hooks: hooksSource = {}, } = options;
9
9
  const hooks = hooks_js_1.CallerHooks.merge(hooksSource);
10
- const endpointsConfig = new config_js_1.EndpointsPathsConfig(endpointsConfigSource);
10
+ const pathConfig = new config_js_1.EndpointsPathsConfig(options?.config);
11
11
  const caller = async function callApi(api, data, extra) {
12
- const { config, resultInput, pathInputs, queryInputs } = (0, call_config_js_1.createConfig)(endpointsConfig, api, data, extra);
12
+ const { config, resultInput, pathInputs, queryInputs } = (0, call_config_js_1.createConfig)(pathConfig, api, data, extra);
13
13
  if (hooks.beforeConfig) {
14
14
  // copy all inputs to avoid mutation
15
15
  await hooks.beforeConfig(api, { ...resultInput }, { ...pathInputs }, { ...queryInputs });
@@ -26,8 +26,8 @@ function buildApiCaller(options) {
26
26
  }
27
27
  return response?.data;
28
28
  };
29
- return Object.assign(caller, {
30
- config: endpointsConfig,
29
+ return Object.defineProperty(caller, 'config', {
30
+ get: () => pathConfig,
31
31
  });
32
32
  }
33
33
  //# sourceMappingURL=call.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../src/api/call.ts"],"names":[],"mappings":";;AAcA,wCAsDC;AA5DD,2CAAmD;AACnD,yCAAyC;AACzC,qDAAgD;AAIhD,SAAgB,cAAc,CAA8C,OAA8B;IAEtG,MAAM,EACF,OAAO,EACP,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,WAAW,GAAG,EAAE,GAC1B,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,sBAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAI,gCAAoB,CAAC,qBAAqB,CAAC,CAAC;IAExE,MAAM,MAAM,GAAG,KAAK,UAAU,OAAO,CACjC,GAAM,EACN,IAAiC,EACjC,KAAgC;QAIhC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAA,6BAAY,EACjE,eAAe,EACf,GAAG,EACH,IAAI,EACJ,KAAK,CACR,CAAC;QAEF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrB,oCAAoC;YACpC,MAAM,KAAK,CAAC,YAAY,CACpB,GAAG,EACH,EAAE,GAAG,WAAW,EAAwC,EACxD,EAAE,GAAG,UAAU,EAA0C,EACzD,EAAE,GAAG,WAAW,EAA2C,CAC9D,CAAC;QACN,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,GAAyB,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3D,IAAI,QAAQ,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAClC,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC;QACvE,CAAC;QAED,OAAO,QAAQ,EAAE,IAAI,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACzB,MAAM,EAAE,eAAe;KAC1B,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../src/api/call.ts"],"names":[],"mappings":";;AAcA,wCAyDC;AA/DD,2CAAmD;AACnD,yCAAyC;AACzC,qDAAgD;AAIhD,SAAgB,cAAc,CAA8C,OAA8B;IAEtG,MAAM,EACF,OAAO,EACP,KAAK,EAAE,WAAW,GAAG,EAAE,GAC1B,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,sBAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,gCAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,KAAK,UAAU,OAAO,CACjC,GAAM,EACN,IAAiC,EACjC,KAAgC;QAIhC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAA,6BAAY,EACjE,UAAU,EACV,GAAG,EACH,IAAI,EACJ,KAAK,CACR,CAAC;QAEF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrB,oCAAoC;YACpC,MAAM,KAAK,CAAC,YAAY,CACpB,GAAG,EACH,EAAE,GAAG,WAAW,EAAwC,EACxD,EAAE,GAAG,UAAU,EAA0C,EACzD,EAAE,GAAG,WAAW,EAA2C,CAC9D,CAAC;QACN,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,GAAyB,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3D,IAAI,QAAQ,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAClC,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC;QACvE,CAAC;QAED,OAAO,QAAQ,EAAE,IAAI,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,cAAc,CACxB,MAAkC,EAClC,QAAQ,EACR;QACI,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU;KACxB,CACJ,CAAC;AACN,CAAC"}
package/cjs/api/config.js CHANGED
@@ -1,16 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultSettings = exports.EndpointsPathsConfig = void 0;
3
+ exports.DefaultSettings = exports.EndpointsPathsConfigMutable = exports.EndpointsPathsConfig = void 0;
4
+ const transfer_js_1 = require("../fields/transfer.js");
4
5
  const index_js_1 = require("../structures/path/index.js");
5
6
  class EndpointsPathsConfig {
6
- templateArgPrefix = ':';
7
- basePrefix = '/';
7
+ _value = {
8
+ templateArgPrefix: ':',
9
+ basePrefix: '/',
10
+ };
11
+ /** Creates a new instance of config. Follows the other instance if it's instanceof `EndpointsPathsConfig`. */
8
12
  constructor(settings) {
9
13
  if (settings) {
10
- this.templateArgPrefix = settings.templateArgPrefix ?? this.templateArgPrefix;
11
- this.basePrefix = settings.basePrefix ?? this.basePrefix;
14
+ if (settings instanceof EndpointsPathsConfig) {
15
+ this._value = settings._value;
16
+ }
17
+ else {
18
+ this.updateValues(settings);
19
+ }
12
20
  }
13
21
  }
22
+ get templateArgPrefix() { return this._value.templateArgPrefix; }
23
+ get basePrefix() { return this._value.basePrefix; }
24
+ expose() {
25
+ return {
26
+ ...this._value,
27
+ };
28
+ }
14
29
  getPath(endpoint, pathArgs, prefix = true) {
15
30
  const path = endpoint.path ?? index_js_1.Path.Empty;
16
31
  return path.build(pathArgs || undefined, { addStart: this.getPrefix(prefix) });
@@ -36,8 +51,18 @@ class EndpointsPathsConfig {
36
51
  ? prefix
37
52
  : (prefix ? this.basePrefix : false);
38
53
  }
54
+ updateValues(settings) {
55
+ transfer_js_1.transferFields.defined(settings, this._value, 'templateArgPrefix', 'basePrefix');
56
+ }
39
57
  }
40
58
  exports.EndpointsPathsConfig = EndpointsPathsConfig;
59
+ class EndpointsPathsConfigMutable extends EndpointsPathsConfig {
60
+ update(settings) {
61
+ this.updateValues(settings);
62
+ return this;
63
+ }
64
+ }
65
+ exports.EndpointsPathsConfigMutable = EndpointsPathsConfigMutable;
41
66
  /** @deprecated Be careful with using this shared instance. Don't be lazy and create your own! */
42
67
  exports.DefaultSettings = new EndpointsPathsConfig();
43
68
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/api/config.ts"],"names":[],"mappings":";;;AAAA,0DAAmD;AAanD,MAAa,oBAAoB;IAEb,iBAAiB,GAA2B,GAAG,CAAC;IAChD,UAAU,GAAW,GAAG,CAAC;IAEzC,YAAY,QAAgC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC;YAC9E,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QAC7D,CAAC;IACL,CAAC;IAEM,OAAO,CACV,QAAW,EACX,QAAsC,EACtC,SAAwB,IAAI;QAE5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAK,eAAI,CAAC,KAAuB,CAAC;QAE5D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAEM,WAAW,CAA0B,QAAW,EAAE,SAAwB,IAAI;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAK,eAAI,CAAC,KAAuB,CAAC;QAE5D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IAEM,uBAAuB,CAAC,QAAuB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW;YAC/B,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,IAAI;YAC9B,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,MAAM,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,iBAAiB,CAAC,CAA0B,EAAE,CAA0B;QAC3E,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAC1C,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;eACnB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;eACrB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjD,CAAC;IACN,CAAC;IAEO,SAAS,CAAC,MAAqB;QACnC,OAAO,OAAO,MAAM,KAAK,QAAQ;YAC7B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ;AAjDD,oDAiDC;AAED,iGAAiG;AACpF,QAAA,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/api/config.ts"],"names":[],"mappings":"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"}
package/cjs/api/index.js CHANGED
@@ -1,19 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LogTypes = exports.createEndpointCallable = exports.buildApi = exports.buildApiCaller = exports.EndpointMethods = exports.ApiEndpoint = void 0;
3
+ exports.LogTypes = exports.EndpointMethods = exports.ApiEndpoint = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  var endpoint_js_1 = require("./endpoint.js");
6
6
  Object.defineProperty(exports, "ApiEndpoint", { enumerable: true, get: function () { return endpoint_js_1.ApiEndpoint; } });
7
7
  var methods_js_1 = require("./methods.js");
8
8
  Object.defineProperty(exports, "EndpointMethods", { enumerable: true, get: function () { return methods_js_1.EndpointMethods; } });
9
9
  tslib_1.__exportStar(require("./config.js"), exports);
10
- var call_js_1 = require("./call.js");
11
- Object.defineProperty(exports, "buildApiCaller", { enumerable: true, get: function () { return call_js_1.buildApiCaller; } });
12
- var builder_js_1 = require("./builder.js");
13
- Object.defineProperty(exports, "buildApi", { enumerable: true, get: function () { return builder_js_1.buildApi; } });
14
- Object.defineProperty(exports, "createEndpointCallable", { enumerable: true, get: function () { return builder_js_1.createEndpointCallable; } });
15
- var logging_js_1 = require("./logging.js");
16
- Object.defineProperty(exports, "LogTypes", { enumerable: true, get: function () { return logging_js_1.LogTypes; } });
10
+ tslib_1.__exportStar(require("./builder.js"), exports);
11
+ tslib_1.__exportStar(require("./call.js"), exports);
17
12
  tslib_1.__exportStar(require("./hooks.js"), exports);
18
13
  tslib_1.__exportStar(require("./interceptor.js"), exports);
14
+ var logging_js_1 = require("./logging.js");
15
+ Object.defineProperty(exports, "LogTypes", { enumerable: true, get: function () { return logging_js_1.LogTypes; } });
19
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":";;;;AACA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AACxB,sDAA4B;AAE5B,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,2CAAgE;AAAvD,sGAAA,QAAQ,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AACzC,2CAAwC;AAA/B,sGAAA,QAAQ,OAAA;AACjB,qDAA2B;AAC3B,2DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":";;;;AACA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AAExB,sDAA4B;AAC5B,uDAA6B;AAC7B,oDAA0B;AAC1B,qDAA2B;AAC3B,2DAAiC;AAEjC,2CAAwC;AAA/B,sGAAA,QAAQ,OAAA"}
@@ -7,7 +7,7 @@ const eventKeys = hookKeys.map(k => `intercept${k.charAt(0).toUpperCase() + k.sl
7
7
  /**
8
8
  * Experimental. Creates linked caller hooks and interception events.
9
9
  *
10
- * Use hooks to recieve events and events to subscribe to them externally.
10
+ * Use hooks to inject into caller and events to subscribe to them externally.
11
11
  */
12
12
  function createInterceptor() {
13
13
  const events = eventKeys.reduce((acc, key) => {
@@ -30,7 +30,7 @@ var LogTypes;
30
30
  return { enabled: false };
31
31
  }
32
32
  LogTypes.getIsEnabled = getIsEnabled;
33
- function logCall(logger, cfg, dir, data) {
33
+ function logCall(logger, cfg, dir, responseData) {
34
34
  if (!cfg._meta.api || (dir === 'req' && cfg._meta.api.method === methods_js_1.EndpointMethods.GET && cfg.data == null)) {
35
35
  return;
36
36
  }
@@ -39,8 +39,8 @@ var LogTypes;
39
39
  return;
40
40
  }
41
41
  const dataLogged = info.formatter
42
- ? info.formatter(data ?? cfg.data)
43
- : (data ?? cfg.data);
42
+ ? info.formatter(responseData ?? cfg.data)
43
+ : (responseData ?? cfg.data);
44
44
  const prefix = dir === 'req'
45
45
  ? 'REQ ====>'
46
46
  : 'RES <====';
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/api/logging.ts"],"names":[],"mappings":";;;AAGA,6CAA+C;AAW/C,IAAiB,QAAQ,CAwExB;AAxED,WAAiB,QAAQ;IAIrB;;;;MAIE;IACF,SAAgB,YAAY,CAAc,IAAwB,EAAE,GAAQ;QACxE,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7B,CAAC;gBAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5B,OAAO;wBACH,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,GAAG;qBACjB,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAtBe,qBAAY,eAsB3B,CAAA;IAmBD,SAAgB,OAAO,CAAC,MAAe,EAAE,GAAmB,EAAE,GAAiB,EAAE,IAAc;QAC3F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,4BAAe,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACxG,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;YAClC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,GAAG,KAAK,KAAK;YACxB,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW,CAAC;QAElB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAnBe,gBAAO,UAmBtB,CAAA;AAGL,CAAC,EAxEgB,QAAQ,wBAAR,QAAQ,QAwExB"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/api/logging.ts"],"names":[],"mappings":";;;AAGA,6CAA+C;AAW/C,IAAiB,QAAQ,CAwExB;AAxED,WAAiB,QAAQ;IAIrB;;;;MAIE;IACF,SAAgB,YAAY,CAAc,IAAwB,EAAE,GAAQ;QACxE,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7B,CAAC;gBAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5B,OAAO;wBACH,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,GAAG;qBACjB,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAtBe,qBAAY,eAsB3B,CAAA;IAqBD,SAAgB,OAAO,CAAC,MAAe,EAAE,GAAyB,EAAE,GAAiB,EAAE,YAAsB;QACzG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,4BAAe,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACxG,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,GAAG,KAAK,KAAK;YACxB,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW,CAAC;QAElB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAnBe,gBAAO,UAmBtB,CAAA;AACL,CAAC,EAxEgB,QAAQ,wBAAR,QAAQ,QAwExB"}
@@ -2,16 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assert = void 0;
4
4
  exports.createAssert = createAssert;
5
- const tslib_1 = require("tslib");
6
5
  const index_js_1 = require("../types/index.js");
7
- const shared_js_1 = tslib_1.__importDefault(require("../logger/shared.js"));
8
6
  function createAssert(logger) {
9
7
  return function assert(condition, error, objectToLog) {
10
8
  if (condition) {
11
9
  return;
12
10
  }
13
11
  const e = index_js_1.Getter.toValue(error);
14
- if (objectToLog) {
12
+ if (objectToLog && logger) {
15
13
  logger.error('Assertion failed:', e, index_js_1.Getter.toValue(objectToLog));
16
14
  }
17
15
  if (typeof e === 'string') {
@@ -20,5 +18,5 @@ function createAssert(logger) {
20
18
  throw e;
21
19
  };
22
20
  }
23
- exports.assert = createAssert(shared_js_1.default);
21
+ exports.assert = createAssert();
24
22
  //# sourceMappingURL=assert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../src/functions/assert.ts"],"names":[],"mappings":";;;AAMA,oCAiBC;;AAvBD,gDAA2C;AAC3C,4EAAyC;AAKzC,SAAgB,YAAY,CAAC,MAAe;IACxC,OAAO,SAAS,MAAM,CAAC,SAAkB,EAAE,KAA6B,EAAE,WAAyB;QAC/F,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QAED,MAAM,CAAC,GAAG,iBAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,iBAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACN,CAAC;AAEY,QAAA,MAAM,GAAa,YAAY,CAAC,mBAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../src/functions/assert.ts"],"names":[],"mappings":";;;AAKA,oCAiBC;AAtBD,gDAA0D;AAK1D,SAAgB,YAAY,CAAC,MAA0B;IACnD,OAAO,SAAS,MAAM,CAAC,SAAkB,EAAE,KAA6B,EAAE,WAAyB;QAC/F,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QAED,MAAM,CAAC,GAAG,iBAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,iBAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACN,CAAC;AAEY,QAAA,MAAM,GAAa,YAAY,EAAE,CAAC"}
@@ -4,19 +4,10 @@ exports.Disposable = exports.Disposer = void 0;
4
4
  exports.combineDisposers = combineDisposers;
5
5
  exports.isDisposable = isDisposable;
6
6
  exports.tryDispose = tryDispose;
7
- const tslib_1 = require("tslib");
8
- const shared_js_1 = tslib_1.__importDefault(require("../logger/shared.js"));
9
- class Disposer {
7
+ const loggable_js_1 = require("../logger/loggable.js");
8
+ class Disposer extends loggable_js_1.Loggable {
10
9
  _disposers = [];
11
10
  _map = new Map();
12
- _loggerName = null;
13
- constructor(loggerName = null) {
14
- this._loggerName = loggerName;
15
- }
16
- setLoggerName(loggerName) {
17
- this._loggerName = loggerName;
18
- return this;
19
- }
20
11
  add(d, id) {
21
12
  if (!d) {
22
13
  return;
@@ -46,8 +37,8 @@ class Disposer {
46
37
  d();
47
38
  }
48
39
  dispose(log = false) {
49
- if (log) {
50
- shared_js_1.default.log(`[Disposer:${this._loggerName || '<unknown>'}] Disposing ${this._disposers.length} items including named ones:`, Array.from(this._map.entries()).map(e => e[0]));
40
+ if (log && this.logger) {
41
+ this.logger.log(`Disposing ${this._disposers.length} items including named ones:`, Array.from(this._map.entries()).map(e => e[0]));
51
42
  }
52
43
  const copy = this._disposers.slice().reverse();
53
44
  this._disposers.length = 0;
@@ -60,16 +51,17 @@ exports.Disposer = Disposer;
60
51
  function combineDisposers(...items) {
61
52
  return () => items.forEach(i => i());
62
53
  }
63
- class Disposable {
64
- disposer;
54
+ class Disposable extends loggable_js_1.Loggable {
55
+ disposer = new Disposer();
65
56
  _isDisposed = false;
66
- constructor(loggerName = null) {
67
- this.disposer = new Disposer(loggerName);
68
- }
69
57
  dispose = () => {
70
58
  this._isDisposed = true;
71
59
  this.disposer.dispose();
72
60
  };
61
+ setLogger(logger) {
62
+ this.disposer.setLogger(logger);
63
+ return super.setLogger(logger);
64
+ }
73
65
  }
74
66
  exports.Disposable = Disposable;
75
67
  function isDisposable(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../../../src/functions/disposer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disposer.js","sourceRoot":"","sources":["../../../src/functions/disposer.ts"],"names":[],"mappings":";;;AAyEA,4CAEC;AAkBD,oCAEC;AAED,gCAOC;AAxGD,uDAAiD;AAejD,MAAa,QAAS,SAAQ,sBAAQ;IAEjB,UAAU,GAAsB,EAAE,CAAC;IACnC,IAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEpD,GAAG,CAAC,CAAgC,EAAE,EAAW;QACpD,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO;QACX,CAAC;QAED,MAAM,EAAE,GAAoB,OAAO,CAAC,KAAK,UAAU;YAC/C,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,CAAC,CAAC;QAER,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzB,IAAI,EAAE,EAAE,CAAC;YACL,uCAAuC;YACvC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAEM,OAAO,CAAC,EAAU;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,CAAC,EAAE,CAAC;IACR,CAAC;IAEM,OAAO,CAAC,GAAG,GAAG,KAAK;QACtB,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,aAAa,IAAI,CAAC,UAAU,CAAC,MAAM,8BAA8B,EACjE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;QACN,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAElB,oCAAoC;QACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACJ;AAxDD,4BAwDC;AAED,SAAgB,gBAAgB,CAAC,GAAG,KAAwB;IACxD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAa,UAAW,SAAQ,sBAAQ;IAEjB,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IACnC,WAAW,GAAG,KAAK,CAAC;IAEvB,OAAO,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEK,SAAS,CAAC,MAAkC;QAC/C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACJ;AAdD,gCAcC;AAED,SAAgB,YAAY,CAAC,CAAU;IACnC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC;AAC7F,CAAC;AAED,SAAgB,UAAU,CAAC,CAAU;IACjC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,CAAC,CAAC,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -2,16 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ThrottleProcessor = exports.ThrottleAction = void 0;
4
4
  const manualPromise_js_1 = require("../async/manualPromise.js");
5
- const shared_js_1 = require("../logger/shared.js");
6
- const index_js_1 = require("../math/index.js");
5
+ const index_js_1 = require("../logger/index.js");
6
+ const index_js_2 = require("../math/index.js");
7
7
  const safe_js_1 = require("./safe.js");
8
8
  /** Runs a callback after a timeout, ignoring all consecutive calls until the first is processed. */
9
- class ThrottleAction {
9
+ class ThrottleAction extends index_js_1.Loggable {
10
10
  timeout;
11
11
  _timeoutRef = null;
12
12
  _postponedCb = null;
13
13
  _locked = false;
14
- _logger = null;
15
14
  /**
16
15
  * In case previous action has started processing but not finished yet, and the following one is going to start,
17
16
  * this flag allows to run the second in parallel.
@@ -19,21 +18,13 @@ class ThrottleAction {
19
18
  _allowParallelRuns = false;
20
19
  _currentRun = null;
21
20
  constructor(timeout = 1000) {
21
+ super();
22
22
  this.timeout = timeout;
23
23
  }
24
24
  useParallelRuns() {
25
25
  this._allowParallelRuns = true;
26
26
  return this;
27
27
  }
28
- useLogger(logger) {
29
- if (typeof logger === 'string') {
30
- this._logger = (0, shared_js_1.createLogger)(logger);
31
- }
32
- else {
33
- this._logger = logger;
34
- }
35
- return this;
36
- }
37
28
  clear() {
38
29
  if (this._timeoutRef) {
39
30
  clearTimeout(this._timeoutRef);
@@ -67,11 +58,11 @@ class ThrottleAction {
67
58
  // This is probably OK since the running call should cover the current one.
68
59
  // TODO Maybe just don't start timeout if the lock is set?
69
60
  // The reason for not doing that 👆 is there's still a valid case when previous is still working but it's legit to start a new one (e.g. some state has changed already)
70
- this._logger?.warn('[ThrottleAction] THROTTLE LOCKED, but another call is forced. Skipping since the behavior is undefined.');
61
+ this.logger?.warn('[ThrottleAction] THROTTLE LOCKED, but another call is forced. Skipping since the behavior is undefined.');
71
62
  }
72
63
  else if (cb) {
73
64
  let result = undefined;
74
- const lockId = (0, index_js_1.random)(1, 1_000_000);
65
+ const lockId = (0, index_js_2.random)(1, 1_000_000);
75
66
  try {
76
67
  this._locked = lockId;
77
68
  result = await cb();
@@ -107,8 +98,8 @@ class ThrottleProcessor {
107
98
  this._action = new ThrottleAction(timeout)
108
99
  .useParallelRuns();
109
100
  }
110
- useLogger(logger) {
111
- this._action.useLogger(logger);
101
+ setLogger(logger) {
102
+ this._action.setLogger(logger);
112
103
  return this;
113
104
  }
114
105
  async push(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../../src/functions/throttle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../../src/functions/throttle.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.batchLoggers = batchLoggers;
4
+ const empty_js_1 = require("./empty.js");
4
5
  function batchLoggers(...loggers) {
6
+ const filtered = loggers.filter(l => !!l);
7
+ if (filtered.length === 0) {
8
+ return empty_js_1.EMPTY_LOGGER;
9
+ }
10
+ if (filtered.length === 1) {
11
+ return filtered[0];
12
+ }
5
13
  return {
6
- log: (...args) => loggers.forEach(l => l.log(...args)),
7
- warn: (...args) => loggers.forEach(l => l.warn(...args)),
8
- error: (...args) => loggers.forEach(l => l.error(...args)),
14
+ log: (...args) => {
15
+ for (let i = 0, len = filtered.length; i < len; ++i) {
16
+ filtered[i].log(...args);
17
+ }
18
+ },
19
+ warn: (...args) => {
20
+ for (let i = 0, len = filtered.length; i < len; ++i) {
21
+ filtered[i].warn(...args);
22
+ }
23
+ },
24
+ error: (...args) => {
25
+ for (let i = 0, len = filtered.length; i < len; ++i) {
26
+ filtered[i].error(...args);
27
+ }
28
+ },
9
29
  };
10
30
  }
11
31
  //# sourceMappingURL=batch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/logger/batch.ts"],"names":[],"mappings":";;AAEA,oCAMC;AAND,SAAgB,YAAY,CAAC,GAAG,OAAkB;IAC9C,OAAO;QACH,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;KACpE,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/logger/batch.ts"],"names":[],"mappings":";;AAIA,oCA2BC;AA7BD,yCAA0C;AAE1C,SAAgB,YAAY,CAAC,GAAG,OAA4B;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,uBAAY,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACH,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;gBAClD,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;gBAClD,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;gBAClD,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseBufferedLogger = void 0;
4
+ const types_js_1 = require("../types.js");
5
+ class BaseBufferedLogger {
6
+ name;
7
+ _buffer = [];
8
+ _maxBufferSize = 100;
9
+ constructor(name) {
10
+ this.name = name;
11
+ }
12
+ get entries() { return this._buffer.length; }
13
+ get maxBufferSize() { return this._maxBufferSize; }
14
+ getBuffer() { return this._buffer.slice(); }
15
+ withMaxBufferSize(size) {
16
+ this._maxBufferSize = size;
17
+ return this;
18
+ }
19
+ log(...args) {
20
+ this._buffer.push([types_js_1.LogLevels.log, args, Date.now()]);
21
+ this.tryAutoFlush();
22
+ }
23
+ warn(...args) {
24
+ this._buffer.push([types_js_1.LogLevels.warn, args, Date.now()]);
25
+ this.tryAutoFlush();
26
+ }
27
+ error(...args) {
28
+ this._buffer.push([types_js_1.LogLevels.error, args, Date.now()]);
29
+ this.tryAutoFlush();
30
+ }
31
+ flush() {
32
+ if (this._buffer.length > 0) {
33
+ const copy = this._buffer.slice();
34
+ this._buffer.length = 0;
35
+ this.doFlush(copy);
36
+ this.onFlushed();
37
+ }
38
+ }
39
+ dispose() {
40
+ this.flush();
41
+ }
42
+ onFlushed() {
43
+ // Optional: Override to handle post-flush actions
44
+ }
45
+ tryAutoFlush() {
46
+ if (this._buffer.length >= this._maxBufferSize) {
47
+ this.flush();
48
+ }
49
+ }
50
+ }
51
+ exports.BaseBufferedLogger = BaseBufferedLogger;
52
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/logger/buffered/base.ts"],"names":[],"mappings":";;;AACA,0CAA2E;AAK3E,MAAsB,kBAAkB;IAIR;IAHX,OAAO,GAAe,EAAE,CAAC;IAClC,cAAc,GAAG,GAAG,CAAC;IAE7B,YAA4B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAI,CAAC;IAE7C,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,IAAW,aAAa,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAEnD,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAEnD,iBAAiB,CAAC,IAAY;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,GAAG,IAAW;QACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,GAAG,IAAW;QACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAG,IAAW;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAIS,SAAS;QACf,kDAAkD;IACtD,CAAC;IAES,YAAY;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC;CAEJ;AAxDD,gDAwDC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BufferedLogger = void 0;
4
+ const calc_js_1 = require("../../math/calc.js");
5
+ const types_js_1 = require("../types.js");
6
+ const base_js_1 = require("./base.js");
7
+ const Prefixes = {
8
+ [1]: '\n\t--->',
9
+ [2]: '\n\t---> [WARN]',
10
+ [3]: '\n\t---> [ERROR]',
11
+ };
12
+ class BufferedLogger extends base_js_1.BaseBufferedLogger {
13
+ _target;
14
+ _binded;
15
+ constructor(name, target) {
16
+ super(name);
17
+ this._target = target;
18
+ this._binded = {
19
+ [types_js_1.LogLevels.log]: this._target.log.bind(this._target),
20
+ [types_js_1.LogLevels.warn]: this._target.warn.bind(this._target),
21
+ [types_js_1.LogLevels.error]: this._target.error.bind(this._target),
22
+ };
23
+ }
24
+ doFlush(buffer) {
25
+ const result = [
26
+ this.name,
27
+ ];
28
+ let maxLevel = types_js_1.LogLevels.log;
29
+ for (const [level, args] of buffer) {
30
+ if (level > maxLevel) {
31
+ maxLevel = level;
32
+ }
33
+ result.push(Prefixes[level], ...args);
34
+ }
35
+ maxLevel = (0, calc_js_1.clamp)(maxLevel, types_js_1.LogLevels.log, types_js_1.LogLevels.error);
36
+ this._binded[maxLevel](...result);
37
+ }
38
+ }
39
+ exports.BufferedLogger = BufferedLogger;
40
+ //# sourceMappingURL=buffered.logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffered.logger.js","sourceRoot":"","sources":["../../../../src/logger/buffered/buffered.logger.ts"],"names":[],"mappings":";;;AAAA,gDAA2C;AAC3C,0CAA2F;AAC3F,uCAAyD;AAEzD,MAAM,QAAQ,GAAmC;IAC7C,CAAC,CAAC,CAAC,EAAE,UAAU;IACf,CAAC,CAAC,CAAC,EAAE,iBAAiB;IACtB,CAAC,CAAC,CAAC,EAAE,kBAAkB;CAC1B,CAAC;AAEF,MAAa,cAAe,SAAQ,4BAAkB;IAEjC,OAAO,CAAU;IAC1B,OAAO,CAAiC;IAEhD,YAAY,IAAY,EAAE,MAAe;QACrC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG;YACX,CAAC,oBAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACpD,CAAC,oBAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACtD,CAAC,oBAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SAC3D,CAAC;IACN,CAAC;IAES,OAAO,CAAC,MAAkB;QAChC,MAAM,MAAM,GAAU;YAClB,IAAI,CAAC,IAAI;SACZ,CAAC;QACF,IAAI,QAAQ,GAAW,oBAAS,CAAC,GAAG,CAAC;QAErC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACnB,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC;YAED,MAAM,CAAC,IAAI,CACP,QAAQ,CAAC,KAAK,CAAC,EACf,GAAG,IAAI,CACV,CAAC;QACN,CAAC;QAED,QAAQ,GAAG,IAAA,eAAK,EAAC,QAAQ,EAAE,oBAAS,CAAC,GAAG,EAAE,oBAAS,CAAC,KAAK,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IACtC,CAAC;CACJ;AApCD,wCAoCC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BufferedMemoryLogger = void 0;
4
+ const base_js_1 = require("./base.js");
5
+ const Prefixes = {
6
+ [1]: '[LOG]',
7
+ [2]: '[WARN]',
8
+ [3]: '[ERROR]',
9
+ };
10
+ class BufferedMemoryLogger extends base_js_1.BaseBufferedLogger {
11
+ _memory = [];
12
+ _timestamps = false;
13
+ _argFormatter = formatArg;
14
+ _argsJoiner = (args) => args.filter(Boolean).join(' ');
15
+ constructor(name) {
16
+ super(name);
17
+ }
18
+ setArgsJoiner(joiner) {
19
+ this._argsJoiner = joiner;
20
+ return this;
21
+ }
22
+ setArgFormatter(formatter) {
23
+ this._argFormatter = formatter;
24
+ return this;
25
+ }
26
+ withTimestamps() {
27
+ this._timestamps = true;
28
+ return this;
29
+ }
30
+ getMemory(clear = false) {
31
+ if (clear) {
32
+ const copy = this._memory;
33
+ this._memory = [];
34
+ return copy;
35
+ }
36
+ return this._memory.slice();
37
+ }
38
+ clearMemory() {
39
+ this._memory.length = 0;
40
+ }
41
+ getPrefix(level) {
42
+ return Prefixes[level];
43
+ }
44
+ getTimestamp(timestamp) {
45
+ return new Date(timestamp).toISOString();
46
+ }
47
+ formatLine(line) {
48
+ return this._argsJoiner(line.map(this._argFormatter));
49
+ }
50
+ doFlush(buffer) {
51
+ for (const [level, args, timestamp] of buffer) {
52
+ this._memory.push(this.combineLine(level, args, timestamp));
53
+ }
54
+ }
55
+ combineLine(level, args, timestamp) {
56
+ const line = [];
57
+ if (this._timestamps) {
58
+ line.push(this.getTimestamp(timestamp));
59
+ }
60
+ line.push(this.getPrefix(level), ...args);
61
+ return this.formatLine(line);
62
+ }
63
+ }
64
+ exports.BufferedMemoryLogger = BufferedMemoryLogger;
65
+ function formatArg(arg) {
66
+ if (typeof arg === 'object') {
67
+ return JSON.stringify(arg);
68
+ }
69
+ return String(arg);
70
+ }
71
+ //# sourceMappingURL=buffered.memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffered.memory.js","sourceRoot":"","sources":["../../../../src/logger/buffered/buffered.memory.ts"],"names":[],"mappings":";;;AACA,uCAAyD;AAEzD,MAAM,QAAQ,GAAmC;IAC7C,CAAC,CAAC,CAAC,EAAE,OAAO;IACZ,CAAC,CAAC,CAAC,EAAE,QAAQ;IACb,CAAC,CAAC,CAAC,EAAE,SAAS;CACjB,CAAC;AAEF,MAAa,oBAAqB,SAAQ,4BAAkB;IAE9C,OAAO,GAAa,EAAE,CAAC;IACzB,WAAW,GAAY,KAAK,CAAC;IAE7B,aAAa,GAAG,SAAS,CAAC;IAC1B,WAAW,GAAG,CAAC,IAAc,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjF,YAAY,IAAY;QACpB,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,MAAkC;QAC5C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,SAAmC;QAC/C,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,KAAK,GAAG,KAAK;QAC1B,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAES,SAAS,CAAC,KAAqB;QACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAES,YAAY,CAAC,SAAiB;QACpC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAES,UAAU,CAAC,IAAW;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,CAAC;IAES,OAAO,CAAC,MAAkB;QAChC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAES,WAAW,CAAC,KAAqB,EAAE,IAAW,EAAE,SAAiB;QACvE,MAAM,IAAI,GAAU,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ;AAtED,oDAsEC;AAED,SAAS,SAAS,CAAC,GAAQ;IACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC"}