rx-tiny-flux 1.0.33 → 1.0.35

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 CHANGED
@@ -194,10 +194,6 @@ counterSubscription.unsubscribe();
194
194
 
195
195
  For developers using the `ZML` library on the ZeppOS platform, `rx-tiny-flux` offers an optional plugin that seamlessly integrates the store with the `BaseApp` and `BasePage` component lifecycle.
196
196
 
197
- **Disclaimer:** This library is currently intended to run inside ZeppOS. It uses ZeppOS-only modules (like `@zos/fs` and `@zos/ble/TransferFile`) for large action transfers, so bundlers outside the ZeppOS environment may warn about unresolved dependencies.
198
-
199
- **Promise:** A future release will provide a ZeppOS-safe optional build (lazy-loading the `@zos/*` modules) so non-ZeppOS environments can consume the library without these warnings.
200
-
201
197
  This plugin injects `dispatch` and `subscribe` methods into your component's instance. Most importantly, the `subscribe` method is lifecycle-aware: it automatically tracks all subscriptions and unsubscribes from them when the component's `onDestroy` hook is called, preventing common memory leaks.
202
198
 
203
199
  #### How to Use
@@ -352,8 +348,6 @@ const showSuccessToastEffect = createEffect(actions$ => actions$.pipe(
352
348
 
353
349
  ```
354
350
 
355
- For large payloads that exceed the `messaging.call` limits, use `propagateLargeAction()` instead of `propagateAction()`. It persists the action on disk, transfers it using the TransferFile API, and dispatches it on the other side. Ensure the `storePlugin` is registered on both the App and Side Service contexts so the receiver can read and dispatch the file.
356
-
357
351
  #### Accessing State within Effects using `withLatestFromStore`
358
352
 
359
353
  A common requirement for effects is to access the current state to make decisions. For example, an effect might need the current user's ID to fetch data. The `withLatestFromStore` operator is designed for this purpose, especially in ZeppOS where the `store` instance isn't readily available when defining effects.
@@ -125,10 +125,5 @@ declare const isApp: <T>() => MonoTypeOperatorFunction<T>;
125
125
  */
126
126
  declare const propagateAction: () => OperatorFunction<Action, Action>;
127
127
 
128
- /**
129
- * RxJS operator to propagate a large action using the TransferFile API.
130
- */
131
- declare const propagateLargeAction: () => OperatorFunction<Action, Action>;
132
-
133
- export { Store, anyAction, createAction, createEffect, createFeatureSelector, createReducer, createSelector, isApp, isSideService, ofType, on, propagateAction, propagateLargeAction, storePlugin, withLatestFromStore };
128
+ export { Store, anyAction, createAction, createEffect, createFeatureSelector, createReducer, createSelector, isApp, isSideService, ofType, on, propagateAction, storePlugin, withLatestFromStore };
134
129
  export type { Action, StorePage };
@@ -2393,405 +2393,6 @@ function createSelector(...args) {
2393
2393
  };
2394
2394
  }
2395
2395
 
2396
- const LARGE_ACTION_MESSAGE_KEY = '__rxTinyFluxLargeAction';
2397
- const TRANSFER_STATE_KEY = '_rxTinyFluxTransferState';
2398
- let cachedTransferFileInstance;
2399
- let cachedFsModule;
2400
-
2401
- const tryResolveModule = (moduleName) => {
2402
- const loader = typeof __$$RQR$$__ === 'function'
2403
- ? __$$RQR$$__
2404
- : (typeof require === 'function' ? require : null);
2405
-
2406
- if (!loader) {
2407
- return null;
2408
- }
2409
-
2410
- try {
2411
- return loader(moduleName);
2412
- } catch (error) {
2413
- return null;
2414
- }
2415
- };
2416
-
2417
- const resolveTransferFileInstance = () => {
2418
- if (cachedTransferFileInstance !== undefined) {
2419
- return cachedTransferFileInstance;
2420
- }
2421
-
2422
- const isSideServiceContext = typeof messaging !== 'undefined';
2423
-
2424
- if (isSideServiceContext) {
2425
- if (typeof transferFile !== 'undefined' && typeof transferFile.getInbox === 'function') {
2426
- cachedTransferFileInstance = transferFile;
2427
- return cachedTransferFileInstance;
2428
- }
2429
- }
2430
-
2431
- if (isSideServiceContext && typeof globalThis !== 'undefined') {
2432
- if (globalThis.transferFile && typeof globalThis.transferFile.getInbox === 'function') {
2433
- cachedTransferFileInstance = globalThis.transferFile;
2434
- return cachedTransferFileInstance;
2435
- }
2436
- }
2437
-
2438
- if (!isSideServiceContext) {
2439
- const module = tryResolveModule('@zos/ble/TransferFile');
2440
- const TransferFileCtor = module && (module.default || module.TransferFile || module);
2441
- if (TransferFileCtor) {
2442
- cachedTransferFileInstance = new TransferFileCtor();
2443
- return cachedTransferFileInstance;
2444
- }
2445
- }
2446
-
2447
- cachedTransferFileInstance = null;
2448
- return cachedTransferFileInstance;
2449
- };
2450
-
2451
- const resolveFsModule = () => {
2452
- if (cachedFsModule !== undefined) {
2453
- return cachedFsModule;
2454
- }
2455
-
2456
- if (typeof globalThis !== 'undefined' && globalThis.fs) {
2457
- cachedFsModule = globalThis.fs;
2458
- return cachedFsModule;
2459
- }
2460
-
2461
- cachedFsModule = tryResolveModule('@zos/fs') || null;
2462
- return cachedFsModule;
2463
- };
2464
-
2465
- const logDebug = (context, message) => {
2466
- if (context && typeof context.debug === 'function') {
2467
- context.debug(message);
2468
- } else if (typeof console !== 'undefined' && typeof console.debug === 'function') {
2469
- console.debug(message);
2470
- }
2471
- };
2472
-
2473
- const logError = (context, message, error) => {
2474
- if (typeof console !== 'undefined' && typeof console.error === 'function') {
2475
- console.error(message, error);
2476
- } else if (typeof console !== 'undefined' && typeof console.log === 'function') {
2477
- console.log(message, error);
2478
- }
2479
- };
2480
-
2481
- const getTransferState = (context) => {
2482
- if (!context) {
2483
- return null;
2484
- }
2485
-
2486
- if (context[TRANSFER_STATE_KEY]) {
2487
- return context[TRANSFER_STATE_KEY];
2488
- }
2489
-
2490
- try {
2491
- const transferFile = resolveTransferFileInstance();
2492
- if (!transferFile) {
2493
- logError(context, '[rx-tiny-flux] TransferFile is not available.');
2494
- return null;
2495
- }
2496
-
2497
- const state = {
2498
- transferFile,
2499
- inbox: transferFile.getInbox(),
2500
- outbox: transferFile.getOutbox(),
2501
- inboxListenerAttached: false,
2502
- expectedFiles: new Set(),
2503
- };
2504
- context[TRANSFER_STATE_KEY] = state;
2505
- return state;
2506
- } catch (error) {
2507
- logError(context, '[rx-tiny-flux] Failed to initialize TransferFile.', error);
2508
- return null;
2509
- }
2510
- };
2511
-
2512
- const createTransferId = () => `${Date.now()}-${Math.random().toString(16).slice(2)}`;
2513
-
2514
- const buildFileName = (transferId) => `data://rx-tiny-flux-action-${transferId}.json`;
2515
-
2516
- const decodeToString = (data) => {
2517
- if (typeof data === 'string') {
2518
- return data;
2519
- }
2520
-
2521
- if (!data) {
2522
- return '';
2523
- }
2524
-
2525
- if (typeof TextDecoder !== 'undefined') {
2526
- try {
2527
- return new TextDecoder('utf-8').decode(data);
2528
- } catch (error) {
2529
- logDebug(null, `[rx-tiny-flux] TextDecoder failed: ${error?.message || error}`);
2530
- }
2531
- }
2532
-
2533
- let view = data;
2534
- if (data instanceof ArrayBuffer) {
2535
- view = new Uint8Array(data);
2536
- } else if (ArrayBuffer.isView(data)) {
2537
- view = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
2538
- }
2539
-
2540
- let result = '';
2541
- for (let i = 0; i < view.length; i += 1) {
2542
- result += String.fromCharCode(view[i]);
2543
- }
2544
- return result;
2545
- };
2546
-
2547
- const writeActionFile = (context, filePath, action) => {
2548
- const fs = resolveFsModule();
2549
- if (!fs || typeof fs.writeFileSync !== 'function') {
2550
- throw new Error('[rx-tiny-flux] writeFileSync is not available in @zos/fs.');
2551
- }
2552
- fs.writeFileSync(filePath, JSON.stringify(action));
2553
- logDebug(context, `[rx-tiny-flux] Stored large action at ${filePath}.`);
2554
- };
2555
-
2556
- const readActionFile = (context, filePath) => {
2557
- const fs = resolveFsModule();
2558
- if (!fs || typeof fs.readFileSync !== 'function') {
2559
- throw new Error('[rx-tiny-flux] readFileSync is not available in @zos/fs.');
2560
- }
2561
- const raw = fs.readFileSync(filePath);
2562
- const text = decodeToString(raw);
2563
- return JSON.parse(text);
2564
- };
2565
-
2566
- const removeFile = (context, filePath) => {
2567
- if (!filePath) {
2568
- return;
2569
- }
2570
-
2571
- const fs = resolveFsModule();
2572
- if (!fs) {
2573
- return;
2574
- }
2575
-
2576
- try {
2577
- if (typeof fs.unlinkSync === 'function') {
2578
- fs.unlinkSync(filePath);
2579
- } else if (typeof fs.rmSync === 'function') {
2580
- fs.rmSync(filePath);
2581
- } else if (typeof fs.removeSync === 'function') {
2582
- fs.removeSync(filePath);
2583
- }
2584
- } catch (error) {
2585
- logDebug(context, `[rx-tiny-flux] Failed to remove file ${filePath}.`);
2586
- }
2587
- };
2588
-
2589
- const getFileMeta = (fileObject) => {
2590
- if (!fileObject) {
2591
- return null;
2592
- }
2593
-
2594
- if (fileObject.meta) {
2595
- return fileObject.meta;
2596
- }
2597
-
2598
- if (fileObject.metadata) {
2599
- return fileObject.metadata;
2600
- }
2601
-
2602
- if (fileObject.metaData) {
2603
- return fileObject.metaData;
2604
- }
2605
-
2606
- if (typeof fileObject.getMetaData === 'function') {
2607
- return fileObject.getMetaData();
2608
- }
2609
-
2610
- if (typeof fileObject.getMetadata === 'function') {
2611
- return fileObject.getMetadata();
2612
- }
2613
-
2614
- return null;
2615
- };
2616
-
2617
- const getFilePath = (fileObject, fallbackPath) => {
2618
- if (!fileObject) {
2619
- return fallbackPath;
2620
- }
2621
-
2622
- if (fileObject.filePath) {
2623
- return fileObject.filePath;
2624
- }
2625
-
2626
- if (fileObject.path) {
2627
- return fileObject.path;
2628
- }
2629
-
2630
- if (fileObject.fullPath) {
2631
- return fileObject.fullPath;
2632
- }
2633
-
2634
- if (fileObject.fileName) {
2635
- return fileObject.fileName;
2636
- }
2637
-
2638
- if (typeof fileObject.getFilePath === 'function') {
2639
- return fileObject.getFilePath();
2640
- }
2641
-
2642
- return fallbackPath;
2643
- };
2644
-
2645
- const dispatchActionFromFile = (context, filePath) => {
2646
- try {
2647
- const action = readActionFile(context, filePath);
2648
- if (action && typeof action.type === 'string') {
2649
- if (typeof context.dispatch === 'function') {
2650
- context.dispatch(action);
2651
- } else {
2652
- logError(context, '[rx-tiny-flux] Dispatch is not available for large action.');
2653
- }
2654
- } else {
2655
- logDebug(context, '[rx-tiny-flux] Ignored large action without a valid type.');
2656
- }
2657
- } catch (error) {
2658
- logError(context, `[rx-tiny-flux] Failed to read large action from ${filePath}.`, error);
2659
- } finally {
2660
- removeFile(context, filePath);
2661
- }
2662
- };
2663
-
2664
- const handleLargeActionMessage = (context, message) => {
2665
- if (!message) {
2666
- return false;
2667
- }
2668
-
2669
- const payload = message[LARGE_ACTION_MESSAGE_KEY] || (message.type === LARGE_ACTION_MESSAGE_KEY ? message : null);
2670
- if (!payload) {
2671
- return false;
2672
- }
2673
-
2674
- const state = getTransferState(context);
2675
- if (state) {
2676
- const fileName = payload.fileName || message.fileName;
2677
- if (fileName) {
2678
- state.expectedFiles.add(fileName);
2679
- }
2680
- }
2681
-
2682
- logDebug(context, '[rx-tiny-flux] Received large action header message.');
2683
- return true;
2684
- };
2685
-
2686
- const setupLargeActionReceiver = (context) => {
2687
- const state = getTransferState(context);
2688
- if (!state || state.inboxListenerAttached) {
2689
- return;
2690
- }
2691
-
2692
- state.inboxListenerAttached = true;
2693
-
2694
- state.inbox.on('NEWFILE', () => {
2695
- const fileObject = state.inbox.getNextFile();
2696
- if (!fileObject) {
2697
- return;
2698
- }
2699
-
2700
- const meta = getFileMeta(fileObject);
2701
- const metaPayload = meta && meta[LARGE_ACTION_MESSAGE_KEY];
2702
- const filePath = getFilePath(fileObject, metaPayload && metaPayload.fileName);
2703
- const isExpected = filePath && state.expectedFiles.has(filePath);
2704
- const isLargeAction = Boolean(metaPayload) || isExpected;
2705
-
2706
- if (filePath && isExpected) {
2707
- state.expectedFiles.delete(filePath);
2708
- }
2709
-
2710
- if (!isLargeAction) {
2711
- return;
2712
- }
2713
-
2714
- const handleTransferred = () => {
2715
- if (filePath) {
2716
- dispatchActionFromFile(context, filePath);
2717
- } else {
2718
- logError(context, '[rx-tiny-flux] Incoming large action has no file path.');
2719
- }
2720
- };
2721
-
2722
- const handleError = () => {
2723
- if (filePath) {
2724
- removeFile(context, filePath);
2725
- }
2726
- };
2727
-
2728
- if (typeof fileObject.on === 'function') {
2729
- fileObject.on('change', (event) => {
2730
- const readyState = event && event.data && event.data.readyState;
2731
- if (readyState === 'transferred') {
2732
- handleTransferred();
2733
- } else if (readyState === 'error') {
2734
- handleError();
2735
- }
2736
- });
2737
- }
2738
-
2739
- if (fileObject.readyState === 'transferred') {
2740
- handleTransferred();
2741
- }
2742
- });
2743
- };
2744
-
2745
- const enqueueLargeActionTransfer = (action, context) => {
2746
- if (!context) {
2747
- return false;
2748
- }
2749
-
2750
- const state = getTransferState(context);
2751
- if (!state) {
2752
- return false;
2753
- }
2754
-
2755
- const transferId = createTransferId();
2756
- const fileName = buildFileName(transferId);
2757
- const payload = {
2758
- transferId,
2759
- fileName,
2760
- actionType: action && action.type,
2761
- };
2762
-
2763
- try {
2764
- writeActionFile(context, fileName, action);
2765
- } catch (error) {
2766
- logError(context, '[rx-tiny-flux] Failed to store large action on disk.', error);
2767
- return false;
2768
- }
2769
-
2770
- if (typeof context.call === 'function') {
2771
- context.call({ [LARGE_ACTION_MESSAGE_KEY]: payload });
2772
- }
2773
-
2774
- let fileObject;
2775
- try {
2776
- fileObject = state.outbox.enqueueFile(fileName, { [LARGE_ACTION_MESSAGE_KEY]: payload });
2777
- } catch (error) {
2778
- logError(context, '[rx-tiny-flux] Failed to enqueue file for transfer.', error);
2779
- removeFile(context, fileName);
2780
- return false;
2781
- }
2782
-
2783
- if (fileObject && typeof fileObject.on === 'function') {
2784
- fileObject.on('change', (event) => {
2785
- const readyState = event && event.data && event.data.readyState;
2786
- if (readyState === 'transferred' || readyState === 'error') {
2787
- removeFile(context, fileName);
2788
- }
2789
- });
2790
- }
2791
-
2792
- return true;
2793
- };
2794
-
2795
2396
  /**
2796
2397
  * @file zeppos.js
2797
2398
  * @description The main entry point for ZeppOS (ZML) integration.
@@ -2835,10 +2436,6 @@ function storePlugin(instance, store) {
2835
2436
  };
2836
2437
 
2837
2438
  this.onAction = (action) => {
2838
- if (handleLargeActionMessage(this, action)) {
2839
- return;
2840
- }
2841
-
2842
2439
  if (action && typeof action.type === 'string') {
2843
2440
  this.debug(`Dispatching action ${action.type} from App.onAction.`);
2844
2441
  this.dispatch(action);
@@ -2847,7 +2444,6 @@ function storePlugin(instance, store) {
2847
2444
  }
2848
2445
  };
2849
2446
  this.messaging.onCall(this.onAction);
2850
- setupLargeActionReceiver(this);
2851
2447
 
2852
2448
  // Handle subscriptions at the App level.
2853
2449
  /**
@@ -2890,10 +2486,6 @@ function storePlugin(instance, store) {
2890
2486
 
2891
2487
  // For SideService, define an onAction that dispatches to its own store.
2892
2488
  this.onAction = (action) => {
2893
- if (handleLargeActionMessage(this, action)) {
2894
- return;
2895
- }
2896
-
2897
2489
  if (action && typeof action.type === 'string') {
2898
2490
  this.debug(`Dispatching action ${action.type} from SideService.onAction.`);
2899
2491
  this.dispatch(action);
@@ -2936,9 +2528,6 @@ function storePlugin(instance, store) {
2936
2528
  this._store.dispatch(actionWithContext);
2937
2529
  }, 50);
2938
2530
  };
2939
- if (isSideServiceContext) {
2940
- setupLargeActionReceiver(this);
2941
- }
2942
2531
 
2943
2532
  /**
2944
2533
  * Subscribes to a piece of the store's state, with optional RxJS operators.
@@ -3076,22 +2665,4 @@ const propagateAction = () => tap((action) => {
3076
2665
  }
3077
2666
  });
3078
2667
 
3079
- /**
3080
- * A pipeable RxJS operator for effects, designed to propagate large actions from one ZeppOS
3081
- * context to another (e.g., App to Side Service) using the TransferFile API.
3082
- *
3083
- * It stores the action on disk, notifies the other context, and queues a file transfer.
3084
- *
3085
- * @returns {import('rxjs').OperatorFunction<Action, Action>} An operator that performs the side effect of transferring the action as a file.
3086
- */
3087
- const propagateLargeAction = () => tap((action) => {
3088
- if (action.context && typeof action.context.call === 'function') {
3089
- action.context.debug(`Propagation large action '${action.type}' through TransferFile.`);
3090
- const { context, ...actionToSend } = action;
3091
- enqueueLargeActionTransfer(actionToSend, action.context);
3092
- } else {
3093
- console.debug(`No context: Action '${action.type}' not propagated through TransferFile.`);
3094
- }
3095
- });
3096
-
3097
- export { EMPTY, Observable, Store, anyAction, bufferToggle, catchError, concatMap, createAction, createEffect, createFeatureSelector, createReducer, createSelector, debounceTime, defer, delay, exhaustMap, filter, from, isApp, isSideService, map, mergeMap, of, ofType, on, pipe, propagateAction, propagateLargeAction, scan, storePlugin, switchMap, take, tap, throttleTime, timer, withLatestFrom, withLatestFromStore };
2668
+ export { EMPTY, Observable, Store, anyAction, bufferToggle, catchError, concatMap, createAction, createEffect, createFeatureSelector, createReducer, createSelector, debounceTime, defer, delay, exhaustMap, filter, from, isApp, isSideService, map, mergeMap, of, ofType, on, pipe, propagateAction, scan, storePlugin, switchMap, take, tap, throttleTime, timer, withLatestFrom, withLatestFromStore };
@@ -1 +1 @@
1
- var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])},t(n,e)};function n(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=n}t(n,e),n.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function e(t,n,e,r){return new(e||(e=Promise))(function(o,i){function u(t){try{c(r.next(t))}catch(t){i(t)}}function s(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e(function(t){t(n)})).then(u,s)}c((r=r.apply(t,n||[])).next())})}function r(t,n){var e,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=s(0),u.throw=s(1),u.return=s(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function s(s){return function(c){return function(s){if(e)throw new TypeError("Generator is already executing.");for(;u&&(u=0,s[0]&&(i=0)),i;)try{if(e=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=n.call(t,i)}catch(t){s=[6,t],r=0}finally{e=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function o(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(t,n){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),u=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return u}function u(t,n,e){if(e||2===arguments.length)for(var r,o=0,i=n.length;o<i;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return t.concat(r||Array.prototype.slice.call(n))}function s(t){return this instanceof s?(this.v=t,this):new s(t)}function c(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=e.apply(t,n||[]),i=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),u("next"),u("throw"),u("return",function(t){return function(n){return Promise.resolve(n).then(t,l)}}),r[Symbol.asyncIterator]=function(){return this},r;function u(t,n){o[t]&&(r[t]=function(n){return new Promise(function(e,r){i.push([t,n,e,r])>1||c(t,n)})},n&&(r[t]=n(r[t])))}function c(t,n){try{(e=o[t](n)).value instanceof s?Promise.resolve(e.value.v).then(a,l):f(i[0][2],e)}catch(t){f(i[0][3],t)}var e}function a(t){c("next",t)}function l(t){c("throw",t)}function f(t,n){t(n),i.shift(),i.length&&c(i[0][0],i[0][1])}}function a(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,e=t[Symbol.asyncIterator];return e?e.call(t):(t=o(t),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(e){n[e]=t[e]&&function(n){return new Promise(function(r,o){(function(t,n,e,r){Promise.resolve(r).then(function(n){t({value:n,done:e})},n)})(r,o,(n=t[e](n)).done,n.value)})}}}function l(t){return"function"==typeof t}function f(t){var n=t(function(t){Error.call(t),t.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}"function"==typeof SuppressedError&&SuppressedError;var h=f(function(t){return function(n){t(this),this.message=n?n.length+" errors occurred during unsubscription:\n"+n.map(function(t,n){return n+1+") "+t.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=n}});function p(t,n){if(t){var e=t.indexOf(n);0<=e&&t.splice(e,1)}}var d=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}var n;return t.prototype.unsubscribe=function(){var t,n,e,r,s;if(!this.closed){this.closed=!0;var c=this._parentage;if(c)if(this._parentage=null,Array.isArray(c))try{for(var a=o(c),f=a.next();!f.done;f=a.next()){f.value.remove(this)}}catch(n){t={error:n}}finally{try{f&&!f.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}else c.remove(this);var p=this.initialTeardown;if(l(p))try{p()}catch(t){s=t instanceof h?t.errors:[t]}var d=this._finalizers;if(d){this._finalizers=null;try{for(var b=o(d),y=b.next();!y.done;y=b.next()){var g=y.value;try{v(g)}catch(t){s=null!=s?s:[],t instanceof h?s=u(u([],i(s)),i(t.errors)):s.push(t)}}}catch(t){e={error:t}}finally{try{y&&!y.done&&(r=b.return)&&r.call(b)}finally{if(e)throw e.error}}}if(s)throw new h(s)}},t.prototype.add=function(n){var e;if(n&&n!==this)if(this.closed)v(n);else{if(n instanceof t){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}},t.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},t.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},t.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&p(n,t)},t.prototype.remove=function(n){var e=this._finalizers;e&&p(e,n),n instanceof t&&n._removeParent(this)},t.EMPTY=((n=new t).closed=!0,n),t}(),b=d.EMPTY;function y(t){return t instanceof d||t&&"closed"in t&&l(t.remove)&&l(t.add)&&l(t.unsubscribe)}function v(t){l(t)?t():t.unsubscribe()}var g={Promise:void 0},x=function(t,n){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];return setTimeout.apply(void 0,u([t,n],i(e)))};function m(t){x(function(){throw t})}function w(){}function _(t){t()}var S=function(t){function e(n){var e=t.call(this)||this;return e.isStopped=!1,n?(e.destination=n,y(n)&&n.add(e)):e.destination=O,e}return n(e,t),e.create=function(t,n,e){return new E(t,n,e)},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(d),A=function(){function t(t){this.partialObserver=t}return t.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(t){F(t)}},t.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(t){F(t)}else F(t)},t.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(t){F(t)}},t}(),E=function(t){function e(n,e,r){var o,i=t.call(this)||this;return o=l(n)||!n?{next:null!=n?n:void 0,error:null!=e?e:void 0,complete:null!=r?r:void 0}:n,i.destination=new A(o),i}return n(e,t),e}(S);function F(t){m(t)}var O={closed:!0,next:w,error:function(t){throw t},complete:w},T="function"==typeof Symbol&&Symbol.observable||"@@observable";function P(t){return t}function I(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return $(t)}function $(t){return 0===t.length?P:1===t.length?t[0]:function(n){return t.reduce(function(t,n){return n(t)},n)}}var C=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(n){var e=new t;return e.source=this,e.operator=n,e},t.prototype.subscribe=function(t,n,e){var r,o=this,i=(r=t)&&r instanceof S||function(t){return t&&l(t.next)&&l(t.error)&&l(t.complete)}(r)&&y(r)?t:new E(t,n,e);return _(function(){var t=o,n=t.operator,e=t.source;i.add(n?n.call(i,e):e?o._subscribe(i):o._trySubscribe(i))}),i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},t.prototype.forEach=function(t,n){var e=this;return new(n=z(n))(function(n,r){var o=new E({next:function(n){try{t(n)}catch(t){r(t),o.unsubscribe()}},error:r,complete:n});e.subscribe(o)})},t.prototype._subscribe=function(t){var n;return null===(n=this.source)||void 0===n?void 0:n.subscribe(t)},t.prototype[T]=function(){return this},t.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return $(t)(this)},t.prototype.toPromise=function(t){var n=this;return new(t=z(t))(function(t,e){var r;n.subscribe(function(t){return r=t},function(t){return e(t)},function(){return t(r)})})},t.create=function(n){return new t(n)},t}();function z(t){var n;return null!==(n=null!=t?t:g.Promise)&&void 0!==n?n:Promise}function j(t){return function(n){if(function(t){return l(null==t?void 0:t.lift)}(n))return n.lift(function(n){try{return t(n,this)}catch(t){this.error(t)}});throw new TypeError("Unable to lift unknown Observable type")}}function k(t,n,e,r,o){return new N(t,n,e,r,o)}var N=function(t){function e(n,e,r,o,i,u){var s=t.call(this,n)||this;return s.onFinalize=i,s.shouldUnsubscribe=u,s._next=e?function(t){try{e(t)}catch(t){n.error(t)}}:t.prototype._next,s._error=o?function(t){try{o(t)}catch(t){n.error(t)}finally{this.unsubscribe()}}:t.prototype._error,s._complete=r?function(){try{r()}catch(t){n.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,s}return n(e,t),e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var e=this.closed;t.prototype.unsubscribe.call(this),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}},e}(S),D=f(function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),R=function(t){function e(){var n=t.call(this)||this;return n.closed=!1,n.currentObservers=null,n.observers=[],n.isStopped=!1,n.hasError=!1,n.thrownError=null,n}return n(e,t),e.prototype.lift=function(t){var n=new B(this,this);return n.operator=t,n},e.prototype._throwIfClosed=function(){if(this.closed)throw new D},e.prototype.next=function(t){var n=this;_(function(){var e,r;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var i=o(n.currentObservers),u=i.next();!u.done;u=i.next()){u.value.next(t)}}catch(t){e={error:t}}finally{try{u&&!u.done&&(r=i.return)&&r.call(i)}finally{if(e)throw e.error}}}})},e.prototype.error=function(t){var n=this;_(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=t;for(var e=n.observers;e.length;)e.shift().error(t)}})},e.prototype.complete=function(){var t=this;_(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var n=t.observers;n.length;)n.shift().complete()}})},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(n){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,n)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var n=this,e=this,r=e.hasError,o=e.isStopped,i=e.observers;return r||o?b:(this.currentObservers=null,i.push(t),new d(function(){n.currentObservers=null,p(i,t)}))},e.prototype._checkFinalizedStatuses=function(t){var n=this,e=n.hasError,r=n.thrownError,o=n.isStopped;e?t.error(r):o&&t.complete()},e.prototype.asObservable=function(){var t=new C;return t.source=this,t},e.create=function(t,n){return new B(t,n)},e}(C),B=function(t){function e(n,e){var r=t.call(this)||this;return r.destination=n,r.source=e,r}return n(e,t),e.prototype.next=function(t){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===e||e.call(n,t)},e.prototype.error=function(t){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===e||e.call(n,t)},e.prototype.complete=function(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)},e.prototype._subscribe=function(t){var n,e;return null!==(e=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==e?e:b},e}(R),M=function(t){function e(n){var e=t.call(this)||this;return e._value=n,e}return n(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(n){var e=t.prototype._subscribe.call(this,n);return!e.closed&&n.next(this._value),e},e.prototype.getValue=function(){var t=this,n=t.hasError,e=t.thrownError,r=t._value;if(n)throw e;return this._throwIfClosed(),r},e.prototype.next=function(n){t.prototype.next.call(this,this._value=n)},e}(R),L={now:function(){return(L.delegate||Date).now()},delegate:void 0},U=function(t){function e(n,e,r){void 0===n&&(n=1/0),void 0===e&&(e=1/0),void 0===r&&(r=L);var o=t.call(this)||this;return o._bufferSize=n,o._windowTime=e,o._timestampProvider=r,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=e===1/0,o._bufferSize=Math.max(1,n),o._windowTime=Math.max(1,e),o}return n(e,t),e.prototype.next=function(n){var e=this,r=e.isStopped,o=e._buffer,i=e._infiniteTimeWindow,u=e._timestampProvider,s=e._windowTime;r||(o.push(n),!i&&o.push(u.now()+s)),this._trimBuffer(),t.prototype.next.call(this,n)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(t),e=this._infiniteTimeWindow,r=this._buffer.slice(),o=0;o<r.length&&!t.closed;o+=e?1:2)t.next(r[o]);return this._checkFinalizedStatuses(t),n},e.prototype._trimBuffer=function(){var t=this,n=t._bufferSize,e=t._timestampProvider,r=t._buffer,o=t._infiniteTimeWindow,i=(o?1:2)*n;if(n<1/0&&i<r.length&&r.splice(0,r.length-i),!o){for(var u=e.now(),s=0,c=1;c<r.length&&r[c]<=u;c+=2)s=c;s&&r.splice(0,s+1)}},e}(R),q=function(t){function e(n,e){return t.call(this)||this}return n(e,t),e.prototype.schedule=function(t,n){return this},e}(d),W=function(t,n){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];return setInterval.apply(void 0,u([t,n],i(e)))},V=function(t){return clearInterval(t)},J=function(t){function e(n,e){var r=t.call(this,n,e)||this;return r.scheduler=n,r.work=e,r.pending=!1,r}return n(e,t),e.prototype.schedule=function(t,n){var e;if(void 0===n&&(n=0),this.closed)return this;this.state=t;var r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,n)),this.pending=!0,this.delay=n,this.id=null!==(e=this.id)&&void 0!==e?e:this.requestAsyncId(o,this.id,n),this},e.prototype.requestAsyncId=function(t,n,e){return void 0===e&&(e=0),W(t.flush.bind(t,this),e)},e.prototype.recycleAsyncId=function(t,n,e){if(void 0===e&&(e=0),null!=e&&this.delay===e&&!1===this.pending)return n;null!=n&&V(n)},e.prototype.execute=function(t,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var e=this._execute(t,n);if(e)return e;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,n){var e,r=!1;try{this.work(t)}catch(t){r=!0,e=t||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),e},e.prototype.unsubscribe=function(){if(!this.closed){var n=this.id,e=this.scheduler,r=e.actions;this.work=this.state=this.scheduler=null,this.pending=!1,p(r,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},e}(q),Y=function(){function t(n,e){void 0===e&&(e=t.now),this.schedulerActionCtor=n,this.now=e}return t.prototype.schedule=function(t,n,e){return void 0===n&&(n=0),new this.schedulerActionCtor(this,t).schedule(e,n)},t.now=L.now,t}(),Q=new(function(t){function e(n,e){void 0===e&&(e=Y.now);var r=t.call(this,n,e)||this;return r.actions=[],r._active=!1,r}return n(e,t),e.prototype.flush=function(t){var n=this.actions;if(this._active)n.push(t);else{var e;this._active=!0;do{if(e=t.execute(t.state,t.delay))break}while(t=n.shift());if(this._active=!1,e){for(;t=n.shift();)t.unsubscribe();throw e}}},e}(Y))(J),Z=Q,G=new C(function(t){return t.complete()});function K(t){return t&&l(t.schedule)}function H(t){return t[t.length-1]}function X(t){return K(H(t))?t.pop():void 0}var tt=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t};function nt(t){return l(null==t?void 0:t.then)}function et(t){return l(t[T])}function rt(t){return Symbol.asyncIterator&&l(null==t?void 0:t[Symbol.asyncIterator])}function ot(t){return new TypeError("You provided "+(null!==t&&"object"==typeof t?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var it="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function ut(t){return l(null==t?void 0:t[it])}function st(t){return c(this,arguments,function(){var n,e,o;return r(this,function(r){switch(r.label){case 0:n=t.getReader(),r.label=1;case 1:r.trys.push([1,,9,10]),r.label=2;case 2:return[4,s(n.read())];case 3:return e=r.sent(),o=e.value,e.done?[4,s(void 0)]:[3,5];case 4:return[2,r.sent()];case 5:return[4,s(o)];case 6:return[4,r.sent()];case 7:return r.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function ct(t){return l(null==t?void 0:t.getReader)}function at(t){if(t instanceof C)return t;if(null!=t){if(et(t))return i=t,new C(function(t){var n=i[T]();if(l(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(tt(t))return r=t,new C(function(t){for(var n=0;n<r.length&&!t.closed;n++)t.next(r[n]);t.complete()});if(nt(t))return e=t,new C(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,m)});if(rt(t))return lt(t);if(ut(t))return n=t,new C(function(t){var e,r;try{for(var i=o(n),u=i.next();!u.done;u=i.next()){var s=u.value;if(t.next(s),t.closed)return}}catch(t){e={error:t}}finally{try{u&&!u.done&&(r=i.return)&&r.call(i)}finally{if(e)throw e.error}}t.complete()});if(ct(t))return lt(st(t))}var n,e,r,i;throw ot(t)}function lt(t){return new C(function(n){(function(t,n){var o,i,u,s;return e(this,void 0,void 0,function(){var e,c;return r(this,function(r){switch(r.label){case 0:r.trys.push([0,5,6,11]),o=a(t),r.label=1;case 1:return[4,o.next()];case 2:if((i=r.sent()).done)return[3,4];if(e=i.value,n.next(e),n.closed)return[2];r.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=r.sent(),u={error:c},[3,11];case 6:return r.trys.push([6,,9,10]),i&&!i.done&&(s=o.return)?[4,s.call(o)]:[3,8];case 7:r.sent(),r.label=8;case 8:return[3,10];case 9:if(u)throw u.error;return[7];case 10:return[7];case 11:return n.complete(),[2]}})})})(t,n).catch(function(t){return n.error(t)})})}function ft(t,n,e,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=n.schedule(function(){e(),o?t.add(this.schedule(null,r)):this.unsubscribe()},r);if(t.add(i),!o)return i}function ht(t,n){return void 0===n&&(n=0),j(function(e,r){e.subscribe(k(r,function(e){return ft(r,t,function(){return r.next(e)},n)},function(){return ft(r,t,function(){return r.complete()},n)},function(e){return ft(r,t,function(){return r.error(e)},n)}))})}function pt(t,n){return void 0===n&&(n=0),j(function(e,r){r.add(t.schedule(function(){return e.subscribe(r)},n))})}function dt(t,n){if(!t)throw new Error("Iterable cannot be null");return new C(function(e){ft(e,n,function(){var r=t[Symbol.asyncIterator]();ft(e,n,function(){r.next().then(function(t){t.done?e.complete():e.next(t.value)})},0,!0)})})}function bt(t,n){if(null!=t){if(et(t))return function(t,n){return at(t).pipe(pt(n),ht(n))}(t,n);if(tt(t))return function(t,n){return new C(function(e){var r=0;return n.schedule(function(){r===t.length?e.complete():(e.next(t[r++]),e.closed||this.schedule())})})}(t,n);if(nt(t))return function(t,n){return at(t).pipe(pt(n),ht(n))}(t,n);if(rt(t))return dt(t,n);if(ut(t))return function(t,n){return new C(function(e){var r;return ft(e,n,function(){r=t[it](),ft(e,n,function(){var t,n,o;try{n=(t=r.next()).value,o=t.done}catch(t){return void e.error(t)}o?e.complete():e.next(n)},0,!0)}),function(){return l(null==r?void 0:r.return)&&r.return()}})}(t,n);if(ct(t))return function(t,n){return dt(st(t),n)}(t,n)}throw ot(t)}function yt(t,n){return n?bt(t,n):at(t)}function vt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return yt(t,X(t))}function gt(t,n){return j(function(e,r){var o=0;e.subscribe(k(r,function(e){r.next(t.call(n,e,o++))}))})}function xt(t,n,e){return void 0===e&&(e=1/0),l(n)?xt(function(e,r){return gt(function(t,o){return n(e,t,r,o)})(at(t(e,r)))},e):("number"==typeof n&&(e=n),j(function(n,r){return function(t,n,e,r,o,i,u){var s=[],c=0,a=0,l=!1,f=function(){!l||s.length||c||n.complete()},h=function(t){c++;var o=!1;at(e(t,a++)).subscribe(k(n,function(t){n.next(t)},function(){o=!0},void 0,function(){if(o)try{c--;for(var t=function(){var t=s.shift();u||h(t)};s.length&&c<r;)t();f()}catch(t){n.error(t)}}))};return t.subscribe(k(n,function(t){return c<r?h(t):s.push(t)},function(){l=!0,f()})),function(){}}(n,r,t,e)}))}function mt(){return xt(P,1)}function wt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return mt()(yt(t,X(t)))}function _t(t){return new C(function(n){at(t()).subscribe(n)})}function St(t,n,e){void 0===t&&(t=0),void 0===e&&(e=Z);var r=-1;return null!=n&&(K(n)?e=n:r=n),new C(function(n){var o,i=(o=t)instanceof Date&&!isNaN(o)?+t-e.now():t;i<0&&(i=0);var u=0;return e.schedule(function(){n.closed||(n.next(u++),0<=r?this.schedule(void 0,r):n.complete())},i)})}function At(t,n){return j(function(e,r){var o=0;e.subscribe(k(r,function(e){return t.call(n,e,o++)&&r.next(e)}))})}function Et(t,n){return j(function(e,r){var i=[];at(t).subscribe(k(r,function(t){var e=[];i.push(e);var o=new d;o.add(at(n(t)).subscribe(k(r,function(){p(i,e),r.next(e),o.unsubscribe()},w)))},w)),e.subscribe(k(r,function(t){var n,e;try{for(var r=o(i),u=r.next();!u.done;u=r.next()){u.value.push(t)}}catch(t){n={error:t}}finally{try{u&&!u.done&&(e=r.return)&&e.call(r)}finally{if(n)throw n.error}}},function(){for(;i.length>0;)r.next(i.shift());r.complete()}))})}function Ft(t){return j(function(n,e){var r,o=null,i=!1;o=n.subscribe(k(e,void 0,void 0,function(u){r=at(t(u,Ft(t)(n))),o?(o.unsubscribe(),o=null,r.subscribe(e)):i=!0})),i&&(o.unsubscribe(),o=null,r.subscribe(e))})}function Ot(t,n){return l(n)?xt(t,n,1):xt(t,1)}function Tt(t,n){return void 0===n&&(n=Q),j(function(e,r){var o=null,i=null,u=null,s=function(){if(o){o.unsubscribe(),o=null;var t=i;i=null,r.next(t)}};function c(){var e=u+t,i=n.now();if(i<e)return o=this.schedule(void 0,e-i),void r.add(o);s()}e.subscribe(k(r,function(e){i=e,u=n.now(),o||(o=n.schedule(c,t),r.add(o))},function(){s(),r.complete()},void 0,function(){i=o=null}))})}function Pt(t){return t<=0?function(){return G}:j(function(n,e){var r=0;n.subscribe(k(e,function(n){++r<=t&&(e.next(n),t<=r&&e.complete())}))})}function It(t,n){return xt(function(n,e){return at(t(n,e)).pipe(Pt(1),function(t){return gt(function(){return t})}(n))})}function $t(t,n){void 0===n&&(n=Q);var e=St(t,n);return It(function(){return e})}function Ct(t,n){return t===n}function zt(t,n){return n?function(e){return e.pipe(zt(function(e,r){return at(t(e,r)).pipe(gt(function(t,o){return n(e,t,r,o)}))}))}:j(function(n,e){var r=0,o=null,i=!1;n.subscribe(k(e,function(n){o||(o=k(e,void 0,function(){o=null,i&&e.complete()}),at(t(n,r++)).subscribe(o))},function(){i=!0,!o&&e.complete()}))})}function jt(t,n){return j(function(t,n,e,r,o){return function(r,i){var u=e,s=n,c=0;r.subscribe(k(i,function(n){var e=c++;s=u?t(s,n,e):(u=!0,n),i.next(s)},o))}}(t,n,arguments.length>=2))}function kt(t,n){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];if(!0!==n){if(!1!==n){var o=new E({next:function(){o.unsubscribe(),t()}});return at(n.apply(void 0,u([],i(e)))).subscribe(o)}}else t()}function Nt(t,n,e){var r;return r=t,function(t){void 0===t&&(t={});var n=t.connector,e=void 0===n?function(){return new R}:n,r=t.resetOnError,o=void 0===r||r,i=t.resetOnComplete,u=void 0===i||i,s=t.resetOnRefCountZero,c=void 0===s||s;return function(t){var n,r,i,s=0,a=!1,l=!1,f=function(){null==r||r.unsubscribe(),r=void 0},h=function(){f(),n=i=void 0,a=l=!1},p=function(){var t=n;h(),null==t||t.unsubscribe()};return j(function(t,d){s++,l||a||f();var b=i=null!=i?i:e();d.add(function(){0!==--s||l||a||(r=kt(p,c))}),b.subscribe(d),!n&&s>0&&(n=new E({next:function(t){return b.next(t)},error:function(t){l=!0,f(),r=kt(h,o,t),b.error(t)},complete:function(){a=!0,f(),r=kt(h,u),b.complete()}}),at(t).subscribe(n))})(t)}}({connector:function(){return new U(r,n,e)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:!1})}function Dt(t,n){return j(function(e,r){var o=null,i=0,u=!1,s=function(){return u&&!o&&r.complete()};e.subscribe(k(r,function(e){null==o||o.unsubscribe();var u=0,c=i++;at(t(e,c)).subscribe(o=k(r,function(t){return r.next(n?n(e,t,c,u++):t)},function(){o=null,s()}))},function(){u=!0,s()}))})}function Rt(t,n,e){var r=l(t)||n||e?{next:t,error:n,complete:e}:t;return r?j(function(t,n){var e;null===(e=r.subscribe)||void 0===e||e.call(r);var o=!0;t.subscribe(k(n,function(t){var e;null===(e=r.next)||void 0===e||e.call(r,t),n.next(t)},function(){var t;o=!1,null===(t=r.complete)||void 0===t||t.call(r),n.complete()},function(t){var e;o=!1,null===(e=r.error)||void 0===e||e.call(r,t),n.error(t)},function(){var t,n;o&&(null===(t=r.unsubscribe)||void 0===t||t.call(r)),null===(n=r.finalize)||void 0===n||n.call(r)}))}):P}function Bt(t,n,e){void 0===n&&(n=Q);var r=St(t,n);return function(t,n){return j(function(e,r){var o=null!=n?n:{},i=o.leading,u=void 0===i||i,s=o.trailing,c=void 0!==s&&s,a=!1,l=null,f=null,h=!1,p=function(){null==f||f.unsubscribe(),f=null,c&&(y(),h&&r.complete())},d=function(){f=null,h&&r.complete()},b=function(n){return f=at(t(n)).subscribe(k(r,p,d))},y=function(){if(a){a=!1;var t=l;l=null,r.next(t),!h&&b(t)}};e.subscribe(k(r,function(t){a=!0,l=t,(!f||f.closed)&&(u?y():b(t))},function(){h=!0,(!(c&&a&&f)||f.closed)&&r.complete()}))})}(function(){return r},e)}function Mt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e,r=l(H(e=t))?e.pop():void 0;return j(function(n,e){for(var o=t.length,s=new Array(o),c=t.map(function(){return!1}),a=!1,l=function(n){at(t[n]).subscribe(k(e,function(t){s[n]=t,a||c[n]||(c[n]=!0,(a=c.every(P))&&(c=null))},w))},f=0;f<o;f++)l(f);n.subscribe(k(e,function(t){if(a){var n=u([t],i(s));e.next(r?r.apply(void 0,u([],i(n))):n)}}))})}class Lt{_state$;_actions$=new R;get actions$(){return this._actions$.asObservable()}_reducers=[];_context=null;constructor(t={}){const n="function"==typeof structuredClone?structuredClone(t):JSON.parse(JSON.stringify(t));this._state$=new M(n);const e=this._actions$.pipe(jt((t,n)=>{let e={...t},r=!1;return this._reducers.forEach(({path:o,reducerFn:i})=>{const u=t[o],s=i(u,n);u!==s&&(e[o]=s,r=!0)}),r?e:t},n),function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=X(t);return j(function(n,r){(e?wt(t,n,e):wt(t,n)).subscribe(r)})}(t),Nt(1));e.subscribe(this._state$)}registerReducers(...t){this._reducers.push(...t);const n={...this._state$.getValue()};let e=!1;t.forEach(({path:t,initialState:r})=>{void 0===n[t]&&(n[t]=r,e=!0)}),e&&this._state$.next(n)}setContext(t){this._context=t}registerEffects(...t){t.forEach(t=>{const n=t._rxEffect||{dispatch:!0};let e=t(this._actions$);n.dispatch?e.pipe(gt(t=>this._context&&!t.context?{...t,context:this._context}:t)).subscribe(t=>this.dispatch(t)):e.subscribe()})}dispatch(t){this._actions$.next(t)}select(t){return this._state$.pipe(gt(n=>t(n)),(void 0===e&&(e=P),n=null!=n?n:Ct,j(function(t,r){var o,i=!0;t.subscribe(k(r,function(t){var u=e(t);!i&&n(o,u)||(i=!1,o=u,r.next(t))}))})));var n,e}}function Ut(t){const n=n=>({type:t,...n});return n.type=t,n}function qt(){}function Wt(...t){const n=t.pop(),e=t,r=e.includes(qt);if(r&&e.length>1)throw new Error("The `anyAction` token cannot be mixed with other action creators in a single `on` handler.");return{types:e.map(t=>t.type),reducerFn:n,isCatchAll:r}}function Vt(t,n,...e){if(!t||"string"!=typeof t)throw new Error("Reducer featureKey must be a non-empty string.");const r=e.filter(t=>!t.isCatchAll),o=e.find(t=>t.isCatchAll);return{path:t,initialState:n,reducerFn:(t=n,e)=>{for(const n of r)if(n.types.includes(e.type))return n.reducerFn(t,e);return o?o.reducerFn(t,e):t}}}function Jt(...t){const n=t.map(t=>t.type);return At(t=>n.includes(t.type))}function Yt(t,n={dispatch:!0}){if("function"!=typeof t)throw new Error("Effect must be a function.");return Object.defineProperty(t,"_rxEffect",{value:{dispatch:!1!==n.dispatch},enumerable:!1}),t}function Qt(t,n){return e=>{const r=e[t];return n?n(r):r}}function Zt(...t){const n=t.pop(),e=t;let r,o,i=!1;return t=>{const u=e.map(n=>n(t));return i&&function(t,n){if(!n||t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}(u,o)||(o=u,r=n(...u),i=!0),r}}const Gt="__rxTinyFluxLargeAction",Kt="_rxTinyFluxTransferState";let Ht,Xt;const tn=t=>{const n="function"==typeof __$$RQR$$__?__$$RQR$$__:"function"==typeof require?require:null;if(!n)return null;try{return n(t)}catch(t){return null}},nn=()=>{if(void 0!==Ht)return Ht;const t="undefined"!=typeof messaging;if(t&&"undefined"!=typeof transferFile&&"function"==typeof transferFile.getInbox)return Ht=transferFile,Ht;if(t&&"undefined"!=typeof globalThis&&globalThis.transferFile&&"function"==typeof globalThis.transferFile.getInbox)return Ht=globalThis.transferFile,Ht;if(!t){const t=tn("@zos/ble/TransferFile"),n=t&&(t.default||t.TransferFile||t);if(n)return Ht=new n,Ht}return Ht=null,Ht},en=()=>void 0!==Xt?Xt:"undefined"!=typeof globalThis&&globalThis.fs?(Xt=globalThis.fs,Xt):(Xt=tn("@zos/fs")||null,Xt),rn=(t,n)=>{t&&"function"==typeof t.debug?t.debug(n):"undefined"!=typeof console&&"function"==typeof console.debug&&console.debug(n)},on=(t,n,e)=>{"undefined"!=typeof console&&"function"==typeof console.error?console.error(n,e):"undefined"!=typeof console&&"function"==typeof console.log&&console.log(n,e)},un=t=>{if(!t)return null;if(t[Kt])return t[Kt];try{const n=nn();if(!n)return on(0,"[rx-tiny-flux] TransferFile is not available."),null;const e={transferFile:n,inbox:n.getInbox(),outbox:n.getOutbox(),inboxListenerAttached:!1,expectedFiles:new Set};return t[Kt]=e,e}catch(t){return on(0,"[rx-tiny-flux] Failed to initialize TransferFile.",t),null}},sn=(t,n)=>{const e=en();if(!e||"function"!=typeof e.readFileSync)throw new Error("[rx-tiny-flux] readFileSync is not available in @zos/fs.");const r=(t=>{if("string"==typeof t)return t;if(!t)return"";if("undefined"!=typeof TextDecoder)try{return new TextDecoder("utf-8").decode(t)}catch(t){rn(null,`[rx-tiny-flux] TextDecoder failed: ${t?.message||t}`)}let n=t;t instanceof ArrayBuffer?n=new Uint8Array(t):ArrayBuffer.isView(t)&&(n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength));let e="";for(let t=0;t<n.length;t+=1)e+=String.fromCharCode(n[t]);return e})(e.readFileSync(n));return JSON.parse(r)},cn=(t,n)=>{if(!n)return;const e=en();if(e)try{"function"==typeof e.unlinkSync?e.unlinkSync(n):"function"==typeof e.rmSync?e.rmSync(n):"function"==typeof e.removeSync&&e.removeSync(n)}catch(e){rn(t,`[rx-tiny-flux] Failed to remove file ${n}.`)}},an=(t,n)=>{if(!n)return!1;const e=n[Gt]||(n.type===Gt?n:null);if(!e)return!1;const r=un(t);if(r){const t=e.fileName||n.fileName;t&&r.expectedFiles.add(t)}return rn(t,"[rx-tiny-flux] Received large action header message."),!0},ln=t=>{const n=un(t);n&&!n.inboxListenerAttached&&(n.inboxListenerAttached=!0,n.inbox.on("NEWFILE",()=>{const e=n.inbox.getNextFile();if(!e)return;const r=(t=>t?t.meta?t.meta:t.metadata?t.metadata:t.metaData?t.metaData:"function"==typeof t.getMetaData?t.getMetaData():"function"==typeof t.getMetadata?t.getMetadata():null:null)(e),o=r&&r[Gt],i=((t,n)=>t?t.filePath?t.filePath:t.path?t.path:t.fullPath?t.fullPath:t.fileName?t.fileName:"function"==typeof t.getFilePath?t.getFilePath():n:n)(e,o&&o.fileName),u=i&&n.expectedFiles.has(i),s=Boolean(o)||u;if(i&&u&&n.expectedFiles.delete(i),!s)return;const c=()=>{i?((t,n)=>{try{const e=sn(0,n);e&&"string"==typeof e.type?"function"==typeof t.dispatch?t.dispatch(e):on(0,"[rx-tiny-flux] Dispatch is not available for large action."):rn(t,"[rx-tiny-flux] Ignored large action without a valid type.")}catch(t){on(0,`[rx-tiny-flux] Failed to read large action from ${n}.`,t)}finally{cn(t,n)}})(t,i):on(0,"[rx-tiny-flux] Incoming large action has no file path.")};"function"==typeof e.on&&e.on("change",n=>{const e=n&&n.data&&n.data.readyState;"transferred"===e?c():"error"===e&&i&&cn(t,i)}),"transferred"===e.readyState&&c()}))},fn=(t,n)=>{if(!n)return!1;const e=un(n);if(!e)return!1;const r=`${Date.now()}-${Math.random().toString(16).slice(2)}`,o=(t=>`data://rx-tiny-flux-action-${t}.json`)(r),i={transferId:r,fileName:o,actionType:t&&t.type};try{((t,n,e)=>{const r=en();if(!r||"function"!=typeof r.writeFileSync)throw new Error("[rx-tiny-flux] writeFileSync is not available in @zos/fs.");r.writeFileSync(n,JSON.stringify(e)),rn(t,`[rx-tiny-flux] Stored large action at ${n}.`)})(n,o,t)}catch(t){return on(0,"[rx-tiny-flux] Failed to store large action on disk.",t),!1}let u;"function"==typeof n.call&&n.call({[Gt]:i});try{u=e.outbox.enqueueFile(o,{[Gt]:i})}catch(t){return on(0,"[rx-tiny-flux] Failed to enqueue file for transfer.",t),cn(n,o),!1}return u&&"function"==typeof u.on&&u.on("change",t=>{const e=t&&t.data&&t.data.readyState;"transferred"!==e&&"error"!==e||cn(n,o)}),!0};function hn(t,n){return{onCreate(){n?(n.setContext(this),this.debug("Attach the store and a dispatch method to the App instance."),this._store=n,this.dispatch=t=>{setTimeout(()=>{const n={...t,context:this};this._store.dispatch(n)},50)},this.onAction=t=>{an(this,t)||(t&&"string"==typeof t.type?(this.debug(`Dispatching action ${t.type} from App.onAction.`),this.dispatch(t)):this.debug("Not an Action, discarding the message on App.onAction."))},this.messaging.onCall(this.onAction),ln(this),this.subscribe=(t,...n)=>{this._subscriptions||(this._subscriptions=[]);const e=n.pop(),r=n,o=this._store.select(t),i=(r.length>0?o.pipe(...r):o).subscribe(e);return this._subscriptions.push(i),i}):console.error("[rx-tiny-flux] StorePlugin Error: A store instance must be provided to `BaseApp.use(storePlugin, store)`.")},onInit(){let t;const e="undefined"!=typeof messaging;if(e)n?(n.setContext(this),t=n,this.onAction=t=>{an(this,t)||(t&&"string"==typeof t.type?(this.debug(`Dispatching action ${t.type} from SideService.onAction.`),this.dispatch(t)):this.debug("Not an Action, discarding the message on SideService.onAction."))}):console.error("[rx-tiny-flux] StorePlugin Error: A store instance must be provided to `BaseSideService.use(storePlugin, store)`.");else{const n=getApp();n&&n._store?t=n._store:console.error("[rx-tiny-flux] Store not found on global App object. Ensure the plugin is registered on BaseApp."),this.onAction=()=>{}}if(!t)return this.onAction=()=>console.error("[rx-tiny-flux] OnAction failed: store not initialized."),this.messaging.onCall(this.onAction),this.dispatch=()=>console.error("[rx-tiny-flux] Dispatch failed: store not initialized."),void(this.subscribe=()=>console.error("[rx-tiny-flux] Subscribe failed: store not initialized."));this._store=t,this.messaging.onCall(this.onAction),this.debug(`Attaching store methods to the ${e?"SideService":"Page"} instance.`),this.dispatch=t=>{setTimeout(()=>{const n={...t,context:this};this._store.dispatch(n)},50)},e&&ln(this),this.subscribe=(t,...n)=>{this._subscriptions||(this._subscriptions=[]);const e=n.pop(),r=n,o=this._store.select(t),i=(r.length>0?o.pipe(...r):o).subscribe(e);return this._subscriptions.push(i),i},e||(this.listen=(t,n)=>{const e=(Array.isArray(t)?t:[t]).map(t=>"function"==typeof t?t.type:t);if(e.some(t=>"string"!=typeof t))throw new Error("[rx-tiny-flux] listen: actionTypes must be strings or action creators with a `type` property.");this._subscriptions||(this._subscriptions=[]);const r=this._store.actions$.pipe(At(t=>e.includes(t.type))).subscribe(n);this._subscriptions.push(r)})},onDestroy(){this.messaging.offOnCall(this.onAction),this._subscriptions&&this._subscriptions.length>0&&(this._subscriptions.forEach(t=>t.unsubscribe()),this._subscriptions=[])}}}const pn=(...t)=>n=>n.pipe(Rt(t=>{if(!t.context||!t.context._store||!t.context._store._state$)throw new Error("[rx-tiny-flux] `withLatestFromStore` could not find a valid store on `action.context._store`. Ensure the `storePlugin` is correctly configured.")}),gt(n=>{const e=n.context._store._state$.getValue();return[n,...t.map(t=>t(e))]})),dn=()=>At(()=>"undefined"!=typeof messaging),bn=()=>At(()=>"undefined"==typeof messaging),yn=()=>Rt(t=>{if(t.context&&"function"==typeof t.context.call){t.context.debug(`Propagation action '${t.type}' through messaging.call(action).`);const{context:n,...e}=t;t.context.call(e)}else console.debug(`No context: Action '${t.type}' not propagated through messaging.call(action).`)}),vn=()=>Rt(t=>{if(t.context&&"function"==typeof t.context.call){t.context.debug(`Propagation large action '${t.type}' through TransferFile.`);const{context:n,...e}=t;fn(e,t.context)}else console.debug(`No context: Action '${t.type}' not propagated through TransferFile.`)});export{G as EMPTY,C as Observable,Lt as Store,qt as anyAction,Et as bufferToggle,Ft as catchError,Ot as concatMap,Ut as createAction,Yt as createEffect,Qt as createFeatureSelector,Vt as createReducer,Zt as createSelector,Tt as debounceTime,_t as defer,$t as delay,zt as exhaustMap,At as filter,yt as from,bn as isApp,dn as isSideService,gt as map,xt as mergeMap,vt as of,Jt as ofType,Wt as on,I as pipe,yn as propagateAction,vn as propagateLargeAction,jt as scan,hn as storePlugin,Dt as switchMap,Pt as take,Rt as tap,Bt as throttleTime,St as timer,Mt as withLatestFrom,pn as withLatestFromStore};
1
+ var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])},t(n,e)};function n(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=n}t(n,e),n.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function e(t,n,e,r){return new(e||(e=Promise))(function(o,i){function u(t){try{c(r.next(t))}catch(t){i(t)}}function s(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e(function(t){t(n)})).then(u,s)}c((r=r.apply(t,n||[])).next())})}function r(t,n){var e,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=s(0),u.throw=s(1),u.return=s(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function s(s){return function(c){return function(s){if(e)throw new TypeError("Generator is already executing.");for(;u&&(u=0,s[0]&&(i=0)),i;)try{if(e=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=n.call(t,i)}catch(t){s=[6,t],r=0}finally{e=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function o(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function i(t,n){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),u=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return u}function u(t,n,e){if(e||2===arguments.length)for(var r,o=0,i=n.length;o<i;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return t.concat(r||Array.prototype.slice.call(n))}function s(t){return this instanceof s?(this.v=t,this):new s(t)}function c(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=e.apply(t,n||[]),i=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),u("next"),u("throw"),u("return",function(t){return function(n){return Promise.resolve(n).then(t,a)}}),r[Symbol.asyncIterator]=function(){return this},r;function u(t,n){o[t]&&(r[t]=function(n){return new Promise(function(e,r){i.push([t,n,e,r])>1||c(t,n)})},n&&(r[t]=n(r[t])))}function c(t,n){try{(e=o[t](n)).value instanceof s?Promise.resolve(e.value.v).then(l,a):f(i[0][2],e)}catch(t){f(i[0][3],t)}var e}function l(t){c("next",t)}function a(t){c("throw",t)}function f(t,n){t(n),i.shift(),i.length&&c(i[0][0],i[0][1])}}function l(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,e=t[Symbol.asyncIterator];return e?e.call(t):(t=o(t),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(e){n[e]=t[e]&&function(n){return new Promise(function(r,o){(function(t,n,e,r){Promise.resolve(r).then(function(n){t({value:n,done:e})},n)})(r,o,(n=t[e](n)).done,n.value)})}}}function a(t){return"function"==typeof t}function f(t){var n=t(function(t){Error.call(t),t.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}"function"==typeof SuppressedError&&SuppressedError;var h=f(function(t){return function(n){t(this),this.message=n?n.length+" errors occurred during unsubscription:\n"+n.map(function(t,n){return n+1+") "+t.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=n}});function p(t,n){if(t){var e=t.indexOf(n);0<=e&&t.splice(e,1)}}var d=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}var n;return t.prototype.unsubscribe=function(){var t,n,e,r,s;if(!this.closed){this.closed=!0;var c=this._parentage;if(c)if(this._parentage=null,Array.isArray(c))try{for(var l=o(c),f=l.next();!f.done;f=l.next()){f.value.remove(this)}}catch(n){t={error:n}}finally{try{f&&!f.done&&(n=l.return)&&n.call(l)}finally{if(t)throw t.error}}else c.remove(this);var p=this.initialTeardown;if(a(p))try{p()}catch(t){s=t instanceof h?t.errors:[t]}var d=this._finalizers;if(d){this._finalizers=null;try{for(var b=o(d),v=b.next();!v.done;v=b.next()){var m=v.value;try{y(m)}catch(t){s=null!=s?s:[],t instanceof h?s=u(u([],i(s)),i(t.errors)):s.push(t)}}}catch(t){e={error:t}}finally{try{v&&!v.done&&(r=b.return)&&r.call(b)}finally{if(e)throw e.error}}}if(s)throw new h(s)}},t.prototype.add=function(n){var e;if(n&&n!==this)if(this.closed)y(n);else{if(n instanceof t){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}},t.prototype._hasParent=function(t){var n=this._parentage;return n===t||Array.isArray(n)&&n.includes(t)},t.prototype._addParent=function(t){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t},t.prototype._removeParent=function(t){var n=this._parentage;n===t?this._parentage=null:Array.isArray(n)&&p(n,t)},t.prototype.remove=function(n){var e=this._finalizers;e&&p(e,n),n instanceof t&&n._removeParent(this)},t.EMPTY=((n=new t).closed=!0,n),t}(),b=d.EMPTY;function v(t){return t instanceof d||t&&"closed"in t&&a(t.remove)&&a(t.add)&&a(t.unsubscribe)}function y(t){a(t)?t():t.unsubscribe()}var m={Promise:void 0},w=function(t,n){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];return setTimeout.apply(void 0,u([t,n],i(e)))};function _(t){w(function(){throw t})}function g(){}function x(t){t()}var S=function(t){function e(n){var e=t.call(this)||this;return e.isStopped=!1,n?(e.destination=n,v(n)&&n.add(e)):e.destination=P,e}return n(e,t),e.create=function(t,n,e){return new E(t,n,e)},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(d),A=function(){function t(t){this.partialObserver=t}return t.prototype.next=function(t){var n=this.partialObserver;if(n.next)try{n.next(t)}catch(t){O(t)}},t.prototype.error=function(t){var n=this.partialObserver;if(n.error)try{n.error(t)}catch(t){O(t)}else O(t)},t.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(t){O(t)}},t}(),E=function(t){function e(n,e,r){var o,i=t.call(this)||this;return o=a(n)||!n?{next:null!=n?n:void 0,error:null!=e?e:void 0,complete:null!=r?r:void 0}:n,i.destination=new A(o),i}return n(e,t),e}(S);function O(t){_(t)}var P={closed:!0,next:g,error:function(t){throw t},complete:g},I="function"==typeof Symbol&&Symbol.observable||"@@observable";function C(t){return t}function T(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return $(t)}function $(t){return 0===t.length?C:1===t.length?t[0]:function(n){return t.reduce(function(t,n){return n(t)},n)}}var j=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(n){var e=new t;return e.source=this,e.operator=n,e},t.prototype.subscribe=function(t,n,e){var r,o=this,i=(r=t)&&r instanceof S||function(t){return t&&a(t.next)&&a(t.error)&&a(t.complete)}(r)&&v(r)?t:new E(t,n,e);return x(function(){var t=o,n=t.operator,e=t.source;i.add(n?n.call(i,e):e?o._subscribe(i):o._trySubscribe(i))}),i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(n){t.error(n)}},t.prototype.forEach=function(t,n){var e=this;return new(n=z(n))(function(n,r){var o=new E({next:function(n){try{t(n)}catch(t){r(t),o.unsubscribe()}},error:r,complete:n});e.subscribe(o)})},t.prototype._subscribe=function(t){var n;return null===(n=this.source)||void 0===n?void 0:n.subscribe(t)},t.prototype[I]=function(){return this},t.prototype.pipe=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return $(t)(this)},t.prototype.toPromise=function(t){var n=this;return new(t=z(t))(function(t,e){var r;n.subscribe(function(t){return r=t},function(t){return e(t)},function(){return t(r)})})},t.create=function(n){return new t(n)},t}();function z(t){var n;return null!==(n=null!=t?t:m.Promise)&&void 0!==n?n:Promise}function k(t){return function(n){if(function(t){return a(null==t?void 0:t.lift)}(n))return n.lift(function(n){try{return t(n,this)}catch(t){this.error(t)}});throw new TypeError("Unable to lift unknown Observable type")}}function F(t,n,e,r,o){return new N(t,n,e,r,o)}var N=function(t){function e(n,e,r,o,i,u){var s=t.call(this,n)||this;return s.onFinalize=i,s.shouldUnsubscribe=u,s._next=e?function(t){try{e(t)}catch(t){n.error(t)}}:t.prototype._next,s._error=o?function(t){try{o(t)}catch(t){n.error(t)}finally{this.unsubscribe()}}:t.prototype._error,s._complete=r?function(){try{r()}catch(t){n.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,s}return n(e,t),e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var e=this.closed;t.prototype.unsubscribe.call(this),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}},e}(S),R=f(function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),B=function(t){function e(){var n=t.call(this)||this;return n.closed=!1,n.currentObservers=null,n.observers=[],n.isStopped=!1,n.hasError=!1,n.thrownError=null,n}return n(e,t),e.prototype.lift=function(t){var n=new D(this,this);return n.operator=t,n},e.prototype._throwIfClosed=function(){if(this.closed)throw new R},e.prototype.next=function(t){var n=this;x(function(){var e,r;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var i=o(n.currentObservers),u=i.next();!u.done;u=i.next()){u.value.next(t)}}catch(t){e={error:t}}finally{try{u&&!u.done&&(r=i.return)&&r.call(i)}finally{if(e)throw e.error}}}})},e.prototype.error=function(t){var n=this;x(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=t;for(var e=n.observers;e.length;)e.shift().error(t)}})},e.prototype.complete=function(){var t=this;x(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var n=t.observers;n.length;)n.shift().complete()}})},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(n){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,n)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var n=this,e=this,r=e.hasError,o=e.isStopped,i=e.observers;return r||o?b:(this.currentObservers=null,i.push(t),new d(function(){n.currentObservers=null,p(i,t)}))},e.prototype._checkFinalizedStatuses=function(t){var n=this,e=n.hasError,r=n.thrownError,o=n.isStopped;e?t.error(r):o&&t.complete()},e.prototype.asObservable=function(){var t=new j;return t.source=this,t},e.create=function(t,n){return new D(t,n)},e}(j),D=function(t){function e(n,e){var r=t.call(this)||this;return r.destination=n,r.source=e,r}return n(e,t),e.prototype.next=function(t){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===e||e.call(n,t)},e.prototype.error=function(t){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===e||e.call(n,t)},e.prototype.complete=function(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)},e.prototype._subscribe=function(t){var n,e;return null!==(e=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==e?e:b},e}(B),U=function(t){function e(n){var e=t.call(this)||this;return e._value=n,e}return n(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(n){var e=t.prototype._subscribe.call(this,n);return!e.closed&&n.next(this._value),e},e.prototype.getValue=function(){var t=this,n=t.hasError,e=t.thrownError,r=t._value;if(n)throw e;return this._throwIfClosed(),r},e.prototype.next=function(n){t.prototype.next.call(this,this._value=n)},e}(B),W={now:function(){return(W.delegate||Date).now()},delegate:void 0},M=function(t){function e(n,e,r){void 0===n&&(n=1/0),void 0===e&&(e=1/0),void 0===r&&(r=W);var o=t.call(this)||this;return o._bufferSize=n,o._windowTime=e,o._timestampProvider=r,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=e===1/0,o._bufferSize=Math.max(1,n),o._windowTime=Math.max(1,e),o}return n(e,t),e.prototype.next=function(n){var e=this,r=e.isStopped,o=e._buffer,i=e._infiniteTimeWindow,u=e._timestampProvider,s=e._windowTime;r||(o.push(n),!i&&o.push(u.now()+s)),this._trimBuffer(),t.prototype.next.call(this,n)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(t),e=this._infiniteTimeWindow,r=this._buffer.slice(),o=0;o<r.length&&!t.closed;o+=e?1:2)t.next(r[o]);return this._checkFinalizedStatuses(t),n},e.prototype._trimBuffer=function(){var t=this,n=t._bufferSize,e=t._timestampProvider,r=t._buffer,o=t._infiniteTimeWindow,i=(o?1:2)*n;if(n<1/0&&i<r.length&&r.splice(0,r.length-i),!o){for(var u=e.now(),s=0,c=1;c<r.length&&r[c]<=u;c+=2)s=c;s&&r.splice(0,s+1)}},e}(B),V=function(t){function e(n,e){return t.call(this)||this}return n(e,t),e.prototype.schedule=function(t,n){return this},e}(d),Y=function(t,n){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];return setInterval.apply(void 0,u([t,n],i(e)))},q=function(t){return clearInterval(t)},J=function(t){function e(n,e){var r=t.call(this,n,e)||this;return r.scheduler=n,r.work=e,r.pending=!1,r}return n(e,t),e.prototype.schedule=function(t,n){var e;if(void 0===n&&(n=0),this.closed)return this;this.state=t;var r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,n)),this.pending=!0,this.delay=n,this.id=null!==(e=this.id)&&void 0!==e?e:this.requestAsyncId(o,this.id,n),this},e.prototype.requestAsyncId=function(t,n,e){return void 0===e&&(e=0),Y(t.flush.bind(t,this),e)},e.prototype.recycleAsyncId=function(t,n,e){if(void 0===e&&(e=0),null!=e&&this.delay===e&&!1===this.pending)return n;null!=n&&q(n)},e.prototype.execute=function(t,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var e=this._execute(t,n);if(e)return e;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,n){var e,r=!1;try{this.work(t)}catch(t){r=!0,e=t||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),e},e.prototype.unsubscribe=function(){if(!this.closed){var n=this.id,e=this.scheduler,r=e.actions;this.work=this.state=this.scheduler=null,this.pending=!1,p(r,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},e}(V),L=function(){function t(n,e){void 0===e&&(e=t.now),this.schedulerActionCtor=n,this.now=e}return t.prototype.schedule=function(t,n,e){return void 0===n&&(n=0),new this.schedulerActionCtor(this,t).schedule(e,n)},t.now=W.now,t}(),Z=new(function(t){function e(n,e){void 0===e&&(e=L.now);var r=t.call(this,n,e)||this;return r.actions=[],r._active=!1,r}return n(e,t),e.prototype.flush=function(t){var n=this.actions;if(this._active)n.push(t);else{var e;this._active=!0;do{if(e=t.execute(t.state,t.delay))break}while(t=n.shift());if(this._active=!1,e){for(;t=n.shift();)t.unsubscribe();throw e}}},e}(L))(J),G=Z,K=new j(function(t){return t.complete()});function H(t){return t&&a(t.schedule)}function Q(t){return t[t.length-1]}function X(t){return H(Q(t))?t.pop():void 0}var tt=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t};function nt(t){return a(null==t?void 0:t.then)}function et(t){return a(t[I])}function rt(t){return Symbol.asyncIterator&&a(null==t?void 0:t[Symbol.asyncIterator])}function ot(t){return new TypeError("You provided "+(null!==t&&"object"==typeof t?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var it="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function ut(t){return a(null==t?void 0:t[it])}function st(t){return c(this,arguments,function(){var n,e,o;return r(this,function(r){switch(r.label){case 0:n=t.getReader(),r.label=1;case 1:r.trys.push([1,,9,10]),r.label=2;case 2:return[4,s(n.read())];case 3:return e=r.sent(),o=e.value,e.done?[4,s(void 0)]:[3,5];case 4:return[2,r.sent()];case 5:return[4,s(o)];case 6:return[4,r.sent()];case 7:return r.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function ct(t){return a(null==t?void 0:t.getReader)}function lt(t){if(t instanceof j)return t;if(null!=t){if(et(t))return i=t,new j(function(t){var n=i[I]();if(a(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(tt(t))return r=t,new j(function(t){for(var n=0;n<r.length&&!t.closed;n++)t.next(r[n]);t.complete()});if(nt(t))return e=t,new j(function(t){e.then(function(n){t.closed||(t.next(n),t.complete())},function(n){return t.error(n)}).then(null,_)});if(rt(t))return at(t);if(ut(t))return n=t,new j(function(t){var e,r;try{for(var i=o(n),u=i.next();!u.done;u=i.next()){var s=u.value;if(t.next(s),t.closed)return}}catch(t){e={error:t}}finally{try{u&&!u.done&&(r=i.return)&&r.call(i)}finally{if(e)throw e.error}}t.complete()});if(ct(t))return at(st(t))}var n,e,r,i;throw ot(t)}function at(t){return new j(function(n){(function(t,n){var o,i,u,s;return e(this,void 0,void 0,function(){var e,c;return r(this,function(r){switch(r.label){case 0:r.trys.push([0,5,6,11]),o=l(t),r.label=1;case 1:return[4,o.next()];case 2:if((i=r.sent()).done)return[3,4];if(e=i.value,n.next(e),n.closed)return[2];r.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=r.sent(),u={error:c},[3,11];case 6:return r.trys.push([6,,9,10]),i&&!i.done&&(s=o.return)?[4,s.call(o)]:[3,8];case 7:r.sent(),r.label=8;case 8:return[3,10];case 9:if(u)throw u.error;return[7];case 10:return[7];case 11:return n.complete(),[2]}})})})(t,n).catch(function(t){return n.error(t)})})}function ft(t,n,e,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=n.schedule(function(){e(),o?t.add(this.schedule(null,r)):this.unsubscribe()},r);if(t.add(i),!o)return i}function ht(t,n){return void 0===n&&(n=0),k(function(e,r){e.subscribe(F(r,function(e){return ft(r,t,function(){return r.next(e)},n)},function(){return ft(r,t,function(){return r.complete()},n)},function(e){return ft(r,t,function(){return r.error(e)},n)}))})}function pt(t,n){return void 0===n&&(n=0),k(function(e,r){r.add(t.schedule(function(){return e.subscribe(r)},n))})}function dt(t,n){if(!t)throw new Error("Iterable cannot be null");return new j(function(e){ft(e,n,function(){var r=t[Symbol.asyncIterator]();ft(e,n,function(){r.next().then(function(t){t.done?e.complete():e.next(t.value)})},0,!0)})})}function bt(t,n){if(null!=t){if(et(t))return function(t,n){return lt(t).pipe(pt(n),ht(n))}(t,n);if(tt(t))return function(t,n){return new j(function(e){var r=0;return n.schedule(function(){r===t.length?e.complete():(e.next(t[r++]),e.closed||this.schedule())})})}(t,n);if(nt(t))return function(t,n){return lt(t).pipe(pt(n),ht(n))}(t,n);if(rt(t))return dt(t,n);if(ut(t))return function(t,n){return new j(function(e){var r;return ft(e,n,function(){r=t[it](),ft(e,n,function(){var t,n,o;try{n=(t=r.next()).value,o=t.done}catch(t){return void e.error(t)}o?e.complete():e.next(n)},0,!0)}),function(){return a(null==r?void 0:r.return)&&r.return()}})}(t,n);if(ct(t))return function(t,n){return dt(st(t),n)}(t,n)}throw ot(t)}function vt(t,n){return n?bt(t,n):lt(t)}function yt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return vt(t,X(t))}function mt(t,n){return k(function(e,r){var o=0;e.subscribe(F(r,function(e){r.next(t.call(n,e,o++))}))})}function wt(t,n,e){return void 0===e&&(e=1/0),a(n)?wt(function(e,r){return mt(function(t,o){return n(e,t,r,o)})(lt(t(e,r)))},e):("number"==typeof n&&(e=n),k(function(n,r){return function(t,n,e,r,o,i,u){var s=[],c=0,l=0,a=!1,f=function(){!a||s.length||c||n.complete()},h=function(t){c++;var o=!1;lt(e(t,l++)).subscribe(F(n,function(t){n.next(t)},function(){o=!0},void 0,function(){if(o)try{c--;for(var t=function(){var t=s.shift();u||h(t)};s.length&&c<r;)t();f()}catch(t){n.error(t)}}))};return t.subscribe(F(n,function(t){return c<r?h(t):s.push(t)},function(){a=!0,f()})),function(){}}(n,r,t,e)}))}function _t(){return wt(C,1)}function gt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return _t()(vt(t,X(t)))}function xt(t){return new j(function(n){lt(t()).subscribe(n)})}function St(t,n,e){void 0===t&&(t=0),void 0===e&&(e=G);var r=-1;return null!=n&&(H(n)?e=n:r=n),new j(function(n){var o,i=(o=t)instanceof Date&&!isNaN(o)?+t-e.now():t;i<0&&(i=0);var u=0;return e.schedule(function(){n.closed||(n.next(u++),0<=r?this.schedule(void 0,r):n.complete())},i)})}function At(t,n){return k(function(e,r){var o=0;e.subscribe(F(r,function(e){return t.call(n,e,o++)&&r.next(e)}))})}function Et(t,n){return k(function(e,r){var i=[];lt(t).subscribe(F(r,function(t){var e=[];i.push(e);var o=new d;o.add(lt(n(t)).subscribe(F(r,function(){p(i,e),r.next(e),o.unsubscribe()},g)))},g)),e.subscribe(F(r,function(t){var n,e;try{for(var r=o(i),u=r.next();!u.done;u=r.next()){u.value.push(t)}}catch(t){n={error:t}}finally{try{u&&!u.done&&(e=r.return)&&e.call(r)}finally{if(n)throw n.error}}},function(){for(;i.length>0;)r.next(i.shift());r.complete()}))})}function Ot(t){return k(function(n,e){var r,o=null,i=!1;o=n.subscribe(F(e,void 0,void 0,function(u){r=lt(t(u,Ot(t)(n))),o?(o.unsubscribe(),o=null,r.subscribe(e)):i=!0})),i&&(o.unsubscribe(),o=null,r.subscribe(e))})}function Pt(t,n){return a(n)?wt(t,n,1):wt(t,1)}function It(t,n){return void 0===n&&(n=Z),k(function(e,r){var o=null,i=null,u=null,s=function(){if(o){o.unsubscribe(),o=null;var t=i;i=null,r.next(t)}};function c(){var e=u+t,i=n.now();if(i<e)return o=this.schedule(void 0,e-i),void r.add(o);s()}e.subscribe(F(r,function(e){i=e,u=n.now(),o||(o=n.schedule(c,t),r.add(o))},function(){s(),r.complete()},void 0,function(){i=o=null}))})}function Ct(t){return t<=0?function(){return K}:k(function(n,e){var r=0;n.subscribe(F(e,function(n){++r<=t&&(e.next(n),t<=r&&e.complete())}))})}function Tt(t,n){return wt(function(n,e){return lt(t(n,e)).pipe(Ct(1),function(t){return mt(function(){return t})}(n))})}function $t(t,n){void 0===n&&(n=Z);var e=St(t,n);return Tt(function(){return e})}function jt(t,n){return t===n}function zt(t,n){return n?function(e){return e.pipe(zt(function(e,r){return lt(t(e,r)).pipe(mt(function(t,o){return n(e,t,r,o)}))}))}:k(function(n,e){var r=0,o=null,i=!1;n.subscribe(F(e,function(n){o||(o=F(e,void 0,function(){o=null,i&&e.complete()}),lt(t(n,r++)).subscribe(o))},function(){i=!0,!o&&e.complete()}))})}function kt(t,n){return k(function(t,n,e,r,o){return function(r,i){var u=e,s=n,c=0;r.subscribe(F(i,function(n){var e=c++;s=u?t(s,n,e):(u=!0,n),i.next(s)},o))}}(t,n,arguments.length>=2))}function Ft(t,n){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];if(!0!==n){if(!1!==n){var o=new E({next:function(){o.unsubscribe(),t()}});return lt(n.apply(void 0,u([],i(e)))).subscribe(o)}}else t()}function Nt(t,n,e){var r;return r=t,function(t){void 0===t&&(t={});var n=t.connector,e=void 0===n?function(){return new B}:n,r=t.resetOnError,o=void 0===r||r,i=t.resetOnComplete,u=void 0===i||i,s=t.resetOnRefCountZero,c=void 0===s||s;return function(t){var n,r,i,s=0,l=!1,a=!1,f=function(){null==r||r.unsubscribe(),r=void 0},h=function(){f(),n=i=void 0,l=a=!1},p=function(){var t=n;h(),null==t||t.unsubscribe()};return k(function(t,d){s++,a||l||f();var b=i=null!=i?i:e();d.add(function(){0!==--s||a||l||(r=Ft(p,c))}),b.subscribe(d),!n&&s>0&&(n=new E({next:function(t){return b.next(t)},error:function(t){a=!0,f(),r=Ft(h,o,t),b.error(t)},complete:function(){l=!0,f(),r=Ft(h,u),b.complete()}}),lt(t).subscribe(n))})(t)}}({connector:function(){return new M(r,n,e)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:!1})}function Rt(t,n){return k(function(e,r){var o=null,i=0,u=!1,s=function(){return u&&!o&&r.complete()};e.subscribe(F(r,function(e){null==o||o.unsubscribe();var u=0,c=i++;lt(t(e,c)).subscribe(o=F(r,function(t){return r.next(n?n(e,t,c,u++):t)},function(){o=null,s()}))},function(){u=!0,s()}))})}function Bt(t,n,e){var r=a(t)||n||e?{next:t,error:n,complete:e}:t;return r?k(function(t,n){var e;null===(e=r.subscribe)||void 0===e||e.call(r);var o=!0;t.subscribe(F(n,function(t){var e;null===(e=r.next)||void 0===e||e.call(r,t),n.next(t)},function(){var t;o=!1,null===(t=r.complete)||void 0===t||t.call(r),n.complete()},function(t){var e;o=!1,null===(e=r.error)||void 0===e||e.call(r,t),n.error(t)},function(){var t,n;o&&(null===(t=r.unsubscribe)||void 0===t||t.call(r)),null===(n=r.finalize)||void 0===n||n.call(r)}))}):C}function Dt(t,n,e){void 0===n&&(n=Z);var r=St(t,n);return function(t,n){return k(function(e,r){var o=null!=n?n:{},i=o.leading,u=void 0===i||i,s=o.trailing,c=void 0!==s&&s,l=!1,a=null,f=null,h=!1,p=function(){null==f||f.unsubscribe(),f=null,c&&(v(),h&&r.complete())},d=function(){f=null,h&&r.complete()},b=function(n){return f=lt(t(n)).subscribe(F(r,p,d))},v=function(){if(l){l=!1;var t=a;a=null,r.next(t),!h&&b(t)}};e.subscribe(F(r,function(t){l=!0,a=t,(!f||f.closed)&&(u?v():b(t))},function(){h=!0,(!(c&&l&&f)||f.closed)&&r.complete()}))})}(function(){return r},e)}function Ut(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e,r=a(Q(e=t))?e.pop():void 0;return k(function(n,e){for(var o=t.length,s=new Array(o),c=t.map(function(){return!1}),l=!1,a=function(n){lt(t[n]).subscribe(F(e,function(t){s[n]=t,l||c[n]||(c[n]=!0,(l=c.every(C))&&(c=null))},g))},f=0;f<o;f++)a(f);n.subscribe(F(e,function(t){if(l){var n=u([t],i(s));e.next(r?r.apply(void 0,u([],i(n))):n)}}))})}class Wt{_state$;_actions$=new B;get actions$(){return this._actions$.asObservable()}_reducers=[];_context=null;constructor(t={}){const n="function"==typeof structuredClone?structuredClone(t):JSON.parse(JSON.stringify(t));this._state$=new U(n);const e=this._actions$.pipe(kt((t,n)=>{let e={...t},r=!1;return this._reducers.forEach(({path:o,reducerFn:i})=>{const u=t[o],s=i(u,n);u!==s&&(e[o]=s,r=!0)}),r?e:t},n),function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=X(t);return k(function(n,r){(e?gt(t,n,e):gt(t,n)).subscribe(r)})}(t),Nt(1));e.subscribe(this._state$)}registerReducers(...t){this._reducers.push(...t);const n={...this._state$.getValue()};let e=!1;t.forEach(({path:t,initialState:r})=>{void 0===n[t]&&(n[t]=r,e=!0)}),e&&this._state$.next(n)}setContext(t){this._context=t}registerEffects(...t){t.forEach(t=>{const n=t._rxEffect||{dispatch:!0};let e=t(this._actions$);n.dispatch?e.pipe(mt(t=>this._context&&!t.context?{...t,context:this._context}:t)).subscribe(t=>this.dispatch(t)):e.subscribe()})}dispatch(t){this._actions$.next(t)}select(t){return this._state$.pipe(mt(n=>t(n)),(void 0===e&&(e=C),n=null!=n?n:jt,k(function(t,r){var o,i=!0;t.subscribe(F(r,function(t){var u=e(t);!i&&n(o,u)||(i=!1,o=u,r.next(t))}))})));var n,e}}function Mt(t){const n=n=>({type:t,...n});return n.type=t,n}function Vt(){}function Yt(...t){const n=t.pop(),e=t,r=e.includes(Vt);if(r&&e.length>1)throw new Error("The `anyAction` token cannot be mixed with other action creators in a single `on` handler.");return{types:e.map(t=>t.type),reducerFn:n,isCatchAll:r}}function qt(t,n,...e){if(!t||"string"!=typeof t)throw new Error("Reducer featureKey must be a non-empty string.");const r=e.filter(t=>!t.isCatchAll),o=e.find(t=>t.isCatchAll);return{path:t,initialState:n,reducerFn:(t=n,e)=>{for(const n of r)if(n.types.includes(e.type))return n.reducerFn(t,e);return o?o.reducerFn(t,e):t}}}function Jt(...t){const n=t.map(t=>t.type);return At(t=>n.includes(t.type))}function Lt(t,n={dispatch:!0}){if("function"!=typeof t)throw new Error("Effect must be a function.");return Object.defineProperty(t,"_rxEffect",{value:{dispatch:!1!==n.dispatch},enumerable:!1}),t}function Zt(t,n){return e=>{const r=e[t];return n?n(r):r}}function Gt(...t){const n=t.pop(),e=t;let r,o,i=!1;return t=>{const u=e.map(n=>n(t));return i&&function(t,n){if(!n||t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}(u,o)||(o=u,r=n(...u),i=!0),r}}function Kt(t,n){return{onCreate(){n?(n.setContext(this),this.debug("Attach the store and a dispatch method to the App instance."),this._store=n,this.dispatch=t=>{setTimeout(()=>{const n={...t,context:this};this._store.dispatch(n)},50)},this.onAction=t=>{t&&"string"==typeof t.type?(this.debug(`Dispatching action ${t.type} from App.onAction.`),this.dispatch(t)):this.debug("Not an Action, discarding the message on App.onAction.")},this.messaging.onCall(this.onAction),this.subscribe=(t,...n)=>{this._subscriptions||(this._subscriptions=[]);const e=n.pop(),r=n,o=this._store.select(t),i=(r.length>0?o.pipe(...r):o).subscribe(e);return this._subscriptions.push(i),i}):console.error("[rx-tiny-flux] StorePlugin Error: A store instance must be provided to `BaseApp.use(storePlugin, store)`.")},onInit(){let t;const e="undefined"!=typeof messaging;if(e)n?(n.setContext(this),t=n,this.onAction=t=>{t&&"string"==typeof t.type?(this.debug(`Dispatching action ${t.type} from SideService.onAction.`),this.dispatch(t)):this.debug("Not an Action, discarding the message on SideService.onAction.")}):console.error("[rx-tiny-flux] StorePlugin Error: A store instance must be provided to `BaseSideService.use(storePlugin, store)`.");else{const n=getApp();n&&n._store?t=n._store:console.error("[rx-tiny-flux] Store not found on global App object. Ensure the plugin is registered on BaseApp."),this.onAction=()=>{}}if(!t)return this.onAction=()=>console.error("[rx-tiny-flux] OnAction failed: store not initialized."),this.messaging.onCall(this.onAction),this.dispatch=()=>console.error("[rx-tiny-flux] Dispatch failed: store not initialized."),void(this.subscribe=()=>console.error("[rx-tiny-flux] Subscribe failed: store not initialized."));this._store=t,this.messaging.onCall(this.onAction),this.debug(`Attaching store methods to the ${e?"SideService":"Page"} instance.`),this.dispatch=t=>{setTimeout(()=>{const n={...t,context:this};this._store.dispatch(n)},50)},this.subscribe=(t,...n)=>{this._subscriptions||(this._subscriptions=[]);const e=n.pop(),r=n,o=this._store.select(t),i=(r.length>0?o.pipe(...r):o).subscribe(e);return this._subscriptions.push(i),i},e||(this.listen=(t,n)=>{const e=(Array.isArray(t)?t:[t]).map(t=>"function"==typeof t?t.type:t);if(e.some(t=>"string"!=typeof t))throw new Error("[rx-tiny-flux] listen: actionTypes must be strings or action creators with a `type` property.");this._subscriptions||(this._subscriptions=[]);const r=this._store.actions$.pipe(At(t=>e.includes(t.type))).subscribe(n);this._subscriptions.push(r)})},onDestroy(){this.messaging.offOnCall(this.onAction),this._subscriptions&&this._subscriptions.length>0&&(this._subscriptions.forEach(t=>t.unsubscribe()),this._subscriptions=[])}}}const Ht=(...t)=>n=>n.pipe(Bt(t=>{if(!t.context||!t.context._store||!t.context._store._state$)throw new Error("[rx-tiny-flux] `withLatestFromStore` could not find a valid store on `action.context._store`. Ensure the `storePlugin` is correctly configured.")}),mt(n=>{const e=n.context._store._state$.getValue();return[n,...t.map(t=>t(e))]})),Qt=()=>At(()=>"undefined"!=typeof messaging),Xt=()=>At(()=>"undefined"==typeof messaging),tn=()=>Bt(t=>{if(t.context&&"function"==typeof t.context.call){t.context.debug(`Propagation action '${t.type}' through messaging.call(action).`);const{context:n,...e}=t;t.context.call(e)}else console.debug(`No context: Action '${t.type}' not propagated through messaging.call(action).`)});export{K as EMPTY,j as Observable,Wt as Store,Vt as anyAction,Et as bufferToggle,Ot as catchError,Pt as concatMap,Mt as createAction,Lt as createEffect,Zt as createFeatureSelector,qt as createReducer,Gt as createSelector,It as debounceTime,xt as defer,$t as delay,zt as exhaustMap,At as filter,vt as from,Xt as isApp,Qt as isSideService,mt as map,wt as mergeMap,yt as of,Jt as ofType,Yt as on,T as pipe,tn as propagateAction,kt as scan,Kt as storePlugin,Rt as switchMap,Ct as take,Bt as tap,Dt as throttleTime,St as timer,Ut as withLatestFrom,Ht as withLatestFromStore};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rx-tiny-flux",
3
- "version": "1.0.33",
3
+ "version": "1.0.35",
4
4
  "description": "A lightweight, minimalist state management library for pure JavaScript projects, inspired by NgRx and Redux, and built with RxJS.",
5
5
  "author": "Bernardo Baumblatt <baumblatt@gmail.com>",
6
6
  "license": "MIT",