@ethlete/query 0.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/esm2020/ethlete-query.mjs +5 -0
- package/esm2020/index.mjs +12 -0
- package/esm2020/lib/auth/auth-provider.types.mjs +2 -0
- package/esm2020/lib/auth/auth-provider.utils.mjs +22 -0
- package/esm2020/lib/auth/basic-auth-provider.mjs +16 -0
- package/esm2020/lib/auth/bearer-auth-provider.mjs +85 -0
- package/esm2020/lib/auth/custom-header-auth-provider.mjs +13 -0
- package/esm2020/lib/auth/index.mjs +6 -0
- package/esm2020/lib/directives/index.mjs +4 -0
- package/esm2020/lib/directives/infinity-query-trigger.directive.mjs +54 -0
- package/esm2020/lib/directives/infinity-query.directive.mjs +129 -0
- package/esm2020/lib/directives/query.directive.mjs +101 -0
- package/esm2020/lib/gql/gql.mjs +23 -0
- package/esm2020/lib/gql/index.mjs +2 -0
- package/esm2020/lib/infinite-query/index.mjs +4 -0
- package/esm2020/lib/infinite-query/infinity-query.mjs +161 -0
- package/esm2020/lib/infinite-query/infinity-query.types.mjs +2 -0
- package/esm2020/lib/infinite-query/infinity-query.utils.mjs +3 -0
- package/esm2020/lib/logger/index.mjs +2 -0
- package/esm2020/lib/logger/logger.mjs +16 -0
- package/esm2020/lib/query/index.mjs +4 -0
- package/esm2020/lib/query/query.mjs +164 -0
- package/esm2020/lib/query/query.types.mjs +2 -0
- package/esm2020/lib/query/query.utils.mjs +42 -0
- package/esm2020/lib/query-client/index.mjs +4 -0
- package/esm2020/lib/query-client/query-client.mjs +88 -0
- package/esm2020/lib/query-client/query-client.types.mjs +2 -0
- package/esm2020/lib/query-client/query-client.utils.mjs +16 -0
- package/esm2020/lib/query-form/index.mjs +4 -0
- package/esm2020/lib/query-form/query-form.mjs +121 -0
- package/esm2020/lib/query-form/query-form.types.mjs +2 -0
- package/esm2020/lib/query-form/query-form.utils.mjs +74 -0
- package/esm2020/lib/query-store/index.mjs +2 -0
- package/esm2020/lib/query-store/query-store.mjs +64 -0
- package/esm2020/lib/request/index.mjs +4 -0
- package/esm2020/lib/request/request.mjs +19 -0
- package/esm2020/lib/request/request.types.mjs +2 -0
- package/esm2020/lib/request/request.util.mjs +206 -0
- package/esm2020/lib/utils/deep-freeze.util.mjs +13 -0
- package/esm2020/lib/utils/def.util.mjs +8 -0
- package/esm2020/lib/utils/index.mjs +3 -0
- package/fesm2015/ethlete-query.mjs +1393 -0
- package/fesm2015/ethlete-query.mjs.map +1 -0
- package/fesm2020/ethlete-query.mjs +1412 -0
- package/fesm2020/ethlete-query.mjs.map +1 -0
- package/index.d.ts +11 -0
- package/lib/auth/auth-provider.types.d.ts +103 -0
- package/lib/auth/auth-provider.utils.d.ts +8 -0
- package/lib/auth/basic-auth-provider.d.ts +12 -0
- package/lib/auth/bearer-auth-provider.d.ts +21 -0
- package/lib/auth/custom-header-auth-provider.d.ts +11 -0
- package/lib/auth/index.d.ts +5 -0
- package/lib/directives/index.d.ts +3 -0
- package/lib/directives/infinity-query-trigger.directive.d.ts +15 -0
- package/lib/directives/infinity-query.directive.d.ts +43 -0
- package/lib/directives/query.directive.d.ts +36 -0
- package/lib/gql/gql.d.ts +2 -0
- package/lib/gql/index.d.ts +1 -0
- package/lib/infinite-query/index.d.ts +3 -0
- package/lib/infinite-query/infinity-query.d.ts +32 -0
- package/lib/infinite-query/infinity-query.types.d.ts +91 -0
- package/lib/infinite-query/infinity-query.utils.d.ts +5 -0
- package/lib/logger/index.d.ts +1 -0
- package/lib/logger/logger.d.ts +12 -0
- package/lib/query/index.d.ts +3 -0
- package/lib/query/query.d.ts +24 -0
- package/lib/query/query.types.d.ts +128 -0
- package/lib/query/query.utils.d.ts +14 -0
- package/lib/query-client/index.d.ts +3 -0
- package/lib/query-client/query-client.d.ts +22 -0
- package/lib/query-client/query-client.types.d.ts +47 -0
- package/lib/query-client/query-client.utils.d.ts +4 -0
- package/lib/query-form/index.d.ts +3 -0
- package/lib/query-form/query-form.d.ts +30 -0
- package/lib/query-form/query-form.types.d.ts +43 -0
- package/lib/query-form/query-form.utils.d.ts +8 -0
- package/lib/query-store/index.d.ts +1 -0
- package/lib/query-store/query-store.d.ts +18 -0
- package/lib/request/index.d.ts +3 -0
- package/lib/request/request.d.ts +9 -0
- package/lib/request/request.types.d.ts +16 -0
- package/lib/request/request.util.d.ts +20 -0
- package/lib/utils/deep-freeze.util.d.ts +1 -0
- package/lib/utils/def.util.d.ts +7 -0
- package/lib/utils/index.d.ts +2 -0
- package/package.json +34 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { filterSuccess, takeUntilResponse } from '../query';
|
|
4
|
+
export class InfinityQuery {
|
|
5
|
+
constructor(_config) {
|
|
6
|
+
this._config = _config;
|
|
7
|
+
this._currentPage$ = new BehaviorSubject(null);
|
|
8
|
+
this._currentCalculatedPage$ = new BehaviorSubject(null);
|
|
9
|
+
this._totalPages$ = new BehaviorSubject(null);
|
|
10
|
+
this._itemsPerPage$ = new BehaviorSubject(this._config.limitParam?.value ?? 10);
|
|
11
|
+
this._currentQuery$ = new BehaviorSubject(null);
|
|
12
|
+
this._data$ = new BehaviorSubject([]);
|
|
13
|
+
this._subscriptions = [];
|
|
14
|
+
}
|
|
15
|
+
get currentPage$() {
|
|
16
|
+
return this._currentPage$.asObservable();
|
|
17
|
+
}
|
|
18
|
+
get currentPage() {
|
|
19
|
+
return this._currentPage$.getValue();
|
|
20
|
+
}
|
|
21
|
+
get currentCalculatedPage$() {
|
|
22
|
+
return this._currentCalculatedPage$.asObservable();
|
|
23
|
+
}
|
|
24
|
+
get currentCalculatedPage() {
|
|
25
|
+
return this._currentCalculatedPage$.getValue();
|
|
26
|
+
}
|
|
27
|
+
get totalPages$() {
|
|
28
|
+
return this._totalPages$.asObservable();
|
|
29
|
+
}
|
|
30
|
+
get totalPages() {
|
|
31
|
+
return this._totalPages$.getValue();
|
|
32
|
+
}
|
|
33
|
+
get itemsPerPage$() {
|
|
34
|
+
return this._itemsPerPage$.asObservable();
|
|
35
|
+
}
|
|
36
|
+
get itemsPerPage() {
|
|
37
|
+
return this._itemsPerPage$.getValue();
|
|
38
|
+
}
|
|
39
|
+
get currentQuery$() {
|
|
40
|
+
return this._currentQuery$.asObservable();
|
|
41
|
+
}
|
|
42
|
+
get currentQuery() {
|
|
43
|
+
return this._currentQuery$.getValue();
|
|
44
|
+
}
|
|
45
|
+
get data$() {
|
|
46
|
+
return this._data$.asObservable();
|
|
47
|
+
}
|
|
48
|
+
get data() {
|
|
49
|
+
return this._data$.getValue();
|
|
50
|
+
}
|
|
51
|
+
nextPage() {
|
|
52
|
+
const newPage = (this._currentPage$.value ?? 0) + 1;
|
|
53
|
+
const calculatedPage = this._config?.pageParam?.valueCalculator?.({
|
|
54
|
+
page: newPage,
|
|
55
|
+
totalPages: this.totalPages,
|
|
56
|
+
itemsPerPage: this.itemsPerPage,
|
|
57
|
+
}) ?? newPage;
|
|
58
|
+
const args = this._prepareArgs(this._config, calculatedPage);
|
|
59
|
+
const query = this._config.queryCreator.prepare(args).execute();
|
|
60
|
+
this._handleNewQuery(query);
|
|
61
|
+
this._currentPage$.next(newPage);
|
|
62
|
+
this._currentCalculatedPage$.next(calculatedPage);
|
|
63
|
+
this._currentQuery$.next(query);
|
|
64
|
+
}
|
|
65
|
+
reset(newConfig) {
|
|
66
|
+
this._destroy();
|
|
67
|
+
this._config = { ...this._config, ...(newConfig ?? {}) };
|
|
68
|
+
this._currentPage$.next(null);
|
|
69
|
+
this._currentCalculatedPage$.next(null);
|
|
70
|
+
this._totalPages$.next(null);
|
|
71
|
+
this._itemsPerPage$.next(this._config.limitParam?.value ?? 10);
|
|
72
|
+
this._currentQuery$.next(null);
|
|
73
|
+
this._data$.next([]);
|
|
74
|
+
}
|
|
75
|
+
_destroy() {
|
|
76
|
+
this._subscriptions.forEach((sub) => sub.unsubscribe());
|
|
77
|
+
this._subscriptions = [];
|
|
78
|
+
}
|
|
79
|
+
_handleNewQuery(query) {
|
|
80
|
+
const stateChangesSub = query.state$.pipe(takeUntilResponse(), filterSuccess()).subscribe({
|
|
81
|
+
next: (state) => {
|
|
82
|
+
let newData = this._config?.response.valueExtractor(state.response);
|
|
83
|
+
if (this._config.response.reverse) {
|
|
84
|
+
newData = [...newData].reverse();
|
|
85
|
+
}
|
|
86
|
+
if (this._config.response.appendItemsTo === 'start') {
|
|
87
|
+
newData = [...newData, ...this.data];
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
newData = [...this.data, ...newData];
|
|
91
|
+
}
|
|
92
|
+
this._data$.next(newData);
|
|
93
|
+
const totalPages = this._config.response.totalPagesExtractor?.({
|
|
94
|
+
response: state.response,
|
|
95
|
+
itemsPerPage: this.itemsPerPage,
|
|
96
|
+
}) ??
|
|
97
|
+
state.response?.totalPages ??
|
|
98
|
+
null;
|
|
99
|
+
this._totalPages$.next(totalPages);
|
|
100
|
+
},
|
|
101
|
+
complete: () => {
|
|
102
|
+
this._subscriptions = this._subscriptions.filter((sub) => sub !== stateChangesSub);
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
this._subscriptions.push(stateChangesSub);
|
|
106
|
+
}
|
|
107
|
+
_prepareArgs(config, page) {
|
|
108
|
+
const pageParamLocation = this._getPageParamLocation(config?.pageParam?.location);
|
|
109
|
+
const pageArgs = {
|
|
110
|
+
[pageParamLocation]: {
|
|
111
|
+
[config?.pageParam?.key ?? 'page']: page,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
const limitParamLocation = this._getPageParamLocation(config?.limitParam?.location);
|
|
115
|
+
const limitArgs = {
|
|
116
|
+
[limitParamLocation]: {
|
|
117
|
+
[config?.limitParam?.key ?? 'limit']: config?.limitParam?.value ?? 10,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
const defaultConfig = config?.defaultArgs ?? {};
|
|
121
|
+
const mergedArgs = pageParamLocation === limitParamLocation
|
|
122
|
+
? {
|
|
123
|
+
...defaultConfig,
|
|
124
|
+
[pageParamLocation]: {
|
|
125
|
+
...(config?.defaultArgs?.[pageParamLocation] ?? {}),
|
|
126
|
+
...pageArgs[limitParamLocation],
|
|
127
|
+
...limitArgs[limitParamLocation],
|
|
128
|
+
},
|
|
129
|
+
}
|
|
130
|
+
: {
|
|
131
|
+
...defaultConfig,
|
|
132
|
+
[pageParamLocation]: {
|
|
133
|
+
...(config?.defaultArgs?.[pageParamLocation] ?? {}),
|
|
134
|
+
...pageArgs[pageParamLocation],
|
|
135
|
+
},
|
|
136
|
+
[limitParamLocation]: {
|
|
137
|
+
...(config?.defaultArgs?.[limitParamLocation] ?? {}),
|
|
138
|
+
...limitArgs[limitParamLocation],
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
return mergedArgs;
|
|
142
|
+
}
|
|
143
|
+
_getPageParamLocation(location) {
|
|
144
|
+
const loc = location ?? 'query';
|
|
145
|
+
switch (loc) {
|
|
146
|
+
case 'path':
|
|
147
|
+
return 'pathParams';
|
|
148
|
+
case 'query':
|
|
149
|
+
return 'queryParams';
|
|
150
|
+
case 'body':
|
|
151
|
+
return 'body';
|
|
152
|
+
case 'header':
|
|
153
|
+
return 'headers';
|
|
154
|
+
case 'variable':
|
|
155
|
+
return 'variables';
|
|
156
|
+
default:
|
|
157
|
+
throw new Error(`Invalid pageParamLocation: ${loc}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSTVFLE1BQU0sT0FBTyxhQUFhO0lBZ0V4QixZQUFvQixPQUFpRjtRQUFqRixZQUFPLEdBQVAsT0FBTyxDQUEwRTtRQXpEcEYsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDekQsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ25FLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3hELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWUsSUFBSSxDQUFDLENBQUM7UUFDekQsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFtQixFQUE2QixDQUFDLENBQUM7UUFFdkYsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO0lBa0Q0RCxDQUFDO0lBaER6RyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMs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QUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyU3VjY2VzcywgUXVlcnlTdGF0ZURhdGEsIHRha2VVbnRpbFJlc3BvbnNlIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgQW55UXVlcnlDcmVhdG9yLCBRdWVyeUNyZWF0b3JBcmdzLCBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IEluZmluaXR5UXVlcnlDb25maWcsIEluZmluaXR5UXVlcnlQYXJhbUxvY2F0aW9uIH0gZnJvbSAnLi9pbmZpbml0eS1xdWVyeS50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBJbmZpbml0eVF1ZXJ5PFxuICBRdWVyeUNyZWF0b3IgZXh0ZW5kcyBBbnlRdWVyeUNyZWF0b3IsXG4gIFF1ZXJ5IGV4dGVuZHMgUXVlcnlDcmVhdG9yUmV0dXJuVHlwZTxRdWVyeUNyZWF0b3I+LFxuICBBcmdzIGV4dGVuZHMgUXVlcnlDcmVhdG9yQXJnczxRdWVyeUNyZWF0b3I+LFxuICBRdWVyeVJlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZURhdGE8UXVlcnlbJ3N0YXRlJ10+LFxuICBJbmZpbml0eVJlc3BvbnNlIGV4dGVuZHMgdW5rbm93bltdLFxuPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90b3RhbFBhZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1zUGVyUGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odGhpcy5fY29uZmlnLmxpbWl0UGFyYW0/LnZhbHVlID8/IDEwKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFF1ZXJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVlcnkgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEluZmluaXR5UmVzcG9uc2U+KFtdIGFzIGFueSBhcyBJbmZpbml0eVJlc3BvbnNlKTtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGdldCBjdXJyZW50UGFnZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRQYWdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgY3VycmVudENhbGN1bGF0ZWRQYWdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudENhbGN1bGF0ZWRQYWdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50Q2FsY3VsYXRlZFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCB0b3RhbFBhZ2VzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWxQYWdlcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdG90YWxQYWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWxQYWdlcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBpdGVtc1BlclBhZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNQZXJQYWdlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRRdWVyeSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRRdWVyeSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgY3VycmVudFF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UXVlcnkkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgZGF0YSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmdldFZhbHVlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPikge31cblxuICBuZXh0UGFnZSgpIHtcbiAgICBjb25zdCBuZXdQYWdlID0gKHRoaXMuX2N1cnJlbnRQYWdlJC52YWx1ZSA/PyAwKSArIDE7XG4gICAgY29uc3QgY2FsY3VsYXRlZFBhZ2UgPVxuICAgICAgdGhpcy5fY29uZmlnPy5wYWdlUGFyYW0/LnZhbHVlQ2FsY3VsYXRvcj8uKHtcbiAgICAgICAgcGFnZTogbmV3UGFnZSxcbiAgICAgICAgdG90YWxQYWdlczogdGhpcy50b3RhbFBhZ2VzLFxuICAgICAgICBpdGVtc1BlclBhZ2U6IHRoaXMuaXRlbXNQZXJQYWdlLFxuICAgICAgfSkgPz8gbmV3UGFnZTtcblxuICAgIGNvbnN0IGFyZ3MgPSB0aGlzLl9wcmVwYXJlQXJncyh0aGlzLl9jb25maWcsIGNhbGN1bGF0ZWRQYWdlKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5fY29uZmlnLnF1ZXJ5Q3JlYXRvci5wcmVwYXJlKGFyZ3MpLmV4ZWN1dGUoKSBhcyBRdWVyeTtcbiAgICB0aGlzLl9oYW5kbGVOZXdRdWVyeShxdWVyeSk7XG5cbiAgICB0aGlzLl9jdXJyZW50UGFnZSQubmV4dChuZXdQYWdlKTtcbiAgICB0aGlzLl9jdXJyZW50Q2FsY3VsYXRlZFBhZ2UkLm5leHQoY2FsY3VsYXRlZFBhZ2UpO1xuICAgIHRoaXMuX2N1cnJlbnRRdWVyeSQubmV4dChxdWVyeSk7XG4gIH1cblxuICByZXNldChcbiAgICBuZXdDb25maWc/OiBPbWl0PFxuICAgICAgSW5maW5pdHlRdWVyeUNvbmZpZzxRdWVyeUNyZWF0b3IsIEFyZ3MsIFF1ZXJ5UmVzcG9uc2UsIEluZmluaXR5UmVzcG9uc2U+LFxuICAgICAgJ3F1ZXJ5Q3JlYXRvcicgfCAncmVzcG9uc2UnXG4gICAgPixcbiAgKSB7XG4gICAgdGhpcy5fZGVzdHJveSgpO1xuXG4gICAgdGhpcy5fY29uZmlnID0geyAuLi50aGlzLl9jb25maWcsIC4uLihuZXdDb25maWcgPz8ge30pIH07XG5cbiAgICB0aGlzLl9jdXJyZW50UGFnZSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9jdXJyZW50Q2FsY3VsYXRlZFBhZ2UkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fdG90YWxQYWdlcyQubmV4dChudWxsKTtcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UkLm5leHQodGhpcy5fY29uZmlnLmxpbWl0UGFyYW0/LnZhbHVlID8/IDEwKTtcbiAgICB0aGlzLl9jdXJyZW50UXVlcnkkLm5leHQobnVsbCk7XG5cbiAgICB0aGlzLl9kYXRhJC5uZXh0KFtdIGFzIGFueSBhcyBJbmZpbml0eVJlc3BvbnNlKTtcbiAgfVxuXG4gIF9kZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlTmV3UXVlcnkocXVlcnk6IFF1ZXJ5KSB7XG4gICAgY29uc3Qgc3RhdGVDaGFuZ2VzU3ViID0gcXVlcnkuc3RhdGUkLnBpcGUodGFrZVVudGlsUmVzcG9uc2UoKSwgZmlsdGVyU3VjY2VzcygpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHN0YXRlKSA9PiB7XG4gICAgICAgIGxldCBuZXdEYXRhID0gdGhpcy5fY29uZmlnPy5yZXNwb25zZS52YWx1ZUV4dHJhY3RvcihzdGF0ZS5yZXNwb25zZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5yZXNwb25zZS5yZXZlcnNlKSB7XG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5uZXdEYXRhXS5yZXZlcnNlKCkgYXMgSW5maW5pdHlSZXNwb25zZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcucmVzcG9uc2UuYXBwZW5kSXRlbXNUbyA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICAgIG5ld0RhdGEgPSBbLi4ubmV3RGF0YSwgLi4udGhpcy5kYXRhXSBhcyBJbmZpbml0eVJlc3BvbnNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0RhdGEgPSBbLi4udGhpcy5kYXRhLCAuLi5uZXdEYXRhXSBhcyBJbmZpbml0eVJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZGF0YSQubmV4dChuZXdEYXRhKTtcblxuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID1cbiAgICAgICAgICB0aGlzLl9jb25maWcucmVzcG9uc2UudG90YWxQYWdlc0V4dHJhY3Rvcj8uKHtcbiAgICAgICAgICAgIHJlc3BvbnNlOiBzdGF0ZS5yZXNwb25zZSxcbiAgICAgICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5pdGVtc1BlclBhZ2UsXG4gICAgICAgICAgfSkgPz9cbiAgICAgICAgICBzdGF0ZS5yZXNwb25zZT8udG90YWxQYWdlcyA/P1xuICAgICAgICAgIG51bGw7XG5cbiAgICAgICAgdGhpcy5fdG90YWxQYWdlcyQubmV4dCh0b3RhbFBhZ2VzKTtcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gdGhpcy5fc3Vic2NyaXB0aW9ucy5maWx0ZXIoKHN1YikgPT4gc3ViICE9PSBzdGF0ZUNoYW5nZXNTdWIpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChzdGF0ZUNoYW5nZXNTdWIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJlcGFyZUFyZ3MoY29uZmlnOiBJbmZpbml0eVF1ZXJ5Q29uZmlnPFF1ZXJ5Q3JlYXRvciwgQXJncywgUXVlcnlSZXNwb25zZSwgSW5maW5pdHlSZXNwb25zZT4sIHBhZ2U6IG51bWJlcikge1xuICAgIGNvbnN0IHBhZ2VQYXJhbUxvY2F0aW9uID0gdGhpcy5fZ2V0UGFnZVBhcmFtTG9jYXRpb24oY29uZmlnPy5wYWdlUGFyYW0/LmxvY2F0aW9uKTtcblxuICAgIGNvbnN0IHBhZ2VBcmdzID0ge1xuICAgICAgW3BhZ2VQYXJhbUxvY2F0aW9uXToge1xuICAgICAgICBbY29uZmlnPy5wYWdlUGFyYW0/LmtleSA/PyAncGFnZSddOiBwYWdlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgbGltaXRQYXJhbUxvY2F0aW9uID0gdGhpcy5fZ2V0UGFnZVBhcmFtTG9jYXRpb24oY29uZmlnPy5saW1pdFBhcmFtPy5sb2NhdGlvbik7XG5cbiAgICBjb25zdCBsaW1pdEFyZ3MgPSB7XG4gICAgICBbbGltaXRQYXJhbUxvY2F0aW9uXToge1xuICAgICAgICBbY29uZmlnPy5saW1pdFBhcmFtPy5rZXkgPz8gJ2xpbWl0J106IGNvbmZpZz8ubGltaXRQYXJhbT8udmFsdWUgPz8gMTAsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gY29uZmlnPy5kZWZhdWx0QXJncyA/PyB7fTtcblxuICAgIGNvbnN0IG1lcmdlZEFyZ3MgPVxuICAgICAgcGFnZVBhcmFtTG9jYXRpb24gPT09IGxpbWl0UGFyYW1Mb2NhdGlvblxuICAgICAgICA/IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRDb25maWcsXG4gICAgICAgICAgICBbcGFnZVBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgICAgICAgIC4uLihjb25maWc/LmRlZmF1bHRBcmdzPy5bcGFnZVBhcmFtTG9jYXRpb25dID8/IHt9KSxcbiAgICAgICAgICAgICAgLi4ucGFnZUFyZ3NbbGltaXRQYXJhbUxvY2F0aW9uXSxcbiAgICAgICAgICAgICAgLi4ubGltaXRBcmdzW2xpbWl0UGFyYW1Mb2NhdGlvbl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgICAgICAgICAgW3BhZ2VQYXJhbUxvY2F0aW9uXToge1xuICAgICAgICAgICAgICAuLi4oY29uZmlnPy5kZWZhdWx0QXJncz8uW3BhZ2VQYXJhbUxvY2F0aW9uXSA/PyB7fSksXG4gICAgICAgICAgICAgIC4uLnBhZ2VBcmdzW3BhZ2VQYXJhbUxvY2F0aW9uXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbbGltaXRQYXJhbUxvY2F0aW9uXToge1xuICAgICAgICAgICAgICAuLi4oY29uZmlnPy5kZWZhdWx0QXJncz8uW2xpbWl0UGFyYW1Mb2NhdGlvbl0gPz8ge30pLFxuICAgICAgICAgICAgICAuLi5saW1pdEFyZ3NbbGltaXRQYXJhbUxvY2F0aW9uXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBtZXJnZWRBcmdzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGFnZVBhcmFtTG9jYXRpb24obG9jYXRpb246IEluZmluaXR5UXVlcnlQYXJhbUxvY2F0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbG9jID0gbG9jYXRpb24gPz8gJ3F1ZXJ5JztcblxuICAgIHN3aXRjaCAobG9jKSB7XG4gICAgICBjYXNlICdwYXRoJzpcbiAgICAgICAgcmV0dXJuICdwYXRoUGFyYW1zJztcbiAgICAgIGNhc2UgJ3F1ZXJ5JzpcbiAgICAgICAgcmV0dXJuICdxdWVyeVBhcmFtcyc7XG4gICAgICBjYXNlICdib2R5JzpcbiAgICAgICAgcmV0dXJuICdib2R5JztcbiAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICAgIHJldHVybiAnaGVhZGVycyc7XG4gICAgICBjYXNlICd2YXJpYWJsZSc6XG4gICAgICAgIHJldHVybiAndmFyaWFibGVzJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYWdlUGFyYW1Mb2NhdGlvbjogJHtsb2N9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBcmd1bWVudHMgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuXG5leHBvcnQgdHlwZSBJbmZpbml0eVF1ZXJ5UGFyYW1Mb2NhdGlvbiA9ICdwYXRoJyB8ICdxdWVyeScgfCAnYm9keScgfCAnaGVhZGVyJyB8ICd2YXJpYWJsZSc7XG5cbmV4cG9ydCB0eXBlIEFwcGVuZEl0ZW1zTG9jYXRpb24gPSAnc3RhcnQnIHwgJ2VuZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZVBhcmFtQ2FsY3VsYXRvck9wdGlvbnMge1xuICBwYWdlOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlciB8IG51bGw7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvdGFsUGFnZXNFeHRyYWN0b3JPcHRpb25zPFF1ZXJ5UmVzcG9uc2U+IHtcbiAgcmVzcG9uc2U6IFF1ZXJ5UmVzcG9uc2U7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZmluaXR5UXVlcnlDb25maWc8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyxcbiAgUXVlcnlSZXNwb25zZSxcbiAgSW5maW5pdHlSZXNwb25zZSBleHRlbmRzIHVua25vd25bXSxcbj4ge1xuICAvKipcbiAgICogVGhlIHF1ZXJ5IGNyZWF0b3IgdG8gdXNlIGZvciBmZXRjaGluZyBwYWdlcy5cbiAgICovXG4gIHF1ZXJ5Q3JlYXRvcjogUXVlcnlDcmVhdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJncyB0aGF0IHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIHBhZ2UgYXJnLlxuICAgKi9cbiAgZGVmYXVsdEFyZ3M/OiBBcmd1bWVudHM7XG5cbiAgcGFnZVBhcmFtPzoge1xuICAgIC8qKlxuICAgICAqIFRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgcGFnZSBwYXJhbSBpcyBpbiByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJxdWVyeVwiXG4gICAgICovXG4gICAgbG9jYXRpb24/OiBJbmZpbml0eVF1ZXJ5UGFyYW1Mb2NhdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFVzZWQgYXMgcGFnZSBwYXJhbSBuYW1lLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJwYWdlXCJcbiAgICAgKi9cbiAgICBrZXk/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgY2FsY3VsYXRlcyB0aGUgcGFnZSB2YWx1ZSBmb3IgdGhlIG5leHQgcmVxdWVzdC5cbiAgICAgKiBFLmcuIGlmIHRoZSBwYWdpbmF0aW9uIGlzIGRvbmUgd2l0aCBhIGBza2lwYCBwYXJhbSwgdGhlIGBwYWdlUGFyYW1OYW1lYCBzaG91bGQgYmUgYHNraXBgIGFuZCB0aGlzIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWUuXG4gICAgICovXG4gICAgdmFsdWVDYWxjdWxhdG9yPzogKGRhdGE6IFBhZ2VQYXJhbUNhbGN1bGF0b3JPcHRpb25zKSA9PiBudW1iZXI7XG4gIH07XG5cbiAgbGltaXRQYXJhbT86IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbG9jYXRpb24gd2hlcmUgdGhlIGxpbWl0IHBhcmFtIGlzIGluIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcInF1ZXJ5XCJcbiAgICAgKi9cbiAgICBsb2NhdGlvbj86IEluZmluaXR5UXVlcnlQYXJhbUxvY2F0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCBhcyBsaW1pdCBwYXJhbSBuYW1lLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJsaW1pdFwiXG4gICAgICovXG4gICAga2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBsaW1pdCBwYXJhbS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDEwXG4gICAgICovXG4gICAgdmFsdWU/OiBudW1iZXI7XG4gIH07XG5cbiAgcmVzcG9uc2U6IHtcbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSByZXNwb25zZSBzaG91bGQgZ2V0IHJldmVyc2VkIGJlZm9yZSBhcHBlbmRpbmcgdG8gdGhlIGRhdGEgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJldmVyc2U/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB3aGVyZSB0byBwdXQgdGhlIG5ldyBpdGVtcyBpbiB0aGUgZGF0YSBhcnJheS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiZW5kXCJcbiAgICAgKi9cbiAgICBhcHBlbmRJdGVtc1RvPzogQXBwZW5kSXRlbXNMb2NhdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBhcnJheSB0aGF0IHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgaW5maW5pdGUgcXVlcnkuXG4gICAgICovXG4gICAgYXJyYXlUeXBlOiBJbmZpbml0eVJlc3BvbnNlO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGRhdGEgYXJyYXkgZnJvbSB0aGUgcmVzcG9uc2UuXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIHRoZSB0eXBlIHByb3ZpZGVkIGluIGByZXNwb25zZUFycmF5VHlwZWAuXG4gICAgICovXG4gICAgdmFsdWVFeHRyYWN0b3I6IChyZXNwb25zZTogUXVlcnlSZXNwb25zZSkgPT4gSW5maW5pdHlSZXNwb25zZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wZXJ0eSBpbiB0aGUgcmVzcG9uc2UgdGhhdCBjb250YWlucyB0aGUgdG90YWwgcGFnZSBjb3VudC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidG90YWxQYWdlc1wiXG4gICAgICovXG4gICAgdG90YWxQYWdlc0V4dHJhY3Rvcj86IChkYXRhOiBUb3RhbFBhZ2VzRXh0cmFjdG9yT3B0aW9uczxRdWVyeVJlc3BvbnNlPikgPT4gbnVtYmVyO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const createInfinityQueryConfig = (config) => config;
|
|
2
|
+
export const skipPaginationPageParamCalculator = ({ page, itemsPerPage }) => itemsPerPage * (page - 1);
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FPdkMsTUFBZ0YsRUFDaEYsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUVaLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUE4QixFQUFFLEVBQUUsQ0FDdEcsWUFBWSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlTdGF0ZURhdGEgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IsIFF1ZXJ5Q3JlYXRvckFyZ3MsIFF1ZXJ5Q3JlYXRvclJldHVyblR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSW5maW5pdHlRdWVyeUNvbmZpZywgUGFnZVBhcmFtQ2FsY3VsYXRvck9wdGlvbnMgfSBmcm9tICcuL2luZmluaXR5LXF1ZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluZmluaXR5UXVlcnlDb25maWcgPSA8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgUXVlcnkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlPFF1ZXJ5Q3JlYXRvcj4sXG4gIEFyZ3MgZXh0ZW5kcyBRdWVyeUNyZWF0b3JBcmdzPFF1ZXJ5Q3JlYXRvcj4sXG4gIFF1ZXJ5UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxRdWVyeVsnc3RhdGUnXT4sXG4gIEluZmluaXR5UmVzcG9uc2UgZXh0ZW5kcyB1bmtub3duW10sXG4+KFxuICBjb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPixcbikgPT4gY29uZmlnO1xuXG5leHBvcnQgY29uc3Qgc2tpcFBhZ2luYXRpb25QYWdlUGFyYW1DYWxjdWxhdG9yID0gKHsgcGFnZSwgaXRlbXNQZXJQYWdlIH06IFBhZ2VQYXJhbUNhbGN1bGF0b3JPcHRpb25zKSA9PlxuICBpdGVtc1BlclBhZ2UgKiAocGFnZSAtIDEpO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './logger';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvbG9nZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2dnZXInO1xuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const buildErrorMessage = (code, message) => `[@ethlete\\query:${code}] ${message}`;
|
|
2
|
+
export class QueryError extends Error {
|
|
3
|
+
constructor(code, message, data) {
|
|
4
|
+
super(buildErrorMessage(code, message));
|
|
5
|
+
this.name = 'QueryError';
|
|
6
|
+
this.data = data;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export const invalidBaseRouteError = (data) => new QueryError('001', 'The baseRoute must not end with a slash', data);
|
|
10
|
+
export const invalidRouteError = (data) => new QueryError('002', 'The route must start with a slash', data);
|
|
11
|
+
export const pathParamsMissingInRouteFunctionError = (data) => new QueryError('003', 'The route is a function but pathParams are missing', data);
|
|
12
|
+
export const queryStateAlreadyHasKeyError = (data) => new QueryError('004', 'The query state already contains the provided key', data);
|
|
13
|
+
export const queryStateDoesNotContainKeyError = (data) => new QueryError('005', 'The query state does not contain the provided key', data);
|
|
14
|
+
export const queryStateCannotTransformError = (data) => new QueryError('006', 'The query state cannot be transformed because it is not loading', data);
|
|
15
|
+
export const invalidBodyError = (data) => new QueryError('007', 'The body is not valid or upsupported', data);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2xvZ2dlci9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO0FBRTNHLE1BQU0sT0FBTyxVQUFXLFNBQVEsS0FBSztJQUduQyxZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsSUFBYztRQUN2RCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUNyRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUseUNBQXlDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVySCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ3JFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxvREFBb0QsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVwRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzVELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ2hFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzlELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxpRUFBaUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGJ1aWxkRXJyb3JNZXNzYWdlID0gKGNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSA9PiBgW0BldGhsZXRlXFxcXHF1ZXJ5OiR7Y29kZX1dICR7bWVzc2FnZX1gO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGF0YT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoY29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKSB7XG4gICAgc3VwZXIoYnVpbGRFcnJvck1lc3NhZ2UoY29kZSwgbWVzc2FnZSkpO1xuICAgIHRoaXMubmFtZSA9ICdRdWVyeUVycm9yJztcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkQmFzZVJvdXRlRXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwMScsICdUaGUgYmFzZVJvdXRlIG11c3Qgbm90IGVuZCB3aXRoIGEgc2xhc2gnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRSb3V0ZUVycm9yID0gKGRhdGE6IHVua25vd24pID0+IG5ldyBRdWVyeUVycm9yKCcwMDInLCAnVGhlIHJvdXRlIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoJywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBwYXRoUGFyYW1zTWlzc2luZ0luUm91dGVGdW5jdGlvbkVycm9yID0gKGRhdGE6IHVua25vd24pID0+XG4gIG5ldyBRdWVyeUVycm9yKCcwMDMnLCAnVGhlIHJvdXRlIGlzIGEgZnVuY3Rpb24gYnV0IHBhdGhQYXJhbXMgYXJlIG1pc3NpbmcnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVBbHJlYWR5SGFzS2V5RXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwNCcsICdUaGUgcXVlcnkgc3RhdGUgYWxyZWFkeSBjb250YWlucyB0aGUgcHJvdmlkZWQga2V5JywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeVN0YXRlRG9lc05vdENvbnRhaW5LZXlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA1JywgJ1RoZSBxdWVyeSBzdGF0ZSBkb2VzIG5vdCBjb250YWluIHRoZSBwcm92aWRlZCBrZXknLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVDYW5ub3RUcmFuc2Zvcm1FcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA2JywgJ1RoZSBxdWVyeSBzdGF0ZSBjYW5ub3QgYmUgdHJhbnNmb3JtZWQgYmVjYXVzZSBpdCBpcyBub3QgbG9hZGluZycsIGRhdGEpO1xuXG5leHBvcnQgY29uc3QgaW52YWxpZEJvZHlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PiBuZXcgUXVlcnlFcnJvcignMDA3JywgJ1RoZSBib2R5IGlzIG5vdCB2YWxpZCBvciB1cHN1cHBvcnRlZCcsIGRhdGEpO1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './query';
|
|
2
|
+
export * from './query.types';
|
|
3
|
+
export * from './query.utils';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3F1ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnkudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS51dGlscyc7XG4iXX0=
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { BehaviorSubject, interval, takeUntil } from 'rxjs';
|
|
2
|
+
import { transformGql } from '../gql';
|
|
3
|
+
import { buildBody, guessContentType, isAbortRequestError, isRequestError, request, transformMethod, } from '../request';
|
|
4
|
+
import { deepFreeze } from '../utils';
|
|
5
|
+
import { isGqlQueryConfig, isQueryStateLoading, isQueryStateSuccess, mergeHeaders } from './query.utils';
|
|
6
|
+
export class Query {
|
|
7
|
+
constructor(_client, _queryConfig, _route, _args) {
|
|
8
|
+
this._client = _client;
|
|
9
|
+
this._queryConfig = _queryConfig;
|
|
10
|
+
this._route = _route;
|
|
11
|
+
this._args = _args;
|
|
12
|
+
this._currentId = 0;
|
|
13
|
+
this._abortController = new AbortController();
|
|
14
|
+
this._pollingSubscription = null;
|
|
15
|
+
this._state$ = new BehaviorSubject({
|
|
16
|
+
type: "PREPARED" /* QueryStateType.Prepared */,
|
|
17
|
+
meta: { id: this._currentId },
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
get _nextId() {
|
|
21
|
+
return this._currentId++;
|
|
22
|
+
}
|
|
23
|
+
get state$() {
|
|
24
|
+
return this._state$.asObservable();
|
|
25
|
+
}
|
|
26
|
+
get state() {
|
|
27
|
+
return this._state$.value;
|
|
28
|
+
}
|
|
29
|
+
get isExpired() {
|
|
30
|
+
if (!isQueryStateSuccess(this.state)) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const ts = this.state.meta.expiresAt;
|
|
34
|
+
if (!ts) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return ts < Date.now();
|
|
38
|
+
}
|
|
39
|
+
clone() {
|
|
40
|
+
return this._client.fetch(this._queryConfig);
|
|
41
|
+
}
|
|
42
|
+
execute(options) {
|
|
43
|
+
if (!this.isExpired && !options?.skipCache && isQueryStateSuccess(this.state)) {
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
if (this._queryConfig.secure && !this._client.authProvider) {
|
|
47
|
+
throw new Error('Cannot execute secure query without auth provider');
|
|
48
|
+
}
|
|
49
|
+
const id = this._nextId;
|
|
50
|
+
if (isQueryStateLoading(this._state$.value)) {
|
|
51
|
+
this.abort();
|
|
52
|
+
}
|
|
53
|
+
const meta = deepFreeze({ id });
|
|
54
|
+
this._state$.next({
|
|
55
|
+
type: "LOADING" /* QueryStateType.Loading */,
|
|
56
|
+
meta,
|
|
57
|
+
});
|
|
58
|
+
let body = null;
|
|
59
|
+
let contentType = null;
|
|
60
|
+
if (isGqlQueryConfig(this._queryConfig)) {
|
|
61
|
+
const queryTemplate = this._queryConfig.query;
|
|
62
|
+
const query = transformGql(queryTemplate);
|
|
63
|
+
contentType = 'application/json';
|
|
64
|
+
body = query(this._args?.variables);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
body = buildBody(this._args?.body);
|
|
68
|
+
contentType = guessContentType(body);
|
|
69
|
+
}
|
|
70
|
+
let authHeader = null;
|
|
71
|
+
if (this._queryConfig.secure) {
|
|
72
|
+
const header = this._client.authProvider?.header;
|
|
73
|
+
if (header) {
|
|
74
|
+
authHeader = header;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else if (this._client.authProvider?.header) {
|
|
78
|
+
if (this._queryConfig.secure === undefined || this._queryConfig.secure) {
|
|
79
|
+
authHeader = this._client.authProvider.header;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
let headers = mergeHeaders(authHeader, this._args?.headers);
|
|
83
|
+
if (contentType && !headers?.['Content-Type'] && !headers?.['content-type']) {
|
|
84
|
+
if (headers) {
|
|
85
|
+
headers['Content-Type'] = contentType;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
headers = {
|
|
89
|
+
'Content-Type': contentType,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
request({
|
|
94
|
+
route: this._route,
|
|
95
|
+
init: {
|
|
96
|
+
method: transformMethod(this._queryConfig.method),
|
|
97
|
+
signal: this._abortController.signal,
|
|
98
|
+
body,
|
|
99
|
+
headers: headers || undefined,
|
|
100
|
+
},
|
|
101
|
+
cacheAdapter: this._client.config.request?.cacheAdapter,
|
|
102
|
+
})
|
|
103
|
+
.then((response) => {
|
|
104
|
+
const isResponseObject = typeof response === 'object';
|
|
105
|
+
const isGql = isGqlQueryConfig(this._queryConfig);
|
|
106
|
+
let responseData = null;
|
|
107
|
+
if (isGql && isResponseObject && 'data' in response.data) {
|
|
108
|
+
responseData = response.data['data'];
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
responseData = response.data;
|
|
112
|
+
}
|
|
113
|
+
const transformedResponse = this._queryConfig.responseTransformer
|
|
114
|
+
? this._queryConfig.responseTransformer(responseData)
|
|
115
|
+
: responseData;
|
|
116
|
+
this._state$.next({
|
|
117
|
+
type: "SUCCESS" /* QueryStateType.Success */,
|
|
118
|
+
response: deepFreeze(transformedResponse),
|
|
119
|
+
rawResponse: deepFreeze(responseData),
|
|
120
|
+
meta: deepFreeze({ ...meta, expiresAt: response.expiresInTimestamp }),
|
|
121
|
+
});
|
|
122
|
+
})
|
|
123
|
+
.catch((error) => this._handleExecuteError(error, meta));
|
|
124
|
+
return this;
|
|
125
|
+
}
|
|
126
|
+
abort() {
|
|
127
|
+
this._abortController.abort();
|
|
128
|
+
this._abortController = new AbortController();
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
poll(config) {
|
|
132
|
+
if (this._pollingSubscription) {
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
this._pollingSubscription = interval(config.interval)
|
|
136
|
+
.pipe(takeUntil(config.takeUntil))
|
|
137
|
+
.subscribe(() => this.execute({ skipCache: true }));
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
stopPolling() {
|
|
141
|
+
this._pollingSubscription?.unsubscribe();
|
|
142
|
+
this._pollingSubscription = null;
|
|
143
|
+
return this;
|
|
144
|
+
}
|
|
145
|
+
_handleExecuteError(error, meta) {
|
|
146
|
+
if (isAbortRequestError(error)) {
|
|
147
|
+
this._state$.next({
|
|
148
|
+
type: "CANCELLED" /* QueryStateType.Cancelled */,
|
|
149
|
+
meta,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else if (isRequestError(error)) {
|
|
153
|
+
this._state$.next({
|
|
154
|
+
type: "FAILURE" /* QueryStateType.Failure */,
|
|
155
|
+
error,
|
|
156
|
+
meta,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
throw error;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXRDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixjQUFjLEVBRWQsT0FBTyxFQUNQLGVBQWUsR0FDaEIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVl0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE1BQU0sT0FBTyxLQUFLO0lBdUNoQixZQUNVLE9BQW9CLEVBQ3BCLFlBRTJELEVBQzNELE1BQWEsRUFDYixLQUE0QjtRQUw1QixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGlCQUFZLEdBQVosWUFBWSxDQUUrQztRQUMzRCxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUF0QzlCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3pDLHlCQUFvQixHQUF3QixJQUFJLENBQUM7UUFzQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQXdEO1lBQ3hGLElBQUksMENBQXlCO1lBQzdCLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUF0Q0QsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFD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QUMsQ0FBQzthQUNqQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFdEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRWpDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWMsRUFBRSxJQUFvQjtRQUM5RCxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixJQUFJLDRDQUEwQjtnQkFDOUIsSUFBSTthQUNMLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLElBQUksd0NBQXdCO2dCQUM1QixLQUFLO2dCQUNMLElBQUk7YUFDTCxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUM7U0FDYjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1HcWwgfSBmcm9tICcuLi9ncWwnO1xuaW1wb3J0IHsgRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXIsIFF1ZXJ5Q2xpZW50LCBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL3F1ZXJ5LWNsaWVudCc7XG5pbXBvcnQge1xuICBidWlsZEJvZHksXG4gIGd1ZXNzQ29udGVudFR5cGUsXG4gIGlzQWJvcnRSZXF1ZXN0RXJyb3IsXG4gIGlzUmVxdWVzdEVycm9yLFxuICBNZXRob2QgYXMgTWV0aG9kVHlwZSxcbiAgcmVxdWVzdCxcbiAgdHJhbnNmb3JtTWV0aG9kLFxufSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IGRlZXBGcmVlemUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBCYXNlQXJndW1lbnRzLFxuICBHcWxRdWVyeUNvbmZpZyxcbiAgUG9sbENvbmZpZyxcbiAgUXVlcnlDb25maWcsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVNZXRhLFxuICBRdWVyeVN0YXRlVHlwZSxcbiAgUm91dGVUeXBlLFxuICBSdW5RdWVyeU9wdGlvbnMsXG59IGZyb20gJy4vcXVlcnkudHlwZXMnO1xuaW1wb3J0IHsgaXNHcWxRdWVyeUNvbmZpZywgaXNRdWVyeVN0YXRlTG9hZGluZywgaXNRdWVyeVN0YXRlU3VjY2VzcywgbWVyZ2VIZWFkZXJzIH0gZnJvbSAnLi9xdWVyeS51dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeTxcbiAgUmVzcG9uc2UsXG4gIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gIE1ldGhvZCBleHRlbmRzIE1ldGhvZFR5cGUsXG4gIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4+IHtcbiAgcHJpdmF0ZSBfY3VycmVudElkID0gMDtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBwcml2YXRlIF9wb2xsaW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeVN0YXRlPFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4sIFJlc3BvbnNlPj47XG5cbiAgcHJpdmF0ZSBnZXQgX25leHRJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudElkKys7XG4gIH1cblxuICBnZXQgc3RhdGUkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGdldCBpc0V4cGlyZWQoKSB7XG4gICAgaWYgKCFpc1F1ZXJ5U3RhdGVTdWNjZXNzKHRoaXMuc3RhdGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdHMgPSB0aGlzLnN0YXRlLm1ldGEuZXhwaXJlc0F0O1xuXG4gICAgaWYgKCF0cykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRzIDwgRGF0ZS5ub3coKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NsaWVudDogUXVlcnlDbGllbnQsXG4gICAgcHJpdmF0ZSBfcXVlcnlDb25maWc6XG4gICAgICB8IFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPlxuICAgICAgfCBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICAgcHJpdmF0ZSBfcm91dGU6IFJvdXRlLFxuICAgIHByaXZhdGUgX2FyZ3M6IEFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgdGhpcy5fc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWVyeVN0YXRlPFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4sIFJlc3BvbnNlPj4oe1xuICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuUHJlcGFyZWQsXG4gICAgICBtZXRhOiB7IGlkOiB0aGlzLl9jdXJyZW50SWQgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiB0aGlzLl9jbGllbnQuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4odGhpcy5fcXVlcnlDb25maWcpO1xuICB9XG5cbiAgZXhlY3V0ZTxDb21wdXRlZFJlc3BvbnNlIGV4dGVuZHMgUmV0dXJuVHlwZTxSZXNwb25zZVRyYW5zZm9ybWVyPj4ob3B0aW9ucz86IFJ1blF1ZXJ5T3B0aW9ucykge1xuICAgIGlmICghdGhpcy5pc0V4cGlyZWQgJiYgIW9wdGlvbnM/LnNraXBDYWNoZSAmJiBpc1F1ZXJ5U3RhdGVTdWNjZXNzKHRoaXMuc3RhdGUpKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcXVlcnlDb25maWcuc2VjdXJlICYmICF0aGlzLl9jbGllbnQuYXV0aFByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBleGVjdXRlIHNlY3VyZSBxdWVyeSB3aXRob3V0IGF1dGggcHJvdmlkZXInKTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHRoaXMuX25leHRJZDtcblxuICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHRoaXMuX3N0YXRlJC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuYWJvcnQoKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhID0gZGVlcEZyZWV6ZSh7IGlkIH0pO1xuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuTG9hZGluZyxcbiAgICAgIG1ldGEsXG4gICAgfSk7XG5cbiAgICBsZXQgYm9keTogc3RyaW5nIHwgRm9ybURhdGEgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgY29udGVudFR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKGlzR3FsUXVlcnlDb25maWcodGhpcy5fcXVlcnlDb25maWcpKSB7XG4gICAgICBjb25zdCBxdWVyeVRlbXBsYXRlID0gdGhpcy5fcXVlcnlDb25maWcucXVlcnk7XG4gICAgICBjb25zdCBxdWVyeSA9IHRyYW5zZm9ybUdxbChxdWVyeVRlbXBsYXRlKTtcblxuICAgICAgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgICBib2R5ID0gcXVlcnkodGhpcy5fYXJncz8udmFyaWFibGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYm9keSA9IGJ1aWxkQm9keSh0aGlzLl9hcmdzPy5ib2R5KTtcbiAgICAgIGNvbnRlbnRUeXBlID0gZ3Vlc3NDb250ZW50VHlwZShib2R5KTtcbiAgICB9XG5cbiAgICBsZXQgYXV0aEhlYWRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSkge1xuICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlcj8uaGVhZGVyO1xuXG4gICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGF1dGhIZWFkZXIgPSBoZWFkZXI7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLl9jbGllbnQuYXV0aFByb3ZpZGVyPy5oZWFkZXIpIHtcbiAgICAgIGlmICh0aGlzLl9xdWVyeUNvbmZpZy5zZWN1cmUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl9xdWVyeUNvbmZpZy5zZWN1cmUpIHtcbiAgICAgICAgYXV0aEhlYWRlciA9IHRoaXMuX2NsaWVudC5hdXRoUHJvdmlkZXIuaGVhZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBoZWFkZXJzID0gbWVyZ2VIZWFkZXJzKGF1dGhIZWFkZXIsIHRoaXMuX2FyZ3M/LmhlYWRlcnMpO1xuXG4gICAgaWYgKGNvbnRlbnRUeXBlICYmICFoZWFkZXJzPy5bJ0NvbnRlbnQtVHlwZSddICYmICFoZWFkZXJzPy5bJ2NvbnRlbnQtdHlwZSddKSB7XG4gICAgICBpZiAoaGVhZGVycykge1xuICAgICAgICBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IGNvbnRlbnRUeXBlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVxdWVzdDxSZXNwb25zZT4oe1xuICAgICAgcm91dGU6IHRoaXMuX3JvdXRlLFxuICAgICAgaW5pdDoge1xuICAgICAgICBtZXRob2Q6IHRyYW5zZm9ybU1ldGhvZCh0aGlzLl9xdWVyeUNvbmZpZy5tZXRob2QpLFxuICAgICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIGJvZHksXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnMgfHwgdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGNhY2hlQWRhcHRlcjogdGhpcy5fY2xpZW50LmNvbmZpZy5yZXF1ZXN0Py5jYWNoZUFkYXB0ZXIsXG4gICAgfSlcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCBpc1Jlc3BvbnNlT2JqZWN0ID0gdHlwZW9mIHJlc3BvbnNlID09PSAnb2JqZWN0JztcblxuICAgICAgICBjb25zdCBpc0dxbCA9IGlzR3FsUXVlcnlDb25maWcodGhpcy5fcXVlcnlDb25maWcpO1xuXG4gICAgICAgIGxldCByZXNwb25zZURhdGE6IFJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGlmIChpc0dxbCAmJiBpc1Jlc3BvbnNlT2JqZWN0ICYmICdkYXRhJyBpbiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhID0gKHJlc3BvbnNlLmRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydkYXRhJ10gYXMgUmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UuZGF0YSBhcyBSZXNwb25zZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUmVzcG9uc2UgPSB0aGlzLl9xdWVyeUNvbmZpZy5yZXNwb25zZVRyYW5zZm9ybWVyXG4gICAgICAgICAgPyB0aGlzLl9xdWVyeUNvbmZpZy5yZXNwb25zZVRyYW5zZm9ybWVyKHJlc3BvbnNlRGF0YSlcbiAgICAgICAgICA6IHJlc3BvbnNlRGF0YTtcblxuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcyxcbiAgICAgICAgICByZXNwb25zZTogZGVlcEZyZWV6ZSh0cmFuc2Zvcm1lZFJlc3BvbnNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSBhcyBDb21wdXRlZFJlc3BvbnNlLFxuICAgICAgICAgIHJhd1Jlc3BvbnNlOiBkZWVwRnJlZXplKHJlc3BvbnNlRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgYXMgUmVzcG9uc2UsXG4gICAgICAgICAgbWV0YTogZGVlcEZyZWV6ZSh7IC4uLm1ldGEsIGV4cGlyZXNBdDogcmVzcG9uc2UuZXhwaXJlc0luVGltZXN0YW1wIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB0aGlzLl9oYW5kbGVFeGVjdXRlRXJyb3IoZXJyb3IsIG1ldGEpKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWJvcnQoKSB7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwb2xsKGNvbmZpZzogUG9sbENvbmZpZykge1xuICAgIGlmICh0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uID0gaW50ZXJ2YWwoY29uZmlnLmludGVydmFsKVxuICAgICAgLnBpcGUodGFrZVVudGlsKGNvbmZpZy50YWtlVW50aWwpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmV4ZWN1dGUoeyBza2lwQ2FjaGU6IHRydWUgfSkpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdG9wUG9sbGluZygpIHtcbiAgICB0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVFeGVjdXRlRXJyb3IoZXJyb3I6IHVua25vd24sIG1ldGE6IFF1ZXJ5U3RhdGVNZXRhKSB7XG4gICAgaWYgKGlzQWJvcnRSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZCxcbiAgICAgICAgbWV0YSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoaXNSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBtZXRhLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IE1ldGhvZCwgUGF0aFBhcmFtcywgUXVlcnlQYXJhbXMsIFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgUXVlcnkgfSBmcm9tICcuL3F1ZXJ5JztcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUNvbmZpZzxcbiAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgUmVzcG9uc2UsXG4gIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gfCB1bmRlZmluZWQsXG4+IHtcbiAgLyoqXG4gICAqIFRoZSBodHRwIG1ldGhvZCB0byB1c2UgZm9yIHRoZSBxdWVyeS5cbiAgICovXG4gIG1ldGhvZDogTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBUaGUgYXBpIHJvdXRlIHRvIHVzZSBmb3IgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgcm91dGU6IFJvdXRlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBhdXRoIHByb3ZpZGVyIHNob3VsZCBiZSB1c2VkIGZvciB0aGlzIHF1ZXJ5LlxuICAgKiBUaGUgcXVlcnkgKip3aWxsIHRocm93KiogaWYgdGhlIHF1ZXJ5IGNsaWVudCdzIGF1dGggcHJvdmlkZXIgaXMgdW5zZXQuXG4gICAqL1xuICBzZWN1cmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzcG9uc2UgdHJhbnNmb3JtZXIgdG8gdXNlIGZvciB0aGUgcXVlcnkuXG4gICAqIEEgZnVuY3Rpb24gdGhhdCB0cmFuc2Zvcm1zIHRoZSByZXNwb25zZSB0byB0aGUgZGVzaXJlZCB0eXBlLlxuICAgKi9cbiAgcmVzcG9uc2VUcmFuc2Zvcm1lcj86IFJlc3BvbnNlVHJhbnNmb3JtZXI7XG5cbiAgLyoqXG4gICAqIE9iamVjdCBjb250YWluaW5nIHRoZSBxdWVyeSdzIHR5cGUgaW5mb3JtYXRpb24uXG4gICAqL1xuICB0eXBlcz86IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXNwb25zZS5cbiAgICAgKi9cbiAgICByZXNwb25zZT86IFJlc3BvbnNlO1xuXG4gICAgLyoqXG4gICAgICogQXJndW1lbnRzIGZvciBleGVjdXRpbmcgdGhlIHF1ZXJ5LlxuICAgICAqXG4gICAgICogLSBgcGF0aFBhcmFtc2A6IFRoZSBwYXRoIHBhcmFtZXRlcnMgZm9yIHRoZSBxdWVyeS4gKGluIGZyb250IG9mIHRoZSA/IGluIHRoZSB1cmwpXG4gICAgICogLSBgcXVlcnlQYXJhbXNgOiBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHF1ZXJ5LiAoYWZ0ZXIgdGhlID8gaW4gdGhlIHVybClcbiAgICAgKiAtIGBib2R5YDogVGhlIGJvZHkgZm9yIHRoZSBxdWVyeS4gVW5hdmFpbGFibGUgZm9yIEdFVCwgSEVBRCBhbmQgT1BUSU9OUyByZXF1ZXN0cy5cbiAgICAgKiAtIGBoZWFkZXJzYDogVGhlIGhlYWRlcnMgZm9yIHRoZSBxdWVyeS5cbiAgICAgKi9cbiAgICBhcmdzPzogQXJndW1lbnRzO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdxbFF1ZXJ5Q29uZmlnPFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+IHwgdW5kZWZpbmVkLFxuICBSZXNwb25zZSxcbiAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiB8IHVuZGVmaW5lZCxcbj4ge1xuICBtZXRob2Q6IE1ldGhvZDtcbiAgcXVlcnk6IHN0cmluZztcbiAgcm91dGU/OiBSb3V0ZTtcbiAgc2VjdXJlPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VUcmFuc2Zvcm1lcj86IFJlc3BvbnNlVHJhbnNmb3JtZXI7XG4gIHR5cGVzPzoge1xuICAgIHJlc3BvbnNlPzogUmVzcG9uc2U7XG4gICAgYXJncz86IEFyZ3VtZW50cztcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICBSZXNwb25zZSxcbiAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiB8IHVuZGVmaW5lZCxcbj4gPSBPbWl0PFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPiwgJ21ldGhvZCc+O1xuXG5leHBvcnQgdHlwZSBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8XG4gIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gIFJlc3BvbnNlLFxuICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+IHwgdW5kZWZpbmVkLFxuPiA9IE9taXQ8R3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LCAnbWV0aG9kJz47XG5cbmV4cG9ydCB0eXBlIEJhc2VBcmd1bWVudHMgPSBXaXRoSGVhZGVycyAmIFdpdGhWYXJpYWJsZXMgJiBXaXRoQm9keSAmIFdpdGhRdWVyeVBhcmFtcyAmIFdpdGhQYXRoUGFyYW1zO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhIZWFkZXJzIHtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aFZhcmlhYmxlcyB7XG4gIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhCb2R5IHtcbiAgYm9keT86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aFF1ZXJ5UGFyYW1zIHtcbiAgcXVlcnlQYXJhbXM/OiBRdWVyeVBhcmFtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoUGF0aFBhcmFtcyB7XG4gIHBhdGhQYXJhbXM/OiBQYXRoUGFyYW1zO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuZXhwb3J0IHR5cGUgRW1wdHlPYmplY3QgPSB7fTtcblxuZXhwb3J0IGludGVyZmFjZSBSdW5RdWVyeU9wdGlvbnMge1xuICBza2lwQ2FjaGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZVR5cGU8QXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZD4gPSBBcmd1bWVudHMgZXh0ZW5kcyB7XG4gIHBhdGhQYXJhbXM6IGluZmVyIFBhdGhQYXJhbXM7XG59XG4gID8gKHA6IFBhdGhQYXJhbXMpID0+IFJvdXRlU3RyaW5nXG4gIDogUm91dGVTdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFJvdXRlU3RyaW5nID0gYC8ke3N0cmluZ31gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxDb25maWcge1xuICBpbnRlcnZhbDogbnVtYmVyO1xuICB0YWtlVW50aWw6IE9ic2VydmFibGU8dW5rbm93bj47XG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIFF1ZXJ5U3RhdGVUeXBlIHtcbiAgUHJlcGFyZWQgPSAnUFJFUEFSRUQnLFxuICBMb2FkaW5nID0gJ0xPQURJTkcnLFxuICBTdWNjZXNzID0gJ1NVQ0NFU1MnLFxuICBGYWlsdXJlID0gJ0ZBSUxVUkUnLFxuICBDYW5jZWxsZWQgPSAnQ0FOQ0VMTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJlZCB7XG4gIHJlYWRvbmx5IHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlByZXBhcmVkO1xuICByZWFkb25seSBtZXRhOiBRdWVyeVN0YXRlTWV0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWNjZXNzPFJlc3BvbnNlID0gdW5rbm93biwgUmF3UmVzcG9uc2UgPSB1bmtub3duPiB7XG4gIHJlYWRvbmx5IHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlN1Y2Nlc3M7XG4gIHJlYWRvbmx5IHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgcmVhZG9ubHkgcmF3UmVzcG9uc2U6IFJhd1Jlc3BvbnNlO1xuICByZWFkb25seSBtZXRhOiBRdWVyeVN0YXRlU3VjY2Vzc01ldGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbHVyZSB7XG4gIHJlYWRvbmx5IHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmU7XG4gIHJlYWRvbmx5IGVycm9yOiBSZXF1ZXN0RXJyb3I7XG4gIHJlYWRvbmx5IG1ldGE6IFF1ZXJ5U3RhdGVNZXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmcge1xuICByZWFkb25seSB0eXBlOiBRdWVyeVN0YXRlVHlwZS5Mb2FkaW5nO1xuICByZWFkb25seSBtZXRhOiBRdWVyeVN0YXRlTWV0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxsZWQge1xuICByZWFkb25seSB0eXBlOiBRdWVyeVN0YXRlVHlwZS5DYW5jZWxsZWQ7XG4gIHJlYWRvbmx5IG1ldGE6IFF1ZXJ5U3RhdGVNZXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5U3RhdGVNZXRhIHtcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVN0YXRlU3VjY2Vzc01ldGEgZXh0ZW5kcyBRdWVyeVN0YXRlTWV0YSB7XG4gIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlTdGF0ZTxSZXNwb25zZSA9IHVua25vd24sIFJhd1Jlc3BvbnNlID0gdW5rbm93bj4gPVxuICB8IExvYWRpbmdcbiAgfCBTdWNjZXNzPFJlc3BvbnNlLCBSYXdSZXNwb25zZT5cbiAgfCBGYWlsdXJlXG4gIHwgQ2FuY2VsbGVkXG4gIHwgUHJlcGFyZWQ7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5U3RhdGVEYXRhPFQgZXh0ZW5kcyBRdWVyeVN0YXRlID0gUXVlcnlTdGF0ZT4gPSBUIGV4dGVuZHMgU3VjY2VzczxpbmZlciBSZXNwb25zZT4gPyBSZXNwb25zZSA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBRdWVyeVN0YXRlUmF3RGF0YTxUIGV4dGVuZHMgUXVlcnlTdGF0ZSA9IFF1ZXJ5U3RhdGU+ID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBUIGV4dGVuZHMgU3VjY2VzczxpbmZlciBSZXNwb25zZSwgaW5mZXIgUmF3UmVzcG9uc2U+ID8gUmF3UmVzcG9uc2UgOiBuZXZlcjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCB0eXBlIEFueVF1ZXJ5ID0gUXVlcnk8YW55LCBhbnksIGFueSwgYW55LCBhbnk+O1xuXG5leHBvcnQgdHlwZSBRdWVyeVR5cGU8XG4gIFQgZXh0ZW5kcyB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcmVwYXJlOiAoYXJnczogYW55KSA9PiBBbnlRdWVyeTtcbiAgfSxcbj4gPSBUWydwcmVwYXJlJ10gZXh0ZW5kcyAoKSA9PiBpbmZlciBSXG4gID8gUlxuICA6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIFRbJ3ByZXBhcmUnXSBleHRlbmRzIChhcmdzOiBhbnkpID0+IGluZmVyIFJcbiAgPyBSXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5UmVzcG9uc2VUeXBlPFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+ID0gUSBleHRlbmRzIEFueVF1ZXJ5XG4gID8gUXVlcnlTdGF0ZURhdGE8UVsnc3RhdGUnXT4gfCBudWxsXG4gIDogbnVsbDtcblxuZXhwb3J0IHR5cGUgUXVlcnlSYXdSZXNwb25zZVR5cGU8USBleHRlbmRzIEFueVF1ZXJ5IHwgbnVsbD4gPSBRIGV4dGVuZHMgQW55UXVlcnlcbiAgPyBRdWVyeVN0YXRlUmF3RGF0YTxRWydzdGF0ZSddPiB8IG51bGxcbiAgOiBudWxsO1xuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { filter, takeWhile } from 'rxjs';
|
|
2
|
+
export function filterSuccess() {
|
|
3
|
+
return function (source) {
|
|
4
|
+
return source.pipe(filter((value) => isQueryStateSuccess(value)));
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export function filterFailure() {
|
|
8
|
+
return function (source) {
|
|
9
|
+
return source.pipe(filter((value) => isQueryStateFailure(value)));
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function takeUntilResponse() {
|
|
13
|
+
return function (source) {
|
|
14
|
+
return source.pipe(takeWhile((value) => isQueryStateLoading(value), true));
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export const isQueryStateLoading = (state) => state?.type === "LOADING" /* QueryStateType.Loading */;
|
|
18
|
+
export const isQueryStateSuccess = (state) => state?.type === "SUCCESS" /* QueryStateType.Success */;
|
|
19
|
+
export const isQueryStateFailure = (state) => state?.type === "FAILURE" /* QueryStateType.Failure */;
|
|
20
|
+
export const isQueryStateCancelled = (state) => state?.type === "CANCELLED" /* QueryStateType.Cancelled */;
|
|
21
|
+
export const isQueryStatePrepared = (state) => state?.type === "PREPARED" /* QueryStateType.Prepared */;
|
|
22
|
+
export const mergeHeaders = (...headers) => {
|
|
23
|
+
return headers.reduce((acc, headers) => {
|
|
24
|
+
if (!headers) {
|
|
25
|
+
return acc;
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
...acc,
|
|
29
|
+
...headers,
|
|
30
|
+
};
|
|
31
|
+
}, {});
|
|
32
|
+
};
|
|
33
|
+
export const isGqlQueryConfig = (config) => {
|
|
34
|
+
if (!config || typeof config !== 'object' || Array.isArray(config)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!('query' in config)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFrQnJELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sVUFDTCxNQUFxQjtRQUVyQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUErQyxDQUFDO0lBQ2xILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFVBQWdDLE1BQXFCO1FBQzFELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXdCLENBQUM7SUFDM0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxVQUFnQyxNQUFxQjtRQUMxRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQW9DLEVBQW9CLEVBQUUsQ0FDNUYsS0FBSyxFQUFFLElBQUksMkNBQTJCLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFvQyxFQUFvQixFQUFFLENBQzVGLEtBQUssRUFBRSxJQUFJLDJDQUEyQixDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBb0MsRUFBb0IsRUFBRSxDQUM1RixLQUFLLEVBQUUsSUFBSSwyQ0FBMkIsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQW9DLEVBQXNCLEVBQUUsQ0FDaEcsS0FBSyxFQUFFLElBQUksK0NBQTZCLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFvQyxFQUFxQixFQUFFLENBQzlGLEtBQUssRUFBRSxJQUFJLDZDQUE0QixDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsT0FBaUQsRUFBRSxFQUFFO0lBQ25GLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixHQUFHLE9BQU87U0FDWCxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FNOUIsTUFBZSxFQUM0RCxFQUFFO0lBQzdFLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbEUsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgUmVxdWVzdEhlYWRlcnMgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIENhbmNlbGxlZCxcbiAgRmFpbHVyZSxcbiAgR3FsUXVlcnlDb25maWcsXG4gIExvYWRpbmcsXG4gIFByZXBhcmVkLFxuICBRdWVyeVN0YXRlLFxuICBRdWVyeVN0YXRlRGF0YSxcbiAgUXVlcnlTdGF0ZVJhd0RhdGEsXG4gIFF1ZXJ5U3RhdGVUeXBlLFxuICBSb3V0ZVR5cGUsXG4gIFN1Y2Nlc3MsXG59IGZyb20gJy4vcXVlcnkudHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU3VjY2VzcygpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgUXVlcnlTdGF0ZSwgUmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxUPiwgUmF3UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlUmF3RGF0YTxUPj4oXG4gICAgc291cmNlOiBPYnNlcnZhYmxlPFQ+LFxuICApIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gaXNRdWVyeVN0YXRlU3VjY2Vzcyh2YWx1ZSkpKSBhcyBPYnNlcnZhYmxlPFN1Y2Nlc3M8UmVzcG9uc2UsIFJhd1Jlc3BvbnNlPj47XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJGYWlsdXJlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBRdWVyeVN0YXRlPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gaXNRdWVyeVN0YXRlRmFpbHVyZSh2YWx1ZSkpKSBhcyBPYnNlcnZhYmxlPEZhaWx1cmU+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFrZVVudGlsUmVzcG9uc2UoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGU+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZSh0YWtlV2hpbGUoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVMb2FkaW5nKHZhbHVlKSwgdHJ1ZSkpO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNRdWVyeVN0YXRlTG9hZGluZyA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBMb2FkaW5nID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5Mb2FkaW5nO1xuXG5leHBvcnQgY29uc3QgaXNRdWVyeVN0YXRlU3VjY2VzcyA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBTdWNjZXNzID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5TdWNjZXNzO1xuXG5leHBvcnQgY29uc3QgaXNRdWVyeVN0YXRlRmFpbHVyZSA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBGYWlsdXJlID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5GYWlsdXJlO1xuXG5leHBvcnQgY29uc3QgaXNRdWVyeVN0YXRlQ2FuY2VsbGVkID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIENhbmNlbGxlZCA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuQ2FuY2VsbGVkO1xuXG5leHBvcnQgY29uc3QgaXNRdWVyeVN0YXRlUHJlcGFyZWQgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgUHJlcGFyZWQgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLlByZXBhcmVkO1xuXG5leHBvcnQgY29uc3QgbWVyZ2VIZWFkZXJzID0gKC4uLmhlYWRlcnM6IEFycmF5PFJlcXVlc3RIZWFkZXJzIHwgbnVsbCB8IHVuZGVmaW5lZD4pID0+IHtcbiAgcmV0dXJuIGhlYWRlcnMucmVkdWNlKChhY2MsIGhlYWRlcnMpID0+IHtcbiAgICBpZiAoIWhlYWRlcnMpIHtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjYyxcbiAgICAgIC4uLmhlYWRlcnMsXG4gICAgfTtcbiAgfSwge30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzR3FsUXVlcnlDb25maWcgPSA8XG4gIFJlc3BvbnNlLFxuICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+IHwgdW5kZWZpbmVkLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+IHwgdW5kZWZpbmVkLFxuPihcbiAgY29uZmlnOiB1bmtub3duLFxuKTogY29uZmlnIGlzIEdxbFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPiA9PiB7XG4gIGlmICghY29uZmlnIHx8IHR5cGVvZiBjb25maWcgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoY29uZmlnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdxdWVyeScgaW4gY29uZmlnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './query-client';
|
|
2
|
+
export * from './query-client.types';
|
|
3
|
+
export * from './query-client.utils';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnktY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1jbGllbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1jbGllbnQudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1jbGllbnQudXRpbHMnO1xuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { isGqlQueryConfig, Query, } from '../query';
|
|
3
|
+
import { QueryStore } from '../query-store';
|
|
4
|
+
import { buildRoute } from '../request';
|
|
5
|
+
import { buildGqlCacheKey, shouldCacheQuery } from './query-client.utils';
|
|
6
|
+
export class QueryClient {
|
|
7
|
+
constructor(_clientConfig) {
|
|
8
|
+
this._clientConfig = _clientConfig;
|
|
9
|
+
this._authProvider = null;
|
|
10
|
+
this.get = (queryConfig) => this.fetch({
|
|
11
|
+
...queryConfig,
|
|
12
|
+
method: 'GET',
|
|
13
|
+
});
|
|
14
|
+
this.post = (queryConfig) => this.fetch({
|
|
15
|
+
...queryConfig,
|
|
16
|
+
method: 'POST',
|
|
17
|
+
});
|
|
18
|
+
this.put = (queryConfig) => this.fetch({
|
|
19
|
+
...queryConfig,
|
|
20
|
+
method: 'PUT',
|
|
21
|
+
});
|
|
22
|
+
this.patch = (queryConfig) => this.fetch({
|
|
23
|
+
...queryConfig,
|
|
24
|
+
method: 'PATCH',
|
|
25
|
+
});
|
|
26
|
+
this.delete = (queryConfig) => this.fetch({
|
|
27
|
+
...queryConfig,
|
|
28
|
+
method: 'DELETE',
|
|
29
|
+
});
|
|
30
|
+
this.gqlQuery = (queryConfig) => this.fetch({
|
|
31
|
+
...queryConfig,
|
|
32
|
+
method: 'GQL_QUERY',
|
|
33
|
+
});
|
|
34
|
+
this.gqlMutate = (queryConfig) => this.fetch({
|
|
35
|
+
...queryConfig,
|
|
36
|
+
method: 'GQL_MUTATE',
|
|
37
|
+
});
|
|
38
|
+
this.fetch = (queryConfig) => {
|
|
39
|
+
const prepare = (args) => {
|
|
40
|
+
const route = buildRoute({
|
|
41
|
+
base: this._clientConfig.baseRoute,
|
|
42
|
+
route: queryConfig.route,
|
|
43
|
+
pathParams: args?.pathParams,
|
|
44
|
+
queryParams: args?.queryParams,
|
|
45
|
+
});
|
|
46
|
+
const cacheKey = isGqlQueryConfig(queryConfig) ? buildGqlCacheKey(queryConfig, args) : route;
|
|
47
|
+
if (shouldCacheQuery(queryConfig.method)) {
|
|
48
|
+
const existingQuery = this._store.get(cacheKey);
|
|
49
|
+
if (existingQuery) {
|
|
50
|
+
return existingQuery;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const query = new Query(this, queryConfig, route, args);
|
|
54
|
+
if (shouldCacheQuery(queryConfig.method)) {
|
|
55
|
+
this._store.add(cacheKey, query);
|
|
56
|
+
}
|
|
57
|
+
return query;
|
|
58
|
+
};
|
|
59
|
+
const behaviorSubject = (initialValue = null) => new BehaviorSubject(initialValue);
|
|
60
|
+
return {
|
|
61
|
+
prepare,
|
|
62
|
+
behaviorSubject,
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
this.setAuthProvider = (authProvider) => {
|
|
66
|
+
if (this._authProvider) {
|
|
67
|
+
throw new Error('The auth provider is already set. Please call clearAuthProvider() first.');
|
|
68
|
+
}
|
|
69
|
+
this._authProvider = authProvider;
|
|
70
|
+
authProvider.queryClient = this;
|
|
71
|
+
};
|
|
72
|
+
this.clearAuthProvider = () => {
|
|
73
|
+
this._authProvider?.cleanUp();
|
|
74
|
+
this._authProvider = null;
|
|
75
|
+
};
|
|
76
|
+
this._store = new QueryStore({
|
|
77
|
+
enableChangeLogging: _clientConfig.logging?.queryStateChanges,
|
|
78
|
+
enableGarbageCollectorLogging: _clientConfig.logging?.queryStateGarbageCollector,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
get config() {
|
|
82
|
+
return this._clientConfig;
|
|
83
|
+
}
|
|
84
|
+
get authProvider() {
|
|
85
|
+
return this._authProvider;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLEtBQUssR0FJTixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxZQUFZLENBQUM7QUFPOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUUsTUFBTSxPQUFPLFdBQVc7SUFZdEIsWUFBb0IsYUFBZ0M7UUFBaEMsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBVjVDLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQWlCbEQsUUFBRyxHQUFHLENBTUosV0FBc0YsRUFDdEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENBQXlEO1lBQ2pFLEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO1FBRUwsU0FBSSxHQUFHLENBTUwsV0FBc0YsRUFDdEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENBQTBEO1lBQ2xFLEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBRUwsUUFBRyxHQUFHLENBTUosV0FBc0YsRUFDdEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENBQXlEO1lBQ2pFLEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO1FBRUwsVUFBSyxHQUFHLENBTU4sV0FBc0YsRUFDdEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENBQTJEO1lBQ25F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QUNMLENBQUM7SUFiRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0NBZ0tGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIGlzR3FsUXVlcnlDb25maWcsXG4gIFF1ZXJ5LFxuICBRdWVyeUNvbmZpZyxcbiAgUXVlcnlDb25maWdXaXRob3V0TWV0aG9kLFxuICBSb3V0ZVR5cGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5U3RvcmUgfSBmcm9tICcuLi9xdWVyeS1zdG9yZSc7XG5pbXBvcnQgeyBidWlsZFJvdXRlLCBNZXRob2QgYXMgTWV0aG9kVHlwZSB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXIsXG4gIFF1ZXJ5Q2xpZW50Q29uZmlnLFxuICBRdWVyeUNyZWF0b3IsXG4gIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlLFxufSBmcm9tICcuL3F1ZXJ5LWNsaWVudC50eXBlcyc7XG5pbXBvcnQgeyBidWlsZEdxbENhY2hlS2V5LCBzaG91bGRDYWNoZVF1ZXJ5IH0gZnJvbSAnLi9xdWVyeS1jbGllbnQudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlDbGllbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZTogUXVlcnlTdG9yZTtcbiAgcHJpdmF0ZSBfYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIgfCBudWxsID0gbnVsbDtcblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jbGllbnRDb25maWc7XG4gIH1cblxuICBnZXQgYXV0aFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRoUHJvdmlkZXI7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jbGllbnRDb25maWc6IFF1ZXJ5Q2xpZW50Q29uZmlnKSB7XG4gICAgdGhpcy5fc3RvcmUgPSBuZXcgUXVlcnlTdG9yZSh7XG4gICAgICBlbmFibGVDaGFuZ2VMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVDaGFuZ2VzLFxuICAgICAgZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmc6IF9jbGllbnRDb25maWcubG9nZ2luZz8ucXVlcnlTdGF0ZUdhcmJhZ2VDb2xsZWN0b3IsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnR0VUJywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pO1xuXG4gIHBvc3QgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnUE9TVCcsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgfSk7XG5cbiAgcHV0ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ1BVVCcsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICB9KTtcblxuICBwYXRjaCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdQQVRDSCcsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgIH0pO1xuXG4gIGRlbGV0ZSA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdERUxFVEUnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgfSk7XG5cbiAgZ3FsUXVlcnkgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IEdxbFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnR1FMX1FVRVJZJywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdHUUxfUVVFUlknLFxuICAgIH0pO1xuXG4gIGdxbE11dGF0ZSA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogR3FsUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdHUUxfTVVUQVRFJywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdHUUxfTVVUQVRFJyxcbiAgICB9KTtcblxuICBmZXRjaCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gICAgTWV0aG9kIGV4dGVuZHMgTWV0aG9kVHlwZSxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOlxuICAgICAgfCBRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApOiBRdWVyeUNyZWF0b3I8QXJndW1lbnRzLCBNZXRob2QsIFJlc3BvbnNlLCBSb3V0ZSwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4gPT4ge1xuICAgIGNvbnN0IHByZXBhcmUgPSAoYXJncz86IEFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3Qgcm91dGUgPSBidWlsZFJvdXRlKHtcbiAgICAgICAgYmFzZTogdGhpcy5fY2xpZW50Q29uZmlnLmJhc2VSb3V0ZSxcbiAgICAgICAgcm91dGU6IHF1ZXJ5Q29uZmlnLnJvdXRlLFxuICAgICAgICBwYXRoUGFyYW1zOiAoYXJncyBhcyBCYXNlQXJndW1lbnRzKT8ucGF0aFBhcmFtcyxcbiAgICAgICAgcXVlcnlQYXJhbXM6IChhcmdzIGFzIEJhc2VBcmd1bWVudHMpPy5xdWVyeVBhcmFtcyxcbiAgICAgIH0pIGFzIFJvdXRlO1xuXG4gICAgICBjb25zdCBjYWNoZUtleSA9IGlzR3FsUXVlcnlDb25maWcocXVlcnlDb25maWcpID8gYnVpbGRHcWxDYWNoZUtleShxdWVyeUNvbmZpZywgYXJncykgOiByb3V0ZTtcblxuICAgICAgaWYgKHNob3VsZENhY2hlUXVlcnkocXVlcnlDb25maWcubWV0aG9kKSkge1xuICAgICAgICBjb25zdCBleGlzdGluZ1F1ZXJ5ID0gdGhpcy5fc3RvcmUuZ2V0KGNhY2hlS2V5KTtcblxuICAgICAgICBpZiAoZXhpc3RpbmdRdWVyeSkge1xuICAgICAgICAgIHJldHVybiBleGlzdGluZ1F1ZXJ5IGFzIFF1ZXJ5PFJlc3BvbnNlLCBBcmd1bWVudHMsIFJvdXRlLCBNZXRob2QsIFJlc3BvbnNlVHJhbnNmb3JtZXI+O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFF1ZXJ5PFJlc3BvbnNlLCBBcmd1bWVudHMsIFJvdXRlLCBNZXRob2QsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHRoaXMsIHF1ZXJ5Q29uZmlnLCByb3V0ZSwgYXJncyk7XG5cbiAgICAgIGlmIChzaG91bGRDYWNoZVF1ZXJ5KHF1ZXJ5Q29uZmlnLm1ldGhvZCkpIHtcbiAgICAgICAgdGhpcy5fc3RvcmUuYWRkKGNhY2hlS2V5LCBxdWVyeSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBxdWVyeTtcbiAgICB9O1xuXG4gICAgY29uc3QgYmVoYXZpb3JTdWJqZWN0ID0gPFQgZXh0ZW5kcyBSZXR1cm5UeXBlPHR5cGVvZiBwcmVwYXJlPj4oaW5pdGlhbFZhbHVlOiBUIHwgbnVsbCA9IG51bGwpID0+XG4gICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PFQgfCBudWxsPihpbml0aWFsVmFsdWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByZXBhcmUsXG4gICAgICBiZWhhdmlvclN1YmplY3QsXG4gICAgfSBhcyB1bmtub3duIGFzIFF1ZXJ5Q3JlYXRvcjxBcmd1bWVudHMsIE1ldGhvZCwgUmVzcG9uc2UsIFJvdXRlLCBSZXNwb25zZVRyYW5zZm9ybWVyPjtcbiAgfTtcblxuICBzZXRBdXRoUHJvdmlkZXIgPSAoYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpID0+IHtcbiAgICBpZiAodGhpcy5fYXV0aFByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhdXRoIHByb3ZpZGVyIGlzIGFscmVhZHkgc2V0LiBQbGVhc2UgY2FsbCBjbGVhckF1dGhQcm92aWRlcigpIGZpcnN0LicpO1xuICAgIH1cblxuICAgIHRoaXMuX2F1dGhQcm92aWRlciA9IGF1dGhQcm92aWRlcjtcbiAgICBhdXRoUHJvdmlkZXIucXVlcnlDbGllbnQgPSB0aGlzO1xuICB9O1xuXG4gIGNsZWFyQXV0aFByb3ZpZGVyID0gKCkgPT4ge1xuICAgIHRoaXMuX2F1dGhQcm92aWRlcj8uY2xlYW5VcCgpO1xuICAgIHRoaXMuX2F1dGhQcm92aWRlciA9IG51bGw7XG4gIH07XG59XG4iXX0=
|