@croct/sdk 0.17.7 → 0.17.8

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 (409) hide show
  1. package/activeRecord.cjs.map +1 -0
  2. package/activeRecord.d.ts +8 -4
  3. package/activeRecord.js +115 -106
  4. package/activeRecord.js.map +1 -1
  5. package/apiKey.cjs.map +1 -0
  6. package/apiKey.d.ts +4 -2
  7. package/apiKey.js +152 -141
  8. package/apiKey.js.map +1 -1
  9. package/base64Url.cjs.map +1 -0
  10. package/base64Url.d.ts +4 -2
  11. package/base64Url.js +8 -15
  12. package/base64Url.js.map +1 -1
  13. package/cache/cache.cjs.map +1 -0
  14. package/cache/cache.d.ts +6 -4
  15. package/cache/cache.js +9 -10
  16. package/cache/cache.js.map +1 -1
  17. package/cache/cookieCache.cjs.map +1 -0
  18. package/cache/cookieCache.d.ts +6 -3
  19. package/cache/cookieCache.js +52 -54
  20. package/cache/cookieCache.js.map +1 -1
  21. package/cache/fallbackCache.cjs.map +1 -0
  22. package/cache/fallbackCache.d.ts +5 -2
  23. package/cache/fallbackCache.js +20 -21
  24. package/cache/fallbackCache.js.map +1 -1
  25. package/cache/inMemoryCache.cjs.map +1 -0
  26. package/cache/inMemoryCache.d.ts +5 -2
  27. package/cache/inMemoryCache.js +15 -17
  28. package/cache/inMemoryCache.js.map +1 -1
  29. package/cache/index.cjs.map +1 -0
  30. package/cache/index.d.ts +4 -4
  31. package/cache/index.js +9 -11
  32. package/cache/index.js.map +1 -1
  33. package/cache/localStorageCache.cjs.map +1 -0
  34. package/cache/localStorageCache.d.ts +5 -2
  35. package/cache/localStorageCache.js +55 -63
  36. package/cache/localStorageCache.js.map +1 -1
  37. package/channel/channel.cjs.map +1 -0
  38. package/channel/channel.d.ts +8 -6
  39. package/channel/channel.js +21 -22
  40. package/channel/channel.js.map +1 -1
  41. package/channel/encodedChannel.cjs.map +1 -0
  42. package/channel/encodedChannel.d.ts +6 -3
  43. package/channel/encodedChannel.js +13 -14
  44. package/channel/encodedChannel.js.map +1 -1
  45. package/channel/guaranteedChannel.cjs.map +1 -0
  46. package/channel/guaranteedChannel.d.ts +9 -7
  47. package/channel/guaranteedChannel.js +74 -73
  48. package/channel/guaranteedChannel.js.map +1 -1
  49. package/channel/httpBeaconChannel.cjs.map +1 -0
  50. package/channel/httpBeaconChannel.d.ts +9 -6
  51. package/channel/httpBeaconChannel.js +82 -83
  52. package/channel/httpBeaconChannel.js.map +1 -1
  53. package/channel/index.cjs.map +1 -0
  54. package/channel/index.d.ts +12 -7
  55. package/channel/index.js +15 -17
  56. package/channel/index.js.map +1 -1
  57. package/channel/queuedChannel.cjs.map +1 -0
  58. package/channel/queuedChannel.d.ts +7 -4
  59. package/channel/queuedChannel.js +87 -97
  60. package/channel/queuedChannel.js.map +1 -1
  61. package/channel/retryChannel.cjs.map +1 -0
  62. package/channel/retryChannel.d.ts +7 -5
  63. package/channel/retryChannel.js +58 -57
  64. package/channel/retryChannel.js.map +1 -1
  65. package/channel/sandboxChannel.cjs.map +1 -0
  66. package/channel/sandboxChannel.d.ts +5 -2
  67. package/channel/sandboxChannel.js +34 -35
  68. package/channel/sandboxChannel.js.map +1 -1
  69. package/cid/assigner.cjs.map +1 -0
  70. package/cid/assigner.d.ts +3 -1
  71. package/cid/assigner.js +0 -2
  72. package/cid/assigner.js.map +1 -1
  73. package/cid/cachedAssigner.cjs.map +1 -0
  74. package/cid/cachedAssigner.d.ts +7 -5
  75. package/cid/cachedAssigner.js +37 -43
  76. package/cid/cachedAssigner.js.map +1 -1
  77. package/cid/fixedAssigner.cjs.map +1 -0
  78. package/cid/fixedAssigner.d.ts +5 -2
  79. package/cid/fixedAssigner.js +9 -10
  80. package/cid/fixedAssigner.js.map +1 -1
  81. package/cid/index.cjs.map +1 -0
  82. package/cid/index.d.ts +6 -4
  83. package/cid/index.js +9 -11
  84. package/cid/index.js.map +1 -1
  85. package/cid/remoteAssigner.cjs.map +1 -0
  86. package/cid/remoteAssigner.d.ts +6 -3
  87. package/cid/remoteAssigner.js +36 -37
  88. package/cid/remoteAssigner.js.map +1 -1
  89. package/constants.cjs.map +1 -0
  90. package/constants.d.ts +6 -4
  91. package/constants.js +10 -7
  92. package/constants.js.map +1 -1
  93. package/container.cjs.map +1 -0
  94. package/container.d.ts +28 -15
  95. package/container.js +269 -252
  96. package/container.js.map +1 -1
  97. package/contentFetcher.cjs.map +1 -0
  98. package/contentFetcher.d.ts +17 -14
  99. package/contentFetcher.js +156 -163
  100. package/contentFetcher.js.map +1 -1
  101. package/context.cjs.map +1 -0
  102. package/context.d.ts +13 -9
  103. package/context.js +80 -81
  104. package/context.js.map +1 -1
  105. package/error.cjs.map +1 -0
  106. package/error.d.ts +4 -2
  107. package/error.js +21 -21
  108. package/error.js.map +1 -1
  109. package/evaluator.cjs.map +1 -0
  110. package/evaluator.d.ts +18 -16
  111. package/evaluator.js +179 -179
  112. package/evaluator.js.map +1 -1
  113. package/eventManager.cjs.map +1 -0
  114. package/eventManager.d.ts +8 -6
  115. package/eventManager.js +24 -26
  116. package/eventManager.js.map +1 -1
  117. package/eventSubjectProcessor.cjs.map +1 -0
  118. package/eventSubjectProcessor.d.ts +16 -3
  119. package/eventSubjectProcessor.js +53 -59
  120. package/eventSubjectProcessor.js.map +1 -1
  121. package/facade/contentFetcherFacade.cjs.map +1 -0
  122. package/facade/contentFetcherFacade.d.ts +16 -7
  123. package/facade/contentFetcherFacade.js +32 -35
  124. package/facade/contentFetcherFacade.js.map +1 -1
  125. package/facade/evaluatorFacade.cjs.map +1 -0
  126. package/facade/evaluatorFacade.d.ts +17 -10
  127. package/facade/evaluatorFacade.js +56 -60
  128. package/facade/evaluatorFacade.js.map +1 -1
  129. package/facade/index.cjs.map +1 -0
  130. package/facade/index.d.ts +29 -7
  131. package/facade/index.js +19 -19
  132. package/facade/index.js.map +1 -1
  133. package/facade/sdkFacade.cjs.map +1 -0
  134. package/facade/sdkFacade.d.ts +33 -15
  135. package/facade/sdkFacade.js +201 -214
  136. package/facade/sdkFacade.js.map +1 -1
  137. package/facade/sessionFacade.cjs.map +1 -0
  138. package/facade/sessionFacade.d.ts +18 -3
  139. package/facade/sessionFacade.js +10 -11
  140. package/facade/sessionFacade.js.map +1 -1
  141. package/facade/sessionPatch.cjs.map +1 -0
  142. package/facade/sessionPatch.d.ts +17 -4
  143. package/facade/sessionPatch.js +22 -24
  144. package/facade/sessionPatch.js.map +1 -1
  145. package/facade/trackerFacade.cjs.map +1 -0
  146. package/facade/trackerFacade.d.ts +17 -4
  147. package/facade/trackerFacade.js +67 -57
  148. package/facade/trackerFacade.js.map +1 -1
  149. package/facade/userFacade.cjs.map +1 -0
  150. package/facade/userFacade.d.ts +21 -4
  151. package/facade/userFacade.js +17 -18
  152. package/facade/userFacade.js.map +1 -1
  153. package/facade/userPatch.cjs.map +1 -0
  154. package/facade/userPatch.d.ts +17 -4
  155. package/facade/userPatch.js +22 -24
  156. package/facade/userPatch.js.map +1 -1
  157. package/help.cjs.map +1 -0
  158. package/help.d.ts +3 -1
  159. package/help.js +19 -23
  160. package/help.js.map +1 -1
  161. package/index.cjs.map +1 -0
  162. package/index.d.ts +25 -3
  163. package/index.js +7 -7
  164. package/index.js.map +1 -1
  165. package/logging/consoleLogger.cjs.map +1 -0
  166. package/logging/consoleLogger.d.ts +5 -2
  167. package/logging/consoleLogger.js +23 -24
  168. package/logging/consoleLogger.js.map +1 -1
  169. package/logging/filteredLogger.cjs.map +1 -0
  170. package/logging/filteredLogger.d.ts +8 -5
  171. package/logging/filteredLogger.js +36 -37
  172. package/logging/filteredLogger.js.map +1 -1
  173. package/logging/index.cjs.map +1 -0
  174. package/logging/index.d.ts +5 -5
  175. package/logging/index.js +11 -13
  176. package/logging/index.js.map +1 -1
  177. package/logging/logger.cjs.map +1 -0
  178. package/logging/logger.d.ts +4 -2
  179. package/logging/logger.js +0 -2
  180. package/logging/logger.js.map +1 -1
  181. package/logging/namespacedLogger.cjs.map +1 -0
  182. package/logging/namespacedLogger.d.ts +5 -2
  183. package/logging/namespacedLogger.js +22 -23
  184. package/logging/namespacedLogger.js.map +1 -1
  185. package/logging/nullLogger.cjs.map +1 -0
  186. package/logging/nullLogger.d.ts +5 -2
  187. package/logging/nullLogger.js +11 -16
  188. package/logging/nullLogger.js.map +1 -1
  189. package/namespacedStorage.cjs.map +1 -0
  190. package/namespacedStorage.d.ts +3 -1
  191. package/namespacedStorage.js +51 -52
  192. package/namespacedStorage.js.map +1 -1
  193. package/package.json +60 -6
  194. package/patch.cjs.map +1 -0
  195. package/patch.d.ts +6 -4
  196. package/patch.js +0 -2
  197. package/patch.js.map +1 -1
  198. package/queue/capacityRestrictedQueue.cjs.map +1 -0
  199. package/queue/capacityRestrictedQueue.d.ts +5 -2
  200. package/queue/capacityRestrictedQueue.js +31 -32
  201. package/queue/capacityRestrictedQueue.js.map +1 -1
  202. package/queue/inMemoryQueue.cjs.map +1 -0
  203. package/queue/inMemoryQueue.d.ts +5 -2
  204. package/queue/inMemoryQueue.js +32 -34
  205. package/queue/inMemoryQueue.js.map +1 -1
  206. package/queue/index.cjs.map +1 -0
  207. package/queue/index.d.ts +6 -5
  208. package/queue/index.js +11 -13
  209. package/queue/index.js.map +1 -1
  210. package/queue/monitoredQueue.cjs.map +1 -0
  211. package/queue/monitoredQueue.d.ts +8 -5
  212. package/queue/monitoredQueue.js +104 -110
  213. package/queue/monitoredQueue.js.map +1 -1
  214. package/queue/persistentQueue.cjs.map +1 -0
  215. package/queue/persistentQueue.d.ts +5 -2
  216. package/queue/persistentQueue.js +52 -54
  217. package/queue/persistentQueue.js.map +1 -1
  218. package/queue/queue.cjs.map +1 -0
  219. package/queue/queue.d.ts +3 -1
  220. package/queue/queue.js +0 -2
  221. package/queue/queue.js.map +1 -1
  222. package/retry/arbitraryPolicy.cjs.map +1 -0
  223. package/retry/arbitraryPolicy.d.ts +5 -2
  224. package/retry/arbitraryPolicy.js +14 -15
  225. package/retry/arbitraryPolicy.js.map +1 -1
  226. package/retry/backoffPolicy.cjs.map +1 -0
  227. package/retry/backoffPolicy.d.ts +5 -3
  228. package/retry/backoffPolicy.js +52 -50
  229. package/retry/backoffPolicy.js.map +1 -1
  230. package/retry/index.cjs.map +1 -0
  231. package/retry/index.d.ts +5 -5
  232. package/retry/index.js +11 -13
  233. package/retry/index.js.map +1 -1
  234. package/retry/maxAttemptsPolicy.cjs.map +1 -0
  235. package/retry/maxAttemptsPolicy.d.ts +5 -2
  236. package/retry/maxAttemptsPolicy.js +17 -18
  237. package/retry/maxAttemptsPolicy.js.map +1 -1
  238. package/retry/neverPolicy.cjs.map +1 -0
  239. package/retry/neverPolicy.d.ts +5 -2
  240. package/retry/neverPolicy.js +9 -10
  241. package/retry/neverPolicy.js.map +1 -1
  242. package/retry/policy.cjs.map +1 -0
  243. package/retry/policy.d.ts +3 -1
  244. package/retry/policy.js +0 -2
  245. package/retry/policy.js.map +1 -1
  246. package/schema/attributeSchema.cjs.map +1 -0
  247. package/schema/attributeSchema.d.ts +6 -2
  248. package/schema/attributeSchema.js +7 -7
  249. package/schema/attributeSchema.js.map +1 -1
  250. package/schema/contentFetcherSchemas.cjs.map +1 -0
  251. package/schema/contentFetcherSchemas.d.ts +6 -2
  252. package/schema/contentFetcherSchemas.js +24 -21
  253. package/schema/contentFetcherSchemas.js.map +1 -1
  254. package/schema/contentSchemas.cjs.map +1 -0
  255. package/schema/contentSchemas.d.ts +6 -2
  256. package/schema/contentSchemas.js +45 -45
  257. package/schema/contentSchemas.js.map +1 -1
  258. package/schema/contextSchemas.cjs.map +1 -0
  259. package/schema/contextSchemas.d.ts +6 -2
  260. package/schema/contextSchemas.js +6 -6
  261. package/schema/contextSchemas.js.map +1 -1
  262. package/schema/ecommerceSchemas.cjs.map +1 -0
  263. package/schema/ecommerceSchemas.d.ts +10 -6
  264. package/schema/ecommerceSchemas.js +176 -172
  265. package/schema/ecommerceSchemas.js.map +1 -1
  266. package/schema/evaluatorSchemas.cjs.map +1 -0
  267. package/schema/evaluatorSchemas.d.ts +6 -2
  268. package/schema/evaluatorSchemas.js +46 -30
  269. package/schema/evaluatorSchemas.js.map +1 -1
  270. package/schema/eventSchemas.cjs.map +1 -0
  271. package/schema/eventSchemas.d.ts +16 -12
  272. package/schema/eventSchemas.js +125 -102
  273. package/schema/eventSchemas.js.map +1 -1
  274. package/schema/index.cjs.map +1 -0
  275. package/schema/index.d.ts +14 -11
  276. package/schema/index.js +11 -14
  277. package/schema/index.js.map +1 -1
  278. package/schema/loggerSchema.cjs.map +1 -0
  279. package/schema/loggerSchema.d.ts +6 -2
  280. package/schema/loggerSchema.js +13 -13
  281. package/schema/loggerSchema.js.map +1 -1
  282. package/schema/operationSchemas.cjs.map +1 -0
  283. package/schema/operationSchemas.d.ts +14 -10
  284. package/schema/operationSchemas.js +85 -69
  285. package/schema/operationSchemas.js.map +1 -1
  286. package/schema/sdkFacadeSchemas.cjs.map +1 -0
  287. package/schema/sdkFacadeSchemas.d.ts +6 -2
  288. package/schema/sdkFacadeSchemas.js +65 -51
  289. package/schema/sdkFacadeSchemas.js.map +1 -1
  290. package/schema/sdkSchemas.cjs.map +1 -0
  291. package/schema/sdkSchemas.d.ts +8 -4
  292. package/schema/sdkSchemas.js +80 -78
  293. package/schema/sdkSchemas.js.map +1 -1
  294. package/schema/tokenSchema.cjs.map +1 -0
  295. package/schema/tokenSchema.d.ts +6 -2
  296. package/schema/tokenSchema.js +41 -38
  297. package/schema/tokenSchema.js.map +1 -1
  298. package/schema/userSchema.cjs.map +1 -0
  299. package/schema/userSchema.d.ts +6 -2
  300. package/schema/userSchema.js +183 -134
  301. package/schema/userSchema.js.map +1 -1
  302. package/sdk.cjs.map +1 -0
  303. package/sdk.d.ts +28 -14
  304. package/sdk.js +106 -108
  305. package/sdk.js.map +1 -1
  306. package/sdkEvents.cjs.map +1 -0
  307. package/sdkEvents.d.ts +10 -5
  308. package/sdkEvents.js +0 -2
  309. package/sdkEvents.js.map +1 -1
  310. package/sourceLocation.cjs.map +1 -0
  311. package/sourceLocation.d.ts +7 -5
  312. package/sourceLocation.js +56 -57
  313. package/sourceLocation.js.map +1 -1
  314. package/tab.cjs.map +1 -0
  315. package/tab.d.ts +9 -7
  316. package/tab.js +93 -90
  317. package/tab.js.map +1 -1
  318. package/token/cachedTokenStore.cjs.map +1 -0
  319. package/token/cachedTokenStore.d.ts +8 -3
  320. package/token/cachedTokenStore.js +22 -24
  321. package/token/cachedTokenStore.js.map +1 -1
  322. package/token/inMemoryTokenStore.cjs.map +1 -0
  323. package/token/inMemoryTokenStore.d.ts +7 -2
  324. package/token/inMemoryTokenStore.js +12 -13
  325. package/token/inMemoryTokenStore.js.map +1 -1
  326. package/token/index.cjs.map +1 -0
  327. package/token/index.d.ts +7 -4
  328. package/token/index.js +9 -11
  329. package/token/index.js.map +1 -1
  330. package/token/replicatedTokenStore.cjs.map +1 -0
  331. package/token/replicatedTokenStore.d.ts +7 -2
  332. package/token/replicatedTokenStore.js +14 -15
  333. package/token/replicatedTokenStore.js.map +1 -1
  334. package/token/token.cjs.map +1 -0
  335. package/token/token.d.ts +11 -8
  336. package/token/token.js +212 -195
  337. package/token/token.js.map +1 -1
  338. package/tracker.cjs.map +1 -0
  339. package/tracker.d.ts +20 -13
  340. package/tracker.js +307 -307
  341. package/tracker.js.map +1 -1
  342. package/trackingEvents.cjs.map +1 -0
  343. package/trackingEvents.d.ts +65 -62
  344. package/trackingEvents.js +57 -56
  345. package/trackingEvents.js.map +1 -1
  346. package/transformer.cjs.map +1 -0
  347. package/transformer.d.ts +4 -2
  348. package/transformer.js +5 -6
  349. package/transformer.js.map +1 -1
  350. package/utilityTypes.cjs.map +1 -0
  351. package/utilityTypes.d.ts +4 -2
  352. package/utilityTypes.js +0 -2
  353. package/utilityTypes.js.map +1 -1
  354. package/uuid.cjs.map +1 -0
  355. package/uuid.d.ts +3 -1
  356. package/uuid.js +27 -32
  357. package/uuid.js.map +1 -1
  358. package/validation/arrayType.cjs.map +1 -0
  359. package/validation/arrayType.d.ts +5 -3
  360. package/validation/arrayType.js +45 -41
  361. package/validation/arrayType.js.map +1 -1
  362. package/validation/booleanType.cjs.map +1 -0
  363. package/validation/booleanType.d.ts +5 -2
  364. package/validation/booleanType.js +19 -16
  365. package/validation/booleanType.js.map +1 -1
  366. package/validation/functionType.cjs.map +1 -0
  367. package/validation/functionType.d.ts +5 -2
  368. package/validation/functionType.js +19 -16
  369. package/validation/functionType.js.map +1 -1
  370. package/validation/index.cjs.map +1 -0
  371. package/validation/index.d.ts +12 -12
  372. package/validation/index.js +27 -29
  373. package/validation/index.js.map +1 -1
  374. package/validation/jsonType.cjs.map +1 -0
  375. package/validation/jsonType.d.ts +8 -6
  376. package/validation/jsonType.js +89 -82
  377. package/validation/jsonType.js.map +1 -1
  378. package/validation/mixedSchema.cjs.map +1 -0
  379. package/validation/mixedSchema.d.ts +5 -2
  380. package/validation/mixedSchema.js +5 -7
  381. package/validation/mixedSchema.js.map +1 -1
  382. package/validation/nullType.cjs.map +1 -0
  383. package/validation/nullType.d.ts +5 -2
  384. package/validation/nullType.js +19 -16
  385. package/validation/nullType.js.map +1 -1
  386. package/validation/numberType.cjs.map +1 -0
  387. package/validation/numberType.d.ts +5 -3
  388. package/validation/numberType.js +40 -32
  389. package/validation/numberType.js.map +1 -1
  390. package/validation/objectType.cjs.map +1 -0
  391. package/validation/objectType.d.ts +5 -3
  392. package/validation/objectType.js +84 -85
  393. package/validation/objectType.js.map +1 -1
  394. package/validation/schema.cjs.map +1 -0
  395. package/validation/schema.d.ts +5 -3
  396. package/validation/schema.js +8 -9
  397. package/validation/schema.js.map +1 -1
  398. package/validation/stringType.cjs.map +1 -0
  399. package/validation/stringType.d.ts +5 -3
  400. package/validation/stringType.js +74 -70
  401. package/validation/stringType.js.map +1 -1
  402. package/validation/unionType.cjs.map +1 -0
  403. package/validation/unionType.d.ts +5 -2
  404. package/validation/unionType.js +37 -35
  405. package/validation/unionType.js.map +1 -1
  406. package/validation/violation.cjs.map +1 -0
  407. package/validation/violation.d.ts +4 -2
  408. package/validation/violation.js +18 -18
  409. package/validation/violation.js.map +1 -1
@@ -1,124 +1,118 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MonitoredQueue = void 0;
4
- const logging_1 = require("../logging");
1
+ import { NullLogger } from "../logging";
5
2
  class MonitoredQueue {
6
- constructor(queue, logger) {
7
- this.callbacks = {};
8
- this.queue = queue;
9
- this.logger = logger !== null && logger !== void 0 ? logger : new logging_1.NullLogger();
10
- this.updateStatus();
3
+ constructor(queue, logger) {
4
+ this.callbacks = {};
5
+ this.queue = queue;
6
+ this.logger = logger ?? new NullLogger();
7
+ this.updateStatus();
8
+ }
9
+ all() {
10
+ return this.queue.all();
11
+ }
12
+ getCapacity() {
13
+ return this.queue.getCapacity();
14
+ }
15
+ addCallback(status, callback) {
16
+ const callbacks = this.callbacks[status] ?? [];
17
+ if (!callbacks.includes(callback)) {
18
+ callbacks.push(callback);
11
19
  }
12
- all() {
13
- return this.queue.all();
14
- }
15
- getCapacity() {
16
- return this.queue.getCapacity();
17
- }
18
- addCallback(status, callback) {
19
- var _a;
20
- const callbacks = (_a = this.callbacks[status]) !== null && _a !== void 0 ? _a : [];
21
- if (!callbacks.includes(callback)) {
22
- callbacks.push(callback);
20
+ this.callbacks[status] = callbacks;
21
+ switch (this.status) {
22
+ case status:
23
+ callback(this);
24
+ break;
25
+ case "empty":
26
+ case "almostEmpty":
27
+ if (status === "halfEmpty") {
28
+ callback(this);
23
29
  }
24
- this.callbacks[status] = callbacks;
25
- switch (this.status) {
26
- case status:
27
- callback(this);
28
- break;
29
- case 'empty':
30
- case 'almostEmpty':
31
- if (status === 'halfEmpty') {
32
- callback(this);
33
- }
34
- break;
35
- case 'full':
36
- case 'almostFull':
37
- if (status === 'halfFull') {
38
- callback(this);
39
- }
40
- break;
30
+ break;
31
+ case "full":
32
+ case "almostFull":
33
+ if (status === "halfFull") {
34
+ callback(this);
41
35
  }
36
+ break;
42
37
  }
43
- removeCallback(type, callback) {
44
- const callbacks = this.callbacks[type];
45
- if (callbacks == null) {
46
- return;
47
- }
48
- const index = callbacks.indexOf(callback);
49
- if (index >= 0) {
50
- callbacks.splice(index, 1);
51
- }
38
+ }
39
+ removeCallback(type, callback) {
40
+ const callbacks = this.callbacks[type];
41
+ if (callbacks == null) {
42
+ return;
52
43
  }
53
- setStatus(status) {
54
- if (this.status === status) {
55
- return;
56
- }
57
- this.logger.debug(`Queue status changed to "${status}"`);
58
- this.report(status);
59
- this.status = status;
44
+ const index = callbacks.indexOf(callback);
45
+ if (index >= 0) {
46
+ callbacks.splice(index, 1);
60
47
  }
61
- report(status) {
62
- const callbacks = this.callbacks[status];
63
- if (callbacks !== undefined) {
64
- callbacks.forEach(callback => callback(this));
65
- }
66
- switch (status) {
67
- case 'empty':
68
- case 'almostEmpty':
69
- this.report('halfEmpty');
70
- break;
71
- case 'full':
72
- case 'almostFull':
73
- this.report('halfFull');
74
- break;
75
- default:
76
- break;
77
- }
48
+ }
49
+ setStatus(status) {
50
+ if (this.status === status) {
51
+ return;
78
52
  }
79
- isEmpty() {
80
- return this.queue.isEmpty();
53
+ this.logger.debug(`Queue status changed to "${status}"`);
54
+ this.report(status);
55
+ this.status = status;
56
+ }
57
+ report(status) {
58
+ const callbacks = this.callbacks[status];
59
+ if (callbacks !== void 0) {
60
+ callbacks.forEach((callback) => callback(this));
81
61
  }
82
- length() {
83
- return this.queue.length();
62
+ switch (status) {
63
+ case "empty":
64
+ case "almostEmpty":
65
+ this.report("halfEmpty");
66
+ break;
67
+ case "full":
68
+ case "almostFull":
69
+ this.report("halfFull");
70
+ break;
71
+ default:
72
+ break;
84
73
  }
85
- peek() {
86
- return this.queue.peek();
74
+ }
75
+ isEmpty() {
76
+ return this.queue.isEmpty();
77
+ }
78
+ length() {
79
+ return this.queue.length();
80
+ }
81
+ peek() {
82
+ return this.queue.peek();
83
+ }
84
+ push(value) {
85
+ this.queue.push(value);
86
+ this.updateStatus();
87
+ }
88
+ shift() {
89
+ const value = this.queue.shift();
90
+ this.updateStatus();
91
+ return value;
92
+ }
93
+ updateStatus() {
94
+ const length = this.queue.length();
95
+ const capacity = this.getCapacity();
96
+ if (length <= capacity * 0.5) {
97
+ if (length === 0) {
98
+ this.setStatus("empty");
99
+ } else if (length <= capacity * 0.25) {
100
+ this.setStatus("almostEmpty");
101
+ } else {
102
+ this.setStatus("halfEmpty");
103
+ }
104
+ return;
87
105
  }
88
- push(value) {
89
- this.queue.push(value);
90
- this.updateStatus();
91
- }
92
- shift() {
93
- const value = this.queue.shift();
94
- this.updateStatus();
95
- return value;
96
- }
97
- updateStatus() {
98
- const length = this.queue.length();
99
- const capacity = this.getCapacity();
100
- if (length <= capacity * 0.5) {
101
- if (length === 0) {
102
- this.setStatus('empty');
103
- }
104
- else if (length <= capacity * 0.25) {
105
- this.setStatus('almostEmpty');
106
- }
107
- else {
108
- this.setStatus('halfEmpty');
109
- }
110
- return;
111
- }
112
- if (length >= capacity) {
113
- this.setStatus('full');
114
- }
115
- else if (length >= capacity * 0.75) {
116
- this.setStatus('almostFull');
117
- }
118
- else {
119
- this.setStatus('halfFull');
120
- }
106
+ if (length >= capacity) {
107
+ this.setStatus("full");
108
+ } else if (length >= capacity * 0.75) {
109
+ this.setStatus("almostFull");
110
+ } else {
111
+ this.setStatus("halfFull");
121
112
  }
113
+ }
122
114
  }
123
- exports.MonitoredQueue = MonitoredQueue;
115
+ export {
116
+ MonitoredQueue
117
+ };
124
118
  //# sourceMappingURL=monitoredQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monitoredQueue.js","sourceRoot":"","sources":["../src/queue/monitoredQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/queue/monitoredQueue.ts"],"sourcesContent":["import {Queue} from './queue';\nimport {Logger, NullLogger} from '../logging';\n\nexport type QueueStatus = 'halfEmpty' | 'almostEmpty' | 'empty' | 'halfFull' | 'almostFull' | 'full';\n\nexport type QueueCallback<T> = {\n (queue: Queue<T>): void,\n};\n\nexport class MonitoredQueue<T> implements Queue<T> {\n private readonly queue: Queue<T>;\n\n private readonly logger: Logger;\n\n private readonly callbacks: Partial<{[key in QueueStatus]: Array<QueueCallback<T>>}> = {};\n\n private status: QueueStatus;\n\n public constructor(queue: Queue<T>, logger?: Logger) {\n this.queue = queue;\n this.logger = logger ?? new NullLogger();\n\n this.updateStatus();\n }\n\n public all(): T[] {\n return this.queue.all();\n }\n\n public getCapacity(): number {\n return this.queue.getCapacity();\n }\n\n public addCallback(status: QueueStatus, callback: QueueCallback<T>): void {\n const callbacks = this.callbacks[status] ?? [];\n\n if (!callbacks.includes(callback)) {\n callbacks.push(callback);\n }\n\n this.callbacks[status] = callbacks;\n\n switch (this.status) {\n case status:\n callback(this);\n\n break;\n\n case 'empty':\n case 'almostEmpty':\n if (status === 'halfEmpty') {\n callback(this);\n }\n\n break;\n\n case 'full':\n case 'almostFull':\n if (status === 'halfFull') {\n callback(this);\n }\n\n break;\n }\n }\n\n public removeCallback(type: QueueStatus, callback: QueueCallback<T>): void {\n const callbacks = this.callbacks[type];\n\n if (callbacks == null) {\n return;\n }\n\n const index = callbacks.indexOf(callback);\n\n if (index >= 0) {\n callbacks.splice(index, 1);\n }\n }\n\n private setStatus(status: QueueStatus): void {\n if (this.status === status) {\n return;\n }\n\n this.logger.debug(`Queue status changed to \"${status}\"`);\n\n this.report(status);\n\n this.status = status;\n }\n\n private report(status: QueueStatus): void {\n const callbacks = this.callbacks[status];\n\n if (callbacks !== undefined) {\n callbacks.forEach(callback => callback(this));\n }\n\n switch (status) {\n case 'empty':\n case 'almostEmpty':\n this.report('halfEmpty');\n\n break;\n\n case 'full':\n case 'almostFull':\n this.report('halfFull');\n\n break;\n\n default:\n break;\n }\n }\n\n public isEmpty(): boolean {\n return this.queue.isEmpty();\n }\n\n public length(): number {\n return this.queue.length();\n }\n\n public peek(): T | null {\n return this.queue.peek();\n }\n\n public push(value: T): void {\n this.queue.push(value);\n\n this.updateStatus();\n }\n\n public shift(): T {\n const value = this.queue.shift();\n\n this.updateStatus();\n\n return value;\n }\n\n private updateStatus(): void {\n const length = this.queue.length();\n const capacity = this.getCapacity();\n\n if (length <= capacity * 0.5) {\n if (length === 0) {\n this.setStatus('empty');\n } else if (length <= capacity * 0.25) {\n this.setStatus('almostEmpty');\n } else {\n this.setStatus('halfEmpty');\n }\n\n return;\n }\n\n if (length >= capacity) {\n this.setStatus('full');\n } else if (length >= capacity * 0.75) {\n this.setStatus('almostFull');\n } else {\n this.setStatus('halfFull');\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queue/persistentQueue.ts"],"sourcesContent":["import {Queue} from './queue';\n\nexport class PersistentQueue<T> implements Queue<T> {\n private readonly storage: Storage;\n\n private readonly key: string;\n\n public constructor(storage: Storage, key = 'queue') {\n this.storage = storage;\n this.key = key;\n }\n\n public all(): T[] {\n return this.queue.slice();\n }\n\n public getCapacity(): number {\n return Number.MAX_SAFE_INTEGER;\n }\n\n public isEmpty(): boolean {\n return this.length() === 0;\n }\n\n public length(): number {\n return this.queue.length;\n }\n\n public push(value: T): void {\n this.save([...this.queue, value]);\n }\n\n public peek(): T | null {\n const item = this.queue[0];\n\n if (item === undefined) {\n return null;\n }\n\n return item;\n }\n\n public shift(): T {\n const queue = [...this.queue];\n const value = queue.shift();\n\n if (value === undefined) {\n throw new Error('The queue is empty.');\n }\n\n this.save(queue);\n\n return value;\n }\n\n private get queue(): readonly T[] {\n const data = this.storage.getItem(this.key);\n\n if (data === null) {\n return [];\n }\n\n try {\n return JSON.parse(data);\n } catch {\n return [];\n }\n }\n\n private save(data: T[]): void {\n this.storage.setItem(this.key, JSON.stringify(data));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,gBAAuC;AAAA,EAKzC,YAAY,SAAkB,MAAM,SAAS;AAChD,SAAK,UAAU;AACf,SAAK,MAAM;AAAA,EACf;AAAA,EAEO,MAAW;AACd,WAAO,KAAK,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEO,cAAsB;AACzB,WAAO,OAAO;AAAA,EAClB;AAAA,EAEO,UAAmB;AACtB,WAAO,KAAK,OAAO,MAAM;AAAA,EAC7B;AAAA,EAEO,SAAiB;AACpB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEO,KAAK,OAAgB;AACxB,SAAK,KAAK,CAAC,GAAG,KAAK,OAAO,KAAK,CAAC;AAAA,EACpC;AAAA,EAEO,OAAiB;AACpB,UAAM,OAAO,KAAK,MAAM,CAAC;AAEzB,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,QAAW;AACd,UAAM,QAAQ,CAAC,GAAG,KAAK,KAAK;AAC5B,UAAM,QAAQ,MAAM,MAAM;AAE1B,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AAEA,SAAK,KAAK,KAAK;AAEf,WAAO;AAAA,EACX;AAAA,EAEA,IAAY,QAAsB;AAC9B,UAAM,OAAO,KAAK,QAAQ,QAAQ,KAAK,GAAG;AAE1C,QAAI,SAAS,MAAM;AACf,aAAO,CAAC;AAAA,IACZ;AAEA,QAAI;AACA,aAAO,KAAK,MAAM,IAAI;AAAA,IAC1B,QAAQ;AACJ,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AAAA,EAEQ,KAAK,MAAiB;AAC1B,SAAK,QAAQ,QAAQ,KAAK,KAAK,KAAK,UAAU,IAAI,CAAC;AAAA,EACvD;AACJ;","names":[]}
@@ -1,5 +1,6 @@
1
- import { Queue } from './queue';
2
- export declare class PersistentQueue<T> implements Queue<T> {
1
+ import { Queue } from './queue.js';
2
+
3
+ declare class PersistentQueue<T> implements Queue<T> {
3
4
  private readonly storage;
4
5
  private readonly key;
5
6
  constructor(storage: Storage, key?: string);
@@ -13,3 +14,5 @@ export declare class PersistentQueue<T> implements Queue<T> {
13
14
  private get queue();
14
15
  private save;
15
16
  }
17
+
18
+ export { PersistentQueue };
@@ -1,57 +1,55 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PersistentQueue = void 0;
4
1
  class PersistentQueue {
5
- constructor(storage, key = 'queue') {
6
- this.storage = storage;
7
- this.key = key;
8
- }
9
- all() {
10
- return this.queue.slice();
11
- }
12
- getCapacity() {
13
- return Number.MAX_SAFE_INTEGER;
14
- }
15
- isEmpty() {
16
- return this.length() === 0;
17
- }
18
- length() {
19
- return this.queue.length;
20
- }
21
- push(value) {
22
- this.save([...this.queue, value]);
23
- }
24
- peek() {
25
- const item = this.queue[0];
26
- if (item === undefined) {
27
- return null;
28
- }
29
- return item;
30
- }
31
- shift() {
32
- const queue = [...this.queue];
33
- const value = queue.shift();
34
- if (value === undefined) {
35
- throw new Error('The queue is empty.');
36
- }
37
- this.save(queue);
38
- return value;
39
- }
40
- get queue() {
41
- const data = this.storage.getItem(this.key);
42
- if (data === null) {
43
- return [];
44
- }
45
- try {
46
- return JSON.parse(data);
47
- }
48
- catch {
49
- return [];
50
- }
51
- }
52
- save(data) {
53
- this.storage.setItem(this.key, JSON.stringify(data));
54
- }
2
+ constructor(storage, key = "queue") {
3
+ this.storage = storage;
4
+ this.key = key;
5
+ }
6
+ all() {
7
+ return this.queue.slice();
8
+ }
9
+ getCapacity() {
10
+ return Number.MAX_SAFE_INTEGER;
11
+ }
12
+ isEmpty() {
13
+ return this.length() === 0;
14
+ }
15
+ length() {
16
+ return this.queue.length;
17
+ }
18
+ push(value) {
19
+ this.save([...this.queue, value]);
20
+ }
21
+ peek() {
22
+ const item = this.queue[0];
23
+ if (item === void 0) {
24
+ return null;
25
+ }
26
+ return item;
27
+ }
28
+ shift() {
29
+ const queue = [...this.queue];
30
+ const value = queue.shift();
31
+ if (value === void 0) {
32
+ throw new Error("The queue is empty.");
33
+ }
34
+ this.save(queue);
35
+ return value;
36
+ }
37
+ get queue() {
38
+ const data = this.storage.getItem(this.key);
39
+ if (data === null) {
40
+ return [];
41
+ }
42
+ try {
43
+ return JSON.parse(data);
44
+ } catch {
45
+ return [];
46
+ }
47
+ }
48
+ save(data) {
49
+ this.storage.setItem(this.key, JSON.stringify(data));
50
+ }
55
51
  }
56
- exports.PersistentQueue = PersistentQueue;
52
+ export {
53
+ PersistentQueue
54
+ };
57
55
  //# sourceMappingURL=persistentQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistentQueue.js","sourceRoot":"","sources":["../src/queue/persistentQueue.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAKxB,YAAmB,OAAgB,EAAE,GAAG,GAAG,OAAO;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,GAAG;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEM,WAAW;QACd,OAAO,MAAM,CAAC,gBAAgB,CAAC;IACnC,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAEM,IAAI,CAAC,KAAQ;QAChB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,IAAI;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAY,KAAK;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAEO,IAAI,CAAC,IAAS;QAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;CACJ;AAtED,0CAsEC"}
1
+ {"version":3,"sources":["../src/queue/persistentQueue.ts"],"sourcesContent":["import {Queue} from './queue';\n\nexport class PersistentQueue<T> implements Queue<T> {\n private readonly storage: Storage;\n\n private readonly key: string;\n\n public constructor(storage: Storage, key = 'queue') {\n this.storage = storage;\n this.key = key;\n }\n\n public all(): T[] {\n return this.queue.slice();\n }\n\n public getCapacity(): number {\n return Number.MAX_SAFE_INTEGER;\n }\n\n public isEmpty(): boolean {\n return this.length() === 0;\n }\n\n public length(): number {\n return this.queue.length;\n }\n\n public push(value: T): void {\n this.save([...this.queue, value]);\n }\n\n public peek(): T | null {\n const item = this.queue[0];\n\n if (item === undefined) {\n return null;\n }\n\n return item;\n }\n\n public shift(): T {\n const queue = [...this.queue];\n const value = queue.shift();\n\n if (value === undefined) {\n throw new Error('The queue is empty.');\n }\n\n this.save(queue);\n\n return value;\n }\n\n private get queue(): readonly T[] {\n const data = this.storage.getItem(this.key);\n\n if (data === null) {\n return [];\n }\n\n try {\n return JSON.parse(data);\n } catch {\n return [];\n }\n }\n\n private save(data: T[]): void {\n this.storage.setItem(this.key, JSON.stringify(data));\n }\n}\n"],"mappings":"AAEO,MAAM,gBAAuC;AAAA,EAKzC,YAAY,SAAkB,MAAM,SAAS;AAChD,SAAK,UAAU;AACf,SAAK,MAAM;AAAA,EACf;AAAA,EAEO,MAAW;AACd,WAAO,KAAK,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEO,cAAsB;AACzB,WAAO,OAAO;AAAA,EAClB;AAAA,EAEO,UAAmB;AACtB,WAAO,KAAK,OAAO,MAAM;AAAA,EAC7B;AAAA,EAEO,SAAiB;AACpB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEO,KAAK,OAAgB;AACxB,SAAK,KAAK,CAAC,GAAG,KAAK,OAAO,KAAK,CAAC;AAAA,EACpC;AAAA,EAEO,OAAiB;AACpB,UAAM,OAAO,KAAK,MAAM,CAAC;AAEzB,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,QAAW;AACd,UAAM,QAAQ,CAAC,GAAG,KAAK,KAAK;AAC5B,UAAM,QAAQ,MAAM,MAAM;AAE1B,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AAEA,SAAK,KAAK,KAAK;AAEf,WAAO;AAAA,EACX;AAAA,EAEA,IAAY,QAAsB;AAC9B,UAAM,OAAO,KAAK,QAAQ,QAAQ,KAAK,GAAG;AAE1C,QAAI,SAAS,MAAM;AACf,aAAO,CAAC;AAAA,IACZ;AAEA,QAAI;AACA,aAAO,KAAK,MAAM,IAAI;AAAA,IAC1B,QAAQ;AACJ,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AAAA,EAEQ,KAAK,MAAiB;AAC1B,SAAK,QAAQ,QAAQ,KAAK,KAAK,KAAK,UAAU,IAAI,CAAC;AAAA,EACvD;AACJ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queue/queue.ts"],"sourcesContent":["export interface Queue<T> {\n getCapacity(): number;\n\n all(): T[];\n\n push(value: T): void;\n\n shift(): T;\n\n peek(): T | null;\n\n isEmpty(): boolean;\n\n length(): number;\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
package/queue/queue.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export interface Queue<T> {
1
+ interface Queue<T> {
2
2
  getCapacity(): number;
3
3
  all(): T[];
4
4
  push(value: T): void;
@@ -7,3 +7,5 @@ export interface Queue<T> {
7
7
  isEmpty(): boolean;
8
8
  length(): number;
9
9
  }
10
+
11
+ export type { Queue };
package/queue/queue.js CHANGED
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue/queue.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/retry/arbitraryPolicy.ts"],"sourcesContent":["import {RetryPolicy} from './policy';\n\nexport class ArbitraryPolicy<T> implements RetryPolicy<T> {\n private readonly delays: number[];\n\n public constructor(delays: number[]) {\n if (delays.length < 1) {\n throw new Error('The list of delays cannot be empty.');\n }\n\n this.delays = [...delays];\n }\n\n public getDelay(attempt: number): number {\n return this.delays[Math.min(attempt < 0 ? 0 : attempt, this.delays.length - 1)];\n }\n\n public shouldRetry(): boolean {\n return true;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,gBAA6C;AAAA,EAG/C,YAAY,QAAkB;AACjC,QAAI,OAAO,SAAS,GAAG;AACnB,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACzD;AAEA,SAAK,SAAS,CAAC,GAAG,MAAM;AAAA,EAC5B;AAAA,EAEO,SAAS,SAAyB;AACrC,WAAO,KAAK,OAAO,KAAK,IAAI,UAAU,IAAI,IAAI,SAAS,KAAK,OAAO,SAAS,CAAC,CAAC;AAAA,EAClF;AAAA,EAEO,cAAuB;AAC1B,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1,7 +1,10 @@
1
- import { RetryPolicy } from './policy';
2
- export declare class ArbitraryPolicy<T> implements RetryPolicy<T> {
1
+ import { RetryPolicy } from './policy.js';
2
+
3
+ declare class ArbitraryPolicy<T> implements RetryPolicy<T> {
3
4
  private readonly delays;
4
5
  constructor(delays: number[]);
5
6
  getDelay(attempt: number): number;
6
7
  shouldRetry(): boolean;
7
8
  }
9
+
10
+ export { ArbitraryPolicy };
@@ -1,19 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ArbitraryPolicy = void 0;
4
1
  class ArbitraryPolicy {
5
- constructor(delays) {
6
- if (delays.length < 1) {
7
- throw new Error('The list of delays cannot be empty.');
8
- }
9
- this.delays = [...delays];
10
- }
11
- getDelay(attempt) {
12
- return this.delays[Math.min(attempt < 0 ? 0 : attempt, this.delays.length - 1)];
13
- }
14
- shouldRetry() {
15
- return true;
2
+ constructor(delays) {
3
+ if (delays.length < 1) {
4
+ throw new Error("The list of delays cannot be empty.");
16
5
  }
6
+ this.delays = [...delays];
7
+ }
8
+ getDelay(attempt) {
9
+ return this.delays[Math.min(attempt < 0 ? 0 : attempt, this.delays.length - 1)];
10
+ }
11
+ shouldRetry() {
12
+ return true;
13
+ }
17
14
  }
18
- exports.ArbitraryPolicy = ArbitraryPolicy;
15
+ export {
16
+ ArbitraryPolicy
17
+ };
19
18
  //# sourceMappingURL=arbitraryPolicy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arbitraryPolicy.js","sourceRoot":"","sources":["../src/retry/arbitraryPolicy.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAGxB,YAAmB,MAAgB;QAC/B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEM,QAAQ,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAlBD,0CAkBC"}
1
+ {"version":3,"sources":["../src/retry/arbitraryPolicy.ts"],"sourcesContent":["import {RetryPolicy} from './policy';\n\nexport class ArbitraryPolicy<T> implements RetryPolicy<T> {\n private readonly delays: number[];\n\n public constructor(delays: number[]) {\n if (delays.length < 1) {\n throw new Error('The list of delays cannot be empty.');\n }\n\n this.delays = [...delays];\n }\n\n public getDelay(attempt: number): number {\n return this.delays[Math.min(attempt < 0 ? 0 : attempt, this.delays.length - 1)];\n }\n\n public shouldRetry(): boolean {\n return true;\n }\n}\n"],"mappings":"AAEO,MAAM,gBAA6C;AAAA,EAG/C,YAAY,QAAkB;AACjC,QAAI,OAAO,SAAS,GAAG;AACnB,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACzD;AAEA,SAAK,SAAS,CAAC,GAAG,MAAM;AAAA,EAC5B;AAAA,EAEO,SAAS,SAAyB;AACrC,WAAO,KAAK,OAAO,KAAK,IAAI,UAAU,IAAI,IAAI,SAAS,KAAK,OAAO,SAAS,CAAC,CAAC;AAAA,EAClF;AAAA,EAEO,cAAuB;AAC1B,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/retry/backoffPolicy.ts"],"sourcesContent":["import {RetryPolicy} from './policy';\n\ntype Options = {\n minRetryDelay: number, // min retry delay in ms (used in exp. backoff calcs)\n maxRetryDelay: number, // max retry delay in ms (used in exp. backoff calcs)\n backoffFactor: number, // exponential backoff factor (attempts^n)\n backoffJitter: number, // jitter factor for backoff calcs (0 is usually fine)\n maxAttempts: number,\n};\n\nexport class BackoffPolicy<T> implements RetryPolicy<T> {\n private readonly minRetryDelay: number = 1000;\n\n private readonly maxRetryDelay: number = 30000;\n\n private readonly backoffFactor: number = 2;\n\n private readonly backoffJitter: number = 1;\n\n private readonly maxAttempts: number = Infinity;\n\n public constructor(options: Partial<Options> = {}) {\n const {\n minRetryDelay = this.minRetryDelay,\n maxRetryDelay = this.maxRetryDelay,\n backoffFactor = this.backoffFactor,\n backoffJitter = this.backoffJitter,\n maxAttempts = this.maxAttempts,\n } = options;\n\n if (minRetryDelay < 0) {\n throw new Error('The minimum retry delay must be non-negative.');\n }\n\n if (maxRetryDelay < minRetryDelay) {\n throw new Error('The maximum retry delay must be greater than the minimum.');\n }\n\n if (backoffFactor < 1) {\n throw new Error('The backoff factor must be greater than zero.');\n }\n\n if (backoffJitter < 0) {\n throw new Error('The backoff jitter must be non-negative.');\n }\n\n if (maxAttempts < 0) {\n throw new Error('The maximum attempts must be non-negative.');\n }\n\n this.minRetryDelay = minRetryDelay;\n this.maxRetryDelay = maxRetryDelay;\n this.backoffFactor = backoffFactor;\n this.backoffJitter = backoffJitter;\n this.maxAttempts = maxAttempts;\n }\n\n /**\n * Full Jitter algorithm\n *\n * @see https://www.awsarchitectureblog.com/2015/03/backoff.html\n */\n public getDelay(attempt: number): number {\n let delay = Math.min(Math.max(this.backoffFactor ** attempt, this.minRetryDelay), this.maxRetryDelay);\n\n if (this.backoffJitter > 0) {\n // Jitter will result in a random value between the minimum and\n // calculated delay for a given attempt.\n const min = Math.ceil(this.minRetryDelay);\n const max = Math.floor(delay);\n\n delay = Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n // Removing any fractional digits\n delay -= delay % 1;\n\n return delay;\n }\n\n public shouldRetry(attempt: number): boolean {\n return attempt < this.maxAttempts;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,cAA2C;AAAA,EAW7C,YAAY,UAA4B,CAAC,GAAG;AAVnD,SAAiB,gBAAwB;AAEzC,SAAiB,gBAAwB;AAEzC,SAAiB,gBAAwB;AAEzC,SAAiB,gBAAwB;AAEzC,SAAiB,cAAsB;AAGnC,UAAM;AAAA,MACF,gBAAgB,KAAK;AAAA,MACrB,gBAAgB,KAAK;AAAA,MACrB,gBAAgB,KAAK;AAAA,MACrB,gBAAgB,KAAK;AAAA,MACrB,cAAc,KAAK;AAAA,IACvB,IAAI;AAEJ,QAAI,gBAAgB,GAAG;AACnB,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACnE;AAEA,QAAI,gBAAgB,eAAe;AAC/B,YAAM,IAAI,MAAM,2DAA2D;AAAA,IAC/E;AAEA,QAAI,gBAAgB,GAAG;AACnB,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACnE;AAEA,QAAI,gBAAgB,GAAG;AACnB,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC9D;AAEA,QAAI,cAAc,GAAG;AACjB,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAChE;AAEA,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AACrB,SAAK,cAAc;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,SAAS,SAAyB;AACrC,QAAI,QAAQ,KAAK,IAAI,KAAK,IAAI,KAAK,iBAAiB,SAAS,KAAK,aAAa,GAAG,KAAK,aAAa;AAEpG,QAAI,KAAK,gBAAgB,GAAG;AAGxB,YAAM,MAAM,KAAK,KAAK,KAAK,aAAa;AACxC,YAAM,MAAM,KAAK,MAAM,KAAK;AAE5B,cAAQ,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,MAAM,EAAE,IAAI;AAAA,IAC1D;AAGA,aAAS,QAAQ;AAEjB,WAAO;AAAA,EACX;AAAA,EAEO,YAAY,SAA0B;AACzC,WAAO,UAAU,KAAK;AAAA,EAC1B;AACJ;","names":[]}
@@ -1,4 +1,5 @@
1
- import { RetryPolicy } from './policy';
1
+ import { RetryPolicy } from './policy.js';
2
+
2
3
  type Options = {
3
4
  minRetryDelay: number;
4
5
  maxRetryDelay: number;
@@ -6,7 +7,7 @@ type Options = {
6
7
  backoffJitter: number;
7
8
  maxAttempts: number;
8
9
  };
9
- export declare class BackoffPolicy<T> implements RetryPolicy<T> {
10
+ declare class BackoffPolicy<T> implements RetryPolicy<T> {
10
11
  private readonly minRetryDelay;
11
12
  private readonly maxRetryDelay;
12
13
  private readonly backoffFactor;
@@ -21,4 +22,5 @@ export declare class BackoffPolicy<T> implements RetryPolicy<T> {
21
22
  getDelay(attempt: number): number;
22
23
  shouldRetry(attempt: number): boolean;
23
24
  }
24
- export {};
25
+
26
+ export { BackoffPolicy };