@tanstack/angular-query-experimental 5.60.0 → 5.60.2
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/build/{rollup.d.ts → index.d.ts} +278 -356
- package/build/index.js +616 -0
- package/build/index.js.map +1 -0
- package/package.json +12 -15
- package/src/create-base-query.ts +119 -0
- package/src/index.ts +28 -0
- package/src/infinite-query-options.ts +125 -0
- package/src/inject-infinite-query.ts +119 -0
- package/src/inject-is-fetching.ts +50 -0
- package/src/inject-is-mutating.ts +49 -0
- package/src/inject-mutation-state.ts +99 -0
- package/src/inject-mutation.ts +122 -0
- package/src/inject-queries.ts +243 -0
- package/src/inject-query-client.ts +27 -0
- package/src/inject-query.ts +207 -0
- package/src/providers.ts +344 -0
- package/src/query-options.ts +125 -0
- package/src/signal-proxy.ts +46 -0
- package/src/test-setup.ts +12 -0
- package/src/types.ts +328 -0
- package/src/util/assert-injector/assert-injector.test.ts +74 -0
- package/src/util/assert-injector/assert-injector.ts +81 -0
- package/src/util/create-injection-token/create-injection-token.test.ts +32 -0
- package/src/util/create-injection-token/create-injection-token.ts +183 -0
- package/src/util/index.ts +13 -0
- package/src/util/is-dev-mode/is-dev-mode.ts +3 -0
- package/src/util/lazy-init/lazy-init.ts +34 -0
- package/src/util/lazy-signal-initializer/lazy-signal-initializer.ts +23 -0
- package/build/README.md +0 -133
- package/build/esm2022/create-base-query.mjs +0 -62
- package/build/esm2022/index.mjs +0 -16
- package/build/esm2022/infinite-query-options.mjs +0 -12
- package/build/esm2022/inject-infinite-query.mjs +0 -15
- package/build/esm2022/inject-is-fetching.mjs +0 -38
- package/build/esm2022/inject-is-mutating.mjs +0 -37
- package/build/esm2022/inject-mutation-state.mjs +0 -47
- package/build/esm2022/inject-mutation.mjs +0 -51
- package/build/esm2022/inject-queries.mjs +0 -33
- package/build/esm2022/inject-query-client.mjs +0 -23
- package/build/esm2022/inject-query.mjs +0 -44
- package/build/esm2022/providers.mjs +0 -206
- package/build/esm2022/query-options.mjs +0 -26
- package/build/esm2022/signal-proxy.mjs +0 -38
- package/build/esm2022/tanstack-angular-query-experimental.mjs +0 -5
- package/build/esm2022/types.mjs +0 -3
- package/build/esm2022/util/assert-injector/assert-injector.mjs +0 -21
- package/build/esm2022/util/create-injection-token/create-injection-token.mjs +0 -61
- package/build/esm2022/util/index.mjs +0 -9
- package/build/esm2022/util/is-dev-mode/is-dev-mode.mjs +0 -3
- package/build/esm2022/util/lazy-init/lazy-init.mjs +0 -31
- package/build/esm2022/util/lazy-signal-initializer/lazy-signal-initializer.mjs +0 -14
- package/build/fesm2022/tanstack-angular-query-experimental.mjs +0 -738
- package/build/fesm2022/tanstack-angular-query-experimental.mjs.map +0 -1
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, NgZone, effect, inject, signal, untracked, } from '@angular/core';
|
|
2
|
-
import { notifyManager, replaceEqualDeep } from '@tanstack/query-core';
|
|
3
|
-
import { assertInjector } from './util/assert-injector/assert-injector';
|
|
4
|
-
import { injectQueryClient } from './inject-query-client';
|
|
5
|
-
import { lazySignalInitializer } from './util/lazy-signal-initializer/lazy-signal-initializer';
|
|
6
|
-
function getResult(mutationCache, options) {
|
|
7
|
-
return mutationCache
|
|
8
|
-
.findAll(options.filters)
|
|
9
|
-
.map((mutation) => (options.select ? options.select(mutation) : mutation.state));
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Injects a signal that tracks the state of all mutations.
|
|
13
|
-
* @param mutationStateOptionsFn - A function that returns mutation state options.
|
|
14
|
-
* @param options - The Angular injector to use.
|
|
15
|
-
* @returns The signal that tracks the state of all mutations.
|
|
16
|
-
* @public
|
|
17
|
-
*/
|
|
18
|
-
export function injectMutationState(mutationStateOptionsFn = () => ({}), options) {
|
|
19
|
-
return assertInjector(injectMutationState, options?.injector, () => {
|
|
20
|
-
const destroyRef = inject(DestroyRef);
|
|
21
|
-
const queryClient = injectQueryClient();
|
|
22
|
-
const ngZone = inject(NgZone);
|
|
23
|
-
const mutationCache = queryClient.getMutationCache();
|
|
24
|
-
return lazySignalInitializer((injector) => {
|
|
25
|
-
const result = signal(getResult(mutationCache, mutationStateOptionsFn()));
|
|
26
|
-
effect(() => {
|
|
27
|
-
const mutationStateOptions = mutationStateOptionsFn();
|
|
28
|
-
untracked(() => {
|
|
29
|
-
// Setting the signal from an effect because it's both 'computed' from options()
|
|
30
|
-
// and needs to be set imperatively in the mutationCache listener.
|
|
31
|
-
result.set(getResult(mutationCache, mutationStateOptions));
|
|
32
|
-
});
|
|
33
|
-
}, { injector });
|
|
34
|
-
const unsubscribe = mutationCache.subscribe(notifyManager.batchCalls(() => {
|
|
35
|
-
const nextResult = replaceEqualDeep(result(), getResult(mutationCache, mutationStateOptionsFn()));
|
|
36
|
-
if (result() !== nextResult) {
|
|
37
|
-
ngZone.run(() => {
|
|
38
|
-
result.set(nextResult);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}));
|
|
42
|
-
destroyRef.onDestroy(unsubscribe);
|
|
43
|
-
return result;
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LW11dGF0aW9uLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1tdXRhdGlvbi1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQTtBQWM5RixTQUFTLFNBQVMsQ0FDaEIsYUFBNEIsRUFDNUIsT0FBc0M7SUFFdEMsT0FBTyxhQUFhO1NBQ2pCLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ3hCLEdBQUcsQ0FDRixDQUFDLFFBQVEsRUFBVyxFQUFFLENBQ3BCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBWSxDQUMxRSxDQUFBO0FBQ0wsQ0FBQztBQVNEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMseUJBQThELEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ3hFLE9BQW9DO0lBRXBDLE9BQU8sY0FBYyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUU3QixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUVwRCxPQUFPLHFCQUFxQixDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUNuQixTQUFTLENBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FDbkQsQ0FBQTtZQUVELE1BQU0sQ0FDSixHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsRUFBRSxDQUFBO2dCQUNyRCxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLGdGQUFnRjtvQkFDaEYsa0VBQWtFO29CQUNsRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFBO2dCQUM1RCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxDQUNiLENBQUE7WUFFRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUN6QyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQ2pDLE1BQU0sRUFBRSxFQUNSLFNBQVMsQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUNuRCxDQUFBO2dCQUNELElBQUksTUFBTSxFQUFFLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQzVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO3dCQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7b0JBQ3hCLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUVqQyxPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgTmdab25lLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBub3RpZnlNYW5hZ2VyLCByZXBsYWNlRXF1YWxEZWVwIH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJy4vdXRpbC9hc3NlcnQtaW5qZWN0b3IvYXNzZXJ0LWluamVjdG9yJ1xuaW1wb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQgfSBmcm9tICcuL2luamVjdC1xdWVyeS1jbGllbnQnXG5pbXBvcnQgeyBsYXp5U2lnbmFsSW5pdGlhbGl6ZXIgfSBmcm9tICcuL3V0aWwvbGF6eS1zaWduYWwtaW5pdGlhbGl6ZXIvbGF6eS1zaWduYWwtaW5pdGlhbGl6ZXInXG5pbXBvcnQgdHlwZSB7IEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHR5cGUge1xuICBNdXRhdGlvbixcbiAgTXV0YXRpb25DYWNoZSxcbiAgTXV0YXRpb25GaWx0ZXJzLFxuICBNdXRhdGlvblN0YXRlLFxufSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcblxudHlwZSBNdXRhdGlvblN0YXRlT3B0aW9uczxUUmVzdWx0ID0gTXV0YXRpb25TdGF0ZT4gPSB7XG4gIGZpbHRlcnM/OiBNdXRhdGlvbkZpbHRlcnNcbiAgc2VsZWN0PzogKG11dGF0aW9uOiBNdXRhdGlvbikgPT4gVFJlc3VsdFxufVxuXG5mdW5jdGlvbiBnZXRSZXN1bHQ8VFJlc3VsdCA9IE11dGF0aW9uU3RhdGU+KFxuICBtdXRhdGlvbkNhY2hlOiBNdXRhdGlvbkNhY2hlLFxuICBvcHRpb25zOiBNdXRhdGlvblN0YXRlT3B0aW9uczxUUmVzdWx0Pixcbik6IEFycmF5PFRSZXN1bHQ+IHtcbiAgcmV0dXJuIG11dGF0aW9uQ2FjaGVcbiAgICAuZmluZEFsbChvcHRpb25zLmZpbHRlcnMpXG4gICAgLm1hcChcbiAgICAgIChtdXRhdGlvbik6IFRSZXN1bHQgPT5cbiAgICAgICAgKG9wdGlvbnMuc2VsZWN0ID8gb3B0aW9ucy5zZWxlY3QobXV0YXRpb24pIDogbXV0YXRpb24uc3RhdGUpIGFzIFRSZXN1bHQsXG4gICAgKVxufVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmplY3RNdXRhdGlvblN0YXRlT3B0aW9ucyB7XG4gIGluamVjdG9yPzogSW5qZWN0b3Jcbn1cblxuLyoqXG4gKiBJbmplY3RzIGEgc2lnbmFsIHRoYXQgdHJhY2tzIHRoZSBzdGF0ZSBvZiBhbGwgbXV0YXRpb25zLlxuICogQHBhcmFtIG11dGF0aW9uU3RhdGVPcHRpb25zRm4gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBtdXRhdGlvbiBzdGF0ZSBvcHRpb25zLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgQW5ndWxhciBpbmplY3RvciB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgc2lnbmFsIHRoYXQgdHJhY2tzIHRoZSBzdGF0ZSBvZiBhbGwgbXV0YXRpb25zLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TXV0YXRpb25TdGF0ZTxUUmVzdWx0ID0gTXV0YXRpb25TdGF0ZT4oXG4gIG11dGF0aW9uU3RhdGVPcHRpb25zRm46ICgpID0+IE11dGF0aW9uU3RhdGVPcHRpb25zPFRSZXN1bHQ+ID0gKCkgPT4gKHt9KSxcbiAgb3B0aW9ucz86IEluamVjdE11dGF0aW9uU3RhdGVPcHRpb25zLFxuKTogU2lnbmFsPEFycmF5PFRSZXN1bHQ+PiB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RNdXRhdGlvblN0YXRlLCBvcHRpb25zPy5pbmplY3RvciwgKCkgPT4ge1xuICAgIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZilcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBuZ1pvbmUgPSBpbmplY3QoTmdab25lKVxuXG4gICAgY29uc3QgbXV0YXRpb25DYWNoZSA9IHF1ZXJ5Q2xpZW50LmdldE11dGF0aW9uQ2FjaGUoKVxuXG4gICAgcmV0dXJuIGxhenlTaWduYWxJbml0aWFsaXplcigoaW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNpZ25hbDxBcnJheTxUUmVzdWx0Pj4oXG4gICAgICAgIGdldFJlc3VsdChtdXRhdGlvbkNhY2hlLCBtdXRhdGlvblN0YXRlT3B0aW9uc0ZuKCkpLFxuICAgICAgKVxuXG4gICAgICBlZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBtdXRhdGlvblN0YXRlT3B0aW9ucyA9IG11dGF0aW9uU3RhdGVPcHRpb25zRm4oKVxuICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBTZXR0aW5nIHRoZSBzaWduYWwgZnJvbSBhbiBlZmZlY3QgYmVjYXVzZSBpdCdzIGJvdGggJ2NvbXB1dGVkJyBmcm9tIG9wdGlvbnMoKVxuICAgICAgICAgICAgLy8gYW5kIG5lZWRzIHRvIGJlIHNldCBpbXBlcmF0aXZlbHkgaW4gdGhlIG11dGF0aW9uQ2FjaGUgbGlzdGVuZXIuXG4gICAgICAgICAgICByZXN1bHQuc2V0KGdldFJlc3VsdChtdXRhdGlvbkNhY2hlLCBtdXRhdGlvblN0YXRlT3B0aW9ucykpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgeyBpbmplY3RvciB9LFxuICAgICAgKVxuXG4gICAgICBjb25zdCB1bnN1YnNjcmliZSA9IG11dGF0aW9uQ2FjaGUuc3Vic2NyaWJlKFxuICAgICAgICBub3RpZnlNYW5hZ2VyLmJhdGNoQ2FsbHMoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5leHRSZXN1bHQgPSByZXBsYWNlRXF1YWxEZWVwKFxuICAgICAgICAgICAgcmVzdWx0KCksXG4gICAgICAgICAgICBnZXRSZXN1bHQobXV0YXRpb25DYWNoZSwgbXV0YXRpb25TdGF0ZU9wdGlvbnNGbigpKSxcbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKHJlc3VsdCgpICE9PSBuZXh0UmVzdWx0KSB7XG4gICAgICAgICAgICBuZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzdWx0LnNldChuZXh0UmVzdWx0KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuXG4gICAgICBkZXN0cm95UmVmLm9uRGVzdHJveSh1bnN1YnNjcmliZSlcblxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH0pXG4gIH0pXG59XG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, Injector, NgZone, computed, effect, inject, runInInjectionContext, signal, } from '@angular/core';
|
|
2
|
-
import { MutationObserver, notifyManager } from '@tanstack/query-core';
|
|
3
|
-
import { assertInjector } from './util/assert-injector/assert-injector';
|
|
4
|
-
import { signalProxy } from './signal-proxy';
|
|
5
|
-
import { injectQueryClient } from './inject-query-client';
|
|
6
|
-
import { noop, shouldThrowError } from './util';
|
|
7
|
-
import { lazyInit } from './util/lazy-init/lazy-init';
|
|
8
|
-
/**
|
|
9
|
-
* Injects a mutation: an imperative function that can be invoked which typically performs server side effects.
|
|
10
|
-
*
|
|
11
|
-
* Unlike queries, mutations are not run automatically.
|
|
12
|
-
* @param optionsFn - A function that returns mutation options.
|
|
13
|
-
* @param injector - The Angular injector to use.
|
|
14
|
-
* @returns The mutation.
|
|
15
|
-
* @public
|
|
16
|
-
*/
|
|
17
|
-
export function injectMutation(optionsFn, injector) {
|
|
18
|
-
return assertInjector(injectMutation, injector, () => {
|
|
19
|
-
const queryClient = injectQueryClient();
|
|
20
|
-
const currentInjector = inject(Injector);
|
|
21
|
-
const destroyRef = inject(DestroyRef);
|
|
22
|
-
const ngZone = inject(NgZone);
|
|
23
|
-
return lazyInit(() => runInInjectionContext(currentInjector, () => {
|
|
24
|
-
const observer = new MutationObserver(queryClient, optionsFn(queryClient));
|
|
25
|
-
const mutate = (variables, mutateOptions) => {
|
|
26
|
-
observer.mutate(variables, mutateOptions).catch(noop);
|
|
27
|
-
};
|
|
28
|
-
effect(() => {
|
|
29
|
-
observer.setOptions(runInInjectionContext(currentInjector, () => optionsFn(queryClient)));
|
|
30
|
-
});
|
|
31
|
-
const result = signal(observer.getCurrentResult());
|
|
32
|
-
const unsubscribe = observer.subscribe(notifyManager.batchCalls((state) => {
|
|
33
|
-
ngZone.run(() => {
|
|
34
|
-
if (state.isError &&
|
|
35
|
-
shouldThrowError(observer.options.throwOnError, [state.error])) {
|
|
36
|
-
throw state.error;
|
|
37
|
-
}
|
|
38
|
-
result.set(state);
|
|
39
|
-
});
|
|
40
|
-
}));
|
|
41
|
-
destroyRef.onDestroy(unsubscribe);
|
|
42
|
-
const resultSignal = computed(() => ({
|
|
43
|
-
...result(),
|
|
44
|
-
mutate,
|
|
45
|
-
mutateAsync: result().mutate,
|
|
46
|
-
}));
|
|
47
|
-
return signalProxy(resultSignal);
|
|
48
|
-
}));
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LW11dGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1tdXRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQVlyRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxjQUFjLENBTTVCLFNBRStELEVBQy9ELFFBQW1CO0lBRW5CLE9BQU8sY0FBYyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUE7UUFDdkMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFN0IsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ25CLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FLbkMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1lBQ3RDLE1BQU0sTUFBTSxHQUtSLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxFQUFFO2dCQUMvQixRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkQsQ0FBQyxDQUFBO1lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDVixRQUFRLENBQUMsVUFBVSxDQUNqQixxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQzFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FDdkIsQ0FDRixDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtZQUVsRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUNwQyxhQUFhLENBQUMsVUFBVSxDQUN0QixDQUNFLEtBS0MsRUFDRCxFQUFFO2dCQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQ0UsS0FBSyxDQUFDLE9BQU87d0JBQ2IsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDOUQsQ0FBQzt3QkFDRCxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUE7b0JBQ25CLENBQUM7b0JBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDbkIsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQ0YsQ0FDRixDQUFBO1lBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUVqQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDbkMsR0FBRyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTTtnQkFDTixXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTTthQUM3QixDQUFDLENBQUMsQ0FBQTtZQUVILE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FLOUIsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBJbmplY3RvcixcbiAgTmdab25lLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlciwgbm90aWZ5TWFuYWdlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICcuL3V0aWwvYXNzZXJ0LWluamVjdG9yL2Fzc2VydC1pbmplY3RvcidcbmltcG9ydCB7IHNpZ25hbFByb3h5IH0gZnJvbSAnLi9zaWduYWwtcHJveHknXG5pbXBvcnQgeyBpbmplY3RRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0LXF1ZXJ5LWNsaWVudCdcbmltcG9ydCB7IG5vb3AsIHNob3VsZFRocm93RXJyb3IgfSBmcm9tICcuL3V0aWwnXG5cbmltcG9ydCB7IGxhenlJbml0IH0gZnJvbSAnLi91dGlsL2xhenktaW5pdC9sYXp5LWluaXQnXG5pbXBvcnQgdHlwZSB7XG4gIERlZmF1bHRFcnJvcixcbiAgTXV0YXRpb25PYnNlcnZlclJlc3VsdCxcbiAgUXVlcnlDbGllbnQsXG59IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHR5cGUge1xuICBDcmVhdGVNdXRhdGVGdW5jdGlvbixcbiAgQ3JlYXRlTXV0YXRpb25PcHRpb25zLFxuICBDcmVhdGVNdXRhdGlvblJlc3VsdCxcbn0gZnJvbSAnLi90eXBlcydcblxuLyoqXG4gKiBJbmplY3RzIGEgbXV0YXRpb246IGFuIGltcGVyYXRpdmUgZnVuY3Rpb24gdGhhdCBjYW4gYmUgaW52b2tlZCB3aGljaCB0eXBpY2FsbHkgcGVyZm9ybXMgc2VydmVyIHNpZGUgZWZmZWN0cy5cbiAqXG4gKiBVbmxpa2UgcXVlcmllcywgbXV0YXRpb25zIGFyZSBub3QgcnVuIGF1dG9tYXRpY2FsbHkuXG4gKiBAcGFyYW0gb3B0aW9uc0ZuIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgbXV0YXRpb24gb3B0aW9ucy5cbiAqIEBwYXJhbSBpbmplY3RvciAtIFRoZSBBbmd1bGFyIGluamVjdG9yIHRvIHVzZS5cbiAqIEByZXR1cm5zIFRoZSBtdXRhdGlvbi5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE11dGF0aW9uPFxuICBURGF0YSA9IHVua25vd24sXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVFZhcmlhYmxlcyA9IHZvaWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4oXG4gIG9wdGlvbnNGbjogKFxuICAgIGNsaWVudDogUXVlcnlDbGllbnQsXG4gICkgPT4gQ3JlYXRlTXV0YXRpb25PcHRpb25zPFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PixcbiAgaW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IENyZWF0ZU11dGF0aW9uUmVzdWx0PFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PiB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RNdXRhdGlvbiwgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBjdXJyZW50SW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuICAgIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpXG5cbiAgICByZXR1cm4gbGF6eUluaXQoKCkgPT5cbiAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChjdXJyZW50SW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcjxcbiAgICAgICAgICBURGF0YSxcbiAgICAgICAgICBURXJyb3IsXG4gICAgICAgICAgVFZhcmlhYmxlcyxcbiAgICAgICAgICBUQ29udGV4dFxuICAgICAgICA+KHF1ZXJ5Q2xpZW50LCBvcHRpb25zRm4ocXVlcnlDbGllbnQpKVxuICAgICAgICBjb25zdCBtdXRhdGU6IENyZWF0ZU11dGF0ZUZ1bmN0aW9uPFxuICAgICAgICAgIFREYXRhLFxuICAgICAgICAgIFRFcnJvcixcbiAgICAgICAgICBUVmFyaWFibGVzLFxuICAgICAgICAgIFRDb250ZXh0XG4gICAgICAgID4gPSAodmFyaWFibGVzLCBtdXRhdGVPcHRpb25zKSA9PiB7XG4gICAgICAgICAgb2JzZXJ2ZXIubXV0YXRlKHZhcmlhYmxlcywgbXV0YXRlT3B0aW9ucykuY2F0Y2gobm9vcClcbiAgICAgICAgfVxuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgb2JzZXJ2ZXIuc2V0T3B0aW9ucyhcbiAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChjdXJyZW50SW5qZWN0b3IsICgpID0+XG4gICAgICAgICAgICAgIG9wdGlvbnNGbihxdWVyeUNsaWVudCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBzaWduYWwob2JzZXJ2ZXIuZ2V0Q3VycmVudFJlc3VsdCgpKVxuXG4gICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gb2JzZXJ2ZXIuc3Vic2NyaWJlKFxuICAgICAgICAgIG5vdGlmeU1hbmFnZXIuYmF0Y2hDYWxscyhcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgc3RhdGU6IE11dGF0aW9uT2JzZXJ2ZXJSZXN1bHQ8XG4gICAgICAgICAgICAgICAgVERhdGEsXG4gICAgICAgICAgICAgICAgVEVycm9yLFxuICAgICAgICAgICAgICAgIFRWYXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgVENvbnRleHRcbiAgICAgICAgICAgICAgPixcbiAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICBuZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBzdGF0ZS5pc0Vycm9yICYmXG4gICAgICAgICAgICAgICAgICBzaG91bGRUaHJvd0Vycm9yKG9ic2VydmVyLm9wdGlvbnMudGhyb3dPbkVycm9yLCBbc3RhdGUuZXJyb3JdKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgc3RhdGUuZXJyb3JcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0LnNldChzdGF0ZSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuXG4gICAgICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KHVuc3Vic2NyaWJlKVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgICAgLi4ucmVzdWx0KCksXG4gICAgICAgICAgbXV0YXRlLFxuICAgICAgICAgIG11dGF0ZUFzeW5jOiByZXN1bHQoKS5tdXRhdGUsXG4gICAgICAgIH0pKVxuXG4gICAgICAgIHJldHVybiBzaWduYWxQcm94eShyZXN1bHRTaWduYWwpIGFzIHVua25vd24gYXMgQ3JlYXRlTXV0YXRpb25SZXN1bHQ8XG4gICAgICAgICAgVERhdGEsXG4gICAgICAgICAgVEVycm9yLFxuICAgICAgICAgIFRWYXJpYWJsZXMsXG4gICAgICAgICAgVENvbnRleHRcbiAgICAgICAgPlxuICAgICAgfSksXG4gICAgKVxuICB9KVxufVxuIl19
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { QueriesObserver, notifyManager } from '@tanstack/query-core';
|
|
2
|
-
import { DestroyRef, computed, effect, inject, signal } from '@angular/core';
|
|
3
|
-
import { assertInjector } from './util/assert-injector/assert-injector';
|
|
4
|
-
import { injectQueryClient } from './inject-query-client';
|
|
5
|
-
/**
|
|
6
|
-
* @public
|
|
7
|
-
*/
|
|
8
|
-
export function injectQueries({ queries, ...options }, injector) {
|
|
9
|
-
return assertInjector(injectQueries, injector, () => {
|
|
10
|
-
const queryClient = injectQueryClient();
|
|
11
|
-
const destroyRef = inject(DestroyRef);
|
|
12
|
-
const defaultedQueries = computed(() => {
|
|
13
|
-
return queries().map((opts) => {
|
|
14
|
-
const defaultedOptions = queryClient.defaultQueryOptions(opts);
|
|
15
|
-
// Make sure the results are already in fetching state before subscribing or updating options
|
|
16
|
-
defaultedOptions._optimisticResults = 'optimistic';
|
|
17
|
-
return defaultedOptions;
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
const observer = new QueriesObserver(queryClient, defaultedQueries(), options);
|
|
21
|
-
// Do not notify on updates because of changes in the options because
|
|
22
|
-
// these changes should already be reflected in the optimistic result.
|
|
23
|
-
effect(() => {
|
|
24
|
-
observer.setQueries(defaultedQueries(), options, { listeners: false });
|
|
25
|
-
});
|
|
26
|
-
const [, getCombinedResult] = observer.getOptimisticResult(defaultedQueries(), options.combine);
|
|
27
|
-
const result = signal(getCombinedResult());
|
|
28
|
-
const unsubscribe = observer.subscribe(notifyManager.batchCalls(result.set));
|
|
29
|
-
destroyRef.onDestroy(unsubscribe);
|
|
30
|
-
return result;
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXF1ZXJpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5qZWN0LXF1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFxTHpEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FJM0IsRUFDRSxPQUFPLEVBQ1AsR0FBRyxPQUFPLEVBSVgsRUFDRCxRQUFtQjtJQUVuQixPQUFPLGNBQWMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVyQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckMsT0FBTyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzlELDZGQUE2RjtnQkFDN0YsZ0JBQWdCLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFBO2dCQUVsRCxPQUFPLGdCQUF3QyxDQUFBO1lBQ2pELENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FDbEMsV0FBVyxFQUNYLGdCQUFnQixFQUFFLEVBQ2xCLE9BQWtELENBQ25ELENBQUE7UUFFRCxxRUFBcUU7UUFDckUsc0VBQXNFO1FBQ3RFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixRQUFRLENBQUMsVUFBVSxDQUNqQixnQkFBZ0IsRUFBRSxFQUNsQixPQUFrRCxFQUNsRCxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FDckIsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQ3hELGdCQUFnQixFQUFFLEVBQ2pCLE9BQW1ELENBQUMsT0FBTyxDQUM3RCxDQUFBO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFTLENBQUMsQ0FBQTtRQUVqRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDNUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVqQyxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJpZXNPYnNlcnZlciwgbm90aWZ5TWFuYWdlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgRGVzdHJveVJlZiwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICcuL3V0aWwvYXNzZXJ0LWluamVjdG9yL2Fzc2VydC1pbmplY3RvcidcbmltcG9ydCB7IGluamVjdFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi9pbmplY3QtcXVlcnktY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHtcbiAgRGVmYXVsdEVycm9yLFxuICBPbWl0S2V5b2YsXG4gIFF1ZXJpZXNPYnNlcnZlck9wdGlvbnMsXG4gIFF1ZXJpZXNQbGFjZWhvbGRlckRhdGFGdW5jdGlvbixcbiAgUXVlcnlGdW5jdGlvbixcbiAgUXVlcnlLZXksXG4gIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zLFxuICBRdWVyeU9ic2VydmVyUmVzdWx0LFxuICBUaHJvd09uRXJyb3IsXG59IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuXG4vLyBUaGlzIGRlZmluZXMgdGhlIGBDcmVhdGVRdWVyeU9wdGlvbnNgIHRoYXQgYXJlIGFjY2VwdGVkIGluIGBRdWVyaWVzT3B0aW9uc2AgJiBgR2V0T3B0aW9uc2AuXG4vLyBgcGxhY2Vob2xkZXJEYXRhYCBmdW5jdGlvbiBkb2VzIG5vdCBoYXZlIGEgcGFyYW1ldGVyXG50eXBlIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxcbiAgVFF1ZXJ5Rm5EYXRhID0gdW5rbm93bixcbiAgVEVycm9yID0gRGVmYXVsdEVycm9yLFxuICBURGF0YSA9IFRRdWVyeUZuRGF0YSxcbiAgVFF1ZXJ5S2V5IGV4dGVuZHMgUXVlcnlLZXkgPSBRdWVyeUtleSxcbj4gPSBPbWl0S2V5b2Y8XG4gIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zPFRRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YSwgVFF1ZXJ5Rm5EYXRhLCBUUXVlcnlLZXk+LFxuICAncGxhY2Vob2xkZXJEYXRhJ1xuPiAmIHtcbiAgcGxhY2Vob2xkZXJEYXRhPzogVFF1ZXJ5Rm5EYXRhIHwgUXVlcmllc1BsYWNlaG9sZGVyRGF0YUZ1bmN0aW9uPFRRdWVyeUZuRGF0YT5cbn1cblxuLy8gQXZvaWQgVFMgZGVwdGgtbGltaXQgZXJyb3IgaW4gY2FzZSBvZiBsYXJnZSBhcnJheSBsaXRlcmFsXG50eXBlIE1BWElNVU1fREVQVEggPSAyMFxuXG4vLyBXaWRlbiB0aGUgdHlwZSBvZiB0aGUgc3ltYm9sIHRvIGVuYWJsZSB0eXBlIGluZmVyZW5jZSBldmVuIGlmIHNraXBUb2tlbiBpcyBub3QgaW1tdXRhYmxlLlxudHlwZSBTa2lwVG9rZW5Gb3JVc2VRdWVyaWVzID0gc3ltYm9sXG5cbnR5cGUgR2V0T3B0aW9uczxUPiA9XG4gIC8vIFBhcnQgMTogcmVzcG9uc2libGUgZm9yIGFwcGx5aW5nIGV4cGxpY2l0IHR5cGUgcGFyYW1ldGVyIHRvIGZ1bmN0aW9uIGFyZ3VtZW50cywgaWYgb2JqZWN0IHsgcXVlcnlGbkRhdGE6IFRRdWVyeUZuRGF0YSwgZXJyb3I6IFRFcnJvciwgZGF0YTogVERhdGEgfVxuICBUIGV4dGVuZHMge1xuICAgIHF1ZXJ5Rm5EYXRhOiBpbmZlciBUUXVlcnlGbkRhdGFcbiAgICBlcnJvcj86IGluZmVyIFRFcnJvclxuICAgIGRhdGE6IGluZmVyIFREYXRhXG4gIH1cbiAgICA/IFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGE+XG4gICAgOiBUIGV4dGVuZHMgeyBxdWVyeUZuRGF0YTogaW5mZXIgVFF1ZXJ5Rm5EYXRhOyBlcnJvcj86IGluZmVyIFRFcnJvciB9XG4gICAgICA/IFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxUUXVlcnlGbkRhdGEsIFRFcnJvcj5cbiAgICAgIDogVCBleHRlbmRzIHsgZGF0YTogaW5mZXIgVERhdGE7IGVycm9yPzogaW5mZXIgVEVycm9yIH1cbiAgICAgICAgPyBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8dW5rbm93biwgVEVycm9yLCBURGF0YT5cbiAgICAgICAgOiAvLyBQYXJ0IDI6IHJlc3BvbnNpYmxlIGZvciBhcHBseWluZyBleHBsaWNpdCB0eXBlIHBhcmFtZXRlciB0byBmdW5jdGlvbiBhcmd1bWVudHMsIGlmIHR1cGxlIFtUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGFdXG4gICAgICAgICAgVCBleHRlbmRzIFtpbmZlciBUUXVlcnlGbkRhdGEsIGluZmVyIFRFcnJvciwgaW5mZXIgVERhdGFdXG4gICAgICAgICAgPyBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3IsIFREYXRhPlxuICAgICAgICAgIDogVCBleHRlbmRzIFtpbmZlciBUUXVlcnlGbkRhdGEsIGluZmVyIFRFcnJvcl1cbiAgICAgICAgICAgID8gUXVlcnlPYnNlcnZlck9wdGlvbnNGb3JDcmVhdGVRdWVyaWVzPFRRdWVyeUZuRGF0YSwgVEVycm9yPlxuICAgICAgICAgICAgOiBUIGV4dGVuZHMgW2luZmVyIFRRdWVyeUZuRGF0YV1cbiAgICAgICAgICAgICAgPyBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8VFF1ZXJ5Rm5EYXRhPlxuICAgICAgICAgICAgICA6IC8vIFBhcnQgMzogcmVzcG9uc2libGUgZm9yIGluZmVycmluZyBhbmQgZW5mb3JjaW5nIHR5cGUgaWYgbm8gZXhwbGljaXQgcGFyYW1ldGVyIHdhcyBwcm92aWRlZFxuICAgICAgICAgICAgICAgIFQgZXh0ZW5kcyB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5Rm4/OlxuICAgICAgICAgICAgICAgICAgICAgIHwgUXVlcnlGdW5jdGlvbjxpbmZlciBUUXVlcnlGbkRhdGEsIGluZmVyIFRRdWVyeUtleT5cbiAgICAgICAgICAgICAgICAgICAgICB8IFNraXBUb2tlbkZvclVzZVF1ZXJpZXNcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiAoZGF0YTogYW55KSA9PiBpbmZlciBURGF0YVxuICAgICAgICAgICAgICAgICAgICB0aHJvd09uRXJyb3I/OiBUaHJvd09uRXJyb3I8YW55LCBpbmZlciBURXJyb3IsIGFueSwgYW55PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID8gUXVlcnlPYnNlcnZlck9wdGlvbnNGb3JDcmVhdGVRdWVyaWVzPFxuICAgICAgICAgICAgICAgICAgICBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHVua25vd24gZXh0ZW5kcyBURXJyb3IgPyBEZWZhdWx0RXJyb3IgOiBURXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIHVua25vd24gZXh0ZW5kcyBURGF0YSA/IFRRdWVyeUZuRGF0YSA6IFREYXRhLFxuICAgICAgICAgICAgICAgICAgICBUUXVlcnlLZXlcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA6IC8vIEZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXNcblxudHlwZSBHZXRSZXN1bHRzPFQ+ID1cbiAgLy8gUGFydCAxOiByZXNwb25zaWJsZSBmb3IgbWFwcGluZyBleHBsaWNpdCB0eXBlIHBhcmFtZXRlciB0byBmdW5jdGlvbiByZXN1bHQsIGlmIG9iamVjdFxuICBUIGV4dGVuZHMgeyBxdWVyeUZuRGF0YTogYW55OyBlcnJvcj86IGluZmVyIFRFcnJvcjsgZGF0YTogaW5mZXIgVERhdGEgfVxuICAgID8gUXVlcnlPYnNlcnZlclJlc3VsdDxURGF0YSwgVEVycm9yPlxuICAgIDogVCBleHRlbmRzIHsgcXVlcnlGbkRhdGE6IGluZmVyIFRRdWVyeUZuRGF0YTsgZXJyb3I/OiBpbmZlciBURXJyb3IgfVxuICAgICAgPyBRdWVyeU9ic2VydmVyUmVzdWx0PFRRdWVyeUZuRGF0YSwgVEVycm9yPlxuICAgICAgOiBUIGV4dGVuZHMgeyBkYXRhOiBpbmZlciBURGF0YTsgZXJyb3I/OiBpbmZlciBURXJyb3IgfVxuICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJSZXN1bHQ8VERhdGEsIFRFcnJvcj5cbiAgICAgICAgOiAvLyBQYXJ0IDI6IHJlc3BvbnNpYmxlIGZvciBtYXBwaW5nIGV4cGxpY2l0IHR5cGUgcGFyYW1ldGVyIHRvIGZ1bmN0aW9uIHJlc3VsdCwgaWYgdHVwbGVcbiAgICAgICAgICBUIGV4dGVuZHMgW2FueSwgaW5mZXIgVEVycm9yLCBpbmZlciBURGF0YV1cbiAgICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJSZXN1bHQ8VERhdGEsIFRFcnJvcj5cbiAgICAgICAgICA6IFQgZXh0ZW5kcyBbaW5mZXIgVFF1ZXJ5Rm5EYXRhLCBpbmZlciBURXJyb3JdXG4gICAgICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJSZXN1bHQ8VFF1ZXJ5Rm5EYXRhLCBURXJyb3I+XG4gICAgICAgICAgICA6IFQgZXh0ZW5kcyBbaW5mZXIgVFF1ZXJ5Rm5EYXRhXVxuICAgICAgICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJSZXN1bHQ8VFF1ZXJ5Rm5EYXRhPlxuICAgICAgICAgICAgICA6IC8vIFBhcnQgMzogcmVzcG9uc2libGUgZm9yIG1hcHBpbmcgaW5mZXJyZWQgdHlwZSB0byByZXN1bHRzLCBpZiBubyBleHBsaWNpdCBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgVCBleHRlbmRzIHtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlGbj86XG4gICAgICAgICAgICAgICAgICAgICAgfCBRdWVyeUZ1bmN0aW9uPGluZmVyIFRRdWVyeUZuRGF0YSwgYW55PlxuICAgICAgICAgICAgICAgICAgICAgIHwgU2tpcFRva2VuRm9yVXNlUXVlcmllc1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Q6IChkYXRhOiBhbnkpID0+IGluZmVyIFREYXRhXG4gICAgICAgICAgICAgICAgICAgIHRocm93T25FcnJvcj86IFRocm93T25FcnJvcjxhbnksIGluZmVyIFRFcnJvciwgYW55LCBhbnk+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPyBRdWVyeU9ic2VydmVyUmVzdWx0PFxuICAgICAgICAgICAgICAgICAgICB1bmtub3duIGV4dGVuZHMgVERhdGEgPyBUUXVlcnlGbkRhdGEgOiBURGF0YSxcbiAgICAgICAgICAgICAgICAgICAgdW5rbm93biBleHRlbmRzIFRFcnJvciA/IERlZmF1bHRFcnJvciA6IFRFcnJvclxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDogLy8gRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgIFF1ZXJ5T2JzZXJ2ZXJSZXN1bHRcblxuLyoqXG4gKiBRdWVyaWVzT3B0aW9ucyByZWR1Y2VyIHJlY3Vyc2l2ZWx5IHVud3JhcHMgZnVuY3Rpb24gYXJndW1lbnRzIHRvIGluZmVyL2VuZm9yY2UgdHlwZSBwYXJhbVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBRdWVyaWVzT3B0aW9uczxcbiAgVCBleHRlbmRzIEFycmF5PGFueT4sXG4gIFRSZXN1bHQgZXh0ZW5kcyBBcnJheTxhbnk+ID0gW10sXG4gIFREZXB0aCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8bnVtYmVyPiA9IFtdLFxuPiA9IFREZXB0aFsnbGVuZ3RoJ10gZXh0ZW5kcyBNQVhJTVVNX0RFUFRIXG4gID8gQXJyYXk8UXVlcnlPYnNlcnZlck9wdGlvbnNGb3JDcmVhdGVRdWVyaWVzPlxuICA6IFQgZXh0ZW5kcyBbXVxuICAgID8gW11cbiAgICA6IFQgZXh0ZW5kcyBbaW5mZXIgSGVhZF1cbiAgICAgID8gWy4uLlRSZXN1bHQsIEdldE9wdGlvbnM8SGVhZD5dXG4gICAgICA6IFQgZXh0ZW5kcyBbaW5mZXIgSGVhZCwgLi4uaW5mZXIgVGFpbF1cbiAgICAgICAgPyBRdWVyaWVzT3B0aW9uczxcbiAgICAgICAgICAgIFsuLi5UYWlsXSxcbiAgICAgICAgICAgIFsuLi5UUmVzdWx0LCBHZXRPcHRpb25zPEhlYWQ+XSxcbiAgICAgICAgICAgIFsuLi5URGVwdGgsIDFdXG4gICAgICAgICAgPlxuICAgICAgICA6IFJlYWRvbmx5QXJyYXk8dW5rbm93bj4gZXh0ZW5kcyBUXG4gICAgICAgICAgPyBUXG4gICAgICAgICAgOiAvLyBJZiBUIGlzICpzb21lKiBhcnJheSBidXQgd2UgY291bGRuJ3QgYXNzaWduIHVua25vd25bXSB0byBpdCwgdGhlbiBpdCBtdXN0IGhvbGQgc29tZSBrbm93bi9ob21vZ2Vub3VzIHR5cGUhXG4gICAgICAgICAgICAvLyB1c2UgdGhpcyB0byBpbmZlciB0aGUgcGFyYW0gdHlwZXMgaW4gdGhlIGNhc2Ugb2YgQXJyYXkubWFwKCkgYXJndW1lbnRcbiAgICAgICAgICAgIFQgZXh0ZW5kcyBBcnJheTxcbiAgICAgICAgICAgICAgICBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8XG4gICAgICAgICAgICAgICAgICBpbmZlciBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgICBpbmZlciBURXJyb3IsXG4gICAgICAgICAgICAgICAgICBpbmZlciBURGF0YSxcbiAgICAgICAgICAgICAgICAgIGluZmVyIFRRdWVyeUtleVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPyBBcnJheTxcbiAgICAgICAgICAgICAgICBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8XG4gICAgICAgICAgICAgICAgICBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgICBURXJyb3IsXG4gICAgICAgICAgICAgICAgICBURGF0YSxcbiAgICAgICAgICAgICAgICAgIFRRdWVyeUtleVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgOiAvLyBGYWxsYmFja1xuICAgICAgICAgICAgICBBcnJheTxRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM+XG5cbi8qKlxuICogUXVlcmllc1Jlc3VsdHMgcmVkdWNlciByZWN1cnNpdmVseSBtYXBzIHR5cGUgcGFyYW0gdG8gcmVzdWx0c1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBRdWVyaWVzUmVzdWx0czxcbiAgVCBleHRlbmRzIEFycmF5PGFueT4sXG4gIFRSZXN1bHQgZXh0ZW5kcyBBcnJheTxhbnk+ID0gW10sXG4gIFREZXB0aCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8bnVtYmVyPiA9IFtdLFxuPiA9IFREZXB0aFsnbGVuZ3RoJ10gZXh0ZW5kcyBNQVhJTVVNX0RFUFRIXG4gID8gQXJyYXk8UXVlcnlPYnNlcnZlclJlc3VsdD5cbiAgOiBUIGV4dGVuZHMgW11cbiAgICA/IFtdXG4gICAgOiBUIGV4dGVuZHMgW2luZmVyIEhlYWRdXG4gICAgICA/IFsuLi5UUmVzdWx0LCBHZXRSZXN1bHRzPEhlYWQ+XVxuICAgICAgOiBUIGV4dGVuZHMgW2luZmVyIEhlYWQsIC4uLmluZmVyIFRhaWxdXG4gICAgICAgID8gUXVlcmllc1Jlc3VsdHM8XG4gICAgICAgICAgICBbLi4uVGFpbF0sXG4gICAgICAgICAgICBbLi4uVFJlc3VsdCwgR2V0UmVzdWx0czxIZWFkPl0sXG4gICAgICAgICAgICBbLi4uVERlcHRoLCAxXVxuICAgICAgICAgID5cbiAgICAgICAgOiBUIGV4dGVuZHMgQXJyYXk8XG4gICAgICAgICAgICAgIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxcbiAgICAgICAgICAgICAgICBpbmZlciBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgaW5mZXIgVEVycm9yLFxuICAgICAgICAgICAgICAgIGluZmVyIFREYXRhLFxuICAgICAgICAgICAgICAgIGFueVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA+XG4gICAgICAgICAgPyAvLyBEeW5hbWljLXNpemUgKGhvbW9nZW5vdXMpIENyZWF0ZVF1ZXJ5T3B0aW9ucyBhcnJheTogbWFwIGRpcmVjdGx5IHRvIGFycmF5IG9mIHJlc3VsdHNcbiAgICAgICAgICAgIEFycmF5PFxuICAgICAgICAgICAgICBRdWVyeU9ic2VydmVyUmVzdWx0PFxuICAgICAgICAgICAgICAgIHVua25vd24gZXh0ZW5kcyBURGF0YSA/IFRRdWVyeUZuRGF0YSA6IFREYXRhLFxuICAgICAgICAgICAgICAgIHVua25vd24gZXh0ZW5kcyBURXJyb3IgPyBEZWZhdWx0RXJyb3IgOiBURXJyb3JcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPlxuICAgICAgICAgIDogLy8gRmFsbGJhY2tcbiAgICAgICAgICAgIEFycmF5PFF1ZXJ5T2JzZXJ2ZXJSZXN1bHQ+XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcmllczxcbiAgVCBleHRlbmRzIEFycmF5PGFueT4sXG4gIFRDb21iaW5lZFJlc3VsdCA9IFF1ZXJpZXNSZXN1bHRzPFQ+LFxuPihcbiAge1xuICAgIHF1ZXJpZXMsXG4gICAgLi4ub3B0aW9uc1xuICB9OiB7XG4gICAgcXVlcmllczogU2lnbmFsPFsuLi5RdWVyaWVzT3B0aW9uczxUPl0+XG4gICAgY29tYmluZT86IChyZXN1bHQ6IFF1ZXJpZXNSZXN1bHRzPFQ+KSA9PiBUQ29tYmluZWRSZXN1bHRcbiAgfSxcbiAgaW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IFNpZ25hbDxUQ29tYmluZWRSZXN1bHQ+IHtcbiAgcmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdFF1ZXJpZXMsIGluamVjdG9yLCAoKSA9PiB7XG4gICAgY29uc3QgcXVlcnlDbGllbnQgPSBpbmplY3RRdWVyeUNsaWVudCgpXG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuXG4gICAgY29uc3QgZGVmYXVsdGVkUXVlcmllcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgIHJldHVybiBxdWVyaWVzKCkubWFwKChvcHRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRlZE9wdGlvbnMgPSBxdWVyeUNsaWVudC5kZWZhdWx0UXVlcnlPcHRpb25zKG9wdHMpXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVzdWx0cyBhcmUgYWxyZWFkeSBpbiBmZXRjaGluZyBzdGF0ZSBiZWZvcmUgc3Vic2NyaWJpbmcgb3IgdXBkYXRpbmcgb3B0aW9uc1xuICAgICAgICBkZWZhdWx0ZWRPcHRpb25zLl9vcHRpbWlzdGljUmVzdWx0cyA9ICdvcHRpbWlzdGljJ1xuXG4gICAgICAgIHJldHVybiBkZWZhdWx0ZWRPcHRpb25zIGFzIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBRdWVyaWVzT2JzZXJ2ZXI8VENvbWJpbmVkUmVzdWx0PihcbiAgICAgIHF1ZXJ5Q2xpZW50LFxuICAgICAgZGVmYXVsdGVkUXVlcmllcygpLFxuICAgICAgb3B0aW9ucyBhcyBRdWVyaWVzT2JzZXJ2ZXJPcHRpb25zPFRDb21iaW5lZFJlc3VsdD4sXG4gICAgKVxuXG4gICAgLy8gRG8gbm90IG5vdGlmeSBvbiB1cGRhdGVzIGJlY2F1c2Ugb2YgY2hhbmdlcyBpbiB0aGUgb3B0aW9ucyBiZWNhdXNlXG4gICAgLy8gdGhlc2UgY2hhbmdlcyBzaG91bGQgYWxyZWFkeSBiZSByZWZsZWN0ZWQgaW4gdGhlIG9wdGltaXN0aWMgcmVzdWx0LlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBvYnNlcnZlci5zZXRRdWVyaWVzKFxuICAgICAgICBkZWZhdWx0ZWRRdWVyaWVzKCksXG4gICAgICAgIG9wdGlvbnMgYXMgUXVlcmllc09ic2VydmVyT3B0aW9uczxUQ29tYmluZWRSZXN1bHQ+LFxuICAgICAgICB7IGxpc3RlbmVyczogZmFsc2UgfSxcbiAgICAgIClcbiAgICB9KVxuXG4gICAgY29uc3QgWywgZ2V0Q29tYmluZWRSZXN1bHRdID0gb2JzZXJ2ZXIuZ2V0T3B0aW1pc3RpY1Jlc3VsdChcbiAgICAgIGRlZmF1bHRlZFF1ZXJpZXMoKSxcbiAgICAgIChvcHRpb25zIGFzIFF1ZXJpZXNPYnNlcnZlck9wdGlvbnM8VENvbWJpbmVkUmVzdWx0PikuY29tYmluZSxcbiAgICApXG5cbiAgICBjb25zdCByZXN1bHQgPSBzaWduYWwoZ2V0Q29tYmluZWRSZXN1bHQoKSBhcyBhbnkpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IG9ic2VydmVyLnN1YnNjcmliZShub3RpZnlNYW5hZ2VyLmJhdGNoQ2FsbHMocmVzdWx0LnNldCkpXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3kodW5zdWJzY3JpYmUpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pXG59XG4iXX0=
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { createNoopInjectionToken } from './util/create-injection-token/create-injection-token';
|
|
2
|
-
const tokens = createNoopInjectionToken('QueryClientToken');
|
|
3
|
-
/**
|
|
4
|
-
* Injects the `QueryClient` instance into the component or service.
|
|
5
|
-
*
|
|
6
|
-
* **Example**
|
|
7
|
-
* ```ts
|
|
8
|
-
* const queryClient = injectQueryClient();
|
|
9
|
-
* ```
|
|
10
|
-
* @returns The `QueryClient` instance.
|
|
11
|
-
* @public
|
|
12
|
-
*/
|
|
13
|
-
export const injectQueryClient = tokens[0];
|
|
14
|
-
/**
|
|
15
|
-
* Usually {@link provideTanStackQuery} is used once to set up TanStack Query and the
|
|
16
|
-
* {@link https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient}
|
|
17
|
-
* for the entire application. You can use `provideQueryClient` to provide a
|
|
18
|
-
* different `QueryClient` instance for a part of the application.
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
export const provideQueryClient = tokens[1];
|
|
22
|
-
export const QUERY_CLIENT = tokens[2];
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXF1ZXJ5LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmplY3QtcXVlcnktY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFBO0FBRy9GLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFjLGtCQUFrQixDQUFDLENBQUE7QUFFeEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRTFDOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUUzQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTm9vcEluamVjdGlvblRva2VuIH0gZnJvbSAnLi91dGlsL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4vY3JlYXRlLWluamVjdGlvbi10b2tlbidcbmltcG9ydCB0eXBlIHsgUXVlcnlDbGllbnQgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcblxuY29uc3QgdG9rZW5zID0gY3JlYXRlTm9vcEluamVjdGlvblRva2VuPFF1ZXJ5Q2xpZW50PignUXVlcnlDbGllbnRUb2tlbicpXG5cbi8qKlxuICogSW5qZWN0cyB0aGUgYFF1ZXJ5Q2xpZW50YCBpbnN0YW5jZSBpbnRvIHRoZSBjb21wb25lbnQgb3Igc2VydmljZS5cbiAqXG4gKiAqKkV4YW1wbGUqKlxuICogYGBgdHNcbiAqIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gaW5qZWN0UXVlcnlDbGllbnQoKTtcbiAqIGBgYFxuICogQHJldHVybnMgVGhlIGBRdWVyeUNsaWVudGAgaW5zdGFuY2UuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RRdWVyeUNsaWVudCA9IHRva2Vuc1swXVxuXG4vKipcbiAqIFVzdWFsbHkge0BsaW5rIHByb3ZpZGVUYW5TdGFja1F1ZXJ5fSBpcyB1c2VkIG9uY2UgdG8gc2V0IHVwIFRhblN0YWNrIFF1ZXJ5IGFuZCB0aGVcbiAqIHtAbGluayBodHRwczovL3RhbnN0YWNrLmNvbS9xdWVyeS9sYXRlc3QvZG9jcy9yZWZlcmVuY2UvUXVlcnlDbGllbnR8UXVlcnlDbGllbnR9XG4gKiBmb3IgdGhlIGVudGlyZSBhcHBsaWNhdGlvbi4gWW91IGNhbiB1c2UgYHByb3ZpZGVRdWVyeUNsaWVudGAgdG8gcHJvdmlkZSBhXG4gKiBkaWZmZXJlbnQgYFF1ZXJ5Q2xpZW50YCBpbnN0YW5jZSBmb3IgYSBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVRdWVyeUNsaWVudCA9IHRva2Vuc1sxXVxuXG5leHBvcnQgY29uc3QgUVVFUllfQ0xJRU5UID0gdG9rZW5zWzJdXG4iXX0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { QueryObserver } from '@tanstack/query-core';
|
|
2
|
-
import { assertInjector } from './util/assert-injector/assert-injector';
|
|
3
|
-
import { createBaseQuery } from './create-base-query';
|
|
4
|
-
/**
|
|
5
|
-
* Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
|
|
6
|
-
*
|
|
7
|
-
* **Basic example**
|
|
8
|
-
* ```ts
|
|
9
|
-
* class ServiceOrComponent {
|
|
10
|
-
* query = injectQuery(() => ({
|
|
11
|
-
* queryKey: ['repoData'],
|
|
12
|
-
* queryFn: () =>
|
|
13
|
-
* this.#http.get<Response>('https://api.github.com/repos/tanstack/query'),
|
|
14
|
-
* }))
|
|
15
|
-
* }
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* Similar to `computed` from Angular, the function passed to `injectQuery` will be run in the reactive context.
|
|
19
|
-
* In the example below, the query will be automatically enabled and executed when the filter signal changes
|
|
20
|
-
* to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled.
|
|
21
|
-
*
|
|
22
|
-
* **Reactive example**
|
|
23
|
-
* ```ts
|
|
24
|
-
* class ServiceOrComponent {
|
|
25
|
-
* filter = signal('')
|
|
26
|
-
*
|
|
27
|
-
* todosQuery = injectQuery(() => ({
|
|
28
|
-
* queryKey: ['todos', this.filter()],
|
|
29
|
-
* queryFn: () => fetchTodos(this.filter()),
|
|
30
|
-
* // Signals can be combined with expressions
|
|
31
|
-
* enabled: !!this.filter(),
|
|
32
|
-
* }))
|
|
33
|
-
* }
|
|
34
|
-
* ```
|
|
35
|
-
* @param optionsFn - A function that returns query options.
|
|
36
|
-
* @param injector - The Angular injector to use.
|
|
37
|
-
* @returns The query result.
|
|
38
|
-
* @public
|
|
39
|
-
* @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries
|
|
40
|
-
*/
|
|
41
|
-
export function injectQuery(optionsFn, injector) {
|
|
42
|
-
return assertInjector(injectQuery, injector, () => createBaseQuery(optionsFn, QueryObserver));
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luamVjdC1xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQWdLckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLFNBQXNELEVBQ3RELFFBQW1CO0lBRW5CLE9BQU8sY0FBYyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQ2hELGVBQWUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQzFDLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlPYnNlcnZlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICcuL3V0aWwvYXNzZXJ0LWluamVjdG9yL2Fzc2VydC1pbmplY3RvcidcbmltcG9ydCB7IGNyZWF0ZUJhc2VRdWVyeSB9IGZyb20gJy4vY3JlYXRlLWJhc2UtcXVlcnknXG5pbXBvcnQgdHlwZSB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHsgRGVmYXVsdEVycm9yLCBRdWVyeUNsaWVudCwgUXVlcnlLZXkgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRlUXVlcnlPcHRpb25zLFxuICBDcmVhdGVRdWVyeVJlc3VsdCxcbiAgRGVmaW5lZENyZWF0ZVF1ZXJ5UmVzdWx0LFxufSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBEZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zLFxuICBVbmRlZmluZWRJbml0aWFsRGF0YU9wdGlvbnMsXG59IGZyb20gJy4vcXVlcnktb3B0aW9ucydcblxuLyoqXG4gKiBJbmplY3RzIGEgcXVlcnk6IGEgZGVjbGFyYXRpdmUgZGVwZW5kZW5jeSBvbiBhbiBhc3luY2hyb25vdXMgc291cmNlIG9mIGRhdGEgdGhhdCBpcyB0aWVkIHRvIGEgdW5pcXVlIGtleS5cbiAqXG4gKiAqKkJhc2ljIGV4YW1wbGUqKlxuICogYGBgdHNcbiAqIGNsYXNzIFNlcnZpY2VPckNvbXBvbmVudCB7XG4gKiAgIHF1ZXJ5ID0gaW5qZWN0UXVlcnkoKCkgPT4gKHtcbiAqICAgICBxdWVyeUtleTogWydyZXBvRGF0YSddLFxuICogICAgIHF1ZXJ5Rm46ICgpID0+XG4gKiAgICAgICB0aGlzLiNodHRwLmdldDxSZXNwb25zZT4oJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvdGFuc3RhY2svcXVlcnknKSxcbiAqICAgfSkpXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBTaW1pbGFyIHRvIGBjb21wdXRlZGAgZnJvbSBBbmd1bGFyLCB0aGUgZnVuY3Rpb24gcGFzc2VkIHRvIGBpbmplY3RRdWVyeWAgd2lsbCBiZSBydW4gaW4gdGhlIHJlYWN0aXZlIGNvbnRleHQuXG4gKiBJbiB0aGUgZXhhbXBsZSBiZWxvdywgdGhlIHF1ZXJ5IHdpbGwgYmUgYXV0b21hdGljYWxseSBlbmFibGVkIGFuZCBleGVjdXRlZCB3aGVuIHRoZSBmaWx0ZXIgc2lnbmFsIGNoYW5nZXNcbiAqIHRvIGEgdHJ1dGh5IHZhbHVlLiBXaGVuIHRoZSBmaWx0ZXIgc2lnbmFsIGNoYW5nZXMgYmFjayB0byBhIGZhbHN5IHZhbHVlLCB0aGUgcXVlcnkgd2lsbCBiZSBkaXNhYmxlZC5cbiAqXG4gKiAqKlJlYWN0aXZlIGV4YW1wbGUqKlxuICogYGBgdHNcbiAqIGNsYXNzIFNlcnZpY2VPckNvbXBvbmVudCB7XG4gKiAgIGZpbHRlciA9IHNpZ25hbCgnJylcbiAqXG4gKiAgIHRvZG9zUXVlcnkgPSBpbmplY3RRdWVyeSgoKSA9PiAoe1xuICogICAgIHF1ZXJ5S2V5OiBbJ3RvZG9zJywgdGhpcy5maWx0ZXIoKV0sXG4gKiAgICAgcXVlcnlGbjogKCkgPT4gZmV0Y2hUb2Rvcyh0aGlzLmZpbHRlcigpKSxcbiAqICAgICAvLyBTaWduYWxzIGNhbiBiZSBjb21iaW5lZCB3aXRoIGV4cHJlc3Npb25zXG4gKiAgICAgZW5hYmxlZDogISF0aGlzLmZpbHRlcigpLFxuICogICB9KSlcbiAqIH1cbiAqIGBgYFxuICogQHBhcmFtIG9wdGlvbnNGbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHF1ZXJ5IG9wdGlvbnMuXG4gKiBAcGFyYW0gaW5qZWN0b3IgLSBUaGUgQW5ndWxhciBpbmplY3RvciB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgcXVlcnkgcmVzdWx0LlxuICogQHB1YmxpY1xuICogQHNlZSBodHRwczovL3RhbnN0YWNrLmNvbS9xdWVyeS9sYXRlc3QvZG9jcy9mcmFtZXdvcmsvYW5ndWxhci9ndWlkZXMvcXVlcmllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcnk8XG4gIFRRdWVyeUZuRGF0YSA9IHVua25vd24sXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVERhdGEgPSBUUXVlcnlGbkRhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5ID0gUXVlcnlLZXksXG4+KFxuICBvcHRpb25zRm46IChcbiAgICBjbGllbnQ6IFF1ZXJ5Q2xpZW50LFxuICApID0+IERlZmluZWRJbml0aWFsRGF0YU9wdGlvbnM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3IsIFREYXRhLCBUUXVlcnlLZXk+LFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKTogRGVmaW5lZENyZWF0ZVF1ZXJ5UmVzdWx0PFREYXRhLCBURXJyb3I+XG5cbi8qKlxuICogSW5qZWN0cyBhIHF1ZXJ5OiBhIGRlY2xhcmF0aXZlIGRlcGVuZGVuY3kgb24gYW4gYXN5bmNocm9ub3VzIHNvdXJjZSBvZiBkYXRhIHRoYXQgaXMgdGllZCB0byBhIHVuaXF1ZSBrZXkuXG4gKlxuICogKipCYXNpYyBleGFtcGxlKipcbiAqIGBgYHRzXG4gKiBjbGFzcyBTZXJ2aWNlT3JDb21wb25lbnQge1xuICogICBxdWVyeSA9IGluamVjdFF1ZXJ5KCgpID0+ICh7XG4gKiAgICAgcXVlcnlLZXk6IFsncmVwb0RhdGEnXSxcbiAqICAgICBxdWVyeUZuOiAoKSA9PlxuICogICAgICAgdGhpcy4jaHR0cC5nZXQ8UmVzcG9uc2U+KCdodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3RhbnN0YWNrL3F1ZXJ5JyksXG4gKiAgIH0pKVxuICogfVxuICogYGBgXG4gKlxuICogU2ltaWxhciB0byBgY29tcHV0ZWRgIGZyb20gQW5ndWxhciwgdGhlIGZ1bmN0aW9uIHBhc3NlZCB0byBgaW5qZWN0UXVlcnlgIHdpbGwgYmUgcnVuIGluIHRoZSByZWFjdGl2ZSBjb250ZXh0LlxuICogSW4gdGhlIGV4YW1wbGUgYmVsb3csIHRoZSBxdWVyeSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgZW5hYmxlZCBhbmQgZXhlY3V0ZWQgd2hlbiB0aGUgZmlsdGVyIHNpZ25hbCBjaGFuZ2VzXG4gKiB0byBhIHRydXRoeSB2YWx1ZS4gV2hlbiB0aGUgZmlsdGVyIHNpZ25hbCBjaGFuZ2VzIGJhY2sgdG8gYSBmYWxzeSB2YWx1ZSwgdGhlIHF1ZXJ5IHdpbGwgYmUgZGlzYWJsZWQuXG4gKlxuICogKipSZWFjdGl2ZSBleGFtcGxlKipcbiAqIGBgYHRzXG4gKiBjbGFzcyBTZXJ2aWNlT3JDb21wb25lbnQge1xuICogICBmaWx0ZXIgPSBzaWduYWwoJycpXG4gKlxuICogICB0b2Rvc1F1ZXJ5ID0gaW5qZWN0UXVlcnkoKCkgPT4gKHtcbiAqICAgICBxdWVyeUtleTogWyd0b2RvcycsIHRoaXMuZmlsdGVyKCldLFxuICogICAgIHF1ZXJ5Rm46ICgpID0+IGZldGNoVG9kb3ModGhpcy5maWx0ZXIoKSksXG4gKiAgICAgLy8gU2lnbmFscyBjYW4gYmUgY29tYmluZWQgd2l0aCBleHByZXNzaW9uc1xuICogICAgIGVuYWJsZWQ6ICEhdGhpcy5maWx0ZXIoKSxcbiAqICAgfSkpXG4gKiB9XG4gKiBgYGBcbiAqIEBwYXJhbSBvcHRpb25zRm4gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBxdWVyeSBvcHRpb25zLlxuICogQHBhcmFtIGluamVjdG9yIC0gVGhlIEFuZ3VsYXIgaW5qZWN0b3IgdG8gdXNlLlxuICogQHJldHVybnMgVGhlIHF1ZXJ5IHJlc3VsdC5cbiAqIEBwdWJsaWNcbiAqIEBzZWUgaHR0cHM6Ly90YW5zdGFjay5jb20vcXVlcnkvbGF0ZXN0L2RvY3MvZnJhbWV3b3JrL2FuZ3VsYXIvZ3VpZGVzL3F1ZXJpZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5PFxuICBUUXVlcnlGbkRhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFREYXRhID0gVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXkgZXh0ZW5kcyBRdWVyeUtleSA9IFF1ZXJ5S2V5LFxuPihcbiAgb3B0aW9uc0ZuOiAoXG4gICAgY2xpZW50OiBRdWVyeUNsaWVudCxcbiAgKSA9PiBVbmRlZmluZWRJbml0aWFsRGF0YU9wdGlvbnM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3IsIFREYXRhLCBUUXVlcnlLZXk+LFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKTogQ3JlYXRlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvcj5cblxuLyoqXG4gKiBJbmplY3RzIGEgcXVlcnk6IGEgZGVjbGFyYXRpdmUgZGVwZW5kZW5jeSBvbiBhbiBhc3luY2hyb25vdXMgc291cmNlIG9mIGRhdGEgdGhhdCBpcyB0aWVkIHRvIGEgdW5pcXVlIGtleS5cbiAqXG4gKiAqKkJhc2ljIGV4YW1wbGUqKlxuICogYGBgdHNcbiAqIGNsYXNzIFNlcnZpY2VPckNvbXBvbmVudCB7XG4gKiAgIHF1ZXJ5ID0gaW5qZWN0UXVlcnkoKCkgPT4gKHtcbiAqICAgICBxdWVyeUtleTogWydyZXBvRGF0YSddLFxuICogICAgIHF1ZXJ5Rm46ICgpID0+XG4gKiAgICAgICB0aGlzLiNodHRwLmdldDxSZXNwb25zZT4oJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvdGFuc3RhY2svcXVlcnknKSxcbiAqICAgfSkpXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBTaW1pbGFyIHRvIGBjb21wdXRlZGAgZnJvbSBBbmd1bGFyLCB0aGUgZnVuY3Rpb24gcGFzc2VkIHRvIGBpbmplY3RRdWVyeWAgd2lsbCBiZSBydW4gaW4gdGhlIHJlYWN0aXZlIGNvbnRleHQuXG4gKiBJbiB0aGUgZXhhbXBsZSBiZWxvdywgdGhlIHF1ZXJ5IHdpbGwgYmUgYXV0b21hdGljYWxseSBlbmFibGVkIGFuZCBleGVjdXRlZCB3aGVuIHRoZSBmaWx0ZXIgc2lnbmFsIGNoYW5nZXNcbiAqIHRvIGEgdHJ1dGh5IHZhbHVlLiBXaGVuIHRoZSBmaWx0ZXIgc2lnbmFsIGNoYW5nZXMgYmFjayB0byBhIGZhbHN5IHZhbHVlLCB0aGUgcXVlcnkgd2lsbCBiZSBkaXNhYmxlZC5cbiAqXG4gKiAqKlJlYWN0aXZlIGV4YW1wbGUqKlxuICogYGBgdHNcbiAqIGNsYXNzIFNlcnZpY2VPckNvbXBvbmVudCB7XG4gKiAgIGZpbHRlciA9IHNpZ25hbCgnJylcbiAqXG4gKiAgIHRvZG9zUXVlcnkgPSBpbmplY3RRdWVyeSgoKSA9PiAoe1xuICogICAgIHF1ZXJ5S2V5OiBbJ3RvZG9zJywgdGhpcy5maWx0ZXIoKV0sXG4gKiAgICAgcXVlcnlGbjogKCkgPT4gZmV0Y2hUb2Rvcyh0aGlzLmZpbHRlcigpKSxcbiAqICAgICAvLyBTaWduYWxzIGNhbiBiZSBjb21iaW5lZCB3aXRoIGV4cHJlc3Npb25zXG4gKiAgICAgZW5hYmxlZDogISF0aGlzLmZpbHRlcigpLFxuICogICB9KSlcbiAqIH1cbiAqIGBgYFxuICogQHBhcmFtIG9wdGlvbnNGbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHF1ZXJ5IG9wdGlvbnMuXG4gKiBAcGFyYW0gaW5qZWN0b3IgLSBUaGUgQW5ndWxhciBpbmplY3RvciB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgcXVlcnkgcmVzdWx0LlxuICogQHB1YmxpY1xuICogQHNlZSBodHRwczovL3RhbnN0YWNrLmNvbS9xdWVyeS9sYXRlc3QvZG9jcy9mcmFtZXdvcmsvYW5ndWxhci9ndWlkZXMvcXVlcmllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcnk8XG4gIFRRdWVyeUZuRGF0YSA9IHVua25vd24sXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVERhdGEgPSBUUXVlcnlGbkRhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5ID0gUXVlcnlLZXksXG4+KFxuICBvcHRpb25zRm46IChcbiAgICBjbGllbnQ6IFF1ZXJ5Q2xpZW50LFxuICApID0+IENyZWF0ZVF1ZXJ5T3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUtleT4sXG4gIGluamVjdG9yPzogSW5qZWN0b3IsXG4pOiBDcmVhdGVRdWVyeVJlc3VsdDxURGF0YSwgVEVycm9yPlxuXG4vKipcbiAqIEluamVjdHMgYSBxdWVyeTogYSBkZWNsYXJhdGl2ZSBkZXBlbmRlbmN5IG9uIGFuIGFzeW5jaHJvbm91cyBzb3VyY2Ugb2YgZGF0YSB0aGF0IGlzIHRpZWQgdG8gYSB1bmlxdWUga2V5LlxuICpcbiAqICoqQmFzaWMgZXhhbXBsZSoqXG4gKiBgYGB0c1xuICogY2xhc3MgU2VydmljZU9yQ29tcG9uZW50IHtcbiAqICAgcXVlcnkgPSBpbmplY3RRdWVyeSgoKSA9PiAoe1xuICogICAgIHF1ZXJ5S2V5OiBbJ3JlcG9EYXRhJ10sXG4gKiAgICAgcXVlcnlGbjogKCkgPT5cbiAqICAgICAgIHRoaXMuI2h0dHAuZ2V0PFJlc3BvbnNlPignaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy90YW5zdGFjay9xdWVyeScpLFxuICogICB9KSlcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFNpbWlsYXIgdG8gYGNvbXB1dGVkYCBmcm9tIEFuZ3VsYXIsIHRoZSBmdW5jdGlvbiBwYXNzZWQgdG8gYGluamVjdFF1ZXJ5YCB3aWxsIGJlIHJ1biBpbiB0aGUgcmVhY3RpdmUgY29udGV4dC5cbiAqIEluIHRoZSBleGFtcGxlIGJlbG93LCB0aGUgcXVlcnkgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGVuYWJsZWQgYW5kIGV4ZWN1dGVkIHdoZW4gdGhlIGZpbHRlciBzaWduYWwgY2hhbmdlc1xuICogdG8gYSB0cnV0aHkgdmFsdWUuIFdoZW4gdGhlIGZpbHRlciBzaWduYWwgY2hhbmdlcyBiYWNrIHRvIGEgZmFsc3kgdmFsdWUsIHRoZSBxdWVyeSB3aWxsIGJlIGRpc2FibGVkLlxuICpcbiAqICoqUmVhY3RpdmUgZXhhbXBsZSoqXG4gKiBgYGB0c1xuICogY2xhc3MgU2VydmljZU9yQ29tcG9uZW50IHtcbiAqICAgZmlsdGVyID0gc2lnbmFsKCcnKVxuICpcbiAqICAgdG9kb3NRdWVyeSA9IGluamVjdFF1ZXJ5KCgpID0+ICh7XG4gKiAgICAgcXVlcnlLZXk6IFsndG9kb3MnLCB0aGlzLmZpbHRlcigpXSxcbiAqICAgICBxdWVyeUZuOiAoKSA9PiBmZXRjaFRvZG9zKHRoaXMuZmlsdGVyKCkpLFxuICogICAgIC8vIFNpZ25hbHMgY2FuIGJlIGNvbWJpbmVkIHdpdGggZXhwcmVzc2lvbnNcbiAqICAgICBlbmFibGVkOiAhIXRoaXMuZmlsdGVyKCksXG4gKiAgIH0pKVxuICogfVxuICogYGBgXG4gKiBAcGFyYW0gb3B0aW9uc0ZuIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgcXVlcnkgb3B0aW9ucy5cbiAqIEBwYXJhbSBpbmplY3RvciAtIFRoZSBBbmd1bGFyIGluamVjdG9yIHRvIHVzZS5cbiAqIEByZXR1cm5zIFRoZSBxdWVyeSByZXN1bHQuXG4gKiBAcHVibGljXG4gKiBAc2VlIGh0dHBzOi8vdGFuc3RhY2suY29tL3F1ZXJ5L2xhdGVzdC9kb2NzL2ZyYW1ld29yay9hbmd1bGFyL2d1aWRlcy9xdWVyaWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeShcbiAgb3B0aW9uc0ZuOiAoY2xpZW50OiBRdWVyeUNsaWVudCkgPT4gQ3JlYXRlUXVlcnlPcHRpb25zLFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKSB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RRdWVyeSwgaW5qZWN0b3IsICgpID0+XG4gICAgY3JlYXRlQmFzZVF1ZXJ5KG9wdGlvbnNGbiwgUXVlcnlPYnNlcnZlciksXG4gIClcbn1cbiJdfQ==
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, ENVIRONMENT_INITIALIZER, Injector, PLATFORM_ID, computed, effect, inject, makeEnvironmentProviders, runInInjectionContext, } from '@angular/core';
|
|
2
|
-
import { onlineManager } from '@tanstack/query-core';
|
|
3
|
-
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
4
|
-
import { injectQueryClient, provideQueryClient } from './inject-query-client';
|
|
5
|
-
import { isDevMode } from './util/is-dev-mode/is-dev-mode';
|
|
6
|
-
/**
|
|
7
|
-
* Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
|
8
|
-
*
|
|
9
|
-
* Allows to configure a `QueryClient` and optional features such as developer tools.
|
|
10
|
-
*
|
|
11
|
-
* **Example - standalone**
|
|
12
|
-
*
|
|
13
|
-
* ```ts
|
|
14
|
-
* import {
|
|
15
|
-
* provideTanStackQuery,
|
|
16
|
-
* QueryClient,
|
|
17
|
-
* } from '@tanstack/angular-query-experimental'
|
|
18
|
-
*
|
|
19
|
-
* bootstrapApplication(AppComponent, {
|
|
20
|
-
* providers: [provideTanStackQuery(new QueryClient())],
|
|
21
|
-
* })
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* **Example - NgModule-based**
|
|
25
|
-
*
|
|
26
|
-
* ```ts
|
|
27
|
-
* import {
|
|
28
|
-
* provideTanStackQuery,
|
|
29
|
-
* QueryClient,
|
|
30
|
-
* } from '@tanstack/angular-query-experimental'
|
|
31
|
-
*
|
|
32
|
-
* @NgModule({
|
|
33
|
-
* declarations: [AppComponent],
|
|
34
|
-
* imports: [BrowserModule],
|
|
35
|
-
* providers: [provideTanStackQuery(new QueryClient())],
|
|
36
|
-
* bootstrap: [AppComponent],
|
|
37
|
-
* })
|
|
38
|
-
* export class AppModule {}
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* You can also enable optional developer tools by adding `withDevtools`. By
|
|
42
|
-
* default the tools will then be loaded when your app is in development mode.
|
|
43
|
-
* ```ts
|
|
44
|
-
* import {
|
|
45
|
-
* provideTanStackQuery,
|
|
46
|
-
* withDevtools
|
|
47
|
-
* QueryClient,
|
|
48
|
-
* } from '@tanstack/angular-query-experimental'
|
|
49
|
-
*
|
|
50
|
-
* bootstrapApplication(AppComponent,
|
|
51
|
-
* {
|
|
52
|
-
* providers: [
|
|
53
|
-
* provideTanStackQuery(new QueryClient(), withDevtools())
|
|
54
|
-
* ]
|
|
55
|
-
* }
|
|
56
|
-
* )
|
|
57
|
-
* ```
|
|
58
|
-
* @param queryClient - A `QueryClient` instance.
|
|
59
|
-
* @param features - Optional features to configure additional Query functionality.
|
|
60
|
-
* @returns A set of providers to set up TanStack Query.
|
|
61
|
-
* @public
|
|
62
|
-
* @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
|
63
|
-
* @see withDevtools
|
|
64
|
-
*/
|
|
65
|
-
export function provideTanStackQuery(queryClient, ...features) {
|
|
66
|
-
return makeEnvironmentProviders([
|
|
67
|
-
provideQueryClient(queryClient),
|
|
68
|
-
{
|
|
69
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
70
|
-
multi: true,
|
|
71
|
-
useValue: () => {
|
|
72
|
-
queryClient.mount();
|
|
73
|
-
// Unmount the query client on application destroy
|
|
74
|
-
inject(DestroyRef).onDestroy(() => queryClient.unmount());
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
features.map((feature) => feature.ɵproviders),
|
|
78
|
-
]);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
|
82
|
-
*
|
|
83
|
-
* Allows to configure a `QueryClient`.
|
|
84
|
-
* @param queryClient - A `QueryClient` instance.
|
|
85
|
-
* @returns A set of providers to set up TanStack Query.
|
|
86
|
-
* @public
|
|
87
|
-
* @see https://tanstack.com/query/v5/docs/framework/angular/quick-start
|
|
88
|
-
* @deprecated Use `provideTanStackQuery` instead.
|
|
89
|
-
*/
|
|
90
|
-
export function provideAngularQuery(queryClient) {
|
|
91
|
-
return provideTanStackQuery(queryClient);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Helper function to create an object that represents a Query feature.
|
|
95
|
-
* @param kind -
|
|
96
|
-
* @param providers -
|
|
97
|
-
* @returns A Query feature.
|
|
98
|
-
*/
|
|
99
|
-
function queryFeature(kind, providers) {
|
|
100
|
-
return { ɵkind: kind, ɵproviders: providers };
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Enables developer tools.
|
|
104
|
-
*
|
|
105
|
-
* **Example**
|
|
106
|
-
*
|
|
107
|
-
* ```ts
|
|
108
|
-
* export const appConfig: ApplicationConfig = {
|
|
109
|
-
* providers: [
|
|
110
|
-
* provideTanStackQuery(new QueryClient(), withDevtools())
|
|
111
|
-
* ]
|
|
112
|
-
* }
|
|
113
|
-
* ```
|
|
114
|
-
* By default the devtools will be loaded when Angular runs in development mode and rendered in `<body>`.
|
|
115
|
-
*
|
|
116
|
-
* If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available.
|
|
117
|
-
*
|
|
118
|
-
* If you need more control over where devtools are rendered, consider `injectDevtoolsPanel`. This allows rendering devtools inside your own devtools for example.
|
|
119
|
-
* @param optionsFn - A function that returns `DevtoolsOptions`.
|
|
120
|
-
* @returns A set of providers for use with `provideTanStackQuery`.
|
|
121
|
-
* @public
|
|
122
|
-
* @see {@link provideTanStackQuery}
|
|
123
|
-
* @see {@link DevtoolsOptions}
|
|
124
|
-
*/
|
|
125
|
-
export function withDevtools(optionsFn) {
|
|
126
|
-
let providers = [];
|
|
127
|
-
if (!isDevMode() && !optionsFn) {
|
|
128
|
-
providers = [];
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
providers = [
|
|
132
|
-
{
|
|
133
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
134
|
-
multi: true,
|
|
135
|
-
useFactory: () => {
|
|
136
|
-
if (!isPlatformBrowser(inject(PLATFORM_ID)))
|
|
137
|
-
return () => { };
|
|
138
|
-
const injector = inject(Injector);
|
|
139
|
-
const options = computed(() => runInInjectionContext(injector, () => optionsFn?.() ?? {}));
|
|
140
|
-
let devtools = null;
|
|
141
|
-
let el = null;
|
|
142
|
-
const shouldLoadToolsSignal = computed(() => {
|
|
143
|
-
const { loadDevtools } = options();
|
|
144
|
-
return typeof loadDevtools === 'boolean'
|
|
145
|
-
? loadDevtools
|
|
146
|
-
: isDevMode();
|
|
147
|
-
});
|
|
148
|
-
const doc = inject(DOCUMENT);
|
|
149
|
-
const destroyRef = inject(DestroyRef);
|
|
150
|
-
const getResolvedQueryClient = () => {
|
|
151
|
-
const injectedClient = injectQueryClient({
|
|
152
|
-
optional: true,
|
|
153
|
-
injector,
|
|
154
|
-
});
|
|
155
|
-
const client = options().client ?? injectedClient;
|
|
156
|
-
if (!client) {
|
|
157
|
-
throw new Error('No QueryClient found');
|
|
158
|
-
}
|
|
159
|
-
return client;
|
|
160
|
-
};
|
|
161
|
-
const destroyDevtools = () => {
|
|
162
|
-
devtools?.unmount();
|
|
163
|
-
el?.remove();
|
|
164
|
-
devtools = null;
|
|
165
|
-
};
|
|
166
|
-
return () => effect(() => {
|
|
167
|
-
const shouldLoadTools = shouldLoadToolsSignal();
|
|
168
|
-
const { client, position, errorTypes, buttonPosition, initialIsOpen, } = options();
|
|
169
|
-
if (devtools && !shouldLoadTools) {
|
|
170
|
-
destroyDevtools();
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
else if (devtools && shouldLoadTools) {
|
|
174
|
-
client && devtools.setClient(client);
|
|
175
|
-
position && devtools.setPosition(position);
|
|
176
|
-
errorTypes && devtools.setErrorTypes(errorTypes);
|
|
177
|
-
buttonPosition && devtools.setButtonPosition(buttonPosition);
|
|
178
|
-
initialIsOpen && devtools.setInitialIsOpen(initialIsOpen);
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
else if (!shouldLoadTools) {
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
el = doc.body.appendChild(document.createElement('div'));
|
|
185
|
-
el.classList.add('tsqd-parent-container');
|
|
186
|
-
import('@tanstack/query-devtools').then((queryDevtools) => runInInjectionContext(injector, () => {
|
|
187
|
-
devtools = new queryDevtools.TanstackQueryDevtools({
|
|
188
|
-
...options(),
|
|
189
|
-
client: getResolvedQueryClient(),
|
|
190
|
-
queryFlavor: 'Angular Query',
|
|
191
|
-
version: '5',
|
|
192
|
-
onlineManager,
|
|
193
|
-
});
|
|
194
|
-
el && devtools.mount(el);
|
|
195
|
-
// Unmount the devtools on application destroy
|
|
196
|
-
destroyRef.onDestroy(destroyDevtools);
|
|
197
|
-
}));
|
|
198
|
-
});
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
];
|
|
202
|
-
}
|
|
203
|
-
return queryFeature('DeveloperTools', providers);
|
|
204
|
-
}
|
|
205
|
-
export const queryFeatures = ['DeveloperTools'];
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLHVCQUF1QixFQUN2QixRQUFRLEVBQ1IsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLHdCQUF3QixFQUN4QixxQkFBcUIsR0FDdEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFVMUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwREc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFdBQXdCLEVBQ3hCLEdBQUcsUUFBOEI7SUFFakMsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixrQkFBa0IsQ0FBQyxXQUFXLENBQUM7UUFDL0I7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ25CLGtEQUFrRDtnQkFDbEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUMzRCxDQUFDO1NBQ0Y7UUFDRCxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0tBQzlDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFdBQXdCO0lBRXhCLE9BQU8sb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQVVEOzs7OztHQUtHO0FBQ0gsU0FBUyxZQUFZLENBQ25CLElBQWtCLEVBQ2xCLFNBQTBCO0lBRTFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQTtBQUMvQyxDQUFDO0FBdUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsU0FBaUM7SUFFakMsSUFBSSxTQUFTLEdBQW9CLEVBQUUsQ0FBQTtJQUNuQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixTQUFTLEdBQUcsRUFBRSxDQUFBO0lBQ2hCLENBQUM7U0FBTSxDQUFDO1FBQ04sU0FBUyxHQUFHO1lBQ1Y7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsVUFBVSxFQUFFLEdBQUcsRUFBRTtvQkFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUFFLE9BQU8sR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFBO29CQUM1RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7b0JBQ2pDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDNUIscUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQzNELENBQUE7b0JBRUQsSUFBSSxRQUFRLEdBQWlDLElBQUksQ0FBQTtvQkFDakQsSUFBSSxFQUFFLEdBQXVCLElBQUksQ0FBQTtvQkFFakMsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO3dCQUMxQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUE7d0JBQ2xDLE9BQU8sT0FBTyxZQUFZLEtBQUssU0FBUzs0QkFDdEMsQ0FBQyxDQUFDLFlBQVk7NEJBQ2QsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO29CQUNqQixDQUFDLENBQUMsQ0FBQTtvQkFFRixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7b0JBQzVCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtvQkFFckMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLEVBQUU7d0JBQ2xDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDOzRCQUN2QyxRQUFRLEVBQUUsSUFBSTs0QkFDZCxRQUFRO3lCQUNULENBQUMsQ0FBQTt3QkFDRixNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFBO3dCQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO3dCQUN6QyxDQUFDO3dCQUNELE9BQU8sTUFBTSxDQUFBO29CQUNmLENBQUMsQ0FBQTtvQkFFRCxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7d0JBQzNCLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQTt3QkFDbkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFBO3dCQUNaLFFBQVEsR0FBRyxJQUFJLENBQUE7b0JBQ2pCLENBQUMsQ0FBQTtvQkFFRCxPQUFPLEdBQUcsRUFBRSxDQUNWLE1BQU0sQ0FBQyxHQUFHLEVBQUU7d0JBQ1YsTUFBTSxlQUFlLEdBQUcscUJBQXFCLEVBQUUsQ0FBQTt3QkFDL0MsTUFBTSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNWLGNBQWMsRUFDZCxhQUFhLEdBQ2QsR0FBRyxPQUFPLEVBQUUsQ0FBQTt3QkFFYixJQUFJLFFBQVEsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDOzRCQUNqQyxlQUFlLEVBQUUsQ0FBQTs0QkFDakIsT0FBTTt3QkFDUixDQUFDOzZCQUFNLElBQUksUUFBUSxJQUFJLGVBQWUsRUFBRSxDQUFDOzRCQUN2QyxNQUFNLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTs0QkFDcEMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7NEJBQzFDLFVBQVUsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBOzRCQUNoRCxjQUFjLElBQUksUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFBOzRCQUM1RCxhQUFhLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFBOzRCQUN6RCxPQUFNO3dCQUNSLENBQUM7NkJBQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDOzRCQUM1QixPQUFNO3dCQUNSLENBQUM7d0JBRUQsRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTt3QkFDeEQsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTt3QkFFekMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FDeEQscUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTs0QkFDbkMsUUFBUSxHQUFHLElBQUksYUFBYSxDQUFDLHFCQUFxQixDQUFDO2dDQUNqRCxHQUFHLE9BQU8sRUFBRTtnQ0FDWixNQUFNLEVBQUUsc0JBQXNCLEVBQUU7Z0NBQ2hDLFdBQVcsRUFBRSxlQUFlO2dDQUM1QixPQUFPLEVBQUUsR0FBRztnQ0FDWixhQUFhOzZCQUNkLENBQUMsQ0FBQTs0QkFFRixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTs0QkFFeEIsOENBQThDOzRCQUM5QyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFBO3dCQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFBO29CQUNILENBQUMsQ0FBQyxDQUFBO2dCQUNOLENBQUM7YUFDRjtTQUNGLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUE7QUFDbEQsQ0FBQztBQVlELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLGdCQUFnQixDQUFVLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgSW5qZWN0b3IsXG4gIFBMQVRGT1JNX0lELFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgb25saW5lTWFuYWdlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQsIHByb3ZpZGVRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0LXF1ZXJ5LWNsaWVudCdcbmltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJy4vdXRpbC9pcy1kZXYtbW9kZS9pcy1kZXYtbW9kZSdcbmltcG9ydCB0eXBlIHsgUXVlcnlDbGllbnQgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHtcbiAgRGV2dG9vbHNCdXR0b25Qb3NpdGlvbixcbiAgRGV2dG9vbHNFcnJvclR5cGUsXG4gIERldnRvb2xzUG9zaXRpb24sXG4gIFRhbnN0YWNrUXVlcnlEZXZ0b29scyxcbn0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWRldnRvb2xzJ1xuXG4vKipcbiAqIFNldHMgdXAgcHJvdmlkZXJzIG5lY2Vzc2FyeSB0byBlbmFibGUgVGFuU3RhY2sgUXVlcnkgZnVuY3Rpb25hbGl0eSBmb3IgQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKlxuICogQWxsb3dzIHRvIGNvbmZpZ3VyZSBhIGBRdWVyeUNsaWVudGAgYW5kIG9wdGlvbmFsIGZlYXR1cmVzIHN1Y2ggYXMgZGV2ZWxvcGVyIHRvb2xzLlxuICpcbiAqICoqRXhhbXBsZSAtIHN0YW5kYWxvbmUqKlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQge1xuICogICBwcm92aWRlVGFuU3RhY2tRdWVyeSxcbiAqICAgUXVlcnlDbGllbnQsXG4gKiB9IGZyb20gJ0B0YW5zdGFjay9hbmd1bGFyLXF1ZXJ5LWV4cGVyaW1lbnRhbCdcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbcHJvdmlkZVRhblN0YWNrUXVlcnkobmV3IFF1ZXJ5Q2xpZW50KCkpXSxcbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiAqKkV4YW1wbGUgLSBOZ01vZHVsZS1iYXNlZCoqXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7XG4gKiAgIHByb3ZpZGVUYW5TdGFja1F1ZXJ5LFxuICogICBRdWVyeUNsaWVudCxcbiAqIH0gZnJvbSAnQHRhbnN0YWNrL2FuZ3VsYXItcXVlcnktZXhwZXJpbWVudGFsJ1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXG4gKiAgIGltcG9ydHM6IFtCcm93c2VyTW9kdWxlXSxcbiAqICAgcHJvdmlkZXJzOiBbcHJvdmlkZVRhblN0YWNrUXVlcnkobmV3IFF1ZXJ5Q2xpZW50KCkpXSxcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKiBgYGBcbiAqXG4gKiBZb3UgY2FuIGFsc28gZW5hYmxlIG9wdGlvbmFsIGRldmVsb3BlciB0b29scyBieSBhZGRpbmcgYHdpdGhEZXZ0b29sc2AuIEJ5XG4gKiBkZWZhdWx0IHRoZSB0b29scyB3aWxsIHRoZW4gYmUgbG9hZGVkIHdoZW4geW91ciBhcHAgaXMgaW4gZGV2ZWxvcG1lbnQgbW9kZS5cbiAqIGBgYHRzXG4gKiBpbXBvcnQge1xuICogICBwcm92aWRlVGFuU3RhY2tRdWVyeSxcbiAqICAgd2l0aERldnRvb2xzXG4gKiAgIFF1ZXJ5Q2xpZW50LFxuICogfSBmcm9tICdAdGFuc3RhY2svYW5ndWxhci1xdWVyeS1leHBlcmltZW50YWwnXG4gKlxuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LFxuICogICB7XG4gKiAgICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgICBwcm92aWRlVGFuU3RhY2tRdWVyeShuZXcgUXVlcnlDbGllbnQoKSwgd2l0aERldnRvb2xzKCkpXG4gKiAgICAgXVxuICogICB9XG4gKiApXG4gKiBgYGBcbiAqIEBwYXJhbSBxdWVyeUNsaWVudCAtIEEgYFF1ZXJ5Q2xpZW50YCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmZWF0dXJlcyAtIE9wdGlvbmFsIGZlYXR1cmVzIHRvIGNvbmZpZ3VyZSBhZGRpdGlvbmFsIFF1ZXJ5IGZ1bmN0aW9uYWxpdHkuXG4gKiBAcmV0dXJucyBBIHNldCBvZiBwcm92aWRlcnMgdG8gc2V0IHVwIFRhblN0YWNrIFF1ZXJ5LlxuICogQHB1YmxpY1xuICogQHNlZSBodHRwczovL3RhbnN0YWNrLmNvbS9xdWVyeS92NS9kb2NzL2ZyYW1ld29yay9hbmd1bGFyL3F1aWNrLXN0YXJ0XG4gKiBAc2VlIHdpdGhEZXZ0b29sc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVRhblN0YWNrUXVlcnkoXG4gIHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudCxcbiAgLi4uZmVhdHVyZXM6IEFycmF5PFF1ZXJ5RmVhdHVyZXM+XG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHByb3ZpZGVRdWVyeUNsaWVudChxdWVyeUNsaWVudCksXG4gICAge1xuICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZVZhbHVlOiAoKSA9PiB7XG4gICAgICAgIHF1ZXJ5Q2xpZW50Lm1vdW50KClcbiAgICAgICAgLy8gVW5tb3VudCB0aGUgcXVlcnkgY2xpZW50IG9uIGFwcGxpY2F0aW9uIGRlc3Ryb3lcbiAgICAgICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiBxdWVyeUNsaWVudC51bm1vdW50KCkpXG4gICAgICB9LFxuICAgIH0sXG4gICAgZmVhdHVyZXMubWFwKChmZWF0dXJlKSA9PiBmZWF0dXJlLsm1cHJvdmlkZXJzKSxcbiAgXSlcbn1cblxuLyoqXG4gKiBTZXRzIHVwIHByb3ZpZGVycyBuZWNlc3NhcnkgdG8gZW5hYmxlIFRhblN0YWNrIFF1ZXJ5IGZ1bmN0aW9uYWxpdHkgZm9yIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICpcbiAqIEFsbG93cyB0byBjb25maWd1cmUgYSBgUXVlcnlDbGllbnRgLlxuICogQHBhcmFtIHF1ZXJ5Q2xpZW50IC0gQSBgUXVlcnlDbGllbnRgIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBzZXQgb2YgcHJvdmlkZXJzIHRvIHNldCB1cCBUYW5TdGFjayBRdWVyeS5cbiAqIEBwdWJsaWNcbiAqIEBzZWUgaHR0cHM6Ly90YW5zdGFjay5jb20vcXVlcnkvdjUvZG9jcy9mcmFtZXdvcmsvYW5ndWxhci9xdWljay1zdGFydFxuICogQGRlcHJlY2F0ZWQgVXNlIGBwcm92aWRlVGFuU3RhY2tRdWVyeWAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBbmd1bGFyUXVlcnkoXG4gIHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudCxcbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIHByb3ZpZGVUYW5TdGFja1F1ZXJ5KHF1ZXJ5Q2xpZW50KVxufVxuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIHJlcHJlc2VudCBhIFF1ZXJ5IGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlGZWF0dXJlPFRGZWF0dXJlS2luZCBleHRlbmRzIFF1ZXJ5RmVhdHVyZUtpbmQ+IHtcbiAgybVraW5kOiBURmVhdHVyZUtpbmRcbiAgybVwcm92aWRlcnM6IEFycmF5PFByb3ZpZGVyPlxufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIFF1ZXJ5IGZlYXR1cmUuXG4gKiBAcGFyYW0ga2luZCAtXG4gKiBAcGFyYW0gcHJvdmlkZXJzIC1cbiAqIEByZXR1cm5zIEEgUXVlcnkgZmVhdHVyZS5cbiAqL1xuZnVuY3Rpb24gcXVlcnlGZWF0dXJlPFRGZWF0dXJlS2luZCBleHRlbmRzIFF1ZXJ5RmVhdHVyZUtpbmQ+KFxuICBraW5kOiBURmVhdHVyZUtpbmQsXG4gIHByb3ZpZGVyczogQXJyYXk8UHJvdmlkZXI+LFxuKTogUXVlcnlGZWF0dXJlPFRGZWF0dXJlS2luZD4ge1xuICByZXR1cm4geyDJtWtpbmQ6IGtpbmQsIMm1cHJvdmlkZXJzOiBwcm92aWRlcnMgfVxufVxuXG4vKipcbiAqIEEgdHlwZSBhbGlhcyB0aGF0IHJlcHJlc2VudHMgYSBmZWF0dXJlIHdoaWNoIGVuYWJsZXMgZGV2ZWxvcGVyIHRvb2xzLlxuICogVGhlIHR5cGUgaXMgdXNlZCB0byBkZXNjcmliZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgd2l0aERldnRvb2xzYCBmdW5jdGlvbi5cbiAqIEBwdWJsaWNcbiAqIEBzZWUge0BsaW5rIHdpdGhEZXZ0b29sc31cbiAqL1xuZXhwb3J0IHR5cGUgRGV2ZWxvcGVyVG9vbHNGZWF0dXJlID0gUXVlcnlGZWF0dXJlPCdEZXZlbG9wZXJUb29scyc+XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIFRhblN0YWNrIFF1ZXJ5IGRldnRvb2xzLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERldnRvb2xzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0cnVlIGlmIHlvdSB3YW50IHRoZSBkZXZ0b29scyB0byBkZWZhdWx0IHRvIGJlaW5nIG9wZW5cbiAgICovXG4gIGluaXRpYWxJc09wZW4/OiBib29sZWFuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIFRhblN0YWNrIGxvZ28gdG8gb3BlbiBhbmQgY2xvc2UgdGhlIGRldnRvb2xzIHBhbmVsLlxuICAgKiBgdG9wLWxlZnRgIHwgYHRvcC1yaWdodGAgfCBgYm90dG9tLWxlZnRgIHwgYGJvdHRvbS1yaWdodGAgfCBgcmVsYXRpdmVgXG4gICAqIERlZmF1bHRzIHRvIGBib3R0b20tcmlnaHRgLlxuICAgKi9cbiAgYnV0dG9uUG9zaXRpb24/OiBEZXZ0b29sc0J1dHRvblBvc2l0aW9uXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIFRhblN0YWNrIFF1ZXJ5IGRldnRvb2xzIHBhbmVsLlxuICAgKiBgdG9wYCB8IGBib3R0b21gIHwgYGxlZnRgIHwgYHJpZ2h0YFxuICAgKiBEZWZhdWx0cyB0byBgYm90dG9tYC5cbiAgICovXG4gIHBvc2l0aW9uPzogRGV2dG9vbHNQb3NpdGlvblxuICAvKipcbiAgICogQ3VzdG9tIGluc3RhbmNlIG9mIFF1ZXJ5Q2xpZW50XG4gICAqL1xuICBjbGllbnQ/OiBRdWVyeUNsaWVudFxuICAvKipcbiAgICogVXNlIHRoaXMgc28geW91IGNhbiBkZWZpbmUgY3VzdG9tIGVycm9ycyB0aGF0IGNhbiBiZSBzaG93biBpbiB0aGUgZGV2dG9vbHMuXG4gICAqL1xuICBlcnJvclR5cGVzPzogQXJyYXk8RGV2dG9vbHNFcnJvclR5cGU+XG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBwYXNzIGEgbm9uY2UgdG8gdGhlIHN0eWxlIHRhZyB0aGF0IGlzIGFkZGVkIHRvIHRoZSBkb2N1bWVudCBoZWFkLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgYXJlIHVzaW5nIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgKENTUCkgbm9uY2UgdG8gYWxsb3cgaW5saW5lIHN0eWxlcy5cbiAgICovXG4gIHN0eWxlTm9uY2U/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHNvIHlvdSBjYW4gYXR0YWNoIHRoZSBkZXZ0b29sJ3Mgc3R5bGVzIHRvIGEgc3BlY2lmaWMgZWxlbWVudCBpbiB0aGUgRE9NLlxuICAgKi9cbiAgc2hhZG93RE9NVGFyZ2V0PzogU2hhZG93Um9vdFxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkZXZlbG9wZXIgdG9vbHMgc2hvdWxkIGxvYWQuXG4gICAqIC0gYGF1dG9gLSAoRGVmYXVsdCkgTGF6aWx5IGxvYWRzIGRldnRvb2xzIHdoZW4gaW4gZGV2ZWxvcG1lbnQgbW9kZS4gU2tpcHMgbG9hZGluZyBpbiBwcm9kdWN0aW9uIG1vZGUuXG4gICAqIC0gYHRydWVgLSBBbHdheXMgbG9hZCB0aGUgZGV2dG9vbHMsIHJlZ2FyZGxlc3Mgb2YgdGhlIGVudmlyb25tZW50LlxuICAgKiAtIGBmYWxzZWAtIE5ldmVyIGxvYWQgdGhlIGRldnRvb2xzLCByZWdhcmRsZXNzIG9mIHRoZSBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogWW91IGNhbiB1c2UgYHRydWVgIGFuZCBgZmFsc2VgIHRvIG92ZXJyaWRlIGxvYWRpbmcgZGV2ZWxvcGVyIHRvb2xzIGZyb20gYW4gZW52aXJvbm1lbnQgZmlsZS5cbiAgICogRm9yIGV4YW1wbGUsIGEgdGVzdCBlbnZpcm9ubWVudCBtaWdodCBydW4gaW4gcHJvZHVjdGlvbiBtb2RlIGJ1dCB5b3UgbWF5IHdhbnQgdG8gbG9hZCBkZXZlbG9wZXIgdG9vbHMuXG4gICAqXG4gICAqIEFkZGl0aW9uYWxseSwgeW91IGNhbiB1c2UgYSBzaWduYWwgaW4gdGhlIGNhbGxiYWNrIHRvIGR5bmFtaWNhbGx5IGxvYWQgdGhlIGRldnRvb2xzIGJhc2VkIG9uIGEgY29uZGl0aW9uLiBGb3IgZXhhbXBsZSxcbiAgICogYSBzaWduYWwgY3JlYXRlZCBmcm9tIGEgUnhKUyBvYnNlcnZhYmxlIHRoYXQgbGlzdGVucyBmb3IgYSBrZXlib2FyZCBzaG9ydGN1dC5cbiAgICpcbiAgICogKipFeGFtcGxlKipcbiAgICogYGBgdHNcbiAgICogICAgd2l0aERldnRvb2xzKCgpID0+ICh7XG4gICAqICAgICAgaW5pdGlhbElzT3BlbjogdHJ1ZSxcbiAgICogICAgICBsb2FkRGV2dG9vbHM6IGluamVjdChFeGFtcGxlU2VydmljZSkubG9hZERldnRvb2xzKClcbiAgICogICAgfSkpXG4gICAqICBgYGBcbiAgICovXG4gIGxvYWREZXZ0b29scz86ICdhdXRvJyB8IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBFbmFibGVzIGRldmVsb3BlciB0b29scy5cbiAqXG4gKiAqKkV4YW1wbGUqKlxuICpcbiAqIGBgYHRzXG4gKiBleHBvcnQgY29uc3QgYXBwQ29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZyA9IHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVRhblN0YWNrUXVlcnkobmV3IFF1ZXJ5Q2xpZW50KCksIHdpdGhEZXZ0b29scygpKVxuICogICBdXG4gKiB9XG4gKiBgYGBcbiAqIEJ5IGRlZmF1bHQgdGhlIGRldnRvb2xzIHdpbGwgYmUgbG9hZGVkIHdoZW4gQW5ndWxhciBydW5zIGluIGRldmVsb3BtZW50IG1vZGUgYW5kIHJlbmRlcmVkIGluIGA8Ym9keT5gLlxuICpcbiAqIElmIHlvdSBuZWVkIG1vcmUgY29udHJvbCBvdmVyIHdoZW4gZGV2dG9vbHMgYXJlIGxvYWRlZCwgeW91IGNhbiB1c2UgdGhlIGBsb2FkRGV2dG9vbHNgIG9wdGlvbi4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHlvdSB3YW50IHRvIGxvYWQgZGV2dG9vbHMgYmFzZWQgb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuIEZvciBpbnN0YW5jZSwgeW91IG1pZ2h0IGhhdmUgYSB0ZXN0IGVudmlyb25tZW50IHJ1bm5pbmcgaW4gcHJvZHVjdGlvbiBtb2RlIGJ1dCBzdGlsbCByZXF1aXJlIGRldnRvb2xzIHRvIGJlIGF2YWlsYWJsZS5cbiAqXG4gKiBJZiB5b3UgbmVlZCBtb3JlIGNvbnRyb2wgb3ZlciB3aGVyZSBkZXZ0b29scyBhcmUgcmVuZGVyZWQsIGNvbnNpZGVyIGBpbmplY3REZXZ0b29sc1BhbmVsYC4gVGhpcyBhbGxvd3MgcmVuZGVyaW5nIGRldnRvb2xzIGluc2lkZSB5b3VyIG93biBkZXZ0b29scyBmb3IgZXhhbXBsZS5cbiAqIEBwYXJhbSBvcHRpb25zRm4gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBgRGV2dG9vbHNPcHRpb25zYC5cbiAqIEByZXR1cm5zIEEgc2V0IG9mIHByb3ZpZGVycyBmb3IgdXNlIHdpdGggYHByb3ZpZGVUYW5TdGFja1F1ZXJ5YC5cbiAqIEBwdWJsaWNcbiAqIEBzZWUge0BsaW5rIHByb3ZpZGVUYW5TdGFja1F1ZXJ5fVxuICogQHNlZSB7QGxpbmsgRGV2dG9vbHNPcHRpb25zfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aERldnRvb2xzKFxuICBvcHRpb25zRm4/OiAoKSA9PiBEZXZ0b29sc09wdGlvbnMsXG4pOiBEZXZlbG9wZXJUb29sc0ZlYXR1cmUge1xuICBsZXQgcHJvdmlkZXJzOiBBcnJheTxQcm92aWRlcj4gPSBbXVxuICBpZiAoIWlzRGV2TW9kZSgpICYmICFvcHRpb25zRm4pIHtcbiAgICBwcm92aWRlcnMgPSBbXVxuICB9IGVsc2Uge1xuICAgIHByb3ZpZGVycyA9IFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKSkgcmV0dXJuICgpID0+IHt9XG4gICAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IG9wdGlvbnNGbj8uKCkgPz8ge30pLFxuICAgICAgICAgIClcblxuICAgICAgICAgIGxldCBkZXZ0b29sczogVGFuc3RhY2tRdWVyeURldnRvb2xzIHwgbnVsbCA9IG51bGxcbiAgICAgICAgICBsZXQgZWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgICAgICAgIGNvbnN0IHNob3VsZExvYWRUb29sc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9hZERldnRvb2xzIH0gPSBvcHRpb25zKClcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgbG9hZERldnRvb2xzID09PSAnYm9vbGVhbidcbiAgICAgICAgICAgICAgPyBsb2FkRGV2dG9vbHNcbiAgICAgICAgICAgICAgOiBpc0Rldk1vZGUoKVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBjb25zdCBkb2MgPSBpbmplY3QoRE9DVU1FTlQpXG4gICAgICAgICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuXG4gICAgICAgICAgY29uc3QgZ2V0UmVzb2x2ZWRRdWVyeUNsaWVudCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluamVjdGVkQ2xpZW50ID0gaW5qZWN0UXVlcnlDbGllbnQoe1xuICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgaW5qZWN0b3IsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gb3B0aW9ucygpLmNsaWVudCA/PyBpbmplY3RlZENsaWVudFxuICAgICAgICAgICAgaWYgKCFjbGllbnQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBRdWVyeUNsaWVudCBmb3VuZCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2xpZW50XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVzdHJveURldnRvb2xzID0gKCkgPT4ge1xuICAgICAgICAgICAgZGV2dG9vbHM/LnVubW91bnQoKVxuICAgICAgICAgICAgZWw/LnJlbW92ZSgpXG4gICAgICAgICAgICBkZXZ0b29scyA9IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKCkgPT5cbiAgICAgICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNob3VsZExvYWRUb29scyA9IHNob3VsZExvYWRUb29sc1NpZ25hbCgpXG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgZXJyb3JUeXBlcyxcbiAgICAgICAgICAgICAgICBidXR0b25Qb3NpdGlvbixcbiAgICAgICAgICAgICAgICBpbml0aWFsSXNPcGVuLFxuICAgICAgICAgICAgICB9ID0gb3B0aW9ucygpXG5cbiAgICAgICAgICAgICAgaWYgKGRldnRvb2xzICYmICFzaG91bGRMb2FkVG9vbHMpIHtcbiAgICAgICAgICAgICAgICBkZXN0cm95RGV2dG9vbHMoKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRldnRvb2xzICYmIHNob3VsZExvYWRUb29scykge1xuICAgICAgICAgICAgICAgIGNsaWVudCAmJiBkZXZ0b29scy5zZXRDbGllbnQoY2xpZW50KVxuICAgICAgICAgICAgICAgIHBvc2l0aW9uICYmIGRldnRvb2xzLnNldFBvc2l0aW9uKHBvc2l0aW9uKVxuICAgICAgICAgICAgICAgIGVycm9yVHlwZXMgJiYgZGV2dG9vbHMuc2V0RXJyb3JUeXBlcyhlcnJvclR5cGVzKVxuICAgICAgICAgICAgICAgIGJ1dHRvblBvc2l0aW9uICYmIGRldnRvb2xzLnNldEJ1dHRvblBvc2l0aW9uKGJ1dHRvblBvc2l0aW9uKVxuICAgICAgICAgICAgICAgIGluaXRpYWxJc09wZW4gJiYgZGV2dG9vbHMuc2V0SW5pdGlhbElzT3Blbihpbml0aWFsSXNPcGVuKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRMb2FkVG9vbHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGVsID0gZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpXG4gICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoJ3RzcWQtcGFyZW50LWNvbnRhaW5lcicpXG5cbiAgICAgICAgICAgICAgaW1wb3J0KCdAdGFuc3RhY2svcXVlcnktZGV2dG9vbHMnKS50aGVuKChxdWVyeURldnRvb2xzKSA9PlxuICAgICAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZGV2dG9vbHMgPSBuZXcgcXVlcnlEZXZ0b29scy5UYW5zdGFja1F1ZXJ5RGV2dG9vbHMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb25zKCksXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudDogZ2V0UmVzb2x2ZWRRdWVyeUNsaWVudCgpLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeUZsYXZvcjogJ0FuZ3VsYXIgUXVlcnknLFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiAnNScsXG4gICAgICAgICAgICAgICAgICAgIG9ubGluZU1hbmFnZXIsXG4gICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICBlbCAmJiBkZXZ0b29scy5tb3VudChlbClcblxuICAgICAgICAgICAgICAgICAgLy8gVW5tb3VudCB0aGUgZGV2dG9vbHMgb24gYXBwbGljYXRpb24gZGVzdHJveVxuICAgICAgICAgICAgICAgICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koZGVzdHJveURldnRvb2xzKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdXG4gIH1cbiAgcmV0dXJuIHF1ZXJ5RmVhdHVyZSgnRGV2ZWxvcGVyVG9vbHMnLCBwcm92aWRlcnMpXG59XG5cbi8qKlxuICogQSB0eXBlIGFsaWFzIHRoYXQgcmVwcmVzZW50cyBhbGwgUXVlcnkgZmVhdHVyZXMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCBgcHJvdmlkZVRhblN0YWNrUXVlcnlgLlxuICogRmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgYnkgYWRkaW5nIHNwZWNpYWwgZnVuY3Rpb25zIHRvIHRoZSBgcHJvdmlkZVRhblN0YWNrUXVlcnlgIGNhbGwuXG4gKiBTZWUgZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBzeW1ib2wgdG8gZmluZCBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIG5hbWUuIFNlZSBhbHNvIGBwcm92aWRlVGFuU3RhY2tRdWVyeWBcbiAqIGRvY3VtZW50YXRpb24gb24gaG93IHRvIHVzZSB0aG9zZSBmdW5jdGlvbnMuXG4gKiBAcHVibGljXG4gKiBAc2VlIHtAbGluayBwcm92aWRlVGFuU3RhY2tRdWVyeX1cbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlGZWF0dXJlcyA9IERldmVsb3BlclRvb2xzRmVhdHVyZSAvLyBVbmlvbiB0eXBlIG9mIGZlYXR1cmVzIGJ1dCBqdXN0IG9uZSBub3dcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5RmVhdHVyZXMgPSBbJ0RldmVsb3BlclRvb2xzJ10gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgUXVlcnlGZWF0dXJlS2luZCA9ICh0eXBlb2YgcXVlcnlGZWF0dXJlcylbbnVtYmVyXVxuIl19
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Allows to share and re-use query options in a type-safe way.
|
|
3
|
-
*
|
|
4
|
-
* The `queryKey` will be tagged with the type from `queryFn`.
|
|
5
|
-
*
|
|
6
|
-
* **Example**
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* const { queryKey } = queryOptions({
|
|
10
|
-
* queryKey: ['key'],
|
|
11
|
-
* queryFn: () => Promise.resolve(5),
|
|
12
|
-
* // ^? Promise<number>
|
|
13
|
-
* })
|
|
14
|
-
*
|
|
15
|
-
* const queryClient = new QueryClient()
|
|
16
|
-
* const data = queryClient.getQueryData(queryKey)
|
|
17
|
-
* // ^? number | undefined
|
|
18
|
-
* ```
|
|
19
|
-
* @param options - The query options to tag with the type from `queryFn`.
|
|
20
|
-
* @returns The tagged query options.
|
|
21
|
-
* @public
|
|
22
|
-
*/
|
|
23
|
-
export function queryOptions(options) {
|
|
24
|
-
return options;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyeS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9HQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFnQjtJQUMzQyxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBEYXRhVGFnLFxuICBEZWZhdWx0RXJyb3IsXG4gIEluaXRpYWxEYXRhRnVuY3Rpb24sXG4gIFF1ZXJ5S2V5LFxufSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB0eXBlIHsgQ3JlYXRlUXVlcnlPcHRpb25zLCBOb25VbmRlZmluZWRHdWFyZCB9IGZyb20gJy4vdHlwZXMnXG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBVbmRlZmluZWRJbml0aWFsRGF0YU9wdGlvbnM8XG4gIFRRdWVyeUZuRGF0YSA9IHVua25vd24sXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVERhdGEgPSBUUXVlcnlGbkRhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5ID0gUXVlcnlLZXksXG4+ID0gQ3JlYXRlUXVlcnlPcHRpb25zPFRRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YSwgVFF1ZXJ5S2V5PiAmIHtcbiAgaW5pdGlhbERhdGE/OiB1bmRlZmluZWQgfCBJbml0aWFsRGF0YUZ1bmN0aW9uPE5vblVuZGVmaW5lZEd1YXJkPFRRdWVyeUZuRGF0YT4+XG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBEZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zPFxuICBUUXVlcnlGbkRhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFREYXRhID0gVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXkgZXh0ZW5kcyBRdWVyeUtleSA9IFF1ZXJ5S2V5LFxuPiA9IENyZWF0ZVF1ZXJ5T3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUtleT4gJiB7XG4gIGluaXRpYWxEYXRhOlxuICAgIHwgTm9uVW5kZWZpbmVkR3VhcmQ8VFF1ZXJ5Rm5EYXRhPlxuICAgIHwgKCgpID0+IE5vblVuZGVmaW5lZEd1YXJkPFRRdWVyeUZuRGF0YT4pXG59XG5cbi8qKlxuICogQWxsb3dzIHRvIHNoYXJlIGFuZCByZS11c2UgcXVlcnkgb3B0aW9ucyBpbiBhIHR5cGUtc2FmZSB3YXkuXG4gKlxuICogVGhlIGBxdWVyeUtleWAgd2lsbCBiZSB0YWdnZWQgd2l0aCB0aGUgdHlwZSBmcm9tIGBxdWVyeUZuYC5cbiAqXG4gKiAqKkV4YW1wbGUqKlxuICpcbiAqIGBgYHRzXG4gKiAgY29uc3QgeyBxdWVyeUtleSB9ID0gcXVlcnlPcHRpb25zKHtcbiAqICAgICBxdWVyeUtleTogWydrZXknXSxcbiAqICAgICBxdWVyeUZuOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoNSksXG4gKiAgICAgLy8gIF4/ICBQcm9taXNlPG51bWJlcj5cbiAqICAgfSlcbiAqXG4gKiAgIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gbmV3IFF1ZXJ5Q2xpZW50KClcbiAqICAgY29uc3QgZGF0YSA9IHF1ZXJ5Q2xpZW50LmdldFF1ZXJ5RGF0YShxdWVyeUtleSlcbiAqICAgLy8gICAgXj8gIG51bWJlciB8IHVuZGVmaW5lZFxuICogYGBgXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBxdWVyeSBvcHRpb25zIHRvIHRhZyB3aXRoIHRoZSB0eXBlIGZyb20gYHF1ZXJ5Rm5gLlxuICogQHJldHVybnMgVGhlIHRhZ2dlZCBxdWVyeSBvcHRpb25zLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlPcHRpb25zPFxuICBUUXVlcnlGbkRhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFREYXRhID0gVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXkgZXh0ZW5kcyBRdWVyeUtleSA9IFF1ZXJ5S2V5LFxuPihcbiAgb3B0aW9uczogRGVmaW5lZEluaXRpYWxEYXRhT3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUtleT4sXG4pOiBEZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zPFRRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YSwgVFF1ZXJ5S2V5PiAmIHtcbiAgcXVlcnlLZXk6IERhdGFUYWc8VFF1ZXJ5S2V5LCBUUXVlcnlGbkRhdGE+XG59XG5cbi8qKlxuICogQWxsb3dzIHRvIHNoYXJlIGFuZCByZS11c2UgcXVlcnkgb3B0aW9ucyBpbiBhIHR5cGUtc2FmZSB3YXkuXG4gKlxuICogVGhlIGBxdWVyeUtleWAgd2lsbCBiZSB0YWdnZWQgd2l0aCB0aGUgdHlwZSBmcm9tIGBxdWVyeUZuYC5cbiAqXG4gKiAqKkV4YW1wbGUqKlxuICpcbiAqIGBgYHRzXG4gKiAgY29uc3QgeyBxdWVyeUtleSB9ID0gcXVlcnlPcHRpb25zKHtcbiAqICAgICBxdWVyeUtleTogWydrZXknXSxcbiAqICAgICBxdWVyeUZuOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoNSksXG4gKiAgICAgLy8gIF4/ICBQcm9taXNlPG51bWJlcj5cbiAqICAgfSlcbiAqXG4gKiAgIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gbmV3IFF1ZXJ5Q2xpZW50KClcbiAqICAgY29uc3QgZGF0YSA9IHF1ZXJ5Q2xpZW50LmdldFF1ZXJ5RGF0YShxdWVyeUtleSlcbiAqICAgLy8gICAgXj8gIG51bWJlciB8IHVuZGVmaW5lZFxuICogYGBgXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBxdWVyeSBvcHRpb25zIHRvIHRhZyB3aXRoIHRoZSB0eXBlIGZyb20gYHF1ZXJ5Rm5gLlxuICogQHJldHVybnMgVGhlIHRhZ2dlZCBxdWVyeSBvcHRpb25zLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlPcHRpb25zPFxuICBUUXVlcnlGbkRhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFREYXRhID0gVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXkgZXh0ZW5kcyBRdWVyeUtleSA9IFF1ZXJ5S2V5LFxuPihcbiAgb3B0aW9uczogVW5kZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zPFRRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YSwgVFF1ZXJ5S2V5Pixcbik6IFVuZGVmaW5lZEluaXRpYWxEYXRhT3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUtleT4gJiB7XG4gIHF1ZXJ5S2V5OiBEYXRhVGFnPFRRdWVyeUtleSwgVFF1ZXJ5Rm5EYXRhPlxufVxuXG4vKipcbiAqIEFsbG93cyB0byBzaGFyZSBhbmQgcmUtdXNlIHF1ZXJ5IG9wdGlvbnMgaW4gYSB0eXBlLXNhZmUgd2F5LlxuICpcbiAqIFRoZSBgcXVlcnlLZXlgIHdpbGwgYmUgdGFnZ2VkIHdpdGggdGhlIHR5cGUgZnJvbSBgcXVlcnlGbmAuXG4gKlxuICogKipFeGFtcGxlKipcbiAqXG4gKiBgYGB0c1xuICogIGNvbnN0IHsgcXVlcnlLZXkgfSA9IHF1ZXJ5T3B0aW9ucyh7XG4gKiAgICAgcXVlcnlLZXk6IFsna2V5J10sXG4gKiAgICAgcXVlcnlGbjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKDUpLFxuICogICAgIC8vICBePyAgUHJvbWlzZTxudW1iZXI+XG4gKiAgIH0pXG4gKlxuICogICBjb25zdCBxdWVyeUNsaWVudCA9IG5ldyBRdWVyeUNsaWVudCgpXG4gKiAgIGNvbnN0IGRhdGEgPSBxdWVyeUNsaWVudC5nZXRRdWVyeURhdGEocXVlcnlLZXkpXG4gKiAgIC8vICAgIF4/ICBudW1iZXIgfCB1bmRlZmluZWRcbiAqIGBgYFxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcXVlcnkgb3B0aW9ucyB0byB0YWcgd2l0aCB0aGUgdHlwZSBmcm9tIGBxdWVyeUZuYC5cbiAqIEByZXR1cm5zIFRoZSB0YWdnZWQgcXVlcnkgb3B0aW9ucy5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHF1ZXJ5T3B0aW9ucyhvcHRpb25zOiB1bmtub3duKSB7XG4gIHJldHVybiBvcHRpb25zXG59XG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { computed, untracked } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Exposes fields of an object passed via an Angular `Signal` as `Computed` signals.
|
|
4
|
-
* Functions on the object are passed through as-is.
|
|
5
|
-
* @param inputSignal - `Signal` that must return an object.
|
|
6
|
-
* @returns A proxy object with the same fields as the input object, but with each field wrapped in a `Computed` signal.
|
|
7
|
-
*/
|
|
8
|
-
export function signalProxy(inputSignal) {
|
|
9
|
-
const internalState = {};
|
|
10
|
-
return new Proxy(internalState, {
|
|
11
|
-
get(target, prop) {
|
|
12
|
-
// first check if we have it in our internal state and return it
|
|
13
|
-
const computedField = target[prop];
|
|
14
|
-
if (computedField)
|
|
15
|
-
return computedField;
|
|
16
|
-
// then, check if it's a function on the resultState and return it
|
|
17
|
-
const targetField = untracked(inputSignal)[prop];
|
|
18
|
-
if (typeof targetField === 'function')
|
|
19
|
-
return targetField;
|
|
20
|
-
// finally, create a computed field, store it and return it
|
|
21
|
-
// @ts-expect-error
|
|
22
|
-
return (target[prop] = computed(() => inputSignal()[prop]));
|
|
23
|
-
},
|
|
24
|
-
has(_, prop) {
|
|
25
|
-
return !!untracked(inputSignal)[prop];
|
|
26
|
-
},
|
|
27
|
-
ownKeys() {
|
|
28
|
-
return Reflect.ownKeys(untracked(inputSignal));
|
|
29
|
-
},
|
|
30
|
-
getOwnPropertyDescriptor() {
|
|
31
|
-
return {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
configurable: true,
|
|
34
|
-
};
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZ25hbC1wcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQU9uRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLFdBQTJCO0lBRTNCLE1BQU0sYUFBYSxHQUFHLEVBQTBCLENBQUE7SUFFaEQsT0FBTyxJQUFJLEtBQUssQ0FBdUIsYUFBYSxFQUFFO1FBQ3BELEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSTtZQUNkLGdFQUFnRTtZQUNoRSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDbEMsSUFBSSxhQUFhO2dCQUFFLE9BQU8sYUFBYSxDQUFBO1lBRXZDLGtFQUFrRTtZQUNsRSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDaEQsSUFBSSxPQUFPLFdBQVcsS0FBSyxVQUFVO2dCQUFFLE9BQU8sV0FBVyxDQUFBO1lBRXpELDJEQUEyRDtZQUMzRCxtQkFBbUI7WUFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdELENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUk7WUFDVCxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUNELE9BQU87WUFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDaEQsQ0FBQztRQUNELHdCQUF3QjtZQUN0QixPQUFPO2dCQUNMLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsSUFBSTthQUNuQixDQUFBO1FBQ0gsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IHR5cGUgTWFwVG9TaWduYWxzPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIEZ1bmN0aW9uID8gVFtLXSA6IFNpZ25hbDxUW0tdPlxufVxuXG4vKipcbiAqIEV4cG9zZXMgZmllbGRzIG9mIGFuIG9iamVjdCBwYXNzZWQgdmlhIGFuIEFuZ3VsYXIgYFNpZ25hbGAgYXMgYENvbXB1dGVkYCBzaWduYWxzLlxuICogRnVuY3Rpb25zIG9uIHRoZSBvYmplY3QgYXJlIHBhc3NlZCB0aHJvdWdoIGFzLWlzLlxuICogQHBhcmFtIGlucHV0U2lnbmFsIC0gYFNpZ25hbGAgdGhhdCBtdXN0IHJldHVybiBhbiBvYmplY3QuXG4gKiBAcmV0dXJucyBBIHByb3h5IG9iamVjdCB3aXRoIHRoZSBzYW1lIGZpZWxkcyBhcyB0aGUgaW5wdXQgb2JqZWN0LCBidXQgd2l0aCBlYWNoIGZpZWxkIHdyYXBwZWQgaW4gYSBgQ29tcHV0ZWRgIHNpZ25hbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFByb3h5PFRJbnB1dCBleHRlbmRzIFJlY29yZDxzdHJpbmcgfCBzeW1ib2wsIGFueT4+KFxuICBpbnB1dFNpZ25hbDogU2lnbmFsPFRJbnB1dD4sXG4pIHtcbiAgY29uc3QgaW50ZXJuYWxTdGF0ZSA9IHt9IGFzIE1hcFRvU2lnbmFsczxUSW5wdXQ+XG5cbiAgcmV0dXJuIG5ldyBQcm94eTxNYXBUb1NpZ25hbHM8VElucHV0Pj4oaW50ZXJuYWxTdGF0ZSwge1xuICAgIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICAgIC8vIGZpcnN0IGNoZWNrIGlmIHdlIGhhdmUgaXQgaW4gb3VyIGludGVybmFsIHN0YXRlIGFuZCByZXR1cm4gaXRcbiAgICAgIGNvbnN0IGNvbXB1dGVkRmllbGQgPSB0YXJnZXRbcHJvcF1cbiAgICAgIGlmIChjb21wdXRlZEZpZWxkKSByZXR1cm4gY29tcHV0ZWRGaWVsZFxuXG4gICAgICAvLyB0aGVuLCBjaGVjayBpZiBpdCdzIGEgZnVuY3Rpb24gb24gdGhlIHJlc3VsdFN0YXRlIGFuZCByZXR1cm4gaXRcbiAgICAgIGNvbnN0IHRhcmdldEZpZWxkID0gdW50cmFja2VkKGlucHV0U2lnbmFsKVtwcm9wXVxuICAgICAgaWYgKHR5cGVvZiB0YXJnZXRGaWVsZCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHRhcmdldEZpZWxkXG5cbiAgICAgIC8vIGZpbmFsbHksIGNyZWF0ZSBhIGNvbXB1dGVkIGZpZWxkLCBzdG9yZSBpdCBhbmQgcmV0dXJuIGl0XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICByZXR1cm4gKHRhcmdldFtwcm9wXSA9IGNvbXB1dGVkKCgpID0+IGlucHV0U2lnbmFsKClbcHJvcF0pKVxuICAgIH0sXG4gICAgaGFzKF8sIHByb3ApIHtcbiAgICAgIHJldHVybiAhIXVudHJhY2tlZChpbnB1dFNpZ25hbClbcHJvcF1cbiAgICB9LFxuICAgIG93bktleXMoKSB7XG4gICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHVudHJhY2tlZChpbnB1dFNpZ25hbCkpXG4gICAgfSxcbiAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB9XG4gICAgfSxcbiAgfSlcbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuc3RhY2stYW5ndWxhci1xdWVyeS1leHBlcmltZW50YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFuc3RhY2stYW5ndWxhci1xdWVyeS1leHBlcmltZW50YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|