@daiso-tech/core 0.44.0 → 0.45.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 (134) hide show
  1. package/README.md +3 -0
  2. package/dist/cache/contracts/cache.errors.d.ts +3 -3
  3. package/dist/cache/contracts/cache.errors.js +1 -1
  4. package/dist/cache/contracts/cache.errors.js.map +1 -1
  5. package/dist/cache/contracts/cache.events.d.ts +8 -8
  6. package/dist/cache/contracts/cache.events.js +1 -1
  7. package/dist/cache/contracts/cache.events.js.map +1 -1
  8. package/dist/cache/implementations/derivables/cache/cache.d.ts +2 -8
  9. package/dist/cache/implementations/derivables/cache/cache.js +3 -8
  10. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  11. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +2 -2
  12. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +2 -4
  13. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  14. package/dist/cache/implementations/test-utilities/cache.test-suite.js +141 -36
  15. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  16. package/dist/circuit-breaker/contracts/circuit-breaker.errors.d.ts +3 -3
  17. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js +1 -1
  18. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js.map +1 -1
  19. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +11 -8
  20. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js +3 -8
  21. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -1
  22. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.d.ts +2 -2
  23. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js +1 -1
  24. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js.map +1 -1
  25. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.d.ts +4 -4
  26. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js +1 -1
  27. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js.map +1 -1
  28. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.d.ts +2 -2
  29. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js +2 -4
  30. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js.map +1 -1
  31. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.d.ts +2 -2
  32. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js +2 -4
  33. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js.map +1 -1
  34. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +2 -8
  35. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +3 -8
  36. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  37. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +2 -2
  38. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +2 -4
  39. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  40. package/dist/lock/contracts/lock.errors.d.ts +4 -4
  41. package/dist/lock/contracts/lock.errors.js +1 -1
  42. package/dist/lock/contracts/lock.errors.js.map +1 -1
  43. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +11 -8
  44. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +3 -8
  45. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  46. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +2 -2
  47. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +1 -1
  48. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  49. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +4 -4
  50. package/dist/lock/implementations/derivables/lock-provider/lock.js +1 -1
  51. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  52. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +2 -2
  53. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +2 -4
  54. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  55. package/dist/namespace/contracts/_module-exports.d.ts +1 -0
  56. package/dist/namespace/contracts/_module-exports.js +2 -0
  57. package/dist/namespace/contracts/_module-exports.js.map +1 -0
  58. package/dist/namespace/contracts/_module.d.ts +1 -0
  59. package/dist/namespace/contracts/_module.js +2 -0
  60. package/dist/namespace/contracts/_module.js.map +1 -0
  61. package/dist/namespace/contracts/namespace.contract.d.ts +17 -0
  62. package/dist/namespace/contracts/namespace.contract.js +5 -0
  63. package/dist/namespace/contracts/namespace.contract.js.map +1 -0
  64. package/dist/namespace/implementations/_module-exports.d.ts +2 -0
  65. package/dist/namespace/implementations/_module-exports.js +3 -0
  66. package/dist/namespace/implementations/_module-exports.js.map +1 -0
  67. package/dist/namespace/implementations/_module.d.ts +2 -0
  68. package/dist/namespace/implementations/_module.js +3 -0
  69. package/dist/namespace/implementations/_module.js.map +1 -0
  70. package/dist/namespace/{namespace.d.ts → implementations/namespace.d.ts} +18 -33
  71. package/dist/namespace/{namespace.js → implementations/namespace.js} +20 -4
  72. package/dist/namespace/implementations/namespace.js.map +1 -0
  73. package/dist/namespace/implementations/no-op-namespace.d.ts +14 -0
  74. package/dist/namespace/implementations/no-op-namespace.js +34 -0
  75. package/dist/namespace/implementations/no-op-namespace.js.map +1 -0
  76. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +21 -9
  77. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js +30 -10
  78. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -1
  79. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.d.ts +38 -0
  80. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js +75 -0
  81. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js.map +1 -0
  82. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.d.ts +21 -2
  83. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js +25 -2
  84. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map +1 -1
  85. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.d.ts +2 -2
  86. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js +2 -4
  87. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js.map +1 -1
  88. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.d.ts +2 -2
  89. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js +2 -4
  90. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js.map +1 -1
  91. package/dist/semaphore/contracts/semaphore.errors.d.ts +4 -4
  92. package/dist/semaphore/contracts/semaphore.errors.js +1 -1
  93. package/dist/semaphore/contracts/semaphore.errors.js.map +1 -1
  94. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +11 -8
  95. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js +3 -8
  96. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
  97. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.d.ts +2 -2
  98. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js +1 -1
  99. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +1 -1
  100. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.d.ts +4 -4
  101. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js +1 -1
  102. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +1 -1
  103. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.d.ts +2 -2
  104. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js +2 -4
  105. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +1 -1
  106. package/dist/shared-lock/contracts/shared-lock.errors.d.ts +7 -7
  107. package/dist/shared-lock/contracts/shared-lock.errors.js +1 -1
  108. package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -1
  109. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +11 -8
  110. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js +3 -8
  111. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
  112. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.d.ts +2 -2
  113. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js +1 -1
  114. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +1 -1
  115. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.d.ts +4 -4
  116. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js +1 -1
  117. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +1 -1
  118. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.d.ts +2 -2
  119. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js +2 -4
  120. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +1 -1
  121. package/dist/task/implementations/task.d.ts +1 -1
  122. package/dist/task/implementations/task.js +1 -1
  123. package/dist/task/implementations/task.js.map +1 -1
  124. package/dist/time-span/implementations/time-span.d.ts +17 -0
  125. package/dist/time-span/implementations/time-span.js +27 -1
  126. package/dist/time-span/implementations/time-span.js.map +1 -1
  127. package/package.json +53 -52
  128. package/dist/namespace/_module-exports.d.ts +0 -1
  129. package/dist/namespace/_module-exports.js +0 -2
  130. package/dist/namespace/_module-exports.js.map +0 -1
  131. package/dist/namespace/_module.d.ts +0 -1
  132. package/dist/namespace/_module.js +0 -2
  133. package/dist/namespace/_module.js.map +0 -1
  134. package/dist/namespace/namespace.js.map +0 -1
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import {} from "../../../../event-bus/contracts/_module.js";
5
5
  import {} from "../../../../lock/contracts/_module.js";
6
- import { DEFAULT_LOCK_PROVIDER_NAMESPACE, LockProvider, } from "../../../../lock/implementations/derivables/lock-provider/_module.js";
7
- import {} from "../../../../namespace/_module.js";
6
+ import { LockProvider, } from "../../../../lock/implementations/derivables/lock-provider/_module.js";
7
+ import {} from "../../../../namespace/contracts/_module.js";
8
8
  import {} from "../../../../time-span/contracts/_module.js";
9
9
  import { DefaultAdapterNotDefinedError, UnregisteredAdapterError, } from "../../../../utilities/_module.js";
10
10
  /**
@@ -123,11 +123,9 @@ export class LockProviderFactory {
123
123
  if (adapter === undefined) {
124
124
  throw new UnregisteredAdapterError(adapterName);
125
125
  }
126
- const { namespace = DEFAULT_LOCK_PROVIDER_NAMESPACE } = this.settings;
127
126
  return new LockProvider({
128
127
  ...this.settings,
129
128
  adapter,
130
- namespace: namespace.appendRoot(adapterName),
131
129
  serdeTransformerName: adapterName,
132
130
  });
133
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lock-provider-factory.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAIN,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,+BAA+B,EAC/B,YAAY,GAEf,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EACH,6BAA6B,EAC7B,wBAAwB,GAE3B,MAAM,wBAAwB,CAAC;AAuBhC;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAyBP;IAtBrB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YACqB,QAAgD;QAAhD,aAAQ,GAAR,QAAQ,CAAwC;IAClE,CAAC;IAEJ,YAAY,CAAC,SAAoB;QAC7B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CACX,QAA+B;QAE/B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,YAAY,EAAE,QAAQ;SACzB,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,QAAmB;QAC3B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,GAAc;QACxB,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,GAAG;SAClB,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B,CACtB,QAAmB;QAEnB,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,uBAAuB,EAAE,QAAQ;SACpC,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB,CAAC,IAAe;QAClC,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,mBAAmB,EAAE,IAAI;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,IAAe;QACjC,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,kBAAkB,EAAE,IAAI;SAC3B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,GAAG,CACC,cAAqC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAEjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,SAAS,GAAG,+BAA+B,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtE,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO;YACP,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;YAC5C,oBAAoB,EAAE,WAAW;SACpC,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"lock-provider-factory.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAIN,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,YAAY,GAEf,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAmB,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EACH,6BAA6B,EAC7B,wBAAwB,GAE3B,MAAM,wBAAwB,CAAC;AAuBhC;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAyBP;IAtBrB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YACqB,QAAgD;QAAhD,aAAQ,GAAR,QAAQ,CAAwC;IAClE,CAAC;IAEJ,YAAY,CAAC,SAAqB;QAC9B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CACX,QAA+B;QAE/B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,YAAY,EAAE,QAAQ;SACzB,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,QAAmB;QAC3B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,GAAc;QACxB,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,GAAG;SAClB,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B,CACtB,QAAmB;QAEnB,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,uBAAuB,EAAE,QAAQ;SACpC,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB,CAAC,IAAe;QAClC,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,mBAAmB,EAAE,IAAI;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,IAAe;QACjC,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,kBAAkB,EAAE,IAAI;SAC3B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,GAAG,CACC,cAAqC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAEjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO;YACP,oBAAoB,EAAE,WAAW;SACpC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1 @@
1
+ export type * from "../../namespace/contracts/namespace.contract.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=_module-exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/namespace/contracts/_module-exports.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type * from "../../namespace/contracts/namespace.contract.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=_module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../src/namespace/contracts/_module.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module Namespace
3
+ */
4
+ /**
5
+ * @group Contracts
6
+ */
7
+ export type IKey = {
8
+ get(): string;
9
+ toString(): string;
10
+ };
11
+ /**
12
+ * @group Contracts
13
+ */
14
+ export type INamespace = {
15
+ toString(): string;
16
+ create(key: string): IKey;
17
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @module Namespace
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=namespace.contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.contract.js","sourceRoot":"","sources":["../../../src/namespace/contracts/namespace.contract.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,2 @@
1
+ export * from "../../namespace/implementations/namespace.js";
2
+ export * from "../../namespace/implementations/_module.js";
@@ -0,0 +1,3 @@
1
+ export * from "../../namespace/implementations/namespace.js";
2
+ export * from "../../namespace/implementations/_module.js";
3
+ //# sourceMappingURL=_module-exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/namespace/implementations/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../../namespace/implementations/namespace.js";
2
+ export * from "../../namespace/implementations/no-op-namespace.js";
@@ -0,0 +1,3 @@
1
+ export * from "../../namespace/implementations/namespace.js";
2
+ export * from "../../namespace/implementations/no-op-namespace.js";
3
+ //# sourceMappingURL=_module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../src/namespace/implementations/_module.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC"}
@@ -1,33 +1,10 @@
1
1
  /**
2
2
  * @module Namespace
3
3
  */
4
- import { type OneOrMore } from "../utilities/_module.js";
4
+ import { type IKey, type INamespace } from "../../namespace/contracts/_module.js";
5
+ import { type ISerializable } from "../../serde/contracts/flexible-serde.contract.js";
6
+ import { type OneOrMore } from "../../utilities/_module.js";
5
7
  /**
6
- * @internal
7
- */
8
- type KeySettings = {
9
- prefixArr: Array<string>;
10
- key: string;
11
- delimeter: string;
12
- };
13
- /**
14
- *
15
- * IMPORT_PATH: `"@daiso-tech/core/namespace"`
16
- */
17
- export declare class Key {
18
- private readonly prefixArr;
19
- private readonly key;
20
- private readonly delimeter;
21
- /**
22
- *
23
- * @internal
24
- */
25
- constructor(settings: KeySettings);
26
- get(): string;
27
- toString(): string;
28
- }
29
- /**
30
- *
31
8
  * IMPORT_PATH: `"@daiso-tech/core/namespace"`
32
9
  */
33
10
  export type NamespaceSettings = {
@@ -40,10 +17,17 @@ export type NamespaceSettings = {
40
17
  */
41
18
  rootIdentifier?: string;
42
19
  };
20
+ export type SerializedNamespace = {
21
+ version: "1";
22
+ root: string | string[];
23
+ delimiter: string;
24
+ rootIdentifier: string;
25
+ };
43
26
  /**
44
27
  * The `Namespace` class adds prefixes/suffixes to keys to avoid conflicts and group related items.
45
28
  *
46
29
  * IMPORT_PATH: `"@daiso-tech/core/namespace"`
30
+ * @group Adapters
47
31
  *
48
32
  * @example
49
33
  * ```ts
@@ -70,18 +54,19 @@ export type NamespaceSettings = {
70
54
  *
71
55
  * ```
72
56
  */
73
- export declare class Namespace {
57
+ export declare class Namespace implements INamespace, ISerializable<SerializedNamespace> {
74
58
  private readonly root;
59
+ static deserialize(serialized: SerializedNamespace): Namespace;
75
60
  private readonly delimeter;
76
61
  private readonly rootIdentifier;
77
62
  constructor(root: OneOrMore<string>, settings?: NamespaceSettings);
78
- setDelimeter(delimeter: string): Namespace;
79
- setRootIdentifier(identifier: string): Namespace;
80
- appendRoot(str: OneOrMore<string>): Namespace;
81
- prependRoot(str: OneOrMore<string>): Namespace;
63
+ serialize(): SerializedNamespace;
64
+ setDelimeter(delimeter: string): INamespace;
65
+ setRootIdentifier(identifier: string): INamespace;
66
+ appendRoot(str: OneOrMore<string>): INamespace;
67
+ prependRoot(str: OneOrMore<string>): INamespace;
82
68
  private validate;
83
69
  private getKeyPrefixArray;
84
70
  toString(): string;
85
- create(key: string): Key;
71
+ create(key: string): IKey;
86
72
  }
87
- export {};
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * @module Namespace
3
3
  */
4
- import { resolveOneOrMoreStr, resolveOneOrMore, UnexpectedError, } from "../utilities/_module.js";
4
+ import {} from "../../namespace/contracts/_module.js";
5
+ import {} from "../../serde/contracts/flexible-serde.contract.js";
6
+ import { resolveOneOrMoreStr, resolveOneOrMore, UnexpectedError, } from "../../utilities/_module.js";
5
7
  /**
6
- *
7
- * IMPORT_PATH: `"@daiso-tech/core/namespace"`
8
+ * @internal
8
9
  */
9
- export class Key {
10
+ class Key {
10
11
  prefixArr;
11
12
  key;
12
13
  delimeter;
@@ -31,6 +32,7 @@ export class Key {
31
32
  * The `Namespace` class adds prefixes/suffixes to keys to avoid conflicts and group related items.
32
33
  *
33
34
  * IMPORT_PATH: `"@daiso-tech/core/namespace"`
35
+ * @group Adapters
34
36
  *
35
37
  * @example
36
38
  * ```ts
@@ -59,6 +61,12 @@ export class Key {
59
61
  */
60
62
  export class Namespace {
61
63
  root;
64
+ static deserialize(serialized) {
65
+ return new Namespace(serialized.root, {
66
+ delimeter: serialized.delimiter,
67
+ rootIdentifier: serialized.rootIdentifier,
68
+ });
69
+ }
62
70
  delimeter;
63
71
  rootIdentifier;
64
72
  constructor(root, settings = {}) {
@@ -67,6 +75,14 @@ export class Namespace {
67
75
  this.delimeter = delimeter;
68
76
  this.rootIdentifier = rootIdentifier;
69
77
  }
78
+ serialize() {
79
+ return {
80
+ root: typeof this.root === "string" ? this.root : [...this.root],
81
+ delimiter: this.delimeter,
82
+ rootIdentifier: this.rootIdentifier,
83
+ version: "1",
84
+ };
85
+ }
70
86
  setDelimeter(delimeter) {
71
87
  return new Namespace(this.root, {
72
88
  rootIdentifier: this.rootIdentifier,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/namespace/implementations/namespace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAsB,MAAM,8CAA8C,CAAC;AAClF,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAElB,MAAM,wBAAwB,CAAC;AAWhC;;GAEG;AACH,MAAM,GAAG;IACY,SAAS,CAAgB;IACzB,GAAG,CAAS;IACZ,SAAS,CAAS;IAEnC;;;OAGG;IACH,YAAY,QAAqB;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,OAAO,mBAAmB,CACtB,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAC7B,IAAI,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;CACJ;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,SAAS;IAcG;IAXrB,MAAM,CAAC,WAAW,CAAC,UAA+B;QAC9C,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE;YAClC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,cAAc,EAAE,UAAU,CAAC,cAAc;SAC5C,CAAC,CAAC;IACP,CAAC;IAEgB,SAAS,CAAS;IAClB,cAAc,CAAS;IAExC,YACqB,IAAuB,EACxC,WAA8B,EAAE;QADf,SAAI,GAAJ,IAAI,CAAmB;QAGxC,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAED,SAAS;QACL,OAAO;YACH,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAChE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,GAAG;SACf,CAAC;IACN,CAAC;IAED,YAAY,CAAC,SAAiB;QAC1B,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YAC5B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAChC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YAC5B,cAAc,EAAE,UAAU;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,GAAsB;QAC7B,OAAO,IAAI,SAAS,CAChB,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAC1D;YACI,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CACJ,CAAC;IACN,CAAC;IAED,WAAW,CAAC,GAAsB;QAC9B,OAAO,IAAI,SAAS,CAChB,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAC1D;YACI,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CACJ,CAAC;IACN,CAAC;IAEO,QAAQ,CAAC,GAAW;QACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,eAAe,CACrB,QAAQ,GAAG,yBAAyB,IAAI,CAAC,cAAc,GAAG,CAC7D,CAAC;QACN,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,OAAO;YACH,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YAC9C,IAAI,CAAC,cAAc;SACtB,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,OAAO,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,GAAW;QACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,IAAI,GAAG,CAAC;YACX,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @module Namespace
3
+ */
4
+ import { type IKey, type INamespace } from "../../namespace/contracts/_module.js";
5
+ /**
6
+ * This `NoOpNamespace` will disable namespacing.
7
+ *
8
+ * IMPORT_PATH: `"@daiso-tech/core/namespace"`
9
+ * @group Adapters
10
+ */
11
+ export declare class NoOpNamespace implements INamespace {
12
+ toString(): string;
13
+ create(key: string): IKey;
14
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @module Namespace
3
+ */
4
+ import {} from "../../namespace/contracts/_module.js";
5
+ /**
6
+ * @internal
7
+ */
8
+ class NoOpKey {
9
+ key;
10
+ constructor(key) {
11
+ this.key = key;
12
+ }
13
+ get() {
14
+ return this.key;
15
+ }
16
+ toString() {
17
+ return this.key;
18
+ }
19
+ }
20
+ /**
21
+ * This `NoOpNamespace` will disable namespacing.
22
+ *
23
+ * IMPORT_PATH: `"@daiso-tech/core/namespace"`
24
+ * @group Adapters
25
+ */
26
+ export class NoOpNamespace {
27
+ toString() {
28
+ return "";
29
+ }
30
+ create(key) {
31
+ return new NoOpKey(key);
32
+ }
33
+ }
34
+ //# sourceMappingURL=no-op-namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-op-namespace.js","sourceRoot":"","sources":["../../../src/namespace/implementations/no-op-namespace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA8B,MAAM,kCAAkC,CAAC;AAE9E;;GAEG;AACH,MAAM,OAAO;IACoB;IAA7B,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAE5C,GAAG;QACC,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACtB,QAAQ;QACJ,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAW;QACd,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACJ"}
@@ -2,10 +2,11 @@
2
2
  * @module RateLimiter
3
3
  */
4
4
  import { type EventListener, type IEventBus, type Unsubscribe } from "../../../../event-bus/contracts/_module.js";
5
- import { Namespace } from "../../../../namespace/_module.js";
5
+ import { type INamespace } from "../../../../namespace/contracts/_module.js";
6
6
  import { type IRateLimiter, type IRateLimiterAdapter, type IRateLimiterProvider, type RateLimiterEventMap, type RateLimiterProviderCreateSettings } from "../../../../rate-limiter/contracts/_module.js";
7
+ import { type ISerderRegister } from "../../../../serde/contracts/_module.js";
7
8
  import { type ITask } from "../../../../task/contracts/_module.js";
8
- import { type ErrorPolicy } from "../../../../utilities/_module.js";
9
+ import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js";
9
10
  /**
10
11
  *
11
12
  * IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
@@ -20,7 +21,7 @@ export type RateLimiterProviderSettingsBase = {
20
21
  * new Namespace("@rate-limiter")
21
22
  * ```
22
23
  */
23
- namespace?: Namespace;
24
+ namespace?: INamespace;
24
25
  /**
25
26
  * @default
26
27
  * ```ts
@@ -53,6 +54,20 @@ export type RateLimiterProviderSettingsBase = {
53
54
  * @default true
54
55
  */
55
56
  enableAsyncTracking?: boolean;
57
+ /**
58
+ * @default
59
+ * ```ts
60
+ * import { Serde } from "@daiso-tech/serde";
61
+ * import { NoOpSerdeAdapter } from "@daiso-tech/serde/no-op-serde-adapter";
62
+ *
63
+ * new Serde(new NoOpSerdeAdapter())
64
+ * ```
65
+ */
66
+ serde?: OneOrMore<ISerderRegister>;
67
+ /**
68
+ * @default ""
69
+ */
70
+ serdeTransformerName?: string;
56
71
  };
57
72
  /**
58
73
  *
@@ -62,12 +77,6 @@ export type RateLimiterProviderSettingsBase = {
62
77
  export type RateLimiterProviderSettings = RateLimiterProviderSettingsBase & {
63
78
  adapter: IRateLimiterAdapter;
64
79
  };
65
- /**
66
- *
67
- * IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
68
- * @group Derivables
69
- */
70
- export declare const DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE: Namespace;
71
80
  /**
72
81
  * The `RateLimiterProvider` class can be derived from any {@link IRateLimiterAdapter | `IRateLimiterAdapter`}.
73
82
  *
@@ -81,6 +90,8 @@ export declare class RateLimiterProvider implements IRateLimiterProvider {
81
90
  private readonly onlyError;
82
91
  private readonly defaultErrorPolicy;
83
92
  private readonly enableAsyncTracking;
93
+ private readonly serde;
94
+ private readonly serdeTransformerName;
84
95
  /**
85
96
  * @example
86
97
  * ```ts
@@ -113,6 +124,7 @@ export declare class RateLimiterProvider implements IRateLimiterProvider {
113
124
  * ```
114
125
  */
115
126
  constructor(settings: RateLimiterProviderSettings);
127
+ private registerToSerde;
116
128
  addListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
117
129
  removeListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
118
130
  listenOnce<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
@@ -4,17 +4,16 @@
4
4
  import {} from "../../../../event-bus/contracts/_module.js";
5
5
  import { NoOpEventBusAdapter } from "../../../../event-bus/implementations/adapters/_module.js";
6
6
  import { EventBus } from "../../../../event-bus/implementations/derivables/_module.js";
7
- import { Namespace } from "../../../../namespace/_module.js";
7
+ import {} from "../../../../namespace/contracts/_module.js";
8
+ import { NoOpNamespace } from "../../../../namespace/implementations/_module.js";
8
9
  import {} from "../../../../rate-limiter/contracts/_module.js";
10
+ import { RateLimiterSerdeTransformer } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js";
9
11
  import { RateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
12
+ import {} from "../../../../serde/contracts/_module.js";
13
+ import { NoOpSerdeAdapter } from "../../../../serde/implementations/adapters/_module.js";
14
+ import { Serde } from "../../../../serde/implementations/derivables/_module.js";
10
15
  import {} from "../../../../task/contracts/_module.js";
11
- import {} from "../../../../utilities/_module.js";
12
- /**
13
- *
14
- * IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
15
- * @group Derivables
16
- */
17
- export const DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE = new Namespace("@rate-limiter");
16
+ import { CORE, resolveOneOrMore, } from "../../../../utilities/_module.js";
18
17
  /**
19
18
  * The `RateLimiterProvider` class can be derived from any {@link IRateLimiterAdapter | `IRateLimiterAdapter`}.
20
19
  *
@@ -28,6 +27,8 @@ export class RateLimiterProvider {
28
27
  onlyError;
29
28
  defaultErrorPolicy;
30
29
  enableAsyncTracking;
30
+ serde;
31
+ serdeTransformerName;
31
32
  /**
32
33
  * @example
33
34
  * ```ts
@@ -60,15 +61,32 @@ export class RateLimiterProvider {
60
61
  * ```
61
62
  */
62
63
  constructor(settings) {
63
- const { enableAsyncTracking = true, namespace = DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE, eventBus = new EventBus({
64
+ const { enableAsyncTracking = true, namespace = new NoOpNamespace(), eventBus = new EventBus({
64
65
  adapter: new NoOpEventBusAdapter(),
65
- }), adapter, onlyError = false, defaultErrorPolicy = () => true, } = settings;
66
+ }), adapter, onlyError = false, defaultErrorPolicy = () => true, serde = new Serde(new NoOpSerdeAdapter()), serdeTransformerName = "", } = settings;
67
+ this.serdeTransformerName = serdeTransformerName;
66
68
  this.enableAsyncTracking = enableAsyncTracking;
67
69
  this.namespace = namespace;
68
70
  this.eventBus = eventBus;
69
71
  this.adapter = adapter;
70
72
  this.onlyError = onlyError;
71
73
  this.defaultErrorPolicy = defaultErrorPolicy;
74
+ this.serde = serde;
75
+ this.registerToSerde();
76
+ }
77
+ registerToSerde() {
78
+ const transformer = new RateLimiterSerdeTransformer({
79
+ enableAsyncTracking: this.enableAsyncTracking,
80
+ namespace: this.namespace,
81
+ eventBus: this.eventBus,
82
+ adapter: this.adapter,
83
+ onlyError: this.onlyError,
84
+ errorPolicy: this.defaultErrorPolicy,
85
+ serdeTransformerName: this.serdeTransformerName,
86
+ });
87
+ for (const serde of resolveOneOrMore(this.serde)) {
88
+ serde.registerCustom(transformer, CORE);
89
+ }
72
90
  }
73
91
  addListener(eventName, listener) {
74
92
  return this.eventBus.addListener(eventName, listener);
@@ -98,6 +116,8 @@ export class RateLimiterProvider {
98
116
  key: this.namespace.create(key),
99
117
  errorPolicy,
100
118
  onlyError,
119
+ serdeTransformerName: this.serdeTransformerName,
120
+ namespace: this.namespace,
101
121
  });
102
122
  }
103
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter-provider.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limiter-provider.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @module RateLimiter
3
+ */
4
+ import { type IEventBus } from "../../../../event-bus/contracts/_module.js";
5
+ import { type INamespace } from "../../../../namespace/contracts/_module.js";
6
+ import { type IRateLimiterAdapter, type RateLimiterEventMap } from "../../../../rate-limiter/contracts/_module.js";
7
+ import { RateLimiter, type ISerializedRateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
8
+ import { type ISerdeTransformer } from "../../../../serde/contracts/_module.js";
9
+ import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js";
10
+ /**
11
+ * @internal
12
+ */
13
+ export type RateLimiterSerdeTransformerSettings = {
14
+ adapter: IRateLimiterAdapter;
15
+ namespace: INamespace;
16
+ errorPolicy: ErrorPolicy;
17
+ onlyError: boolean;
18
+ eventBus: IEventBus<RateLimiterEventMap>;
19
+ serdeTransformerName: string;
20
+ enableAsyncTracking: boolean;
21
+ };
22
+ /**
23
+ * @internal
24
+ */
25
+ export declare class RateLimiterSerdeTransformer implements ISerdeTransformer<RateLimiter, ISerializedRateLimiter> {
26
+ private readonly adapter;
27
+ private readonly namespace;
28
+ private readonly errorPolicy;
29
+ private readonly eventBus;
30
+ private readonly serdeTransformerName;
31
+ private readonly enableAsyncTracking;
32
+ private readonly onlyError;
33
+ constructor(settings: RateLimiterSerdeTransformerSettings);
34
+ get name(): OneOrMore<string>;
35
+ isApplicable(value: unknown): value is RateLimiter;
36
+ deserialize(serializedValue: ISerializedRateLimiter): RateLimiter;
37
+ serialize(deserializedValue: RateLimiter): ISerializedRateLimiter;
38
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @module RateLimiter
3
+ */
4
+ import {} from "../../../../event-bus/contracts/_module.js";
5
+ import {} from "../../../../namespace/contracts/_module.js";
6
+ import {} from "../../../../rate-limiter/contracts/_module.js";
7
+ import { RateLimiter, } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
8
+ import {} from "../../../../serde/contracts/_module.js";
9
+ import { getConstructorName, } from "../../../../utilities/_module.js";
10
+ /**
11
+ * @internal
12
+ */
13
+ export class RateLimiterSerdeTransformer {
14
+ adapter;
15
+ namespace;
16
+ errorPolicy;
17
+ eventBus;
18
+ serdeTransformerName;
19
+ enableAsyncTracking;
20
+ onlyError;
21
+ constructor(settings) {
22
+ const { adapter, namespace, eventBus, serdeTransformerName, enableAsyncTracking, errorPolicy, onlyError, } = settings;
23
+ this.onlyError = onlyError;
24
+ this.enableAsyncTracking = enableAsyncTracking;
25
+ this.serdeTransformerName = serdeTransformerName;
26
+ this.adapter = adapter;
27
+ this.namespace = namespace;
28
+ this.eventBus = eventBus;
29
+ this.errorPolicy = errorPolicy;
30
+ this.serdeTransformerName = serdeTransformerName;
31
+ }
32
+ get name() {
33
+ return [
34
+ "rateLimiter",
35
+ this.serdeTransformerName,
36
+ getConstructorName(this.adapter),
37
+ this.namespace.toString(),
38
+ ].filter((str) => str !== "");
39
+ }
40
+ isApplicable(value) {
41
+ const isRateLimiter = value instanceof RateLimiter &&
42
+ getConstructorName(value) === RateLimiter.name;
43
+ if (!isRateLimiter) {
44
+ return false;
45
+ }
46
+ const isSerdTransformerNameMathcing = this.serdeTransformerName ===
47
+ value._internal_getSerdeTransformerName();
48
+ const isNamespaceMatching = this.namespace.toString() ===
49
+ value._internal_getNamespace().toString();
50
+ const isAdapterMatching = getConstructorName(this.adapter) ===
51
+ getConstructorName(value._internal_getAdapter());
52
+ return (isSerdTransformerNameMathcing &&
53
+ isNamespaceMatching &&
54
+ isAdapterMatching);
55
+ }
56
+ deserialize(serializedValue) {
57
+ const { key, limit } = serializedValue;
58
+ const keyObj = this.namespace.create(key);
59
+ return new RateLimiter({
60
+ enableAsyncTracking: this.enableAsyncTracking,
61
+ eventDispatcher: this.eventBus,
62
+ adapter: this.adapter,
63
+ key: keyObj,
64
+ limit,
65
+ onlyError: this.onlyError,
66
+ errorPolicy: this.errorPolicy,
67
+ serdeTransformerName: this.serdeTransformerName,
68
+ namespace: this.namespace,
69
+ });
70
+ }
71
+ serialize(deserializedValue) {
72
+ return RateLimiter._internal_serialize(deserializedValue);
73
+ }
74
+ }
75
+ //# sourceMappingURL=rate-limiter-serde-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter-serde-transformer.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.ts"],"names":[],"mappings":"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"}