rxjs-poll 2.0.8 → 2.0.9
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.
- package/README.md +16 -110
- package/dist/cjs/index.js +194 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +190 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/types/common/operators.d.ts.map +1 -1
- package/dist/types/common/utils.d.ts.map +1 -1
- package/dist/types/poll.d.ts.map +1 -1
- package/dist/types/types/poll.type.d.ts.map +1 -1
- package/dist/umd/index.js +198 -0
- package/dist/umd/index.js.map +1 -0
- package/dist/umd/index.min.js +2 -0
- package/dist/umd/index.min.js.map +1 -0
- package/package.json +129 -103
- package/dist/cjs/common/config.js +0 -52
- package/dist/cjs/common/config.js.map +0 -1
- package/dist/cjs/common/observables.js +0 -25
- package/dist/cjs/common/observables.js.map +0 -1
- package/dist/cjs/common/operators.js +0 -12
- package/dist/cjs/common/operators.js.map +0 -1
- package/dist/cjs/common/strategies.js +0 -41
- package/dist/cjs/common/strategies.js.map +0 -1
- package/dist/cjs/common/utils.js +0 -36
- package/dist/cjs/common/utils.js.map +0 -1
- package/dist/cjs/constants/config.const.js +0 -20
- package/dist/cjs/constants/config.const.js.map +0 -1
- package/dist/cjs/constants/poll.const.js +0 -12
- package/dist/cjs/constants/poll.const.js.map +0 -1
- package/dist/cjs/constants/strategies.const.js +0 -11
- package/dist/cjs/constants/strategies.const.js.map +0 -1
- package/dist/cjs/poll.js +0 -42
- package/dist/cjs/poll.js.map +0 -1
- package/dist/cjs/types/config.type.js +0 -3
- package/dist/cjs/types/config.type.js.map +0 -1
- package/dist/cjs/types/observables.type.js +0 -3
- package/dist/cjs/types/observables.type.js.map +0 -1
- package/dist/cjs/types/poll.type.js +0 -3
- package/dist/cjs/types/poll.type.js.map +0 -1
- package/dist/cjs/types/strategies.type.js +0 -3
- package/dist/cjs/types/strategies.type.js.map +0 -1
- package/dist/cjs/types/utils.type.js +0 -3
- package/dist/cjs/types/utils.type.js.map +0 -1
- package/dist/esm/common/config.js +0 -41
- package/dist/esm/common/config.js.map +0 -1
- package/dist/esm/common/observables.js +0 -21
- package/dist/esm/common/observables.js.map +0 -1
- package/dist/esm/common/operators.js +0 -7
- package/dist/esm/common/operators.js.map +0 -1
- package/dist/esm/common/strategies.js +0 -38
- package/dist/esm/common/strategies.js.map +0 -1
- package/dist/esm/common/utils.js +0 -26
- package/dist/esm/common/utils.js.map +0 -1
- package/dist/esm/constants/config.const.js +0 -17
- package/dist/esm/constants/config.const.js.map +0 -1
- package/dist/esm/constants/poll.const.js +0 -9
- package/dist/esm/constants/poll.const.js.map +0 -1
- package/dist/esm/constants/strategies.const.js +0 -8
- package/dist/esm/constants/strategies.const.js.map +0 -1
- package/dist/esm/poll.js +0 -39
- package/dist/esm/poll.js.map +0 -1
- package/dist/esm/types/config.type.js +0 -2
- package/dist/esm/types/config.type.js.map +0 -1
- package/dist/esm/types/observables.type.js +0 -2
- package/dist/esm/types/observables.type.js.map +0 -1
- package/dist/esm/types/poll.type.js +0 -2
- package/dist/esm/types/poll.type.js.map +0 -1
- package/dist/esm/types/strategies.type.js +0 -2
- package/dist/esm/types/strategies.type.js.map +0 -1
- package/dist/esm/types/utils.type.js +0 -2
- package/dist/esm/types/utils.type.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<a href="https://www.npmjs.com/package/rxjs-poll" target="_blank" rel="noopener noreferrer nofollow"><img alt="NPM Version" src="https://img.shields.io/npm/v/rxjs-poll"></a>
|
|
4
4
|
<a href="https://bundlephobia.com/package/rxjs-poll@latest" target="_blank" rel="noopener noreferrer nofollow"><img alt="NPM Bundle Size" src="https://img.shields.io/bundlephobia/minzip/rxjs-poll/latest?label=gzip"></a>
|
|
5
|
+
<a href="LICENSE" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub License" src="https://img.shields.io/github/license/mmustra/rxjs-poll"></a>
|
|
5
6
|
<a href="https://github.com/mmustra/rxjs-poll/tree/main/tests" target="_blank" rel="noopener noreferrer nofollow"><img alt="Codecov" src="https://img.shields.io/codecov/c/gh/mmustra/rxjs-poll?token=H9R97BLFQI"></a>
|
|
6
7
|
<a href="https://github.com/mmustra/rxjs-poll/issues?q=is%3Aissue%20state%3Aopen%20label%3Alatest" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub Issues" src="https://img.shields.io/github/issues/mmustra/rxjs-poll/latest?label=issues"></a>
|
|
7
8
|
<a href="https://github.com/mmustra/rxjs-poll/commits/main" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub Latest Commits" src="https://img.shields.io/github/last-commit/mmustra/rxjs-poll/main?label=activity"></a>
|
|
@@ -10,14 +11,14 @@ A flexible RxJS operator library that enables polling on any completed observabl
|
|
|
10
11
|
|
|
11
12
|
## 🚀 Features
|
|
12
13
|
|
|
13
|
-
- **Two polling
|
|
14
|
+
- **Two polling types**: `repeat` and `interval` to suit different use cases
|
|
14
15
|
- **Timing strategies**: `constant`, `linear`, `exponential`, `random` and `dynamic` (custom logic)
|
|
15
16
|
- **Auto-pause**: Automatically pause/resume polling based on page visibility (browser only)
|
|
16
17
|
- **Flexible retries**: Control retry attempts with consecutive or total counting modes
|
|
17
18
|
- **Input validation**: Guards against unexpected input time values
|
|
18
19
|
- **Cross-platform**: Works in both browser and Node.js environments
|
|
19
20
|
- **Modern compatibility**: Compatible with RxJS v7+
|
|
20
|
-
- **Multiple module formats**: Supports
|
|
21
|
+
- **Multiple module formats**: Supports CJS, ESM, and UMD
|
|
21
22
|
|
|
22
23
|
## 📦 Installation
|
|
23
24
|
|
|
@@ -156,7 +157,12 @@ interface PollConfig {
|
|
|
156
157
|
};
|
|
157
158
|
|
|
158
159
|
/**
|
|
159
|
-
* Configuration for retry behavior (on errors)
|
|
160
|
+
* Configuration for retry behavior (on errors).
|
|
161
|
+
* Can be fully specified with strategy/time, or partially specified with just limit/consecutiveOnly.
|
|
162
|
+
* If omitted entirely, uses default exponential retry strategy.
|
|
163
|
+
* - Full config: `{ strategy: '...', time: ..., limit?: ..., consecutiveOnly?: ... }`
|
|
164
|
+
* - Partial config: `{ limit: ..., consecutiveOnly?: ... }` (uses default strategy/time)
|
|
165
|
+
* - Omit entirely: Uses all defaults
|
|
160
166
|
*/
|
|
161
167
|
retry?: {
|
|
162
168
|
/**
|
|
@@ -165,6 +171,7 @@ interface PollConfig {
|
|
|
165
171
|
* - consecutiveOnly: true → uses `consecutiveRetryCount`
|
|
166
172
|
* - consecutiveOnly: false → uses `retryCount`
|
|
167
173
|
* @default 'exponential'
|
|
174
|
+
* @note Required if `time` is provided, otherwise omitted to use defaults
|
|
168
175
|
*/
|
|
169
176
|
strategy: 'constant' | 'linear' | 'exponential' | 'random' | 'dynamic';
|
|
170
177
|
|
|
@@ -176,6 +183,7 @@ interface PollConfig {
|
|
|
176
183
|
* - random: [min, max]
|
|
177
184
|
* - dynamic: (state) => number | [min, max]
|
|
178
185
|
* @default 1000
|
|
186
|
+
* @note Required if `strategy` is provided, otherwise omitted to use defaults
|
|
179
187
|
*/
|
|
180
188
|
time:
|
|
181
189
|
| number
|
|
@@ -216,7 +224,7 @@ State object passed to delay/retry time producer functions:
|
|
|
216
224
|
|
|
217
225
|
```typescript
|
|
218
226
|
interface PollState<T> {
|
|
219
|
-
/** Latest value from the source. For `interval` polling
|
|
227
|
+
/** Latest value from the source. For `interval` polling type,
|
|
220
228
|
* first emission is undefined. */
|
|
221
229
|
value: T | undefined;
|
|
222
230
|
|
|
@@ -238,117 +246,15 @@ interface PollState<T> {
|
|
|
238
246
|
|
|
239
247
|
## 🚨 Breaking Changes
|
|
240
248
|
|
|
241
|
-
**Version 2** ([source](https://github.com/mmustra/rxjs-poll)) introduces an API focused on strategy-based configuration
|
|
249
|
+
**Version 2** ([source](https://github.com/mmustra/rxjs-poll)) introduces an API focused on strategy-based configuration with improved type safety and clearer separation between polling delays and retry behavior. See [V2 Changes](docs/V2_CHANGES.md) for detailed migration guide and examples.
|
|
242
250
|
|
|
243
251
|
**Version 1** ([source](https://github.com/mmustra/rxjs-poll/tree/v1)) will continue to receive bug fixes and security updates.
|
|
244
252
|
|
|
245
|
-
|
|
253
|
+
## 🤝 Contributing
|
|
246
254
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
- **delay/retry**: Added configuration objects for polling and retry
|
|
250
|
-
- **retries**: Renamed and moved to `retry.limit`
|
|
251
|
-
- **isConsecutiveRule**: Renamed and moved to `retry.consecutiveOnly`
|
|
252
|
-
- **isBackgroundMode**: Renamed to `pauseWhenHidden` and default behavior inverted (`false` → `true`)
|
|
253
|
-
|
|
254
|
-
#### PollState
|
|
255
|
-
|
|
256
|
-
- **polls**: Renamed to `pollCount`
|
|
257
|
-
- **retries**: Renamed to `retryCount`
|
|
258
|
-
- **consecutiveRetries**: Renamed to `consecutiveRetryCount`
|
|
259
|
-
- **value**: Changed to type `T | undefined`
|
|
260
|
-
- **error**: Changed to type `any | undefined`
|
|
261
|
-
|
|
262
|
-
### Migration Examples
|
|
263
|
-
|
|
264
|
-
### Basic
|
|
265
|
-
|
|
266
|
-
**Before (v1.x)**
|
|
267
|
-
|
|
268
|
-
```typescript
|
|
269
|
-
poll({
|
|
270
|
-
type: 'interval',
|
|
271
|
-
delay: 2000, // Same timing for delay and retry
|
|
272
|
-
retries: 5,
|
|
273
|
-
isConsecutiveRule: false,
|
|
274
|
-
});
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
**After (v2.x)**
|
|
278
|
-
|
|
279
|
-
```typescript
|
|
280
|
-
poll({
|
|
281
|
-
type: 'interval',
|
|
282
|
-
delay: {
|
|
283
|
-
strategy: 'constant',
|
|
284
|
-
time: 2000,
|
|
285
|
-
},
|
|
286
|
-
retry: {
|
|
287
|
-
strategy: 'constant',
|
|
288
|
-
time: 2000,
|
|
289
|
-
limit: 5,
|
|
290
|
-
consecutiveOnly: false,
|
|
291
|
-
},
|
|
292
|
-
});
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
or if you only care about delay timing:
|
|
255
|
+
Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
|
|
296
256
|
|
|
297
|
-
|
|
298
|
-
poll({
|
|
299
|
-
type: 'interval',
|
|
300
|
-
delay: {
|
|
301
|
-
strategy: 'constant',
|
|
302
|
-
time: 2000,
|
|
303
|
-
},
|
|
304
|
-
retry: {
|
|
305
|
-
limit: 5,
|
|
306
|
-
consecutiveOnly: false,
|
|
307
|
-
},
|
|
308
|
-
});
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
### Dynamic
|
|
312
|
-
|
|
313
|
-
**Before (v1.x)**
|
|
314
|
-
|
|
315
|
-
```typescript
|
|
316
|
-
poll({
|
|
317
|
-
/** `error` used as a flag to determine delay/retry timing */
|
|
318
|
-
delay: ({ error, consecutiveRetries }) =>
|
|
319
|
-
error ? consecutiveRetries * 1000 : 2000,
|
|
320
|
-
});
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
**After (v2.x)**
|
|
324
|
-
|
|
325
|
-
```typescript
|
|
326
|
-
poll({
|
|
327
|
-
delay: {
|
|
328
|
-
strategy: 'constant',
|
|
329
|
-
time: 2000,
|
|
330
|
-
},
|
|
331
|
-
retry: {
|
|
332
|
-
strategy: 'dynamic',
|
|
333
|
-
time: ({ consecutiveRetryCount }) => consecutiveRetryCount * 1000,
|
|
334
|
-
},
|
|
335
|
-
});
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
or with built-in strategy:
|
|
339
|
-
|
|
340
|
-
```typescript
|
|
341
|
-
poll({
|
|
342
|
-
delay: {
|
|
343
|
-
strategy: 'constant',
|
|
344
|
-
time: 2000,
|
|
345
|
-
},
|
|
346
|
-
retry: {
|
|
347
|
-
strategy: 'linear',
|
|
348
|
-
time: 1000,
|
|
349
|
-
},
|
|
350
|
-
});
|
|
351
|
-
```
|
|
257
|
+
Have a question? Check out [GitHub Discussions](https://github.com/mmustra/rxjs-poll/discussions) to ask questions, share ideas, or get help from the community.
|
|
352
258
|
|
|
353
259
|
## 🙌 Credits
|
|
354
260
|
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,10 +1,194 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var rxjs = require('rxjs');
|
|
4
|
+
|
|
5
|
+
const pollType = {
|
|
6
|
+
REPEAT: 'repeat',
|
|
7
|
+
INTERVAL: 'interval',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const strategyType = {
|
|
11
|
+
CONSTANT: 'constant',
|
|
12
|
+
LINEAR: 'linear',
|
|
13
|
+
EXPONENTIAL: 'exponential',
|
|
14
|
+
RANDOM: 'random',
|
|
15
|
+
DYNAMIC: 'dynamic',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const controlConfig = {
|
|
19
|
+
type: pollType.REPEAT,
|
|
20
|
+
delay: {
|
|
21
|
+
strategy: strategyType.CONSTANT,
|
|
22
|
+
time: 1000,
|
|
23
|
+
},
|
|
24
|
+
retry: {
|
|
25
|
+
strategy: strategyType.EXPONENTIAL,
|
|
26
|
+
time: 1000,
|
|
27
|
+
limit: 3,
|
|
28
|
+
consecutiveOnly: true,
|
|
29
|
+
},
|
|
30
|
+
pauseWhenHidden: true,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
function normalizeNumber(value, defaultValue = 0, isFinite = true) {
|
|
34
|
+
if (Array.isArray(value)) {
|
|
35
|
+
return value.map((n) => normalizeNumber(n, defaultValue, isFinite));
|
|
36
|
+
}
|
|
37
|
+
let normalizedValue = value !== null && value !== void 0 ? value : defaultValue;
|
|
38
|
+
if (Number.isNaN(normalizedValue) || (isFinite && !Number.isFinite(normalizedValue))) {
|
|
39
|
+
normalizedValue = defaultValue;
|
|
40
|
+
}
|
|
41
|
+
return Math.abs(normalizedValue);
|
|
42
|
+
}
|
|
43
|
+
function pickNumber(value) {
|
|
44
|
+
return Array.isArray(value) ? randomNumber(value[0], value[1]) : value;
|
|
45
|
+
}
|
|
46
|
+
function randomNumber(min, max) {
|
|
47
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
48
|
+
}
|
|
49
|
+
function isFunction(value) {
|
|
50
|
+
return typeof value === 'function';
|
|
51
|
+
}
|
|
52
|
+
function isBrowser() {
|
|
53
|
+
return typeof globalThis.window !== 'undefined' && typeof globalThis.window.document !== 'undefined';
|
|
54
|
+
}
|
|
55
|
+
function isDocumentVisible() {
|
|
56
|
+
return !document.hidden;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function getStrategyTimeProducer(mode, config) {
|
|
60
|
+
const { strategy, time } = config[mode];
|
|
61
|
+
const isDelayMode = mode === 'delay';
|
|
62
|
+
const isConsecutive = config.retry.consecutiveOnly;
|
|
63
|
+
let timeProducer;
|
|
64
|
+
let attemptKey;
|
|
65
|
+
if (isDelayMode) {
|
|
66
|
+
attemptKey = 'pollCount';
|
|
67
|
+
}
|
|
68
|
+
else if (isConsecutive) {
|
|
69
|
+
attemptKey = 'consecutiveRetryCount';
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
attemptKey = 'retryCount';
|
|
73
|
+
}
|
|
74
|
+
switch (strategy) {
|
|
75
|
+
case 'constant':
|
|
76
|
+
timeProducer = () => time;
|
|
77
|
+
break;
|
|
78
|
+
case 'linear':
|
|
79
|
+
timeProducer = (state) => state[attemptKey] * time;
|
|
80
|
+
break;
|
|
81
|
+
case 'exponential':
|
|
82
|
+
timeProducer = (state) => Math.pow(2, state[attemptKey] - 1) * time;
|
|
83
|
+
break;
|
|
84
|
+
case 'random':
|
|
85
|
+
timeProducer = () => randomNumber(time[0], time[1]);
|
|
86
|
+
break;
|
|
87
|
+
case 'dynamic':
|
|
88
|
+
timeProducer = (state) => time(state);
|
|
89
|
+
break;
|
|
90
|
+
default:
|
|
91
|
+
throw new Error('rxjs-poll: Unknown strategy!');
|
|
92
|
+
}
|
|
93
|
+
return timeProducer;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function extendConfig(config) {
|
|
97
|
+
const normalizedConfig = normalizeConfig(config);
|
|
98
|
+
return Object.assign(Object.assign({}, normalizedConfig), { getDelayTime: getTimeProducer('delay', normalizedConfig), getRetryTime: getTimeProducer('retry', normalizedConfig) });
|
|
99
|
+
}
|
|
100
|
+
function getTimeProducer(mode, config) {
|
|
101
|
+
const defaultTime = controlConfig[mode].time;
|
|
102
|
+
const timeProducer = getStrategyTimeProducer(mode, config);
|
|
103
|
+
return (state) => {
|
|
104
|
+
const producedTime = timeProducer(Object.assign({}, state));
|
|
105
|
+
const normalizedTime = normalizeNumber(producedTime, defaultTime);
|
|
106
|
+
return pickNumber(normalizedTime);
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function normalizeConfig(config) {
|
|
110
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
111
|
+
return {
|
|
112
|
+
type: (_a = config === null || config === void 0 ? void 0 : config.type) !== null && _a !== void 0 ? _a : controlConfig.type,
|
|
113
|
+
delay: {
|
|
114
|
+
strategy: (_c = (_b = config === null || config === void 0 ? void 0 : config.delay) === null || _b === void 0 ? void 0 : _b.strategy) !== null && _c !== void 0 ? _c : controlConfig.delay.strategy,
|
|
115
|
+
time: isFunction((_d = config === null || config === void 0 ? void 0 : config.delay) === null || _d === void 0 ? void 0 : _d.time)
|
|
116
|
+
? config.delay.time
|
|
117
|
+
: normalizeNumber((_e = config === null || config === void 0 ? void 0 : config.delay) === null || _e === void 0 ? void 0 : _e.time, controlConfig.delay.time),
|
|
118
|
+
},
|
|
119
|
+
retry: {
|
|
120
|
+
strategy: (_g = (_f = config === null || config === void 0 ? void 0 : config.retry) === null || _f === void 0 ? void 0 : _f.strategy) !== null && _g !== void 0 ? _g : controlConfig.retry.strategy,
|
|
121
|
+
time: isFunction((_h = config === null || config === void 0 ? void 0 : config.retry) === null || _h === void 0 ? void 0 : _h.time)
|
|
122
|
+
? config.retry.time
|
|
123
|
+
: normalizeNumber((_j = config === null || config === void 0 ? void 0 : config.retry) === null || _j === void 0 ? void 0 : _j.time, controlConfig.retry.time),
|
|
124
|
+
limit: normalizeNumber((_k = config === null || config === void 0 ? void 0 : config.retry) === null || _k === void 0 ? void 0 : _k.limit, controlConfig.retry.limit, false),
|
|
125
|
+
consecutiveOnly: (_m = (_l = config === null || config === void 0 ? void 0 : config.retry) === null || _l === void 0 ? void 0 : _l.consecutiveOnly) !== null && _m !== void 0 ? _m : controlConfig.retry.consecutiveOnly,
|
|
126
|
+
},
|
|
127
|
+
pauseWhenHidden: (_o = config === null || config === void 0 ? void 0 : config.pauseWhenHidden) !== null && _o !== void 0 ? _o : controlConfig.pauseWhenHidden,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const visibilityState$ = pageVisibility$().pipe(rxjs.shareReplay({ bufferSize: 1, refCount: true }));
|
|
132
|
+
function getPollerFactory$(type, source$) {
|
|
133
|
+
let lastValue;
|
|
134
|
+
const completed$ = source$.pipe(rxjs.takeLast(1), rxjs.tap((value) => {
|
|
135
|
+
lastValue = value;
|
|
136
|
+
}));
|
|
137
|
+
return type === 'repeat'
|
|
138
|
+
? (getNextTime) => repeatWith$(completed$, () => getNextTime(lastValue))
|
|
139
|
+
: (getNextTime) => repeatWith$(rxjs.of(null), () => getNextTime(lastValue)).pipe(rxjs.switchMap(() => completed$));
|
|
140
|
+
}
|
|
141
|
+
function pageVisibility$() {
|
|
142
|
+
return isBrowser() ? rxjs.fromEvent(document, 'visibilitychange').pipe(rxjs.startWith(null), rxjs.map(isDocumentVisible)) : rxjs.of(true);
|
|
143
|
+
}
|
|
144
|
+
function repeatWith$(source$, getTime) {
|
|
145
|
+
return source$.pipe(rxjs.repeat({
|
|
146
|
+
delay: () => rxjs.timer(getTime()),
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function retryPoll(isLimit, getTime, resetError) {
|
|
151
|
+
return (source) => source.pipe(rxjs.retry({
|
|
152
|
+
delay: (error) => (isLimit() ? rxjs.throwError(() => error) : rxjs.timer(getTime(error))),
|
|
153
|
+
}), rxjs.tap(() => resetError()));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function poll(config) {
|
|
157
|
+
return (source$) => {
|
|
158
|
+
const { type, retry, pauseWhenHidden, getDelayTime, getRetryTime } = extendConfig(config);
|
|
159
|
+
const retryKey = retry.consecutiveOnly ? 'consecutiveRetryCount' : 'retryCount';
|
|
160
|
+
const state = {
|
|
161
|
+
value: undefined,
|
|
162
|
+
error: undefined,
|
|
163
|
+
pollCount: 0,
|
|
164
|
+
retryCount: 0,
|
|
165
|
+
consecutiveRetryCount: 0,
|
|
166
|
+
};
|
|
167
|
+
const nextDelayTime = (value) => {
|
|
168
|
+
state.pollCount += 1;
|
|
169
|
+
state.value = value;
|
|
170
|
+
return getDelayTime(state);
|
|
171
|
+
};
|
|
172
|
+
const nextRetryTime = (error) => {
|
|
173
|
+
state.error = error;
|
|
174
|
+
return getRetryTime(state);
|
|
175
|
+
};
|
|
176
|
+
const resetError = () => {
|
|
177
|
+
state.error = undefined;
|
|
178
|
+
state.consecutiveRetryCount = 0;
|
|
179
|
+
};
|
|
180
|
+
const isRetryLimit = () => {
|
|
181
|
+
state.retryCount += 1;
|
|
182
|
+
state.consecutiveRetryCount += 1;
|
|
183
|
+
return state[retryKey] > retry.limit;
|
|
184
|
+
};
|
|
185
|
+
const visibility$ = pauseWhenHidden ? visibilityState$ : rxjs.of(true);
|
|
186
|
+
const poller$ = getPollerFactory$(type, source$)(nextDelayTime);
|
|
187
|
+
return visibility$.pipe(rxjs.switchMap((isVisible) => (isVisible ? poller$.pipe(retryPoll(isRetryLimit, nextRetryTime, resetError)) : rxjs.EMPTY)));
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
exports.poll = poll;
|
|
192
|
+
exports.pollType = pollType;
|
|
193
|
+
exports.strategyType = strategyType;
|
|
194
|
+
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/constants/poll.const.ts","../../src/constants/strategies.const.ts","../../src/constants/config.const.ts","../../src/common/utils.ts","../../src/common/strategies.ts","../../src/common/config.ts","../../src/common/observables.ts","../../src/common/operators.ts","../../src/poll.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["shareReplay","takeLast","tap","of","switchMap","fromEvent","startWith","map","repeat","timer","retry","throwError","EMPTY"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,190 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { shareReplay, fromEvent, of, startWith, map, takeLast, tap, switchMap, repeat, timer, retry, throwError, EMPTY } from 'rxjs';
|
|
2
|
+
|
|
3
|
+
const pollType = {
|
|
4
|
+
REPEAT: 'repeat',
|
|
5
|
+
INTERVAL: 'interval',
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const strategyType = {
|
|
9
|
+
CONSTANT: 'constant',
|
|
10
|
+
LINEAR: 'linear',
|
|
11
|
+
EXPONENTIAL: 'exponential',
|
|
12
|
+
RANDOM: 'random',
|
|
13
|
+
DYNAMIC: 'dynamic',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const controlConfig = {
|
|
17
|
+
type: pollType.REPEAT,
|
|
18
|
+
delay: {
|
|
19
|
+
strategy: strategyType.CONSTANT,
|
|
20
|
+
time: 1000,
|
|
21
|
+
},
|
|
22
|
+
retry: {
|
|
23
|
+
strategy: strategyType.EXPONENTIAL,
|
|
24
|
+
time: 1000,
|
|
25
|
+
limit: 3,
|
|
26
|
+
consecutiveOnly: true,
|
|
27
|
+
},
|
|
28
|
+
pauseWhenHidden: true,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
function normalizeNumber(value, defaultValue = 0, isFinite = true) {
|
|
32
|
+
if (Array.isArray(value)) {
|
|
33
|
+
return value.map((n) => normalizeNumber(n, defaultValue, isFinite));
|
|
34
|
+
}
|
|
35
|
+
let normalizedValue = value !== null && value !== void 0 ? value : defaultValue;
|
|
36
|
+
if (Number.isNaN(normalizedValue) || (isFinite && !Number.isFinite(normalizedValue))) {
|
|
37
|
+
normalizedValue = defaultValue;
|
|
38
|
+
}
|
|
39
|
+
return Math.abs(normalizedValue);
|
|
40
|
+
}
|
|
41
|
+
function pickNumber(value) {
|
|
42
|
+
return Array.isArray(value) ? randomNumber(value[0], value[1]) : value;
|
|
43
|
+
}
|
|
44
|
+
function randomNumber(min, max) {
|
|
45
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
46
|
+
}
|
|
47
|
+
function isFunction(value) {
|
|
48
|
+
return typeof value === 'function';
|
|
49
|
+
}
|
|
50
|
+
function isBrowser() {
|
|
51
|
+
return typeof globalThis.window !== 'undefined' && typeof globalThis.window.document !== 'undefined';
|
|
52
|
+
}
|
|
53
|
+
function isDocumentVisible() {
|
|
54
|
+
return !document.hidden;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function getStrategyTimeProducer(mode, config) {
|
|
58
|
+
const { strategy, time } = config[mode];
|
|
59
|
+
const isDelayMode = mode === 'delay';
|
|
60
|
+
const isConsecutive = config.retry.consecutiveOnly;
|
|
61
|
+
let timeProducer;
|
|
62
|
+
let attemptKey;
|
|
63
|
+
if (isDelayMode) {
|
|
64
|
+
attemptKey = 'pollCount';
|
|
65
|
+
}
|
|
66
|
+
else if (isConsecutive) {
|
|
67
|
+
attemptKey = 'consecutiveRetryCount';
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
attemptKey = 'retryCount';
|
|
71
|
+
}
|
|
72
|
+
switch (strategy) {
|
|
73
|
+
case 'constant':
|
|
74
|
+
timeProducer = () => time;
|
|
75
|
+
break;
|
|
76
|
+
case 'linear':
|
|
77
|
+
timeProducer = (state) => state[attemptKey] * time;
|
|
78
|
+
break;
|
|
79
|
+
case 'exponential':
|
|
80
|
+
timeProducer = (state) => Math.pow(2, state[attemptKey] - 1) * time;
|
|
81
|
+
break;
|
|
82
|
+
case 'random':
|
|
83
|
+
timeProducer = () => randomNumber(time[0], time[1]);
|
|
84
|
+
break;
|
|
85
|
+
case 'dynamic':
|
|
86
|
+
timeProducer = (state) => time(state);
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
throw new Error('rxjs-poll: Unknown strategy!');
|
|
90
|
+
}
|
|
91
|
+
return timeProducer;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function extendConfig(config) {
|
|
95
|
+
const normalizedConfig = normalizeConfig(config);
|
|
96
|
+
return Object.assign(Object.assign({}, normalizedConfig), { getDelayTime: getTimeProducer('delay', normalizedConfig), getRetryTime: getTimeProducer('retry', normalizedConfig) });
|
|
97
|
+
}
|
|
98
|
+
function getTimeProducer(mode, config) {
|
|
99
|
+
const defaultTime = controlConfig[mode].time;
|
|
100
|
+
const timeProducer = getStrategyTimeProducer(mode, config);
|
|
101
|
+
return (state) => {
|
|
102
|
+
const producedTime = timeProducer(Object.assign({}, state));
|
|
103
|
+
const normalizedTime = normalizeNumber(producedTime, defaultTime);
|
|
104
|
+
return pickNumber(normalizedTime);
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function normalizeConfig(config) {
|
|
108
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
109
|
+
return {
|
|
110
|
+
type: (_a = config === null || config === void 0 ? void 0 : config.type) !== null && _a !== void 0 ? _a : controlConfig.type,
|
|
111
|
+
delay: {
|
|
112
|
+
strategy: (_c = (_b = config === null || config === void 0 ? void 0 : config.delay) === null || _b === void 0 ? void 0 : _b.strategy) !== null && _c !== void 0 ? _c : controlConfig.delay.strategy,
|
|
113
|
+
time: isFunction((_d = config === null || config === void 0 ? void 0 : config.delay) === null || _d === void 0 ? void 0 : _d.time)
|
|
114
|
+
? config.delay.time
|
|
115
|
+
: normalizeNumber((_e = config === null || config === void 0 ? void 0 : config.delay) === null || _e === void 0 ? void 0 : _e.time, controlConfig.delay.time),
|
|
116
|
+
},
|
|
117
|
+
retry: {
|
|
118
|
+
strategy: (_g = (_f = config === null || config === void 0 ? void 0 : config.retry) === null || _f === void 0 ? void 0 : _f.strategy) !== null && _g !== void 0 ? _g : controlConfig.retry.strategy,
|
|
119
|
+
time: isFunction((_h = config === null || config === void 0 ? void 0 : config.retry) === null || _h === void 0 ? void 0 : _h.time)
|
|
120
|
+
? config.retry.time
|
|
121
|
+
: normalizeNumber((_j = config === null || config === void 0 ? void 0 : config.retry) === null || _j === void 0 ? void 0 : _j.time, controlConfig.retry.time),
|
|
122
|
+
limit: normalizeNumber((_k = config === null || config === void 0 ? void 0 : config.retry) === null || _k === void 0 ? void 0 : _k.limit, controlConfig.retry.limit, false),
|
|
123
|
+
consecutiveOnly: (_m = (_l = config === null || config === void 0 ? void 0 : config.retry) === null || _l === void 0 ? void 0 : _l.consecutiveOnly) !== null && _m !== void 0 ? _m : controlConfig.retry.consecutiveOnly,
|
|
124
|
+
},
|
|
125
|
+
pauseWhenHidden: (_o = config === null || config === void 0 ? void 0 : config.pauseWhenHidden) !== null && _o !== void 0 ? _o : controlConfig.pauseWhenHidden,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const visibilityState$ = pageVisibility$().pipe(shareReplay({ bufferSize: 1, refCount: true }));
|
|
130
|
+
function getPollerFactory$(type, source$) {
|
|
131
|
+
let lastValue;
|
|
132
|
+
const completed$ = source$.pipe(takeLast(1), tap((value) => {
|
|
133
|
+
lastValue = value;
|
|
134
|
+
}));
|
|
135
|
+
return type === 'repeat'
|
|
136
|
+
? (getNextTime) => repeatWith$(completed$, () => getNextTime(lastValue))
|
|
137
|
+
: (getNextTime) => repeatWith$(of(null), () => getNextTime(lastValue)).pipe(switchMap(() => completed$));
|
|
138
|
+
}
|
|
139
|
+
function pageVisibility$() {
|
|
140
|
+
return isBrowser() ? fromEvent(document, 'visibilitychange').pipe(startWith(null), map(isDocumentVisible)) : of(true);
|
|
141
|
+
}
|
|
142
|
+
function repeatWith$(source$, getTime) {
|
|
143
|
+
return source$.pipe(repeat({
|
|
144
|
+
delay: () => timer(getTime()),
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function retryPoll(isLimit, getTime, resetError) {
|
|
149
|
+
return (source) => source.pipe(retry({
|
|
150
|
+
delay: (error) => (isLimit() ? throwError(() => error) : timer(getTime(error))),
|
|
151
|
+
}), tap(() => resetError()));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function poll(config) {
|
|
155
|
+
return (source$) => {
|
|
156
|
+
const { type, retry, pauseWhenHidden, getDelayTime, getRetryTime } = extendConfig(config);
|
|
157
|
+
const retryKey = retry.consecutiveOnly ? 'consecutiveRetryCount' : 'retryCount';
|
|
158
|
+
const state = {
|
|
159
|
+
value: undefined,
|
|
160
|
+
error: undefined,
|
|
161
|
+
pollCount: 0,
|
|
162
|
+
retryCount: 0,
|
|
163
|
+
consecutiveRetryCount: 0,
|
|
164
|
+
};
|
|
165
|
+
const nextDelayTime = (value) => {
|
|
166
|
+
state.pollCount += 1;
|
|
167
|
+
state.value = value;
|
|
168
|
+
return getDelayTime(state);
|
|
169
|
+
};
|
|
170
|
+
const nextRetryTime = (error) => {
|
|
171
|
+
state.error = error;
|
|
172
|
+
return getRetryTime(state);
|
|
173
|
+
};
|
|
174
|
+
const resetError = () => {
|
|
175
|
+
state.error = undefined;
|
|
176
|
+
state.consecutiveRetryCount = 0;
|
|
177
|
+
};
|
|
178
|
+
const isRetryLimit = () => {
|
|
179
|
+
state.retryCount += 1;
|
|
180
|
+
state.consecutiveRetryCount += 1;
|
|
181
|
+
return state[retryKey] > retry.limit;
|
|
182
|
+
};
|
|
183
|
+
const visibility$ = pauseWhenHidden ? visibilityState$ : of(true);
|
|
184
|
+
const poller$ = getPollerFactory$(type, source$)(nextDelayTime);
|
|
185
|
+
return visibility$.pipe(switchMap((isVisible) => (isVisible ? poller$.pipe(retryPoll(isRetryLimit, nextRetryTime, resetError)) : EMPTY)));
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export { poll, pollType, strategyType };
|
|
190
|
+
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/constants/poll.const.ts","../../src/constants/strategies.const.ts","../../src/constants/config.const.ts","../../src/common/utils.ts","../../src/common/strategies.ts","../../src/common/config.ts","../../src/common/observables.ts","../../src/common/operators.ts","../../src/poll.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAiC,MAAM,MAAM,CAAC;AAE/E,wBAAgB,SAAS,CAAC,CAAC,EACzB,OAAO,EAAE,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAiC,MAAM,MAAM,CAAC;AAE/E,wBAAgB,SAAS,CAAC,CAAC,EACzB,OAAO,EAAE,MAAM,OAAO,EAEtB,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,EAC/B,UAAU,EAAE,MAAM,IAAI,GACrB,wBAAwB,CAAC,CAAC,CAAC,CAQ7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAElD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;AACxG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;AACxG,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,GAAG,MAAM,CAAC;AAenB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAElD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;AACxG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;AACxG,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,GAAG,MAAM,CAAC;AAenB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAE3E;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
package/dist/types/poll.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,wBAAwB,EAAiB,MAAM,MAAM,CAAC;AAKtE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,wBAAwB,EAAiB,MAAM,MAAM,CAAC;AAKtE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,CA6CjF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.type.d.ts","sourceRoot":"","sources":["../../../src/types/poll.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,8FAA8F;IAC9F,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IACrB,iCAAiC;
|
|
1
|
+
{"version":3,"file":"poll.type.d.ts","sourceRoot":"","sources":["../../../src/types/poll.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,8FAA8F;IAC9F,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IACrB,iCAAiC;IAEjC,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC;IACvB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;CAMnB,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC"}
|