@warp-drive/ember 0.0.0-beta.5 → 0.0.0-beta.7

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
@@ -588,6 +588,7 @@ function notNull(x1) {
588
588
  const not = x1 => !x1;
589
589
  // default to 30 seconds unavailable before we refresh
590
590
  const DEFAULT_DEADLINE = 30_000;
591
+ const IdleBlockMissingError = new Error('No idle block provided for <Request> component, and no query or request was provided.');
591
592
  let consume = service;
592
593
  if (macroCondition(moduleExists('ember-provide-consume-context'))) {
593
594
  const {
@@ -598,12 +599,22 @@ if (macroCondition(moduleExists('ember-provide-consume-context'))) {
598
599
  function isNeverString(val1) {
599
600
  return val1;
600
601
  }
602
+ /**
603
+ * The `<Request>` component is a powerful tool for managing data fetching and
604
+ * state in your Ember application. It provides declarative reactive control-flow
605
+ * for managing requests and state in your application.
606
+ *
607
+ * @typedoc
608
+ */
601
609
  class Request extends Component {
602
610
  static {
603
611
  decorateFieldV2(this.prototype, "_store", [consume('store')]);
604
612
  }
605
613
  #_store = (initializeDeferredDecorator(this, "_store"), void 0);
606
614
  /**
615
+ * The store instance to use for making requests. If contexts are available, this
616
+ * will be the `store` on the context, else it will be the store service.
617
+ *
607
618
  * @internal
608
619
  */
609
620
  static {
@@ -612,35 +623,257 @@ class Request extends Component {
612
623
  });
613
624
  }
614
625
  #isOnline = (initializeDeferredDecorator(this, "isOnline"), void 0);
626
+ /**
627
+ * Whether the browser reports that the network is online.
628
+ *
629
+ * @internal
630
+ */
615
631
  static {
616
632
  decorateFieldV2(this.prototype, "isHidden", [tracked], function () {
617
633
  return true;
618
634
  });
619
635
  }
620
636
  #isHidden = (initializeDeferredDecorator(this, "isHidden"), void 0);
637
+ /**
638
+ * Whether the browser reports that the tab is hidden.
639
+ *
640
+ * @internal
641
+ */
621
642
  static {
622
643
  decorateFieldV2(this.prototype, "isRefreshing", [tracked], function () {
623
644
  return false;
624
645
  });
625
646
  }
626
647
  #isRefreshing = (initializeDeferredDecorator(this, "isRefreshing"), void 0);
648
+ /**
649
+ * Whether the component is currently refreshing the request.
650
+ *
651
+ * @internal
652
+ */
627
653
  static {
628
654
  decorateFieldV2(this.prototype, "_localRequest", [tracked]);
629
655
  }
630
656
  #_localRequest = (initializeDeferredDecorator(this, "_localRequest"), void 0);
657
+ /**
658
+ * The most recent blocking request that was made, typically
659
+ * the result of a reload.
660
+ *
661
+ * This will never be the original request passed as an arg to
662
+ * the component.
663
+ *
664
+ * @internal
665
+ */
631
666
  static {
632
667
  decorateFieldV2(this.prototype, "_latestRequest", [tracked]);
633
668
  }
634
669
  #_latestRequest = (initializeDeferredDecorator(this, "_latestRequest"), void 0);
670
+ /**
671
+ * The most recent request that was made, typically due to either a
672
+ * reload or a refresh.
673
+ *
674
+ * This will never be the original request passed as an arg to
675
+ * the component.
676
+ *
677
+ * @internal
678
+ */
679
+ /**
680
+ * The time at which the network was reported as offline.
681
+ *
682
+ * @internal
683
+ */
635
684
  unavailableStart;
685
+ intervalStart;
686
+ nextInterval;
687
+ invalidated;
688
+ isUpdating;
689
+ /**
690
+ * The event listener for network status changes,
691
+ * cached to use the reference for removal.
692
+ *
693
+ * @internal
694
+ */
636
695
  onlineChanged;
696
+ /**
697
+ * The event listener for visibility status changes,
698
+ * cached to use the reference for removal.
699
+ *
700
+ * @internal
701
+ */
637
702
  backgroundChanged;
703
+ /**
704
+ * The last request passed as an arg to the component,
705
+ * cached for comparison.
706
+ *
707
+ * @internal
708
+ */
638
709
  _originalRequest;
710
+ /**
711
+ * The last query passed as an arg to the component,
712
+ * cached for comparison.
713
+ *
714
+ * @internal
715
+ */
639
716
  _originalQuery;
717
+ _subscription;
718
+ _subscribedTo;
640
719
  constructor(owner1, args1) {
641
720
  super(owner1, args1);
721
+ this._subscribedTo = null;
722
+ this._subscription = null;
723
+ this.intervalStart = null;
724
+ this.invalidated = false;
725
+ this.nextInterval = null;
642
726
  this.installListeners();
727
+ void this.beginPolling();
728
+ }
729
+ async beginPolling() {
730
+ // await the initial request
731
+ try {
732
+ await this.request;
733
+ } catch {
734
+ // ignore errors here, we just want to wait for the request to finish
735
+ } finally {
736
+ if (!this.isDestroyed) {
737
+ void this.scheduleInterval();
738
+ }
739
+ }
643
740
  }
741
+ get isIdle() {
742
+ const {
743
+ request: request1,
744
+ query: query1
745
+ } = this.args;
746
+ return Boolean(!request1 && !query1);
747
+ }
748
+ static {
749
+ decorateMethodV2(this.prototype, "isIdle", [cached]);
750
+ }
751
+ get autorefreshTypes() {
752
+ const {
753
+ autorefresh: autorefresh1
754
+ } = this.args;
755
+ let types1;
756
+ if (autorefresh1 === true) {
757
+ types1 = ['online', 'invalid'];
758
+ } else if (typeof autorefresh1 === 'string') {
759
+ types1 = autorefresh1.split(',');
760
+ } else {
761
+ types1 = [];
762
+ }
763
+ return new Set(types1);
764
+ }
765
+ // we only run this function on component creation
766
+ // and when an update is triggered, so it does not
767
+ // react to changes in the autorefreshThreshold
768
+ // or autorefresh args.
769
+ //
770
+ // if we need to react to those changes, we can
771
+ // use a modifier or internal component or some
772
+ // such to trigger a re-run of this function.
773
+ static {
774
+ decorateMethodV2(this.prototype, "autorefreshTypes", [cached]);
775
+ }
776
+ async scheduleInterval() {
777
+ const {
778
+ autorefreshThreshold: autorefreshThreshold1
779
+ } = this.args;
780
+ const hasValidThreshold1 = typeof autorefreshThreshold1 === 'number' && autorefreshThreshold1 > 0;
781
+ if (
782
+ // dont schedule in SSR
783
+ typeof window === 'undefined' ||
784
+ // dont schedule without a threshold
785
+ !hasValidThreshold1 ||
786
+ // dont schedule if we weren't told to
787
+ !this.autorefreshTypes.has('interval') ||
788
+ // dont schedule if we're already scheduled
789
+ this.intervalStart !== null) {
790
+ return;
791
+ }
792
+ // if we have a current request, wait for it to finish
793
+ // before scheduling the next one
794
+ if (this._latestRequest) {
795
+ try {
796
+ await this._latestRequest;
797
+ } catch {
798
+ // ignore errors here, we just want to wait for the request to finish
799
+ }
800
+ if (this.isDestroyed) {
801
+ return;
802
+ }
803
+ }
804
+ // setup the next interval
805
+ this.intervalStart = Date.now();
806
+ this.nextInterval = setTimeout(() => {
807
+ this.maybeUpdate();
808
+ }, autorefreshThreshold1);
809
+ }
810
+ clearInterval() {
811
+ if (this.nextInterval) {
812
+ clearTimeout(this.nextInterval);
813
+ this.intervalStart = null;
814
+ }
815
+ }
816
+ updateSubscriptions() {
817
+ if (this.isIdle) {
818
+ return;
819
+ }
820
+ const requestId1 = this._request.lid;
821
+ // if we're already subscribed to this request, we don't need to do anything
822
+ if (this._subscribedTo === requestId1) {
823
+ return;
824
+ }
825
+ // if we're subscribed to a different request, we need to unsubscribe
826
+ this.removeSubscriptions();
827
+ // if we have a request, we need to subscribe to it
828
+ if (requestId1) {
829
+ this._subscribedTo = requestId1;
830
+ this._subscription = this.store.notifications.subscribe(requestId1, (_id1, op1) => {
831
+ // ignore subscription events that occur while our own component's request
832
+ // is ocurring
833
+ if (this.isUpdating) {
834
+ return;
835
+ }
836
+ switch (op1) {
837
+ case 'invalidated':
838
+ {
839
+ // if we're subscribed to invalidations, we need to update
840
+ if (this.autorefreshTypes.has('invalid')) {
841
+ this.invalidated = true;
842
+ this.maybeUpdate();
843
+ }
844
+ break;
845
+ }
846
+ case 'state':
847
+ {
848
+ const latest1 = this.store.requestManager._deduped.get(requestId1);
849
+ const priority1 = latest1?.priority;
850
+ if (!priority1) {
851
+ this.isRefreshing = false;
852
+ } else if (priority1.blocking) {
853
+ // TODO should we just treat this as refreshing?
854
+ this.isRefreshing = false;
855
+ this.maybeUpdate('policy', true);
856
+ } else {
857
+ this.isRefreshing = true;
858
+ }
859
+ }
860
+ }
861
+ });
862
+ }
863
+ }
864
+ removeSubscriptions() {
865
+ if (this._subscription) {
866
+ this.store.notifications.unsubscribe(this._subscription);
867
+ this._subscribedTo = null;
868
+ this._subscription = null;
869
+ }
870
+ }
871
+ /**
872
+ * Install the event listeners for network and visibility changes.
873
+ * This is only done in browser environments with a global `window`.
874
+ *
875
+ * @internal
876
+ */
644
877
  installListeners() {
645
878
  if (typeof window === 'undefined') {
646
879
  return;
@@ -676,59 +909,112 @@ class Request extends Component {
676
909
  capture: true
677
910
  });
678
911
  }
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;
912
+ /**
913
+ * If the network is online and the tab is visible, either reload or refresh the request
914
+ * based on the component's configuration and the requested update mode.
915
+ *
916
+ * Valid modes are:
917
+ *
918
+ * - `'reload'`: Force a reload of the request.
919
+ * - `'refresh'`: Refresh the request in the background.
920
+ * - `'policy'`: Make the request, letting the store's configured CachePolicy decide whether to reload, refresh, or do nothing.
921
+ * - `undefined`: Make the request using the component's autorefreshBehavior setting if the autorefreshThreshold has passed.
922
+ *
923
+ * @internal
924
+ */
925
+ maybeUpdate(mode1, silent1) {
926
+ if (this.isIdle) {
927
+ return;
928
+ }
929
+ const canAttempt1 = Boolean(this.isOnline && !this.isHidden && (mode1 || this.autorefreshTypes.size));
930
+ if (!canAttempt1) {
931
+ if (!silent1 && mode1 && mode1 !== 'invalidated') {
932
+ throw new Error(`Reload not available: the network is not online or the tab is hidden`);
714
933
  }
934
+ return;
715
935
  }
716
- if (mode1) {
717
- throw new Error(`Reload not available: the network is not online or the tab is hidden`);
936
+ const {
937
+ autorefreshTypes: autorefreshTypes1
938
+ } = this;
939
+ let shouldAttempt1 = this.invalidated || Boolean(mode1);
940
+ if (!shouldAttempt1 && autorefreshTypes1.has('online')) {
941
+ const {
942
+ unavailableStart: unavailableStart1
943
+ } = this;
944
+ const {
945
+ autorefreshThreshold: autorefreshThreshold1
946
+ } = this.args;
947
+ const deadline1 = typeof autorefreshThreshold1 === 'number' ? autorefreshThreshold1 : DEFAULT_DEADLINE;
948
+ shouldAttempt1 = Boolean(unavailableStart1 && Date.now() - unavailableStart1 > deadline1);
949
+ }
950
+ if (!shouldAttempt1 && autorefreshTypes1.has('interval')) {
951
+ const {
952
+ intervalStart: intervalStart1
953
+ } = this;
954
+ const {
955
+ autorefreshThreshold: autorefreshThreshold1
956
+ } = this.args;
957
+ if (intervalStart1 && typeof autorefreshThreshold1 === 'number' && autorefreshThreshold1 > 0) {
958
+ shouldAttempt1 = Boolean(Date.now() - intervalStart1 >= autorefreshThreshold1);
959
+ }
960
+ }
961
+ this.unavailableStart = null;
962
+ this.invalidated = false;
963
+ if (shouldAttempt1) {
964
+ this.clearInterval();
965
+ const request1 = Object.assign({}, this.reqState.request);
966
+ const realMode1 = mode1 === 'invalidated' ? null : mode1;
967
+ const val1 = realMode1 ?? this.args.autorefreshBehavior ?? 'policy';
968
+ switch (val1) {
969
+ case 'reload':
970
+ request1.cacheOptions = Object.assign({}, request1.cacheOptions, {
971
+ reload: true
972
+ });
973
+ break;
974
+ case 'refresh':
975
+ request1.cacheOptions = Object.assign({}, request1.cacheOptions, {
976
+ backgroundReload: true
977
+ });
978
+ break;
979
+ case 'policy':
980
+ break;
981
+ default:
982
+ throw new Error(`Invalid ${mode1 ? 'update mode' : '@autorefreshBehavior'} for <Request />: ${isNeverString(val1)}`);
983
+ }
984
+ const wasStoreRequest1 = request1[EnableHydration] === true;
985
+ macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
986
+ if (!test) {
987
+ throw new Error(`Cannot supply a different store via context than was used to create the request`);
988
+ }
989
+ })(!request1.store || request1.store === this.store) : {};
990
+ this.isUpdating = true;
991
+ this._latestRequest = wasStoreRequest1 ? this.store.request(request1) : this.store.requestManager.request(request1);
992
+ if (val1 !== 'refresh') {
993
+ this._localRequest = this._latestRequest;
994
+ }
995
+ void this.scheduleInterval();
996
+ void this._latestRequest.finally(() => {
997
+ this.isUpdating = false;
998
+ });
718
999
  }
719
1000
  }
1001
+ /**
1002
+ * Retry the request, reloading it from the server.
1003
+ *
1004
+ * @internal
1005
+ */
720
1006
  retry = async () => {
721
1007
  this.maybeUpdate('reload');
722
1008
  await this._localRequest;
723
1009
  };
1010
+ /**
1011
+ * Refresh the request, updating it in the background.
1012
+ *
1013
+ * @internal
1014
+ */
724
1015
  refresh = async () => {
725
- this.isRefreshing = true;
726
1016
  this.maybeUpdate('refresh');
727
- try {
728
- await this._latestRequest;
729
- } finally {
730
- this.isRefreshing = false;
731
- }
1017
+ await this._latestRequest;
732
1018
  };
733
1019
  get errorFeatures() {
734
1020
  return {
@@ -760,9 +1046,11 @@ class Request extends Component {
760
1046
  decorateMethodV2(this.prototype, "contentFeatures", [cached]);
761
1047
  }
762
1048
  willDestroy() {
1049
+ this.removeSubscriptions();
763
1050
  if (typeof window === 'undefined') {
764
1051
  return;
765
1052
  }
1053
+ this.clearInterval();
766
1054
  window.removeEventListener('online', this.onlineChanged, {
767
1055
  passive: true,
768
1056
  capture: true
@@ -776,7 +1064,7 @@ class Request extends Component {
776
1064
  capture: true
777
1065
  });
778
1066
  }
779
- get request() {
1067
+ get _request() {
780
1068
  const {
781
1069
  request: request1,
782
1070
  query: query1
@@ -808,6 +1096,14 @@ class Request extends Component {
808
1096
  })(query1) : {};
809
1097
  return this.store.request(query1);
810
1098
  }
1099
+ static {
1100
+ decorateMethodV2(this.prototype, "_request", [cached]);
1101
+ }
1102
+ get request() {
1103
+ const request1 = this._request;
1104
+ this.updateSubscriptions();
1105
+ return request1;
1106
+ }
811
1107
  static {
812
1108
  decorateMethodV2(this.prototype, "request", [cached]);
813
1109
  }
@@ -827,13 +1123,14 @@ class Request extends Component {
827
1123
  return this.reqState.result;
828
1124
  }
829
1125
  static {
830
- setComponentTemplate(precompileTemplate("\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 ", {
1126
+ setComponentTemplate(precompileTemplate("\n {{#if (and this.isIdle (has-block \"idle\"))}}\n {{yield to=\"idle\"}}\n {{else if this.isIdle}}\n <Throw @error={{IdleBlockMissingError}} />\n {{else 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 ", {
831
1127
  strictMode: true,
832
1128
  scope: () => ({
833
1129
  and,
1130
+ Throw,
1131
+ IdleBlockMissingError,
834
1132
  notNull,
835
- not,
836
- Throw
1133
+ not
837
1134
  })
838
1135
  }), this);
839
1136
  }
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.2.2_@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;\nconst IdleBlockMissingError = new Error('No idle block provided for <Request> component, and no query or request was provided.');\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 idle: [];\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 isUpdating: 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 void this.beginPolling();\n }\n async beginPolling() {\n // await the initial request\n try {\n await this.request;\n } catch {\n // ignore errors here, we just want to wait for the request to finish\n } finally{\n if (!this.isDestroyed) {\n void this.scheduleInterval();\n }\n }\n }\n @cached\n get isIdle() {\n const { request: request1, query: query1 } = this.args;\n return Boolean(!request1 && !query1);\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 if (this.isIdle) {\n return;\n }\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._subscribedTo = requestId1;\n this._subscription = this.store.notifications.subscribe(requestId1, (_id1: StableDocumentIdentifier, op1: 'invalidated' | 'state' | 'added' | 'updated' | 'removed')=>{\n // ignore subscription events that occur while our own component's request\n // is ocurring\n if (this.isUpdating) {\n return;\n }\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 if (this.isIdle) {\n return;\n }\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.isUpdating = true;\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 void this._latestRequest.finally(()=>{\n this.isUpdating = false;\n });\n } else {\n // TODO probably want this\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 @cached\n get request(): Future<RT> {\n const request1 = this._request;\n this.updateSubscriptions();\n return request1;\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 (and this.isIdle (has-block \"idle\"))}}\n {{yield to=\"idle\"}}\n {{else if this.isIdle}}\n <Throw @error={{IdleBlockMissingError}} />\n {{else 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-ICF4O1xuLy8gZGVmYXVsdCB0byAzMCBzZWNvbmRzIHVuYXZhaWxhYmxlIGJlZm9yZSB3ZSByZWZyZXNoXG5jb25zdCBERUZBVUxUX0RFQURMSU5FID0gMzBfMDAwO1xuY29uc3QgSWRsZUJsb2NrTWlzc2luZ0Vycm9yID0gbmV3IEVycm9yKFxuICAnTm8gaWRsZSBibG9jayBwcm92aWRlZCBmb3IgPFJlcXVlc3Q-IGNvbXBvbmVudCwgYW5kIG5vIHF1ZXJ5IG9yIHJlcXVlc3Qgd2FzIHByb3ZpZGVkLidcbik7XG5cbmxldCBjb25zdW1lID0gc2VydmljZTtcbmlmIChtYWNyb0NvbmRpdGlvbihtb2R1bGVFeGlzdHMoJ2VtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0JykpKSB7XG4gIGNvbnN0IHsgY29uc3VtZTogY29udGV4dENvbnN1bWUgfSA9IGltcG9ydFN5bmMoJ2VtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0JykgYXMgeyBjb25zdW1lOiB0eXBlb2Ygc2VydmljZSB9O1xuICBjb25zdW1lID0gY29udGV4dENvbnN1bWU7XG59XG5cbmZ1bmN0aW9uIGlzTmV2ZXJTdHJpbmcodmFsOiBuZXZlcik6IHN0cmluZyB7XG4gIHJldHVybiB2YWw7XG59XG5cbnR5cGUgQXV0b3JlZnJlc2hCZWhhdmlvclR5cGUgPSAnb25saW5lJyB8ICdpbnRlcnZhbCcgfCAnaW52YWxpZCc7XG50eXBlIEF1dG9yZWZyZXNoQmVoYXZpb3JDb21ib3MgPVxuICB8IHRydWVcbiAgfCBBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZVxuICB8IGAke0F1dG9yZWZyZXNoQmVoYXZpb3JUeXBlfSwke0F1dG9yZWZyZXNoQmVoYXZpb3JUeXBlfWBcbiAgfCBgJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX0sJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX0sJHtBdXRvcmVmcmVzaEJlaGF2aW9yVHlwZX1gO1xuXG50eXBlIENvbnRlbnRGZWF0dXJlczxSVD4gPSB7XG4gIGlzT25saW5lOiBib29sZWFuO1xuICBpc0hpZGRlbjogYm9vbGVhbjtcbiAgaXNSZWZyZXNoaW5nOiBib29sZWFuO1xuICByZWZyZXNoOiAoKSA9PiBQcm9taXNlPHZvaWQ-O1xuICByZWxvYWQ6ICgpID0-IFByb21pc2U8dm9pZD47XG4gIGFib3J0PzogKCkgPT4gdm9pZDtcbiAgbGF0ZXN0UmVxdWVzdD86IEZ1dHVyZTxSVD47XG59O1xuXG5pbnRlcmZhY2UgUmVxdWVzdFNpZ25hdHVyZTxULCBSVD4ge1xuICBBcmdzOiB7XG4gICAgcmVxdWVzdD86IEZ1dHVyZTxSVD47XG4gICAgcXVlcnk_OiBTdG9yZVJlcXVlc3RJbnB1dDxULCBSVD47XG4gICAgc3RvcmU_OiBTdG9yZTtcbiAgICBhdXRvcmVmcmVzaD86IEF1dG9yZWZyZXNoQmVoYXZpb3JDb21ib3M7XG4gICAgYXV0b3JlZnJlc2hUaHJlc2hvbGQ_OiBudW1iZXI7XG4gICAgYXV0b3JlZnJlc2hCZWhhdmlvcj86ICdyZWZyZXNoJyB8ICdyZWxvYWQnIHwgJ3BvbGljeSc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGlkbGU6IFtdO1xuICAgIGxvYWRpbmc6IFtzdGF0ZTogUmVxdWVzdExvYWRpbmdTdGF0ZV07XG4gICAgY2FuY2VsbGVkOiBbXG4gICAgICBlcnJvcjogU3RydWN0dXJlZEVycm9yRG9jdW1lbnQsXG4gICAgICBmZWF0dXJlczogeyBpc09ubGluZTogYm9vbGVhbjsgaXNIaWRkZW46IGJvb2xlYW47IHJldHJ5OiAoKSA9PiBQcm9taXNlPHZvaWQ-IH0sXG4gICAgXTtcbiAgICBlcnJvcjogW1xuICAgICAgZXJyb3I6IFN0cnVjdHVyZWRFcnJvckRvY3VtZW50LFxuICAgICAgZmVhdHVyZXM6IHsgaXNPbmxpbmU6IGJvb2xlYW47IGlzSGlkZGVuOiBib29sZWFuOyByZXRyeTogKCkgPT4gUHJvbWlzZTx2b2lkPiB9LFxuICAgIF07XG4gICAgY29udGVudDogW3ZhbHVlOiBSVCwgZmVhdHVyZXM6IENvbnRlbnRGZWF0dXJlczxSVD5dO1xuICAgIGFsd2F5czogW3N0YXRlOiBSZXF1ZXN0U3RhdGU8VCwgUlQ-XTtcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGUgYDxSZXF1ZXN0PmAgY29tcG9uZW50IGlzIGEgcG93ZXJmdWwgdG9vbCBmb3IgbWFuYWdpbmcgZGF0YSBmZXRjaGluZyBhbmRcbiAqIHN0YXRlIGluIHlvdXIgRW1iZXIgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIGRlY2xhcmF0aXZlIHJlYWN0aXZlIGNvbnRyb2wtZmxvd1xuICogZm9yIG1hbmFnaW5nIHJlcXVlc3RzIGFuZCBzdGF0ZSBpbiB5b3VyIGFwcGxpY2F0aW9uLlxuICpcbiAqIEB0eXBlZG9jXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0PFQsIFJUPiBleHRlbmRzIENvbXBvbmVudDxSZXF1ZXN0U2lnbmF0dXJlPFQsIFJUPj4ge1xuICAvKipcbiAgICogVGhlIHN0b3JlIGluc3RhbmNlIHRvIHVzZSBmb3IgbWFraW5nIHJlcXVlc3RzLiBJZiBjb250ZXh0cyBhcmUgYXZhaWxhYmxlLCB0aGlzXG4gICAqIHdpbGwgYmUgdGhlIGBzdG9yZWAgb24gdGhlIGNvbnRleHQsIGVsc2UgaXQgd2lsbCBiZSB0aGUgc3RvcmUgc2VydmljZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAY29uc3VtZSgnc3RvcmUnKSBkZWNsYXJlIF9zdG9yZTogU3RvcmU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJyb3dzZXIgcmVwb3J0cyB0aGF0IHRoZSBuZXR3b3JrIGlzIG9ubGluZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAdHJhY2tlZCBpc09ubGluZSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJyb3dzZXIgcmVwb3J0cyB0aGF0IHRoZSB0YWIgaXMgaGlkZGVuLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEB0cmFja2VkIGlzSGlkZGVuID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSByZWZyZXNoaW5nIHRoZSByZXF1ZXN0LlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEB0cmFja2VkIGlzUmVmcmVzaGluZyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnQgYmxvY2tpbmcgcmVxdWVzdCB0aGF0IHdhcyBtYWRlLCB0eXBpY2FsbHlcbiAgICogdGhlIHJlc3VsdCBvZiBhIHJlbG9hZC5cbiAgICpcbiAgICogVGhpcyB3aWxsIG5ldmVyIGJlIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHBhc3NlZCBhcyBhbiBhcmcgdG9cbiAgICogdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAdHJhY2tlZCBfbG9jYWxSZXF1ZXN0OiBGdXR1cmU8UlQ-IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnQgcmVxdWVzdCB0aGF0IHdhcyBtYWRlLCB0eXBpY2FsbHkgZHVlIHRvIGVpdGhlciBhXG4gICAqIHJlbG9hZCBvciBhIHJlZnJlc2guXG4gICAqXG4gICAqIFRoaXMgd2lsbCBuZXZlciBiZSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBwYXNzZWQgYXMgYW4gYXJnIHRvXG4gICAqIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQHRyYWNrZWQgX2xhdGVzdFJlcXVlc3Q6IEZ1dHVyZTxSVD4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBuZXR3b3JrIHdhcyByZXBvcnRlZCBhcyBvZmZsaW5lLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRlY2xhcmUgdW5hdmFpbGFibGVTdGFydDogbnVtYmVyIHwgbnVsbDtcbiAgZGVjbGFyZSBpbnRlcnZhbFN0YXJ0OiBudW1iZXIgfCBudWxsO1xuICBkZWNsYXJlIG5leHRJbnRlcnZhbDogbnVtYmVyIHwgbnVsbDtcbiAgZGVjbGFyZSBpbnZhbGlkYXRlZDogYm9vbGVhbjtcbiAgZGVjbGFyZSBpc1VwZGF0aW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgbGlzdGVuZXIgZm9yIG5ldHdvcmsgc3RhdHVzIGNoYW5nZXMsXG4gICAqIGNhY2hlZCB0byB1c2UgdGhlIHJlZmVyZW5jZSBmb3IgcmVtb3ZhbC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBkZWNsYXJlIG9ubGluZUNoYW5nZWQ6IChldmVudDogRXZlbnQpID0-IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBldmVudCBsaXN0ZW5lciBmb3IgdmlzaWJpbGl0eSBzdGF0dXMgY2hhbmdlcyxcbiAgICogY2FjaGVkIHRvIHVzZSB0aGUgcmVmZXJlbmNlIGZvciByZW1vdmFsLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRlY2xhcmUgYmFja2dyb3VuZENoYW5nZWQ6IChldmVudDogRXZlbnQpID0-IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXN0IHJlcXVlc3QgcGFzc2VkIGFzIGFuIGFyZyB0byB0aGUgY29tcG9uZW50LFxuICAgKiBjYWNoZWQgZm9yIGNvbXBhcmlzb24uXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGVjbGFyZSBfb3JpZ2luYWxSZXF1ZXN0OiBGdXR1cmU8UlQ-IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFzdCBxdWVyeSBwYXNzZWQgYXMgYW4gYXJnIHRvIHRoZSBjb21wb25lbnQsXG4gICAqIGNhY2hlZCBmb3IgY29tcGFyaXNvbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBkZWNsYXJlIF9vcmlnaW5hbFF1ZXJ5OiBTdG9yZVJlcXVlc3RJbnB1dDxULCBSVD4gfCB1bmRlZmluZWQ7XG5cbiAgZGVjbGFyZSBfc3Vic2NyaXB0aW9uOiBvYmplY3QgfCBudWxsO1xuICBkZWNsYXJlIF9zdWJzY3JpYmVkVG86IG9iamVjdCB8IG51bGw7XG5cbiAgY29uc3RydWN0b3Iob3duZXI6IHVua25vd24sIGFyZ3M6IFJlcXVlc3RTaWduYXR1cmU8VCwgUlQ-WydBcmdzJ10pIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgdGhpcy5fc3Vic2NyaWJlZFRvID0gbnVsbDtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIHRoaXMuaW50ZXJ2YWxTdGFydCA9IG51bGw7XG4gICAgdGhpcy5pbnZhbGlkYXRlZCA9IGZhbHNlO1xuICAgIHRoaXMubmV4dEludGVydmFsID0gbnVsbDtcblxuICAgIHRoaXMuaW5zdGFsbExpc3RlbmVycygpO1xuICAgIHZvaWQgdGhpcy5iZWdpblBvbGxpbmcoKTtcbiAgfVxuXG4gIGFzeW5jIGJlZ2luUG9sbGluZygpIHtcbiAgICAvLyBhd2FpdCB0aGUgaW5pdGlhbCByZXF1ZXN0XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucmVxdWVzdDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGlnbm9yZSBlcnJvcnMgaGVyZSwgd2UganVzdCB3YW50IHRvIHdhaXQgZm9yIHRoZSByZXF1ZXN0IHRvIGZpbmlzaFxuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgdm9pZCB0aGlzLnNjaGVkdWxlSW50ZXJ2YWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBpc0lkbGUoKSB7XG4gICAgY29uc3QgeyByZXF1ZXN0LCBxdWVyeSB9ID0gdGhpcy5hcmdzO1xuXG4gICAgcmV0dXJuIEJvb2xlYW4oIXJlcXVlc3QgJiYgIXF1ZXJ5KTtcbiAgfVxuXG4gIEBjYWNoZWRcbiAgZ2V0IGF1dG9yZWZyZXNoVHlwZXMoKTogU2V0PEF1dG9yZWZyZXNoQmVoYXZpb3JUeXBlPiB7XG4gICAgY29uc3QgeyBhdXRvcmVmcmVzaCB9ID0gdGhpcy5hcmdzO1xuICAgIGxldCB0eXBlczogQXV0b3JlZnJlc2hCZWhhdmlvclR5cGVbXTtcblxuICAgIGlmIChhdXRvcmVmcmVzaCA9PT0gdHJ1ZSkge1xuICAgICAgdHlwZXMgPSBbJ29ubGluZScsICdpbnZhbGlkJ107XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYXV0b3JlZnJlc2ggPT09ICdzdHJpbmcnKSB7XG4gICAgICB0eXBlcyA9IGF1dG9yZWZyZXNoLnNwbGl0KCcsJykgYXMgQXV0b3JlZnJlc2hCZWhhdmlvclR5cGVbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZXMgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFNldCh0eXBlcyk7XG4gIH1cblxuICAvLyB3ZSBvbmx5IHJ1biB0aGlzIGZ1bmN0aW9uIG9uIGNvbXBvbmVudCBjcmVhdGlvblxuICAvLyBhbmQgd2hlbiBhbiB1cGRhdGUgaXMgdHJpZ2dlcmVkLCBzbyBpdCBkb2VzIG5vdFxuICAvLyByZWFjdCB0byBjaGFuZ2VzIGluIHRoZSBhdXRvcmVmcmVzaFRocmVzaG9sZFxuICAvLyBvciBhdXRvcmVmcmVzaCBhcmdzLlxuICAvL1xuICAvLyBpZiB3ZSBuZWVkIHRvIHJlYWN0IHRvIHRob3NlIGNoYW5nZXMsIHdlIGNhblxuICAvLyB1c2UgYSBtb2RpZmllciBvciBpbnRlcm5hbCBjb21wb25lbnQgb3Igc29tZVxuICAvLyBzdWNoIHRvIHRyaWdnZXIgYSByZS1ydW4gb2YgdGhpcyBmdW5jdGlvbi5cbiAgYXN5bmMgc2NoZWR1bGVJbnRlcnZhbCgpIHtcbiAgICBjb25zdCB7IGF1dG9yZWZyZXNoVGhyZXNob2xkIH0gPSB0aGlzLmFyZ3M7XG4gICAgY29uc3QgaGFzVmFsaWRUaHJlc2hvbGQgPSB0eXBlb2YgYXV0b3JlZnJlc2hUaHJlc2hvbGQgPT09ICdudW1iZXInICYmIGF1dG9yZWZyZXNoVGhyZXNob2xkID4gMDtcbiAgICBpZiAoXG4gICAgICAvLyBkb250IHNjaGVkdWxlIGluIFNTUlxuICAgICAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIC8vIGRvbnQgc2NoZWR1bGUgd2l0aG91dCBhIHRocmVzaG9sZFxuICAgICAgIWhhc1ZhbGlkVGhyZXNob2xkIHx8XG4gICAgICAvLyBkb250IHNjaGVkdWxlIGlmIHdlIHdlcmVuJ3QgdG9sZCB0b1xuICAgICAgIXRoaXMuYXV0b3JlZnJlc2hUeXBlcy5oYXMoJ2ludGVydmFsJykgfHxcbiAgICAgIC8vIGRvbnQgc2NoZWR1bGUgaWYgd2UncmUgYWxyZWFkeSBzY2hlZHVsZWRcbiAgICAgIHRoaXMuaW50ZXJ2YWxTdGFydCAhPT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhdmUgYSBjdXJyZW50IHJlcXVlc3QsIHdhaXQgZm9yIGl0IHRvIGZpbmlzaFxuICAgIC8vIGJlZm9yZSBzY2hlZHVsaW5nIHRoZSBuZXh0IG9uZVxuICAgIGlmICh0aGlzLl9sYXRlc3RSZXF1ZXN0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9sYXRlc3RSZXF1ZXN0O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIGlnbm9yZSBlcnJvcnMgaGVyZSwgd2UganVzdCB3YW50IHRvIHdhaXQgZm9yIHRoZSByZXF1ZXN0IHRvIGZpbmlzaFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2V0dXAgdGhlIG5leHQgaW50ZXJ2YWxcbiAgICB0aGlzLmludGVydmFsU3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMubmV4dEludGVydmFsID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1heWJlVXBkYXRlKCk7XG4gICAgfSwgYXV0b3JlZnJlc2hUaHJlc2hvbGQpO1xuICB9XG5cbiAgY2xlYXJJbnRlcnZhbCgpIHtcbiAgICBpZiAodGhpcy5uZXh0SW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm5leHRJbnRlcnZhbCk7XG4gICAgICB0aGlzLmludGVydmFsU3RhcnQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuaXNJZGxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RJZCA9IHRoaXMuX3JlcXVlc3QubGlkO1xuXG4gICAgLy8gaWYgd2UncmUgYWxyZWFkeSBzdWJzY3JpYmVkIHRvIHRoaXMgcmVxdWVzdCwgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgIGlmICh0aGlzLl9zdWJzY3JpYmVkVG8gPT09IHJlcXVlc3RJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHdlJ3JlIHN1YnNjcmliZWQgdG8gYSBkaWZmZXJlbnQgcmVxdWVzdCwgd2UgbmVlZCB0byB1bnN1YnNjcmliZVxuICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgLy8gaWYgd2UgaGF2ZSBhIHJlcXVlc3QsIHdlIG5lZWQgdG8gc3Vic2NyaWJlIHRvIGl0XG4gICAgaWYgKHJlcXVlc3RJZCkge1xuICAgICAgdGhpcy5fc3Vic2NyaWJlZFRvID0gcmVxdWVzdElkO1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5ub3RpZmljYXRpb25zLnN1YnNjcmliZShcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICAoX2lkOiBTdGFibGVEb2N1bWVudElkZW50aWZpZXIsIG9wOiAnaW52YWxpZGF0ZWQnIHwgJ3N0YXRlJyB8ICdhZGRlZCcgfCAndXBkYXRlZCcgfCAncmVtb3ZlZCcpID0-IHtcbiAgICAgICAgICAvLyBpZ25vcmUgc3Vic2NyaXB0aW9uIGV2ZW50cyB0aGF0IG9jY3VyIHdoaWxlIG91ciBvd24gY29tcG9uZW50J3MgcmVxdWVzdFxuICAgICAgICAgIC8vIGlzIG9jdXJyaW5nXG4gICAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzd2l0Y2ggKG9wKSB7XG4gICAgICAgICAgICBjYXNlICdpbnZhbGlkYXRlZCc6IHtcbiAgICAgICAgICAgICAgLy8gaWYgd2UncmUgc3Vic2NyaWJlZCB0byBpbnZhbGlkYXRpb25zLCB3ZSBuZWVkIHRvIHVwZGF0ZVxuICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvcmVmcmVzaFR5cGVzLmhhcygnaW52YWxpZCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXliZVVwZGF0ZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnc3RhdGUnOiB7XG4gICAgICAgICAgICAgIGNvbnN0IGxhdGVzdCA9IHRoaXMuc3RvcmUucmVxdWVzdE1hbmFnZXIuX2RlZHVwZWQuZ2V0KHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgIGNvbnN0IHByaW9yaXR5ID0gbGF0ZXN0Py5wcmlvcml0eTtcbiAgICAgICAgICAgICAgaWYgKCFwcmlvcml0eSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJpb3JpdHkuYmxvY2tpbmcpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPIHNob3VsZCB3ZSBqdXN0IHRyZWF0IHRoaXMgYXMgcmVmcmVzaGluZz9cbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVVcGRhdGUoJ3BvbGljeScsIHRydWUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVTdWJzY3JpcHRpb25zKCkge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RvcmUubm90aWZpY2F0aW9ucy51bnN1YnNjcmliZSh0aGlzLl9zdWJzY3JpcHRpb24pO1xuICAgICAgdGhpcy5fc3Vic2NyaWJlZFRvID0gbnVsbDtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGwgdGhlIGV2ZW50IGxpc3RlbmVycyBmb3IgbmV0d29yayBhbmQgdmlzaWJpbGl0eSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgZG9uZSBpbiBicm93c2VyIGVudmlyb25tZW50cyB3aXRoIGEgZ2xvYmFsIGB3aW5kb3dgLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGluc3RhbGxMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc09ubGluZSA9IHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IHRoaXMuaXNPbmxpbmUgPyBudWxsIDogRGF0ZS5ub3coKTtcbiAgICB0aGlzLmlzSGlkZGVuID0gZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJztcblxuICAgIHRoaXMub25saW5lQ2hhbmdlZCA9IChldmVudDogRXZlbnQpID0-IHtcbiAgICAgIHRoaXMuaXNPbmxpbmUgPSBldmVudC50eXBlID09PSAnb25saW5lJztcbiAgICAgIGlmIChldmVudC50eXBlID09PSAnb2ZmbGluZScgJiYgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IERhdGUubm93KCk7XG4gICAgICB9XG4gICAgICB0aGlzLm1heWJlVXBkYXRlKCk7XG4gICAgfTtcbiAgICB0aGlzLmJhY2tncm91bmRDaGFuZ2VkID0gKCkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW4gPSBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nO1xuICAgICAgdGhpcy5pc0hpZGRlbiA9IGlzSGlkZGVuO1xuXG4gICAgICBpZiAoaXNIaWRkZW4gJiYgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IERhdGUubm93KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWF5YmVVcGRhdGUoKTtcbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIHRoaXMub25saW5lQ2hhbmdlZCwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHRoaXMuYmFja2dyb3VuZENoYW5nZWQsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgbmV0d29yayBpcyBvbmxpbmUgYW5kIHRoZSB0YWIgaXMgdmlzaWJsZSwgZWl0aGVyIHJlbG9hZCBvciByZWZyZXNoIHRoZSByZXF1ZXN0XG4gICAqIGJhc2VkIG9uIHRoZSBjb21wb25lbnQncyBjb25maWd1cmF0aW9uIGFuZCB0aGUgcmVxdWVzdGVkIHVwZGF0ZSBtb2RlLlxuICAgKlxuICAgKiBWYWxpZCBtb2RlcyBhcmU6XG4gICAqXG4gICAqIC0gYCdyZWxvYWQnYDogRm9yY2UgYSByZWxvYWQgb2YgdGhlIHJlcXVlc3QuXG4gICAqIC0gYCdyZWZyZXNoJ2A6IFJlZnJlc2ggdGhlIHJlcXVlc3QgaW4gdGhlIGJhY2tncm91bmQuXG4gICAqIC0gYCdwb2xpY3knYDogTWFrZSB0aGUgcmVxdWVzdCwgbGV0dGluZyB0aGUgc3RvcmUncyBjb25maWd1cmVkIENhY2hlUG9saWN5IGRlY2lkZSB3aGV0aGVyIHRvIHJlbG9hZCwgcmVmcmVzaCwgb3IgZG8gbm90aGluZy5cbiAgICogLSBgdW5kZWZpbmVkYDogTWFrZSB0aGUgcmVxdWVzdCB1c2luZyB0aGUgY29tcG9uZW50J3MgYXV0b3JlZnJlc2hCZWhhdmlvciBzZXR0aW5nIGlmIHRoZSBhdXRvcmVmcmVzaFRocmVzaG9sZCBoYXMgcGFzc2VkLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG1heWJlVXBkYXRlKG1vZGU_OiAncmVsb2FkJyB8ICdyZWZyZXNoJyB8ICdwb2xpY3knIHwgJ2ludmFsaWRhdGVkJywgc2lsZW50PzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSWRsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjYW5BdHRlbXB0ID0gQm9vbGVhbih0aGlzLmlzT25saW5lICYmICF0aGlzLmlzSGlkZGVuICYmIChtb2RlIHx8IHRoaXMuYXV0b3JlZnJlc2hUeXBlcy5zaXplKSk7XG5cbiAgICBpZiAoIWNhbkF0dGVtcHQpIHtcbiAgICAgIGlmICghc2lsZW50ICYmIG1vZGUgJiYgbW9kZSAhPT0gJ2ludmFsaWRhdGVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlbG9hZCBub3QgYXZhaWxhYmxlOiB0aGUgbmV0d29yayBpcyBub3Qgb25saW5lIG9yIHRoZSB0YWIgaXMgaGlkZGVuYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IGF1dG9yZWZyZXNoVHlwZXMgfSA9IHRoaXM7XG4gICAgbGV0IHNob3VsZEF0dGVtcHQgPSB0aGlzLmludmFsaWRhdGVkIHx8IEJvb2xlYW4obW9kZSk7XG5cbiAgICBpZiAoIXNob3VsZEF0dGVtcHQgJiYgYXV0b3JlZnJlc2hUeXBlcy5oYXMoJ29ubGluZScpKSB7XG4gICAgICBjb25zdCB7IHVuYXZhaWxhYmxlU3RhcnQgfSA9IHRoaXM7XG4gICAgICBjb25zdCB7IGF1dG9yZWZyZXNoVGhyZXNob2xkIH0gPSB0aGlzLmFyZ3M7XG4gICAgICBjb25zdCBkZWFkbGluZSA9IHR5cGVvZiBhdXRvcmVmcmVzaFRocmVzaG9sZCA9PT0gJ251bWJlcicgPyBhdXRvcmVmcmVzaFRocmVzaG9sZCA6IERFRkFVTFRfREVBRExJTkU7XG4gICAgICBzaG91bGRBdHRlbXB0ID0gQm9vbGVhbih1bmF2YWlsYWJsZVN0YXJ0ICYmIERhdGUubm93KCkgLSB1bmF2YWlsYWJsZVN0YXJ0ID4gZGVhZGxpbmUpO1xuICAgIH1cblxuICAgIGlmICghc2hvdWxkQXR0ZW1wdCAmJiBhdXRvcmVmcmVzaFR5cGVzLmhhcygnaW50ZXJ2YWwnKSkge1xuICAgICAgY29uc3QgeyBpbnRlcnZhbFN0YXJ0IH0gPSB0aGlzO1xuICAgICAgY29uc3QgeyBhdXRvcmVmcmVzaFRocmVzaG9sZCB9ID0gdGhpcy5hcmdzO1xuXG4gICAgICBpZiAoaW50ZXJ2YWxTdGFydCAmJiB0eXBlb2YgYXV0b3JlZnJlc2hUaHJlc2hvbGQgPT09ICdudW1iZXInICYmIGF1dG9yZWZyZXNoVGhyZXNob2xkID4gMCkge1xuICAgICAgICBzaG91bGRBdHRlbXB0ID0gQm9vbGVhbihEYXRlLm5vdygpIC0gaW50ZXJ2YWxTdGFydCA-PSBhdXRvcmVmcmVzaFRocmVzaG9sZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID0gbnVsbDtcbiAgICB0aGlzLmludmFsaWRhdGVkID0gZmFsc2U7XG5cbiAgICBpZiAoc2hvdWxkQXR0ZW1wdCkge1xuICAgICAgdGhpcy5jbGVhckludGVydmFsKCk7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5yZXFTdGF0ZS5yZXF1ZXN0IGFzIHVua25vd24gYXMgUmVxdWVzdEluZm88VCwgUlQ-KTtcbiAgICAgIGNvbnN0IHJlYWxNb2RlID0gbW9kZSA9PT0gJ2ludmFsaWRhdGVkJyA_IG51bGwgOiBtb2RlO1xuICAgICAgY29uc3QgdmFsID0gcmVhbE1vZGUgPz8gdGhpcy5hcmdzLmF1dG9yZWZyZXNoQmVoYXZpb3IgPz8gJ3BvbGljeSc7XG4gICAgICBzd2l0Y2ggKHZhbCkge1xuICAgICAgICBjYXNlICdyZWxvYWQnOlxuICAgICAgICAgIHJlcXVlc3QuY2FjaGVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxdWVzdC5jYWNoZU9wdGlvbnMsIHsgcmVsb2FkOiB0cnVlIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZWZyZXNoJzpcbiAgICAgICAgICByZXF1ZXN0LmNhY2hlT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcXVlc3QuY2FjaGVPcHRpb25zLCB7IGJhY2tncm91bmRSZWxvYWQ6IHRydWUgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3BvbGljeSc6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEludmFsaWQgJHttb2RlID8gJ3VwZGF0ZSBtb2RlJyA6ICdAYXV0b3JlZnJlc2hCZWhhdmlvcid9IGZvciA8UmVxdWVzdCAvPjogJHtpc05ldmVyU3RyaW5nKHZhbCl9YFxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdhc1N0b3JlUmVxdWVzdCA9IChyZXF1ZXN0IGFzIHsgW0VuYWJsZUh5ZHJhdGlvbl06IGJvb2xlYW4gfSlbRW5hYmxlSHlkcmF0aW9uXSA9PT0gdHJ1ZTtcbiAgICAgIGFzc2VydChcbiAgICAgICAgYENhbm5vdCBzdXBwbHkgYSBkaWZmZXJlbnQgc3RvcmUgdmlhIGNvbnRleHQgdGhhbiB3YXMgdXNlZCB0byBjcmVhdGUgdGhlIHJlcXVlc3RgLFxuICAgICAgICAhcmVxdWVzdC5zdG9yZSB8fCByZXF1ZXN0LnN0b3JlID09PSB0aGlzLnN0b3JlXG4gICAgICApO1xuXG4gICAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fbGF0ZXN0UmVxdWVzdCA9IHdhc1N0b3JlUmVxdWVzdCA_IHRoaXMuc3RvcmUucmVxdWVzdChyZXF1ZXN0KSA6IHRoaXMuc3RvcmUucmVxdWVzdE1hbmFnZXIucmVxdWVzdChyZXF1ZXN0KTtcblxuICAgICAgaWYgKHZhbCAhPT0gJ3JlZnJlc2gnKSB7XG4gICAgICAgIHRoaXMuX2xvY2FsUmVxdWVzdCA9IHRoaXMuX2xhdGVzdFJlcXVlc3Q7XG4gICAgICB9XG5cbiAgICAgIHZvaWQgdGhpcy5zY2hlZHVsZUludGVydmFsKCk7XG4gICAgICB2b2lkIHRoaXMuX2xhdGVzdFJlcXVlc3QuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE8gcHJvYmFibHkgd2FudCB0aGlzXG4gICAgICAvLyB2b2lkIHRoaXMuc2NoZWR1bGVJbnRlcnZhbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyeSB0aGUgcmVxdWVzdCwgcmVsb2FkaW5nIGl0IGZyb20gdGhlIHNlcnZlci5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICByZXRyeSA9IGFzeW5jICgpID0-IHtcbiAgICB0aGlzLm1heWJlVXBkYXRlKCdyZWxvYWQnKTtcbiAgICBhd2FpdCB0aGlzLl9sb2NhbFJlcXVlc3Q7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIHJlcXVlc3QsIHVwZGF0aW5nIGl0IGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZnJlc2ggPSBhc3luYyAoKSA9PiB7XG4gICAgdGhpcy5tYXliZVVwZGF0ZSgncmVmcmVzaCcpO1xuICAgIGF3YWl0IHRoaXMuX2xhdGVzdFJlcXVlc3Q7XG4gIH07XG5cbiAgQGNhY2hlZFxuICBnZXQgZXJyb3JGZWF0dXJlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNIaWRkZW46IHRoaXMuaXNIaWRkZW4sXG4gICAgICBpc09ubGluZTogdGhpcy5pc09ubGluZSxcbiAgICAgIHJldHJ5OiB0aGlzLnJldHJ5LFxuICAgIH07XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBjb250ZW50RmVhdHVyZXMoKSB7XG4gICAgY29uc3QgZmVhdDogQ29udGVudEZlYXR1cmVzPFJUPiA9IHtcbiAgICAgIGlzSGlkZGVuOiB0aGlzLmlzSGlkZGVuLFxuICAgICAgaXNPbmxpbmU6IHRoaXMuaXNPbmxpbmUsXG4gICAgICByZWxvYWQ6IHRoaXMucmV0cnksXG4gICAgICByZWZyZXNoOiB0aGlzLnJlZnJlc2gsXG4gICAgICBpc1JlZnJlc2hpbmc6IHRoaXMuaXNSZWZyZXNoaW5nLFxuICAgICAgbGF0ZXN0UmVxdWVzdDogdGhpcy5fbGF0ZXN0UmVxdWVzdCxcbiAgICB9O1xuXG4gICAgaWYgKGZlYXQuaXNSZWZyZXNoaW5nKSB7XG4gICAgICBmZWF0LmFib3J0ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9sYXRlc3RSZXF1ZXN0Py5hYm9ydCgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmVhdDtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhckludGVydmFsKCk7XG5cbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb25saW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSBhcyB1bmtub3duIGFzIGJvb2xlYW4pO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSBhcyB1bmtub3duIGFzIGJvb2xlYW4pO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLmJhY2tncm91bmRDaGFuZ2VkLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9IGFzIHVua25vd24gYXMgYm9vbGVhbik7XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBfcmVxdWVzdCgpOiBGdXR1cmU8UlQ-IHtcbiAgICBjb25zdCB7IHJlcXVlc3QsIHF1ZXJ5IH0gPSB0aGlzLmFyZ3M7XG4gICAgYXNzZXJ0KGBDYW5ub3QgdXNlIGJvdGggQHJlcXVlc3QgYW5kIEBxdWVyeSBhcmdzIHdpdGggdGhlIDxSZXF1ZXN0PiBjb21wb25lbnRgLCAhcmVxdWVzdCB8fCAhcXVlcnkpO1xuICAgIGNvbnN0IHsgX2xvY2FsUmVxdWVzdCwgX29yaWdpbmFsUmVxdWVzdCwgX29yaWdpbmFsUXVlcnkgfSA9IHRoaXM7XG4gICAgY29uc3QgaXNPcmlnaW5hbFJlcXVlc3QgPSByZXF1ZXN0ID09PSBfb3JpZ2luYWxSZXF1ZXN0ICYmIHF1ZXJ5ID09PSBfb3JpZ2luYWxRdWVyeTtcblxuICAgIGlmIChfbG9jYWxSZXF1ZXN0ICYmIGlzT3JpZ2luYWxSZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gX2xvY2FsUmVxdWVzdDtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgc3RhdGUgY2hlY2tzIGZvciB0aGUgbmV4dCB0aW1lXG4gICAgdGhpcy5fb3JpZ2luYWxRdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMuX29yaWdpbmFsUmVxdWVzdCA9IHJlcXVlc3Q7XG5cbiAgICBpZiAocmVxdWVzdCkge1xuICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuICAgIGFzc2VydChgWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgQHJlcXVlc3Qgb3IgYW4gQHF1ZXJ5IGFyZyB3aXRoIHRoZSA8UmVxdWVzdD4gY29tcG9uZW50YCwgcXVlcnkpO1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnJlcXVlc3Q8UlQsIFQ-KHF1ZXJ5KTtcbiAgfVxuXG4gIEBjYWNoZWRcbiAgZ2V0IHJlcXVlc3QoKTogRnV0dXJlPFJUPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuX3JlcXVlc3Q7XG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb25zKCk7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBnZXQgc3RvcmUoKTogU3RvcmUge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5hcmdzLnN0b3JlIHx8IHRoaXMuX3N0b3JlO1xuICAgIGFzc2VydChcbiAgICAgIG1vZHVsZUV4aXN0cygnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnKVxuICAgICAgICA_IGBObyBzdG9yZSB3YXMgcHJvdmlkZWQgdG8gdGhlIDxSZXF1ZXN0PiBjb21wb25lbnQuIEVpdGhlciBwcm92aWRlIGEgc3RvcmUgdmlhIHRoZSBAc3RvcmUgYXJnIG9yIHZpYSB0aGUgY29udGV4dCBBUEkgcHJvdmlkZWQgYnkgZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQuYFxuICAgICAgICA6IGBObyBzdG9yZSB3YXMgcHJvdmlkZWQgdG8gdGhlIDxSZXF1ZXN0PiBjb21wb25lbnQuIEVpdGhlciBwcm92aWRlIGEgc3RvcmUgdmlhIHRoZSBAc3RvcmUgYXJnIG9yIGJ5IHJlZ2lzdGVyaW5nIGEgc3RvcmUgc2VydmljZS5gLFxuICAgICAgc3RvcmVcbiAgICApO1xuICAgIHJldHVybiBzdG9yZTtcbiAgfVxuXG4gIGdldCByZXFTdGF0ZSgpIHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdFN0YXRlPFJULCBUPih0aGlzLnJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXFTdGF0ZS5yZXN1bHQgYXMgUlQ7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGFuZCB0aGlzLmlzSWRsZSAoaGFzLWJsb2NrIFwiaWRsZVwiKSl9fVxuICAgICAge3t5aWVsZCB0bz1cImlkbGVcIn19XG4gICAge3tlbHNlIGlmIHRoaXMuaXNJZGxlfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3tJZGxlQmxvY2tNaXNzaW5nRXJyb3J9fSAvPlxuICAgIHt7ZWxzZSBpZiB0aGlzLnJlcVN0YXRlLmlzTG9hZGluZ319XG4gICAgICB7e3lpZWxkIHRoaXMucmVxU3RhdGUubG9hZGluZ1N0YXRlIHRvPVwibG9hZGluZ1wifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnJlcVN0YXRlLmlzQ2FuY2VsbGVkIChoYXMtYmxvY2sgXCJjYW5jZWxsZWRcIikpfX1cbiAgICAgIHt7eWllbGQgKG5vdE51bGwgdGhpcy5yZXFTdGF0ZS5lcnJvcikgdGhpcy5lcnJvckZlYXR1cmVzIHRvPVwiY2FuY2VsbGVkXCJ9fVxuICAgIHt7ZWxzZSBpZiAoYW5kIHRoaXMucmVxU3RhdGUuaXNFcnJvciAoaGFzLWJsb2NrIFwiZXJyb3JcIikpfX1cbiAgICAgIHt7eWllbGQgKG5vdE51bGwgdGhpcy5yZXFTdGF0ZS5lcnJvcikgdGhpcy5lcnJvckZlYXR1cmVzIHRvPVwiZXJyb3JcIn19XG4gICAge3tlbHNlIGlmIHRoaXMucmVxU3RhdGUuaXNTdWNjZXNzfX1cbiAgICAgIHt7eWllbGQgdGhpcy5yZXN1bHQgdGhpcy5jb250ZW50RmVhdHVyZXMgdG89XCJjb250ZW50XCJ9fVxuICAgIHt7ZWxzZSBpZiAobm90IHRoaXMucmVxU3RhdGUuaXNDYW5jZWxsZWQpfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3sobm90TnVsbCB0aGlzLnJlcVN0YXRlLmVycm9yKX19IC8-XG4gICAge3svaWZ9fVxuICAgIHt7eWllbGQgdGhpcy5yZXFTdGF0ZSB0bz1cImFsd2F5c1wifX1cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxPQUFPLFFBQVEsaUJBQWlCO0FBQ3pDLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxNQUFNLEVBQUUsT0FBTyxRQUFRLG9CQUFvQjtBQUVwRCxTQUFTLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxRQUFRLG9CQUFvQjtBQUU3RSxjQUFjLE1BQU0sRUFBRSx1QkFBdUIsUUFBUSxzQkFBc0I7QUFDM0UsY0FBYyxpQkFBaUIsUUFBUSxvQkFBb0I7QUFDM0QsWUFBWSxXQUFXLG9CQUFvQjtBQUMzQyxTQUFTLE1BQU0sUUFBUSxrQ0FBa0M7QUFDekQsY0FBYyx3QkFBd0IsUUFBUSx1Q0FBdUM7QUFDckYsU0FBUyxlQUFlLEVBQUUsS0FBSyxXQUFXLFFBQVEsaUNBQWlDO0FBRW5GLFNBQVMsR0FBRyxFQUFFLEtBQUssUUFBUSxjQUFjO0FBQ3pDLGNBQWMsbUJBQW1CLEVBQUUsWUFBWSxRQUFRLHFCQUFxQjtBQUM1RSxTQUFTLGVBQWUsUUFBUSxxQkFBcUI7QUFFckQsU0FBUyxRQUFRLElBQUcsSUFBSSxHQUFHLEtBQUs7QUFDaEMsU0FBUyxRQUFRLEdBQUcsSUFBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUk7QUFDMUMsU0FBUyxRQUFRLEdBQUcsSUFBRyxJQUFJLElBQUk7SUFDN0IsT0FBTywyQ0FBMkMsT0FBTTtJQUN4RCxPQUFPO0FBQ1Q7QUFFQSxNQUFNLE1BQU0sQ0FBQyxJQUFHLE9BQU8sR0FBSyxDQUFDO0FBQzdCLHNEQUFzRDtBQUN0RCxNQUFNLG1CQUFtQjtBQUN6QixNQUFNLHdCQUF3QixJQUFJLE1BQ2hDO0FBR0YsSUFBSSxVQUFVO0FBQ2QsSUFBSSxlQUFlLGFBQWEsbUNBQW1DO0lBQ2pFLE1BQU0sRUFBRSxTQUFTLGNBQWMsRUFBRSxHQUFHLFdBQVc7UUFBc0MsZ0JBQWdCOztJQUNy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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","IdleBlockMissingError","consume","service","moduleExists","contextConsume","importSync","isNeverString","val1","Request","unavailableStart","intervalStart","nextInterval","invalidated","isUpdating","onlineChanged","backgroundChanged","_originalRequest","_originalQuery","_subscription","_subscribedTo","installListeners","beginPolling","isDestroyed","scheduleInterval","isIdle","request1","query","query1","cached","autorefreshTypes","autorefresh","autorefresh1","types1","split","Set","autorefreshThreshold","autorefreshThreshold1","hasValidThreshold1","window","has","_latestRequest","Date","setTimeout","maybeUpdate","clearInterval","clearTimeout","updateSubscriptions","requestId1","_request","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","assign","reqState","realMode1","autorefreshBehavior","cacheOptions","reload","backgroundReload","wasStoreRequest1","EnableHydration","_localRequest","finally","retry","refresh","errorFeatures","contentFeatures","feat1","latestRequest","willDestroy","removeEventListener","_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-beta.5",
4
+ "version": "0.0.0-beta.7",
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-beta.10",
45
- "ember-provide-consume-context": "^0.3.1",
44
+ "@warp-drive/core-types": "0.0.0-beta.12",
45
+ "ember-provide-consume-context": "^0.5.0",
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
- "@embroider/macros": "^1.16.1",
51
- "@warp-drive/build-config": "0.0.0-beta.5"
50
+ "@embroider/macros": "^1.16.6",
51
+ "@warp-drive/build-config": "0.0.0-beta.7"
52
52
  },
53
53
  "dependenciesMeta": {
54
54
  "@ember-data/store": {
@@ -83,31 +83,31 @@
83
83
  "@babel/runtime": "^7.24.5",
84
84
  "@glimmer/component": "^1.1.2",
85
85
  "@glimmer/tracking": "^1.1.2",
86
- "@glimmer/validator": "^0.92.0",
86
+ "@glimmer/validator": "^0.92.3",
87
87
  "@glint/core": "^1.4.0",
88
88
  "@glint/environment-ember-loose": "^1.4.0",
89
89
  "@glint/environment-ember-template-imports": "^1.4.0",
90
90
  "@glint/template": "^1.4.0",
91
- "decorator-transforms": "^2.0.0",
91
+ "decorator-transforms": "^2.2.2",
92
92
  "@embroider/addon-dev": "^4.3.1",
93
- "@ember-data/request": "5.4.0-beta.10",
94
- "@ember-data/request-utils": "5.4.0-beta.10",
95
- "@ember-data/store": "5.4.0-beta.10",
96
- "@ember-data/tracking": "5.4.0-beta.10",
97
- "@ember/test-helpers": "^3.3.0",
98
- "@warp-drive/core-types": "0.0.0-beta.10",
99
- "@warp-drive/internal-config": "5.4.0-beta.10",
93
+ "@ember-data/request": "5.4.0-beta.12",
94
+ "@ember-data/request-utils": "5.4.0-beta.12",
95
+ "@ember-data/store": "5.4.0-beta.12",
96
+ "@ember-data/tracking": "5.4.0-beta.12",
97
+ "@ember/test-helpers": "4.0.4",
98
+ "@warp-drive/core-types": "0.0.0-beta.12",
99
+ "@warp-drive/internal-config": "5.4.0-beta.12",
100
100
  "babel-plugin-ember-template-compilation": "^2.2.5",
101
- "ember-template-imports": "^4.1.1",
102
- "ember-source": "~5.8.0",
101
+ "ember-template-imports": "^4.1.3",
102
+ "ember-source": "~5.12.0",
103
103
  "pnpm-sync-dependencies-meta-injected": "0.0.14",
104
104
  "rollup": "^4.17.2",
105
105
  "typescript": "^5.4.5",
106
106
  "vite": "^5.2.11",
107
- "ember-provide-consume-context": "^0.3.1"
107
+ "ember-provide-consume-context": "^0.5.0"
108
108
  },
109
109
  "engines": {
110
- "node": ">= 18.20.3"
110
+ "node": ">= 18.20.4"
111
111
  },
112
112
  "volta": {
113
113
  "extends": "../../package.json"
@@ -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,11 +20,12 @@ 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
  };
25
27
  Blocks: {
28
+ idle: [];
26
29
  loading: [state: RequestLoadingState];
27
30
  cancelled: [
28
31
  error: StructuredErrorDocument,
@@ -44,25 +47,139 @@ declare module '@warp-drive/ember/-private/request' {
44
47
  always: [state: RequestState<T, RT>];
45
48
  };
46
49
  }
50
+ /**
51
+ * The `<Request>` component is a powerful tool for managing data fetching and
52
+ * state in your Ember application. It provides declarative reactive control-flow
53
+ * for managing requests and state in your application.
54
+ *
55
+ * @typedoc
56
+ */
47
57
  export class Request<T, RT> extends Component<RequestSignature<T, RT>> {
48
58
  /**
59
+ * The store instance to use for making requests. If contexts are available, this
60
+ * will be the `store` on the context, else it will be the store service.
61
+ *
49
62
  * @internal
50
63
  */
51
64
  _store: Store;
65
+ /**
66
+ * Whether the browser reports that the network is online.
67
+ *
68
+ * @internal
69
+ */
52
70
  isOnline: boolean;
71
+ /**
72
+ * Whether the browser reports that the tab is hidden.
73
+ *
74
+ * @internal
75
+ */
53
76
  isHidden: boolean;
77
+ /**
78
+ * Whether the component is currently refreshing the request.
79
+ *
80
+ * @internal
81
+ */
54
82
  isRefreshing: boolean;
83
+ /**
84
+ * The most recent blocking request that was made, typically
85
+ * the result of a reload.
86
+ *
87
+ * This will never be the original request passed as an arg to
88
+ * the component.
89
+ *
90
+ * @internal
91
+ */
55
92
  _localRequest: Future<RT> | undefined;
93
+ /**
94
+ * The most recent request that was made, typically due to either a
95
+ * reload or a refresh.
96
+ *
97
+ * This will never be the original request passed as an arg to
98
+ * the component.
99
+ *
100
+ * @internal
101
+ */
56
102
  _latestRequest: Future<RT> | undefined;
103
+ /**
104
+ * The time at which the network was reported as offline.
105
+ *
106
+ * @internal
107
+ */
57
108
  unavailableStart: number | null;
109
+ intervalStart: number | null;
110
+ nextInterval: number | null;
111
+ invalidated: boolean;
112
+ isUpdating: boolean;
113
+ /**
114
+ * The event listener for network status changes,
115
+ * cached to use the reference for removal.
116
+ *
117
+ * @internal
118
+ */
58
119
  onlineChanged: (event: Event) => void;
120
+ /**
121
+ * The event listener for visibility status changes,
122
+ * cached to use the reference for removal.
123
+ *
124
+ * @internal
125
+ */
59
126
  backgroundChanged: (event: Event) => void;
127
+ /**
128
+ * The last request passed as an arg to the component,
129
+ * cached for comparison.
130
+ *
131
+ * @internal
132
+ */
60
133
  _originalRequest: Future<RT> | undefined;
134
+ /**
135
+ * The last query passed as an arg to the component,
136
+ * cached for comparison.
137
+ *
138
+ * @internal
139
+ */
61
140
  _originalQuery: StoreRequestInput<T, RT> | undefined;
141
+ _subscription: object | null;
142
+ _subscribedTo: object | null;
62
143
  constructor(owner: unknown, args: RequestSignature<T, RT>['Args']);
144
+ beginPolling(): Promise<void>;
145
+ get isIdle(): boolean;
146
+ get autorefreshTypes(): Set<AutorefreshBehaviorType>;
147
+ scheduleInterval(): Promise<void>;
148
+ clearInterval(): void;
149
+ updateSubscriptions(): void;
150
+ removeSubscriptions(): void;
151
+ /**
152
+ * Install the event listeners for network and visibility changes.
153
+ * This is only done in browser environments with a global `window`.
154
+ *
155
+ * @internal
156
+ */
63
157
  installListeners(): void;
64
- maybeUpdate(mode?: 'reload' | 'refresh' | 'policy'): void;
158
+ /**
159
+ * If the network is online and the tab is visible, either reload or refresh the request
160
+ * based on the component's configuration and the requested update mode.
161
+ *
162
+ * Valid modes are:
163
+ *
164
+ * - `'reload'`: Force a reload of the request.
165
+ * - `'refresh'`: Refresh the request in the background.
166
+ * - `'policy'`: Make the request, letting the store's configured CachePolicy decide whether to reload, refresh, or do nothing.
167
+ * - `undefined`: Make the request using the component's autorefreshBehavior setting if the autorefreshThreshold has passed.
168
+ *
169
+ * @internal
170
+ */
171
+ maybeUpdate(mode?: 'reload' | 'refresh' | 'policy' | 'invalidated', silent?: boolean): void;
172
+ /**
173
+ * Retry the request, reloading it from the server.
174
+ *
175
+ * @internal
176
+ */
65
177
  retry: () => Promise<void>;
178
+ /**
179
+ * Refresh the request, updating it in the background.
180
+ *
181
+ * @internal
182
+ */
66
183
  refresh: () => Promise<void>;
67
184
  get errorFeatures(): {
68
185
  isHidden: boolean;
@@ -71,6 +188,7 @@ declare module '@warp-drive/ember/-private/request' {
71
188
  };
72
189
  get contentFeatures(): ContentFeatures<RT>;
73
190
  willDestroy(): void;
191
+ get _request(): Future<RT>;
74
192
  get request(): Future<RT>;
75
193
  get store(): Store;
76
194
  get reqState(): RequestState<T, RT>;
@@ -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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"}
@@ -1,7 +1,7 @@
1
- /// <reference path="./-private/request-state.d.ts" />
2
- /// <reference path="./-private/await.d.ts" />
3
1
  /// <reference path="./-private/request.d.ts" />
4
2
  /// <reference path="./-private/promise-state.d.ts" />
3
+ /// <reference path="./-private/await.d.ts" />
4
+ /// <reference path="./-private/request-state.d.ts" />
5
5
  declare module '@warp-drive/ember' {
6
6
  export { getRequestState } from '@warp-drive/ember/-private/request-state';
7
7
  export { getPromiseState } from '@warp-drive/ember/-private/promise-state';