@data-client/rest 0.1.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/LICENSE +201 -0
- package/README.md +110 -0
- package/dist/index.js +561 -0
- package/dist/index.umd.min.js +1 -0
- package/dist/next.js +520 -0
- package/dist/package.json +1 -0
- package/legacy/NetworkError.js +13 -0
- package/legacy/OptionsToFunction.js +2 -0
- package/legacy/RestEndpoint.js +225 -0
- package/legacy/RestEndpointTypeHelp.js +2 -0
- package/legacy/RestHelpers.js +33 -0
- package/legacy/createResource.js +88 -0
- package/legacy/extractCollection.js +14 -0
- package/legacy/getArrayPath.js +19 -0
- package/legacy/hookifyResource.js +24 -0
- package/legacy/index.js +10 -0
- package/legacy/mapCollection.js +14 -0
- package/legacy/next/OptionsToFunction.js +2 -0
- package/legacy/next/RestEndpoint.js +225 -0
- package/legacy/next/createResource.js +86 -0
- package/legacy/next/index.js +4 -0
- package/legacy/next/resourceTypes.js +2 -0
- package/legacy/paginatedCollections.js +29 -0
- package/legacy/paginationUpdate.js +36 -0
- package/legacy/paramsToString.js +6 -0
- package/legacy/paramsToString.native.js +9 -0
- package/legacy/pathTypes.js +2 -0
- package/legacy/test-fixtures.js +111 -0
- package/legacy/utiltypes.js +2 -0
- package/lib/NetworkError.d.ts +11 -0
- package/lib/NetworkError.d.ts.map +1 -0
- package/lib/NetworkError.js +13 -0
- package/lib/OptionsToFunction.d.ts +7 -0
- package/lib/OptionsToFunction.d.ts.map +1 -0
- package/lib/OptionsToFunction.js +2 -0
- package/lib/RestEndpoint.d.ts +548 -0
- package/lib/RestEndpoint.js +229 -0
- package/lib/RestEndpointTypeHelp.d.ts +10 -0
- package/lib/RestEndpointTypeHelp.d.ts.map +1 -0
- package/lib/RestEndpointTypeHelp.js +2 -0
- package/lib/RestHelpers.d.ts +7 -0
- package/lib/RestHelpers.d.ts.map +1 -0
- package/lib/RestHelpers.js +33 -0
- package/lib/createResource.d.ts +66 -0
- package/lib/createResource.d.ts.map +1 -0
- package/lib/createResource.js +104 -0
- package/lib/extractCollection.d.ts +11 -0
- package/lib/extractCollection.d.ts.map +1 -0
- package/lib/extractCollection.js +16 -0
- package/lib/getArrayPath.d.ts +3 -0
- package/lib/getArrayPath.d.ts.map +1 -0
- package/lib/getArrayPath.js +19 -0
- package/lib/hookifyResource.d.ts +14 -0
- package/lib/hookifyResource.d.ts.map +1 -0
- package/lib/hookifyResource.js +24 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +10 -0
- package/lib/mapCollection.d.ts +16 -0
- package/lib/mapCollection.d.ts.map +1 -0
- package/lib/mapCollection.js +16 -0
- package/lib/next/OptionsToFunction.d.ts +7 -0
- package/lib/next/OptionsToFunction.d.ts.map +1 -0
- package/lib/next/OptionsToFunction.js +2 -0
- package/lib/next/RestEndpoint.d.ts +542 -0
- package/lib/next/RestEndpoint.js +229 -0
- package/lib/next/createResource.d.ts +86 -0
- package/lib/next/createResource.d.ts.map +1 -0
- package/lib/next/createResource.js +100 -0
- package/lib/next/index.d.ts +6 -0
- package/lib/next/index.d.ts.map +1 -0
- package/lib/next/index.js +4 -0
- package/lib/next/resourceTypes.d.ts +31 -0
- package/lib/next/resourceTypes.d.ts.map +1 -0
- package/lib/next/resourceTypes.js +2 -0
- package/lib/paginatedCollections.d.ts +3 -0
- package/lib/paginatedCollections.d.ts.map +1 -0
- package/lib/paginatedCollections.js +29 -0
- package/lib/paginationUpdate.d.ts +8 -0
- package/lib/paginationUpdate.d.ts.map +1 -0
- package/lib/paginationUpdate.js +40 -0
- package/lib/paramsToString.d.ts +2 -0
- package/lib/paramsToString.d.ts.map +1 -0
- package/lib/paramsToString.js +6 -0
- package/lib/paramsToString.native.d.ts +2 -0
- package/lib/paramsToString.native.d.ts.map +1 -0
- package/lib/paramsToString.native.js +9 -0
- package/lib/pathTypes.d.ts +20 -0
- package/lib/pathTypes.d.ts.map +1 -0
- package/lib/pathTypes.js +2 -0
- package/lib/test-fixtures.d.ts +141 -0
- package/lib/test-fixtures.d.ts.map +1 -0
- package/lib/test-fixtures.js +111 -0
- package/lib/utiltypes.d.ts +21 -0
- package/lib/utiltypes.d.ts.map +1 -0
- package/lib/utiltypes.js +2 -0
- package/node.mjs +1 -0
- package/package.json +121 -0
- package/src/NetworkError.ts +17 -0
- package/src/OptionsToFunction.ts +42 -0
- package/src/RestEndpoint.d.ts +548 -0
- package/src/RestEndpoint.js +262 -0
- package/src/RestEndpointTypeHelp.ts +20 -0
- package/src/RestHelpers.ts +48 -0
- package/src/__tests__/Resource.test.ts +317 -0
- package/src/__tests__/RestEndpoint.ts +1304 -0
- package/src/__tests__/__snapshots__/RestEndpoint.ts.snap +18 -0
- package/src/__tests__/__snapshots__/createResource.test.ts.snap +5 -0
- package/src/__tests__/createResource.test.ts +583 -0
- package/src/__tests__/getArrayPath.test.ts +30 -0
- package/src/__tests__/hookifyResource.ts +197 -0
- package/src/__tests__/types.test.ts +309 -0
- package/src/createResource.ts +172 -0
- package/src/extractCollection.ts +34 -0
- package/src/getArrayPath.ts +20 -0
- package/src/hookifyResource.ts +36 -0
- package/src/index.ts +42 -0
- package/src/mapCollection.ts +54 -0
- package/src/next/OptionsToFunction.ts +41 -0
- package/src/next/RestEndpoint.d.ts +542 -0
- package/src/next/RestEndpoint.js +262 -0
- package/src/next/__tests__/RestEndpoint.ts +1333 -0
- package/src/next/__tests__/__snapshots__/RestEndpoint.ts.snap +18 -0
- package/src/next/__tests__/types.test.ts +429 -0
- package/src/next/createResource.ts +194 -0
- package/src/next/index.ts +5 -0
- package/src/next/resourceTypes.ts +32 -0
- package/src/package.json +1 -0
- package/src/paginatedCollections.ts +32 -0
- package/src/paginationUpdate.ts +49 -0
- package/src/paramsToString.native.ts +10 -0
- package/src/paramsToString.ts +7 -0
- package/src/pathTypes.ts +58 -0
- package/src/test-fixtures.ts +128 -0
- package/src/utiltypes.ts +25 -0
- package/ts4.0/NetworkError.d.ts +11 -0
- package/ts4.0/OptionsToFunction.d.ts +16 -0
- package/ts4.0/RestEndpoint.d.ts +240 -0
- package/ts4.0/RestEndpointTypeHelp.d.ts +10 -0
- package/ts4.0/RestHelpers.d.ts +7 -0
- package/ts4.0/createResource.d.ts +66 -0
- package/ts4.0/extractCollection.d.ts +11 -0
- package/ts4.0/getArrayPath.d.ts +3 -0
- package/ts4.0/hookifyResource.d.ts +19 -0
- package/ts4.0/index.d.ts +12 -0
- package/ts4.0/mapCollection.d.ts +16 -0
- package/ts4.0/next/OptionsToFunction.d.ts +16 -0
- package/ts4.0/next/RestEndpoint.d.ts +226 -0
- package/ts4.0/next/createResource.d.ts +94 -0
- package/ts4.0/next/index.d.ts +6 -0
- package/ts4.0/next/resourceTypes.d.ts +31 -0
- package/ts4.0/paginatedCollections.d.ts +3 -0
- package/ts4.0/paginationUpdate.d.ts +10 -0
- package/ts4.0/paramsToString.d.ts +2 -0
- package/ts4.0/paramsToString.native.d.ts +2 -0
- package/ts4.0/pathTypes.d.ts +20 -0
- package/ts4.0/test-fixtures.d.ts +141 -0
- package/ts4.0/utiltypes.d.ts +5 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import _objectDestructuringEmpty from "@babel/runtime/helpers/objectDestructuringEmpty";
|
|
2
|
+
import _classPrivateFieldLooseBase from "@babel/runtime/helpers/classPrivateFieldLooseBase";
|
|
3
|
+
import _classPrivateFieldLooseKey from "@babel/runtime/helpers/classPrivateFieldLooseKey";
|
|
4
|
+
import { Endpoint } from '@data-client/endpoint';
|
|
5
|
+
import { pathToRegexp } from 'path-to-regexp';
|
|
6
|
+
import extractCollection from './extractCollection.js';
|
|
7
|
+
import mapCollection from './mapCollection.js';
|
|
8
|
+
import NetworkError from './NetworkError.js';
|
|
9
|
+
import { paginatedMerge, paginatedFilter } from './paginatedCollections.js';
|
|
10
|
+
import paginationUpdate from './paginationUpdate.js';
|
|
11
|
+
import paramsToString from './paramsToString.js';
|
|
12
|
+
import { getUrlBase, getUrlTokens, isPojo } from './RestHelpers.js';
|
|
13
|
+
|
|
14
|
+
/** Simplifies endpoint definitions that follow REST patterns
|
|
15
|
+
*
|
|
16
|
+
* @see https://resthooks.io/rest/api/RestEndpoint
|
|
17
|
+
*/
|
|
18
|
+
var _hasBody = /*#__PURE__*/_classPrivateFieldLooseKey("hasBody");
|
|
19
|
+
export default class RestEndpoint extends Endpoint {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
var _options$fetch;
|
|
22
|
+
super((_options$fetch = options.fetch) != null ? _options$fetch : function (...args) {
|
|
23
|
+
const urlParams = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] && args.length < 2 ? {} : args[0] || {};
|
|
24
|
+
const body = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] ? args[args.length - 1] : undefined;
|
|
25
|
+
return this.fetchResponse(this.url(urlParams), this.getRequestInit(body)).then(response => this.parseResponse(response)).then(res => this.process(res, ...args));
|
|
26
|
+
}, options);
|
|
27
|
+
// we want to use the prototype chain here
|
|
28
|
+
Object.defineProperty(this, _hasBody, {
|
|
29
|
+
writable: true,
|
|
30
|
+
value: void 0
|
|
31
|
+
});
|
|
32
|
+
if (!('sideEffect' in this) || 'method' in options && !('sideEffect' in options)) {
|
|
33
|
+
this.sideEffect = options.method === 'GET' || options.method === undefined ? undefined : true;
|
|
34
|
+
}
|
|
35
|
+
if (this.method === undefined) {
|
|
36
|
+
this.method = this.sideEffect ? 'POST' : 'GET';
|
|
37
|
+
}
|
|
38
|
+
if (this.urlPrefix === undefined) {
|
|
39
|
+
this.urlPrefix = '';
|
|
40
|
+
}
|
|
41
|
+
_classPrivateFieldLooseBase(this, _hasBody)[_hasBody] = (!('body' in this) || this.body !== undefined) && !['GET', 'DELETE'].includes(this.method);
|
|
42
|
+
Object.defineProperty(this, 'name', {
|
|
43
|
+
get() {
|
|
44
|
+
// using 'in' to ensure inheritance lookup
|
|
45
|
+
if ('__name' in this) return this.__name;
|
|
46
|
+
return this.urlPrefix + this.path;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
key(...args) {
|
|
51
|
+
return `${this.method} ${this.url(_classPrivateFieldLooseBase(this, _hasBody)[_hasBody] && args.length < 2 ? {} : args[0] || {})}`;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Get the url */
|
|
55
|
+
url(urlParams = {}) {
|
|
56
|
+
const urlBase = getUrlBase(this.path)(urlParams);
|
|
57
|
+
const tokens = getUrlTokens(this.path);
|
|
58
|
+
const searchParams = {};
|
|
59
|
+
Object.keys(urlParams).forEach(k => {
|
|
60
|
+
if (!tokens.has(k)) {
|
|
61
|
+
searchParams[k] = urlParams[k];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
if (Object.keys(searchParams).length) {
|
|
65
|
+
return `${this.urlPrefix}${urlBase}?${paramsToString(searchParams)}`;
|
|
66
|
+
}
|
|
67
|
+
return `${this.urlPrefix}${urlBase}`;
|
|
68
|
+
}
|
|
69
|
+
getHeaders(headers) {
|
|
70
|
+
return headers;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Init options for fetch - run at fetch */
|
|
74
|
+
getRequestInit(body) {
|
|
75
|
+
const bodyIsPojo = isPojo(body);
|
|
76
|
+
if (bodyIsPojo) {
|
|
77
|
+
body = JSON.stringify(body);
|
|
78
|
+
}
|
|
79
|
+
const init = Object.assign({}, this.requestInit, {
|
|
80
|
+
method: this.method,
|
|
81
|
+
signal: this.signal,
|
|
82
|
+
body
|
|
83
|
+
});
|
|
84
|
+
if (!body || bodyIsPojo) {
|
|
85
|
+
init.headers = Object.assign({
|
|
86
|
+
// default to application/json but allow user explicit overrides
|
|
87
|
+
'Content-Type': 'application/json'
|
|
88
|
+
}, init.headers);
|
|
89
|
+
}
|
|
90
|
+
init.headers = this.getHeaders(init.headers);
|
|
91
|
+
return init;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Perform network request and resolve with HTTP Response */
|
|
95
|
+
fetchResponse(input, init) {
|
|
96
|
+
return fetch(input, init).then(response => {
|
|
97
|
+
if (!response.ok) {
|
|
98
|
+
throw new NetworkError(response);
|
|
99
|
+
}
|
|
100
|
+
return response;
|
|
101
|
+
}).catch(error => {
|
|
102
|
+
// ensure CORS, network down, and parse errors are still caught by NetworkErrorBoundary
|
|
103
|
+
if (error instanceof TypeError) {
|
|
104
|
+
error.status = 500;
|
|
105
|
+
}
|
|
106
|
+
throw error;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
parseResponse(response) {
|
|
110
|
+
var _response$headers$get;
|
|
111
|
+
// this should not have any content to read
|
|
112
|
+
if (response.status === 204) return Promise.resolve(null);
|
|
113
|
+
if (!((_response$headers$get = response.headers.get('content-type')) != null && _response$headers$get.includes('json'))) {
|
|
114
|
+
return response.text().then(text => {
|
|
115
|
+
// string or 'not set' schema, are valid
|
|
116
|
+
// when overriding process they might handle other cases, so we don't want to block on our logic
|
|
117
|
+
if (['string', 'undefined'].includes(typeof this.schema) || this.schema === null || this.process !== RestEndpoint.prototype.process) return text;
|
|
118
|
+
const error = new NetworkError(response);
|
|
119
|
+
error.status = 404;
|
|
120
|
+
error.message = `Unexpected text response for schema ${this.schema}`;
|
|
121
|
+
// custom dev-only messages for more detailed cause
|
|
122
|
+
/* istanbul ignore else */
|
|
123
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
124
|
+
var _response$headers$get2;
|
|
125
|
+
if (!((_response$headers$get2 = response.headers.get('content-type')) != null && _response$headers$get2.includes('html') || text.startsWith('<!doctype html>'))) {
|
|
126
|
+
if (tryParse(text) !== undefined) {
|
|
127
|
+
error.message = `"content-type" header does not include "json", but JSON response found.
|
|
128
|
+
See https://www.rfc-editor.org/rfc/rfc4627 for information on JSON responses
|
|
129
|
+
|
|
130
|
+
Using parsed JSON.
|
|
131
|
+
If text content was expected see https://resthooks.io/rest/api/RestEndpoint#parseResponse`;
|
|
132
|
+
}
|
|
133
|
+
} else {
|
|
134
|
+
error.message = `Unexpected html response for schema ${this.schema}
|
|
135
|
+
This likely means no API endpoint was configured for this request, resulting in an HTML fallback.
|
|
136
|
+
|
|
137
|
+
Response (first 300 characters): ${text.substring(0, 300)}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
throw error;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return response.json().catch(error => {
|
|
144
|
+
error.status = 400;
|
|
145
|
+
throw error;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
process(value) {
|
|
149
|
+
return value;
|
|
150
|
+
}
|
|
151
|
+
errorPolicy(error) {
|
|
152
|
+
return error.status >= 500 ? 'soft' : undefined;
|
|
153
|
+
}
|
|
154
|
+
get pathRegex() {
|
|
155
|
+
return pathToRegexp(this.path);
|
|
156
|
+
}
|
|
157
|
+
testKey(key) {
|
|
158
|
+
const prefix = this.method + ' ' + this.urlPrefix;
|
|
159
|
+
if (!key.startsWith(prefix)) return false;
|
|
160
|
+
let lastQuestion = key.lastIndexOf('?');
|
|
161
|
+
if (lastQuestion === -1) lastQuestion = undefined;
|
|
162
|
+
return this.pathRegex.test(key.substring(prefix.length, lastQuestion));
|
|
163
|
+
}
|
|
164
|
+
extend(options) {
|
|
165
|
+
// make a constructor/prototype based off this
|
|
166
|
+
// extend from it and init with options sent
|
|
167
|
+
class E extends this.constructor {}
|
|
168
|
+
Object.assign(E.prototype, this);
|
|
169
|
+
const instance = new E( // fetch get overridden by function prototype, so we must set it explicitly every time
|
|
170
|
+
Object.assign({
|
|
171
|
+
fetch: this.fetch
|
|
172
|
+
}, options));
|
|
173
|
+
return instance;
|
|
174
|
+
}
|
|
175
|
+
paginated(removeCursor) {
|
|
176
|
+
if (typeof removeCursor === 'string') {
|
|
177
|
+
const fieldName = removeCursor;
|
|
178
|
+
removeCursor = _ref => {
|
|
179
|
+
let params = Object.assign({}, (_objectDestructuringEmpty(_ref), _ref));
|
|
180
|
+
delete params[fieldName];
|
|
181
|
+
return [params];
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
let found = false;
|
|
185
|
+
const createPaginatedSchema = collection => {
|
|
186
|
+
found = true;
|
|
187
|
+
return collection.addWith(paginatedMerge, paginatedFilter(removeCursor));
|
|
188
|
+
};
|
|
189
|
+
const newSchema = mapCollection(this.schema, createPaginatedSchema);
|
|
190
|
+
if (found) {
|
|
191
|
+
return this.extend({
|
|
192
|
+
schema: newSchema
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return this.extend({
|
|
196
|
+
update: paginationUpdate(this, removeCursor)
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
get push() {
|
|
200
|
+
return this.extend({
|
|
201
|
+
method: 'POST',
|
|
202
|
+
schema: extractCollection(this.schema, s => s.push)
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
get unshift() {
|
|
206
|
+
return this.extend({
|
|
207
|
+
method: 'POST',
|
|
208
|
+
schema: extractCollection(this.schema, s => s.unshift)
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
get assign() {
|
|
212
|
+
return this.extend({
|
|
213
|
+
method: 'POST',
|
|
214
|
+
schema: extractCollection(this.schema, s => s.assign)
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
const tryParse = input => {
|
|
219
|
+
try {
|
|
220
|
+
return JSON.parse(input);
|
|
221
|
+
} catch (e) {
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsInBhZ2luYXRlZE1lcmdlIiwicGFnaW5hdGVkRmlsdGVyIiwicGFnaW5hdGlvblVwZGF0ZSIsInBhcmFtc1RvU3RyaW5nIiwiZ2V0VXJsQmFzZSIsImdldFVybFRva2VucyIsImlzUG9qbyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicmVzcG9uc2UiLCJwYXJzZVJlc3BvbnNlIiwicmVzIiwicHJvY2VzcyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJ2YWx1ZSIsInNpZGVFZmZlY3QiLCJtZXRob2QiLCJ1cmxQcmVmaXgiLCJpbmNsdWRlcyIsImdldCIsIl9fbmFtZSIsInBhdGgiLCJrZXkiLCJ1cmxCYXNlIiwidG9rZW5zIiwic2VhcmNoUGFyYW1zIiwia2V5cyIsImZvckVhY2giLCJrIiwiaGFzIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJhc3NpZ24iLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwiaW5zdGFuY2UiLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJfcmVmIiwicGFyYW1zIiwiX29iamVjdERlc3RydWN0dXJpbmdFbXB0eSIsImZvdW5kIiwiY3JlYXRlUGFnaW5hdGVkU2NoZW1hIiwiY29sbGVjdGlvbiIsImFkZFdpdGgiLCJuZXdTY2hlbWEiLCJ1cGRhdGUiLCJwdXNoIiwicyIsInVuc2hpZnQiLCJwYXJzZSIsImUiXSwic291cmNlcyI6WyIuLi9zcmMvUmVzdEVuZHBvaW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50IH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcbmltcG9ydCB7IHBhdGhUb1JlZ2V4cCB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IGV4dHJhY3RDb2xsZWN0aW9uIGZyb20gJy4vZXh0cmFjdENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IG1hcENvbGxlY3Rpb24gZnJvbSAnLi9tYXBDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBOZXR3b3JrRXJyb3IgZnJvbSAnLi9OZXR3b3JrRXJyb3IuanMnO1xuaW1wb3J0IHsgcGFnaW5hdGVkTWVyZ2UsIHBhZ2luYXRlZEZpbHRlciB9IGZyb20gJy4vcGFnaW5hdGVkQ29sbGVjdGlvbnMuanMnO1xuaW1wb3J0IHBhZ2luYXRpb25VcGRhdGUgZnJvbSAnLi9wYWdpbmF0aW9uVXBkYXRlLmpzJztcbmltcG9ydCBwYXJhbXNUb1N0cmluZyBmcm9tICcuL3BhcmFtc1RvU3RyaW5nLmpzJztcbmltcG9ydCB7IGdldFVybEJhc2UsIGdldFVybFRva2VucywgaXNQb2pvIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXN0RW5kcG9pbnQgZXh0ZW5kcyBFbmRwb2ludCB7XG4gICNoYXNCb2R5O1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgc3VwZXIoXG4gICAgICBvcHRpb25zLmZldGNoID8/XG4gICAgICAgIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgY29uc3QgdXJsUGFyYW1zID1cbiAgICAgICAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9O1xuICAgICAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLiNoYXNCb2R5ID8gYXJnc1thcmdzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoUmVzcG9uc2UoXG4gICAgICAgICAgICB0aGlzLnVybCh1cmxQYXJhbXMpLFxuICAgICAgICAgICAgdGhpcy5nZXRSZXF1ZXN0SW5pdChib2R5KSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB0aGlzLnBhcnNlUmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHRoaXMucHJvY2VzcyhyZXMsIC4uLmFyZ3MpKTtcbiAgICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICAvLyB3ZSB3YW50IHRvIHVzZSB0aGUgcHJvdG90eXBlIGNoYWluIGhlcmVcbiAgICBpZiAoXG4gICAgICAhKCdzaWRlRWZmZWN0JyBpbiB0aGlzKSB8fFxuICAgICAgKCdtZXRob2QnIGluIG9wdGlvbnMgJiYgISgnc2lkZUVmZmVjdCcgaW4gb3B0aW9ucykpXG4gICAgKSB7XG4gICAgICB0aGlzLnNpZGVFZmZlY3QgPVxuICAgICAgICBvcHRpb25zLm1ldGhvZCA9PT0gJ0dFVCcgfHwgb3B0aW9ucy5tZXRob2QgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnbmFtZScsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgLy8gdXNpbmcgJ2luJyB0byBlbnN1cmUgaW5oZXJpdGFuY2UgbG9va3VwXG4gICAgICAgIGlmICgnX19uYW1lJyBpbiB0aGlzKSByZXR1cm4gdGhpcy5fX25hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLnVybFByZWZpeCArIHRoaXMucGF0aDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBrZXkoLi4uYXJncykge1xuICAgIHJldHVybiBgJHt0aGlzLm1ldGhvZH0gJHt0aGlzLnVybChcbiAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9LFxuICAgICl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHVybCAqL1xuICB1cmwodXJsUGFyYW1zID0ge30pIHtcbiAgICBjb25zdCB1cmxCYXNlID0gZ2V0VXJsQmFzZSh0aGlzLnBhdGgpKHVybFBhcmFtcyk7XG4gICAgY29uc3QgdG9rZW5zID0gZ2V0VXJsVG9rZW5zKHRoaXMucGF0aCk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0ge307XG4gICAgT2JqZWN0LmtleXModXJsUGFyYW1zKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgaWYgKCF0b2tlbnMuaGFzKGspKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtc1trXSA9IHVybFBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9PyR7cGFyYW1zVG9TdHJpbmcoc2VhcmNoUGFyYW1zKX1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy51cmxQcmVmaXh9JHt1cmxCYXNlfWA7XG4gIH1cblxuICBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKiBJbml0IG9wdGlvbnMgZm9yIGZldGNoIC0gcnVuIGF0IGZldGNoICovXG4gIGdldFJlcXVlc3RJbml0KGJvZHkpIHtcbiAgICBjb25zdCBib2R5SXNQb2pvID0gaXNQb2pvKGJvZHkpO1xuICAgIGlmIChib2R5SXNQb2pvKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIGNvbnN0IGluaXQgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RJbml0LFxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICBib2R5LFxuICAgIH07XG4gICAgaWYgKCFib2R5IHx8IGJvZHlJc1Bvam8pIHtcbiAgICAgIGluaXQuaGVhZGVycyA9IHtcbiAgICAgICAgLy8gZGVmYXVsdCB0byBhcHBsaWNhdGlvbi9qc29uIGJ1dCBhbGxvdyB1c2VyIGV4cGxpY2l0IG92ZXJyaWRlc1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5pbml0LmhlYWRlcnMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpbml0LmhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoaW5pdC5oZWFkZXJzKTtcbiAgICByZXR1cm4gaW5pdDtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIEhUVFAgUmVzcG9uc2UgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAvLyBlbnN1cmUgQ09SUywgbmV0d29yayBkb3duLCBhbmQgcGFyc2UgZXJyb3JzIGFyZSBzdGlsbCBjYXVnaHQgYnkgTmV0d29ya0Vycm9yQm91bmRhcnlcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNTAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgLy8gdGhpcyBzaG91bGQgbm90IGhhdmUgYW55IGNvbnRlbnQgdG8gcmVhZFxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICBpZiAoIXJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2pzb24nKSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICAvLyBzdHJpbmcgb3IgJ25vdCBzZXQnIHNjaGVtYSwgYXJlIHZhbGlkXG4gICAgICAgIC8vIHdoZW4gb3ZlcnJpZGluZyBwcm9jZXNzIHRoZXkgbWlnaHQgaGFuZGxlIG90aGVyIGNhc2VzLCBzbyB3ZSBkb24ndCB3YW50IHRvIGJsb2NrIG9uIG91ciBsb2dpY1xuICAgICAgICBpZiAoXG4gICAgICAgICAgWydzdHJpbmcnLCAndW5kZWZpbmVkJ10uaW5jbHVkZXModHlwZW9mIHRoaXMuc2NoZW1hKSB8fFxuICAgICAgICAgIHRoaXMuc2NoZW1hID09PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5wcm9jZXNzICE9PSBSZXN0RW5kcG9pbnQucHJvdG90eXBlLnByb2Nlc3NcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB0ZXh0O1xuXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIGVycm9yLnN0YXR1cyA9IDQwNDtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIHRleHQgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAgIC8vIGN1c3RvbSBkZXYtb25seSBtZXNzYWdlcyBmb3IgbW9yZSBkZXRhaWxlZCBjYXVzZVxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2h0bWwnKSB8fFxuICAgICAgICAgICAgICB0ZXh0LnN0YXJ0c1dpdGgoJzwhZG9jdHlwZSBodG1sPicpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodHJ5UGFyc2UodGV4dCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFwiY29udGVudC10eXBlXCIgaGVhZGVyIGRvZXMgbm90IGluY2x1ZGUgXCJqc29uXCIsIGJ1dCBKU09OIHJlc3BvbnNlIGZvdW5kLlxuU2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM0NjI3IGZvciBpbmZvcm1hdGlvbiBvbiBKU09OIHJlc3BvbnNlc1xuXG5Vc2luZyBwYXJzZWQgSlNPTi5cbklmIHRleHQgY29udGVudCB3YXMgZXhwZWN0ZWQgc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGh0bWwgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfVxuVGhpcyBsaWtlbHkgbWVhbnMgbm8gQVBJIGVuZHBvaW50IHdhcyBjb25maWd1cmVkIGZvciB0aGlzIHJlcXVlc3QsIHJlc3VsdGluZyBpbiBhbiBIVE1MIGZhbGxiYWNrLlxuXG5SZXNwb25zZSAoZmlyc3QgMzAwIGNoYXJhY3RlcnMpOiAke3RleHQuc3Vic3RyaW5nKDAsIDMwMCl9YDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIHByb2Nlc3ModmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBlcnJvclBvbGljeShlcnJvcikge1xuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPj0gNTAwID8gJ3NvZnQnIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHBhdGhSZWdleCgpIHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHRoaXMucGF0aCk7XG4gIH1cblxuICB0ZXN0S2V5KGtleSkge1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubWV0aG9kICsgJyAnICsgdGhpcy51cmxQcmVmaXg7XG4gICAgaWYgKCFrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IGxhc3RRdWVzdGlvbiA9IGtleS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChsYXN0UXVlc3Rpb24gPT09IC0xKSBsYXN0UXVlc3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMucGF0aFJlZ2V4LnRlc3Qoa2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoLCBsYXN0UXVlc3Rpb24pKTtcbiAgfVxuXG4gIGV4dGVuZChvcHRpb25zKSB7XG4gICAgLy8gbWFrZSBhIGNvbnN0cnVjdG9yL3Byb3RvdHlwZSBiYXNlZCBvZmYgdGhpc1xuICAgIC8vIGV4dGVuZCBmcm9tIGl0IGFuZCBpbml0IHdpdGggb3B0aW9ucyBzZW50XG4gICAgY2xhc3MgRSBleHRlbmRzIHRoaXMuY29uc3RydWN0b3Ige31cblxuICAgIE9iamVjdC5hc3NpZ24oRS5wcm90b3R5cGUsIHRoaXMpO1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IEUoXG4gICAgICAvLyAgZmV0Y2ggZ2V0IG92ZXJyaWRkZW4gYnkgZnVuY3Rpb24gcHJvdG90eXBlLCBzbyB3ZSBtdXN0IHNldCBpdCBleHBsaWNpdGx5IGV2ZXJ5IHRpbWVcbiAgICAgIHsgZmV0Y2g6IHRoaXMuZmV0Y2gsIC4uLm9wdGlvbnMgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgcGFnaW5hdGVkKHJlbW92ZUN1cnNvcikge1xuICAgIGlmICh0eXBlb2YgcmVtb3ZlQ3Vyc29yID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gcmVtb3ZlQ3Vyc29yO1xuICAgICAgcmVtb3ZlQ3Vyc29yID0gKHsgLi4ucGFyYW1zIH0pID0+IHtcbiAgICAgICAgZGVsZXRlIHBhcmFtc1tmaWVsZE5hbWVdO1xuICAgICAgICByZXR1cm4gW3BhcmFtc107XG4gICAgICB9O1xuICAgIH1cbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBjb25zdCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEgPSBjb2xsZWN0aW9uID0+IHtcbiAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIHJldHVybiBjb2xsZWN0aW9uLmFkZFdpdGgocGFnaW5hdGVkTWVyZ2UsIHBhZ2luYXRlZEZpbHRlcihyZW1vdmVDdXJzb3IpKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRlbmQoeyBzY2hlbWE6IG5ld1NjaGVtYSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoeyB1cGRhdGU6IHBhZ2luYXRpb25VcGRhdGUodGhpcywgcmVtb3ZlQ3Vyc29yKSB9KTtcbiAgfVxuXG4gIGdldCBwdXNoKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5wdXNoKSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB1bnNoaWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy51bnNoaWZ0KSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhc3NpZ24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLmFzc2lnbiksXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgdHJ5UGFyc2UgPSBpbnB1dCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoaW5wdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxZQUFZLFFBQVEsZ0JBQWdCO0FBRTdDLE9BQU9DLGlCQUFpQixNQUFNLHdCQUF3QjtBQUN0RCxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLE9BQU9DLFlBQVksTUFBTSxtQkFBbUI7QUFDNUMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsMkJBQTJCO0FBQzNFLE9BQU9DLGdCQUFnQixNQUFNLHVCQUF1QjtBQUNwRCxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFDLFFBQUEsZ0JBQUFDLDBCQUFBO0FBSUEsZUFBZSxNQUFNQyxZQUFZLFNBQVNkLFFBQVEsQ0FBQztFQUVqRGUsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFFO0lBQUEsSUFBQUMsY0FBQTtJQUNuQixLQUFLLEVBQUFBLGNBQUEsR0FDSEQsT0FBTyxDQUFDRSxLQUFLLFlBQUFELGNBQUEsR0FDWCxVQUFVLEdBQUdFLElBQUksRUFBRTtNQUNqQixNQUFNQyxTQUFTLEdBQ2JDLDJCQUFBLEtBQUksRUFBQVQsUUFBQSxFQUFBQSxRQUFBLEtBQWFPLElBQUksQ0FBQ0csTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBR0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENB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
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVIZWxwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG4gIE5vcm1hbGl6ZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuZXhwb3J0IHR5cGUgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxcbiAgU291cmNlIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbiAgU2NoZW1hLFxuICBVcGRhdGVycyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuPiA9IChcbiAgc291cmNlOiBSZXN1bHRFbnRyeTxTb3VyY2UgJiB7IHNjaGVtYTogU2NoZW1hIH0+LFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPFNvdXJjZT5cbikgPT4ge1xuICBbSyBpbiBrZXlvZiBVcGRhdGVyc106IChyZXN1bHQ6IFVwZGF0ZXJzW0tdKSA9PiBVcGRhdGVyc1tLXTtcbn07XG5leHBvcnQgdHlwZSBSZXN1bHRFbnRyeTxFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIHsgc2NoZW1hOiBhbnkgfT4gPVxuICBFWydzY2hlbWEnXSBleHRlbmRzIHVuZGVmaW5lZCB8IG51bGxcbiAgICA/IFJlc29sdmVUeXBlPEU+XG4gICAgOiBOb3JtYWxpemU8RVsnc2NoZW1hJ10+O1xuIl0sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { compile, parse } from 'path-to-regexp';
|
|
2
|
+
const urlBaseCache = Object.create(null);
|
|
3
|
+
export function getUrlBase(path) {
|
|
4
|
+
if (!(path in urlBaseCache)) {
|
|
5
|
+
urlBaseCache[path] = compile(path, {
|
|
6
|
+
encode: encodeURIComponent,
|
|
7
|
+
validate: false
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
return urlBaseCache[path];
|
|
11
|
+
}
|
|
12
|
+
const urlTokensCache = Object.create(null);
|
|
13
|
+
export function getUrlTokens(path) {
|
|
14
|
+
if (!(path in urlTokensCache)) {
|
|
15
|
+
urlTokensCache[path] = new Set(parse(path).map(t => typeof t === 'string' ? t : `${t['name']}`));
|
|
16
|
+
}
|
|
17
|
+
return urlTokensCache[path];
|
|
18
|
+
}
|
|
19
|
+
const proto = Object.prototype;
|
|
20
|
+
const gpo = Object.getPrototypeOf;
|
|
21
|
+
export function isPojo(obj) {
|
|
22
|
+
if (obj === null || typeof obj !== 'object') {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return gpo(obj) === proto;
|
|
26
|
+
}
|
|
27
|
+
export function shortenPath(path) {
|
|
28
|
+
// this is for when not specifying a specific item like create/list
|
|
29
|
+
let shortUrlRoot = path.substring(0, path.lastIndexOf(':'));
|
|
30
|
+
if (shortUrlRoot[shortUrlRoot.length - 1] === '/') shortUrlRoot = shortUrlRoot.substring(0, shortUrlRoot.length - 1);
|
|
31
|
+
return shortUrlRoot;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlIiwicGFyc2UiLCJ1cmxCYXNlQ2FjaGUiLCJPYmplY3QiLCJjcmVhdGUiLCJnZXRVcmxCYXNlIiwicGF0aCIsImVuY29kZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInZhbGlkYXRlIiwidXJsVG9rZW5zQ2FjaGUiLCJnZXRVcmxUb2tlbnMiLCJTZXQiLCJtYXAiLCJ0IiwicHJvdG8iLCJwcm90b3R5cGUiLCJncG8iLCJnZXRQcm90b3R5cGVPZiIsImlzUG9qbyIsIm9iaiIsInNob3J0ZW5QYXRoIiwic2hvcnRVcmxSb290Iiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJsZW5ndGgiXSwic291cmNlcyI6WyIuLi9zcmMvUmVzdEhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGlsZSwgUGF0aEZ1bmN0aW9uLCBwYXJzZSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHsgU2hvcnRlblBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5cbmNvbnN0IHVybEJhc2VDYWNoZTogUmVjb3JkPHN0cmluZywgUGF0aEZ1bmN0aW9uPG9iamVjdD4+ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRVcmxCYXNlKHBhdGg6IHN0cmluZyk6IFBhdGhGdW5jdGlvbiB7XG4gIGlmICghKHBhdGggaW4gdXJsQmFzZUNhY2hlKSkge1xuICAgIHVybEJhc2VDYWNoZVtwYXRoXSA9IGNvbXBpbGUocGF0aCwge1xuICAgICAgZW5jb2RlOiBlbmNvZGVVUklDb21wb25lbnQsXG4gICAgICB2YWxpZGF0ZTogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHVybEJhc2VDYWNoZVtwYXRoXTtcbn1cblxuY29uc3QgdXJsVG9rZW5zQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFNldDxzdHJpbmc+PiA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VXJsVG9rZW5zKHBhdGg6IHN0cmluZyk6IFNldDxzdHJpbmc+IHtcbiAgaWYgKCEocGF0aCBpbiB1cmxUb2tlbnNDYWNoZSkpIHtcbiAgICB1cmxUb2tlbnNDYWNoZVtwYXRoXSA9IG5ldyBTZXQoXG4gICAgICBwYXJzZShwYXRoKS5tYXAodCA9PiAodHlwZW9mIHQgPT09ICdzdHJpbmcnID8gdCA6IGAke3RbJ25hbWUnXX1gKSksXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdXJsVG9rZW5zQ2FjaGVbcGF0aF07XG59XG5cbmNvbnN0IHByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcbmNvbnN0IGdwbyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUG9qbyhvYmo6IHVua25vd24pOiBvYmogaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGdwbyhvYmopID09PSBwcm90bztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+KHBhdGg6IFMpOiBTaG9ydGVuUGF0aDxTPiB7XG4gIC8vIHRoaXMgaXMgZm9yIHdoZW4gbm90IHNwZWNpZnlpbmcgYSBzcGVjaWZpYyBpdGVtIGxpa2UgY3JlYXRlL2xpc3RcbiAgbGV0IHNob3J0VXJsUm9vdDogU2hvcnRlblBhdGg8Uz4gPSBwYXRoLnN1YnN0cmluZyhcbiAgICAwLFxuICAgIHBhdGgubGFzdEluZGV4T2YoJzonKSxcbiAgKSBhcyBhbnk7XG4gIGlmIChzaG9ydFVybFJvb3Rbc2hvcnRVcmxSb290Lmxlbmd0aCAtIDFdID09PSAnLycpXG4gICAgc2hvcnRVcmxSb290ID0gc2hvcnRVcmxSb290LnN1YnN0cmluZyhcbiAgICAgIDAsXG4gICAgICBzaG9ydFVybFJvb3QubGVuZ3RoIC0gMSxcbiAgICApIGFzIFNob3J0ZW5QYXRoPFM+O1xuICByZXR1cm4gc2hvcnRVcmxSb290O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLEVBQWdCQyxLQUFLLFFBQVEsZ0JBQWdCO0FBSTdELE1BQU1DLFlBQWtELEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQztBQUM5RSxPQUFPLFNBQVNDLFVBQVVBLENBQUNDLElBQVksRUFBZ0I7RUFDckQsSUFBSSxFQUFFQSxJQUFJLElBQUlKLFlBQVksQ0FBQyxFQUFFO0lBQzNCQSxZQUFZLENBQUNJLElBQUksQ0FBQyxHQUFHTixPQUFPLENBQUNNLElBQUksRUFBRTtNQUNqQ0MsTUFBTSxFQUFFQyxrQkFBa0I7TUFDMUJDLFFBQVEsRUFBRTtJQUNaLENBQUMsQ0FBQztFQUNKO0VBQ0EsT0FBT1AsWUFBWSxDQUFDSSxJQUFJLENBQUM7QUFDM0I7QUFFQSxNQUFNSSxjQUEyQyxHQUFHUCxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkUsT0FBTyxTQUFTTyxZQUFZQSxDQUFDTCxJQUFZLEVBQWU7RUFDdEQsSUFBSSxFQUFFQSxJQUFJLElBQUlJLGNBQWMsQ0FBQyxFQUFFO0lBQzdCQSxjQUFjLENBQUNKLElBQUksQ0FBQyxHQUFHLElBQUlNLEdBQUcsQ0FDNUJYLEtBQUssQ0FBQ0ssSUFBSSxDQUFDLENBQUNPLEdBQUcsQ0FBQ0MsQ0FBQyxJQUFLLE9BQU9BLENBQUMsS0FBSyxRQUFRLEdBQUdBLENBQUMsR0FBSSxHQUFFQSxDQUFDLENBQUMsTUFBTSxDQUFFLEVBQUUsQ0FDbkUsQ0FBQztFQUNIO0VBQ0EsT0FBT0osY0FBYyxDQUFDSixJQUFJLENBQUM7QUFDN0I7QUFFQSxNQUFNUyxLQUFLLEdBQUdaLE1BQU0sQ0FBQ2EsU0FBUztBQUM5QixNQUFNQyxHQUFHLEdBQUdkLE1BQU0sQ0FBQ2UsY0FBYztBQUVqQyxPQUFPLFNBQVNDLE1BQU1BLENBQUNDLEdBQVksRUFBOEI7RUFDL0QsSUFBSUEsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQzNDLE9BQU8sS0FBSztFQUNkO0VBQ0EsT0FBT0gsR0FBRyxDQUFDRyxHQUFHLENBQUMsS0FBS0wsS0FBSztBQUMzQjtBQUVBLE9BQU8sU0FBU00sV0FBV0EsQ0FBbUJmLElBQU8sRUFBa0I7RUFDckU7RUFDQSxJQUFJZ0IsWUFBNEIsR0FBR2hCLElBQUksQ0FBQ2lCLFNBQVMsQ0FDL0MsQ0FBQyxFQUNEakIsSUFBSSxDQUFDa0IsV0FBVyxDQUFDLEdBQUcsQ0FDdEIsQ0FBUTtFQUNSLElBQUlGLFlBQVksQ0FBQ0EsWUFBWSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUMvQ0gsWUFBWSxHQUFHQSxZQUFZLENBQUNDLFNBQVMsQ0FDbkMsQ0FBQyxFQUNERCxZQUFZLENBQUNHLE1BQU0sR0FBRyxDQUN4QixDQUFtQjtFQUNyQixPQUFPSCxZQUFZO0FBQ3JCIn0=
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
2
|
+
const _excluded = ["path", "schema", "Endpoint", "optimistic"];
|
|
3
|
+
import { AbortOptimistic, schema } from '@data-client/endpoint';
|
|
4
|
+
import RestEndpoint from './RestEndpoint.js';
|
|
5
|
+
import { shortenPath } from './RestHelpers.js';
|
|
6
|
+
const {
|
|
7
|
+
Delete
|
|
8
|
+
} = schema;
|
|
9
|
+
|
|
10
|
+
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
11
|
+
*
|
|
12
|
+
* @see https://resthooks.io/rest/api/createResource
|
|
13
|
+
*/
|
|
14
|
+
export default function createResource(_ref) {
|
|
15
|
+
let {
|
|
16
|
+
path,
|
|
17
|
+
schema,
|
|
18
|
+
Endpoint = RestEndpoint,
|
|
19
|
+
optimistic
|
|
20
|
+
} = _ref,
|
|
21
|
+
extraOptions = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
22
|
+
const shortenedPath = shortenPath(path);
|
|
23
|
+
const getName = name => `${schema == null ? void 0 : schema.name}.${name}`;
|
|
24
|
+
const extraMutateOptions = Object.assign({}, extraOptions);
|
|
25
|
+
const extraPartialOptions = Object.assign({}, extraOptions);
|
|
26
|
+
const get = new Endpoint(Object.assign({}, extraOptions, {
|
|
27
|
+
path,
|
|
28
|
+
schema,
|
|
29
|
+
name: getName('get')
|
|
30
|
+
}));
|
|
31
|
+
if (optimistic) {
|
|
32
|
+
extraMutateOptions.getOptimisticResponse = optimisticUpdate;
|
|
33
|
+
extraPartialOptions.getOptimisticResponse = optimisticPartial(get);
|
|
34
|
+
}
|
|
35
|
+
const getList = new Endpoint(Object.assign({}, extraOptions, {
|
|
36
|
+
path: shortenedPath,
|
|
37
|
+
schema: [schema],
|
|
38
|
+
name: getName('getList')
|
|
39
|
+
}));
|
|
40
|
+
return {
|
|
41
|
+
get,
|
|
42
|
+
getList,
|
|
43
|
+
create: new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
44
|
+
path: shortenedPath,
|
|
45
|
+
schema,
|
|
46
|
+
method: 'POST',
|
|
47
|
+
name: getName('create')
|
|
48
|
+
})),
|
|
49
|
+
update: new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
50
|
+
path,
|
|
51
|
+
schema,
|
|
52
|
+
method: 'PUT',
|
|
53
|
+
name: getName('update')
|
|
54
|
+
})),
|
|
55
|
+
partialUpdate: new Endpoint(Object.assign({}, extraPartialOptions, {
|
|
56
|
+
path,
|
|
57
|
+
schema,
|
|
58
|
+
method: 'PATCH',
|
|
59
|
+
name: getName('partialUpdate')
|
|
60
|
+
})),
|
|
61
|
+
delete: new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
62
|
+
path,
|
|
63
|
+
schema: schema.process ? new Delete(schema) : schema,
|
|
64
|
+
method: 'DELETE',
|
|
65
|
+
name: getName('delete'),
|
|
66
|
+
process(res, params) {
|
|
67
|
+
return res && Object.keys(res).length ? res : params;
|
|
68
|
+
},
|
|
69
|
+
getOptimisticResponse: optimistic ? optimisticDelete : undefined
|
|
70
|
+
}))
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function optimisticUpdate(snap, params, body) {
|
|
74
|
+
return Object.assign({}, params, body);
|
|
75
|
+
}
|
|
76
|
+
function optimisticPartial(getEndpoint) {
|
|
77
|
+
return function (snap, params, body) {
|
|
78
|
+
const {
|
|
79
|
+
data
|
|
80
|
+
} = snap.getResponse(getEndpoint, params);
|
|
81
|
+
if (!data) throw new AbortOptimistic();
|
|
82
|
+
return Object.assign({}, params, data, body);
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function optimisticDelete(snap, params) {
|
|
86
|
+
return params;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydE9wdGltaXN0aWMiLCJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkRlbGV0ZSIsImNyZWF0ZVJlc291cmNlIiwiX3JlZiIsInBhdGgiLCJFbmRwb2ludCIsIm9wdGltaXN0aWMiLCJleHRyYU9wdGlvbnMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsIl9leGNsdWRlZCIsInNob3J0ZW5lZFBhdGgiLCJnZXROYW1lIiwibmFtZSIsImV4dHJhTXV0YXRlT3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImV4dHJhUGFydGlhbE9wdGlvbnMiLCJnZXQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJvcHRpbWlzdGljVXBkYXRlIiwib3B0aW1pc3RpY1BhcnRpYWwiLCJnZXRMaXN0IiwiY3JlYXRlIiwibWV0aG9kIiwidXBkYXRlIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsInByb2Nlc3MiLCJyZXMiLCJwYXJhbXMiLCJrZXlzIiwibGVuZ3RoIiwib3B0aW1pc3RpY0RlbGV0ZSIsInVuZGVmaW5lZCIsInNuYXAiLCJib2R5IiwiZ2V0RW5kcG9pbnQiLCJkYXRhIiwiZ2V0UmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlUmVzb3VyY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJvcnRPcHRpbWlzdGljLFxuICBzY2hlbWEsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUge1xuICBTY2hlbWEsXG4gIERlbm9ybWFsaXplLFxuICBFbmRwb2ludEV4dHJhT3B0aW9ucyxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IHsgUGF0aEFyZ3MsIFNob3J0ZW5QYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBOZXdHZXRFbmRwb2ludCxcbiAgTmV3TXV0YXRlRW5kcG9pbnQsXG4gIFJlc3RJbnN0YW5jZSxcbiAgUmVzdFR5cGVOb0JvZHksXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgRGVsZXRlIH0gPSBzY2hlbWE7XG5cbi8qKiBDcmVhdGVzIGNvbGxlY3Rpb24gb2YgRW5kcG9pbnRzIGZvciBjb21tb24gb3BlcmF0aW9ucyBvbiBhIGdpdmVuIGRhdGEvc2NoZW1hLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8VSBleHRlbmRzIHN0cmluZywgUyBleHRlbmRzIFNjaGVtYT4oe1xuICBwYXRoLFxuICBzY2hlbWEsXG4gIEVuZHBvaW50ID0gUmVzdEVuZHBvaW50LFxuICBvcHRpbWlzdGljLFxuICAuLi5leHRyYU9wdGlvbnNcbn06IHtcbiAgcmVhZG9ubHkgcGF0aDogVTtcbiAgcmVhZG9ubHkgc2NoZW1hOiBTO1xuICByZWFkb25seSBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIHVybFByZWZpeD86IHN0cmluZztcbiAgb3B0aW1pc3RpYz86IGJvb2xlYW47XG59ICYgRW5kcG9pbnRFeHRyYU9wdGlvbnMpOiBSZXNvdXJjZTxVLCBTPiB7XG4gIGNvbnN0IHNob3J0ZW5lZFBhdGggPSBzaG9ydGVuUGF0aChwYXRoKTtcbiAgY29uc3QgZ2V0TmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IGAkeyhzY2hlbWEgYXMgYW55KT8ubmFtZX0uJHtuYW1lfWA7XG4gIGNvbnN0IGV4dHJhTXV0YXRlT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGV4dHJhUGFydGlhbE9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBnZXQ6IE5ld0dldEVuZHBvaW50PHsgcGF0aDogVSB9LCBTPiA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFPcHRpb25zLFxuICAgIHBhdGgsXG4gICAgc2NoZW1hLFxuICAgIG5hbWU6IGdldE5hbWUoJ2dldCcpLFxuICB9KTtcbiAgaWYgKG9wdGltaXN0aWMpIHtcbiAgICAoZXh0cmFNdXRhdGVPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1VwZGF0ZTtcbiAgICAoZXh0cmFQYXJ0aWFsT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNQYXJ0aWFsKGdldCk7XG4gIH1cbiAgY29uc3QgZ2V0TGlzdCA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFPcHRpb25zLFxuICAgIHBhdGg6IHNob3J0ZW5lZFBhdGgsXG4gICAgc2NoZW1hOiBbc2NoZW1hXSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGdldCxcbiAgICBnZXRMaXN0LFxuICAgIGNyZWF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGg6IHNob3J0ZW5lZFBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpLFxuICAgIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6IChzY2hlbWEgYXMgYW55KS5wcm9jZXNzID8gbmV3IERlbGV0ZShzY2hlbWEgYXMgYW55KSA6IHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBuYW1lOiBnZXROYW1lKCdkZWxldGUnKSxcbiAgICAgIHByb2Nlc3MocmVzLCBwYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIHJlcyAmJiBPYmplY3Qua2V5cyhyZXMpLmxlbmd0aCA/IHJlcyA6IHBhcmFtcztcbiAgICAgIH0sXG4gICAgICBnZXRPcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWMgPyAob3B0aW1pc3RpY0RlbGV0ZSBhcyBhbnkpIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICB9IGFzIGFueTtcbn1cblxuZnVuY3Rpb24gb3B0aW1pc3RpY1VwZGF0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnksIGJvZHk6IGFueSkge1xuICByZXR1cm4ge1xuICAgIC4uLnBhcmFtcyxcbiAgICAvLyBldmVuIHRobyB3ZSBkb24ndCBhbHdheXMgaGF2ZSB0d28gYXJndW1lbnRzLCB0aGUgZXh0cmEgb25lIHdpbGwgc2ltcGx5IGJlIHVuZGVmaW5lZCB3aGljaCBzcHJlYWRzIGZpbmVcbiAgICAuLi5ib2R5LFxuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY1BhcnRpYWwoZ2V0RW5kcG9pbnQ6IE5ld0dldEVuZHBvaW50PGFueSwgYW55Pikge1xuICByZXR1cm4gZnVuY3Rpb24gKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBzbmFwLmdldFJlc3BvbnNlKGdldEVuZHBvaW50LCBwYXJhbXMpO1xuICAgIGlmICghZGF0YSkgdGhyb3cgbmV3IEFib3J0T3B0aW1pc3RpYygpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi5kYXRhLFxuICAgICAgLy8gZXZlbiB0aG8gd2UgZG9uJ3QgYWx3YXlzIGhhdmUgdHdvIGFyZ3VtZW50cywgdGhlIGV4dHJhIG9uZSB3aWxsIHNpbXBseSBiZSB1bmRlZmluZWQgd2hpY2ggc3ByZWFkcyBmaW5lXG4gICAgICAuLi5ib2R5LFxuICAgIH07XG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljRGVsZXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSkge1xuICByZXR1cm4gcGFyYW1zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlPFUgZXh0ZW5kcyBzdHJpbmcsIFMgZXh0ZW5kcyBTY2hlbWE+IHtcbiAgLyoqIEdldCBhIHNpbmd1bGFyIGl0ZW1cbiAgICpcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNnZXRcbiAgICovXG4gIGdldDogTmV3R2V0RW5kcG9pbnQ8eyBwYXRoOiBVIH0sIFM+O1xuICAvKiogR2V0IGEgbGlzdCBvZiBpdGVtXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjZ2V0bGlzdFxuICAgKi9cbiAgZ2V0TGlzdDogTmV3R2V0RW5kcG9pbnQ8XG4gICAge1xuICAgICAgcGF0aDogU2hvcnRlblBhdGg8VT47XG4gICAgICBzZWFyY2hQYXJhbXM6IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkO1xuICAgIH0sXG4gICAgU1tdXG4gID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVClcbiAgICpcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNjcmVhdGVcbiAgICovXG4gIGNyZWF0ZTogTmV3TXV0YXRlRW5kcG9pbnQ8XG4gICAgeyBwYXRoOiBTaG9ydGVuUGF0aDxVPjsgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxTPj4gfSxcbiAgICBTXG4gID47XG4gIC8qKiBVcGRhdGUgYW4gaXRlbSAoUFVUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3VwZGF0ZVxuICAgKi9cbiAgdXBkYXRlOiBOZXdNdXRhdGVFbmRwb2ludDx7IHBhdGg6IFU7IGJvZHk6IFBhcnRpYWw8RGVub3JtYWxpemU8Uz4+IH0sIFM+O1xuICAvKiogVXBkYXRlIGFuIGl0ZW0gKFBBVENIKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3BhcnRpYWx1cGRhdGVcbiAgICovXG4gIHBhcnRpYWxVcGRhdGU6IE5ld011dGF0ZUVuZHBvaW50PFxuICAgIHsgcGF0aDogVTsgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxTPj4gfSxcbiAgICBTXG4gID47XG4gIC8qKiBEZWxldGUgYW4gaXRlbSAoREVMRVRFKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI2RlbGV0ZVxuICAgKi9cbiAgZGVsZXRlOiBSZXN0VHlwZU5vQm9keTxcbiAgICBQYXRoQXJnczxVPixcbiAgICBTIGV4dGVuZHMgc2NoZW1hLkVudGl0eUludGVyZmFjZSAmIHsgcHJvY2VzczogYW55IH0gPyBzY2hlbWEuRGVsZXRlPFM+IDogUyxcbiAgICB1bmRlZmluZWQsXG4gICAgUGFydGlhbDxQYXRoQXJnczxVPj4sXG4gICAge1xuICAgICAgcGF0aDogVTtcbiAgICB9XG4gID47XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FDRUEsZUFBZSxFQUNmQyxNQUFNLFFBRUQsdUJB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
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { schema } from '@data-client/endpoint';
|
|
2
|
+
export default function extractCollection(s, mapper) {
|
|
3
|
+
if (typeof s !== 'object' || s === undefined || Array.isArray(s)) return;
|
|
4
|
+
if (s instanceof schema.Collection) {
|
|
5
|
+
return mapper(s);
|
|
6
|
+
}
|
|
7
|
+
const objCopy = Object.assign({}, s instanceof schema.Object ? s.schema : s);
|
|
8
|
+
for (const k in objCopy) {
|
|
9
|
+
if (!objCopy[k]) continue;
|
|
10
|
+
const collection = extractCollection(objCopy[k], mapper);
|
|
11
|
+
if (collection) return collection;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJleHRyYWN0Q29sbGVjdGlvbiIsInMiLCJtYXBwZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwib2JqQ29weSIsIk9iamVjdCIsImFzc2lnbiIsImsiLCJjb2xsZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2V4dHJhY3RDb2xsZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYSwgc2NoZW1hIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXh0cmFjdENvbGxlY3Rpb248XG4gIE0gZXh0ZW5kcyA8QyBleHRlbmRzIHNjaGVtYS5Db2xsZWN0aW9uPihjb2xsZWN0aW9uOiBDKSA9PiBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4+KHM6IFMsIG1hcHBlcjogTSk6IEV4dHJhY3RDb2xsZWN0aW9uPFM+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JyB8fCBzID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShzKSkgcmV0dXJuO1xuICBpZiAocyBpbnN0YW5jZW9mIHNjaGVtYS5Db2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuIG1hcHBlcihzIGFzIGFueSk7XG4gIH1cbiAgY29uc3Qgb2JqQ29weTogUmVjb3JkPHN0cmluZywgU2NoZW1hPiA9IHtcbiAgICAuLi4ocyBpbnN0YW5jZW9mIHNjaGVtYS5PYmplY3QgPyAocyBhcyBhbnkpLnNjaGVtYSA6IHMpLFxuICB9O1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqQ29weSkge1xuICAgIGlmICghb2JqQ29weVtrXSkgY29udGludWU7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IGV4dHJhY3RDb2xsZWN0aW9uKG9iakNvcHlba10sIG1hcHBlcik7XG4gICAgaWYgKGNvbGxlY3Rpb24pIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RDb2xsZWN0aW9uPFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQ+ID1cbiAgUyBleHRlbmRzIHNjaGVtYS5Db2xsZWN0aW9uSW50ZXJmYWNlXG4gICAgPyBTXG4gICAgOiBTIGV4dGVuZHMgc2NoZW1hLk9iamVjdDxpbmZlciBUPlxuICAgID8gRXh0cmFjdE9iamVjdDxUPlxuICAgIDogUyBleHRlbmRzIEV4Y2x1ZGU8U2NoZW1hLCB7IFtLOiBzdHJpbmddOiBhbnkgfT5cbiAgICA/IG5ldmVyXG4gICAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogU2NoZW1hIH1cbiAgICA/IEV4dHJhY3RPYmplY3Q8Uz5cbiAgICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBFeHRyYWN0T2JqZWN0PFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgW0sgaW4ga2V5b2YgU106IFNbS10gZXh0ZW5kcyBTY2hlbWEgPyBFeHRyYWN0Q29sbGVjdGlvbjxTW0tdPiA6IG5ldmVyO1xufVtrZXlvZiBTXTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBaUJBLE1BQU0sUUFBUSx1QkFBdUI7QUFFdEQsZUFBZSxTQUFTQyxpQkFBaUJBLENBR3ZDQyxDQUFJLEVBQUVDLE1BQVMsRUFBb0M7RUFDbkQsSUFBSSxPQUFPRCxDQUFDLEtBQUssUUFBUSxJQUFJQSxDQUFDLEtBQUtFLFNBQVMsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNKLENBQUMsQ0FBQyxFQUFFO0VBQ2xFLElBQUlBLENBQUMsWUFBWUYsTUFBTSxDQUFDTyxVQUFVLEVBQUU7SUFDbEMsT0FBT0osTUFBTSxDQUFDRCxDQUFRLENBQUM7RUFDekI7RUFDQSxNQUFNTSxPQUErQixHQUFBQyxNQUFBLENBQUFDLE1BQUEsS0FDL0JSLENBQUMsWUFBWUYsTUFBTSxDQUFDUyxNQUFNLEdBQUlQLENBQUMsQ0FBU0YsTUFBTSxHQUFHRSxDQUFDLENBQ3ZEO0VBQ0QsS0FBSyxNQUFNUyxDQUFDLElBQUlILE9BQU8sRUFBRTtJQUN2QixJQUFJLENBQUNBLE9BQU8sQ0FBQ0csQ0FBQyxDQUFDLEVBQUU7SUFDakIsTUFBTUMsVUFBVSxHQUFHWCxpQkFBaUIsQ0FBQ08sT0FBTyxDQUFDRyxDQUFDLENBQUMsRUFBRVIsTUFBTSxDQUFDO0lBQ3hELElBQUlTLFVBQVUsRUFBRSxPQUFPQSxVQUFVO0VBQ25DO0FBQ0YifQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { schema } from '@data-client/endpoint';
|
|
2
|
+
export default function getArrayPath(s) {
|
|
3
|
+
if (typeof s !== 'object') return false;
|
|
4
|
+
if (s === undefined || s instanceof schema.Array || Array.isArray(s)) {
|
|
5
|
+
return [];
|
|
6
|
+
}
|
|
7
|
+
const o = s instanceof schema.Object ? s.schema : s;
|
|
8
|
+
for (const k in o) {
|
|
9
|
+
if (!o[k]) continue;
|
|
10
|
+
const path = getArrayPath(o[k]);
|
|
11
|
+
if (path !== false) {
|
|
12
|
+
// mutation is ok because there is only one path
|
|
13
|
+
path.unshift(k);
|
|
14
|
+
return path;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJnZXRBcnJheVBhdGgiLCJzIiwidW5kZWZpbmVkIiwiQXJyYXkiLCJpc0FycmF5IiwibyIsIk9iamVjdCIsImsiLCJwYXRoIiwidW5zaGlmdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9nZXRBcnJheVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRBcnJheVBhdGgoczogU2NoZW1hIHwgdW5kZWZpbmVkKTogc3RyaW5nW10gfCBmYWxzZSB7XG4gIGlmICh0eXBlb2YgcyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcbiAgaWYgKHMgPT09IHVuZGVmaW5lZCB8fCBzIGluc3RhbmNlb2Ygc2NoZW1hLkFycmF5IHx8IEFycmF5LmlzQXJyYXkocykpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgY29uc3QgbzogUmVjb3JkPHN0cmluZywgU2NoZW1hPiA9XG4gICAgcyBpbnN0YW5jZW9mIHNjaGVtYS5PYmplY3QgPyAocyBhcyBhbnkpLnNjaGVtYSA6IHM7XG4gIGZvciAoY29uc3QgayBpbiBvKSB7XG4gICAgaWYgKCFvW2tdKSBjb250aW51ZTtcbiAgICBjb25zdCBwYXRoID0gZ2V0QXJyYXlQYXRoKG9ba10pO1xuICAgIGlmIChwYXRoICE9PSBmYWxzZSkge1xuICAgICAgLy8gbXV0YXRpb24gaXMgb2sgYmVjYXVzZSB0aGVyZSBpcyBvbmx5IG9uZSBwYXRoXG4gICAgICBwYXRoLnVuc2hpZnQoayk7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFpQkEsTUFBTSxRQUFRLHVCQUF1QjtBQUV0RCxlQUFlLFNBQVNDLFlBQVlBLENBQUNDLENBQXFCLEVBQW9CO0VBQzVFLElBQUksT0FBT0EsQ0FBQyxLQUFLLFFBQVEsRUFBRSxPQUFPLEtBQUs7RUFDdkMsSUFBSUEsQ0FBQyxLQUFLQyxTQUFTLElBQUlELENBQUMsWUFBWUYsTUFBTSxDQUFDSSxLQUFLLElBQUlBLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSCxDQUFDLENBQUMsRUFBRTtJQUNwRSxPQUFPLEVBQUU7RUFDWDtFQUNBLE1BQU1JLENBQXlCLEdBQzdCSixDQUFDLFlBQVlGLE1BQU0sQ0FBQ08sTUFBTSxHQUFJTCxDQUFDLENBQVNGLE1BQU0sR0FBR0UsQ0FBQztFQUNwRCxLQUFLLE1BQU1NLENBQUMsSUFBSUYsQ0FBQyxFQUFFO0lBQ2pCLElBQUksQ0FBQ0EsQ0FBQyxDQUFDRSxDQUFDLENBQUMsRUFBRTtJQUNYLE1BQU1DLElBQUksR0FBR1IsWUFBWSxDQUFDSyxDQUFDLENBQUNFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLElBQUlDLElBQUksS0FBSyxLQUFLLEVBQUU7TUFDbEI7TUFDQUEsSUFBSSxDQUFDQyxPQUFPLENBQUNGLENBQUMsQ0FBQztNQUNmLE9BQU9DLElBQUk7SUFDYjtFQUNGO0VBQ0EsT0FBTyxLQUFLO0FBQ2QifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Turns a collection of Endpoints (Resource) into a collection of hooks.
|
|
2
|
+
* This is useful for Endpoints that need hooks to prepare their fetch requests.
|
|
3
|
+
*
|
|
4
|
+
* @see https://resthooks.io/rest/api/hookifyResource
|
|
5
|
+
*/
|
|
6
|
+
export default function hookifyResource(resource, useRequestInit) {
|
|
7
|
+
const usingResource = {};
|
|
8
|
+
Object.keys(resource).forEach(key => {
|
|
9
|
+
const endpoint = resource[key];
|
|
10
|
+
if (endpoint.extend !== undefined) usingResource[`use${capitalizeFirstLetter(key)}`] = () => {
|
|
11
|
+
// this is false positive due to the dynamic nature of assignment
|
|
12
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
13
|
+
const requestInit = useRequestInit();
|
|
14
|
+
return endpoint.extend({
|
|
15
|
+
requestInit
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
return usingResource;
|
|
20
|
+
}
|
|
21
|
+
function capitalizeFirstLetter(s) {
|
|
22
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJob29raWZ5UmVzb3VyY2UiLCJyZXNvdXJjZSIsInVzZVJlcXVlc3RJbml0IiwidXNpbmdSZXNvdXJjZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiZW5kcG9pbnQiLCJleHRlbmQiLCJ1bmRlZmluZWQiLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJyZXF1ZXN0SW5pdCIsInMiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIl0sInNvdXJjZXMiOlsiLi4vc3JjL2hvb2tpZnlSZXNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludEludGVyZmFjZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9va2FibGVFbmRwb2ludEludGVyZmFjZSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlIHtcbiAgZXh0ZW5kKC4uLmFyZ3M6IGFueSk6IEhvb2thYmxlRW5kcG9pbnRJbnRlcmZhY2U7XG59XG5cbi8qKiBUdXJucyBhIGNvbGxlY3Rpb24gb2YgRW5kcG9pbnRzIChSZXNvdXJjZSkgaW50byBhIGNvbGxlY3Rpb24gb2YgaG9va3MuXG4gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgRW5kcG9pbnRzIHRoYXQgbmVlZCBob29rcyB0byBwcmVwYXJlIHRoZWlyIGZldGNoIHJlcXVlc3RzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvaG9va2lmeVJlc291cmNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGhvb2tpZnlSZXNvdXJjZTxSIGV4dGVuZHMge30+KFxuICByZXNvdXJjZTogUixcbiAgdXNlUmVxdWVzdEluaXQ6ICgpID0+IFJlcXVlc3RJbml0LFxuKTogSG9va1Jlc291cmNlPFI+IHtcbiAgY29uc3QgdXNpbmdSZXNvdXJjZTogUmVjb3JkPHN0cmluZywgKCkgPT4gSG9va2FibGVFbmRwb2ludEludGVyZmFjZT4gPSB7fTtcbiAgT2JqZWN0LmtleXMocmVzb3VyY2UpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IChyZXNvdXJjZSBhcyBhbnkpW2tleV07XG4gICAgaWYgKGVuZHBvaW50LmV4dGVuZCAhPT0gdW5kZWZpbmVkKVxuICAgICAgdXNpbmdSZXNvdXJjZVtgdXNlJHtjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KX1gXSA9ICgpID0+IHtcbiAgICAgICAgLy8gdGhpcyBpcyBmYWxzZSBwb3NpdGl2ZSBkdWUgdG8gdGhlIGR5bmFtaWMgbmF0dXJlIG9mIGFzc2lnbm1lbnRcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgIGNvbnN0IHJlcXVlc3RJbml0ID0gdXNlUmVxdWVzdEluaXQoKTtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50LmV4dGVuZCh7IHJlcXVlc3RJbml0IH0pO1xuICAgICAgfTtcbiAgfSk7XG4gIHJldHVybiB1c2luZ1Jlc291cmNlIGFzIGFueTtcbn1cblxuZXhwb3J0IHR5cGUgSG9va1Jlc291cmNlPFIgZXh0ZW5kcyB7fT4gPSB7XG4gIFtLIGluIEV4dHJhY3Q8a2V5b2YgUiwgc3RyaW5nPiBhcyBgdXNlJHtDYXBpdGFsaXplPEs+fWBdOiAoKSA9PiBSW0tdO1xufTtcblxuZnVuY3Rpb24gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHM6IHN0cmluZykge1xuICByZXR1cm4gcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHMuc2xpY2UoMSk7XG59XG4iXSwibWFwcGluZ3MiOiJBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFNBQVNBLGVBQWVBLENBQ3JDQyxRQUFXLEVBQ1hDLGNBQWlDLEVBQ2hCO0VBQ2pCLE1BQU1DLGFBQThELEdBQUcsQ0FBQyxDQUFDO0VBQ3pFQyxNQUFNLENBQUNDLElBQUksQ0FBQ0osUUFBUSxDQUFDLENBQUNLLE9BQU8sQ0FBQ0MsR0FBRyxJQUFJO0lBQ25DLE1BQU1DLFFBQVEsR0FBSVAsUUFBUSxDQUFTTSxHQUFHLENBQUM7SUFDdkMsSUFBSUMsUUFBUSxDQUFDQyxNQUFNLEtBQUtDLFNBQVMsRUFDL0JQLGFBQWEsQ0FBRSxNQUFLUSxxQkFBcUIsQ0FBQ0osR0FBRyxDQUFFLEVBQUMsQ0FBQyxHQUFHLE1BQU07TUFDeEQ7TUFDQTtNQUNBLE1BQU1LLFdBQVcsR0FBR1YsY0FBYyxDQUFDLENBQUM7TUFDcEMsT0FBT00sUUFBUSxDQUFDQyxNQUFNLENBQUM7UUFBRUc7TUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztFQUNMLENBQUMsQ0FBQztFQUNGLE9BQU9ULGFBQWE7QUFDdEI7QUFNQSxTQUFTUSxxQkFBcUJBLENBQUNFLENBQVMsRUFBRTtFQUN4QyxPQUFPQSxDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUMsR0FBR0YsQ0FBQyxDQUFDRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQy9DIn0=
|
package/legacy/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {
|
|
2
|
+
return Object.prototype.hasOwnProperty.call(it, key);
|
|
3
|
+
};
|
|
4
|
+
export { default as RestEndpoint } from './RestEndpoint.js';
|
|
5
|
+
export { default as createResource } from './createResource.js';
|
|
6
|
+
export { default as hookifyResource } from './hookifyResource.js';
|
|
7
|
+
export { default as NetworkError } from './NetworkError.js';
|
|
8
|
+
export { default as paginationUpdate } from './paginationUpdate.js';
|
|
9
|
+
export * from '@data-client/endpoint';
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlZmF1bHQiLCJSZXN0RW5kcG9pbnQiLCJjcmVhdGVSZXNvdXJjZSIsImhvb2tpZnlSZXNvdXJjZSIsIk5ldHdvcmtFcnJvciIsInBhZ2luYXRpb25VcGRhdGUiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXN0RW5kcG9pbnQgfSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgTmV3R2V0RW5kcG9pbnQsXG4gIE5ld011dGF0ZUVuZHBvaW50LFxuICBEZWZhdWx0cyxcbiAgUmVzdEdlbmVyaWNzLFxuICBGZXRjaEdldCxcbiAgRmV0Y2hNdXRhdGUsXG4gIFJlc3RGZXRjaCxcbiAgUmVzdFR5cGUsXG4gIFJlc3RJbnN0YW5jZSxcbiAgS2V5b2ZSZXN0RW5kcG9pbnQsXG4gIFJlc3RFbmRwb2ludENvbnN0cnVjdG9yT3B0aW9ucyxcbiAgQWRkRW5kcG9pbnQsXG4gIFBhZ2luYXRpb25GaWVsZEVuZHBvaW50LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVJlc291cmNlIH0gZnJvbSAnLi9jcmVhdGVSZXNvdXJjZS5qcyc7XG5leHBvcnQgdHlwZSB7IFJlc291cmNlIH0gZnJvbSAnLi9jcmVhdGVSZXNvdXJjZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGhvb2tpZnlSZXNvdXJjZSB9IGZyb20gJy4vaG9va2lmeVJlc291cmNlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgSG9va1Jlc291cmNlLFxuICBIb29rYWJsZUVuZHBvaW50SW50ZXJmYWNlLFxufSBmcm9tICcuL2hvb2tpZnlSZXNvdXJjZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5ldHdvcmtFcnJvciB9IGZyb20gJy4vTmV0d29ya0Vycm9yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFnaW5hdGlvblVwZGF0ZSB9IGZyb20gJy4vcGFnaW5hdGlvblVwZGF0ZS5qcyc7XG5leHBvcnQgdHlwZSB7IE9wdGlvbnNUb0Z1bmN0aW9uIH0gZnJvbSAnLi9PcHRpb25zVG9GdW5jdGlvbi5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIFNob3J0ZW5QYXRoLFxuICBQYXRoQXJncyxcbiAgUGF0aEtleXMsXG4gIEtleXNUb0FyZ3MsXG4gIFBhdGhBcmdzQW5kU2VhcmNoLFxufSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5cbmV4cG9ydCAqIGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE1BQU0sR0FDWEQsTUFBTSxDQUFDQyxNQUFNLElBQ2IsMEJBQTJCLFNBQVNBLE1BQU1BLENBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFO0VBQ2xELE9BQU9ILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osRUFBRSxFQUFFQyxHQUFHLENBQUM7QUFDdEQsQ0FBQztBQUNILFNBQVNJLE9BQU8sSUFBSUMsWUFBWSxRQUFRLG1CQUFtQjtBQWtCM0QsU0FBU0QsT0FBTyxJQUFJRSxjQUFjLFFBQVEscUJBQXFCO0FBRS9ELFNBQVNGLE9BQU8sSUFBSUcsZUFBZSxRQUFRLHNCQUFzQjtBQUtqRSxTQUFTSCxPQUFPLElBQUlJLFlBQVksUUFBUSxtQkFBbUI7QUFDM0QsU0FBU0osT0FBTyxJQUFJSyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFVbkUsY0FBYyx1QkFBdUIifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { schema } from '@data-client/endpoint';
|
|
2
|
+
export default function mapCollection(s, mapper) {
|
|
3
|
+
if (typeof s !== 'object' || s === undefined) return s;
|
|
4
|
+
if (s instanceof schema.Collection) {
|
|
5
|
+
return mapper(s);
|
|
6
|
+
}
|
|
7
|
+
const objCopy = Object.assign({}, s instanceof schema.Object ? s.schema : s);
|
|
8
|
+
for (const k in objCopy) {
|
|
9
|
+
if (!objCopy[k]) continue;
|
|
10
|
+
objCopy[k] = mapCollection(objCopy[k], mapper);
|
|
11
|
+
}
|
|
12
|
+
return objCopy;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJtYXBDb2xsZWN0aW9uIiwicyIsIm1hcHBlciIsInVuZGVmaW5lZCIsIkNvbGxlY3Rpb24iLCJvYmpDb3B5IiwiT2JqZWN0IiwiYXNzaWduIiwiayJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXBDb2xsZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYSwgc2NoZW1hIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFwQ29sbGVjdGlvbjxcbiAgTSBleHRlbmRzIDxDIGV4dGVuZHMgc2NoZW1hLkNvbGxlY3Rpb24+KGNvbGxlY3Rpb246IEMpID0+IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCxcbj4oXG4gIHM6IFMsXG4gIG1hcHBlcjogTSxcbik6IFMgZXh0ZW5kcyBzY2hlbWEuQ29sbGVjdGlvblxuICA/IFJldHVyblR5cGU8dHlwZW9mIG1hcHBlcjxTPj5cbiAgOiBTIGV4dGVuZHMgc2NoZW1hLk9iamVjdDxpbmZlciBUPlxuICA/IHtcbiAgICAgIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgU2NoZW1hXG4gICAgICAgID8gdHlwZW9mIG1hcENvbGxlY3Rpb248TSwgVFtLXT5cbiAgICAgICAgOiBUW0tdO1xuICAgIH1cbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogYW55IH1cbiAgPyB7XG4gICAgICBbSyBpbiBrZXlvZiBTXTogU1tLXSBleHRlbmRzIFNjaGVtYVxuICAgICAgICA/IHR5cGVvZiBtYXBDb2xsZWN0aW9uPE0sIFNbS10+XG4gICAgICAgIDogU1tLXTtcbiAgICB9XG4gIDogUyB7XG4gIGlmICh0eXBlb2YgcyAhPT0gJ29iamVjdCcgfHwgcyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gcyBhcyBhbnk7XG4gIGlmIChzIGluc3RhbmNlb2Ygc2NoZW1hLkNvbGxlY3Rpb24pIHtcbiAgICByZXR1cm4gbWFwcGVyKHMgYXMgYW55KTtcbiAgfVxuICBjb25zdCBvYmpDb3B5OiBSZWNvcmQ8c3RyaW5nLCBTY2hlbWE+ID0ge1xuICAgIC4uLihzIGluc3RhbmNlb2Ygc2NoZW1hLk9iamVjdCA/IChzIGFzIGFueSkuc2NoZW1hIDogcyksXG4gIH07XG4gIGZvciAoY29uc3QgayBpbiBvYmpDb3B5KSB7XG4gICAgaWYgKCFvYmpDb3B5W2tdKSBjb250aW51ZTtcbiAgICBvYmpDb3B5W2tdID0gbWFwQ29sbGVjdGlvbihvYmpDb3B5W2tdLCBtYXBwZXIpIGFzIGFueTtcbiAgfVxuICByZXR1cm4gb2JqQ29weSBhcyBhbnk7XG59XG5cbnR5cGUgTWFwQ29sbGVjdGlvbjxcbiAgTSBleHRlbmRzIDxDIGV4dGVuZHMgc2NoZW1hLkNvbGxlY3Rpb24+KGNvbGxlY3Rpb246IEMpID0+IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCxcbj4gPSBTIGV4dGVuZHMgc2NoZW1hLkNvbGxlY3Rpb25cbiAgPyBSZXR1cm5UeXBlPE0+XG4gIDogUyBleHRlbmRzIHNjaGVtYS5PYmplY3Q8aW5mZXIgVD5cbiAgPyBNYXBDb2xsZWN0aW9uPE0sIFQ+XG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IGFueSB9XG4gID8gTWFwT2JqZWN0PE0sIFM+XG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIE1hcE9iamVjdDxcbiAgTSBleHRlbmRzIChjb2xsZWN0aW9uOiBzY2hlbWEuQ29sbGVjdGlvbikgPT4gYW55LFxuICBTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pixcbj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gTWFwQ29sbGVjdGlvbjxNLCBTW0tdPiA6IFNbS107XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFpQkEsTUFBTSxRQUFRLHVCQUF1QjtBQUV0RCxlQUFlLFNBQVNDLGFBQWFBLENBSW5DQyxDQUFJLEVBQ0pDLE1BQVMsRUFlTDtFQUNKLElBQUksT0FBT0QsQ0FBQyxLQUFLLFFBQVEsSUFBSUEsQ0FBQyxLQUFLRSxTQUFTLEVBQUUsT0FBT0YsQ0FBQztFQUN0RCxJQUFJQSxDQUFDLFlBQVlGLE1BQU0sQ0FBQ0ssVUFBVSxFQUFFO0lBQ2xDLE9BQU9GLE1BQU0sQ0FBQ0QsQ0FBUSxDQUFDO0VBQ3pCO0VBQ0EsTUFBTUksT0FBK0IsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEtBQy9CTixDQUFDLFlBQVlGLE1BQU0sQ0FBQ08sTUFBTSxHQUFJTCxDQUFDLENBQVNGLE1BQU0sR0FBR0UsQ0FBQyxDQUN2RDtFQUNELEtBQUssTUFBTU8sQ0FBQyxJQUFJSCxPQUFPLEVBQUU7SUFDdkIsSUFBSSxDQUFDQSxPQUFPLENBQUNHLENBQUMsQ0FBQyxFQUFFO0lBQ2pCSCxPQUFPLENBQUNHLENBQUMsQ0FBQyxHQUFHUixhQUFhLENBQUNLLE9BQU8sQ0FBQ0csQ0FBQyxDQUFDLEVBQUVOLE1BQU0sQ0FBUTtFQUN2RDtFQUNBLE9BQU9HLE9BQU87QUFDaEIifQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL25leHQvT3B0aW9uc1RvRnVuY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGZXRjaEZ1bmN0aW9uLCBSZXNvbHZlVHlwZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB7XG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RGZXRjaCxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuLi9wYXRoVHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSBPcHRpb25zVG9GdW5jdGlvbjxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlICYgeyBib2R5PzogYW55IH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9ICdwYXRoJyBleHRlbmRzIGtleW9mIE9cbiAgPyBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE9cbiAgICAgICAgPyBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+XG4gICAgPlxuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE9cbiAgPyBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE9cbiAgICAgICAgPyBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9bJ2JvZHknXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj5cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPXG4gID8gUmVzdEZldGNoPFxuICAgICAgT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBFWydib2R5J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+XG4gICAgPlxuICA6IChcbiAgICAgIHRoaXM6IFRoaXNQYXJhbWV0ZXJUeXBlPEY+LFxuICAgICAgLi4uYXJnczogUGFyYW1ldGVyczxGPlxuICAgICkgPT4gUHJvbWlzZTxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj5cbiAgICA+O1xuIl0sIm1hcHBpbmdzIjoiIn0=
|