@dereekb/rxjs 13.6.9 → 13.6.11

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/index.esm.js CHANGED
@@ -1,5 +1,573 @@
1
- import { isObservable, of, switchMap, combineLatest, map, delay, startWith, filter, skipWhile, EMPTY, distinctUntilChanged, mergeMap, BehaviorSubject, shareReplay, skip, defaultIfEmpty, first, finalize, merge, firstValueFrom, exhaustMap, scan, identity, throttleTime, takeWhile, timeout, tap, throwError, timer, delayWhen, asyncScheduler, from, catchError, Subject } from 'rxjs';
2
- import { getValueFromGetter, isMaybeSo, filterMaybeArrayValues, areEqualPOJOValues, convertToArray, asGetter, performTaskLoop, isMaybeNot, forEachWithArray, pushArrayItemsIntoArray, asArray, pushItemOrArrayItemsIntoArray, filterAndMapFunction, expirationDetails, objectKeysEqualityComparatorFunction, objectKeyEqualityComparatorFunction, asPromise, randomNumberFactory, mapsHaveSameKeys, mapKeysIntersectionObjectToArray, incrementingNumberFactory, filterUniqueFunction, build, cachedGetter, allKeyValueTuples, keyValueMapFactory, multiKeyValueMapFactory, timePeriodCounter, hasSameValues, compareEqualityWithValueFromItemsFunction, setContainsAllValues, setContainsAnyValue, setContainsNoneOfValue, searchStringFilterFunction, reduceBooleansWithAnd, toReadableError, reduceBooleansWithOr, valuesAreBothNullishOrEquivalent, mergeObjects, objectHasKey, safeCompareEquality, hasNonNullValue, limitArray, mapFunctionOutputPair, lastValue, flattenArray, hasValueOrNotEmpty, filteredPage, invertMaybeBoolean, FIRST_PAGE, getNextPageNumber, reduceBooleansWithOrFn, MS_IN_SECOND } from '@dereekb/util';
1
+ import { isWebsiteUrlWithPrefix, getValueFromGetter, isMaybeSo, filterMaybeArrayValues, areEqualPOJOValues, convertToArray, asGetter, performTaskLoop, isMaybeNot, forEachWithArray, pushArrayItemsIntoArray, asArray, pushItemOrArrayItemsIntoArray, filterAndMapFunction, expirationDetails, objectKeysEqualityComparatorFunction, objectKeyEqualityComparatorFunction, asPromise, randomNumberFactory, mapsHaveSameKeys, mapKeysIntersectionObjectToArray, incrementingNumberFactory, filterUniqueFunction, build, cachedGetter, allKeyValueTuples, keyValueMapFactory, multiKeyValueMapFactory, timePeriodCounter, hasSameValues, compareEqualityWithValueFromItemsFunction, setContainsAllValues, setContainsAnyValue, setContainsNoneOfValue, searchStringFilterFunction, reduceBooleansWithAnd, toReadableError, reduceBooleansWithOr, valuesAreBothNullishOrEquivalent, mergeObjects, objectHasKey, safeCompareEquality, hasNonNullValue, limitArray, mapFunctionOutputPair, lastValue, flattenArray, hasValueOrNotEmpty, filteredPage, invertMaybeBoolean, FIRST_PAGE, getNextPageNumber, reduceBooleansWithOrFn, MS_IN_SECOND } from '@dereekb/util';
2
+ import { defer, from, isObservable, of, switchMap, combineLatest, map, delay, startWith, filter, skipWhile, EMPTY, distinctUntilChanged, mergeMap, BehaviorSubject, shareReplay, skip, defaultIfEmpty, first, finalize, merge, firstValueFrom, exhaustMap, scan, identity, throttleTime, takeWhile, timeout, tap, throwError, timer, delayWhen, asyncScheduler, catchError, Subject } from 'rxjs';
3
+
4
+ function _class_call_check$9(instance, Constructor) {
5
+ if (!(instance instanceof Constructor)) {
6
+ throw new TypeError("Cannot call a class as a function");
7
+ }
8
+ }
9
+ // MARK: Abstract Loader
10
+ /**
11
+ * Abstract asset loader that serves as a DI token in both Angular and NestJS.
12
+ *
13
+ * Accepts an {@link AssetPathRef} and returns an {@link AssetLoaderAssetInstance}
14
+ * for lazy Observable-based loading.
15
+ *
16
+ * Follows the same abstract-class-as-DI-token pattern as StorageObject.
17
+ * All concrete implementations are functional (factory functions returning
18
+ * objects satisfying this contract), except Angular's DbxCoreAssetLoader
19
+ * which requires @Injectable().
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * // Angular: inject(AssetLoader)
24
+ * // NestJS: @Inject(AssetLoader)
25
+ * const instance = loader.get(PROJECT_ASSETS.SCHOOL_DISTRICTS);
26
+ * instance.load().subscribe((data) => { ... });
27
+ * ```
28
+ */ var AssetLoader = function AssetLoader() {
29
+ _class_call_check$9(this, AssetLoader);
30
+ }
31
+ ;
32
+
33
+ /**
34
+ * Creates a local {@link AssetLocalPathRef}.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const DISTRICTS = localAsset('data/school-districts.json');
39
+ * // { sourceType: 'local', path: 'data/school-districts.json' }
40
+ * ```
41
+ *
42
+ * @param path - Relative path from the environment's base asset directory.
43
+ */ function localAsset(path) {
44
+ return {
45
+ sourceType: 'local',
46
+ path: path
47
+ };
48
+ }
49
+ /**
50
+ * Creates a remote {@link AssetRemotePathRef}.
51
+ *
52
+ * Remote assets always use absolute URLs with an http:// or https:// prefix.
53
+ * Throws if the provided URL does not have a valid prefix.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const CDN = remoteAsset('https://cdn.example.com/geo.json');
58
+ * // { sourceType: 'remote', url: 'https://cdn.example.com/geo.json' }
59
+ * ```
60
+ *
61
+ * @param url - Absolute URL with http/https prefix to fetch the asset from.
62
+ * @throws Error if the URL does not have a valid http/https prefix.
63
+ */ function remoteAsset(url) {
64
+ if (!isWebsiteUrlWithPrefix(url)) {
65
+ throw new Error('remoteAsset() requires a URL with http:// or https:// prefix, got: "'.concat(url, '"'));
66
+ }
67
+ return {
68
+ sourceType: 'remote',
69
+ url: url
70
+ };
71
+ }
72
+ /**
73
+ * Creates a fluent builder for creating multiple local asset refs
74
+ * from the same folder.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const DATA = assetFolder('data');
79
+ *
80
+ * const DISTRICTS = DATA.asset('school-districts.json');
81
+ * // { sourceType: 'local', path: 'data/school-districts.json' }
82
+ *
83
+ * const [A, B] = DATA.assets(['a.txt', 'b.txt']);
84
+ * // [
85
+ * // { sourceType: 'local', path: 'data/a.txt' },
86
+ * // { sourceType: 'local', path: 'data/b.txt' }
87
+ * // ]
88
+ * ```
89
+ *
90
+ * @param folder - Base folder path for the assets.
91
+ */ function assetFolder(folder) {
92
+ var normalizedFolder = folder.endsWith('/') ? folder : folder + '/';
93
+ var builder = {
94
+ asset: function asset(path) {
95
+ return localAsset("".concat(normalizedFolder).concat(path));
96
+ },
97
+ assets: function assets(paths) {
98
+ return paths.map(function(path) {
99
+ return localAsset("".concat(normalizedFolder).concat(path));
100
+ });
101
+ }
102
+ };
103
+ return builder;
104
+ }
105
+ /**
106
+ * Creates a fluent builder for creating multiple remote asset refs
107
+ * from the same base URL.
108
+ *
109
+ * The base URL must be a valid {@link WebsiteUrlWithPrefix}.
110
+ * Each child path is appended to produce a full absolute URL.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const CDN = remoteAssetBaseUrl('https://cdn.example.com/assets');
115
+ *
116
+ * const GEO = CDN.asset('data/geo.json');
117
+ * // { sourceType: 'remote', url: 'https://cdn.example.com/assets/data/geo.json' }
118
+ *
119
+ * const [A, B] = CDN.assets(['a.json', 'b.json']);
120
+ * // [
121
+ * // { sourceType: 'remote', url: 'https://cdn.example.com/assets/a.json' },
122
+ * // { sourceType: 'remote', url: 'https://cdn.example.com/assets/b.json' }
123
+ * // ]
124
+ * ```
125
+ *
126
+ * @param baseUrl - Base URL with http/https prefix.
127
+ * @throws Error if the base URL does not have a valid http/https prefix.
128
+ */ function remoteAssetBaseUrl(baseUrl) {
129
+ if (!isWebsiteUrlWithPrefix(baseUrl)) {
130
+ throw new Error('remoteAssetBaseUrl() requires a URL with http:// or https:// prefix, got: "'.concat(baseUrl, '"'));
131
+ }
132
+ var normalizedBase = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
133
+ function resolveChildUrl(path) {
134
+ return new URL(path, normalizedBase).href;
135
+ }
136
+ var builder = {
137
+ asset: function asset(path) {
138
+ return remoteAsset(resolveChildUrl(path));
139
+ },
140
+ assets: function assets(paths) {
141
+ return paths.map(function(path) {
142
+ return remoteAsset(resolveChildUrl(path));
143
+ });
144
+ }
145
+ };
146
+ return builder;
147
+ }
148
+
149
+ /**
150
+ * Creates an {@link AssetLoaderAssetInstance} from a ref and a Promise-based get function.
151
+ *
152
+ * The returned {@link AssetLoaderAssetInstance.load} observable is cold — each subscription
153
+ * invokes the get function anew.
154
+ *
155
+ * @example
156
+ * ```ts
157
+ * const instance = assetLoaderAssetInstance(ref, (r) => fetch(r.path).then(res => res.arrayBuffer()));
158
+ * instance.load().subscribe((data) => { ... });
159
+ * ```
160
+ *
161
+ * @param ref - The asset path reference this instance represents.
162
+ * @param getFn - Promise-based function that loads the asset bytes.
163
+ */ function assetLoaderAssetInstance(ref, getFn) {
164
+ return {
165
+ ref: function ref1() {
166
+ return ref;
167
+ },
168
+ load: function load() {
169
+ return defer(function() {
170
+ return from(getFn(ref));
171
+ });
172
+ }
173
+ };
174
+ }
175
+ /**
176
+ * Creates an {@link AssetLoader} from a single {@link AssetLoaderGetFn}.
177
+ *
178
+ * This is the primary helper for building functional AssetLoader implementations
179
+ * from a Promise-based leaf loader.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * const loader = assetLoaderFromGetFn(async (ref) => {
184
+ * const response = await fetch(resolveUrl(ref));
185
+ * return response.arrayBuffer();
186
+ * });
187
+ * ```
188
+ *
189
+ * @param getFn - Promise-based function that loads any asset's bytes.
190
+ */ function assetLoaderFromGetFn(getFn) {
191
+ var loader = {
192
+ get: function get(ref) {
193
+ return assetLoaderAssetInstance(ref, getFn);
194
+ }
195
+ };
196
+ return loader;
197
+ }
198
+
199
+ /**
200
+ * Creates an {@link AssetLoader} that delegates to source-type-specific loaders.
201
+ *
202
+ * This is the primary composition point: wire a local loader and a remote
203
+ * loader together, and the delegated loader routes each {@link AssetPathRef}
204
+ * to the correct one based on {@link AssetPathRef.sourceType}.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * const loader = delegatedAssetLoader({
209
+ * local: nodeJsLocalAssetLoader({ basePath: './assets' }),
210
+ * remote: fetchAssetLoader({ baseUrl: 'https://api.example.com/assets/' })
211
+ * });
212
+ *
213
+ * loader.get(localAsset('data/districts.json')); // → local loader
214
+ * loader.get(remoteAsset('data/geo.json')); // → remote loader
215
+ * ```
216
+ *
217
+ * @param config - Specifies the local and remote delegate loaders.
218
+ */ function delegatedAssetLoader(config) {
219
+ var local = config.local, remote = config.remote;
220
+ var loader = {
221
+ get: function get(ref) {
222
+ var delegate = ref.sourceType === 'local' ? local : remote;
223
+ return delegate.get(ref);
224
+ }
225
+ };
226
+ return loader;
227
+ }
228
+
229
+ function asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, key, arg) {
230
+ try {
231
+ var info = gen[key](arg);
232
+ var value = info.value;
233
+ } catch (error) {
234
+ reject(error);
235
+ return;
236
+ }
237
+ if (info.done) {
238
+ resolve(value);
239
+ } else {
240
+ Promise.resolve(value).then(_next, _throw);
241
+ }
242
+ }
243
+ function _async_to_generator$3(fn) {
244
+ return function() {
245
+ var self = this, args = arguments;
246
+ return new Promise(function(resolve, reject) {
247
+ var gen = fn.apply(self, args);
248
+ function _next(value) {
249
+ asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "next", value);
250
+ }
251
+ function _throw(err) {
252
+ asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "throw", err);
253
+ }
254
+ _next(undefined);
255
+ });
256
+ };
257
+ }
258
+ function _ts_generator$3(thisArg, body) {
259
+ var f, y, t, _ = {
260
+ label: 0,
261
+ sent: function() {
262
+ if (t[0] & 1) throw t[1];
263
+ return t[1];
264
+ },
265
+ trys: [],
266
+ ops: []
267
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
268
+ return d(g, "next", {
269
+ value: verb(0)
270
+ }), d(g, "throw", {
271
+ value: verb(1)
272
+ }), d(g, "return", {
273
+ value: verb(2)
274
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
275
+ value: function() {
276
+ return this;
277
+ }
278
+ }), g;
279
+ function verb(n) {
280
+ return function(v) {
281
+ return step([
282
+ n,
283
+ v
284
+ ]);
285
+ };
286
+ }
287
+ function step(op) {
288
+ if (f) throw new TypeError("Generator is already executing.");
289
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
290
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
291
+ if (y = 0, t) op = [
292
+ op[0] & 2,
293
+ t.value
294
+ ];
295
+ switch(op[0]){
296
+ case 0:
297
+ case 1:
298
+ t = op;
299
+ break;
300
+ case 4:
301
+ _.label++;
302
+ return {
303
+ value: op[1],
304
+ done: false
305
+ };
306
+ case 5:
307
+ _.label++;
308
+ y = op[1];
309
+ op = [
310
+ 0
311
+ ];
312
+ continue;
313
+ case 7:
314
+ op = _.ops.pop();
315
+ _.trys.pop();
316
+ continue;
317
+ default:
318
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
319
+ _ = 0;
320
+ continue;
321
+ }
322
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
323
+ _.label = op[1];
324
+ break;
325
+ }
326
+ if (op[0] === 6 && _.label < t[1]) {
327
+ _.label = t[1];
328
+ t = op;
329
+ break;
330
+ }
331
+ if (t && _.label < t[2]) {
332
+ _.label = t[2];
333
+ _.ops.push(op);
334
+ break;
335
+ }
336
+ if (t[2]) _.ops.pop();
337
+ _.trys.pop();
338
+ continue;
339
+ }
340
+ op = body.call(thisArg, _);
341
+ } catch (e) {
342
+ op = [
343
+ 6,
344
+ e
345
+ ];
346
+ y = 0;
347
+ } finally{
348
+ f = t = 0;
349
+ }
350
+ if (op[0] & 5) throw op[1];
351
+ return {
352
+ value: op[0] ? op[1] : void 0,
353
+ done: true
354
+ };
355
+ }
356
+ }
357
+ /**
358
+ * Creates an {@link AssetLoader} that loads remote assets via HTTP fetch.
359
+ * Works in both browser and Node.js (Node 18+) environments.
360
+ *
361
+ * Remote refs always have absolute URLs, so no base URL resolution is needed.
362
+ *
363
+ * @example
364
+ * ```ts
365
+ * const loader = fetchAssetLoader();
366
+ * loader.get(remoteAsset('https://cdn.example.com/geo.json')).load().subscribe((data) => {
367
+ * // loaded from https://cdn.example.com/geo.json
368
+ * });
369
+ *
370
+ * // With a custom fetch function:
371
+ * const loader = fetchAssetLoader({ fetch: myAuthenticatedFetch });
372
+ * ```
373
+ *
374
+ * @param config - Optional fetch configuration with custom fetch function.
375
+ */ function fetchAssetLoader() {
376
+ var config = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
377
+ var _config_fetch;
378
+ var fetchFn = (_config_fetch = config.fetch) !== null && _config_fetch !== void 0 ? _config_fetch : globalThis.fetch;
379
+ var getFn = function getFn(ref) {
380
+ return _async_to_generator$3(function() {
381
+ var remoteRef, url, response;
382
+ return _ts_generator$3(this, function(_state) {
383
+ switch(_state.label){
384
+ case 0:
385
+ remoteRef = ref;
386
+ url = remoteRef.url;
387
+ return [
388
+ 4,
389
+ fetchFn(url)
390
+ ];
391
+ case 1:
392
+ response = _state.sent();
393
+ if (!response.ok) {
394
+ throw new Error("Failed to fetch asset from ".concat(url, ": ").concat(response.status, " ").concat(response.statusText));
395
+ }
396
+ return [
397
+ 2,
398
+ response.arrayBuffer()
399
+ ];
400
+ }
401
+ });
402
+ })();
403
+ };
404
+ return assetLoaderFromGetFn(getFn);
405
+ }
406
+
407
+ function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
408
+ try {
409
+ var info = gen[key](arg);
410
+ var value = info.value;
411
+ } catch (error) {
412
+ reject(error);
413
+ return;
414
+ }
415
+ if (info.done) {
416
+ resolve(value);
417
+ } else {
418
+ Promise.resolve(value).then(_next, _throw);
419
+ }
420
+ }
421
+ function _async_to_generator$2(fn) {
422
+ return function() {
423
+ var self = this, args = arguments;
424
+ return new Promise(function(resolve, reject) {
425
+ var gen = fn.apply(self, args);
426
+ function _next(value) {
427
+ asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
428
+ }
429
+ function _throw(err) {
430
+ asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
431
+ }
432
+ _next(undefined);
433
+ });
434
+ };
435
+ }
436
+ function _ts_generator$2(thisArg, body) {
437
+ var f, y, t, _ = {
438
+ label: 0,
439
+ sent: function() {
440
+ if (t[0] & 1) throw t[1];
441
+ return t[1];
442
+ },
443
+ trys: [],
444
+ ops: []
445
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
446
+ return d(g, "next", {
447
+ value: verb(0)
448
+ }), d(g, "throw", {
449
+ value: verb(1)
450
+ }), d(g, "return", {
451
+ value: verb(2)
452
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
453
+ value: function() {
454
+ return this;
455
+ }
456
+ }), g;
457
+ function verb(n) {
458
+ return function(v) {
459
+ return step([
460
+ n,
461
+ v
462
+ ]);
463
+ };
464
+ }
465
+ function step(op) {
466
+ if (f) throw new TypeError("Generator is already executing.");
467
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
468
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
469
+ if (y = 0, t) op = [
470
+ op[0] & 2,
471
+ t.value
472
+ ];
473
+ switch(op[0]){
474
+ case 0:
475
+ case 1:
476
+ t = op;
477
+ break;
478
+ case 4:
479
+ _.label++;
480
+ return {
481
+ value: op[1],
482
+ done: false
483
+ };
484
+ case 5:
485
+ _.label++;
486
+ y = op[1];
487
+ op = [
488
+ 0
489
+ ];
490
+ continue;
491
+ case 7:
492
+ op = _.ops.pop();
493
+ _.trys.pop();
494
+ continue;
495
+ default:
496
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
497
+ _ = 0;
498
+ continue;
499
+ }
500
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
501
+ _.label = op[1];
502
+ break;
503
+ }
504
+ if (op[0] === 6 && _.label < t[1]) {
505
+ _.label = t[1];
506
+ t = op;
507
+ break;
508
+ }
509
+ if (t && _.label < t[2]) {
510
+ _.label = t[2];
511
+ _.ops.push(op);
512
+ break;
513
+ }
514
+ if (t[2]) _.ops.pop();
515
+ _.trys.pop();
516
+ continue;
517
+ }
518
+ op = body.call(thisArg, _);
519
+ } catch (e) {
520
+ op = [
521
+ 6,
522
+ e
523
+ ];
524
+ y = 0;
525
+ } finally{
526
+ f = t = 0;
527
+ }
528
+ if (op[0] & 5) throw op[1];
529
+ return {
530
+ value: op[0] ? op[1] : void 0,
531
+ done: true
532
+ };
533
+ }
534
+ }
535
+ /**
536
+ * Creates an {@link AssetLoader} backed by an in-memory map.
537
+ * Useful for testing without filesystem or network access.
538
+ *
539
+ * Assets are matched by reference identity — the same {@link AssetPathRef}
540
+ * object used to populate the map must be used to retrieve the data.
541
+ *
542
+ * @example
543
+ * ```ts
544
+ * const DISTRICTS = localAsset('districts.json');
545
+ * const loader = memoryAssetLoader(new Map([
546
+ * [DISTRICTS, new TextEncoder().encode('[]').buffer]
547
+ * ]));
548
+ *
549
+ * loader.get(DISTRICTS).load().subscribe((data) => { ... });
550
+ * ```
551
+ *
552
+ * @param assets - Map of asset refs to their raw byte data.
553
+ */ function memoryAssetLoader(assets) {
554
+ var getFn = function getFn(ref) {
555
+ return _async_to_generator$2(function() {
556
+ var data;
557
+ return _ts_generator$2(this, function(_state) {
558
+ data = assets.get(ref);
559
+ if (!data) {
560
+ throw new Error("Asset not found in memory loader: ".concat(JSON.stringify(ref)));
561
+ }
562
+ return [
563
+ 2,
564
+ data
565
+ ];
566
+ });
567
+ })();
568
+ };
569
+ return assetLoaderFromGetFn(getFn);
570
+ }
3
571
 
4
572
  function asObservable(valueOrObs) {
5
573
  if (isObservable(valueOrObs)) {
@@ -6205,4 +6773,4 @@ function _define_property(obj, key, value) {
6205
6773
  };
6206
6774
  }
6207
6775
 
6208
- export { DEFAULT_ASYNC_PUSHER_THROTTLE, DEFAULT_FACTORY_TIMER_INTERVAL, DEFAULT_ITEM_PAGE_ITERATOR_MAX, DEFAULT_LOADING_EVENT_FOR_LOADING_PAIR_FUNCTION, DEFAULT_LOCK_SET_TIME_LOCK_KEY, FilterMap, FilterMapKeyInstance, FilterSource, FilterSourceConnector, FilterSourceInstance, ItemPageIterationInstance, ItemPageIterator, LoadingStateType, LockSet, MultiSubscriptionObject, PresetFilterSource, SimpleLoadingContext, SubscriptionObject, ValuesLoadingContext, WorkInstance, accumulatorCurrentPageListLoadingState, accumulatorFlattenPageListLoadingState, areAllLoadingStatesFinishedLoading, arrayValueFromFinishedLoadingState, asObservable, asObservableFromGetter, asyncPusher, asyncPusherCache, beginLoading, beginLoadingPage, catchLoadingStateErrorWithOperator, checkIs, cleanup, cleanupDestroyable, combineLatestFromArrayObsFn, combineLatestFromMapValuesObsFn, combineLatestFromObject, combineLatestMapFrom, combineLoadingStates, combineLoadingStatesStatus, currentValueFromLoadingState, distinctLoadingState, distinctUntilArrayLengthChanges, distinctUntilHasDifferentValues, distinctUntilItemsHaveDifferentValues, distinctUntilItemsValueChanges, distinctUntilKeysChange, distinctUntilMapHasDifferentKeys, distinctUntilModelIdChange, distinctUntilModelKeyChange, distinctUntilObjectKeyChange, distinctUntilObjectValuesChanged, emitAfterDelay, emitDelayObs, errorFromLoadingState, errorOnEmissionsInPeriod, errorPageResult, errorResult, factoryTimer, filterIfObjectValuesUnchanged, filterItemsWithObservableDecision, filterMaybe, filterMaybeArray, filterMaybeStrict, filterUnique, filterWithSearchString, flattenAccumulatorResultItemArray, idleLoadingState, incrementingNumberTimer, initialize, invertObservableDecision, isAnyLoadingStateInLoadingState, isItemPageIteratorResultEndResult, isListLoadingStateWithEmptyValue, isLoading, isLoadingStateEqual, isLoadingStateFinishedLoading, isLoadingStateFinishedLoadingWithDefinedValue, isLoadingStateFinishedLoadingWithError, isLoadingStateInErrorState, isLoadingStateInIdleState, isLoadingStateInLoadingState, isLoadingStateInSuccessState, isLoadingStateLoading, isLoadingStateMetadataEqual, isLoadingStateWithDefinedValue, isLoadingStateWithError, isLoadingStateWithStateType, isNot, isPageLoadingStateMetadataEqual, itemAccumulator, itemAccumulatorNextPageUntilResultsCount, iterationHasNextAndCanLoadMore, iteratorNextPageUntilMaxPageLoadLimit, iteratorNextPageUntilPage, keyValueMap, lazyFrom, listLoadingStateContext, loadingStateContext, loadingStateFromObs, loadingStateType, makeCheckIsFunction, makeIsModifiedFunction, makeIsModifiedFunctionObservable, makeMapFilterWithPresetFn, makeReturnIfIsFunction, mapEachAsync, mapFilterWithPreset, mapForEach, mapIf, mapIsListLoadingStateWithEmptyValue, mapItemIteration, mapKeysIntersectionToArray, mapLoadingState, mapLoadingStateResults, mapLoadingStateValueFunction, mapLoadingStateValueWithOperator, mapMaybe, mapMultipleLoadingStateResults, mappedPageItemIteration, maybeValueFromObservableOrValue, maybeValueFromObservableOrValueGetter, mergeLoadingStateWithError, mergeLoadingStateWithLoading, mergeLoadingStateWithValue, mergeLoadingStates, multiKeyValueMap, onFalseToTrue, onLockSetNextUnlock, onMatchDelta, onTrueToFalse, pageItemAccumulatorCurrentPage, pageLoadingStateFromObs, pipeIf, preventComplete, promiseFromLoadingState, randomDelay, randomDelayWithRandomFunction, returnIfIs, scanBuildArray, scanCount, scanIntoArray, setContainsAllValuesFrom, setContainsAnyValueFrom, setContainsNoValueFrom, skipAfterExpiration, skipAllInitialMaybe, skipExpired, skipInitialMaybe, skipMaybes, skipUntilExpiration, skipUntilTimeElapsedAfterLastEmission, startWithBeginLoading, successPageResult, successResult, switchMapFilterMaybe, switchMapMaybe, switchMapMaybeDefault, switchMapMaybeLoadingContextStream, switchMapObject, switchMapOnBoolean, switchMapToDefault, switchMapWhileFalse, switchMapWhileTrue, takeAfterTimeElapsedSinceLastEmission, tapAfterTimeout, tapFirst, tapLog, tapOnLoadingStateSuccess, tapOnLoadingStateType, throwErrorAfterTimeout, throwErrorFromLoadingStateError, timeoutStartWith, toExpiration, useAsObservable, useFirst, valueFromFinishedLoadingState, valueFromLoadingState, valueFromObservableOrValue, valueFromObservableOrValueGetter, workFactory, workFactoryForConfigFactory };
6776
+ export { AssetLoader, DEFAULT_ASYNC_PUSHER_THROTTLE, DEFAULT_FACTORY_TIMER_INTERVAL, DEFAULT_ITEM_PAGE_ITERATOR_MAX, DEFAULT_LOADING_EVENT_FOR_LOADING_PAIR_FUNCTION, DEFAULT_LOCK_SET_TIME_LOCK_KEY, FilterMap, FilterMapKeyInstance, FilterSource, FilterSourceConnector, FilterSourceInstance, ItemPageIterationInstance, ItemPageIterator, LoadingStateType, LockSet, MultiSubscriptionObject, PresetFilterSource, SimpleLoadingContext, SubscriptionObject, ValuesLoadingContext, WorkInstance, accumulatorCurrentPageListLoadingState, accumulatorFlattenPageListLoadingState, areAllLoadingStatesFinishedLoading, arrayValueFromFinishedLoadingState, asObservable, asObservableFromGetter, assetFolder, assetLoaderAssetInstance, assetLoaderFromGetFn, asyncPusher, asyncPusherCache, beginLoading, beginLoadingPage, catchLoadingStateErrorWithOperator, checkIs, cleanup, cleanupDestroyable, combineLatestFromArrayObsFn, combineLatestFromMapValuesObsFn, combineLatestFromObject, combineLatestMapFrom, combineLoadingStates, combineLoadingStatesStatus, currentValueFromLoadingState, delegatedAssetLoader, distinctLoadingState, distinctUntilArrayLengthChanges, distinctUntilHasDifferentValues, distinctUntilItemsHaveDifferentValues, distinctUntilItemsValueChanges, distinctUntilKeysChange, distinctUntilMapHasDifferentKeys, distinctUntilModelIdChange, distinctUntilModelKeyChange, distinctUntilObjectKeyChange, distinctUntilObjectValuesChanged, emitAfterDelay, emitDelayObs, errorFromLoadingState, errorOnEmissionsInPeriod, errorPageResult, errorResult, factoryTimer, fetchAssetLoader, filterIfObjectValuesUnchanged, filterItemsWithObservableDecision, filterMaybe, filterMaybeArray, filterMaybeStrict, filterUnique, filterWithSearchString, flattenAccumulatorResultItemArray, idleLoadingState, incrementingNumberTimer, initialize, invertObservableDecision, isAnyLoadingStateInLoadingState, isItemPageIteratorResultEndResult, isListLoadingStateWithEmptyValue, isLoading, isLoadingStateEqual, isLoadingStateFinishedLoading, isLoadingStateFinishedLoadingWithDefinedValue, isLoadingStateFinishedLoadingWithError, isLoadingStateInErrorState, isLoadingStateInIdleState, isLoadingStateInLoadingState, isLoadingStateInSuccessState, isLoadingStateLoading, isLoadingStateMetadataEqual, isLoadingStateWithDefinedValue, isLoadingStateWithError, isLoadingStateWithStateType, isNot, isPageLoadingStateMetadataEqual, itemAccumulator, itemAccumulatorNextPageUntilResultsCount, iterationHasNextAndCanLoadMore, iteratorNextPageUntilMaxPageLoadLimit, iteratorNextPageUntilPage, keyValueMap, lazyFrom, listLoadingStateContext, loadingStateContext, loadingStateFromObs, loadingStateType, localAsset, makeCheckIsFunction, makeIsModifiedFunction, makeIsModifiedFunctionObservable, makeMapFilterWithPresetFn, makeReturnIfIsFunction, mapEachAsync, mapFilterWithPreset, mapForEach, mapIf, mapIsListLoadingStateWithEmptyValue, mapItemIteration, mapKeysIntersectionToArray, mapLoadingState, mapLoadingStateResults, mapLoadingStateValueFunction, mapLoadingStateValueWithOperator, mapMaybe, mapMultipleLoadingStateResults, mappedPageItemIteration, maybeValueFromObservableOrValue, maybeValueFromObservableOrValueGetter, memoryAssetLoader, mergeLoadingStateWithError, mergeLoadingStateWithLoading, mergeLoadingStateWithValue, mergeLoadingStates, multiKeyValueMap, onFalseToTrue, onLockSetNextUnlock, onMatchDelta, onTrueToFalse, pageItemAccumulatorCurrentPage, pageLoadingStateFromObs, pipeIf, preventComplete, promiseFromLoadingState, randomDelay, randomDelayWithRandomFunction, remoteAsset, remoteAssetBaseUrl, returnIfIs, scanBuildArray, scanCount, scanIntoArray, setContainsAllValuesFrom, setContainsAnyValueFrom, setContainsNoValueFrom, skipAfterExpiration, skipAllInitialMaybe, skipExpired, skipInitialMaybe, skipMaybes, skipUntilExpiration, skipUntilTimeElapsedAfterLastEmission, startWithBeginLoading, successPageResult, successResult, switchMapFilterMaybe, switchMapMaybe, switchMapMaybeDefault, switchMapMaybeLoadingContextStream, switchMapObject, switchMapOnBoolean, switchMapToDefault, switchMapWhileFalse, switchMapWhileTrue, takeAfterTimeElapsedSinceLastEmission, tapAfterTimeout, tapFirst, tapLog, tapOnLoadingStateSuccess, tapOnLoadingStateType, throwErrorAfterTimeout, throwErrorFromLoadingStateError, timeoutStartWith, toExpiration, useAsObservable, useFirst, valueFromFinishedLoadingState, valueFromLoadingState, valueFromObservableOrValue, valueFromObservableOrValueGetter, workFactory, workFactoryForConfigFactory };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@dereekb/rxjs",
3
- "version": "13.6.9",
3
+ "version": "13.6.11",
4
4
  "peerDependencies": {
5
5
  "rxjs": "^7.8.0",
6
- "@dereekb/util": "13.6.9"
6
+ "@dereekb/util": "13.6.11"
7
7
  },
8
8
  "exports": {
9
9
  "./package.json": "./package.json",