@warp-drive/ember 0.0.0-alpha.56 → 0.0.0-alpha.59

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
@@ -472,9 +472,18 @@ import { Request } from '@warp-drive/ember';
472
472
 
473
473
  - Autorefresh behavior
474
474
 
475
- Requests can be made to automatically refresh when a browser window or tab comes back to the
476
- foreground after being backgrounded or when the network reports as being online after having
477
- been offline.
475
+ Requests can be made to automatically refresh under any combination of three separate conditions
476
+ by supplying a value to the `@autorefresh` arg.
477
+
478
+ - `online` when a browser window or tab comes back to the foreground after being backgrounded
479
+ or when the network reports as being online after having been offline.
480
+ - `interval` which occurs whenever `@autorefreshThreshold` has been exceeded
481
+ - `invalid` which occurs when the store associated to the request emits an invalidation notification for the request in use.
482
+
483
+ These conditions can be used in any combination by providing a comma separated list e.g.
484
+ `interval,invalid`
485
+
486
+ A value of `true` is equivalent to `online,invalid`.
478
487
 
479
488
  ```gjs
480
489
  import { Request } from '@warp-drive/ember';
@@ -496,7 +505,7 @@ Options are:
496
505
 
497
506
  - `refresh` update while continuing to show the current state.
498
507
  - `reload` update and show the loading state until update completes)
499
- - `delegate` (**default**) trigger the request, but let the cache handler decide whether the update should occur or if the cache is still valid.
508
+ - `policy` (**default**) trigger the request, but let the cache handler decide whether the update should occur or if the cache is still valid.
500
509
 
501
510
  ---
502
511
 
package/dist/index.js CHANGED
@@ -598,12 +598,22 @@ if (macroCondition(moduleExists('ember-provide-consume-context'))) {
598
598
  function isNeverString(val1) {
599
599
  return val1;
600
600
  }
601
+ /**
602
+ * The `<Request>` component is a powerful tool for managing data fetching and
603
+ * state in your Ember application. It provides declarative reactive control-flow
604
+ * for managing requests and state in your application.
605
+ *
606
+ * @typedoc
607
+ */
601
608
  class Request extends Component {
602
609
  static {
603
610
  decorateFieldV2(this.prototype, "_store", [consume('store')]);
604
611
  }
605
612
  #_store = (initializeDeferredDecorator(this, "_store"), void 0);
606
613
  /**
614
+ * The store instance to use for making requests. If contexts are available, this
615
+ * will be the `store` on the context, else it will be the store service.
616
+ *
607
617
  * @internal
608
618
  */
609
619
  static {
@@ -612,35 +622,226 @@ class Request extends Component {
612
622
  });
613
623
  }
614
624
  #isOnline = (initializeDeferredDecorator(this, "isOnline"), void 0);
625
+ /**
626
+ * Whether the browser reports that the network is online.
627
+ *
628
+ * @internal
629
+ */
615
630
  static {
616
631
  decorateFieldV2(this.prototype, "isHidden", [tracked], function () {
617
632
  return true;
618
633
  });
619
634
  }
620
635
  #isHidden = (initializeDeferredDecorator(this, "isHidden"), void 0);
636
+ /**
637
+ * Whether the browser reports that the tab is hidden.
638
+ *
639
+ * @internal
640
+ */
621
641
  static {
622
642
  decorateFieldV2(this.prototype, "isRefreshing", [tracked], function () {
623
643
  return false;
624
644
  });
625
645
  }
626
646
  #isRefreshing = (initializeDeferredDecorator(this, "isRefreshing"), void 0);
647
+ /**
648
+ * Whether the component is currently refreshing the request.
649
+ *
650
+ * @internal
651
+ */
627
652
  static {
628
653
  decorateFieldV2(this.prototype, "_localRequest", [tracked]);
629
654
  }
630
655
  #_localRequest = (initializeDeferredDecorator(this, "_localRequest"), void 0);
656
+ /**
657
+ * The most recent blocking request that was made, typically
658
+ * the result of a reload.
659
+ *
660
+ * This will never be the original request passed as an arg to
661
+ * the component.
662
+ *
663
+ * @internal
664
+ */
631
665
  static {
632
666
  decorateFieldV2(this.prototype, "_latestRequest", [tracked]);
633
667
  }
634
668
  #_latestRequest = (initializeDeferredDecorator(this, "_latestRequest"), void 0);
669
+ /**
670
+ * The most recent request that was made, typically due to either a
671
+ * reload or a refresh.
672
+ *
673
+ * This will never be the original request passed as an arg to
674
+ * the component.
675
+ *
676
+ * @internal
677
+ */
678
+ /**
679
+ * The time at which the network was reported as offline.
680
+ *
681
+ * @internal
682
+ */
635
683
  unavailableStart;
684
+ intervalStart;
685
+ nextInterval;
686
+ invalidated;
687
+ /**
688
+ * The event listener for network status changes,
689
+ * cached to use the reference for removal.
690
+ *
691
+ * @internal
692
+ */
636
693
  onlineChanged;
694
+ /**
695
+ * The event listener for visibility status changes,
696
+ * cached to use the reference for removal.
697
+ *
698
+ * @internal
699
+ */
637
700
  backgroundChanged;
701
+ /**
702
+ * The last request passed as an arg to the component,
703
+ * cached for comparison.
704
+ *
705
+ * @internal
706
+ */
638
707
  _originalRequest;
708
+ /**
709
+ * The last query passed as an arg to the component,
710
+ * cached for comparison.
711
+ *
712
+ * @internal
713
+ */
639
714
  _originalQuery;
715
+ _subscription;
716
+ _subscribedTo;
640
717
  constructor(owner1, args1) {
641
718
  super(owner1, args1);
719
+ this._subscribedTo = null;
720
+ this._subscription = null;
721
+ this.intervalStart = null;
722
+ this.invalidated = false;
723
+ this.nextInterval = null;
642
724
  this.installListeners();
725
+ this.updateSubscriptions();
726
+ void this.scheduleInterval();
727
+ }
728
+ get autorefreshTypes() {
729
+ const {
730
+ autorefresh: autorefresh1
731
+ } = this.args;
732
+ let types1;
733
+ if (autorefresh1 === true) {
734
+ types1 = ['online', 'invalid'];
735
+ } else if (typeof autorefresh1 === 'string') {
736
+ types1 = autorefresh1.split(',');
737
+ } else {
738
+ types1 = [];
739
+ }
740
+ return new Set(types1);
741
+ }
742
+ // we only run this function on component creation
743
+ // and when an update is triggered, so it does not
744
+ // react to changes in the autorefreshThreshold
745
+ // or autorefresh args.
746
+ //
747
+ // if we need to react to those changes, we can
748
+ // use a modifier or internal component or some
749
+ // such to trigger a re-run of this function.
750
+ static {
751
+ decorateMethodV2(this.prototype, "autorefreshTypes", [cached]);
643
752
  }
753
+ async scheduleInterval() {
754
+ const {
755
+ autorefreshThreshold: autorefreshThreshold1
756
+ } = this.args;
757
+ const hasValidThreshold1 = typeof autorefreshThreshold1 === 'number' && autorefreshThreshold1 > 0;
758
+ if (
759
+ // dont schedule in SSR
760
+ typeof window === 'undefined' ||
761
+ // dont schedule without a threshold
762
+ !hasValidThreshold1 ||
763
+ // dont schedule if we weren't told to
764
+ !this.autorefreshTypes.has('interval') ||
765
+ // dont schedule if we're already scheduled
766
+ this.intervalStart !== null) {
767
+ return;
768
+ }
769
+ // if we have a current request, wait for it to finish
770
+ // before scheduling the next one
771
+ if (this._latestRequest) {
772
+ try {
773
+ await this._latestRequest;
774
+ } catch {
775
+ // ignore errors here, we just want to wait for the request to finish
776
+ }
777
+ if (this.isDestroyed) {
778
+ return;
779
+ }
780
+ }
781
+ // setup the next interval
782
+ this.intervalStart = Date.now();
783
+ this.nextInterval = setTimeout(() => {
784
+ this.maybeUpdate();
785
+ }, autorefreshThreshold1);
786
+ }
787
+ clearInterval() {
788
+ if (this.nextInterval) {
789
+ clearTimeout(this.nextInterval);
790
+ this.intervalStart = null;
791
+ }
792
+ }
793
+ updateSubscriptions() {
794
+ const requestId1 = this.request.lid;
795
+ // if we're already subscribed to this request, we don't need to do anything
796
+ if (this._subscribedTo === requestId1) {
797
+ return;
798
+ }
799
+ // if we're subscribed to a different request, we need to unsubscribe
800
+ this.removeSubscriptions();
801
+ // if we have a request, we need to subscribe to it
802
+ if (requestId1) {
803
+ this._subscription = this.store.notifications.subscribe(requestId1, (_id1, op1) => {
804
+ switch (op1) {
805
+ case 'invalidated':
806
+ {
807
+ // if we're subscribed to invalidations, we need to update
808
+ if (this.autorefreshTypes.has('invalid')) {
809
+ this.invalidated = true;
810
+ this.maybeUpdate();
811
+ }
812
+ break;
813
+ }
814
+ case 'state':
815
+ {
816
+ const latest1 = this.store.requestManager._deduped.get(requestId1);
817
+ const priority1 = latest1?.priority;
818
+ if (!priority1) {
819
+ this.isRefreshing = false;
820
+ } else if (priority1.blocking) {
821
+ // TODO should we just treat this as refreshing?
822
+ this.isRefreshing = false;
823
+ this.maybeUpdate('policy', true);
824
+ } else {
825
+ this.isRefreshing = true;
826
+ }
827
+ }
828
+ }
829
+ });
830
+ }
831
+ }
832
+ removeSubscriptions() {
833
+ if (this._subscription) {
834
+ this.store.notifications.unsubscribe(this._subscription);
835
+ this._subscribedTo = null;
836
+ this._subscription = null;
837
+ }
838
+ }
839
+ /**
840
+ * Install the event listeners for network and visibility changes.
841
+ * This is only done in browser environments with a global `window`.
842
+ *
843
+ * @internal
844
+ */
644
845
  installListeners() {
645
846
  if (typeof window === 'undefined') {
646
847
  return;
@@ -676,59 +877,105 @@ class Request extends Component {
676
877
  capture: true
677
878
  });
678
879
  }
679
- maybeUpdate(mode1) {
680
- if (this.isOnline && !this.isHidden && (mode1 || this.args.autorefresh)) {
681
- const deadline1 = typeof this.args.autorefreshThreshold === 'number' ? this.args.autorefreshThreshold : DEFAULT_DEADLINE;
682
- const shouldAttempt1 = mode1 || this.unavailableStart && Date.now() - this.unavailableStart > deadline1;
683
- this.unavailableStart = null;
684
- if (shouldAttempt1) {
685
- const request1 = Object.assign({}, this.reqState.request);
686
- const val1 = mode1 ?? this.args.autorefreshBehavior ?? 'policy';
687
- switch (val1) {
688
- case 'reload':
689
- request1.cacheOptions = Object.assign({}, request1.cacheOptions, {
690
- reload: true
691
- });
692
- break;
693
- case 'refresh':
694
- request1.cacheOptions = Object.assign({}, request1.cacheOptions, {
695
- backgroundReload: true
696
- });
697
- break;
698
- case 'policy':
699
- break;
700
- default:
701
- throw new Error(`Invalid ${mode1 ? 'update mode' : '@autorefreshBehavior'} for <Request />: ${isNeverString(val1)}`);
702
- }
703
- const wasStoreRequest1 = request1[EnableHydration] === true;
704
- macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
705
- if (!test) {
706
- throw new Error(`Cannot supply a different store via context than was used to create the request`);
707
- }
708
- })(!request1.store || request1.store === this.store) : {};
709
- this._latestRequest = wasStoreRequest1 ? this.store.request(request1) : this.store.requestManager.request(request1);
710
- if (val1 !== 'refresh') {
711
- this._localRequest = this._latestRequest;
712
- }
713
- return;
880
+ /**
881
+ * If the network is online and the tab is visible, either reload or refresh the request
882
+ * based on the component's configuration and the requested update mode.
883
+ *
884
+ * Valid modes are:
885
+ *
886
+ * - `'reload'`: Force a reload of the request.
887
+ * - `'refresh'`: Refresh the request in the background.
888
+ * - `'policy'`: Make the request, letting the store's configured CachePolicy decide whether to reload, refresh, or do nothing.
889
+ * - `undefined`: Make the request using the component's autorefreshBehavior setting if the autorefreshThreshold has passed.
890
+ *
891
+ * @internal
892
+ */
893
+ maybeUpdate(mode1, silent1) {
894
+ const canAttempt1 = Boolean(this.isOnline && !this.isHidden && (mode1 || this.autorefreshTypes.size));
895
+ if (!canAttempt1) {
896
+ if (!silent1 && mode1 && mode1 !== 'invalidated') {
897
+ throw new Error(`Reload not available: the network is not online or the tab is hidden`);
898
+ }
899
+ return;
900
+ }
901
+ const {
902
+ autorefreshTypes: autorefreshTypes1
903
+ } = this;
904
+ let shouldAttempt1 = this.invalidated || Boolean(mode1);
905
+ if (!shouldAttempt1 && autorefreshTypes1.has('online')) {
906
+ const {
907
+ unavailableStart: unavailableStart1
908
+ } = this;
909
+ const {
910
+ autorefreshThreshold: autorefreshThreshold1
911
+ } = this.args;
912
+ const deadline1 = typeof autorefreshThreshold1 === 'number' ? autorefreshThreshold1 : DEFAULT_DEADLINE;
913
+ shouldAttempt1 = Boolean(unavailableStart1 && Date.now() - unavailableStart1 > deadline1);
914
+ }
915
+ if (!shouldAttempt1 && autorefreshTypes1.has('interval')) {
916
+ const {
917
+ intervalStart: intervalStart1
918
+ } = this;
919
+ const {
920
+ autorefreshThreshold: autorefreshThreshold1
921
+ } = this.args;
922
+ if (intervalStart1 && typeof autorefreshThreshold1 === 'number' && autorefreshThreshold1 > 0) {
923
+ shouldAttempt1 = Boolean(Date.now() - intervalStart1 > autorefreshThreshold1);
714
924
  }
715
925
  }
716
- if (mode1) {
717
- throw new Error(`Reload not available: the network is not online or the tab is hidden`);
926
+ this.unavailableStart = null;
927
+ this.invalidated = false;
928
+ if (shouldAttempt1) {
929
+ this.clearInterval();
930
+ const request1 = Object.assign({}, this.reqState.request);
931
+ const realMode1 = mode1 === 'invalidated' ? null : mode1;
932
+ const val1 = realMode1 ?? this.args.autorefreshBehavior ?? 'policy';
933
+ switch (val1) {
934
+ case 'reload':
935
+ request1.cacheOptions = Object.assign({}, request1.cacheOptions, {
936
+ reload: true
937
+ });
938
+ break;
939
+ case 'refresh':
940
+ request1.cacheOptions = Object.assign({}, request1.cacheOptions, {
941
+ backgroundReload: true
942
+ });
943
+ break;
944
+ case 'policy':
945
+ break;
946
+ default:
947
+ throw new Error(`Invalid ${mode1 ? 'update mode' : '@autorefreshBehavior'} for <Request />: ${isNeverString(val1)}`);
948
+ }
949
+ const wasStoreRequest1 = request1[EnableHydration] === true;
950
+ macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
951
+ if (!test) {
952
+ throw new Error(`Cannot supply a different store via context than was used to create the request`);
953
+ }
954
+ })(!request1.store || request1.store === this.store) : {};
955
+ this._latestRequest = wasStoreRequest1 ? this.store.request(request1) : this.store.requestManager.request(request1);
956
+ if (val1 !== 'refresh') {
957
+ this._localRequest = this._latestRequest;
958
+ }
959
+ void this.scheduleInterval();
718
960
  }
719
961
  }
962
+ /**
963
+ * Retry the request, reloading it from the server.
964
+ *
965
+ * @internal
966
+ */
720
967
  retry = async () => {
721
968
  this.maybeUpdate('reload');
722
969
  await this._localRequest;
723
970
  };
971
+ /**
972
+ * Refresh the request, updating it in the background.
973
+ *
974
+ * @internal
975
+ */
724
976
  refresh = async () => {
725
- this.isRefreshing = true;
726
977
  this.maybeUpdate('refresh');
727
- try {
728
- await this._latestRequest;
729
- } finally {
730
- this.isRefreshing = false;
731
- }
978
+ await this._latestRequest;
732
979
  };
733
980
  get errorFeatures() {
734
981
  return {
@@ -760,9 +1007,11 @@ class Request extends Component {
760
1007
  decorateMethodV2(this.prototype, "contentFeatures", [cached]);
761
1008
  }
762
1009
  willDestroy() {
1010
+ this.removeSubscriptions();
763
1011
  if (typeof window === 'undefined') {
764
1012
  return;
765
1013
  }
1014
+ this.clearInterval();
766
1015
  window.removeEventListener('online', this.onlineChanged, {
767
1016
  passive: true,
768
1017
  capture: true
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/decorator-transforms@2.0.0_@babel+core@7.24.5/node_modules/decorator-transforms/dist/chunk-3SQBS3Y5.js","../src/-private/request-state.ts","../src/-private/promise-state.ts","../src/-private/await.gts","../src/-private/request.gts"],"sourcesContent":["import {\n __export\n} from \"./chunk-CSAU5B4Q.js\";\n\n// src/runtime.ts\nvar runtime_exports = {};\n__export(runtime_exports, {\n c: () => decorateClass,\n f: () => decorateFieldV1,\n g: () => decorateFieldV2,\n i: () => initializeDeferredDecorator,\n m: () => decorateMethodV1,\n n: () => decorateMethodV2,\n p: () => decoratePOJO\n});\nvar deferred = /* @__PURE__ */ new WeakMap();\nfunction deferDecorator(proto, prop, desc) {\n let map = deferred.get(proto);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n deferred.set(proto, map);\n }\n map.set(prop, desc);\n}\nfunction findDeferredDecorator(target, prop) {\n let cursor = target.prototype;\n while (cursor) {\n let desc = deferred.get(cursor)?.get(prop);\n if (desc) {\n return desc;\n }\n cursor = cursor.prototype;\n }\n}\nfunction decorateFieldV1(target, prop, decorators, initializer) {\n return decorateFieldV2(target.prototype, prop, decorators, initializer);\n}\nfunction decorateFieldV2(prototype, prop, decorators, initializer) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n };\n if (initializer) {\n desc.initializer = initializer;\n }\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer === void 0) {\n Object.defineProperty(prototype, prop, desc);\n } else {\n deferDecorator(prototype, prop, desc);\n }\n}\nfunction decorateMethodV1({ prototype }, prop, decorators) {\n return decorateMethodV2(prototype, prop, decorators);\n}\nfunction decorateMethodV2(prototype, prop, decorators) {\n const origDesc = Object.getOwnPropertyDescriptor(prototype, prop);\n let desc = { ...origDesc };\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(prototype) : void 0;\n desc.initializer = void 0;\n }\n Object.defineProperty(prototype, prop, desc);\n}\nfunction initializeDeferredDecorator(target, prop) {\n let desc = findDeferredDecorator(target.constructor, prop);\n if (desc) {\n Object.defineProperty(target, prop, {\n enumerable: desc.enumerable,\n configurable: desc.configurable,\n writable: desc.writable,\n value: desc.initializer ? desc.initializer.call(target) : void 0\n });\n }\n}\nfunction decorateClass(target, decorators) {\n return decorators.reduce(\n (accum, decorator) => decorator(accum) || accum,\n target\n );\n}\nfunction decoratePOJO(pojo, decorated) {\n for (let [type, prop, decorators] of decorated) {\n if (type === \"field\") {\n decoratePojoField(pojo, prop, decorators);\n } else {\n decorateMethodV2(pojo, prop, decorators);\n }\n }\n return pojo;\n}\nfunction decoratePojoField(pojo, prop, decorators) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: () => Object.getOwnPropertyDescriptor(pojo, prop)?.value\n };\n for (let decorator of decorators) {\n desc = decorator(pojo, prop, desc) || desc;\n }\n if (desc.initializer) {\n desc.value = desc.initializer.call(pojo);\n delete desc.initializer;\n }\n Object.defineProperty(pojo, prop, desc);\n}\n\nexport {\n decorateFieldV1,\n decorateFieldV2,\n decorateMethodV1,\n decorateMethodV2,\n initializeDeferredDecorator,\n decorateClass,\n decoratePOJO,\n runtime_exports\n};\n//# sourceMappingURL=chunk-3SQBS3Y5.js.map","import { tracked } from '@glimmer/tracking';\n\nimport type {\n Future,\n ImmutableRequestInfo,\n ResponseInfo,\n StructuredDocument,\n StructuredErrorDocument,\n} from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst RequestCache = new WeakMap<Future<unknown>, RequestState>();\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof DOMException && error.name === 'AbortError';\n}\n\nasync function watchStream(stream: ReadableStream<Uint8Array>, state: RequestLoadingState): Promise<void> {\n const reader = stream.getReader();\n let bytesLoaded = 0;\n let shouldForward = state._stream !== null && state._stream.readable.locked;\n let isForwarding = shouldForward;\n let writer = state._stream?.writable.getWriter();\n const buffer = [];\n\n state._isPending = false;\n state._isStarted = true;\n state._startTime = performance.now();\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n bytesLoaded += value.byteLength;\n state._bytesLoaded = bytesLoaded;\n state._lastPacketTime = performance.now();\n\n shouldForward = shouldForward || (state._stream !== null && state._stream.readable.locked);\n\n if (shouldForward) {\n if (!isForwarding) {\n isForwarding = true;\n writer = state._stream!.writable.getWriter();\n for (const item of buffer) {\n await writer.ready;\n await writer.write(item);\n }\n buffer.length = 0;\n }\n await writer!.ready;\n await writer!.write(value);\n } else {\n buffer.push(value);\n }\n }\n\n // if we are still forwarding, we need to close the writer\n if (isForwarding) {\n await writer!.ready;\n await writer!.close();\n } else if (state._stream) {\n // if we are not forwarding, we need to cancel the stream\n await state._stream.readable.cancel('The Stream Has Already Ended');\n state._stream = null;\n }\n\n const endTime = performance.now();\n state._endTime = endTime;\n state._isComplete = true;\n state._isStarted = false;\n}\n\nexport class RequestLoadingState {\n _stream: TransformStream | null = null;\n _future: Future<unknown>;\n _triggered = false;\n _trigger() {\n if (this._triggered) {\n return;\n }\n this._triggered = true;\n const future = this._future;\n const promise: Promise<ReadableStream<Uint8Array> | null> & { sizeHint?: number } = future.getStream();\n if (promise.sizeHint) {\n this._sizeHint = promise.sizeHint;\n }\n this.promise = promise.then(\n (stream) => {\n if (!stream) {\n this._isPending = false;\n this._isComplete = true;\n return;\n }\n return watchStream(stream, this);\n },\n (error: Error) => {\n this._isPending = false;\n this._isStarted = false;\n if (isAbortError(error)) {\n this._isCancelled = true;\n this._isComplete = true;\n }\n this._isErrored = true;\n this._error = error;\n }\n );\n }\n\n promise: Promise<void> | null = null;\n @tracked _sizeHint = 0;\n @tracked _bytesLoaded = 0;\n\n @tracked _startTime = 0;\n @tracked _endTime = 0;\n @tracked _lastPacketTime = 0;\n\n @tracked _isPending = true;\n @tracked _isStarted = false;\n @tracked _isComplete = false;\n @tracked _isCancelled = false;\n @tracked _isErrored = false;\n @tracked _error: Error | null = null;\n\n get isPending(): boolean {\n this._trigger();\n return this._isPending;\n }\n\n get sizeHint(): number {\n this._trigger();\n return this._sizeHint;\n }\n\n get stream(): ReadableStream | null {\n this._trigger();\n if (!this._stream) {\n if (this._isComplete || this._isCancelled || this._isErrored) {\n return null;\n }\n this._stream = new TransformStream();\n }\n return this._stream.readable;\n }\n\n get isStarted(): boolean {\n this._trigger();\n return this._isStarted;\n }\n\n get bytesLoaded(): number {\n this._trigger();\n return this._bytesLoaded;\n }\n\n get startTime(): number {\n this._trigger();\n return this._startTime;\n }\n\n get endTime(): number {\n this._trigger();\n return this._endTime;\n }\n\n get lastPacketTime(): number {\n this._trigger();\n return this._lastPacketTime;\n }\n\n get isComplete(): boolean {\n this._trigger();\n return this._isComplete;\n }\n\n get isCancelled(): boolean {\n this._trigger();\n return this._isCancelled;\n }\n\n get isErrored(): boolean {\n this._trigger();\n return this._isErrored;\n }\n\n get error(): Error | null {\n this._trigger();\n return this._error;\n }\n\n get elapsedTime(): number {\n return (this.endTime || this.lastPacketTime) - this.startTime;\n }\n\n get completedRatio(): number {\n return this.sizeHint ? this.bytesLoaded / this.sizeHint : 0;\n }\n\n get remainingRatio(): number {\n return 1 - this.completedRatio;\n }\n\n get duration(): number {\n return this.endTime - this.startTime;\n }\n\n get speed(): number {\n // bytes per second\n return this.bytesLoaded / (this.elapsedTime / 1000);\n }\n\n constructor(future: Future<unknown>) {\n this._future = future;\n }\n\n abort = (): void => {\n this._future.abort();\n };\n}\n\nexport class RequestState<T = unknown, RT = unknown> {\n #request: Future<RT>;\n #loadingState: RequestLoadingState | null = null;\n\n @tracked result: RT | null = null;\n @tracked error: StructuredErrorDocument | null = null;\n @tracked isLoading = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n @tracked request: ImmutableRequestInfo<T, RT> | null = null;\n @tracked response: Response | ResponseInfo | null = null;\n\n get isCancelled(): boolean {\n return this.isError && isAbortError(this.error);\n }\n\n get loadingState() {\n if (!this.#loadingState) {\n this.#loadingState = new RequestLoadingState(this.#request);\n }\n\n return this.#loadingState;\n }\n\n constructor(future: Future<RT>) {\n this.#request = future;\n const state = getPromiseResult<StructuredDocument<RT>, StructuredErrorDocument>(future);\n\n if (state) {\n this.request = state.result.request as ImmutableRequestInfo<T, RT>;\n this.response = state.result.response;\n this.isLoading = false;\n\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n } else {\n this.result = state.result.content!;\n this.isSuccess = true;\n }\n } else {\n void future.then(\n (result) => {\n setPromiseResult(future, { isError: false, result });\n this.result = result.content;\n this.isSuccess = true;\n this.isLoading = false;\n this.request = result.request as ImmutableRequestInfo<T, RT>;\n this.response = result.response;\n },\n (error: StructuredErrorDocument) => {\n setPromiseResult(future, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isLoading = false;\n this.request = error.request as ImmutableRequestInfo<T, RT>;\n this.response = error.response;\n }\n );\n }\n }\n}\n\nexport function getRequestState<RT, T>(future: Future<RT>): RequestState<T, RT> {\n let state = RequestCache.get(future) as RequestState<T, RT> | undefined;\n\n if (!state) {\n state = new RequestState(future);\n RequestCache.set(future, state);\n }\n\n return state;\n}\n","import { tracked } from '@glimmer/tracking';\n\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst PromiseCache = new WeakMap<Awaitable, PromiseState>();\n\nexport class PromiseState<T = unknown, E = unknown> {\n @tracked result: T | null = null;\n @tracked error: E | null = null;\n @tracked isPending = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n\n constructor(promise: Promise<T> | Awaitable<T, E>) {\n const state = getPromiseResult<T, E>(promise);\n\n if (state) {\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n this.isPending = false;\n } else {\n this.result = state.result;\n this.isSuccess = true;\n this.isPending = false;\n }\n } else {\n void promise.then(\n (result) => {\n setPromiseResult(promise, { isError: false, result });\n this.result = result;\n this.isSuccess = true;\n this.isPending = false;\n },\n (error: E) => {\n setPromiseResult(promise, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isPending = false;\n }\n );\n }\n }\n}\n\nconst LegacyPromiseProxy = Symbol.for('LegacyPromiseProxy');\ntype LegacyAwaitable<T, E> = { promise: Promise<T> | Awaitable<T, E>; [LegacyPromiseProxy]: true };\n\nfunction isLegacyAwaitable<T, E>(promise: object): promise is LegacyAwaitable<T, E> {\n return LegacyPromiseProxy in promise && 'promise' in promise && promise[LegacyPromiseProxy] === true;\n}\n\nfunction getPromise<T, E>(promise: Promise<T> | Awaitable<T, E> | LegacyAwaitable<T, E>): Promise<T> | Awaitable<T, E> {\n return isLegacyAwaitable(promise) ? promise.promise : promise;\n}\n\nexport function getPromiseState<T = unknown, E = unknown>(promise: Promise<T> | Awaitable<T, E>): PromiseState<T, E> {\n const _promise = getPromise(promise);\n let state = PromiseCache.get(_promise) as PromiseState<T, E> | undefined;\n\n if (!state) {\n state = new PromiseState(_promise);\n PromiseCache.set(_promise, state);\n }\n\n return state;\n}\n","import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseState } from './promise-state.ts';\nexport const and = (x1: unknown, y1: unknown)=>Boolean(x1 && y1);\ninterface ThrowSignature<E = Error | string | object> {\n Args: {\n error: E;\n };\n}\nexport class Throw<T> extends Component<ThrowSignature<T>> {\n constructor(owner1: unknown, args1: ThrowSignature<T>['Args']){\n super(owner1, args1);\n // this error is opaque (user supplied) so we don't validate it\n // as an Error instance.\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw this.args.error;\n }\n static{\n template(``, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\ninterface AwaitSignature<T, E = Error | string | object> {\n Args: {\n promise: Promise<T> | Awaitable<T, E>;\n };\n Blocks: {\n pending: [];\n error: [error: E];\n success: [value: T];\n };\n}\nexport class Await<T, E> extends Component<AwaitSignature<T, E>> {\n get state() {\n return getPromiseState<T, E>(this.args.promise);\n }\n get error() {\n return this.state.error as E;\n }\n get result() {\n return this.state.result as T;\n }\n static{\n template(`\n {{#if this.state.isPending}}\n {{yield to=\"pending\"}}\n {{else if (and this.state.isError (has-block \"error\"))}}\n {{yield this.error to=\"error\"}}\n {{else if this.state.isSuccess}}\n {{yield this.result to=\"success\"}}\n {{else}}\n <Throw @error={{this.error}} />\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RhdGEvZGF0YS9wYWNrYWdlcy9lbWJlci9zcmMvLXByaXZhdGUvYXdhaXQuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcblxuaW1wb3J0IHR5cGUgeyBBd2FpdGFibGUgfSBmcm9tICdAZW1iZXItZGF0YS9yZXF1ZXN0JztcblxuaW1wb3J0IHsgZ2V0UHJvbWlzZVN0YXRlIH0gZnJvbSAnLi9wcm9taXNlLXN0YXRlLnRzJztcblxuZXhwb3J0IGNvbnN0IGFuZCA9ICh4OiB1bmtub3duLCB5OiB1bmtub3duKSA9PiBCb29sZWFuKHggJiYgeSk7XG5pbnRlcmZhY2UgVGhyb3dTaWduYXR1cmU8RSA9IEVycm9yIHwgc3RyaW5nIHwgb2JqZWN0PiB7XG4gIEFyZ3M6IHtcbiAgICBlcnJvcjogRTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFRocm93PFQ-IGV4dGVuZHMgQ29tcG9uZW50PFRocm93U2lnbmF0dXJlPFQ-PiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBUaHJvd1NpZ25hdHVyZTxUPlsnQXJncyddKSB7XG4gICAgc3VwZXIob3duZXIsIGFyZ3MpO1xuICAgIC8vIHRoaXMgZXJyb3IgaXMgb3BhcXVlICh1c2VyIHN1cHBsaWVkKSBzbyB3ZSBkb24ndCB2YWxpZGF0ZSBpdFxuICAgIC8vIGFzIGFuIEVycm9yIGluc3RhbmNlLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhyb3ctbGl0ZXJhbFxuICAgIHRocm93IHRoaXMuYXJncy5lcnJvcjtcbiAgfVxuICA8dGVtcGxhdGU-PC90ZW1wbGF0ZT5cbn1cblxuaW50ZXJmYWNlIEF3YWl0U2lnbmF0dXJlPFQsIEUgPSBFcnJvciB8IHN0cmluZyB8IG9iamVjdD4ge1xuICBBcmdzOiB7XG4gICAgcHJvbWlzZTogUHJvbWlzZTxUPiB8IEF3YWl0YWJsZTxULCBFPjtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgcGVuZGluZzogW107XG4gICAgZXJyb3I6IFtlcnJvcjogRV07XG4gICAgc3VjY2VzczogW3ZhbHVlOiBUXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEF3YWl0PFQsIEU-IGV4dGVuZHMgQ29tcG9uZW50PEF3YWl0U2lnbmF0dXJlPFQsIEU-PiB7XG4gIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gZ2V0UHJvbWlzZVN0YXRlPFQsIEU-KHRoaXMuYXJncy5wcm9taXNlKTtcbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvciBhcyBFO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5yZXN1bHQgYXMgVDtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNpZiB0aGlzLnN0YXRlLmlzUGVuZGluZ319XG4gICAgICB7e3lpZWxkIHRvPVwicGVuZGluZ1wifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnN0YXRlLmlzRXJyb3IgKGhhcy1ibG9jayBcImVycm9yXCIpKX19XG4gICAgICB7e3lpZWxkIHRoaXMuZXJyb3IgdG89XCJlcnJvclwifX1cbiAgICB7e2Vsc2UgaWYgdGhpcy5zdGF0ZS5pc1N1Y2Nlc3N9fVxuICAgICAge3t5aWVsZCB0aGlzLnJlc3VsdCB0bz1cInN1Y2Nlc3NcIn19XG4gICAge3tlbHNlfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3t0aGlzLmVycm9yfX0gLz5cbiAgICB7ey9pZn19XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFFM0MsY0FBYyxTQUFTLFFBQVEsc0JBQXNCO0FBRXJELFNBQVMsZUFBZSxRQUFRLHFCQUFxQjtBQUVyRCxPQUFPLE1BQU0sTUFBTSxDQUFDLElBQUcsT0FBTyxFQUFFLElBQUcsT0FBTyxHQUFLLFFBQVEsTUFBSyxJQUFHO1VBQ3JELGVBQWUsSUFBSSxRQUFRLE1BQU0sR0FBRyxNQUFNO0lBQ2xEO1FBQ0UsT0FBTzs7O0FBSVgsT0FBTyxNQUFNLE1BQU0sV0FBVyxVQUFVLGVBQWU7SUFDckQsWUFBWSxRQUFPLE9BQU8sRUFBRSxPQUFNLGVBQWUsR0FBRyxPQUFPLENBQUU7UUFDM0QsS0FBSyxDQUFDLFFBQU87UUFDYiwrREFBK0Q7UUFDL0Qsd0JBQXdCO1FBQ3hCLCtEQUErRDtRQUMvRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztJQUN2QjtJQUNBLE1BQUE7UUFBQSxTQUFVLENBQUEsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBQVY7QUFDWjtVQUVVLGVBQWUsR0FBRyxJQUFJLFFBQVEsTUFBTSxHQUFHLE1BQU07SUFDckQ7UUFDRSxTQUFTLFFBQVEsS0FBSyxVQUFVLEdBQUc7O0lBRXJDO1FBQ0U7UUFDQSxRQUFRLE9BQU87UUFDZixVQUFVLE9BQU87OztBQUlyQixPQUFPLE1BQU0sTUFBTSxHQUFHLFdBQVcsVUFBVSxlQUFlLEdBQUc7SUFDM0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxnQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztJQUNoRDtJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUk7SUFDN0I7SUFFQSxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJO0lBQzlCO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7OztFQVVWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQVZBO0FBV1oifQ","import { template } from \"@ember/template-compiler\";\nimport { service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { importSync, macroCondition, moduleExists } from '@embroider/macros';\nimport type { Future, StructuredErrorDocument } from '@ember-data/request';\nimport type { StoreRequestInput } from '@ember-data/store';\nimport type Store from '@ember-data/store';\nimport { assert } from '@warp-drive/build-config/macros';\nimport { EnableHydration, type RequestInfo } from '@warp-drive/core-types/request';\nimport { and, Throw } from './await.gts';\nimport type { RequestLoadingState, RequestState } from './request-state.ts';\nimport { getRequestState } from './request-state.ts';\nfunction notNull(x1: null): never;\nfunction notNull<T>(x1: T): Exclude<T, null>;\nfunction notNull<T>(x1: T | null) {\n assert('Expected a non-null value, but got null', x1 !== null);\n return x1;\n}\nconst not = (x1: unknown)=>!x1;\n// default to 30 seconds unavailable before we refresh\nconst DEFAULT_DEADLINE = 30_000;\nlet consume = service;\nif (macroCondition(moduleExists('ember-provide-consume-context'))) {\n const { consume: contextConsume } = importSync('ember-provide-consume-context') as {\n consume: typeof service;\n };\n consume = contextConsume;\n}\nfunction isNeverString(val1: never): string {\n return val1;\n}\ntype ContentFeatures<RT> = {\n isOnline: boolean;\n isHidden: boolean;\n isRefreshing: boolean;\n refresh: () => Promise<void>;\n reload: () => Promise<void>;\n abort?: () => void;\n latestRequest?: Future<RT>;\n};\ninterface RequestSignature<T, RT> {\n Args: {\n request?: Future<RT>;\n query?: StoreRequestInput<T, RT>;\n store?: Store;\n autorefresh?: boolean;\n autorefreshThreshold?: number;\n autorefreshBehavior?: 'refresh' | 'reload' | 'policy';\n };\n Blocks: {\n loading: [state: RequestLoadingState];\n cancelled: [error: StructuredErrorDocument, features: {\n isOnline: boolean;\n isHidden: boolean;\n retry: () => Promise<void>;\n }];\n error: [error: StructuredErrorDocument, features: {\n isOnline: boolean;\n isHidden: boolean;\n retry: () => Promise<void>;\n }];\n content: [value: RT, features: ContentFeatures<RT>];\n always: [state: RequestState<T, RT>];\n };\n}\nexport class Request<T, RT> extends Component<RequestSignature<T, RT>> {\n /**\n * @internal\n */ @consume('store')\n _store: Store;\n @tracked\n isOnline = true;\n @tracked\n isHidden = true;\n @tracked\n isRefreshing = false;\n @tracked\n _localRequest: Future<RT> | undefined;\n @tracked\n _latestRequest: Future<RT> | undefined;\n unavailableStart: number | null;\n onlineChanged: (event: Event) => void;\n backgroundChanged: (event: Event) => void;\n _originalRequest: Future<RT> | undefined;\n _originalQuery: StoreRequestInput<T, RT> | undefined;\n constructor(owner1: unknown, args1: RequestSignature<T, RT>['Args']){\n super(owner1, args1);\n this.installListeners();\n }\n installListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n this.isOnline = window.navigator.onLine;\n this.unavailableStart = this.isOnline ? null : Date.now();\n this.isHidden = document.visibilityState === 'hidden';\n this.onlineChanged = (event1: Event)=>{\n this.isOnline = event1.type === 'online';\n if (event1.type === 'offline' && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n this.maybeUpdate();\n };\n this.backgroundChanged = ()=>{\n const isHidden1 = document.visibilityState === 'hidden';\n this.isHidden = isHidden1;\n if (isHidden1 && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n this.maybeUpdate();\n };\n window.addEventListener('online', this.onlineChanged, {\n passive: true,\n capture: true\n });\n window.addEventListener('offline', this.onlineChanged, {\n passive: true,\n capture: true\n });\n document.addEventListener('visibilitychange', this.backgroundChanged, {\n passive: true,\n capture: true\n });\n }\n maybeUpdate(mode1?: 'reload' | 'refresh' | 'policy'): void {\n if (this.isOnline && !this.isHidden && (mode1 || this.args.autorefresh)) {\n const deadline1 = typeof this.args.autorefreshThreshold === 'number' ? this.args.autorefreshThreshold : DEFAULT_DEADLINE;\n const shouldAttempt1 = mode1 || (this.unavailableStart && Date.now() - this.unavailableStart > deadline1);\n this.unavailableStart = null;\n if (shouldAttempt1) {\n const request1 = Object.assign({}, this.reqState.request as unknown as RequestInfo<T, RT>);\n const val1 = mode1 ?? this.args.autorefreshBehavior ?? 'policy';\n switch(val1){\n case 'reload':\n request1.cacheOptions = Object.assign({}, request1.cacheOptions, {\n reload: true\n });\n break;\n case 'refresh':\n request1.cacheOptions = Object.assign({}, request1.cacheOptions, {\n backgroundReload: true\n });\n break;\n case 'policy':\n break;\n default:\n throw new Error(`Invalid ${mode1 ? 'update mode' : '@autorefreshBehavior'} for <Request />: ${isNeverString(val1)}`);\n }\n const wasStoreRequest1 = (request1 as {\n [EnableHydration]: boolean;\n })[EnableHydration] === true;\n assert(`Cannot supply a different store via context than was used to create the request`, !request1.store || request1.store === this.store);\n this._latestRequest = wasStoreRequest1 ? this.store.request(request1) : this.store.requestManager.request(request1);\n if (val1 !== 'refresh') {\n this._localRequest = this._latestRequest;\n }\n return;\n }\n }\n if (mode1) {\n throw new Error(`Reload not available: the network is not online or the tab is hidden`);\n }\n }\n retry = async ()=>{\n this.maybeUpdate('reload');\n await this._localRequest;\n };\n refresh = async ()=>{\n this.isRefreshing = true;\n this.maybeUpdate('refresh');\n try {\n await this._latestRequest;\n } finally{\n this.isRefreshing = false;\n }\n };\n @cached\n get errorFeatures() {\n return {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n retry: this.retry\n };\n }\n @cached\n get contentFeatures() {\n const feat1: ContentFeatures<RT> = {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n reload: this.retry,\n refresh: this.refresh,\n isRefreshing: this.isRefreshing,\n latestRequest: this._latestRequest\n };\n if (feat1.isRefreshing) {\n feat1.abort = ()=>{\n this._latestRequest?.abort();\n };\n }\n return feat1;\n }\n willDestroy() {\n if (typeof window === 'undefined') {\n return;\n }\n window.removeEventListener('online', this.onlineChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n window.removeEventListener('offline', this.onlineChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n document.removeEventListener('visibilitychange', this.backgroundChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n }\n @cached\n get request() {\n const { request: request1, query: query1 } = this.args;\n assert(`Cannot use both @request and @query args with the <Request> component`, !request1 || !query1);\n const { _localRequest: _localRequest1, _originalRequest: _originalRequest1, _originalQuery: _originalQuery1 } = this;\n const isOriginalRequest1 = request1 === _originalRequest1 && query1 === _originalQuery1;\n if (_localRequest1 && isOriginalRequest1) {\n return _localRequest1;\n }\n // update state checks for the next time\n this._originalQuery = query1;\n this._originalRequest = request1;\n if (request1) {\n return request1;\n }\n assert(`You must provide either @request or an @query arg with the <Request> component`, query1);\n return this.store.request<RT, T>(query1);\n }\n get store(): Store {\n const store1 = this.args.store || this._store;\n assert(moduleExists('ember-provide-consume-context') ? `No store was provided to the <Request> component. Either provide a store via the @store arg or via the context API provided by ember-provide-consume-context.` : `No store was provided to the <Request> component. Either provide a store via the @store arg or by registering a store service.`, store1);\n return store1;\n }\n get reqState() {\n return getRequestState<RT, T>(this.request);\n }\n get result() {\n return this.reqState.result as RT;\n }\n static{\n template(`\n {{#if this.reqState.isLoading}}\n {{yield this.reqState.loadingState to=\"loading\"}}\n {{else if (and this.reqState.isCancelled (has-block \"cancelled\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"cancelled\"}}\n {{else if (and this.reqState.isError (has-block \"error\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"error\"}}\n {{else if this.reqState.isSuccess}}\n {{yield this.result this.contentFeatures to=\"content\"}}\n {{else if (not this.reqState.isCancelled)}}\n <Throw @error={{(notNull this.reqState.error)}} />\n {{/if}}\n {{yield this.reqState to=\"always\"}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RhdGEvZGF0YS9wYWNrYWdlcy9lbWJlci9zcmMvLXByaXZhdGUvcmVxdWVzdC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VydmljZSB9IGZyb20gJ0BlbWJlci9zZXJ2aWNlJztcbmltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGNhY2hlZCwgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuaW1wb3J0IHsgaW1wb3J0U3luYywgbWFjcm9Db25kaXRpb24sIG1vZHVsZUV4aXN0cyB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHR5cGUgeyBGdXR1cmUsIFN0cnVjdHVyZWRFcnJvckRvY3VtZW50IH0gZnJvbSAnQGVtYmVyLWRhdGEvcmVxdWVzdCc7XG5pbXBvcnQgdHlwZSB7IFN0b3JlUmVxdWVzdElucHV0IH0gZnJvbSAnQGVtYmVyLWRhdGEvc3RvcmUnO1xuaW1wb3J0IHR5cGUgU3RvcmUgZnJvbSAnQGVtYmVyLWRhdGEvc3RvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQHdhcnAtZHJpdmUvYnVpbGQtY29uZmlnL21hY3Jvcyc7XG5pbXBvcnQgeyBFbmFibGVIeWRyYXRpb24sIHR5cGUgUmVxdWVzdEluZm8gfSBmcm9tICdAd2FycC1kcml2ZS9jb3JlLXR5cGVzL3JlcXVlc3QnO1xuXG5pbXBvcnQgeyBhbmQsIFRocm93IH0gZnJvbSAnLi9hd2FpdC5ndHMnO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0TG9hZGluZ1N0YXRlLCBSZXF1ZXN0U3RhdGUgfSBmcm9tICcuL3JlcXVlc3Qtc3RhdGUudHMnO1xuaW1wb3J0IHsgZ2V0UmVxdWVzdFN0YXRlIH0gZnJvbSAnLi9yZXF1ZXN0LXN0YXRlLnRzJztcblxuZnVuY3Rpb24gbm90TnVsbCh4OiBudWxsKTogbmV2ZXI7XG5mdW5jdGlvbiBub3ROdWxsPFQ-KHg6IFQpOiBFeGNsdWRlPFQsIG51bGw-O1xuZnVuY3Rpb24gbm90TnVsbDxUPih4OiBUIHwgbnVsbCkge1xuICBhc3NlcnQoJ0V4cGVjdGVkIGEgbm9uLW51bGwgdmFsdWUsIGJ1dCBnb3QgbnVsbCcsIHggIT09IG51bGwpO1xuICByZXR1cm4geDtcbn1cblxuY29uc3Qgbm90ID0gKHg6IHVua25vd24pID0-ICF4O1xuLy8gZGVmYXVsdCB0byAzMCBzZWNvbmRzIHVuYXZhaWxhYmxlIGJlZm9yZSB3ZSByZWZyZXNoXG5jb25zdCBERUZBVUxUX0RFQURMSU5FID0gMzBfMDAwO1xuXG5sZXQgY29uc3VtZSA9IHNlcnZpY2U7XG5pZiAobWFjcm9Db25kaXRpb24obW9kdWxlRXhpc3RzKCdlbWJlci1wcm92aWRlLWNvbnN1bWUtY29udGV4dCcpKSkge1xuICBjb25zdCB7IGNvbnN1bWU6IGNvbnRleHRDb25zdW1lIH0gPSBpbXBvcnRTeW5jKCdlbWJlci1wcm92aWRlLWNvbnN1bWUtY29udGV4dCcpIGFzIHsgY29uc3VtZTogdHlwZW9mIHNlcnZpY2UgfTtcbiAgY29uc3VtZSA9IGNvbnRleHRDb25zdW1lO1xufVxuXG5mdW5jdGlvbiBpc05ldmVyU3RyaW5nKHZhbDogbmV2ZXIpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsO1xufVxuXG50eXBlIENvbnRlbnRGZWF0dXJlczxSVD4gPSB7XG4gIGlzT25saW5lOiBib29sZWFuO1xuICBpc0hpZGRlbjogYm9vbGVhbjtcbiAgaXNSZWZyZXNoaW5nOiBib29sZWFuO1xuICByZWZyZXNoOiAoKSA9PiBQcm9taXNlPHZvaWQ-O1xuICByZWxvYWQ6ICgpID0-IFByb21pc2U8dm9pZD47XG4gIGFib3J0PzogKCkgPT4gdm9pZDtcbiAgbGF0ZXN0UmVxdWVzdD86IEZ1dHVyZTxSVD47XG59O1xuXG5pbnRlcmZhY2UgUmVxdWVzdFNpZ25hdHVyZTxULCBSVD4ge1xuICBBcmdzOiB7XG4gICAgcmVxdWVzdD86IEZ1dHVyZTxSVD47XG4gICAgcXVlcnk_OiBTdG9yZVJlcXVlc3RJbnB1dDxULCBSVD47XG4gICAgc3RvcmU_OiBTdG9yZTtcbiAgICBhdXRvcmVmcmVzaD86IGJvb2xlYW47XG4gICAgYXV0b3JlZnJlc2hUaHJlc2hvbGQ_OiBudW1iZXI7XG4gICAgYXV0b3JlZnJlc2hCZWhhdmlvcj86ICdyZWZyZXNoJyB8ICdyZWxvYWQnIHwgJ3BvbGljeSc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGxvYWRpbmc6IFtzdGF0ZTogUmVxdWVzdExvYWRpbmdTdGF0ZV07XG4gICAgY2FuY2VsbGVkOiBbXG4gICAgICBlcnJvcjogU3RydWN0dXJlZEVycm9yRG9jdW1lbnQsXG4gICAgICBmZWF0dXJlczogeyBpc09ubGluZTogYm9vbGVhbjsgaXNIaWRkZW46IGJvb2xlYW47IHJldHJ5OiAoKSA9PiBQcm9taXNlPHZvaWQ-IH0sXG4gICAgXTtcbiAgICBlcnJvcjogW1xuICAgICAgZXJyb3I6IFN0cnVjdHVyZWRFcnJvckRvY3VtZW50LFxuICAgICAgZmVhdHVyZXM6IHsgaXNPbmxpbmU6IGJvb2xlYW47IGlzSGlkZGVuOiBib29sZWFuOyByZXRyeTogKCkgPT4gUHJvbWlzZTx2b2lkPiB9LFxuICAgIF07XG4gICAgY29udGVudDogW3ZhbHVlOiBSVCwgZmVhdHVyZXM6IENvbnRlbnRGZWF0dXJlczxSVD5dO1xuICAgIGFsd2F5czogW3N0YXRlOiBSZXF1ZXN0U3RhdGU8VCwgUlQ-XTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFJlcXVlc3Q8VCwgUlQ-IGV4dGVuZHMgQ29tcG9uZW50PFJlcXVlc3RTaWduYXR1cmU8VCwgUlQ-PiB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBjb25zdW1lKCdzdG9yZScpIGRlY2xhcmUgX3N0b3JlOiBTdG9yZTtcbiAgQHRyYWNrZWQgaXNPbmxpbmUgPSB0cnVlO1xuICBAdHJhY2tlZCBpc0hpZGRlbiA9IHRydWU7XG4gIEB0cmFja2VkIGlzUmVmcmVzaGluZyA9IGZhbHNlO1xuICBAdHJhY2tlZCBfbG9jYWxSZXF1ZXN0OiBGdXR1cmU8UlQ-IHwgdW5kZWZpbmVkO1xuICBAdHJhY2tlZCBfbGF0ZXN0UmVxdWVzdDogRnV0dXJlPFJUPiB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSB1bmF2YWlsYWJsZVN0YXJ0OiBudW1iZXIgfCBudWxsO1xuICBkZWNsYXJlIG9ubGluZUNoYW5nZWQ6IChldmVudDogRXZlbnQpID0-IHZvaWQ7XG4gIGRlY2xhcmUgYmFja2dyb3VuZENoYW5nZWQ6IChldmVudDogRXZlbnQpID0-IHZvaWQ7XG4gIGRlY2xhcmUgX29yaWdpbmFsUmVxdWVzdDogRnV0dXJlPFJUPiB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBfb3JpZ2luYWxRdWVyeTogU3RvcmVSZXF1ZXN0SW5wdXQ8VCwgUlQ-IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBSZXF1ZXN0U2lnbmF0dXJlPFQsIFJUPlsnQXJncyddKSB7XG4gICAgc3VwZXIob3duZXIsIGFyZ3MpO1xuICAgIHRoaXMuaW5zdGFsbExpc3RlbmVycygpO1xuICB9XG5cbiAgaW5zdGFsbExpc3RlbmVycygpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzT25saW5lID0gd2luZG93Lm5hdmlnYXRvci5vbkxpbmU7XG4gICAgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID0gdGhpcy5pc09ubGluZSA_IG51bGwgOiBEYXRlLm5vdygpO1xuICAgIHRoaXMuaXNIaWRkZW4gPSBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nO1xuXG4gICAgdGhpcy5vbmxpbmVDaGFuZ2VkID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy5pc09ubGluZSA9IGV2ZW50LnR5cGUgPT09ICdvbmxpbmUnO1xuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdvZmZsaW5lJyAmJiB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWF5YmVVcGRhdGUoKTtcbiAgICB9O1xuICAgIHRoaXMuYmFja2dyb3VuZENoYW5nZWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbiA9IGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gJ2hpZGRlbic7XG4gICAgICB0aGlzLmlzSGlkZGVuID0gaXNIaWRkZW47XG5cbiAgICAgIGlmIChpc0hpZGRlbiAmJiB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5tYXliZVVwZGF0ZSgpO1xuICAgIH07XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29mZmxpbmUnLCB0aGlzLm9ubGluZUNoYW5nZWQsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgdGhpcy5iYWNrZ3JvdW5kQ2hhbmdlZCwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0pO1xuICB9XG5cbiAgbWF5YmVVcGRhdGUobW9kZT86ICdyZWxvYWQnIHwgJ3JlZnJlc2gnIHwgJ3BvbGljeScpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09ubGluZSAmJiAhdGhpcy5pc0hpZGRlbiAmJiAobW9kZSB8fCB0aGlzLmFyZ3MuYXV0b3JlZnJlc2gpKSB7XG4gICAgICBjb25zdCBkZWFkbGluZSA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmFyZ3MuYXV0b3JlZnJlc2hUaHJlc2hvbGQgPT09ICdudW1iZXInID8gdGhpcy5hcmdzLmF1dG9yZWZyZXNoVGhyZXNob2xkIDogREVGQVVMVF9ERUFETElORTtcbiAgICAgIGNvbnN0IHNob3VsZEF0dGVtcHQgPSBtb2RlIHx8ICh0aGlzLnVuYXZhaWxhYmxlU3RhcnQgJiYgRGF0ZS5ub3coKSAtIHRoaXMudW5hdmFpbGFibGVTdGFydCA-IGRlYWRsaW5lKTtcbiAgICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IG51bGw7XG5cbiAgICAgIGlmIChzaG91bGRBdHRlbXB0KSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnJlcVN0YXRlLnJlcXVlc3QgYXMgdW5rbm93biBhcyBSZXF1ZXN0SW5mbzxULCBSVD4pO1xuICAgICAgICBjb25zdCB2YWwgPSBtb2RlID8_IHRoaXMuYXJncy5hdXRvcmVmcmVzaEJlaGF2aW9yID8_ICdwb2xpY3knO1xuICAgICAgICBzd2l0Y2ggKHZhbCkge1xuICAgICAgICAgIGNhc2UgJ3JlbG9hZCc6XG4gICAgICAgICAgICByZXF1ZXN0LmNhY2hlT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcXVlc3QuY2FjaGVPcHRpb25zLCB7IHJlbG9hZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3JlZnJlc2gnOlxuICAgICAgICAgICAgcmVxdWVzdC5jYWNoZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCByZXF1ZXN0LmNhY2hlT3B0aW9ucywgeyBiYWNrZ3JvdW5kUmVsb2FkOiB0cnVlIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncG9saWN5JzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBJbnZhbGlkICR7bW9kZSA_ICd1cGRhdGUgbW9kZScgOiAnQGF1dG9yZWZyZXNoQmVoYXZpb3InfSBmb3IgPFJlcXVlc3QgLz46ICR7aXNOZXZlclN0cmluZyh2YWwpfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3YXNTdG9yZVJlcXVlc3QgPSAocmVxdWVzdCBhcyB7IFtFbmFibGVIeWRyYXRpb25dOiBib29sZWFuIH0pW0VuYWJsZUh5ZHJhdGlvbl0gPT09IHRydWU7XG4gICAgICAgIGFzc2VydChcbiAgICAgICAgICBgQ2Fubm90IHN1cHBseSBhIGRpZmZlcmVudCBzdG9yZSB2aWEgY29udGV4dCB0aGFuIHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgcmVxdWVzdGAsXG4gICAgICAgICAgIXJlcXVlc3Quc3RvcmUgfHwgcmVxdWVzdC5zdG9yZSA9PT0gdGhpcy5zdG9yZVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2xhdGVzdFJlcXVlc3QgPSB3YXNTdG9yZVJlcXVlc3RcbiAgICAgICAgICA_IHRoaXMuc3RvcmUucmVxdWVzdChyZXF1ZXN0KVxuICAgICAgICAgIDogdGhpcy5zdG9yZS5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHJlcXVlc3QpO1xuXG4gICAgICAgIGlmICh2YWwgIT09ICdyZWZyZXNoJykge1xuICAgICAgICAgIHRoaXMuX2xvY2FsUmVxdWVzdCA9IHRoaXMuX2xhdGVzdFJlcXVlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVsb2FkIG5vdCBhdmFpbGFibGU6IHRoZSBuZXR3b3JrIGlzIG5vdCBvbmxpbmUgb3IgdGhlIHRhYiBpcyBoaWRkZW5gKTtcbiAgICB9XG4gIH1cblxuICByZXRyeSA9IGFzeW5jICgpID0-IHtcbiAgICB0aGlzLm1heWJlVXBkYXRlKCdyZWxvYWQnKTtcbiAgICBhd2FpdCB0aGlzLl9sb2NhbFJlcXVlc3Q7XG4gIH07XG5cbiAgcmVmcmVzaCA9IGFzeW5jICgpID0-IHtcbiAgICB0aGlzLmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgdGhpcy5tYXliZVVwZGF0ZSgncmVmcmVzaCcpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9sYXRlc3RSZXF1ZXN0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBAY2FjaGVkXG4gIGdldCBlcnJvckZlYXR1cmVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpc0hpZGRlbjogdGhpcy5pc0hpZGRlbixcbiAgICAgIGlzT25saW5lOiB0aGlzLmlzT25saW5lLFxuICAgICAgcmV0cnk6IHRoaXMucmV0cnksXG4gICAgfTtcbiAgfVxuXG4gIEBjYWNoZWRcbiAgZ2V0IGNvbnRlbnRGZWF0dXJlcygpIHtcbiAgICBjb25zdCBmZWF0OiBDb250ZW50RmVhdHVyZXM8UlQ-ID0ge1xuICAgICAgaXNIaWRkZW46IHRoaXMuaXNIaWRkZW4sXG4gICAgICBpc09ubGluZTogdGhpcy5pc09ubGluZSxcbiAgICAgIHJlbG9hZDogdGhpcy5yZXRyeSxcbiAgICAgIHJlZnJlc2g6IHRoaXMucmVmcmVzaCxcbiAgICAgIGlzUmVmcmVzaGluZzogdGhpcy5pc1JlZnJlc2hpbmcsXG4gICAgICBsYXRlc3RSZXF1ZXN0OiB0aGlzLl9sYXRlc3RSZXF1ZXN0LFxuICAgIH07XG5cbiAgICBpZiAoZmVhdC5pc1JlZnJlc2hpbmcpIHtcbiAgICAgIGZlYXQuYWJvcnQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuX2xhdGVzdFJlcXVlc3Q_LmFib3J0KCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBmZWF0O1xuICB9XG5cbiAgd2lsbERlc3Ryb3koKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29ubGluZScsIHRoaXMub25saW5lQ2hhbmdlZCwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0gYXMgdW5rbm93biBhcyBib29sZWFuKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIHRoaXMub25saW5lQ2hhbmdlZCwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0gYXMgdW5rbm93biBhcyBib29sZWFuKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgdGhpcy5iYWNrZ3JvdW5kQ2hhbmdlZCwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSBhcyB1bmtub3duIGFzIGJvb2xlYW4pO1xuICB9XG5cbiAgQGNhY2hlZFxuICBnZXQgcmVxdWVzdCgpIHtcbiAgICBjb25zdCB7IHJlcXVlc3QsIHF1ZXJ5IH0gPSB0aGlzLmFyZ3M7XG4gICAgYXNzZXJ0KGBDYW5ub3QgdXNlIGJvdGggQHJlcXVlc3QgYW5kIEBxdWVyeSBhcmdzIHdpdGggdGhlIDxSZXF1ZXN0PiBjb21wb25lbnRgLCAhcmVxdWVzdCB8fCAhcXVlcnkpO1xuICAgIGNvbnN0IHsgX2xvY2FsUmVxdWVzdCwgX29yaWdpbmFsUmVxdWVzdCwgX29yaWdpbmFsUXVlcnkgfSA9IHRoaXM7XG4gICAgY29uc3QgaXNPcmlnaW5hbFJlcXVlc3QgPSByZXF1ZXN0ID09PSBfb3JpZ2luYWxSZXF1ZXN0ICYmIHF1ZXJ5ID09PSBfb3JpZ2luYWxRdWVyeTtcblxuICAgIGlmIChfbG9jYWxSZXF1ZXN0ICYmIGlzT3JpZ2luYWxSZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gX2xvY2FsUmVxdWVzdDtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgc3RhdGUgY2hlY2tzIGZvciB0aGUgbmV4dCB0aW1lXG4gICAgdGhpcy5fb3JpZ2luYWxRdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMuX29yaWdpbmFsUmVxdWVzdCA9IHJlcXVlc3Q7XG5cbiAgICBpZiAocmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzc2VydChgWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgQHJlcXVlc3Qgb3IgYW4gQHF1ZXJ5IGFyZyB3aXRoIHRoZSA8UmVxdWVzdD4gY29tcG9uZW50YCwgcXVlcnkpO1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnJlcXVlc3Q8UlQsIFQ-KHF1ZXJ5KTtcbiAgfVxuXG4gIGdldCBzdG9yZSgpOiBTdG9yZSB7XG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLmFyZ3Muc3RvcmUgfHwgdGhpcy5fc3RvcmU7XG4gICAgYXNzZXJ0KFxuICAgICAgbW9kdWxlRXhpc3RzKCdlbWJlci1wcm92aWRlLWNvbnN1bWUtY29udGV4dCcpXG4gICAgICAgID8gYE5vIHN0b3JlIHdhcyBwcm92aWRlZCB0byB0aGUgPFJlcXVlc3Q-IGNvbXBvbmVudC4gRWl0aGVyIHByb3ZpZGUgYSBzdG9yZSB2aWEgdGhlIEBzdG9yZSBhcmcgb3IgdmlhIHRoZSBjb250ZXh0IEFQSSBwcm92aWRlZCBieSBlbWJlci1wcm92aWRlLWNvbnN1bWUtY29udGV4dC5gXG4gICAgICAgIDogYE5vIHN0b3JlIHdhcyBwcm92aWRlZCB0byB0aGUgPFJlcXVlc3Q-IGNvbXBvbmVudC4gRWl0aGVyIHByb3ZpZGUgYSBzdG9yZSB2aWEgdGhlIEBzdG9yZSBhcmcgb3IgYnkgcmVnaXN0ZXJpbmcgYSBzdG9yZSBzZXJ2aWNlLmAsXG4gICAgICBzdG9yZVxuICAgICk7XG4gICAgcmV0dXJuIHN0b3JlO1xuICB9XG5cbiAgZ2V0IHJlcVN0YXRlKCkge1xuICAgIHJldHVybiBnZXRSZXF1ZXN0U3RhdGU8UlQsIFQ-KHRoaXMucmVxdWVzdCk7XG4gIH1cblxuICBnZXQgcmVzdWx0KCkge1xuICAgIHJldHVybiB0aGlzLnJlcVN0YXRlLnJlc3VsdCBhcyBSVDtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNpZiB0aGlzLnJlcVN0YXRlLmlzTG9hZGluZ319XG4gICAgICB7e3lpZWxkIHRoaXMucmVxU3RhdGUubG9hZGluZ1N0YXRlIHRvPVwibG9hZGluZ1wifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnJlcVN0YXRlLmlzQ2FuY2VsbGVkIChoYXMtYmxvY2sgXCJjYW5jZWxsZWRcIikpfX1cbiAgICAgIHt7eWllbGQgKG5vdE51bGwgdGhpcy5yZXFTdGF0ZS5lcnJvcikgdGhpcy5lcnJvckZlYXR1cmVzIHRvPVwiY2FuY2VsbGVkXCJ9fVxuICAgIHt7ZWxzZSBpZiAoYW5kIHRoaXMucmVxU3RhdGUuaXNFcnJvciAoaGFzLWJsb2NrIFwiZXJyb3JcIikpfX1cbiAgICAgIHt7eWllbGQgKG5vdE51bGwgdGhpcy5yZXFTdGF0ZS5lcnJvcikgdGhpcy5lcnJvckZlYXR1cmVzIHRvPVwiZXJyb3JcIn19XG4gICAge3tlbHNlIGlmIHRoaXMucmVxU3RhdGUuaXNTdWNjZXNzfX1cbiAgICAgIHt7eWllbGQgdGhpcy5yZXN1bHQgdGhpcy5jb250ZW50RmVhdHVyZXMgdG89XCJjb250ZW50XCJ9fVxuICAgIHt7ZWxzZSBpZiAobm90IHRoaXMucmVxU3RhdGUuaXNDYW5jZWxsZWQpfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3sobm90TnVsbCB0aGlzLnJlcVN0YXRlLmVycm9yKX19IC8-XG4gICAge3svaWZ9fVxuICAgIHt7eWllbGQgdGhpcy5yZXFTdGF0ZSB0bz1cImFsd2F5c1wifX1cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxPQUFPLFFBQVEsaUJBQWlCO0FBQ3pDLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxNQUFNLEVBQUUsT0FBTyxRQUFRLG9CQUFvQjtBQUVwRCxTQUFTLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxRQUFRLG9CQUFvQjtBQUU3RSxjQUFjLE1BQU0sRUFBRSx1QkFBdUIsUUFBUSxzQkFBc0I7QUFDM0UsY0FBYyxpQkFBaUIsUUFBUSxvQkFBb0I7QUFDM0QsWUFBWSxXQUFXLG9CQUFvQjtBQUMzQyxTQUFTLE1BQU0sUUFBUSxrQ0FBa0M7QUFDekQsU0FBUyxlQUFlLEVBQUUsS0FBSyxXQUFXLFFBQVEsaUNBQWlDO0FBRW5GLFNBQVMsR0FBRyxFQUFFLEtBQUssUUFBUSxjQUFjO0FBQ3pDLGNBQWMsbUJBQW1CLEVBQUUsWUFBWSxRQUFRLHFCQUFxQjtBQUM1RSxTQUFTLGVBQWUsUUFBUSxxQkFBcUI7QUFFckQsU0FBUyxRQUFRLElBQUcsSUFBSSxHQUFHLEtBQUs7QUFDaEMsU0FBUyxRQUFRLEdBQUcsSUFBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUk7QUFDMUMsU0FBUyxRQUFRLEdBQUcsSUFBRyxJQUFJLElBQUk7SUFDN0IsT0FBTywyQ0FBMkMsT0FBTTtJQUN4RCxPQUFPO0FBQ1Q7QUFFQSxNQUFNLE1BQU0sQ0FBQyxJQUFHLE9BQU8sR0FBSyxDQUFDO0FBQzdCLHNEQUFzRDtBQUN0RCxNQUFNLG1CQUFtQjtBQUV6QixJQUFJLFVBQVU7QUFDZCxJQUFJLGVBQWUsYUFBYSxtQ0FBbUM7SUFDakUsTUFBTSxFQUFFLFNBQVMsY0FBYyxFQUFFLEdBQUcsV0FBVztRQUFzQyxnQkFBZ0I7O0lBQ3JHLFVBQVU7QUFDWjtBQUVBLFNBQVMsY0FBYyxNQUFLLEtBQUssR0FBRyxNQUFNO0lBQ3hDLE9BQU87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"],"names":["runtime_exports","__export","c","decorateClass","f","decorateFieldV1","g","decorateFieldV2","i","initializeDeferredDecorator","m","decorateMethodV1","n","decorateMethodV2","p","decoratePOJO","deferred","WeakMap","deferDecorator","proto","prop","desc","map","get","Map","set","findDeferredDecorator","target","cursor","prototype","decorators","initializer","configurable","enumerable","writable","decorator","Object","defineProperty","origDesc","getOwnPropertyDescriptor","value","call","constructor","reduce","accum","pojo","decorated","type","decoratePojoField","RequestCache","isAbortError","error","DOMException","name","watchStream","stream","state","reader","getReader","bytesLoaded","shouldForward","_stream","readable","locked","isForwarding","writer","getWriter","buffer","_isPending","_isStarted","_startTime","performance","now","done","read","byteLength","_bytesLoaded","_lastPacketTime","item","ready","write","length","push","close","cancel","endTime","_endTime","_isComplete","RequestLoadingState","_future","_triggered","_trigger","future","promise","getStream","sizeHint","_sizeHint","then","_isCancelled","_isErrored","_error","tracked","void 0","isPending","TransformStream","isStarted","startTime","lastPacketTime","isComplete","isCancelled","isErrored","elapsedTime","completedRatio","remainingRatio","duration","speed","abort","RequestState","isError","loadingState","getPromiseResult","request","result","response","isLoading","content","isSuccess","setPromiseResult","getRequestState","PromiseCache","PromiseState","LegacyPromiseProxy","Symbol","for","isLegacyAwaitable","getPromise","getPromiseState","_promise","and","x1","y1","Boolean","Throw","Component","owner1","args1","args","setComponentTemplate","precompileTemplate","strictMode","Await","scope","notNull","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","not","DEFAULT_DEADLINE","consume","service","moduleExists","contextConsume","importSync","isNeverString","val1","Request","unavailableStart","onlineChanged","backgroundChanged","_originalRequest","_originalQuery","installListeners","window","isOnline","navigator","onLine","Date","isHidden","document","visibilityState","event1","maybeUpdate","isHidden1","addEventListener","passive","capture","mode1","autorefresh","deadline1","autorefreshThreshold","shouldAttempt1","request1","assign","reqState","autorefreshBehavior","cacheOptions","reload","backgroundReload","wasStoreRequest1","EnableHydration","store","_latestRequest","requestManager","_localRequest","retry","refresh","isRefreshing","errorFeatures","cached","contentFeatures","feat1","latestRequest","willDestroy","removeEventListener","query","query1","_localRequest1","_originalRequest1","_originalQuery1","isOriginalRequest1","store1","_store"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/decorator-transforms@2.0.0_@babel+core@7.24.5/node_modules/decorator-transforms/dist/chunk-3SQBS3Y5.js","../src/-private/request-state.ts","../src/-private/promise-state.ts","../src/-private/await.gts","../src/-private/request.gts"],"sourcesContent":["import {\n __export\n} from \"./chunk-CSAU5B4Q.js\";\n\n// src/runtime.ts\nvar runtime_exports = {};\n__export(runtime_exports, {\n c: () => decorateClass,\n f: () => decorateFieldV1,\n g: () => decorateFieldV2,\n i: () => initializeDeferredDecorator,\n m: () => decorateMethodV1,\n n: () => decorateMethodV2,\n p: () => decoratePOJO\n});\nvar deferred = /* @__PURE__ */ new WeakMap();\nfunction deferDecorator(proto, prop, desc) {\n let map = deferred.get(proto);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n deferred.set(proto, map);\n }\n map.set(prop, desc);\n}\nfunction findDeferredDecorator(target, prop) {\n let cursor = target.prototype;\n while (cursor) {\n let desc = deferred.get(cursor)?.get(prop);\n if (desc) {\n return desc;\n }\n cursor = cursor.prototype;\n }\n}\nfunction decorateFieldV1(target, prop, decorators, initializer) {\n return decorateFieldV2(target.prototype, prop, decorators, initializer);\n}\nfunction decorateFieldV2(prototype, prop, decorators, initializer) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n };\n if (initializer) {\n desc.initializer = initializer;\n }\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer === void 0) {\n Object.defineProperty(prototype, prop, desc);\n } else {\n deferDecorator(prototype, prop, desc);\n }\n}\nfunction decorateMethodV1({ prototype }, prop, decorators) {\n return decorateMethodV2(prototype, prop, decorators);\n}\nfunction decorateMethodV2(prototype, prop, decorators) {\n const origDesc = Object.getOwnPropertyDescriptor(prototype, prop);\n let desc = { ...origDesc };\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(prototype) : void 0;\n desc.initializer = void 0;\n }\n Object.defineProperty(prototype, prop, desc);\n}\nfunction initializeDeferredDecorator(target, prop) {\n let desc = findDeferredDecorator(target.constructor, prop);\n if (desc) {\n Object.defineProperty(target, prop, {\n enumerable: desc.enumerable,\n configurable: desc.configurable,\n writable: desc.writable,\n value: desc.initializer ? desc.initializer.call(target) : void 0\n });\n }\n}\nfunction decorateClass(target, decorators) {\n return decorators.reduce(\n (accum, decorator) => decorator(accum) || accum,\n target\n );\n}\nfunction decoratePOJO(pojo, decorated) {\n for (let [type, prop, decorators] of decorated) {\n if (type === \"field\") {\n decoratePojoField(pojo, prop, decorators);\n } else {\n decorateMethodV2(pojo, prop, decorators);\n }\n }\n return pojo;\n}\nfunction decoratePojoField(pojo, prop, decorators) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: () => Object.getOwnPropertyDescriptor(pojo, prop)?.value\n };\n for (let decorator of decorators) {\n desc = decorator(pojo, prop, desc) || desc;\n }\n if (desc.initializer) {\n desc.value = desc.initializer.call(pojo);\n delete desc.initializer;\n }\n Object.defineProperty(pojo, prop, desc);\n}\n\nexport {\n decorateFieldV1,\n decorateFieldV2,\n decorateMethodV1,\n decorateMethodV2,\n initializeDeferredDecorator,\n decorateClass,\n decoratePOJO,\n runtime_exports\n};\n//# sourceMappingURL=chunk-3SQBS3Y5.js.map","import { tracked } from '@glimmer/tracking';\n\nimport type {\n Future,\n ImmutableRequestInfo,\n ResponseInfo,\n StructuredDocument,\n StructuredErrorDocument,\n} from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst RequestCache = new WeakMap<Future<unknown>, RequestState>();\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof DOMException && error.name === 'AbortError';\n}\n\nasync function watchStream(stream: ReadableStream<Uint8Array>, state: RequestLoadingState): Promise<void> {\n const reader = stream.getReader();\n let bytesLoaded = 0;\n let shouldForward = state._stream !== null && state._stream.readable.locked;\n let isForwarding = shouldForward;\n let writer = state._stream?.writable.getWriter();\n const buffer = [];\n\n state._isPending = false;\n state._isStarted = true;\n state._startTime = performance.now();\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n bytesLoaded += value.byteLength;\n state._bytesLoaded = bytesLoaded;\n state._lastPacketTime = performance.now();\n\n shouldForward = shouldForward || (state._stream !== null && state._stream.readable.locked);\n\n if (shouldForward) {\n if (!isForwarding) {\n isForwarding = true;\n writer = state._stream!.writable.getWriter();\n for (const item of buffer) {\n await writer.ready;\n await writer.write(item);\n }\n buffer.length = 0;\n }\n await writer!.ready;\n await writer!.write(value);\n } else {\n buffer.push(value);\n }\n }\n\n // if we are still forwarding, we need to close the writer\n if (isForwarding) {\n await writer!.ready;\n await writer!.close();\n } else if (state._stream) {\n // if we are not forwarding, we need to cancel the stream\n await state._stream.readable.cancel('The Stream Has Already Ended');\n state._stream = null;\n }\n\n const endTime = performance.now();\n state._endTime = endTime;\n state._isComplete = true;\n state._isStarted = false;\n}\n\nexport class RequestLoadingState {\n _stream: TransformStream | null = null;\n _future: Future<unknown>;\n _triggered = false;\n _trigger() {\n if (this._triggered) {\n return;\n }\n this._triggered = true;\n const future = this._future;\n const promise: Promise<ReadableStream<Uint8Array> | null> & { sizeHint?: number } = future.getStream();\n if (promise.sizeHint) {\n this._sizeHint = promise.sizeHint;\n }\n this.promise = promise.then(\n (stream) => {\n if (!stream) {\n this._isPending = false;\n this._isComplete = true;\n return;\n }\n return watchStream(stream, this);\n },\n (error: Error) => {\n this._isPending = false;\n this._isStarted = false;\n if (isAbortError(error)) {\n this._isCancelled = true;\n this._isComplete = true;\n }\n this._isErrored = true;\n this._error = error;\n }\n );\n }\n\n promise: Promise<void> | null = null;\n @tracked _sizeHint = 0;\n @tracked _bytesLoaded = 0;\n\n @tracked _startTime = 0;\n @tracked _endTime = 0;\n @tracked _lastPacketTime = 0;\n\n @tracked _isPending = true;\n @tracked _isStarted = false;\n @tracked _isComplete = false;\n @tracked _isCancelled = false;\n @tracked _isErrored = false;\n @tracked _error: Error | null = null;\n\n get isPending(): boolean {\n this._trigger();\n return this._isPending;\n }\n\n get sizeHint(): number {\n this._trigger();\n return this._sizeHint;\n }\n\n get stream(): ReadableStream | null {\n this._trigger();\n if (!this._stream) {\n if (this._isComplete || this._isCancelled || this._isErrored) {\n return null;\n }\n this._stream = new TransformStream();\n }\n return this._stream.readable;\n }\n\n get isStarted(): boolean {\n this._trigger();\n return this._isStarted;\n }\n\n get bytesLoaded(): number {\n this._trigger();\n return this._bytesLoaded;\n }\n\n get startTime(): number {\n this._trigger();\n return this._startTime;\n }\n\n get endTime(): number {\n this._trigger();\n return this._endTime;\n }\n\n get lastPacketTime(): number {\n this._trigger();\n return this._lastPacketTime;\n }\n\n get isComplete(): boolean {\n this._trigger();\n return this._isComplete;\n }\n\n get isCancelled(): boolean {\n this._trigger();\n return this._isCancelled;\n }\n\n get isErrored(): boolean {\n this._trigger();\n return this._isErrored;\n }\n\n get error(): Error | null {\n this._trigger();\n return this._error;\n }\n\n get elapsedTime(): number {\n return (this.endTime || this.lastPacketTime) - this.startTime;\n }\n\n get completedRatio(): number {\n return this.sizeHint ? this.bytesLoaded / this.sizeHint : 0;\n }\n\n get remainingRatio(): number {\n return 1 - this.completedRatio;\n }\n\n get duration(): number {\n return this.endTime - this.startTime;\n }\n\n get speed(): number {\n // bytes per second\n return this.bytesLoaded / (this.elapsedTime / 1000);\n }\n\n constructor(future: Future<unknown>) {\n this._future = future;\n }\n\n abort = (): void => {\n this._future.abort();\n };\n}\n\nexport class RequestState<T = unknown, RT = unknown> {\n #request: Future<RT>;\n #loadingState: RequestLoadingState | null = null;\n\n @tracked result: RT | null = null;\n @tracked error: StructuredErrorDocument | null = null;\n @tracked isLoading = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n @tracked request: ImmutableRequestInfo<T, RT> | null = null;\n @tracked response: Response | ResponseInfo | null = null;\n\n get isCancelled(): boolean {\n return this.isError && isAbortError(this.error);\n }\n\n get loadingState() {\n if (!this.#loadingState) {\n this.#loadingState = new RequestLoadingState(this.#request);\n }\n\n return this.#loadingState;\n }\n\n constructor(future: Future<RT>) {\n this.#request = future;\n const state = getPromiseResult<StructuredDocument<RT>, StructuredErrorDocument>(future);\n\n if (state) {\n this.request = state.result.request as ImmutableRequestInfo<T, RT>;\n this.response = state.result.response;\n this.isLoading = false;\n\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n } else {\n this.result = state.result.content!;\n this.isSuccess = true;\n }\n } else {\n void future.then(\n (result) => {\n setPromiseResult(future, { isError: false, result });\n this.result = result.content;\n this.isSuccess = true;\n this.isLoading = false;\n this.request = result.request as ImmutableRequestInfo<T, RT>;\n this.response = result.response;\n },\n (error: StructuredErrorDocument) => {\n setPromiseResult(future, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isLoading = false;\n this.request = error.request as ImmutableRequestInfo<T, RT>;\n this.response = error.response;\n }\n );\n }\n }\n}\n\nexport function getRequestState<RT, T>(future: Future<RT>): RequestState<T, RT> {\n let state = RequestCache.get(future) as RequestState<T, RT> | undefined;\n\n if (!state) {\n state = new RequestState(future);\n RequestCache.set(future, state);\n }\n\n return state;\n}\n","import { tracked } from '@glimmer/tracking';\n\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst PromiseCache = new WeakMap<Awaitable, PromiseState>();\n\nexport class PromiseState<T = unknown, E = unknown> {\n @tracked result: T | null = null;\n @tracked error: E | null = null;\n @tracked isPending = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n\n constructor(promise: Promise<T> | Awaitable<T, E>) {\n const state = getPromiseResult<T, E>(promise);\n\n if (state) {\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n this.isPending = false;\n } else {\n this.result = state.result;\n this.isSuccess = true;\n this.isPending = false;\n }\n } else {\n void promise.then(\n (result) => {\n setPromiseResult(promise, { isError: false, result });\n this.result = result;\n this.isSuccess = true;\n this.isPending = false;\n },\n (error: E) => {\n setPromiseResult(promise, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isPending = false;\n }\n );\n }\n }\n}\n\nconst LegacyPromiseProxy = Symbol.for('LegacyPromiseProxy');\ntype LegacyAwaitable<T, E> = { promise: Promise<T> | Awaitable<T, E>; [LegacyPromiseProxy]: true };\n\nfunction isLegacyAwaitable<T, E>(promise: object): promise is LegacyAwaitable<T, E> {\n return LegacyPromiseProxy in promise && 'promise' in promise && promise[LegacyPromiseProxy] === true;\n}\n\nfunction getPromise<T, E>(promise: Promise<T> | Awaitable<T, E> | LegacyAwaitable<T, E>): Promise<T> | Awaitable<T, E> {\n return isLegacyAwaitable(promise) ? promise.promise : promise;\n}\n\nexport function getPromiseState<T = unknown, E = unknown>(promise: Promise<T> | Awaitable<T, E>): PromiseState<T, E> {\n const _promise = getPromise(promise);\n let state = PromiseCache.get(_promise) as PromiseState<T, E> | undefined;\n\n if (!state) {\n state = new PromiseState(_promise);\n PromiseCache.set(_promise, state);\n }\n\n return state;\n}\n","import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseState } from './promise-state.ts';\nexport const and = (x1: unknown, y1: unknown)=>Boolean(x1 && y1);\ninterface ThrowSignature<E = Error | string | object> {\n Args: {\n error: E;\n };\n}\nexport class Throw<T> extends Component<ThrowSignature<T>> {\n constructor(owner1: unknown, args1: ThrowSignature<T>['Args']){\n super(owner1, args1);\n // this error is opaque (user supplied) so we don't validate it\n // as an Error instance.\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw this.args.error;\n }\n static{\n template(``, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\ninterface AwaitSignature<T, E = Error | string | object> {\n Args: {\n promise: Promise<T> | Awaitable<T, E>;\n };\n Blocks: {\n pending: [];\n error: [error: E];\n success: [value: T];\n };\n}\nexport class Await<T, E> extends Component<AwaitSignature<T, E>> {\n get state() {\n return getPromiseState<T, E>(this.args.promise);\n }\n get error() {\n return this.state.error as E;\n }\n get result() {\n return this.state.result as T;\n }\n static{\n template(`\n {{#if this.state.isPending}}\n {{yield to=\"pending\"}}\n {{else if (and this.state.isError (has-block \"error\"))}}\n {{yield this.error to=\"error\"}}\n {{else if this.state.isSuccess}}\n {{yield this.result to=\"success\"}}\n {{else}}\n <Throw @error={{this.error}} />\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RhdGEvZGF0YS9wYWNrYWdlcy9lbWJlci9zcmMvLXByaXZhdGUvYXdhaXQuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcblxuaW1wb3J0IHR5cGUgeyBBd2FpdGFibGUgfSBmcm9tICdAZW1iZXItZGF0YS9yZXF1ZXN0JztcblxuaW1wb3J0IHsgZ2V0UHJvbWlzZVN0YXRlIH0gZnJvbSAnLi9wcm9taXNlLXN0YXRlLnRzJztcblxuZXhwb3J0IGNvbnN0IGFuZCA9ICh4OiB1bmtub3duLCB5OiB1bmtub3duKSA9PiBCb29sZWFuKHggJiYgeSk7XG5pbnRlcmZhY2UgVGhyb3dTaWduYXR1cmU8RSA9IEVycm9yIHwgc3RyaW5nIHwgb2JqZWN0PiB7XG4gIEFyZ3M6IHtcbiAgICBlcnJvcjogRTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFRocm93PFQ-IGV4dGVuZHMgQ29tcG9uZW50PFRocm93U2lnbmF0dXJlPFQ-PiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBUaHJvd1NpZ25hdHVyZTxUPlsnQXJncyddKSB7XG4gICAgc3VwZXIob3duZXIsIGFyZ3MpO1xuICAgIC8vIHRoaXMgZXJyb3IgaXMgb3BhcXVlICh1c2VyIHN1cHBsaWVkKSBzbyB3ZSBkb24ndCB2YWxpZGF0ZSBpdFxuICAgIC8vIGFzIGFuIEVycm9yIGluc3RhbmNlLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhyb3ctbGl0ZXJhbFxuICAgIHRocm93IHRoaXMuYXJncy5lcnJvcjtcbiAgfVxuICA8dGVtcGxhdGU-PC90ZW1wbGF0ZT5cbn1cblxuaW50ZXJmYWNlIEF3YWl0U2lnbmF0dXJlPFQsIEUgPSBFcnJvciB8IHN0cmluZyB8IG9iamVjdD4ge1xuICBBcmdzOiB7XG4gICAgcHJvbWlzZTogUHJvbWlzZTxUPiB8IEF3YWl0YWJsZTxULCBFPjtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgcGVuZGluZzogW107XG4gICAgZXJyb3I6IFtlcnJvcjogRV07XG4gICAgc3VjY2VzczogW3ZhbHVlOiBUXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEF3YWl0PFQsIEU-IGV4dGVuZHMgQ29tcG9uZW50PEF3YWl0U2lnbmF0dXJlPFQsIEU-PiB7XG4gIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gZ2V0UHJvbWlzZVN0YXRlPFQsIEU-KHRoaXMuYXJncy5wcm9taXNlKTtcbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvciBhcyBFO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5yZXN1bHQgYXMgVDtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNpZiB0aGlzLnN0YXRlLmlzUGVuZGluZ319XG4gICAgICB7e3lpZWxkIHRvPVwicGVuZGluZ1wifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnN0YXRlLmlzRXJyb3IgKGhhcy1ibG9jayBcImVycm9yXCIpKX19XG4gICAgICB7e3lpZWxkIHRoaXMuZXJyb3IgdG89XCJlcnJvclwifX1cbiAgICB7e2Vsc2UgaWYgdGhpcy5zdGF0ZS5pc1N1Y2Nlc3N9fVxuICAgICAge3t5aWVsZCB0aGlzLnJlc3VsdCB0bz1cInN1Y2Nlc3NcIn19XG4gICAge3tlbHNlfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3t0aGlzLmVycm9yfX0gLz5cbiAgICB7ey9pZn19XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFFM0MsY0FBYyxTQUFTLFFBQVEsc0JBQXNCO0FBRXJELFNBQVMsZUFBZSxRQUFRLHFCQUFxQjtBQUVyRCxPQUFPLE1BQU0sTUFBTSxDQUFDLElBQUcsT0FBTyxFQUFFLElBQUcsT0FBTyxHQUFLLFFBQVEsTUFBSyxJQUFHO1VBQ3JELGVBQWUsSUFBSSxRQUFRLE1BQU0sR0FBRyxNQUFNO0lBQ2xEO1FBQ0UsT0FBTzs7O0FBSVgsT0FBTyxNQUFNLE1BQU0sV0FBVyxVQUFVLGVBQWU7SUFDckQsWUFBWSxRQUFPLE9BQU8sRUFBRSxPQUFNLGVBQWUsR0FBRyxPQUFPLENBQUU7UUFDM0QsS0FBSyxDQUFDLFFBQU87UUFDYiwrREFBK0Q7UUFDL0Qsd0JBQXdCO1FBQ3hCLCtEQUErRDtRQUMvRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztJQUN2QjtJQUNBLE1BQUE7UUFBQSxTQUFVLENBQUEsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBQVY7QUFDWjtVQUVVLGVBQWUsR0FBRyxJQUFJLFFBQVEsTUFBTSxHQUFHLE1BQU07SUFDckQ7UUFDRSxTQUFTLFFBQVEsS0FBSyxVQUFVLEdBQUc7O0lBRXJDO1FBQ0U7UUFDQSxRQUFRLE9BQU87UUFDZixVQUFVLE9BQU87OztBQUlyQixPQUFPLE1BQU0sTUFBTSxHQUFHLFdBQVcsVUFBVSxlQUFlLEdBQUc7SUFDM0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxnQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztJQUNoRDtJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUk7SUFDN0I7SUFFQSxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJO0lBQzlCO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7OztFQVVWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQVZBO0FBV1oifQ","import { template } from \"@ember/template-compiler\";\nimport { service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { importSync, macroCondition, moduleExists } from '@embroider/macros';\nimport type { Future, StructuredErrorDocument } from '@ember-data/request';\nimport type { StoreRequestInput } from '@ember-data/store';\nimport type Store from '@ember-data/store';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableDocumentIdentifier } from '@warp-drive/core-types/identifier.js';\nimport { EnableHydration, type RequestInfo } from '@warp-drive/core-types/request';\nimport { and, Throw } from './await.gts';\nimport type { RequestLoadingState, RequestState } from './request-state.ts';\nimport { getRequestState } from './request-state.ts';\nfunction notNull(x1: null): never;\nfunction notNull<T>(x1: T): Exclude<T, null>;\nfunction notNull<T>(x1: T | null) {\n assert('Expected a non-null value, but got null', x1 !== null);\n return x1;\n}\nconst not = (x1: unknown)=>!x1;\n// default to 30 seconds unavailable before we refresh\nconst DEFAULT_DEADLINE = 30_000;\nlet consume = service;\nif (macroCondition(moduleExists('ember-provide-consume-context'))) {\n const { consume: contextConsume } = importSync('ember-provide-consume-context') as {\n consume: typeof service;\n };\n consume = contextConsume;\n}\nfunction isNeverString(val1: never): string {\n return val1;\n}\ntype AutorefreshBehaviorType = 'online' | 'interval' | 'invalid';\ntype AutorefreshBehaviorCombos = true | AutorefreshBehaviorType | `${AutorefreshBehaviorType},${AutorefreshBehaviorType}` | `${AutorefreshBehaviorType},${AutorefreshBehaviorType},${AutorefreshBehaviorType}`;\ntype ContentFeatures<RT> = {\n isOnline: boolean;\n isHidden: boolean;\n isRefreshing: boolean;\n refresh: () => Promise<void>;\n reload: () => Promise<void>;\n abort?: () => void;\n latestRequest?: Future<RT>;\n};\ninterface RequestSignature<T, RT> {\n Args: {\n request?: Future<RT>;\n query?: StoreRequestInput<T, RT>;\n store?: Store;\n autorefresh?: AutorefreshBehaviorCombos;\n autorefreshThreshold?: number;\n autorefreshBehavior?: 'refresh' | 'reload' | 'policy';\n };\n Blocks: {\n loading: [state: RequestLoadingState];\n cancelled: [error: StructuredErrorDocument, features: {\n isOnline: boolean;\n isHidden: boolean;\n retry: () => Promise<void>;\n }];\n error: [error: StructuredErrorDocument, features: {\n isOnline: boolean;\n isHidden: boolean;\n retry: () => Promise<void>;\n }];\n content: [value: RT, features: ContentFeatures<RT>];\n always: [state: RequestState<T, RT>];\n };\n}\n/**\n * The `<Request>` component is a powerful tool for managing data fetching and\n * state in your Ember application. It provides declarative reactive control-flow\n * for managing requests and state in your application.\n *\n * @typedoc\n */ export class Request<T, RT> extends Component<RequestSignature<T, RT>> {\n /**\n * The store instance to use for making requests. If contexts are available, this\n * will be the `store` on the context, else it will be the store service.\n *\n * @internal\n */ @consume('store')\n _store: Store;\n /**\n * Whether the browser reports that the network is online.\n *\n * @internal\n */ @tracked\n isOnline = true;\n /**\n * Whether the browser reports that the tab is hidden.\n *\n * @internal\n */ @tracked\n isHidden = true;\n /**\n * Whether the component is currently refreshing the request.\n *\n * @internal\n */ @tracked\n isRefreshing = false;\n /**\n * The most recent blocking request that was made, typically\n * the result of a reload.\n *\n * This will never be the original request passed as an arg to\n * the component.\n *\n * @internal\n */ @tracked\n _localRequest: Future<RT> | undefined;\n /**\n * The most recent request that was made, typically due to either a\n * reload or a refresh.\n *\n * This will never be the original request passed as an arg to\n * the component.\n *\n * @internal\n */ @tracked\n _latestRequest: Future<RT> | undefined;\n /**\n * The time at which the network was reported as offline.\n *\n * @internal\n */ unavailableStart: number | null;\n intervalStart: number | null;\n nextInterval: number | null;\n invalidated: boolean;\n /**\n * The event listener for network status changes,\n * cached to use the reference for removal.\n *\n * @internal\n */ onlineChanged: (event: Event) => void;\n /**\n * The event listener for visibility status changes,\n * cached to use the reference for removal.\n *\n * @internal\n */ backgroundChanged: (event: Event) => void;\n /**\n * The last request passed as an arg to the component,\n * cached for comparison.\n *\n * @internal\n */ _originalRequest: Future<RT> | undefined;\n /**\n * The last query passed as an arg to the component,\n * cached for comparison.\n *\n * @internal\n */ _originalQuery: StoreRequestInput<T, RT> | undefined;\n _subscription: object | null;\n _subscribedTo: object | null;\n constructor(owner1: unknown, args1: RequestSignature<T, RT>['Args']){\n super(owner1, args1);\n this._subscribedTo = null;\n this._subscription = null;\n this.intervalStart = null;\n this.invalidated = false;\n this.nextInterval = null;\n this.installListeners();\n this.updateSubscriptions();\n void this.scheduleInterval();\n }\n @cached\n get autorefreshTypes(): Set<AutorefreshBehaviorType> {\n const { autorefresh: autorefresh1 } = this.args;\n let types1: AutorefreshBehaviorType[];\n if (autorefresh1 === true) {\n types1 = [\n 'online',\n 'invalid'\n ];\n } else if (typeof autorefresh1 === 'string') {\n types1 = autorefresh1.split(',') as AutorefreshBehaviorType[];\n } else {\n types1 = [];\n }\n return new Set(types1);\n }\n // we only run this function on component creation\n // and when an update is triggered, so it does not\n // react to changes in the autorefreshThreshold\n // or autorefresh args.\n //\n // if we need to react to those changes, we can\n // use a modifier or internal component or some\n // such to trigger a re-run of this function.\n async scheduleInterval() {\n const { autorefreshThreshold: autorefreshThreshold1 } = this.args;\n const hasValidThreshold1 = typeof autorefreshThreshold1 === 'number' && autorefreshThreshold1 > 0;\n if (// dont schedule in SSR\n typeof window === 'undefined' || // dont schedule without a threshold\n !hasValidThreshold1 || // dont schedule if we weren't told to\n !this.autorefreshTypes.has('interval') || // dont schedule if we're already scheduled\n this.intervalStart !== null) {\n return;\n }\n // if we have a current request, wait for it to finish\n // before scheduling the next one\n if (this._latestRequest) {\n try {\n await this._latestRequest;\n } catch {\n // ignore errors here, we just want to wait for the request to finish\n }\n if (this.isDestroyed) {\n return;\n }\n }\n // setup the next interval\n this.intervalStart = Date.now();\n this.nextInterval = setTimeout(()=>{\n this.maybeUpdate();\n }, autorefreshThreshold1);\n }\n clearInterval() {\n if (this.nextInterval) {\n clearTimeout(this.nextInterval);\n this.intervalStart = null;\n }\n }\n updateSubscriptions() {\n const requestId1 = this.request.lid;\n // if we're already subscribed to this request, we don't need to do anything\n if (this._subscribedTo === requestId1) {\n return;\n }\n // if we're subscribed to a different request, we need to unsubscribe\n this.removeSubscriptions();\n // if we have a request, we need to subscribe to it\n if (requestId1) {\n this._subscription = this.store.notifications.subscribe(requestId1, (_id1: StableDocumentIdentifier, op1: 'invalidated' | 'state' | 'added' | 'updated' | 'removed')=>{\n switch(op1){\n case 'invalidated':\n {\n // if we're subscribed to invalidations, we need to update\n if (this.autorefreshTypes.has('invalid')) {\n this.invalidated = true;\n this.maybeUpdate();\n }\n break;\n }\n case 'state':\n {\n const latest1 = this.store.requestManager._deduped.get(requestId1);\n const priority1 = latest1?.priority;\n if (!priority1) {\n this.isRefreshing = false;\n } else if (priority1.blocking) {\n // TODO should we just treat this as refreshing?\n this.isRefreshing = false;\n this.maybeUpdate('policy', true);\n } else {\n this.isRefreshing = true;\n }\n }\n }\n });\n }\n }\n removeSubscriptions() {\n if (this._subscription) {\n this.store.notifications.unsubscribe(this._subscription);\n this._subscribedTo = null;\n this._subscription = null;\n }\n }\n /**\n * Install the event listeners for network and visibility changes.\n * This is only done in browser environments with a global `window`.\n *\n * @internal\n */ installListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n this.isOnline = window.navigator.onLine;\n this.unavailableStart = this.isOnline ? null : Date.now();\n this.isHidden = document.visibilityState === 'hidden';\n this.onlineChanged = (event1: Event)=>{\n this.isOnline = event1.type === 'online';\n if (event1.type === 'offline' && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n this.maybeUpdate();\n };\n this.backgroundChanged = ()=>{\n const isHidden1 = document.visibilityState === 'hidden';\n this.isHidden = isHidden1;\n if (isHidden1 && this.unavailableStart === null) {\n this.unavailableStart = Date.now();\n }\n this.maybeUpdate();\n };\n window.addEventListener('online', this.onlineChanged, {\n passive: true,\n capture: true\n });\n window.addEventListener('offline', this.onlineChanged, {\n passive: true,\n capture: true\n });\n document.addEventListener('visibilitychange', this.backgroundChanged, {\n passive: true,\n capture: true\n });\n }\n /**\n * If the network is online and the tab is visible, either reload or refresh the request\n * based on the component's configuration and the requested update mode.\n *\n * Valid modes are:\n *\n * - `'reload'`: Force a reload of the request.\n * - `'refresh'`: Refresh the request in the background.\n * - `'policy'`: Make the request, letting the store's configured CachePolicy decide whether to reload, refresh, or do nothing.\n * - `undefined`: Make the request using the component's autorefreshBehavior setting if the autorefreshThreshold has passed.\n *\n * @internal\n */ maybeUpdate(mode1?: 'reload' | 'refresh' | 'policy' | 'invalidated', silent1?: boolean): void {\n const canAttempt1 = Boolean(this.isOnline && !this.isHidden && (mode1 || this.autorefreshTypes.size));\n if (!canAttempt1) {\n if (!silent1 && mode1 && mode1 !== 'invalidated') {\n throw new Error(`Reload not available: the network is not online or the tab is hidden`);\n }\n return;\n }\n const { autorefreshTypes: autorefreshTypes1 } = this;\n let shouldAttempt1 = this.invalidated || Boolean(mode1);\n if (!shouldAttempt1 && autorefreshTypes1.has('online')) {\n const { unavailableStart: unavailableStart1 } = this;\n const { autorefreshThreshold: autorefreshThreshold1 } = this.args;\n const deadline1 = typeof autorefreshThreshold1 === 'number' ? autorefreshThreshold1 : DEFAULT_DEADLINE;\n shouldAttempt1 = Boolean(unavailableStart1 && Date.now() - unavailableStart1 > deadline1);\n }\n if (!shouldAttempt1 && autorefreshTypes1.has('interval')) {\n const { intervalStart: intervalStart1 } = this;\n const { autorefreshThreshold: autorefreshThreshold1 } = this.args;\n if (intervalStart1 && typeof autorefreshThreshold1 === 'number' && autorefreshThreshold1 > 0) {\n shouldAttempt1 = Boolean(Date.now() - intervalStart1 > autorefreshThreshold1);\n }\n }\n this.unavailableStart = null;\n this.invalidated = false;\n if (shouldAttempt1) {\n this.clearInterval();\n const request1 = Object.assign({}, this.reqState.request as unknown as RequestInfo<T, RT>);\n const realMode1 = mode1 === 'invalidated' ? null : mode1;\n const val1 = realMode1 ?? this.args.autorefreshBehavior ?? 'policy';\n switch(val1){\n case 'reload':\n request1.cacheOptions = Object.assign({}, request1.cacheOptions, {\n reload: true\n });\n break;\n case 'refresh':\n request1.cacheOptions = Object.assign({}, request1.cacheOptions, {\n backgroundReload: true\n });\n break;\n case 'policy':\n break;\n default:\n throw new Error(`Invalid ${mode1 ? 'update mode' : '@autorefreshBehavior'} for <Request />: ${isNeverString(val1)}`);\n }\n const wasStoreRequest1 = (request1 as {\n [EnableHydration]: boolean;\n })[EnableHydration] === true;\n assert(`Cannot supply a different store via context than was used to create the request`, !request1.store || request1.store === this.store);\n this._latestRequest = wasStoreRequest1 ? this.store.request(request1) : this.store.requestManager.request(request1);\n if (val1 !== 'refresh') {\n this._localRequest = this._latestRequest;\n }\n void this.scheduleInterval();\n }\n }\n /**\n * Retry the request, reloading it from the server.\n *\n * @internal\n */ retry = async ()=>{\n this.maybeUpdate('reload');\n await this._localRequest;\n };\n /**\n * Refresh the request, updating it in the background.\n *\n * @internal\n */ refresh = async ()=>{\n this.maybeUpdate('refresh');\n await this._latestRequest;\n };\n @cached\n get errorFeatures() {\n return {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n retry: this.retry\n };\n }\n @cached\n get contentFeatures() {\n const feat1: ContentFeatures<RT> = {\n isHidden: this.isHidden,\n isOnline: this.isOnline,\n reload: this.retry,\n refresh: this.refresh,\n isRefreshing: this.isRefreshing,\n latestRequest: this._latestRequest\n };\n if (feat1.isRefreshing) {\n feat1.abort = ()=>{\n this._latestRequest?.abort();\n };\n }\n return feat1;\n }\n willDestroy() {\n this.removeSubscriptions();\n if (typeof window === 'undefined') {\n return;\n }\n this.clearInterval();\n window.removeEventListener('online', this.onlineChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n window.removeEventListener('offline', this.onlineChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n document.removeEventListener('visibilitychange', this.backgroundChanged, {\n passive: true,\n capture: true\n } as unknown as boolean);\n }\n @cached\n get request(): Future<RT> {\n const { request: request1, query: query1 } = this.args;\n assert(`Cannot use both @request and @query args with the <Request> component`, !request1 || !query1);\n const { _localRequest: _localRequest1, _originalRequest: _originalRequest1, _originalQuery: _originalQuery1 } = this;\n const isOriginalRequest1 = request1 === _originalRequest1 && query1 === _originalQuery1;\n if (_localRequest1 && isOriginalRequest1) {\n return _localRequest1;\n }\n // update state checks for the next time\n this._originalQuery = query1;\n this._originalRequest = request1;\n if (request1) {\n return request1;\n }\n assert(`You must provide either @request or an @query arg with the <Request> component`, query1);\n return this.store.request<RT, T>(query1);\n }\n get store(): Store {\n const store1 = this.args.store || this._store;\n assert(moduleExists('ember-provide-consume-context') ? `No store was provided to the <Request> component. Either provide a store via the @store arg or via the context API provided by ember-provide-consume-context.` : `No store was provided to the <Request> component. Either provide a store via the @store arg or by registering a store service.`, store1);\n return store1;\n }\n get reqState() {\n return getRequestState<RT, T>(this.request);\n }\n get result() {\n return this.reqState.result as RT;\n }\n static{\n template(`\n {{#if this.reqState.isLoading}}\n {{yield this.reqState.loadingState to=\"loading\"}}\n {{else if (and this.reqState.isCancelled (has-block \"cancelled\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"cancelled\"}}\n {{else if (and this.reqState.isError (has-block \"error\"))}}\n {{yield (notNull this.reqState.error) this.errorFeatures to=\"error\"}}\n {{else if this.reqState.isSuccess}}\n {{yield this.result this.contentFeatures to=\"content\"}}\n {{else if (not this.reqState.isCancelled)}}\n <Throw @error={{(notNull this.reqState.error)}} />\n {{/if}}\n {{yield this.reqState to=\"always\"}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RhdGEvZGF0YS9wYWNrYWdlcy9lbWJlci9zcmMvLXByaXZhdGUvcmVxdWVzdC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VydmljZSB9IGZyb20gJ0BlbWJlci9zZXJ2aWNlJztcbmltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGNhY2hlZCwgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuaW1wb3J0IHsgaW1wb3J0U3luYywgbWFjcm9Db25kaXRpb24sIG1vZHVsZUV4aXN0cyB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHR5cGUgeyBGdXR1cmUsIFN0cnVjdHVyZWRFcnJvckRvY3VtZW50IH0gZnJvbSAnQGVtYmVyLWRhdGEvcmVxdWVzdCc7XG5pbXBvcnQgdHlwZSB7IFN0b3JlUmVxdWVzdElucHV0IH0gZnJvbSAnQGVtYmVyLWRhdGEvc3RvcmUnO1xuaW1wb3J0IHR5cGUgU3RvcmUgZnJvbSAnQGVtYmVyLWRhdGEvc3RvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQHdhcnAtZHJpdmUvYnVpbGQtY29uZmlnL21hY3Jvcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWJsZURvY3VtZW50SWRlbnRpZmllciB9IGZyb20gJ0B3YXJwLWRyaXZlL2NvcmUtdHlwZXMvaWRlbnRpZmllci5qcyc7XG5pbXBvcnQgeyBFbmFibGVIeWRyYXRpb24sIHR5cGUgUmVxdWVzdEluZm8gfSBmcm9tICdAd2FycC1kcml2ZS9jb3JlLXR5cGVzL3JlcXVlc3QnO1xuXG5pbXBvcnQgeyBhbmQsIFRocm93IH0gZnJvbSAnLi9hd2FpdC5ndHMnO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0TG9hZGluZ1N0YXRlLCBSZXF1ZXN0U3RhdGUgfSBmcm9tICcuL3JlcXVlc3Qtc3RhdGUudHMnO1xuaW1wb3J0IHsgZ2V0UmVxdWVzdFN0YXRlIH0gZnJvbSAnLi9yZXF1ZXN0LXN0YXRlLnRzJztcblxuZnVuY3Rpb24gbm90TnVsbCh4OiBudWxsKTogbmV2ZXI7XG5mdW5jdGlvbiBub3ROdWxsPFQ-KHg6IFQpOiBFeGNsdWRlPFQsIG51bGw-O1xuZnVuY3Rpb24gbm90TnVsbDxUPih4OiBUIHwgbnVsbCkge1xuICBhc3NlcnQoJ0V4cGVjdGVkIGEgbm9uLW51bGwgdmFsdWUsIGJ1dCBnb3QgbnVsbCcsIHggIT09IG51bGwpO1xuICByZXR1cm4geDtcbn1cblxuY29uc3Qgbm90ID0gKHg6IHVua25vd24pID0-ICF4O1xuLy8gZGVmYXVsdCB0byAzMCBzZWNvbmRzIHVuYXZhaWxhYmxlIGJlZm9yZSB3ZSByZWZyZXNoXG5jb25zdCBERUZBVUxUX0RFQURMSU5FID0gMzBfMDAwO1xuXG5sZXQgY29uc3VtZSA9IHNlcnZpY2U7XG5pZiAobWFjcm9Db25kaXRpb24obW9kdWxlRXhpc3RzKCdlbWJlci1wcm92aWRlLWNvbnN1bWUtY29udGV4dCcpKSkge1xuICBjb25zdCB7IGNvbnN1bWU6IGNvbnRleHRDb25zdW1lIH0gPSBpbXBvcnRTeW5jKCdlbWJlci1wcm92aWRlLWNvbnN1bWUtY29udGV4dCcpIGFzIHsgY29uc3VtZTogdHlwZW9mIHNlcnZpY2UgfTtcbiAgY29uc3VtZSA9IGNvbnRleHRDb25zdW1lO1xufVxuXG5mdW5jdGlvbiBpc05ldmVyU3RyaW5nKHZhbDogbmV2ZXIpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsO1xufVxuXG50eXBlIEF1dG9yZWZyZXNoQmVoYXZpb3JUeXBlID0gJ29ubGluZScgfCAnaW50ZXJ2YWwnIHwgJ2ludmFsaWQnO1xudHlwZSBBdXRvcmVmcmVzaEJlaGF2aW9yQ29tYm9zID1cbiAgfCB0cnVlXG4gIHwgQXV0b3JlZnJlc2hCZWhhdmlvclR5cGVcbiAgfCBgJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX0sJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX1gXG4gIHwgYCR7QXV0b3JlZnJlc2hCZWhhdmlvclR5cGV9LCR7QXV0b3JlZnJlc2hCZWhhdmlvclR5cGV9LCR7QXV0b3JlZnJlc2hCZWhhdmlvclR5cGV9YDtcblxudHlwZSBDb250ZW50RmVhdHVyZXM8UlQ-ID0ge1xuICBpc09ubGluZTogYm9vbGVhbjtcbiAgaXNIaWRkZW46IGJvb2xlYW47XG4gIGlzUmVmcmVzaGluZzogYm9vbGVhbjtcbiAgcmVmcmVzaDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVsb2FkOiAoKSA9PiBQcm9taXNlPHZvaWQ-O1xuICBhYm9ydD86ICgpID0-IHZvaWQ7XG4gIGxhdGVzdFJlcXVlc3Q_OiBGdXR1cmU8UlQ-O1xufTtcblxuaW50ZXJmYWNlIFJlcXVlc3RTaWduYXR1cmU8VCwgUlQ-IHtcbiAgQXJnczoge1xuICAgIHJlcXVlc3Q_OiBGdXR1cmU8UlQ-O1xuICAgIHF1ZXJ5PzogU3RvcmVSZXF1ZXN0SW5wdXQ8VCwgUlQ-O1xuICAgIHN0b3JlPzogU3RvcmU7XG4gICAgYXV0b3JlZnJlc2g_OiBBdXRvcmVmcmVzaEJlaGF2aW9yQ29tYm9zO1xuICAgIGF1dG9yZWZyZXNoVGhyZXNob2xkPzogbnVtYmVyO1xuICAgIGF1dG9yZWZyZXNoQmVoYXZpb3I_OiAncmVmcmVzaCcgfCAncmVsb2FkJyB8ICdwb2xpY3knO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBsb2FkaW5nOiBbc3RhdGU6IFJlcXVlc3RMb2FkaW5nU3RhdGVdO1xuICAgIGNhbmNlbGxlZDogW1xuICAgICAgZXJyb3I6IFN0cnVjdHVyZWRFcnJvckRvY3VtZW50LFxuICAgICAgZmVhdHVyZXM6IHsgaXNPbmxpbmU6IGJvb2xlYW47IGlzSGlkZGVuOiBib29sZWFuOyByZXRyeTogKCkgPT4gUHJvbWlzZTx2b2lkPiB9LFxuICAgIF07XG4gICAgZXJyb3I6IFtcbiAgICAgIGVycm9yOiBTdHJ1Y3R1cmVkRXJyb3JEb2N1bWVudCxcbiAgICAgIGZlYXR1cmVzOiB7IGlzT25saW5lOiBib29sZWFuOyBpc0hpZGRlbjogYm9vbGVhbjsgcmV0cnk6ICgpID0-IFByb21pc2U8dm9pZD4gfSxcbiAgICBdO1xuICAgIGNvbnRlbnQ6IFt2YWx1ZTogUlQsIGZlYXR1cmVzOiBDb250ZW50RmVhdHVyZXM8UlQ-XTtcbiAgICBhbHdheXM6IFtzdGF0ZTogUmVxdWVzdFN0YXRlPFQsIFJUPl07XG4gIH07XG59XG5cbi8qKlxuICogVGhlIGA8UmVxdWVzdD5gIGNvbXBvbmVudCBpcyBhIHBvd2VyZnVsIHRvb2wgZm9yIG1hbmFnaW5nIGRhdGEgZmV0Y2hpbmcgYW5kXG4gKiBzdGF0ZSBpbiB5b3VyIEVtYmVyIGFwcGxpY2F0aW9uLiBJdCBwcm92aWRlcyBkZWNsYXJhdGl2ZSByZWFjdGl2ZSBjb250cm9sLWZsb3dcbiAqIGZvciBtYW5hZ2luZyByZXF1ZXN0cyBhbmQgc3RhdGUgaW4geW91ciBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAdHlwZWRvY1xuICovXG5leHBvcnQgY2xhc3MgUmVxdWVzdDxULCBSVD4gZXh0ZW5kcyBDb21wb25lbnQ8UmVxdWVzdFNpZ25hdHVyZTxULCBSVD4-IHtcbiAgLyoqXG4gICAqIFRoZSBzdG9yZSBpbnN0YW5jZSB0byB1c2UgZm9yIG1ha2luZyByZXF1ZXN0cy4gSWYgY29udGV4dHMgYXJlIGF2YWlsYWJsZSwgdGhpc1xuICAgKiB3aWxsIGJlIHRoZSBgc3RvcmVgIG9uIHRoZSBjb250ZXh0LCBlbHNlIGl0IHdpbGwgYmUgdGhlIHN0b3JlIHNlcnZpY2UuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQGNvbnN1bWUoJ3N0b3JlJykgZGVjbGFyZSBfc3RvcmU6IFN0b3JlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBicm93c2VyIHJlcG9ydHMgdGhhdCB0aGUgbmV0d29yayBpcyBvbmxpbmUuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQHRyYWNrZWQgaXNPbmxpbmUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBicm93c2VyIHJlcG9ydHMgdGhhdCB0aGUgdGFiIGlzIGhpZGRlbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAdHJhY2tlZCBpc0hpZGRlbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBjdXJyZW50bHkgcmVmcmVzaGluZyB0aGUgcmVxdWVzdC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAdHJhY2tlZCBpc1JlZnJlc2hpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IGJsb2NraW5nIHJlcXVlc3QgdGhhdCB3YXMgbWFkZSwgdHlwaWNhbGx5XG4gICAqIHRoZSByZXN1bHQgb2YgYSByZWxvYWQuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBuZXZlciBiZSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBwYXNzZWQgYXMgYW4gYXJnIHRvXG4gICAqIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQHRyYWNrZWQgX2xvY2FsUmVxdWVzdDogRnV0dXJlPFJUPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IHJlcXVlc3QgdGhhdCB3YXMgbWFkZSwgdHlwaWNhbGx5IGR1ZSB0byBlaXRoZXIgYVxuICAgKiByZWxvYWQgb3IgYSByZWZyZXNoLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbmV2ZXIgYmUgdGhlIG9yaWdpbmFsIHJlcXVlc3QgcGFzc2VkIGFzIGFuIGFyZyB0b1xuICAgKiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEB0cmFja2VkIF9sYXRlc3RSZXF1ZXN0OiBGdXR1cmU8UlQ-IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgbmV0d29yayB3YXMgcmVwb3J0ZWQgYXMgb2ZmbGluZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBkZWNsYXJlIHVuYXZhaWxhYmxlU3RhcnQ6IG51bWJlciB8IG51bGw7XG4gIGRlY2xhcmUgaW50ZXJ2YWxTdGFydDogbnVtYmVyIHwgbnVsbDtcbiAgZGVjbGFyZSBuZXh0SW50ZXJ2YWw6IG51bWJlciB8IG51bGw7XG4gIGRlY2xhcmUgaW52YWxpZGF0ZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBldmVudCBsaXN0ZW5lciBmb3IgbmV0d29yayBzdGF0dXMgY2hhbmdlcyxcbiAgICogY2FjaGVkIHRvIHVzZSB0aGUgcmVmZXJlbmNlIGZvciByZW1vdmFsLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRlY2xhcmUgb25saW5lQ2hhbmdlZDogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IGxpc3RlbmVyIGZvciB2aXNpYmlsaXR5IHN0YXR1cyBjaGFuZ2VzLFxuICAgKiBjYWNoZWQgdG8gdXNlIHRoZSByZWZlcmVuY2UgZm9yIHJlbW92YWwuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGVjbGFyZSBiYWNrZ3JvdW5kQ2hhbmdlZDogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlIGxhc3QgcmVxdWVzdCBwYXNzZWQgYXMgYW4gYXJnIHRvIHRoZSBjb21wb25lbnQsXG4gICAqIGNhY2hlZCBmb3IgY29tcGFyaXNvbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBkZWNsYXJlIF9vcmlnaW5hbFJlcXVlc3Q6IEZ1dHVyZTxSVD4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXN0IHF1ZXJ5IHBhc3NlZCBhcyBhbiBhcmcgdG8gdGhlIGNvbXBvbmVudCxcbiAgICogY2FjaGVkIGZvciBjb21wYXJpc29uLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRlY2xhcmUgX29yaWdpbmFsUXVlcnk6IFN0b3JlUmVxdWVzdElucHV0PFQsIFJUPiB8IHVuZGVmaW5lZDtcblxuICBkZWNsYXJlIF9zdWJzY3JpcHRpb246IG9iamVjdCB8IG51bGw7XG4gIGRlY2xhcmUgX3N1YnNjcmliZWRUbzogb2JqZWN0IHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihvd25lcjogdW5rbm93biwgYXJnczogUmVxdWVzdFNpZ25hdHVyZTxULCBSVD5bJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcbiAgICB0aGlzLl9zdWJzY3JpYmVkVG8gPSBudWxsO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy5pbnRlcnZhbFN0YXJ0ID0gbnVsbDtcbiAgICB0aGlzLmludmFsaWRhdGVkID0gZmFsc2U7XG4gICAgdGhpcy5uZXh0SW50ZXJ2YWwgPSBudWxsO1xuXG4gICAgdGhpcy5pbnN0YWxsTGlzdGVuZXJzKCk7XG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb25zKCk7XG4gICAgdm9pZCB0aGlzLnNjaGVkdWxlSW50ZXJ2YWwoKTtcbiAgfVxuXG4gIEBjYWNoZWRcbiAgZ2V0IGF1dG9yZWZyZXNoVHlwZXMoKTogU2V0PEF1dG9yZWZyZXNoQmVoYXZpb3JUeXBlPiB7XG4gICAgY29uc3QgeyBhdXRvcmVmcmVzaCB9ID0gdGhpcy5hcmdzO1xuICAgIGxldCB0eXBlczogQXV0b3JlZnJlc2hCZWhhdmlvclR5cGVbXTtcblxuICAgIGlmIChhdXRvcmVmcmVzaCA9PT0gdHJ1ZSkge1xuICAgICAgdHlwZXMgPSBbJ29ubGluZScsICdpbnZhbGlkJ107XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYXV0b3JlZnJlc2ggPT09ICdzdHJpbmcnKSB7XG4gICAgICB0eXBlcyA9IGF1dG9yZWZyZXNoLnNwbGl0KCcsJykgYXMgQXV0b3JlZnJlc2hCZWhhdmlvclR5cGVbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZXMgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFNldCh0eXBlcyk7XG4gIH1cblxuICAvLyB3ZSBvbmx5IHJ1biB0aGlzIGZ1bmN0aW9uIG9uIGNvbXBvbmVudCBjcmVhdGlvblxuICAvLyBhbmQgd2hlbiBhbiB1cGRhdGUgaXMgdHJpZ2dlcmVkLCBzbyBpdCBkb2VzIG5vdFxuICAvLyByZWFjdCB0byBjaGFuZ2VzIGluIHRoZSBhdXRvcmVmcmVzaFRocmVzaG9sZFxuICAvLyBvciBhdXRvcmVmcmVzaCBhcmdzLlxuICAvL1xuICAvLyBpZiB3ZSBuZWVkIHRvIHJlYWN0IHRvIHRob3NlIGNoYW5nZXMsIHdlIGNhblxuICAvLyB1c2UgYSBtb2RpZmllciBvciBpbnRlcm5hbCBjb21wb25lbnQgb3Igc29tZVxuICAvLyBzdWNoIHRvIHRyaWdnZXIgYSByZS1ydW4gb2YgdGhpcyBmdW5jdGlvbi5cbiAgYXN5bmMgc2NoZWR1bGVJbnRlcnZhbCgpIHtcbiAgICBjb25zdCB7IGF1dG9yZWZyZXNoVGhyZXNob2xkIH0gPSB0aGlzLmFyZ3M7XG4gICAgY29uc3QgaGFzVmFsaWRUaHJlc2hvbGQgPSB0eXBlb2YgYXV0b3JlZnJlc2hUaHJlc2hvbGQgPT09ICdudW1iZXInICYmIGF1dG9yZWZyZXNoVGhyZXNob2xkID4gMDtcbiAgICBpZiAoXG4gICAgICAvLyBkb250IHNjaGVkdWxlIGluIFNTUlxuICAgICAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIC8vIGRvbnQgc2NoZWR1bGUgd2l0aG91dCBhIHRocmVzaG9sZFxuICAgICAgIWhhc1ZhbGlkVGhyZXNob2xkIHx8XG4gICAgICAvLyBkb250IHNjaGVkdWxlIGlmIHdlIHdlcmVuJ3QgdG9sZCB0b1xuICAgICAgIXRoaXMuYXV0b3JlZnJlc2hUeXBlcy5oYXMoJ2ludGVydmFsJykgfHxcbiAgICAgIC8vIGRvbnQgc2NoZWR1bGUgaWYgd2UncmUgYWxyZWFkeSBzY2hlZHVsZWRcbiAgICAgIHRoaXMuaW50ZXJ2YWxTdGFydCAhPT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhdmUgYSBjdXJyZW50IHJlcXVlc3QsIHdhaXQgZm9yIGl0IHRvIGZpbmlzaFxuICAgIC8vIGJlZm9yZSBzY2hlZHVsaW5nIHRoZSBuZXh0IG9uZVxuICAgIGlmICh0aGlzLl9sYXRlc3RSZXF1ZXN0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9sYXRlc3RSZXF1ZXN0O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIGlnbm9yZSBlcnJvcnMgaGVyZSwgd2UganVzdCB3YW50IHRvIHdhaXQgZm9yIHRoZSByZXF1ZXN0IHRvIGZpbmlzaFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2V0dXAgdGhlIG5leHQgaW50ZXJ2YWxcbiAgICB0aGlzLmludGVydmFsU3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMubmV4dEludGVydmFsID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1heWJlVXBkYXRlKCk7XG4gICAgfSwgYXV0b3JlZnJlc2hUaHJlc2hvbGQpO1xuICB9XG5cbiAgY2xlYXJJbnRlcnZhbCgpIHtcbiAgICBpZiAodGhpcy5uZXh0SW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm5leHRJbnRlcnZhbCk7XG4gICAgICB0aGlzLmludGVydmFsU3RhcnQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgY29uc3QgcmVxdWVzdElkID0gdGhpcy5yZXF1ZXN0LmxpZDtcblxuICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgc3Vic2NyaWJlZCB0byB0aGlzIHJlcXVlc3QsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICBpZiAodGhpcy5fc3Vic2NyaWJlZFRvID09PSByZXF1ZXN0SWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSdyZSBzdWJzY3JpYmVkIHRvIGEgZGlmZmVyZW50IHJlcXVlc3QsIHdlIG5lZWQgdG8gdW5zdWJzY3JpYmVcbiAgICB0aGlzLnJlbW92ZVN1YnNjcmlwdGlvbnMoKTtcblxuICAgIC8vIGlmIHdlIGhhdmUgYSByZXF1ZXN0LCB3ZSBuZWVkIHRvIHN1YnNjcmliZSB0byBpdFxuICAgIGlmIChyZXF1ZXN0SWQpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmUubm90aWZpY2F0aW9ucy5zdWJzY3JpYmUoXG4gICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgKF9pZDogU3RhYmxlRG9jdW1lbnRJZGVudGlmaWVyLCBvcDogJ2ludmFsaWRhdGVkJyB8ICdzdGF0ZScgfCAnYWRkZWQnIHwgJ3VwZGF0ZWQnIHwgJ3JlbW92ZWQnKSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChvcCkge1xuICAgICAgICAgICAgY2FzZSAnaW52YWxpZGF0ZWQnOiB7XG4gICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIHN1YnNjcmliZWQgdG8gaW52YWxpZGF0aW9ucywgd2UgbmVlZCB0byB1cGRhdGVcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b3JlZnJlc2hUeXBlcy5oYXMoJ2ludmFsaWQnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVVcGRhdGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3N0YXRlJzoge1xuICAgICAgICAgICAgICBjb25zdCBsYXRlc3QgPSB0aGlzLnN0b3JlLnJlcXVlc3RNYW5hZ2VyLl9kZWR1cGVkLmdldChyZXF1ZXN0SWQpO1xuICAgICAgICAgICAgICBjb25zdCBwcmlvcml0eSA9IGxhdGVzdD8ucHJpb3JpdHk7XG4gICAgICAgICAgICAgIGlmICghcHJpb3JpdHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByaW9yaXR5LmJsb2NraW5nKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETyBzaG91bGQgd2UganVzdCB0cmVhdCB0aGlzIGFzIHJlZnJlc2hpbmc_XG4gICAgICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLm1heWJlVXBkYXRlKCdwb2xpY3knLCB0cnVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlU3Vic2NyaXB0aW9ucygpIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN0b3JlLm5vdGlmaWNhdGlvbnMudW5zdWJzY3JpYmUodGhpcy5fc3Vic2NyaXB0aW9uKTtcbiAgICAgIHRoaXMuX3N1YnNjcmliZWRUbyA9IG51bGw7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnN0YWxsIHRoZSBldmVudCBsaXN0ZW5lcnMgZm9yIG5ldHdvcmsgYW5kIHZpc2liaWxpdHkgY2hhbmdlcy5cbiAgICogVGhpcyBpcyBvbmx5IGRvbmUgaW4gYnJvd3NlciBlbnZpcm9ubWVudHMgd2l0aCBhIGdsb2JhbCBgd2luZG93YC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBpbnN0YWxsTGlzdGVuZXJzKCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNPbmxpbmUgPSB3aW5kb3cubmF2aWdhdG9yLm9uTGluZTtcbiAgICB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPSB0aGlzLmlzT25saW5lID8gbnVsbCA6IERhdGUubm93KCk7XG4gICAgdGhpcy5pc0hpZGRlbiA9IGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gJ2hpZGRlbic7XG5cbiAgICB0aGlzLm9ubGluZUNoYW5nZWQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmlzT25saW5lID0gZXZlbnQudHlwZSA9PT0gJ29ubGluZSc7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ29mZmxpbmUnICYmIHRoaXMudW5hdmFpbGFibGVTdGFydCA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXliZVVwZGF0ZSgpO1xuICAgIH07XG4gICAgdGhpcy5iYWNrZ3JvdW5kQ2hhbmdlZCA9ICgpID0-IHtcbiAgICAgIGNvbnN0IGlzSGlkZGVuID0gZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJztcbiAgICAgIHRoaXMuaXNIaWRkZW4gPSBpc0hpZGRlbjtcblxuICAgICAgaWYgKGlzSGlkZGVuICYmIHRoaXMudW5hdmFpbGFibGVTdGFydCA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1heWJlVXBkYXRlKCk7XG4gICAgfTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvbmxpbmUnLCB0aGlzLm9ubGluZUNoYW5nZWQsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIHRoaXMub25saW5lQ2hhbmdlZCwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLmJhY2tncm91bmRDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIG5ldHdvcmsgaXMgb25saW5lIGFuZCB0aGUgdGFiIGlzIHZpc2libGUsIGVpdGhlciByZWxvYWQgb3IgcmVmcmVzaCB0aGUgcmVxdWVzdFxuICAgKiBiYXNlZCBvbiB0aGUgY29tcG9uZW50J3MgY29uZmlndXJhdGlvbiBhbmQgdGhlIHJlcXVlc3RlZCB1cGRhdGUgbW9kZS5cbiAgICpcbiAgICogVmFsaWQgbW9kZXMgYXJlOlxuICAgKlxuICAgKiAtIGAncmVsb2FkJ2A6IEZvcmNlIGEgcmVsb2FkIG9mIHRoZSByZXF1ZXN0LlxuICAgKiAtIGAncmVmcmVzaCdgOiBSZWZyZXNoIHRoZSByZXF1ZXN0IGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKiAtIGAncG9saWN5J2A6IE1ha2UgdGhlIHJlcXVlc3QsIGxldHRpbmcgdGhlIHN0b3JlJ3MgY29uZmlndXJlZCBDYWNoZVBvbGljeSBkZWNpZGUgd2hldGhlciB0byByZWxvYWQsIHJlZnJlc2gsIG9yIGRvIG5vdGhpbmcuXG4gICAqIC0gYHVuZGVmaW5lZGA6IE1ha2UgdGhlIHJlcXVlc3QgdXNpbmcgdGhlIGNvbXBvbmVudCdzIGF1dG9yZWZyZXNoQmVoYXZpb3Igc2V0dGluZyBpZiB0aGUgYXV0b3JlZnJlc2hUaHJlc2hvbGQgaGFzIHBhc3NlZC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBtYXliZVVwZGF0ZShtb2RlPzogJ3JlbG9hZCcgfCAncmVmcmVzaCcgfCAncG9saWN5JyB8ICdpbnZhbGlkYXRlZCcsIHNpbGVudD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjYW5BdHRlbXB0ID0gQm9vbGVhbih0aGlzLmlzT25saW5lICYmICF0aGlzLmlzSGlkZGVuICYmIChtb2RlIHx8IHRoaXMuYXV0b3JlZnJlc2hUeXBlcy5zaXplKSk7XG5cbiAgICBpZiAoIWNhbkF0dGVtcHQpIHtcbiAgICAgIGlmICghc2lsZW50ICYmIG1vZGUgJiYgbW9kZSAhPT0gJ2ludmFsaWRhdGVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlbG9hZCBub3QgYXZhaWxhYmxlOiB0aGUgbmV0d29yayBpcyBub3Qgb25saW5lIG9yIHRoZSB0YWIgaXMgaGlkZGVuYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IGF1dG9yZWZyZXNoVHlwZXMgfSA9IHRoaXM7XG4gICAgbGV0IHNob3VsZEF0dGVtcHQgPSB0aGlzLmludmFsaWRhdGVkIHx8IEJvb2xlYW4obW9kZSk7XG5cbiAgICBpZiAoIXNob3VsZEF0dGVtcHQgJiYgYXV0b3JlZnJlc2hUeXBlcy5oYXMoJ29ubGluZScpKSB7XG4gICAgICBjb25zdCB7IHVuYXZhaWxhYmxlU3RhcnQgfSA9IHRoaXM7XG4gICAgICBjb25zdCB7IGF1dG9yZWZyZXNoVGhyZXNob2xkIH0gPSB0aGlzLmFyZ3M7XG4gICAgICBjb25zdCBkZWFkbGluZSA9IHR5cGVvZiBhdXRvcmVmcmVzaFRocmVzaG9sZCA9PT0gJ251bWJlcicgPyBhdXRvcmVmcmVzaFRocmVzaG9sZCA6IERFRkFVTFRfREVBRExJTkU7XG4gICAgICBzaG91bGRBdHRlbXB0ID0gQm9vbGVhbih1bmF2YWlsYWJsZVN0YXJ0ICYmIERhdGUubm93KCkgLSB1bmF2YWlsYWJsZVN0YXJ0ID4gZGVhZGxpbmUpO1xuICAgIH1cblxuICAgIGlmICghc2hvdWxkQXR0ZW1wdCAmJiBhdXRvcmVmcmVzaFR5cGVzLmhhcygnaW50ZXJ2YWwnKSkge1xuICAgICAgY29uc3QgeyBpbnRlcnZhbFN0YXJ0IH0gPSB0aGlzO1xuICAgICAgY29uc3QgeyBhdXRvcmVmcmVzaFRocmVzaG9sZCB9ID0gdGhpcy5hcmdzO1xuXG4gICAgICBpZiAoaW50ZXJ2YWxTdGFydCAmJiB0eXBlb2YgYXV0b3JlZnJlc2hUaHJlc2hvbGQgPT09ICdudW1iZXInICYmIGF1dG9yZWZyZXNoVGhyZXNob2xkID4gMCkge1xuICAgICAgICBzaG91bGRBdHRlbXB0ID0gQm9vbGVhbihEYXRlLm5vdygpIC0gaW50ZXJ2YWxTdGFydCA-IGF1dG9yZWZyZXNoVGhyZXNob2xkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPSBudWxsO1xuICAgIHRoaXMuaW52YWxpZGF0ZWQgPSBmYWxzZTtcblxuICAgIGlmIChzaG91bGRBdHRlbXB0KSB7XG4gICAgICB0aGlzLmNsZWFySW50ZXJ2YWwoKTtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnJlcVN0YXRlLnJlcXVlc3QgYXMgdW5rbm93biBhcyBSZXF1ZXN0SW5mbzxULCBSVD4pO1xuICAgICAgY29uc3QgcmVhbE1vZGUgPSBtb2RlID09PSAnaW52YWxpZGF0ZWQnID8gbnVsbCA6IG1vZGU7XG4gICAgICBjb25zdCB2YWwgPSByZWFsTW9kZSA_PyB0aGlzLmFyZ3MuYXV0b3JlZnJlc2hCZWhhdmlvciA_PyAncG9saWN5JztcbiAgICAgIHN3aXRjaCAodmFsKSB7XG4gICAgICAgIGNhc2UgJ3JlbG9hZCc6XG4gICAgICAgICAgcmVxdWVzdC5jYWNoZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCByZXF1ZXN0LmNhY2hlT3B0aW9ucywgeyByZWxvYWQ6IHRydWUgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JlZnJlc2gnOlxuICAgICAgICAgIHJlcXVlc3QuY2FjaGVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxdWVzdC5jYWNoZU9wdGlvbnMsIHsgYmFja2dyb3VuZFJlbG9hZDogdHJ1ZSB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncG9saWN5JzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW52YWxpZCAke21vZGUgPyAndXBkYXRlIG1vZGUnIDogJ0BhdXRvcmVmcmVzaEJlaGF2aW9yJ30gZm9yIDxSZXF1ZXN0IC8-OiAke2lzTmV2ZXJTdHJpbmcodmFsKX1gXG4gICAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd2FzU3RvcmVSZXF1ZXN0ID0gKHJlcXVlc3QgYXMgeyBbRW5hYmxlSHlkcmF0aW9uXTogYm9vbGVhbiB9KVtFbmFibGVIeWRyYXRpb25dID09PSB0cnVlO1xuICAgICAgYXNzZXJ0KFxuICAgICAgICBgQ2Fubm90IHN1cHBseSBhIGRpZmZlcmVudCBzdG9yZSB2aWEgY29udGV4dCB0aGFuIHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgcmVxdWVzdGAsXG4gICAgICAgICFyZXF1ZXN0LnN0b3JlIHx8IHJlcXVlc3Quc3RvcmUgPT09IHRoaXMuc3RvcmVcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2xhdGVzdFJlcXVlc3QgPSB3YXNTdG9yZVJlcXVlc3QgPyB0aGlzLnN0b3JlLnJlcXVlc3QocmVxdWVzdCkgOiB0aGlzLnN0b3JlLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QocmVxdWVzdCk7XG5cbiAgICAgIGlmICh2YWwgIT09ICdyZWZyZXNoJykge1xuICAgICAgICB0aGlzLl9sb2NhbFJlcXVlc3QgPSB0aGlzLl9sYXRlc3RSZXF1ZXN0O1xuICAgICAgfVxuXG4gICAgICB2b2lkIHRoaXMuc2NoZWR1bGVJbnRlcnZhbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyeSB0aGUgcmVxdWVzdCwgcmVsb2FkaW5nIGl0IGZyb20gdGhlIHNlcnZlci5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICByZXRyeSA9IGFzeW5jICgpID0-IHtcbiAgICB0aGlzLm1heWJlVXBkYXRlKCdyZWxvYWQnKTtcbiAgICBhd2FpdCB0aGlzLl9sb2NhbFJlcXVlc3Q7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIHJlcXVlc3QsIHVwZGF0aW5nIGl0IGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZnJlc2ggPSBhc3luYyAoKSA9PiB7XG4gICAgdGhpcy5tYXliZVVwZGF0ZSgncmVmcmVzaCcpO1xuICAgIGF3YWl0IHRoaXMuX2xhdGVzdFJlcXVlc3Q7XG4gIH07XG5cbiAgQGNhY2hlZFxuICBnZXQgZXJyb3JGZWF0dXJlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNIaWRkZW46IHRoaXMuaXNIaWRkZW4sXG4gICAgICBpc09ubGluZTogdGhpcy5pc09ubGluZSxcbiAgICAgIHJldHJ5OiB0aGlzLnJldHJ5LFxuICAgIH07XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBjb250ZW50RmVhdHVyZXMoKSB7XG4gICAgY29uc3QgZmVhdDogQ29udGVudEZlYXR1cmVzPFJUPiA9IHtcbiAgICAgIGlzSGlkZGVuOiB0aGlzLmlzSGlkZGVuLFxuICAgICAgaXNPbmxpbmU6IHRoaXMuaXNPbmxpbmUsXG4gICAgICByZWxvYWQ6IHRoaXMucmV0cnksXG4gICAgICByZWZyZXNoOiB0aGlzLnJlZnJlc2gsXG4gICAgICBpc1JlZnJlc2hpbmc6IHRoaXMuaXNSZWZyZXNoaW5nLFxuICAgICAgbGF0ZXN0UmVxdWVzdDogdGhpcy5fbGF0ZXN0UmVxdWVzdCxcbiAgICB9O1xuXG4gICAgaWYgKGZlYXQuaXNSZWZyZXNoaW5nKSB7XG4gICAgICBmZWF0LmFib3J0ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9sYXRlc3RSZXF1ZXN0Py5hYm9ydCgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmVhdDtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhckludGVydmFsKCk7XG5cbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb25saW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSBhcyB1bmtub3duIGFzIGJvb2xlYW4pO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSBhcyB1bmtub3duIGFzIGJvb2xlYW4pO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLmJhY2tncm91bmRDaGFuZ2VkLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9IGFzIHVua25vd24gYXMgYm9vbGVhbik7XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCByZXF1ZXN0KCk6IEZ1dHVyZTxSVD4ge1xuICAgIGNvbnN0IHsgcmVxdWVzdCwgcXVlcnkgfSA9IHRoaXMuYXJncztcbiAgICBhc3NlcnQoYENhbm5vdCB1c2UgYm90aCBAcmVxdWVzdCBhbmQgQHF1ZXJ5IGFyZ3Mgd2l0aCB0aGUgPFJlcXVlc3Q-IGNvbXBvbmVudGAsICFyZXF1ZXN0IHx8ICFxdWVyeSk7XG4gICAgY29uc3QgeyBfbG9jYWxSZXF1ZXN0LCBfb3JpZ2luYWxSZXF1ZXN0LCBfb3JpZ2luYWxRdWVyeSB9ID0gdGhpcztcbiAgICBjb25zdCBpc09yaWdpbmFsUmVxdWVzdCA9IHJlcXVlc3QgPT09IF9vcmlnaW5hbFJlcXVlc3QgJiYgcXVlcnkgPT09IF9vcmlnaW5hbFF1ZXJ5O1xuXG4gICAgaWYgKF9sb2NhbFJlcXVlc3QgJiYgaXNPcmlnaW5hbFJlcXVlc3QpIHtcbiAgICAgIHJldHVybiBfbG9jYWxSZXF1ZXN0O1xuICAgIH1cblxuICAgIC8vIHVwZGF0ZSBzdGF0ZSBjaGVja3MgZm9yIHRoZSBuZXh0IHRpbWVcbiAgICB0aGlzLl9vcmlnaW5hbFF1ZXJ5ID0gcXVlcnk7XG4gICAgdGhpcy5fb3JpZ2luYWxSZXF1ZXN0ID0gcmVxdWVzdDtcblxuICAgIGlmIChyZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG4gICAgYXNzZXJ0KGBZb3UgbXVzdCBwcm92aWRlIGVpdGhlciBAcmVxdWVzdCBvciBhbiBAcXVlcnkgYXJnIHdpdGggdGhlIDxSZXF1ZXN0PiBjb21wb25lbnRgLCBxdWVyeSk7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUucmVxdWVzdDxSVCwgVD4ocXVlcnkpO1xuICB9XG5cbiAgZ2V0IHN0b3JlKCk6IFN0b3JlIHtcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuYXJncy5zdG9yZSB8fCB0aGlzLl9zdG9yZTtcbiAgICBhc3NlcnQoXG4gICAgICBtb2R1bGVFeGlzdHMoJ2VtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0JylcbiAgICAgICAgPyBgTm8gc3RvcmUgd2FzIHByb3ZpZGVkIHRvIHRoZSA8UmVxdWVzdD4gY29tcG9uZW50LiBFaXRoZXIgcHJvdmlkZSBhIHN0b3JlIHZpYSB0aGUgQHN0b3JlIGFyZyBvciB2aWEgdGhlIGNvbnRleHQgQVBJIHByb3ZpZGVkIGJ5IGVtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0LmBcbiAgICAgICAgOiBgTm8gc3RvcmUgd2FzIHByb3ZpZGVkIHRvIHRoZSA8UmVxdWVzdD4gY29tcG9uZW50LiBFaXRoZXIgcHJvdmlkZSBhIHN0b3JlIHZpYSB0aGUgQHN0b3JlIGFyZyBvciBieSByZWdpc3RlcmluZyBhIHN0b3JlIHNlcnZpY2UuYCxcbiAgICAgIHN0b3JlXG4gICAgKTtcbiAgICByZXR1cm4gc3RvcmU7XG4gIH1cblxuICBnZXQgcmVxU3RhdGUoKSB7XG4gICAgcmV0dXJuIGdldFJlcXVlc3RTdGF0ZTxSVCwgVD4odGhpcy5yZXF1ZXN0KTtcbiAgfVxuXG4gIGdldCByZXN1bHQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxU3RhdGUucmVzdWx0IGFzIFJUO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIHt7I2lmIHRoaXMucmVxU3RhdGUuaXNMb2FkaW5nfX1cbiAgICAgIHt7eWllbGQgdGhpcy5yZXFTdGF0ZS5sb2FkaW5nU3RhdGUgdG89XCJsb2FkaW5nXCJ9fVxuICAgIHt7ZWxzZSBpZiAoYW5kIHRoaXMucmVxU3RhdGUuaXNDYW5jZWxsZWQgKGhhcy1ibG9jayBcImNhbmNlbGxlZFwiKSl9fVxuICAgICAge3t5aWVsZCAobm90TnVsbCB0aGlzLnJlcVN0YXRlLmVycm9yKSB0aGlzLmVycm9yRmVhdHVyZXMgdG89XCJjYW5jZWxsZWRcIn19XG4gICAge3tlbHNlIGlmIChhbmQgdGhpcy5yZXFTdGF0ZS5pc0Vycm9yIChoYXMtYmxvY2sgXCJlcnJvclwiKSl9fVxuICAgICAge3t5aWVsZCAobm90TnVsbCB0aGlzLnJlcVN0YXRlLmVycm9yKSB0aGlzLmVycm9yRmVhdHVyZXMgdG89XCJlcnJvclwifX1cbiAgICB7e2Vsc2UgaWYgdGhpcy5yZXFTdGF0ZS5pc1N1Y2Nlc3N9fVxuICAgICAge3t5aWVsZCB0aGlzLnJlc3VsdCB0aGlzLmNvbnRlbnRGZWF0dXJlcyB0bz1cImNvbnRlbnRcIn19XG4gICAge3tlbHNlIGlmIChub3QgdGhpcy5yZXFTdGF0ZS5pc0NhbmNlbGxlZCl9fVxuICAgICAgPFRocm93IEBlcnJvcj17eyhub3ROdWxsIHRoaXMucmVxU3RhdGUuZXJyb3IpfX0gLz5cbiAgICB7ey9pZn19XG4gICAge3t5aWVsZCB0aGlzLnJlcVN0YXRlIHRvPVwiYWx3YXlzXCJ9fVxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLE9BQU8sUUFBUSxpQkFBaUI7QUFDekMsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE1BQU0sRUFBRSxPQUFPLFFBQVEsb0JBQW9CO0FBRXBELFNBQVMsVUFBVSxFQUFFLGNBQWMsRUFBRSxZQUFZLFFBQVEsb0JBQW9CO0FBRTdFLGNBQWMsTUFBTSxFQUFFLHVCQUF1QixRQUFRLHNCQUFzQjtBQUMzRSxjQUFjLGlCQUFpQixRQUFRLG9CQUFvQjtBQUMzRCxZQUFZLFdBQVcsb0JBQW9CO0FBQzNDLFNBQVMsTUFBTSxRQUFRLGtDQUFrQztBQUN6RCxjQUFjLHdCQUF3QixRQUFRLHVDQUF1QztBQUNyRixTQUFTLGVBQWUsRUFBRSxLQUFLLFdBQVcsUUFBUSxpQ0FBaUM7QUFFbkYsU0FBUyxHQUFHLEVBQUUsS0FBSyxRQUFRLGNBQWM7QUFDekMsY0FBYyxtQkFBbUIsRUFBRSxZQUFZLFFBQVEscUJBQXFCO0FBQzVFLFNBQVMsZUFBZSxRQUFRLHFCQUFxQjtBQUVyRCxTQUFTLFFBQVEsSUFBRyxJQUFJLEdBQUcsS0FBSztBQUNoQyxTQUFTLFFBQVEsR0FBRyxJQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSTtBQUMxQyxTQUFTLFFBQVEsR0FBRyxJQUFHLElBQUksSUFBSTtJQUM3QixPQUFPLDJDQUEyQyxPQUFNO0lBQ3hELE9BQU87QUFDVDtBQUVBLE1BQU0sTUFBTSxDQUFDLElBQUcsT0FBTyxHQUFLLENBQUM7QUFDN0Isc0RBQXNEO0FBQ3RELE1BQU0sbUJBQW1CO0FBRXpCLElBQUksVUFBVTtBQUNkLElBQUksZUFBZSxhQUFhLG1DQUFtQztJQUNqRSxNQUFNLEVB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"],"names":["runtime_exports","__export","c","decorateClass","f","decorateFieldV1","g","decorateFieldV2","i","initializeDeferredDecorator","m","decorateMethodV1","n","decorateMethodV2","p","decoratePOJO","deferred","WeakMap","deferDecorator","proto","prop","desc","map","get","Map","set","findDeferredDecorator","target","cursor","prototype","decorators","initializer","configurable","enumerable","writable","decorator","Object","defineProperty","origDesc","getOwnPropertyDescriptor","value","call","constructor","reduce","accum","pojo","decorated","type","decoratePojoField","RequestCache","isAbortError","error","DOMException","name","watchStream","stream","state","reader","getReader","bytesLoaded","shouldForward","_stream","readable","locked","isForwarding","writer","getWriter","buffer","_isPending","_isStarted","_startTime","performance","now","done","read","byteLength","_bytesLoaded","_lastPacketTime","item","ready","write","length","push","close","cancel","endTime","_endTime","_isComplete","RequestLoadingState","_future","_triggered","_trigger","future","promise","getStream","sizeHint","_sizeHint","then","_isCancelled","_isErrored","_error","tracked","void 0","isPending","TransformStream","isStarted","startTime","lastPacketTime","isComplete","isCancelled","isErrored","elapsedTime","completedRatio","remainingRatio","duration","speed","abort","RequestState","isError","loadingState","getPromiseResult","request","result","response","isLoading","content","isSuccess","setPromiseResult","getRequestState","PromiseCache","PromiseState","LegacyPromiseProxy","Symbol","for","isLegacyAwaitable","getPromise","getPromiseState","_promise","and","x1","y1","Boolean","Throw","Component","owner1","args1","args","setComponentTemplate","precompileTemplate","strictMode","Await","scope","notNull","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","not","DEFAULT_DEADLINE","consume","service","moduleExists","contextConsume","importSync","isNeverString","val1","Request","unavailableStart","intervalStart","nextInterval","invalidated","onlineChanged","backgroundChanged","_originalRequest","_originalQuery","_subscription","_subscribedTo","installListeners","updateSubscriptions","scheduleInterval","autorefreshTypes","autorefresh","autorefresh1","types1","split","Set","cached","autorefreshThreshold","autorefreshThreshold1","hasValidThreshold1","window","has","_latestRequest","isDestroyed","Date","setTimeout","maybeUpdate","clearInterval","clearTimeout","requestId1","lid","removeSubscriptions","store","notifications","subscribe","_id1","op1","latest1","requestManager","_deduped","priority1","priority","isRefreshing","blocking","unsubscribe","isOnline","navigator","onLine","isHidden","document","visibilityState","event1","isHidden1","addEventListener","passive","capture","mode1","silent1","canAttempt1","size","autorefreshTypes1","shouldAttempt1","unavailableStart1","deadline1","intervalStart1","request1","assign","reqState","realMode1","autorefreshBehavior","cacheOptions","reload","backgroundReload","wasStoreRequest1","EnableHydration","_localRequest","retry","refresh","errorFeatures","contentFeatures","feat1","latestRequest","willDestroy","removeEventListener","query","query1","_localRequest1","_originalRequest1","_originalQuery1","isOriginalRequest1","store1","_store"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@warp-drive/ember",
3
3
  "description": "Data bindings and utilities for Ember applications using WarpDrive",
4
- "version": "0.0.0-alpha.56",
4
+ "version": "0.0.0-alpha.59",
5
5
  "license": "MIT",
6
6
  "author": "Chris Thoburn <runspired@users.noreply.github.com>",
7
7
  "repository": {
@@ -41,14 +41,14 @@
41
41
  "@ember-data/store": "^4.12.7 || > 5.3.3",
42
42
  "@ember-data/request": "^4.12.7 || > 5.3.3",
43
43
  "@ember-data/request-utils": "^4.12.7 || > 5.3.3",
44
- "@warp-drive/core-types": "0.0.0-alpha.80",
44
+ "@warp-drive/core-types": "0.0.0-alpha.83",
45
45
  "ember-provide-consume-context": "^0.3.1",
46
46
  "@ember-data/tracking": "^4.12.7 || > 5.3.3"
47
47
  },
48
48
  "dependencies": {
49
49
  "@ember/test-waiters": "^3.1.0",
50
50
  "@embroider/macros": "^1.16.1",
51
- "@warp-drive/build-config": "0.0.0-alpha.31"
51
+ "@warp-drive/build-config": "0.0.0-alpha.34"
52
52
  },
53
53
  "dependenciesMeta": {
54
54
  "@ember-data/store": {
@@ -90,13 +90,13 @@
90
90
  "@glint/template": "^1.4.0",
91
91
  "decorator-transforms": "^2.0.0",
92
92
  "@embroider/addon-dev": "^4.3.1",
93
- "@ember-data/request": "5.4.0-alpha.94",
94
- "@ember-data/request-utils": "5.4.0-alpha.94",
95
- "@ember-data/store": "5.4.0-alpha.94",
96
- "@ember-data/tracking": "5.4.0-alpha.94",
93
+ "@ember-data/request": "5.4.0-alpha.97",
94
+ "@ember-data/request-utils": "5.4.0-alpha.97",
95
+ "@ember-data/store": "5.4.0-alpha.97",
96
+ "@ember-data/tracking": "5.4.0-alpha.97",
97
97
  "@ember/test-helpers": "^3.3.0",
98
- "@warp-drive/core-types": "0.0.0-alpha.80",
99
- "@warp-drive/internal-config": "5.4.0-alpha.94",
98
+ "@warp-drive/core-types": "0.0.0-alpha.83",
99
+ "@warp-drive/internal-config": "5.4.0-alpha.97",
100
100
  "babel-plugin-ember-template-compilation": "^2.2.5",
101
101
  "ember-template-imports": "^4.1.1",
102
102
  "ember-source": "~5.8.0",
@@ -4,6 +4,8 @@ declare module '@warp-drive/ember/-private/request' {
4
4
  import type { StoreRequestInput } from '@ember-data/store';
5
5
  import type Store from '@ember-data/store';
6
6
  import type { RequestLoadingState, RequestState } from '@warp-drive/ember/-private/request-state.ts';
7
+ type AutorefreshBehaviorType = 'online' | 'interval' | 'invalid';
8
+ type AutorefreshBehaviorCombos = true | AutorefreshBehaviorType | `${AutorefreshBehaviorType},${AutorefreshBehaviorType}` | `${AutorefreshBehaviorType},${AutorefreshBehaviorType},${AutorefreshBehaviorType}`;
7
9
  type ContentFeatures<RT> = {
8
10
  isOnline: boolean;
9
11
  isHidden: boolean;
@@ -18,7 +20,7 @@ declare module '@warp-drive/ember/-private/request' {
18
20
  request?: Future<RT>;
19
21
  query?: StoreRequestInput<T, RT>;
20
22
  store?: Store;
21
- autorefresh?: boolean;
23
+ autorefresh?: AutorefreshBehaviorCombos;
22
24
  autorefreshThreshold?: number;
23
25
  autorefreshBehavior?: 'refresh' | 'reload' | 'policy';
24
26
  };
@@ -44,25 +46,136 @@ declare module '@warp-drive/ember/-private/request' {
44
46
  always: [state: RequestState<T, RT>];
45
47
  };
46
48
  }
49
+ /**
50
+ * The `<Request>` component is a powerful tool for managing data fetching and
51
+ * state in your Ember application. It provides declarative reactive control-flow
52
+ * for managing requests and state in your application.
53
+ *
54
+ * @typedoc
55
+ */
47
56
  export class Request<T, RT> extends Component<RequestSignature<T, RT>> {
48
57
  /**
58
+ * The store instance to use for making requests. If contexts are available, this
59
+ * will be the `store` on the context, else it will be the store service.
60
+ *
49
61
  * @internal
50
62
  */
51
63
  _store: Store;
64
+ /**
65
+ * Whether the browser reports that the network is online.
66
+ *
67
+ * @internal
68
+ */
52
69
  isOnline: boolean;
70
+ /**
71
+ * Whether the browser reports that the tab is hidden.
72
+ *
73
+ * @internal
74
+ */
53
75
  isHidden: boolean;
76
+ /**
77
+ * Whether the component is currently refreshing the request.
78
+ *
79
+ * @internal
80
+ */
54
81
  isRefreshing: boolean;
82
+ /**
83
+ * The most recent blocking request that was made, typically
84
+ * the result of a reload.
85
+ *
86
+ * This will never be the original request passed as an arg to
87
+ * the component.
88
+ *
89
+ * @internal
90
+ */
55
91
  _localRequest: Future<RT> | undefined;
92
+ /**
93
+ * The most recent request that was made, typically due to either a
94
+ * reload or a refresh.
95
+ *
96
+ * This will never be the original request passed as an arg to
97
+ * the component.
98
+ *
99
+ * @internal
100
+ */
56
101
  _latestRequest: Future<RT> | undefined;
102
+ /**
103
+ * The time at which the network was reported as offline.
104
+ *
105
+ * @internal
106
+ */
57
107
  unavailableStart: number | null;
108
+ intervalStart: number | null;
109
+ nextInterval: number | null;
110
+ invalidated: boolean;
111
+ /**
112
+ * The event listener for network status changes,
113
+ * cached to use the reference for removal.
114
+ *
115
+ * @internal
116
+ */
58
117
  onlineChanged: (event: Event) => void;
118
+ /**
119
+ * The event listener for visibility status changes,
120
+ * cached to use the reference for removal.
121
+ *
122
+ * @internal
123
+ */
59
124
  backgroundChanged: (event: Event) => void;
125
+ /**
126
+ * The last request passed as an arg to the component,
127
+ * cached for comparison.
128
+ *
129
+ * @internal
130
+ */
60
131
  _originalRequest: Future<RT> | undefined;
132
+ /**
133
+ * The last query passed as an arg to the component,
134
+ * cached for comparison.
135
+ *
136
+ * @internal
137
+ */
61
138
  _originalQuery: StoreRequestInput<T, RT> | undefined;
139
+ _subscription: object | null;
140
+ _subscribedTo: object | null;
62
141
  constructor(owner: unknown, args: RequestSignature<T, RT>['Args']);
142
+ get autorefreshTypes(): Set<AutorefreshBehaviorType>;
143
+ scheduleInterval(): Promise<void>;
144
+ clearInterval(): void;
145
+ updateSubscriptions(): void;
146
+ removeSubscriptions(): void;
147
+ /**
148
+ * Install the event listeners for network and visibility changes.
149
+ * This is only done in browser environments with a global `window`.
150
+ *
151
+ * @internal
152
+ */
63
153
  installListeners(): void;
64
- maybeUpdate(mode?: 'reload' | 'refresh' | 'policy'): void;
154
+ /**
155
+ * If the network is online and the tab is visible, either reload or refresh the request
156
+ * based on the component's configuration and the requested update mode.
157
+ *
158
+ * Valid modes are:
159
+ *
160
+ * - `'reload'`: Force a reload of the request.
161
+ * - `'refresh'`: Refresh the request in the background.
162
+ * - `'policy'`: Make the request, letting the store's configured CachePolicy decide whether to reload, refresh, or do nothing.
163
+ * - `undefined`: Make the request using the component's autorefreshBehavior setting if the autorefreshThreshold has passed.
164
+ *
165
+ * @internal
166
+ */
167
+ maybeUpdate(mode?: 'reload' | 'refresh' | 'policy' | 'invalidated', silent?: boolean): void;
168
+ /**
169
+ * Retry the request, reloading it from the server.
170
+ *
171
+ * @internal
172
+ */
65
173
  retry: () => Promise<void>;
174
+ /**
175
+ * Refresh the request, updating it in the background.
176
+ *
177
+ * @internal
178
+ */
66
179
  refresh: () => Promise<void>;
67
180
  get errorFeatures(): {
68
181
  isHidden: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/-private/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/-private/request.ts"],"names":[],"mappings":"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"}