@warp-drive/ember 0.0.0-beta.1 → 0.0.0-beta.3

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/dist/index.js CHANGED
@@ -588,19 +588,19 @@ 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
- let provide = service;
591
+ let consume = service;
592
592
  if (macroCondition(moduleExists('ember-provide-consume-context'))) {
593
593
  const {
594
- consume
594
+ consume: contextConsume
595
595
  } = importSync('ember-provide-consume-context');
596
- provide = consume;
596
+ consume = contextConsume;
597
597
  }
598
598
  function isNeverString(val1) {
599
599
  return val1;
600
600
  }
601
601
  class Request extends Component {
602
602
  static {
603
- decorateFieldV2(this.prototype, "_store", [provide('store')]);
603
+ decorateFieldV2(this.prototype, "_store", [consume('store')]);
604
604
  }
605
605
  #_store = (initializeDeferredDecorator(this, "_store"), void 0);
606
606
  /**
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 provide = service;\nif (macroCondition(moduleExists('ember-provide-consume-context'))) {\n const { consume } = importSync('ember-provide-consume-context') as {\n consume: typeof service;\n };\n provide = consume;\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 */ @provide('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-ICF4O1xuLy8gZGVmYXVsdCB0byAzMCBzZWNvbmRzIHVuYXZhaWxhYmxlIGJlZm9yZSB3ZSByZWZyZXNoXG5jb25zdCBERUZBVUxUX0RFQURMSU5FID0gMzBfMDAwO1xuXG5sZXQgcHJvdmlkZSA9IHNlcnZpY2U7XG5pZiAobWFjcm9Db25kaXRpb24obW9kdWxlRXhpc3RzKCdlbWJlci1wcm92aWRlLWNvbnN1bWUtY29udGV4dCcpKSkge1xuICBjb25zdCB7IGNvbnN1bWUgfSA9IGltcG9ydFN5bmMoJ2VtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0JykgYXMgeyBjb25zdW1lOiB0eXBlb2Ygc2VydmljZSB9O1xuICBwcm92aWRlID0gY29uc3VtZTtcbn1cblxuZnVuY3Rpb24gaXNOZXZlclN0cmluZyh2YWw6IG5ldmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbDtcbn1cblxudHlwZSBDb250ZW50RmVhdHVyZXM8UlQ-ID0ge1xuICBpc09ubGluZTogYm9vbGVhbjtcbiAgaXNIaWRkZW46IGJvb2xlYW47XG4gIGlzUmVmcmVzaGluZzogYm9vbGVhbjtcbiAgcmVmcmVzaDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVsb2FkOiAoKSA9PiBQcm9taXNlPHZvaWQ-O1xuICBhYm9ydD86ICgpID0-IHZvaWQ7XG4gIGxhdGVzdFJlcXVlc3Q_OiBGdXR1cmU8UlQ-O1xufTtcblxuaW50ZXJmYWNlIFJlcXVlc3RTaWduYXR1cmU8VCwgUlQ-IHtcbiAgQXJnczoge1xuICAgIHJlcXVlc3Q_OiBGdXR1cmU8UlQ-O1xuICAgIHF1ZXJ5PzogU3RvcmVSZXF1ZXN0SW5wdXQ8VCwgUlQ-O1xuICAgIHN0b3JlPzogU3RvcmU7XG4gICAgYXV0b3JlZnJlc2g_OiBib29sZWFuO1xuICAgIGF1dG9yZWZyZXNoVGhyZXNob2xkPzogbnVtYmVyO1xuICAgIGF1dG9yZWZyZXNoQmVoYXZpb3I_OiAncmVmcmVzaCcgfCAncmVsb2FkJyB8ICdwb2xpY3knO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBsb2FkaW5nOiBbc3RhdGU6IFJlcXVlc3RMb2FkaW5nU3RhdGVdO1xuICAgIGNhbmNlbGxlZDogW1xuICAgICAgZXJyb3I6IFN0cnVjdHVyZWRFcnJvckRvY3VtZW50LFxuICAgICAgZmVhdHVyZXM6IHsgaXNPbmxpbmU6IGJvb2xlYW47IGlzSGlkZGVuOiBib29sZWFuOyByZXRyeTogKCkgPT4gUHJvbWlzZTx2b2lkPiB9LFxuICAgIF07XG4gICAgZXJyb3I6IFtcbiAgICAgIGVycm9yOiBTdHJ1Y3R1cmVkRXJyb3JEb2N1bWVudCxcbiAgICAgIGZlYXR1cmVzOiB7IGlzT25saW5lOiBib29sZWFuOyBpc0hpZGRlbjogYm9vbGVhbjsgcmV0cnk6ICgpID0-IFByb21pc2U8dm9pZD4gfSxcbiAgICBdO1xuICAgIGNvbnRlbnQ6IFt2YWx1ZTogUlQsIGZlYXR1cmVzOiBDb250ZW50RmVhdHVyZXM8UlQ-XTtcbiAgICBhbHdheXM6IFtzdGF0ZTogUmVxdWVzdFN0YXRlPFQsIFJUPl07XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0PFQsIFJUPiBleHRlbmRzIENvbXBvbmVudDxSZXF1ZXN0U2lnbmF0dXJlPFQsIFJUPj4ge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBAcHJvdmlkZSgnc3RvcmUnKSBkZWNsYXJlIF9zdG9yZTogU3RvcmU7XG4gIEB0cmFja2VkIGlzT25saW5lID0gdHJ1ZTtcbiAgQHRyYWNrZWQgaXNIaWRkZW4gPSB0cnVlO1xuICBAdHJhY2tlZCBpc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgQHRyYWNrZWQgX2xvY2FsUmVxdWVzdDogRnV0dXJlPFJUPiB8IHVuZGVmaW5lZDtcbiAgQHRyYWNrZWQgX2xhdGVzdFJlcXVlc3Q6IEZ1dHVyZTxSVD4gfCB1bmRlZmluZWQ7XG4gIGRlY2xhcmUgdW5hdmFpbGFibGVTdGFydDogbnVtYmVyIHwgbnVsbDtcbiAgZGVjbGFyZSBvbmxpbmVDaGFuZ2VkOiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuICBkZWNsYXJlIGJhY2tncm91bmRDaGFuZ2VkOiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuICBkZWNsYXJlIF9vcmlnaW5hbFJlcXVlc3Q6IEZ1dHVyZTxSVD4gfCB1bmRlZmluZWQ7XG4gIGRlY2xhcmUgX29yaWdpbmFsUXVlcnk6IFN0b3JlUmVxdWVzdElucHV0PFQsIFJUPiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihvd25lcjogdW5rbm93biwgYXJnczogUmVxdWVzdFNpZ25hdHVyZTxULCBSVD5bJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcbiAgICB0aGlzLmluc3RhbGxMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIGluc3RhbGxMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc09ubGluZSA9IHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IHRoaXMuaXNPbmxpbmUgPyBudWxsIDogRGF0ZS5ub3coKTtcbiAgICB0aGlzLmlzSGlkZGVuID0gZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJztcblxuICAgIHRoaXMub25saW5lQ2hhbmdlZCA9IChldmVudDogRXZlbnQpID0-IHtcbiAgICAgIHRoaXMuaXNPbmxpbmUgPSBldmVudC50eXBlID09PSAnb25saW5lJztcbiAgICAgIGlmIChldmVudC50eXBlID09PSAnb2ZmbGluZScgJiYgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IERhdGUubm93KCk7XG4gICAgICB9XG4gICAgICB0aGlzLm1heWJlVXBkYXRlKCk7XG4gICAgfTtcbiAgICB0aGlzLmJhY2tncm91bmRDaGFuZ2VkID0gKCkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW4gPSBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nO1xuICAgICAgdGhpcy5pc0hpZGRlbiA9IGlzSGlkZGVuO1xuXG4gICAgICBpZiAoaXNIaWRkZW4gJiYgdGhpcy51bmF2YWlsYWJsZVN0YXJ0ID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMudW5hdmFpbGFibGVTdGFydCA9IERhdGUubm93KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWF5YmVVcGRhdGUoKTtcbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIHRoaXMub25saW5lQ2hhbmdlZCwgeyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgdGhpcy5vbmxpbmVDaGFuZ2VkLCB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHRoaXMuYmFja2dyb3VuZENoYW5nZWQsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIG1heWJlVXBkYXRlKG1vZGU_OiAncmVsb2FkJyB8ICdyZWZyZXNoJyB8ICdwb2xpY3knKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPbmxpbmUgJiYgIXRoaXMuaXNIaWRkZW4gJiYgKG1vZGUgfHwgdGhpcy5hcmdzLmF1dG9yZWZyZXNoKSkge1xuICAgICAgY29uc3QgZGVhZGxpbmUgPVxuICAgICAgICB0eXBlb2YgdGhpcy5hcmdzLmF1dG9yZWZyZXNoVGhyZXNob2xkID09PSAnbnVtYmVyJyA_IHRoaXMuYXJncy5hdXRvcmVmcmVzaFRocmVzaG9sZCA6IERFRkFVTFRfREVBRExJTkU7XG4gICAgICBjb25zdCBzaG91bGRBdHRlbXB0ID0gbW9kZSB8fCAodGhpcy51bmF2YWlsYWJsZVN0YXJ0ICYmIERhdGUubm93KCkgLSB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPiBkZWFkbGluZSk7XG4gICAgICB0aGlzLnVuYXZhaWxhYmxlU3RhcnQgPSBudWxsO1xuXG4gICAgICBpZiAoc2hvdWxkQXR0ZW1wdCkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5yZXFTdGF0ZS5yZXF1ZXN0IGFzIHVua25vd24gYXMgUmVxdWVzdEluZm88VCwgUlQ-KTtcbiAgICAgICAgY29uc3QgdmFsID0gbW9kZSA_PyB0aGlzLmFyZ3MuYXV0b3JlZnJlc2hCZWhhdmlvciA_PyAncG9saWN5JztcbiAgICAgICAgc3dpdGNoICh2YWwpIHtcbiAgICAgICAgICBjYXNlICdyZWxvYWQnOlxuICAgICAgICAgICAgcmVxdWVzdC5jYWNoZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCByZXF1ZXN0LmNhY2hlT3B0aW9ucywgeyByZWxvYWQ6IHRydWUgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdyZWZyZXNoJzpcbiAgICAgICAgICAgIHJlcXVlc3QuY2FjaGVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxdWVzdC5jYWNoZU9wdGlvbnMsIHsgYmFja2dyb3VuZFJlbG9hZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3BvbGljeSc6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgSW52YWxpZCAke21vZGUgPyAndXBkYXRlIG1vZGUnIDogJ0BhdXRvcmVmcmVzaEJlaGF2aW9yJ30gZm9yIDxSZXF1ZXN0IC8-OiAke2lzTmV2ZXJTdHJpbmcodmFsKX1gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2FzU3RvcmVSZXF1ZXN0ID0gKHJlcXVlc3QgYXMgeyBbRW5hYmxlSHlkcmF0aW9uXTogYm9vbGVhbiB9KVtFbmFibGVIeWRyYXRpb25dID09PSB0cnVlO1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgYENhbm5vdCBzdXBwbHkgYSBkaWZmZXJlbnQgc3RvcmUgdmlhIGNvbnRleHQgdGhhbiB3YXMgdXNlZCB0byBjcmVhdGUgdGhlIHJlcXVlc3RgLFxuICAgICAgICAgICFyZXF1ZXN0LnN0b3JlIHx8IHJlcXVlc3Quc3RvcmUgPT09IHRoaXMuc3RvcmVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9sYXRlc3RSZXF1ZXN0ID0gd2FzU3RvcmVSZXF1ZXN0XG4gICAgICAgICAgPyB0aGlzLnN0b3JlLnJlcXVlc3QocmVxdWVzdClcbiAgICAgICAgICA6IHRoaXMuc3RvcmUucmVxdWVzdE1hbmFnZXIucmVxdWVzdChyZXF1ZXN0KTtcblxuICAgICAgICBpZiAodmFsICE9PSAncmVmcmVzaCcpIHtcbiAgICAgICAgICB0aGlzLl9sb2NhbFJlcXVlc3QgPSB0aGlzLl9sYXRlc3RSZXF1ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlbG9hZCBub3QgYXZhaWxhYmxlOiB0aGUgbmV0d29yayBpcyBub3Qgb25saW5lIG9yIHRoZSB0YWIgaXMgaGlkZGVuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0cnkgPSBhc3luYyAoKSA9PiB7XG4gICAgdGhpcy5tYXliZVVwZGF0ZSgncmVsb2FkJyk7XG4gICAgYXdhaXQgdGhpcy5fbG9jYWxSZXF1ZXN0O1xuICB9O1xuXG4gIHJlZnJlc2ggPSBhc3luYyAoKSA9PiB7XG4gICAgdGhpcy5pc1JlZnJlc2hpbmcgPSB0cnVlO1xuICAgIHRoaXMubWF5YmVVcGRhdGUoJ3JlZnJlc2gnKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbGF0ZXN0UmVxdWVzdDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgQGNhY2hlZFxuICBnZXQgZXJyb3JGZWF0dXJlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNIaWRkZW46IHRoaXMuaXNIaWRkZW4sXG4gICAgICBpc09ubGluZTogdGhpcy5pc09ubGluZSxcbiAgICAgIHJldHJ5OiB0aGlzLnJldHJ5LFxuICAgIH07XG4gIH1cblxuICBAY2FjaGVkXG4gIGdldCBjb250ZW50RmVhdHVyZXMoKSB7XG4gICAgY29uc3QgZmVhdDogQ29udGVudEZlYXR1cmVzPFJUPiA9IHtcbiAgICAgIGlzSGlkZGVuOiB0aGlzLmlzSGlkZGVuLFxuICAgICAgaXNPbmxpbmU6IHRoaXMuaXNPbmxpbmUsXG4gICAgICByZWxvYWQ6IHRoaXMucmV0cnksXG4gICAgICByZWZyZXNoOiB0aGlzLnJlZnJlc2gsXG4gICAgICBpc1JlZnJlc2hpbmc6IHRoaXMuaXNSZWZyZXNoaW5nLFxuICAgICAgbGF0ZXN0UmVxdWVzdDogdGhpcy5fbGF0ZXN0UmVxdWVzdCxcbiAgICB9O1xuXG4gICAgaWYgKGZlYXQuaXNSZWZyZXNoaW5nKSB7XG4gICAgICBmZWF0LmFib3J0ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9sYXRlc3RSZXF1ZXN0Py5hYm9ydCgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmVhdDtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvbmxpbmUnLCB0aGlzLm9ubGluZUNoYW5nZWQsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9IGFzIHVua25vd24gYXMgYm9vbGVhbik7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29mZmxpbmUnLCB0aGlzLm9ubGluZUNoYW5nZWQsIHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9IGFzIHVua25vd24gYXMgYm9vbGVhbik7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHRoaXMuYmFja2dyb3VuZENoYW5nZWQsIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0gYXMgdW5rbm93biBhcyBib29sZWFuKTtcbiAgfVxuXG4gIEBjYWNoZWRcbiAgZ2V0IHJlcXVlc3QoKSB7XG4gICAgY29uc3QgeyByZXF1ZXN0LCBxdWVyeSB9ID0gdGhpcy5hcmdzO1xuICAgIGFzc2VydChgQ2Fubm90IHVzZSBib3RoIEByZXF1ZXN0IGFuZCBAcXVlcnkgYXJncyB3aXRoIHRoZSA8UmVxdWVzdD4gY29tcG9uZW50YCwgIXJlcXVlc3QgfHwgIXF1ZXJ5KTtcbiAgICBjb25zdCB7IF9sb2NhbFJlcXVlc3QsIF9vcmlnaW5hbFJlcXVlc3QsIF9vcmlnaW5hbFF1ZXJ5IH0gPSB0aGlzO1xuICAgIGNvbnN0IGlzT3JpZ2luYWxSZXF1ZXN0ID0gcmVxdWVzdCA9PT0gX29yaWdpbmFsUmVxdWVzdCAmJiBxdWVyeSA9PT0gX29yaWdpbmFsUXVlcnk7XG5cbiAgICBpZiAoX2xvY2FsUmVxdWVzdCAmJiBpc09yaWdpbmFsUmVxdWVzdCkge1xuICAgICAgcmV0dXJuIF9sb2NhbFJlcXVlc3Q7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHN0YXRlIGNoZWNrcyBmb3IgdGhlIG5leHQgdGltZVxuICAgIHRoaXMuX29yaWdpbmFsUXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLl9vcmlnaW5hbFJlcXVlc3QgPSByZXF1ZXN0O1xuXG4gICAgaWYgKHJlcXVlc3QpIHtcbiAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBhc3NlcnQoYFlvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIEByZXF1ZXN0IG9yIGFuIEBxdWVyeSBhcmcgd2l0aCB0aGUgPFJlcXVlc3Q-IGNvbXBvbmVudGAsIHF1ZXJ5KTtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5yZXF1ZXN0PFJULCBUPihxdWVyeSk7XG4gIH1cblxuICBnZXQgc3RvcmUoKTogU3RvcmUge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5hcmdzLnN0b3JlIHx8IHRoaXMuX3N0b3JlO1xuICAgIGFzc2VydChcbiAgICAgIG1vZHVsZUV4aXN0cygnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnKVxuICAgICAgICA_IGBObyBzdG9yZSB3YXMgcHJvdmlkZWQgdG8gdGhlIDxSZXF1ZXN0PiBjb21wb25lbnQuIEVpdGhlciBwcm92aWRlIGEgc3RvcmUgdmlhIHRoZSBAc3RvcmUgYXJnIG9yIHZpYSB0aGUgY29udGV4dCBBUEkgcHJvdmlkZWQgYnkgZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQuYFxuICAgICAgICA6IGBObyBzdG9yZSB3YXMgcHJvdmlkZWQgdG8gdGhlIDxSZXF1ZXN0PiBjb21wb25lbnQuIEVpdGhlciBwcm92aWRlIGEgc3RvcmUgdmlhIHRoZSBAc3RvcmUgYXJnIG9yIGJ5IHJlZ2lzdGVyaW5nIGEgc3RvcmUgc2VydmljZS5gLFxuICAgICAgc3RvcmVcbiAgICApO1xuICAgIHJldHVybiBzdG9yZTtcbiAgfVxuXG4gIGdldCByZXFTdGF0ZSgpIHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdFN0YXRlPFJULCBUPih0aGlzLnJlcXVlc3QpO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXFTdGF0ZS5yZXN1bHQgYXMgUlQ7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgdGhpcy5yZXFTdGF0ZS5pc0xvYWRpbmd9fVxuICAgICAge3t5aWVsZCB0aGlzLnJlcVN0YXRlLmxvYWRpbmdTdGF0ZSB0bz1cImxvYWRpbmdcIn19XG4gICAge3tlbHNlIGlmIChhbmQgdGhpcy5yZXFTdGF0ZS5pc0NhbmNlbGxlZCAoaGFzLWJsb2NrIFwiY2FuY2VsbGVkXCIpKX19XG4gICAgICB7e3lpZWxkIChub3ROdWxsIHRoaXMucmVxU3RhdGUuZXJyb3IpIHRoaXMuZXJyb3JGZWF0dXJlcyB0bz1cImNhbmNlbGxlZFwifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnJlcVN0YXRlLmlzRXJyb3IgKGhhcy1ibG9jayBcImVycm9yXCIpKX19XG4gICAgICB7e3lpZWxkIChub3ROdWxsIHRoaXMucmVxU3RhdGUuZXJyb3IpIHRoaXMuZXJyb3JGZWF0dXJlcyB0bz1cImVycm9yXCJ9fVxuICAgIHt7ZWxzZSBpZiB0aGlzLnJlcVN0YXRlLmlzU3VjY2Vzc319XG4gICAgICB7e3lpZWxkIHRoaXMucmVzdWx0IHRoaXMuY29udGVudEZlYXR1cmVzIHRvPVwiY29udGVudFwifX1cbiAgICB7e2Vsc2UgaWYgKG5vdCB0aGlzLnJlcVN0YXRlLmlzQ2FuY2VsbGVkKX19XG4gICAgICA8VGhyb3cgQGVycm9yPXt7KG5vdE51bGwgdGhpcy5yZXFTdGF0ZS5lcnJvcil9fSAvPlxuICAgIHt7L2lmfX1cbiAgICB7e3lpZWxkIHRoaXMucmVxU3RhdGUgdG89XCJhbHdheXNcIn19XG4gIDwvdGVtcGxhdGU-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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","provide","service","moduleExists","consume","importSync","isNeverString","val1","Request","unavailableStart","onlineChanged","backgroundChanged","_originalRequest","_originalQuery","installListeners","window","isOnline","navigator","onLine","Date","isHidden","document","visibilityState","event1","maybeUpdate","isHidden1","addEventListener","passive","capture","mode1","autorefresh","deadline1","autorefreshThreshold","shouldAttempt1","request1","assign","reqState","autorefreshBehavior","cacheOptions","reload","backgroundReload","wasStoreRequest1","EnableHydration","store","_latestRequest","requestManager","_localRequest","retry","refresh","isRefreshing","errorFeatures","cached","contentFeatures","feat1","latestRequest","willDestroy","removeEventListener","query","query1","_localRequest1","_originalRequest1","_originalQuery1","isOriginalRequest1","store1","_store"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/decorator-transforms@2.0.0_@babel+core@7.24.5/node_modules/decorator-transforms/dist/chunk-3SQBS3Y5.js","../src/-private/request-state.ts","../src/-private/promise-state.ts","../src/-private/await.gts","../src/-private/request.gts"],"sourcesContent":["import {\n __export\n} from \"./chunk-CSAU5B4Q.js\";\n\n// src/runtime.ts\nvar runtime_exports = {};\n__export(runtime_exports, {\n c: () => decorateClass,\n f: () => decorateFieldV1,\n g: () => decorateFieldV2,\n i: () => initializeDeferredDecorator,\n m: () => decorateMethodV1,\n n: () => decorateMethodV2,\n p: () => decoratePOJO\n});\nvar deferred = /* @__PURE__ */ new WeakMap();\nfunction deferDecorator(proto, prop, desc) {\n let map = deferred.get(proto);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n deferred.set(proto, map);\n }\n map.set(prop, desc);\n}\nfunction findDeferredDecorator(target, prop) {\n let cursor = target.prototype;\n while (cursor) {\n let desc = deferred.get(cursor)?.get(prop);\n if (desc) {\n return desc;\n }\n cursor = cursor.prototype;\n }\n}\nfunction decorateFieldV1(target, prop, decorators, initializer) {\n return decorateFieldV2(target.prototype, prop, decorators, initializer);\n}\nfunction decorateFieldV2(prototype, prop, decorators, initializer) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n };\n if (initializer) {\n desc.initializer = initializer;\n }\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer === void 0) {\n Object.defineProperty(prototype, prop, desc);\n } else {\n deferDecorator(prototype, prop, desc);\n }\n}\nfunction decorateMethodV1({ prototype }, prop, decorators) {\n return decorateMethodV2(prototype, prop, decorators);\n}\nfunction decorateMethodV2(prototype, prop, decorators) {\n const origDesc = Object.getOwnPropertyDescriptor(prototype, prop);\n let desc = { ...origDesc };\n for (let decorator of decorators) {\n desc = decorator(prototype, prop, desc) || desc;\n }\n if (desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(prototype) : void 0;\n desc.initializer = void 0;\n }\n Object.defineProperty(prototype, prop, desc);\n}\nfunction initializeDeferredDecorator(target, prop) {\n let desc = findDeferredDecorator(target.constructor, prop);\n if (desc) {\n Object.defineProperty(target, prop, {\n enumerable: desc.enumerable,\n configurable: desc.configurable,\n writable: desc.writable,\n value: desc.initializer ? desc.initializer.call(target) : void 0\n });\n }\n}\nfunction decorateClass(target, decorators) {\n return decorators.reduce(\n (accum, decorator) => decorator(accum) || accum,\n target\n );\n}\nfunction decoratePOJO(pojo, decorated) {\n for (let [type, prop, decorators] of decorated) {\n if (type === \"field\") {\n decoratePojoField(pojo, prop, decorators);\n } else {\n decorateMethodV2(pojo, prop, decorators);\n }\n }\n return pojo;\n}\nfunction decoratePojoField(pojo, prop, decorators) {\n let desc = {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: () => Object.getOwnPropertyDescriptor(pojo, prop)?.value\n };\n for (let decorator of decorators) {\n desc = decorator(pojo, prop, desc) || desc;\n }\n if (desc.initializer) {\n desc.value = desc.initializer.call(pojo);\n delete desc.initializer;\n }\n Object.defineProperty(pojo, prop, desc);\n}\n\nexport {\n decorateFieldV1,\n decorateFieldV2,\n decorateMethodV1,\n decorateMethodV2,\n initializeDeferredDecorator,\n decorateClass,\n decoratePOJO,\n runtime_exports\n};\n//# sourceMappingURL=chunk-3SQBS3Y5.js.map","import { tracked } from '@glimmer/tracking';\n\nimport type {\n Future,\n ImmutableRequestInfo,\n ResponseInfo,\n StructuredDocument,\n StructuredErrorDocument,\n} from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst RequestCache = new WeakMap<Future<unknown>, RequestState>();\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof DOMException && error.name === 'AbortError';\n}\n\nasync function watchStream(stream: ReadableStream<Uint8Array>, state: RequestLoadingState): Promise<void> {\n const reader = stream.getReader();\n let bytesLoaded = 0;\n let shouldForward = state._stream !== null && state._stream.readable.locked;\n let isForwarding = shouldForward;\n let writer = state._stream?.writable.getWriter();\n const buffer = [];\n\n state._isPending = false;\n state._isStarted = true;\n state._startTime = performance.now();\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n bytesLoaded += value.byteLength;\n state._bytesLoaded = bytesLoaded;\n state._lastPacketTime = performance.now();\n\n shouldForward = shouldForward || (state._stream !== null && state._stream.readable.locked);\n\n if (shouldForward) {\n if (!isForwarding) {\n isForwarding = true;\n writer = state._stream!.writable.getWriter();\n for (const item of buffer) {\n await writer.ready;\n await writer.write(item);\n }\n buffer.length = 0;\n }\n await writer!.ready;\n await writer!.write(value);\n } else {\n buffer.push(value);\n }\n }\n\n // if we are still forwarding, we need to close the writer\n if (isForwarding) {\n await writer!.ready;\n await writer!.close();\n } else if (state._stream) {\n // if we are not forwarding, we need to cancel the stream\n await state._stream.readable.cancel('The Stream Has Already Ended');\n state._stream = null;\n }\n\n const endTime = performance.now();\n state._endTime = endTime;\n state._isComplete = true;\n state._isStarted = false;\n}\n\nexport class RequestLoadingState {\n _stream: TransformStream | null = null;\n _future: Future<unknown>;\n _triggered = false;\n _trigger() {\n if (this._triggered) {\n return;\n }\n this._triggered = true;\n const future = this._future;\n const promise: Promise<ReadableStream<Uint8Array> | null> & { sizeHint?: number } = future.getStream();\n if (promise.sizeHint) {\n this._sizeHint = promise.sizeHint;\n }\n this.promise = promise.then(\n (stream) => {\n if (!stream) {\n this._isPending = false;\n this._isComplete = true;\n return;\n }\n return watchStream(stream, this);\n },\n (error: Error) => {\n this._isPending = false;\n this._isStarted = false;\n if (isAbortError(error)) {\n this._isCancelled = true;\n this._isComplete = true;\n }\n this._isErrored = true;\n this._error = error;\n }\n );\n }\n\n promise: Promise<void> | null = null;\n @tracked _sizeHint = 0;\n @tracked _bytesLoaded = 0;\n\n @tracked _startTime = 0;\n @tracked _endTime = 0;\n @tracked _lastPacketTime = 0;\n\n @tracked _isPending = true;\n @tracked _isStarted = false;\n @tracked _isComplete = false;\n @tracked _isCancelled = false;\n @tracked _isErrored = false;\n @tracked _error: Error | null = null;\n\n get isPending(): boolean {\n this._trigger();\n return this._isPending;\n }\n\n get sizeHint(): number {\n this._trigger();\n return this._sizeHint;\n }\n\n get stream(): ReadableStream | null {\n this._trigger();\n if (!this._stream) {\n if (this._isComplete || this._isCancelled || this._isErrored) {\n return null;\n }\n this._stream = new TransformStream();\n }\n return this._stream.readable;\n }\n\n get isStarted(): boolean {\n this._trigger();\n return this._isStarted;\n }\n\n get bytesLoaded(): number {\n this._trigger();\n return this._bytesLoaded;\n }\n\n get startTime(): number {\n this._trigger();\n return this._startTime;\n }\n\n get endTime(): number {\n this._trigger();\n return this._endTime;\n }\n\n get lastPacketTime(): number {\n this._trigger();\n return this._lastPacketTime;\n }\n\n get isComplete(): boolean {\n this._trigger();\n return this._isComplete;\n }\n\n get isCancelled(): boolean {\n this._trigger();\n return this._isCancelled;\n }\n\n get isErrored(): boolean {\n this._trigger();\n return this._isErrored;\n }\n\n get error(): Error | null {\n this._trigger();\n return this._error;\n }\n\n get elapsedTime(): number {\n return (this.endTime || this.lastPacketTime) - this.startTime;\n }\n\n get completedRatio(): number {\n return this.sizeHint ? this.bytesLoaded / this.sizeHint : 0;\n }\n\n get remainingRatio(): number {\n return 1 - this.completedRatio;\n }\n\n get duration(): number {\n return this.endTime - this.startTime;\n }\n\n get speed(): number {\n // bytes per second\n return this.bytesLoaded / (this.elapsedTime / 1000);\n }\n\n constructor(future: Future<unknown>) {\n this._future = future;\n }\n\n abort = (): void => {\n this._future.abort();\n };\n}\n\nexport class RequestState<T = unknown, RT = unknown> {\n #request: Future<RT>;\n #loadingState: RequestLoadingState | null = null;\n\n @tracked result: RT | null = null;\n @tracked error: StructuredErrorDocument | null = null;\n @tracked isLoading = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n @tracked request: ImmutableRequestInfo<T, RT> | null = null;\n @tracked response: Response | ResponseInfo | null = null;\n\n get isCancelled(): boolean {\n return this.isError && isAbortError(this.error);\n }\n\n get loadingState() {\n if (!this.#loadingState) {\n this.#loadingState = new RequestLoadingState(this.#request);\n }\n\n return this.#loadingState;\n }\n\n constructor(future: Future<RT>) {\n this.#request = future;\n const state = getPromiseResult<StructuredDocument<RT>, StructuredErrorDocument>(future);\n\n if (state) {\n this.request = state.result.request as ImmutableRequestInfo<T, RT>;\n this.response = state.result.response;\n this.isLoading = false;\n\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n } else {\n this.result = state.result.content!;\n this.isSuccess = true;\n }\n } else {\n void future.then(\n (result) => {\n setPromiseResult(future, { isError: false, result });\n this.result = result.content;\n this.isSuccess = true;\n this.isLoading = false;\n this.request = result.request as ImmutableRequestInfo<T, RT>;\n this.response = result.response;\n },\n (error: StructuredErrorDocument) => {\n setPromiseResult(future, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isLoading = false;\n this.request = error.request as ImmutableRequestInfo<T, RT>;\n this.response = error.response;\n }\n );\n }\n }\n}\n\nexport function getRequestState<RT, T>(future: Future<RT>): RequestState<T, RT> {\n let state = RequestCache.get(future) as RequestState<T, RT> | undefined;\n\n if (!state) {\n state = new RequestState(future);\n RequestCache.set(future, state);\n }\n\n return state;\n}\n","import { tracked } from '@glimmer/tracking';\n\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseResult, setPromiseResult } from '@ember-data/request';\n\nconst PromiseCache = new WeakMap<Awaitable, PromiseState>();\n\nexport class PromiseState<T = unknown, E = unknown> {\n @tracked result: T | null = null;\n @tracked error: E | null = null;\n @tracked isPending = true;\n @tracked isSuccess = false;\n @tracked isError = false;\n\n constructor(promise: Promise<T> | Awaitable<T, E>) {\n const state = getPromiseResult<T, E>(promise);\n\n if (state) {\n if (state.isError) {\n this.error = state.result;\n this.isError = true;\n this.isPending = false;\n } else {\n this.result = state.result;\n this.isSuccess = true;\n this.isPending = false;\n }\n } else {\n void promise.then(\n (result) => {\n setPromiseResult(promise, { isError: false, result });\n this.result = result;\n this.isSuccess = true;\n this.isPending = false;\n },\n (error: E) => {\n setPromiseResult(promise, { isError: true, result: error });\n this.error = error;\n this.isError = true;\n this.isPending = false;\n }\n );\n }\n }\n}\n\nconst LegacyPromiseProxy = Symbol.for('LegacyPromiseProxy');\ntype LegacyAwaitable<T, E> = { promise: Promise<T> | Awaitable<T, E>; [LegacyPromiseProxy]: true };\n\nfunction isLegacyAwaitable<T, E>(promise: object): promise is LegacyAwaitable<T, E> {\n return LegacyPromiseProxy in promise && 'promise' in promise && promise[LegacyPromiseProxy] === true;\n}\n\nfunction getPromise<T, E>(promise: Promise<T> | Awaitable<T, E> | LegacyAwaitable<T, E>): Promise<T> | Awaitable<T, E> {\n return isLegacyAwaitable(promise) ? promise.promise : promise;\n}\n\nexport function getPromiseState<T = unknown, E = unknown>(promise: Promise<T> | Awaitable<T, E>): PromiseState<T, E> {\n const _promise = getPromise(promise);\n let state = PromiseCache.get(_promise) as PromiseState<T, E> | undefined;\n\n if (!state) {\n state = new PromiseState(_promise);\n PromiseCache.set(_promise, state);\n }\n\n return state;\n}\n","import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport type { Awaitable } from '@ember-data/request';\nimport { getPromiseState } from './promise-state.ts';\nexport const and = (x1: unknown, y1: unknown)=>Boolean(x1 && y1);\ninterface ThrowSignature<E = Error | string | object> {\n Args: {\n error: E;\n };\n}\nexport class Throw<T> extends Component<ThrowSignature<T>> {\n constructor(owner1: unknown, args1: ThrowSignature<T>['Args']){\n super(owner1, args1);\n // this error is opaque (user supplied) so we don't validate it\n // as an Error instance.\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw this.args.error;\n }\n static{\n template(``, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\ninterface AwaitSignature<T, E = Error | string | object> {\n Args: {\n promise: Promise<T> | Awaitable<T, E>;\n };\n Blocks: {\n pending: [];\n error: [error: E];\n success: [value: T];\n };\n}\nexport class Await<T, E> extends Component<AwaitSignature<T, E>> {\n get state() {\n return getPromiseState<T, E>(this.args.promise);\n }\n get error() {\n return this.state.error as E;\n }\n get result() {\n return this.state.result as T;\n }\n static{\n template(`\n {{#if this.state.isPending}}\n {{yield to=\"pending\"}}\n {{else if (and this.state.isError (has-block \"error\"))}}\n {{yield this.error to=\"error\"}}\n {{else if this.state.isSuccess}}\n {{yield this.result to=\"success\"}}\n {{else}}\n <Throw @error={{this.error}} />\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RhdGEvZGF0YS9wYWNrYWdlcy9lbWJlci9zcmMvLXByaXZhdGUvYXdhaXQuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcblxuaW1wb3J0IHR5cGUgeyBBd2FpdGFibGUgfSBmcm9tICdAZW1iZXItZGF0YS9yZXF1ZXN0JztcblxuaW1wb3J0IHsgZ2V0UHJvbWlzZVN0YXRlIH0gZnJvbSAnLi9wcm9taXNlLXN0YXRlLnRzJztcblxuZXhwb3J0IGNvbnN0IGFuZCA9ICh4OiB1bmtub3duLCB5OiB1bmtub3duKSA9PiBCb29sZWFuKHggJiYgeSk7XG5pbnRlcmZhY2UgVGhyb3dTaWduYXR1cmU8RSA9IEVycm9yIHwgc3RyaW5nIHwgb2JqZWN0PiB7XG4gIEFyZ3M6IHtcbiAgICBlcnJvcjogRTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFRocm93PFQ-IGV4dGVuZHMgQ29tcG9uZW50PFRocm93U2lnbmF0dXJlPFQ-PiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBUaHJvd1NpZ25hdHVyZTxUPlsnQXJncyddKSB7XG4gICAgc3VwZXIob3duZXIsIGFyZ3MpO1xuICAgIC8vIHRoaXMgZXJyb3IgaXMgb3BhcXVlICh1c2VyIHN1cHBsaWVkKSBzbyB3ZSBkb24ndCB2YWxpZGF0ZSBpdFxuICAgIC8vIGFzIGFuIEVycm9yIGluc3RhbmNlLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhyb3ctbGl0ZXJhbFxuICAgIHRocm93IHRoaXMuYXJncy5lcnJvcjtcbiAgfVxuICA8dGVtcGxhdGU-PC90ZW1wbGF0ZT5cbn1cblxuaW50ZXJmYWNlIEF3YWl0U2lnbmF0dXJlPFQsIEUgPSBFcnJvciB8IHN0cmluZyB8IG9iamVjdD4ge1xuICBBcmdzOiB7XG4gICAgcHJvbWlzZTogUHJvbWlzZTxUPiB8IEF3YWl0YWJsZTxULCBFPjtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgcGVuZGluZzogW107XG4gICAgZXJyb3I6IFtlcnJvcjogRV07XG4gICAgc3VjY2VzczogW3ZhbHVlOiBUXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEF3YWl0PFQsIEU-IGV4dGVuZHMgQ29tcG9uZW50PEF3YWl0U2lnbmF0dXJlPFQsIEU-PiB7XG4gIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gZ2V0UHJvbWlzZVN0YXRlPFQsIEU-KHRoaXMuYXJncy5wcm9taXNlKTtcbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvciBhcyBFO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5yZXN1bHQgYXMgVDtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNpZiB0aGlzLnN0YXRlLmlzUGVuZGluZ319XG4gICAgICB7e3lpZWxkIHRvPVwicGVuZGluZ1wifX1cbiAgICB7e2Vsc2UgaWYgKGFuZCB0aGlzLnN0YXRlLmlzRXJyb3IgKGhhcy1ibG9jayBcImVycm9yXCIpKX19XG4gICAgICB7e3lpZWxkIHRoaXMuZXJyb3IgdG89XCJlcnJvclwifX1cbiAgICB7e2Vsc2UgaWYgdGhpcy5zdGF0ZS5pc1N1Y2Nlc3N9fVxuICAgICAge3t5aWVsZCB0aGlzLnJlc3VsdCB0bz1cInN1Y2Nlc3NcIn19XG4gICAge3tlbHNlfX1cbiAgICAgIDxUaHJvdyBAZXJyb3I9e3t0aGlzLmVycm9yfX0gLz5cbiAgICB7ey9pZn19XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFFM0MsY0FBYyxTQUFTLFFBQVEsc0JBQXNCO0FBRXJELFNBQVMsZUFBZSxRQUFRLHFCQUFxQjtBQUVyRCxPQUFPLE1BQU0sTUFBTSxDQUFDLElBQUcsT0FBTyxFQUFFLElBQUcsT0FBTyxHQUFLLFFBQVEsTUFBSyxJQUFHO1VBQ3JELGVBQWUsSUFBSSxRQUFRLE1BQU0sR0FBRyxNQUFNO0lBQ2xEO1FBQ0UsT0FBTzs7O0FBSVgsT0FBTyxNQUFNLE1BQU0sV0FBVyxVQUFVLGVBQWU7SUFDckQsWUFBWSxRQUFPLE9BQU8sRUFBRSxPQUFNLGVBQWUsR0FBRyxPQUFPLENBQUU7UUFDM0QsS0FBSyxDQUFDLFFBQU87UUFDYiwrREFBK0Q7UUFDL0Qsd0JBQXdCO1FBQ3hCLCtEQUErRDtRQUMvRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztJQUN2QjtJQUNBLE1BQUE7UUFBQSxTQUFVLENBQUEsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBQVY7QUFDWjtVQUVVLGVBQWUsR0FBRyxJQUFJLFFBQVEsTUFBTSxHQUFHLE1BQU07SUFDckQ7UUFDRSxTQUFTLFFBQVEsS0FBSyxVQUFVLEdBQUc7O0lBRXJDO1FBQ0U7UUFDQSxRQUFRLE9BQU87UUFDZixVQUFVLE9BQU87OztBQUlyQixPQUFPLE1BQU0sTUFBTSxHQUFHLFdBQVcsVUFBVSxlQUFlLEdBQUc7SUFDM0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxnQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztJQUNoRDtJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUk7SUFDN0I7SUFFQSxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJO0lBQzlCO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7OztFQVVWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQVZBO0FBV1oifQ","import { template } from \"@ember/template-compiler\";\nimport { service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { importSync, macroCondition, moduleExists } from '@embroider/macros';\nimport type { Future, StructuredErrorDocument } from '@ember-data/request';\nimport type { StoreRequestInput } from '@ember-data/store';\nimport type Store from '@ember-data/store';\nimport { assert } from '@warp-drive/build-config/macros';\nimport { 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]}
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.1",
4
+ "version": "0.0.0-beta.3",
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.6",
44
+ "@warp-drive/core-types": "0.0.0-beta.8",
45
45
  "ember-provide-consume-context": "^0.3.1",
46
46
  "@ember-data/tracking": "^4.12.7 || > 5.3.3"
47
47
  },
48
48
  "dependencies": {
49
49
  "@ember/test-waiters": "^3.1.0",
50
50
  "@embroider/macros": "^1.16.1",
51
- "@warp-drive/build-config": "0.0.0-beta.1"
51
+ "@warp-drive/build-config": "0.0.0-beta.3"
52
52
  },
53
53
  "dependenciesMeta": {
54
54
  "@ember-data/store": {
@@ -90,15 +90,15 @@
90
90
  "@glint/template": "^1.4.0",
91
91
  "decorator-transforms": "^2.0.0",
92
92
  "@embroider/addon-dev": "^4.3.1",
93
- "@ember-data/request": "5.4.0-beta.6",
94
- "@ember-data/request-utils": "5.4.0-beta.6",
95
- "@ember-data/store": "5.4.0-beta.6",
96
- "@ember-data/tracking": "5.4.0-beta.6",
93
+ "@ember-data/request": "5.4.0-beta.8",
94
+ "@ember-data/request-utils": "5.4.0-beta.8",
95
+ "@ember-data/store": "5.4.0-beta.8",
96
+ "@ember-data/tracking": "5.4.0-beta.8",
97
97
  "@ember/test-helpers": "^3.3.0",
98
- "@warp-drive/core-types": "0.0.0-beta.6",
99
- "@warp-drive/internal-config": "5.4.0-beta.6",
98
+ "@warp-drive/core-types": "0.0.0-beta.8",
99
+ "@warp-drive/internal-config": "5.4.0-beta.8",
100
100
  "babel-plugin-ember-template-compilation": "^2.2.5",
101
- "ember-template-imports": "^4.1.0",
101
+ "ember-template-imports": "^4.1.1",
102
102
  "ember-source": "~5.8.0",
103
103
  "pnpm-sync-dependencies-meta-injected": "0.0.14",
104
104
  "rollup": "^4.17.2",