@data-client/core 0.10.0 → 0.11.4
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 +2 -1
- package/dist/index.js +122 -89
- package/dist/index.umd.min.js +1 -1
- package/legacy/actionTypes.js +1 -1
- package/legacy/actions.js +1 -1
- package/legacy/controller/AbortOptimistic.js +2 -0
- package/legacy/controller/Controller.js +108 -76
- package/legacy/controller/createExpireAll.js +1 -1
- package/legacy/controller/createFetch.js +1 -1
- package/legacy/controller/createInvalidate.js +1 -1
- package/legacy/controller/createInvalidateAll.js +1 -1
- package/legacy/controller/createOptimistic.js +1 -1
- package/legacy/controller/createReset.js +1 -1
- package/legacy/controller/createSet.js +1 -1
- package/legacy/controller/createSubscription.js +1 -1
- package/legacy/controller/ensurePojo.js +1 -1
- package/legacy/controller/types.js +1 -1
- package/legacy/index.js +1 -1
- package/legacy/internal.js +2 -2
- package/legacy/manager/ConnectionListener.js +1 -1
- package/legacy/manager/DefaultConnectionListener.js +1 -1
- package/legacy/manager/DevtoolsManager.js +1 -1
- package/legacy/manager/LogoutManager.js +1 -1
- package/legacy/manager/NetworkManager.js +1 -1
- package/legacy/manager/PollingSubscription.js +1 -1
- package/legacy/manager/SubscriptionManager.js +1 -1
- package/legacy/manager/applyManager.js +1 -1
- package/legacy/manager/devtoolsTypes.js +1 -1
- package/legacy/manager/index.js +1 -1
- package/legacy/middlewareTypes.js +1 -1
- package/legacy/next/index.js +1 -1
- package/legacy/state/RIC.js +1 -1
- package/legacy/state/reducer/createReducer.js +4 -4
- package/legacy/state/reducer/expireReducer.js +1 -1
- package/legacy/state/reducer/fetchReducer.js +1 -1
- package/legacy/state/reducer/invalidateReducer.js +5 -5
- package/legacy/state/reducer/setReducer.js +7 -7
- package/legacy/state/selectMeta.js +1 -1
- package/legacy/types.js +1 -1
- package/lib/actionTypes.js +1 -1
- package/lib/actions.d.ts +1 -1
- package/lib/actions.d.ts.map +1 -1
- package/lib/actions.js +1 -1
- package/lib/controller/AbortOptimistic.d.ts +3 -0
- package/lib/controller/AbortOptimistic.d.ts.map +1 -0
- package/lib/controller/AbortOptimistic.js +2 -0
- package/lib/controller/Controller.d.ts +36 -11
- package/lib/controller/Controller.d.ts.map +1 -1
- package/lib/controller/Controller.js +108 -76
- package/lib/controller/createExpireAll.js +1 -1
- package/lib/controller/createFetch.js +1 -1
- package/lib/controller/createInvalidate.js +1 -1
- package/lib/controller/createInvalidateAll.js +1 -1
- package/lib/controller/createOptimistic.js +1 -1
- package/lib/controller/createReset.js +1 -1
- package/lib/controller/createSet.js +1 -1
- package/lib/controller/createSubscription.js +1 -1
- package/lib/controller/ensurePojo.js +1 -1
- package/lib/controller/types.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/internal.d.ts +1 -1
- package/lib/internal.d.ts.map +1 -1
- package/lib/internal.js +2 -2
- package/lib/manager/ConnectionListener.js +1 -1
- package/lib/manager/DefaultConnectionListener.js +1 -1
- package/lib/manager/DevtoolsManager.js +1 -1
- package/lib/manager/LogoutManager.js +1 -1
- package/lib/manager/NetworkManager.js +1 -1
- package/lib/manager/PollingSubscription.js +1 -1
- package/lib/manager/SubscriptionManager.js +1 -1
- package/lib/manager/applyManager.js +1 -1
- package/lib/manager/devtoolsTypes.js +1 -1
- package/lib/manager/index.js +1 -1
- package/lib/middlewareTypes.js +1 -1
- package/lib/next/index.js +1 -1
- package/lib/state/RIC.js +1 -1
- package/lib/state/reducer/createReducer.js +4 -4
- package/lib/state/reducer/expireReducer.d.ts +1 -1
- package/lib/state/reducer/expireReducer.js +1 -1
- package/lib/state/reducer/fetchReducer.js +1 -1
- package/lib/state/reducer/invalidateReducer.d.ts +1 -1
- package/lib/state/reducer/invalidateReducer.js +6 -6
- package/lib/state/reducer/setReducer.d.ts.map +1 -1
- package/lib/state/reducer/setReducer.js +8 -8
- package/lib/state/selectMeta.js +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +1 -1
- package/package.json +3 -3
- package/src/actions.ts +1 -1
- package/src/controller/AbortOptimistic.ts +1 -0
- package/src/controller/Controller.ts +185 -63
- package/src/controller/__tests__/Controller.ts +2 -4
- package/src/controller/__tests__/__snapshots__/get.ts.snap +120 -0
- package/src/controller/__tests__/get.ts +285 -0
- package/src/controller/__tests__/getResponse.ts +2 -2
- package/src/index.ts +3 -1
- package/src/internal.ts +1 -1
- package/src/manager/__tests__/logoutManager.ts +0 -2
- package/src/state/__tests__/__snapshots__/reducer.ts.snap +4 -4
- package/src/state/__tests__/reducer.ts +25 -25
- package/src/state/reducer/createReducer.ts +3 -3
- package/src/state/reducer/invalidateReducer.ts +4 -4
- package/src/state/reducer/setReducer.ts +7 -6
- package/src/types.ts +3 -1
- package/ts3.4/actions.d.ts +1 -1
- package/ts3.4/controller/AbortOptimistic.d.ts +3 -0
- package/ts3.4/controller/Controller.d.ts +47 -19
- package/ts3.4/index.d.ts +1 -1
- package/ts3.4/internal.d.ts +1 -1
- package/ts3.4/state/reducer/expireReducer.d.ts +1 -1
- package/ts3.4/state/reducer/invalidateReducer.d.ts +1 -1
- package/ts3.4/types.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { ExpiryStatus, MemoCache, isEntity, denormalize, validateQueryKey } from '@data-client/normalizr';
|
|
2
|
+
import AbortOptimistic from './AbortOptimistic.js';
|
|
3
3
|
import createExpireAll from './createExpireAll.js';
|
|
4
4
|
import createFetch from './createFetch.js';
|
|
5
5
|
import createInvalidate from './createInvalidate.js';
|
|
@@ -38,13 +38,14 @@ export default class Controller {
|
|
|
38
38
|
* @see https://dataclient.io/docs/api/Controller#getState
|
|
39
39
|
*/
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Singleton to maintain referential equality between calls
|
|
43
|
+
*/
|
|
44
|
+
|
|
41
45
|
constructor({
|
|
42
46
|
dispatch = unsetDispatch,
|
|
43
47
|
getState = unsetState,
|
|
44
|
-
|
|
45
|
-
entities: {},
|
|
46
|
-
results: {}
|
|
47
|
-
}
|
|
48
|
+
memo = new MemoCache()
|
|
48
49
|
} = {}) {
|
|
49
50
|
/*************** Action Dispatchers ***************/
|
|
50
51
|
/**
|
|
@@ -169,75 +170,96 @@ export default class Controller {
|
|
|
169
170
|
const args = rest.slice(0, rest.length - 1);
|
|
170
171
|
const key = endpoint.key(...args);
|
|
171
172
|
const meta = selectMeta(state, key);
|
|
172
|
-
const
|
|
173
|
-
if (
|
|
173
|
+
const error = state.endpoints[key];
|
|
174
|
+
if (error !== undefined && (meta == null ? void 0 : meta.errorPolicy) === 'soft') return;
|
|
174
175
|
return meta == null ? void 0 : meta.error;
|
|
175
176
|
};
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
177
|
+
this.dispatch = dispatch;
|
|
178
|
+
this.getState = getState;
|
|
179
|
+
this.memo = memo;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Gets the (globally referentially stable) response for a given endpoint/args pair from state given.
|
|
183
|
+
* @see https://dataclient.io/docs/api/Controller#getResponse
|
|
184
|
+
*/
|
|
185
|
+
getResponse(endpoint, ...rest) {
|
|
186
|
+
const state = rest[rest.length - 1];
|
|
187
|
+
// this is typescript generics breaking
|
|
188
|
+
const args = rest.slice(0, rest.length - 1)
|
|
189
|
+
// handle FormData
|
|
190
|
+
.map(ensurePojo);
|
|
191
|
+
const isActive = args.length !== 1 || args[0] !== null;
|
|
192
|
+
const key = isActive ? endpoint.key(...args) : '';
|
|
193
|
+
const cacheEndpoints = isActive ? state.endpoints[key] : undefined;
|
|
194
|
+
const schema = endpoint.schema;
|
|
195
|
+
const meta = selectMeta(state, key);
|
|
196
|
+
let expiresAt = meta == null ? void 0 : meta.expiresAt;
|
|
197
|
+
// if we have no endpoint entry, and our endpoint has a schema - try querying the store
|
|
198
|
+
const shouldQuery = cacheEndpoints === undefined && schema !== undefined;
|
|
199
|
+
const input = shouldQuery ?
|
|
200
|
+
// nothing in endpoints cache, so try querying if we have a schema to do so
|
|
201
|
+
this.memo.buildQueryKey(key, schema, args, state.entities, state.indexes) : cacheEndpoints;
|
|
202
|
+
if (!isActive) {
|
|
203
|
+
// when not active simply return the query input without denormalizing
|
|
204
|
+
return {
|
|
205
|
+
data: input,
|
|
206
|
+
expiryStatus: ExpiryStatus.Valid,
|
|
207
|
+
expiresAt: Infinity
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
let isInvalid = false;
|
|
211
|
+
if (shouldQuery) {
|
|
212
|
+
isInvalid = !validateQueryKey(input);
|
|
213
|
+
} else if (!schema || !schemaHasEntity(schema)) {
|
|
214
|
+
return {
|
|
215
|
+
data: cacheEndpoints,
|
|
216
|
+
expiryStatus: meta != null && meta.invalidated ? ExpiryStatus.Invalid : cacheEndpoints && !endpoint.invalidIfStale ? ExpiryStatus.Valid : ExpiryStatus.InvalidIfStale,
|
|
217
|
+
expiresAt: expiresAt || 0
|
|
218
|
+
};
|
|
219
|
+
}
|
|
214
220
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const invalidDenormalize = typeof data === 'symbol';
|
|
221
|
+
// second argument is false if any entities are missing
|
|
222
|
+
// eslint-disable-next-line prefer-const
|
|
223
|
+
const {
|
|
224
|
+
data,
|
|
225
|
+
paths
|
|
226
|
+
} = this.memo.denormalize(input, schema, state.entities, args);
|
|
222
227
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
228
|
+
// note: isInvalid can only be true if shouldQuery is true
|
|
229
|
+
if (!expiresAt && isInvalid) expiresAt = 1;
|
|
230
|
+
return this.getSchemaResponse(data, paths, state.entityMeta, expiresAt, endpoint.invalidIfStale || isInvalid, meta);
|
|
231
|
+
}
|
|
227
232
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
233
|
+
/**
|
|
234
|
+
* Queries the store for a Querable schema
|
|
235
|
+
* @see https://dataclient.io/docs/api/Controller#get
|
|
236
|
+
*/
|
|
237
|
+
get(schema, ...rest) {
|
|
238
|
+
const state = rest[rest.length - 1];
|
|
239
|
+
// this is typescript generics breaking
|
|
240
|
+
const args = rest.slice(0, rest.length - 1).map(ensurePojo);
|
|
241
|
+
|
|
242
|
+
// NOTE: different orders can result in cache busting here; but since it's just a perf penalty we will allow for now
|
|
243
|
+
const key = JSON.stringify(args);
|
|
244
|
+
return this.memo.query(key, schema, args, state.entities, state.indexes);
|
|
245
|
+
}
|
|
246
|
+
getSchemaResponse(data, paths, entityMeta, expiresAt, invalidIfStale, meta = {}) {
|
|
247
|
+
const invalidDenormalize = typeof data === 'symbol';
|
|
248
|
+
|
|
249
|
+
// fallback to entity expiry time
|
|
250
|
+
if (!expiresAt) {
|
|
251
|
+
expiresAt = entityExpiresAt(paths, entityMeta);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// https://dataclient.io/docs/concepts/expiry-policy#expiry-status
|
|
255
|
+
// we don't track the difference between stale or fresh because that is tied to triggering
|
|
256
|
+
// conditions
|
|
257
|
+
const expiryStatus = meta != null && meta.invalidated || invalidDenormalize && !(meta != null && meta.error) ? ExpiryStatus.Invalid : invalidDenormalize || invalidIfStale ? ExpiryStatus.InvalidIfStale : ExpiryStatus.Valid;
|
|
258
|
+
return {
|
|
259
|
+
data,
|
|
260
|
+
expiryStatus,
|
|
261
|
+
expiresAt
|
|
237
262
|
};
|
|
238
|
-
this.dispatch = dispatch;
|
|
239
|
-
this.getState = getState;
|
|
240
|
-
this.globalCache = globalCache;
|
|
241
263
|
}
|
|
242
264
|
}
|
|
243
265
|
|
|
@@ -259,7 +281,7 @@ function entityExpiresAt(paths, entityMeta) {
|
|
|
259
281
|
|
|
260
282
|
/** Determine whether the schema has any entities.
|
|
261
283
|
*
|
|
262
|
-
* Without entities, denormalization is not needed, and results should not be
|
|
284
|
+
* Without entities, denormalization is not needed, and results should not be queried.
|
|
263
285
|
*/
|
|
264
286
|
function schemaHasEntity(schema) {
|
|
265
287
|
if (isEntity(schema)) return true;
|
|
@@ -278,11 +300,7 @@ class Snapshot {
|
|
|
278
300
|
this.state = void 0;
|
|
279
301
|
this.controller = void 0;
|
|
280
302
|
this.fetchedAt = void 0;
|
|
281
|
-
|
|
282
|
-
/** @see https://dataclient.io/docs/api/Snapshot#getResponse */
|
|
283
|
-
this.getResponse = (endpoint, ...args) => {
|
|
284
|
-
return this.controller.getResponse(endpoint, ...args, this.state);
|
|
285
|
-
};
|
|
303
|
+
this.abort = new AbortOptimistic();
|
|
286
304
|
/** @see https://dataclient.io/docs/api/Snapshot#getError */
|
|
287
305
|
this.getError = (endpoint, ...args) => {
|
|
288
306
|
return this.controller.getError(endpoint, ...args, this.state);
|
|
@@ -291,5 +309,19 @@ class Snapshot {
|
|
|
291
309
|
this.controller = controller;
|
|
292
310
|
this.fetchedAt = fetchedAt;
|
|
293
311
|
}
|
|
312
|
+
|
|
313
|
+
/*************** Data Access ***************/
|
|
314
|
+
/** @see https://dataclient.io/docs/api/Snapshot#getResponse */
|
|
315
|
+
|
|
316
|
+
getResponse(endpoint, ...args) {
|
|
317
|
+
return this.controller.getResponse(endpoint, ...args, this.state);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Retrieved memoized value for any Querable schema
|
|
321
|
+
* @see https://dataclient.io/docs/api/Snapshot#get
|
|
322
|
+
*/
|
|
323
|
+
get(schema, ...args) {
|
|
324
|
+
return this.controller.get(schema, ...args, this.state);
|
|
325
|
+
}
|
|
294
326
|
}
|
|
295
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWFrRW50aXR5TWFwIiwiRXhwaXJ5U3RhdHVzIiwiZGVub3JtYWxpemVDYWNoZWQiLCJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwiaW5mZXJSZXN1bHRzIiwidmFsaWRhdGVJbmZlcmVuY2UiLCJjcmVhdGVFeHBpcmVBbGwiLCJjcmVhdGVGZXRjaCIsImNyZWF0ZUludmFsaWRhdGUiLCJjcmVhdGVJbnZhbGlkYXRlQWxsIiwiY3JlYXRlUmVzZXQiLCJjcmVhdGVTZXQiLCJjcmVhdGVVbnN1YnNjcmlwdGlvbiIsImNyZWF0ZVN1YnNjcmlwdGlvbiIsImVuc3VyZVBvam8iLCJpbml0aWFsU3RhdGUiLCJzZWxlY3RNZXRhIiwidW5zZXREaXNwYXRjaCIsImFjdGlvbiIsIkVycm9yIiwidW5zZXRTdGF0ZSIsIkNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsImRpc3BhdGNoIiwiZ2V0U3RhdGUiLCJnbG9iYWxDYWNoZSIsImVudGl0aWVzIiwicmVzdWx0cyIsImZldGNoIiwiZW5kcG9pbnQiLCJhcmdzIiwic2NoZW1hIiwibWV0YSIsInByb21pc2UiLCJ0aGVuIiwiaW5wdXQiLCJmZXRjaElmU3RhbGUiLCJkYXRhIiwiZXhwaXJlc0F0IiwiZXhwaXJ5U3RhdHVzIiwiZ2V0UmVzcG9uc2UiLCJJbnZhbGlkIiwiRGF0ZSIsIm5vdyIsImludmFsaWRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImludmFsaWRhdGVBbGwiLCJvcHRpb25zIiwia2V5IiwidGVzdEtleSIsImV4cGlyZUFsbCIsInJlc2V0RW50aXJlU3RvcmUiLCJzZXRSZXNwb25zZSIsInJlc3QiLCJyZXNwb25zZSIsImxlbmd0aCIsInNsaWNlIiwic2V0RXJyb3IiLCJlcnJvciIsInN1YnNjcmliZSIsInVuc3Vic2NyaWJlIiwic25hcHNob3QiLCJzdGF0ZSIsImZldGNoZWRBdCIsIlNuYXBzaG90IiwiZ2V0RXJyb3IiLCJ1bmRlZmluZWQiLCJlcnJvclBvbGljeSIsIm1hcCIsImlzQWN0aXZlIiwiY2FjaGVSZXN1bHRzIiwiaW52YWxpZFJlc3VsdHMiLCJpbmRleGVzIiwiVmFsaWQiLCJJbmZpbml0eSIsInNjaGVtYUhhc0VudGl0eSIsImludmFsaWRhdGVkIiwiaW52YWxpZElmU3RhbGUiLCJJbnZhbGlkSWZTdGFsZSIsInBhdGhzIiwiaW52YWxpZERlbm9ybWFsaXplIiwiZW50aXR5RXhwaXJlc0F0IiwiZW50aXR5TWV0YSIsInBrIiwiX2VudGl0eU1ldGEka2V5IiwiZW50aXR5RXhwaXJ5IiwiQXJyYXkiLCJpc0FycmF5IiwibmVzdGVkU2NoZW1hIiwiT2JqZWN0IiwidmFsdWVzIiwic29tZSIsIngiLCJjb250cm9sbGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVycm9yVHlwZXMsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxuICBEZW5vcm1hbGl6ZUNhY2hlLFxuICBTY2hlbWEsXG4gIERlbm9ybWFsaXplLFxufSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmltcG9ydCB7XG4gIFdlYWtFbnRpdHlNYXAsXG4gIEV4cGlyeVN0YXR1cyxcbiAgRW5kcG9pbnRJbnRlcmZhY2UsXG4gIEZldGNoRnVuY3Rpb24sXG4gIFJlc29sdmVUeXBlLFxuICBEZW5vcm1hbGl6ZU51bGxhYmxlLFxuICBQYXRoLFxuICBkZW5vcm1hbGl6ZUNhY2hlZCxcbiAgaXNFbnRpdHksXG4gIGRlbm9ybWFsaXplLFxufSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmltcG9ydCB7IGluZmVyUmVzdWx0cywgdmFsaWRhdGVJbmZlcmVuY2UgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IGNyZWF0ZUV4cGlyZUFsbCBmcm9tICcuL2NyZWF0ZUV4cGlyZUFsbC5qcyc7XG5pbXBvcnQgY3JlYXRlRmV0Y2ggZnJvbSAnLi9jcmVhdGVGZXRjaC5qcyc7XG5pbXBvcnQgY3JlYXRlSW52YWxpZGF0ZSBmcm9tICcuL2NyZWF0ZUludmFsaWRhdGUuanMnO1xuaW1wb3J0IGNyZWF0ZUludmFsaWRhdGVBbGwgZnJvbSAnLi9jcmVhdGVJbnZhbGlkYXRlQWxsLmpzJztcbmltcG9ydCBjcmVhdGVSZXNldCBmcm9tICcuL2NyZWF0ZVJlc2V0LmpzJztcbmltcG9ydCBjcmVhdGVTZXQgZnJvbSAnLi9jcmVhdGVTZXQuanMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlVW5zdWJzY3JpcHRpb24sXG4gIGNyZWF0ZVN1YnNjcmlwdGlvbixcbn0gZnJvbSAnLi9jcmVhdGVTdWJzY3JpcHRpb24uanMnO1xuaW1wb3J0IGVuc3VyZVBvam8gZnJvbSAnLi9lbnN1cmVQb2pvLmpzJztcbmltcG9ydCB0eXBlIHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUvcmVkdWNlci9jcmVhdGVSZWR1Y2VyLmpzJztcbmltcG9ydCBzZWxlY3RNZXRhIGZyb20gJy4uL3N0YXRlL3NlbGVjdE1ldGEuanMnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25UeXBlcywgU3RhdGUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIEdlbmVyaWNEaXNwYXRjaCA9ICh2YWx1ZTogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuZXhwb3J0IHR5cGUgRGF0YUNsaWVudERpc3BhdGNoID0gKHZhbHVlOiBBY3Rpb25UeXBlcykgPT4gUHJvbWlzZTx2b2lkPjtcblxuaW50ZXJmYWNlIENvbnN0cnVjdG9yUHJvcHM8RCBleHRlbmRzIEdlbmVyaWNEaXNwYXRjaCA9IERhdGFDbGllbnREaXNwYXRjaD4ge1xuICBkaXNwYXRjaD86IEQ7XG4gIGdldFN0YXRlPzogKCkgPT4gU3RhdGU8dW5rbm93bj47XG4gIGdsb2JhbENhY2hlPzogRGVub3JtYWxpemVDYWNoZTtcbn1cblxuY29uc3QgdW5zZXREaXNwYXRjaCA9IChhY3Rpb246IHVua25vd24pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBEaXNwYXRjaGluZyB3aGlsZSBjb25zdHJ1Y3RpbmcgeW91ciBtaWRkbGV3YXJlIGlzIG5vdCBhbGxvd2VkLiBgICtcbiAgICAgIGBPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guYCxcbiAgKTtcbn07XG5jb25zdCB1bnNldFN0YXRlID0gKCk6IFN0YXRlPHVua25vd24+ID0+IHtcbiAgLy8gVGhpcyBpcyBvbmx5IHRoZSB2YWx1ZSB1bnRpbCBpdCBpcyBzZXQgYnkgdGhlIENhY2hlUHJvdmlkZXJcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcbn07XG5cbi8qKlxuICogSW1wZXJhdGl2ZSBjb250cm9sIG9mIFJlYWN0aXZlIERhdGEgQ2xpZW50IHN0b3JlXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRyb2xsZXI8XG4gIEQgZXh0ZW5kcyBHZW5lcmljRGlzcGF0Y2ggPSBEYXRhQ2xpZW50RGlzcGF0Y2gsXG4+IHtcbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYW4gYWN0aW9uIHRvIFJlYWN0aXZlIERhdGEgQ2xpZW50IHJlZHVjZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZGlzcGF0Y2hcbiAgICovXG4gIGRlY2xhcmUgcmVhZG9ubHkgZGlzcGF0Y2g6IEQ7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYXRlc3Qgc3RhdGUgc25hcHNob3QgdGhhdCBpcyBmdWxseSBjb21taXR0ZWQuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgaW1wZXJhdGl2ZSB1c2UtY2FzZXMgbGlrZSBldmVudCBoYW5kbGVycy5cbiAgICogVGhpcyBzaG91bGQgKm5vdCogYmUgdXNlZCB0byByZW5kZXI7IGluc3RlYWQgdXNlU3VzcGVuc2UoKSBvciB1c2VDYWNoZSgpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZ2V0U3RhdGVcbiAgICovXG4gIGRlY2xhcmUgcmVhZG9ubHkgZ2V0U3RhdGU6ICgpID0+IFN0YXRlPHVua25vd24+O1xuICBkZWNsYXJlIHJlYWRvbmx5IGdsb2JhbENhY2hlOiBEZW5vcm1hbGl6ZUNhY2hlO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBkaXNwYXRjaCA9IHVuc2V0RGlzcGF0Y2ggYXMgYW55LFxuICAgIGdldFN0YXRlID0gdW5zZXRTdGF0ZSxcbiAgICBnbG9iYWxDYWNoZSA9IHtcbiAgICAgIGVudGl0aWVzOiB7fSxcbiAgICAgIHJlc3VsdHM6IHt9LFxuICAgIH0sXG4gIH06IENvbnN0cnVjdG9yUHJvcHM8RD4gPSB7fSkge1xuICAgIHRoaXMuZGlzcGF0Y2ggPSBkaXNwYXRjaDtcbiAgICB0aGlzLmdldFN0YXRlID0gZ2V0U3RhdGU7XG4gICAgdGhpcy5nbG9iYWxDYWNoZSA9IGdsb2JhbENhY2hlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKiBBY3Rpb24gRGlzcGF0Y2hlcnMgKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBlbmRwb2ludCB3aXRoIGdpdmVuIGFyZ3MsIHVwZGF0aW5nIHRoZSBSZWFjdGl2ZSBEYXRhIENsaWVudCBjYWNoZSB3aXRoIHRoZSByZXNwb25zZSBvciBlcnJvciB1cG9uIGNvbXBsZXRpb24uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZmV0Y2hcbiAgICovXG4gIGZldGNoID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHsgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPiB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XVxuICApOiBFWydzY2hlbWEnXSBleHRlbmRzIHVuZGVmaW5lZCB8IG51bGwgPyBSZXR1cm5UeXBlPEU+XG4gIDogUHJvbWlzZTxEZW5vcm1hbGl6ZTxFWydzY2hlbWEnXT4+ID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBjcmVhdGVGZXRjaChlbmRwb2ludCwge1xuICAgICAgYXJncyxcbiAgICB9KTtcbiAgICB0aGlzLmRpc3BhdGNoKGFjdGlvbik7XG5cbiAgICBpZiAoZW5kcG9pbnQuc2NoZW1hKSB7XG4gICAgICByZXR1cm4gYWN0aW9uLm1ldGEucHJvbWlzZS50aGVuKGlucHV0ID0+XG4gICAgICAgIGRlbm9ybWFsaXplKGlucHV0LCBlbmRwb2ludC5zY2hlbWEsIHt9LCBhcmdzKSxcbiAgICAgICkgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uLm1ldGEucHJvbWlzZSBhcyBhbnk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgb25seSBpZiBlbmRwb2ludCBpcyBjb25zaWRlcmVkICdzdGFsZSc7IG90aGVyd2lzZSByZXR1cm5zIHVuZGVmaW5lZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI2ZldGNoSWZTdGFsZVxuICAgKi9cbiAgZmV0Y2hJZlN0YWxlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHsgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPiB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XVxuICApOiBFWydzY2hlbWEnXSBleHRlbmRzIHVuZGVmaW5lZCB8IG51bGwgPyBSZXR1cm5UeXBlPEU+IHwgUmVzb2x2ZVR5cGU8RT5cbiAgOiBQcm9taXNlPERlbm9ybWFsaXplPEVbJ3NjaGVtYSddPj4gfCBEZW5vcm1hbGl6ZTxFWydzY2hlbWEnXT4gPT4ge1xuICAgIGNvbnN0IHsgZGF0YSwgZXhwaXJlc0F0LCBleHBpcnlTdGF0dXMgfSA9IHRoaXMuZ2V0UmVzcG9uc2UoXG4gICAgICBlbmRwb2ludCxcbiAgICAgIC4uLmFyZ3MsXG4gICAgICB0aGlzLmdldFN0YXRlKCksXG4gICAgKTtcbiAgICBpZiAoZXhwaXJ5U3RhdHVzICE9PSBFeHBpcnlTdGF0dXMuSW52YWxpZCAmJiBEYXRlLm5vdygpIDw9IGV4cGlyZXNBdClcbiAgICAgIHJldHVybiBkYXRhIGFzIGFueTtcbiAgICByZXR1cm4gdGhpcy5mZXRjaChlbmRwb2ludCwgLi4uYXJncyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZvcmNlcyByZWZldGNoaW5nIGFuZCBzdXNwZW5zZSBvbiB1c2VTdXNwZW5zZSB3aXRoIHRoZSBzYW1lIEVuZHBvaW50IGFuZCBwYXJhbWV0ZXJzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI2ludmFsaWRhdGVcbiAgICovXG4gIGludmFsaWRhdGUgPSA8RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfCByZWFkb25seSBbbnVsbF1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PlxuICAgIGFyZ3NbMF0gIT09IG51bGwgP1xuICAgICAgdGhpcy5kaXNwYXRjaChcbiAgICAgICAgY3JlYXRlSW52YWxpZGF0ZShlbmRwb2ludCwge1xuICAgICAgICAgIGFyZ3M6IGFyZ3MgYXMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8qKlxuICAgKiBGb3JjZXMgcmVmZXRjaGluZyBhbmQgc3VzcGVuc2Ugb24gdXNlU3VzcGVuc2Ugb24gYWxsIG1hdGNoaW5nIGVuZHBvaW50IHJlc3VsdCBrZXlzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI2ludmFsaWRhdGVBbGxcbiAgICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gaW52YWxpZGF0aW9uIGlzIGNvbW1pdGVkLlxuICAgKi9cbiAgaW52YWxpZGF0ZUFsbCA9IChvcHRpb25zOiB7IHRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbiB9KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2goY3JlYXRlSW52YWxpZGF0ZUFsbCgoa2V5OiBzdHJpbmcpID0+IG9wdGlvbnMudGVzdEtleShrZXkpKSk7XG5cbiAgLyoqXG4gICAqIFNldHMgYWxsIG1hdGNoaW5nIGVuZHBvaW50IHJlc3VsdCBrZXlzIHRvIGJlIFNUQUxFLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI2V4cGlyZUFsbFxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBleHBpcnkgaXMgY29tbWl0ZWQuICpOT1QqIGZldGNoIHByb21pc2VcbiAgICovXG4gIGV4cGlyZUFsbCA9IChvcHRpb25zOiB7IHRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbiB9KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2goY3JlYXRlRXhwaXJlQWxsKChrZXk6IHN0cmluZykgPT4gb3B0aW9ucy50ZXN0S2V5KGtleSkpKTtcblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBlbnRpcmUgUmVhY3RpdmUgRGF0YSBDbGllbnQgY2FjaGUuIEFsbCBpbmZsaWdodCByZXF1ZXN0cyB3aWxsIG5vdCByZXNvbHZlLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI3Jlc2V0RW50aXJlU3RvcmVcbiAgICovXG4gIHJlc2V0RW50aXJlU3RvcmUgPSAoKTogUHJvbWlzZTx2b2lkPiA9PiB0aGlzLmRpc3BhdGNoKGNyZWF0ZVJlc2V0KCkpO1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgcmVzcG9uc2UgaW4gY2FjaGUgZm9yIGdpdmVuIEVuZHBvaW50IGFuZCBhcmdzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldFxuICAgKi9cbiAgc2V0UmVzcG9uc2UgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBhbnldXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBSZXNvbHZlVHlwZTxFPiA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhY3Rpb24gPSBjcmVhdGVTZXQoZW5kcG9pbnQsIHtcbiAgICAgIGFyZ3M6IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEU+LFxuICAgICAgcmVzcG9uc2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfTtcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSByZXN1bHQgb2YgRW5kcG9pbnQgYW5kIGFyZ3MgYXMgdGhlIGVycm9yIHByb3ZpZGVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldEVycm9yXG4gICAqL1xuICBzZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIEVycm9yXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXNwb25zZTogRXJyb3IgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYWN0aW9uID0gY3JlYXRlU2V0KGVuZHBvaW50LCB7XG4gICAgICBhcmdzOiByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFPixcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgZXJyb3I6IHRydWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfTtcblxuICAvKipcbiAgICogUmVzb2x2ZXMgYW4gaW5mbGlnaHQgZmV0Y2guIGBmZXRjaGVkQXRgIHNob3VsZCBgZmV0Y2hgJ3MgYGNyZWF0ZWRBdGBcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNyZXNvbHZlXG4gICAqL1xuICByZXNvbHZlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gICAgfSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICBtZXRhOlxuICAgICAgfCB7XG4gICAgICAgICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgICAgICAgIHJlc3BvbnNlOiBFcnJvcjtcbiAgICAgICAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgICAgICBlcnJvcjogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgICAgICAgIHJlc3BvbnNlOiBhbnk7XG4gICAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgICAgZXJyb3I/OiBmYWxzZTtcbiAgICAgICAgfSxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goY3JlYXRlU2V0KGVuZHBvaW50LCBtZXRhIGFzIGFueSkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBNYXJrcyBhIG5ldyBzdWJzY3JpcHRpb24gdG8gYSBnaXZlbiBFbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzdWJzY3JpYmVcbiAgICovXG4gIHN1YnNjcmliZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8XG4gICAgICBGZXRjaEZ1bmN0aW9uLFxuICAgICAgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkIHwgZmFsc2VcbiAgICA+LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB8IHJlYWRvbmx5IFtudWxsXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgYXJnc1swXSAhPT0gbnVsbCA/XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICBjcmVhdGVTdWJzY3JpcHRpb24oZW5kcG9pbnQsIHtcbiAgICAgICAgICBhcmdzOiBhcmdzIGFzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgOiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAvKipcbiAgICogTWFya3MgY29tcGxldGlvbiBvZiBzdWJzY3JpcHRpb24gdG8gYSBnaXZlbiBFbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciN1bnN1YnNjcmliZVxuICAgKi9cbiAgdW5zdWJzY3JpYmUgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPFxuICAgICAgRmV0Y2hGdW5jdGlvbixcbiAgICAgIFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCB8IGZhbHNlXG4gICAgPixcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfCByZWFkb25seSBbbnVsbF1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PlxuICAgIGFyZ3NbMF0gIT09IG51bGwgP1xuICAgICAgdGhpcy5kaXNwYXRjaChcbiAgICAgICAgY3JlYXRlVW5zdWJzY3JpcHRpb24oZW5kcG9pbnQsIHtcbiAgICAgICAgICBhcmdzOiBhcmdzIGFzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgOiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAvKioqKioqKioqKioqKioqIE1vcmUgKioqKioqKioqKioqKioqL1xuXG4gIC8qIFRPRE86XG4gIGFib3J0ID0gPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dXG4gICk6IFByb21pc2U8dm9pZD5cbiAgKi9cblxuICAvKipcbiAgICogR2V0cyBhIHNuYXBzaG90IChodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvU25hcHNob3QpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc25hcHNob3RcbiAgICovXG4gIHNuYXBzaG90ID0gKHN0YXRlOiBTdGF0ZTx1bmtub3duPiwgZmV0Y2hlZEF0PzogbnVtYmVyKTogU25hcHNob3RJbnRlcmZhY2UgPT4ge1xuICAgIHJldHVybiBuZXcgU25hcHNob3QodGhpcywgc3RhdGUsIGZldGNoZWRBdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVycm9yLCBpZiBhbnksIGZvciBhIGdpdmVuIGVuZHBvaW50LiBSZXR1cm5zIHVuZGVmaW5lZCBmb3Igbm8gZXJyb3JzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI2dldEVycm9yXG4gICAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dIHwgcmVhZG9ubHkgW251bGxdLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IFsuLi5BcmdzLCBTdGF0ZTx1bmtub3duPl1cbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHJlc3RbMF0gPT09IG51bGwpIHJldHVybjtcbiAgICBjb25zdCBzdGF0ZSA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXSBhcyBTdGF0ZTx1bmtub3duPjtcbiAgICAvLyB0aGlzIGlzIHR5cGVzY3JpcHQgZ2VuZXJpY3MgYnJlYWtpbmdcbiAgICBjb25zdCBhcmdzOiBhbnkgPSByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFWydrZXknXT47XG4gICAgY29uc3Qga2V5ID0gZW5kcG9pbnQua2V5KC4uLmFyZ3MpO1xuXG4gICAgY29uc3QgbWV0YSA9IHNlbGVjdE1ldGEoc3RhdGUsIGtleSk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHN0YXRlLnJlc3VsdHNba2V5XTtcblxuICAgIGlmIChyZXN1bHRzICE9PSB1bmRlZmluZWQgJiYgbWV0YT8uZXJyb3JQb2xpY3kgPT09ICdzb2Z0JykgcmV0dXJuO1xuXG4gICAgcmV0dXJuIG1ldGE/LmVycm9yIGFzIGFueTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgKGdsb2JhbGx5IHJlZmVyZW50aWFsbHkgc3RhYmxlKSByZXNwb25zZSBmb3IgYSBnaXZlbiBlbmRwb2ludC9hcmdzIHBhaXIgZnJvbSBzdGF0ZSBnaXZlbi5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNnZXRSZXNwb25zZVxuICAgKi9cbiAgZ2V0UmVzcG9uc2UgPSA8XG4gICAgRSBleHRlbmRzIFBpY2s8RW5kcG9pbnRJbnRlcmZhY2UsICdrZXknIHwgJ3NjaGVtYScgfCAnaW52YWxpZElmU3RhbGUnPixcbiAgICBBcmdzIGV4dGVuZHMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RVsna2V5J10+XSB8IHJlYWRvbmx5IFtudWxsXSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5yZXN0OiBbLi4uQXJncywgU3RhdGU8dW5rbm93bj5dXG4gICk6IHtcbiAgICBkYXRhOiBEZW5vcm1hbGl6ZU51bGxhYmxlPEVbJ3NjaGVtYSddPjtcbiAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cztcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgfSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV0gYXMgU3RhdGU8dW5rbm93bj47XG4gICAgLy8gdGhpcyBpcyB0eXBlc2NyaXB0IGdlbmVyaWNzIGJyZWFraW5nXG4gICAgY29uc3QgYXJnczogYW55ID0gcmVzdFxuICAgICAgLnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSlcbiAgICAgIC5tYXAoZW5zdXJlUG9qbykgYXMgUGFyYW1ldGVyczxFWydrZXknXT47XG4gICAgY29uc3QgaXNBY3RpdmUgPSBhcmdzLmxlbmd0aCAhPT0gMSB8fCBhcmdzWzBdICE9PSBudWxsO1xuICAgIGNvbnN0IGtleSA9IGlzQWN0aXZlID8gZW5kcG9pbnQua2V5KC4uLmFyZ3MpIDogJyc7XG4gICAgY29uc3QgY2FjaGVSZXN1bHRzID0gaXNBY3RpdmUgPyBzdGF0ZS5yZXN1bHRzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2NoZW1hID0gZW5kcG9pbnQuc2NoZW1hO1xuICAgIGNvbnN0IG1ldGEgPSBzZWxlY3RNZXRhKHN0YXRlLCBrZXkpO1xuICAgIGxldCBleHBpcmVzQXQgPSBtZXRhPy5leHBpcmVzQXQ7XG5cbiAgICBsZXQgaW52YWxpZFJlc3VsdHMgPSBmYWxzZTtcbiAgICBsZXQgcmVzdWx0cztcbiAgICBpZiAoY2FjaGVSZXN1bHRzID09PSB1bmRlZmluZWQgJiYgZW5kcG9pbnQuc2NoZW1hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdHMgPSBpbmZlclJlc3VsdHMoXG4gICAgICAgIGVuZHBvaW50LnNjaGVtYSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgc3RhdGUuaW5kZXhlcyxcbiAgICAgICAgc3RhdGUuZW50aXRpZXMsXG4gICAgICApO1xuICAgICAgaW52YWxpZFJlc3VsdHMgPSAhdmFsaWRhdGVJbmZlcmVuY2UocmVzdWx0cyk7XG4gICAgICBpZiAoIWV4cGlyZXNBdCAmJiBpbnZhbGlkUmVzdWx0cykgZXhwaXJlc0F0ID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0cyA9IGNhY2hlUmVzdWx0cztcbiAgICB9XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiByZXN1bHRzIGFzIGFueSxcbiAgICAgICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXMuVmFsaWQsXG4gICAgICAgIGV4cGlyZXNBdDogSW5maW5pdHksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghZW5kcG9pbnQuc2NoZW1hIHx8ICFzY2hlbWFIYXNFbnRpdHkoZW5kcG9pbnQuc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogcmVzdWx0cyxcbiAgICAgICAgZXhwaXJ5U3RhdHVzOlxuICAgICAgICAgIG1ldGE/LmludmFsaWRhdGVkID8gRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgICAgICA6IGNhY2hlUmVzdWx0cyAmJiAhZW5kcG9pbnQuaW52YWxpZElmU3RhbGUgPyBFeHBpcnlTdGF0dXMuVmFsaWRcbiAgICAgICAgICA6IEV4cGlyeVN0YXR1cy5JbnZhbGlkSWZTdGFsZSxcbiAgICAgICAgZXhwaXJlc0F0OiBleHBpcmVzQXQgfHwgMCxcbiAgICAgIH0gYXMge1xuICAgICAgICBkYXRhOiBEZW5vcm1hbGl6ZU51bGxhYmxlPEVbJ3NjaGVtYSddPjtcbiAgICAgICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXM7XG4gICAgICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2xvYmFsQ2FjaGUucmVzdWx0c1trZXldKVxuICAgICAgdGhpcy5nbG9iYWxDYWNoZS5yZXN1bHRzW2tleV0gPSBuZXcgV2Vha0VudGl0eU1hcCgpO1xuXG4gICAgLy8gc2Vjb25kIGFyZ3VtZW50IGlzIGZhbHNlIGlmIGFueSBlbnRpdGllcyBhcmUgbWlzc2luZ1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBjb25zdCB7IGRhdGEsIHBhdGhzIH0gPSBkZW5vcm1hbGl6ZUNhY2hlZChcbiAgICAgIHJlc3VsdHMsXG4gICAgICBzY2hlbWEsXG4gICAgICBzdGF0ZS5lbnRpdGllcyxcbiAgICAgIHRoaXMuZ2xvYmFsQ2FjaGUuZW50aXRpZXMsXG4gICAgICB0aGlzLmdsb2JhbENhY2hlLnJlc3VsdHNba2V5XSxcbiAgICAgIGFyZ3MsXG4gICAgKSBhcyB7IGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+OyBwYXRoczogUGF0aFtdIH07XG4gICAgY29uc3QgaW52YWxpZERlbm9ybWFsaXplID0gdHlwZW9mIGRhdGEgPT09ICdzeW1ib2wnO1xuXG4gICAgLy8gZmFsbGJhY2sgdG8gZW50aXR5IGV4cGlyeSB0aW1lXG4gICAgaWYgKCFleHBpcmVzQXQpIHtcbiAgICAgIGV4cGlyZXNBdCA9IGVudGl0eUV4cGlyZXNBdChwYXRocywgc3RhdGUuZW50aXR5TWV0YSk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvY29uY2VwdHMvZXhwaXJ5LXBvbGljeSNleHBpcnktc3RhdHVzXG4gICAgLy8gd2UgZG9uJ3QgdHJhY2sgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdGFsZSBvciBmcmVzaCBiZWNhdXNlIHRoYXQgaXMgdGllZCB0byB0cmlnZ2VyaW5nXG4gICAgLy8gY29uZGl0aW9uc1xuICAgIGNvbnN0IGV4cGlyeVN0YXR1cyA9XG4gICAgICBtZXRhPy5pbnZhbGlkYXRlZCB8fCAoaW52YWxpZERlbm9ybWFsaXplICYmICFtZXRhPy5lcnJvcikgP1xuICAgICAgICBFeHBpcnlTdGF0dXMuSW52YWxpZFxuICAgICAgOiBpbnZhbGlkRGVub3JtYWxpemUgfHwgZW5kcG9pbnQuaW52YWxpZElmU3RhbGUgfHwgaW52YWxpZFJlc3VsdHMgP1xuICAgICAgICBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGVcbiAgICAgIDogRXhwaXJ5U3RhdHVzLlZhbGlkO1xuXG4gICAgcmV0dXJuIHsgZGF0YSwgZXhwaXJ5U3RhdHVzLCBleHBpcmVzQXQgfTtcbiAgfTtcbn1cblxuLy8gYmVuY2htYXJrOiBodHRwczovL3d3dy5tZWFzdXJldGhhdC5uZXQvQmVuY2htYXJrcy9TaG93LzI0NjkxLzAvbWluLXJlZHVjZXItdnMtaW1wZXJhdGl2ZS13aXRoLXBhdGhzXG4vLyBlYXJsaWVzdCBleHBpcnkgZGljdGF0ZXMgYWdlXG5mdW5jdGlvbiBlbnRpdHlFeHBpcmVzQXQoXG4gIHBhdGhzOiBQYXRoW10sXG4gIGVudGl0eU1ldGE6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7IC8vIFRoaXMgaXMgb25seSB0aGUgdmFsdWUgdW50aWwgaXQgaXMgc2V0IGJ5IHRoZSBDYWNoZVByb3ZpZGVyXG4gICAgICB9O1xuICAgIH07XG4gIH0sXG4pIHtcbiAgbGV0IGV4cGlyZXNBdCA9IEluZmluaXR5O1xuICBmb3IgKGNvbnN0IHsgcGssIGtleSB9IG9mIHBhdGhzKSB7XG4gICAgY29uc3QgZW50aXR5RXhwaXJ5ID0gZW50aXR5TWV0YVtrZXldPy5bcGtdPy5leHBpcmVzQXQ7XG4gICAgLy8gZXhwaXJlc0F0IHdpbGwgYWx3YXlzIHJlc29sdmUgdG8gZmFsc2Ugd2l0aCBhbnkgY29tcGFyaXNvblxuICAgIGlmIChlbnRpdHlFeHBpcnkgPCBleHBpcmVzQXQpIGV4cGlyZXNBdCA9IGVudGl0eUV4cGlyeTtcbiAgfVxuICByZXR1cm4gZXhwaXJlc0F0O1xufVxuXG4vKiogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNjaGVtYSBoYXMgYW55IGVudGl0aWVzLlxuICpcbiAqIFdpdGhvdXQgZW50aXRpZXMsIGRlbm9ybWFsaXphdGlvbiBpcyBub3QgbmVlZGVkLCBhbmQgcmVzdWx0cyBzaG91bGQgbm90IGJlIGluZmVycmVkLlxuICovXG5mdW5jdGlvbiBzY2hlbWFIYXNFbnRpdHkoc2NoZW1hOiBTY2hlbWEpOiBib29sZWFuIHtcbiAgaWYgKGlzRW50aXR5KHNjaGVtYSkpIHJldHVybiB0cnVlO1xuICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKVxuICAgIHJldHVybiBzY2hlbWEubGVuZ3RoICE9PSAwICYmIHNjaGVtYUhhc0VudGl0eShzY2hlbWFbMF0pO1xuICBpZiAoc2NoZW1hICYmICh0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygc2NoZW1hID09PSAnZnVuY3Rpb24nKSkge1xuICAgIGNvbnN0IG5lc3RlZFNjaGVtYSA9XG4gICAgICAnc2NoZW1hJyBpbiBzY2hlbWEgPyAoc2NoZW1hLnNjaGVtYSBhcyBSZWNvcmQ8c3RyaW5nLCBTY2hlbWE+KSA6IHNjaGVtYTtcbiAgICBpZiAodHlwZW9mIG5lc3RlZFNjaGVtYSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHNjaGVtYUhhc0VudGl0eShuZXN0ZWRTY2hlbWEpO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhuZXN0ZWRTY2hlbWEpLnNvbWUoeCA9PiBzY2hlbWFIYXNFbnRpdHkoeCkpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IHR5cGUgeyBFcnJvclR5cGVzIH07XG5cbmNsYXNzIFNuYXBzaG90PFQgPSB1bmtub3duPiBpbXBsZW1lbnRzIFNuYXBzaG90SW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSBzdGF0ZTogU3RhdGU8VD47XG4gIHByaXZhdGUgY29udHJvbGxlcjogQ29udHJvbGxlcjtcbiAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoY29udHJvbGxlcjogQ29udHJvbGxlciwgc3RhdGU6IFN0YXRlPFQ+LCBmZXRjaGVkQXQgPSAwKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgdGhpcy5mZXRjaGVkQXQgPSBmZXRjaGVkQXQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqIERhdGEgQWNjZXNzICoqKioqKioqKioqKioqKi9cbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL1NuYXBzaG90I2dldFJlc3BvbnNlICovXG4gIGdldFJlc3BvbnNlID0gPFxuICAgIEUgZXh0ZW5kcyBQaWNrPEVuZHBvaW50SW50ZXJmYWNlLCAna2V5JyB8ICdzY2hlbWEnIHwgJ2ludmFsaWRJZlN0YWxlJz4sXG4gICAgQXJncyBleHRlbmRzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogQXJnc1xuICApOiB7XG4gICAgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47XG4gICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXM7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH0gPT4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuZ2V0UmVzcG9uc2UoZW5kcG9pbnQsIC4uLmFyZ3MsIHRoaXMuc3RhdGUpO1xuICB9O1xuXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRFcnJvciAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRFcnJvcihlbmRwb2ludCwgLi4uYXJncywgdGhpcy5zdGF0ZSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQU9BLFNBQ0VBLGFBQWEsRUFDYkMsWUFBWSxFQU1aQyxpQkFBaUIsRUFDakJDLFFBQVEsRUFDUkMsV0FBVyxRQUNOLHdCQUF3QjtBQUMvQixTQUFTQyxZQUFZLEVBQUVDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUV4RSxPQUFPQyxlQUFlLE1BQU0sc0JBQXNCO0FBQ2xELE9BQU9DLFdBQVcsTUFBTSxrQkFBa0I7QUFDMUMsT0FBT0MsZ0JBQWdCLE1BQU0sdUJBQXVCO0FBQ3BELE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxPQUFPQyxXQUFXLE1BQU0sa0JBQWtCO0FBQzFDLE9BQU9DLFNBQVMsTUFBTSxnQkFBZ0I7QUFDdEMsU0FDRUMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsUUFDYix5QkFBeUI7QUFDaEMsT0FBT0MsVUFBVSxNQUFNLGlCQUFpQjtBQUV4QyxTQUFTQyxZQUFZLFFBQVEsbUNBQW1DO0FBQ2hFLE9BQU9DLFVBQVUsTUFBTSx3QkFBd0I7QUFZL0MsTUFBTUMsYUFBYSxHQUFJQyxNQUFlLElBQW9CO0VBQ3hELE1BQU0sSUFBSUMsS0FBSyxDQUNaLGlFQUFnRSxHQUM5RCx5REFDTCxD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
|
|
327
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeHBpcnlTdGF0dXMiLCJNZW1vQ2FjaGUiLCJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwidmFsaWRhdGVRdWVyeUtleSIsIkFib3J0T3B0aW1pc3RpYyIsImNyZWF0ZUV4cGlyZUFsbCIsImNyZWF0ZUZldGNoIiwiY3JlYXRlSW52YWxpZGF0ZSIsImNyZWF0ZUludmFsaWRhdGVBbGwiLCJjcmVhdGVSZXNldCIsImNyZWF0ZVNldCIsImNyZWF0ZVVuc3Vic2NyaXB0aW9uIiwiY3JlYXRlU3Vic2NyaXB0aW9uIiwiZW5zdXJlUG9qbyIsImluaXRpYWxTdGF0ZSIsInNlbGVjdE1ldGEiLCJ1bnNldERpc3BhdGNoIiwiYWN0aW9uIiwiRXJyb3IiLCJ1bnNldFN0YXRlIiwiQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiZGlzcGF0Y2giLCJnZXRTdGF0ZSIsIm1lbW8iLCJmZXRjaCIsImVuZHBvaW50IiwiYXJncyIsInNjaGVtYSIsIm1ldGEiLCJwcm9taXNlIiwidGhlbiIsImlucHV0IiwiZmV0Y2hJZlN0YWxlIiwiZGF0YSIsImV4cGlyZXNBdCIsImV4cGlyeVN0YXR1cyIsImdldFJlc3BvbnNlIiwiSW52YWxpZCIsIkRhdGUiLCJub3ciLCJpbnZhbGlkYXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpbnZhbGlkYXRlQWxsIiwib3B0aW9ucyIsImtleSIsInRlc3RLZXkiLCJleHBpcmVBbGwiLCJyZXNldEVudGlyZVN0b3JlIiwic2V0UmVzcG9uc2UiLCJyZXN0IiwicmVzcG9uc2UiLCJsZW5ndGgiLCJzbGljZSIsInNldEVycm9yIiwiZXJyb3IiLCJzdWJzY3JpYmUiLCJ1bnN1YnNjcmliZSIsInNuYXBzaG90Iiwic3RhdGUiLCJmZXRjaGVkQXQiLCJTbmFwc2hvdCIsImdldEVycm9yIiwiZW5kcG9pbnRzIiwidW5kZWZpbmVkIiwiZXJyb3JQb2xpY3kiLCJtYXAiLCJpc0FjdGl2ZSIsImNhY2hlRW5kcG9pbnRzIiwic2hvdWxkUXVlcnkiLCJidWlsZFF1ZXJ5S2V5IiwiZW50aXRpZXMiLCJpbmRleGVzIiwiVmFsaWQiLCJJbmZpbml0eSIsImlzSW52YWxpZCIsInNjaGVtYUhhc0VudGl0eSIsImludmFsaWRhdGVkIiwiaW52YWxpZElmU3RhbGUiLCJJbnZhbGlkSWZTdGFsZSIsInBhdGhzIiwiZ2V0U2NoZW1hUmVzcG9uc2UiLCJlbnRpdHlNZXRhIiwiZ2V0IiwiSlNPTiIsInN0cmluZ2lmeSIsInF1ZXJ5IiwiaW52YWxpZERlbm9ybWFsaXplIiwiZW50aXR5RXhwaXJlc0F0IiwicGsiLCJfZW50aXR5TWV0YSRrZXkiLCJlbnRpdHlFeHBpcnkiLCJBcnJheSIsImlzQXJyYXkiLCJuZXN0ZWRTY2hlbWEiLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb21lIiwieCIsImNvbnRyb2xsZXIiLCJhYm9ydCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL0NvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBFcnJvclR5cGVzLFxuICBTbmFwc2hvdEludGVyZmFjZSxcbiAgU2NoZW1hLFxuICBEZW5vcm1hbGl6ZSxcbiAgUXVlcnlhYmxlLFxuICBTY2hlbWFBcmdzLFxufSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmltcG9ydCB7XG4gIEV4cGlyeVN0YXR1cyxcbiAgRW5kcG9pbnRJbnRlcmZhY2UsXG4gIEZldGNoRnVuY3Rpb24sXG4gIFJlc29sdmVUeXBlLFxuICBEZW5vcm1hbGl6ZU51bGxhYmxlLFxuICBFbnRpdHlQYXRoLFxuICBNZW1vQ2FjaGUsXG4gIGlzRW50aXR5LFxuICBkZW5vcm1hbGl6ZSxcbiAgdmFsaWRhdGVRdWVyeUtleSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCBBYm9ydE9wdGltaXN0aWMgZnJvbSAnLi9BYm9ydE9wdGltaXN0aWMuanMnO1xuaW1wb3J0IGNyZWF0ZUV4cGlyZUFsbCBmcm9tICcuL2NyZWF0ZUV4cGlyZUFsbC5qcyc7XG5pbXBvcnQgY3JlYXRlRmV0Y2ggZnJvbSAnLi9jcmVhdGVGZXRjaC5qcyc7XG5pbXBvcnQgY3JlYXRlSW52YWxpZGF0ZSBmcm9tICcuL2NyZWF0ZUludmFsaWRhdGUuanMnO1xuaW1wb3J0IGNyZWF0ZUludmFsaWRhdGVBbGwgZnJvbSAnLi9jcmVhdGVJbnZhbGlkYXRlQWxsLmpzJztcbmltcG9ydCBjcmVhdGVSZXNldCBmcm9tICcuL2NyZWF0ZVJlc2V0LmpzJztcbmltcG9ydCBjcmVhdGVTZXQgZnJvbSAnLi9jcmVhdGVTZXQuanMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlVW5zdWJzY3JpcHRpb24sXG4gIGNyZWF0ZVN1YnNjcmlwdGlvbixcbn0gZnJvbSAnLi9jcmVhdGVTdWJzY3JpcHRpb24uanMnO1xuaW1wb3J0IGVuc3VyZVBvam8gZnJvbSAnLi9lbnN1cmVQb2pvLmpzJztcbmltcG9ydCB0eXBlIHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUvcmVkdWNlci9jcmVhdGVSZWR1Y2VyLmpzJztcbmltcG9ydCBzZWxlY3RNZXRhIGZyb20gJy4uL3N0YXRlL3NlbGVjdE1ldGEuanMnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25UeXBlcywgU3RhdGUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIEdlbmVyaWNEaXNwYXRjaCA9ICh2YWx1ZTogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuZXhwb3J0IHR5cGUgRGF0YUNsaWVudERpc3BhdGNoID0gKHZhbHVlOiBBY3Rpb25UeXBlcykgPT4gUHJvbWlzZTx2b2lkPjtcblxuaW50ZXJmYWNlIENvbnN0cnVjdG9yUHJvcHM8RCBleHRlbmRzIEdlbmVyaWNEaXNwYXRjaCA9IERhdGFDbGllbnREaXNwYXRjaD4ge1xuICBkaXNwYXRjaD86IEQ7XG4gIGdldFN0YXRlPzogKCkgPT4gU3RhdGU8dW5rbm93bj47XG4gIG1lbW8/OiBQaWNrPE1lbW9DYWNoZSwgJ2Rlbm9ybWFsaXplJyB8ICdxdWVyeScgfCAnYnVpbGRRdWVyeUtleSc+O1xufVxuXG5jb25zdCB1bnNldERpc3BhdGNoID0gKGFjdGlvbjogdW5rbm93bik6IFByb21pc2U8dm9pZD4gPT4ge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYERpc3BhdGNoaW5nIHdoaWxlIGNvbnN0cnVjdGluZyB5b3VyIG1pZGRsZXdhcmUgaXMgbm90IGFsbG93ZWQuIGAgK1xuICAgICAgYE90aGVyIG1pZGRsZXdhcmUgd291bGQgbm90IGJlIGFwcGxpZWQgdG8gdGhpcyBkaXNwYXRjaC5gLFxuICApO1xufTtcbmNvbnN0IHVuc2V0U3RhdGUgPSAoKTogU3RhdGU8dW5rbm93bj4gPT4ge1xuICAvLyBUaGlzIGlzIG9ubHkgdGhlIHZhbHVlIHVudGlsIGl0IGlzIHNldCBieSB0aGUgQ2FjaGVQcm92aWRlclxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICByZXR1cm4gaW5pdGlhbFN0YXRlO1xufTtcblxuLyoqXG4gKiBJbXBlcmF0aXZlIGNvbnRyb2wgb2YgUmVhY3RpdmUgRGF0YSBDbGllbnQgc3RvcmVcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udHJvbGxlcjxcbiAgRCBleHRlbmRzIEdlbmVyaWNEaXNwYXRjaCA9IERhdGFDbGllbnREaXNwYXRjaCxcbj4ge1xuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhbiBhY3Rpb24gdG8gUmVhY3RpdmUgRGF0YSBDbGllbnQgcmVkdWNlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNkaXNwYXRjaFxuICAgKi9cbiAgZGVjbGFyZSByZWFkb25seSBkaXNwYXRjaDogRDtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGxhdGVzdCBzdGF0ZSBzbmFwc2hvdCB0aGF0IGlzIGZ1bGx5IGNvbW1pdHRlZC5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBlcmF0aXZlIHVzZS1jYXNlcyBsaWtlIGV2ZW50IGhhbmRsZXJzLlxuICAgKiBUaGlzIHNob3VsZCAqbm90KiBiZSB1c2VkIHRvIHJlbmRlcjsgaW5zdGVhZCB1c2VTdXNwZW5zZSgpIG9yIHVzZUNhY2hlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNnZXRTdGF0ZVxuICAgKi9cbiAgZGVjbGFyZSByZWFkb25seSBnZXRTdGF0ZTogKCkgPT4gU3RhdGU8dW5rbm93bj47XG4gIC8qKlxuICAgKiBTaW5nbGV0b24gdG8gbWFpbnRhaW4gcmVmZXJlbnRpYWwgZXF1YWxpdHkgYmV0d2VlbiBjYWxsc1xuICAgKi9cbiAgZGVjbGFyZSByZWFkb25seSBtZW1vOiBQaWNrPFxuICAgIE1lbW9DYWNoZSxcbiAgICAnZGVub3JtYWxpemUnIHwgJ3F1ZXJ5JyB8ICdidWlsZFF1ZXJ5S2V5J1xuICA+O1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBkaXNwYXRjaCA9IHVuc2V0RGlzcGF0Y2ggYXMgYW55LFxuICAgIGdldFN0YXRlID0gdW5zZXRTdGF0ZSxcbiAgICBtZW1vID0gbmV3IE1lbW9DYWNoZSgpLFxuICB9OiBDb25zdHJ1Y3RvclByb3BzPEQ+ID0ge30pIHtcbiAgICB0aGlzLmRpc3BhdGNoID0gZGlzcGF0Y2g7XG4gICAgdGhpcy5nZXRTdGF0ZSA9IGdldFN0YXRlO1xuICAgIHRoaXMubWVtbyA9IG1lbW87XG4gIH1cblxuICAvKioqKioqKioqKioqKioqIEFjdGlvbiBEaXNwYXRjaGVycyAqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGVuZHBvaW50IHdpdGggZ2l2ZW4gYXJncywgdXBkYXRpbmcgdGhlIFJlYWN0aXZlIERhdGEgQ2xpZW50IGNhY2hlIHdpdGggdGhlIHJlc3BvbnNlIG9yIGVycm9yIHVwb24gY29tcGxldGlvbi5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNmZXRjaFxuICAgKi9cbiAgZmV0Y2ggPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYgeyB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+IH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dXG4gICk6IEVbJ3NjaGVtYSddIGV4dGVuZHMgdW5kZWZpbmVkIHwgbnVsbCA/IFJldHVyblR5cGU8RT5cbiAgOiBQcm9taXNlPERlbm9ybWFsaXplPEVbJ3NjaGVtYSddPj4gPT4ge1xuICAgIGNvbnN0IGFjdGlvbiA9IGNyZWF0ZUZldGNoKGVuZHBvaW50LCB7XG4gICAgICBhcmdzLFxuICAgIH0pO1xuICAgIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcblxuICAgIGlmIChlbmRwb2ludC5zY2hlbWEpIHtcbiAgICAgIHJldHVybiBhY3Rpb24ubWV0YS5wcm9taXNlLnRoZW4oaW5wdXQgPT5cbiAgICAgICAgZGVub3JtYWxpemUoaW5wdXQsIGVuZHBvaW50LnNjaGVtYSwge30sIGFyZ3MpLFxuICAgICAgKSBhcyBhbnk7XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb24ubWV0YS5wcm9taXNlIGFzIGFueTtcbiAgfTtcblxuICAvKipcbiAgICogRmV0Y2hlcyBvbmx5IGlmIGVuZHBvaW50IGlzIGNvbnNpZGVyZWQgJ3N0YWxlJzsgb3RoZXJ3aXNlIHJldHVybnMgdW5kZWZpbmVkXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZmV0Y2hJZlN0YWxlXG4gICAqL1xuICBmZXRjaElmU3RhbGUgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYgeyB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+IH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dXG4gICk6IEVbJ3NjaGVtYSddIGV4dGVuZHMgdW5kZWZpbmVkIHwgbnVsbCA/IFJldHVyblR5cGU8RT4gfCBSZXNvbHZlVHlwZTxFPlxuICA6IFByb21pc2U8RGVub3JtYWxpemU8RVsnc2NoZW1hJ10+PiB8IERlbm9ybWFsaXplPEVbJ3NjaGVtYSddPiA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCBleHBpcmVzQXQsIGV4cGlyeVN0YXR1cyB9ID0gdGhpcy5nZXRSZXNwb25zZShcbiAgICAgIGVuZHBvaW50LFxuICAgICAgLi4uYXJncyxcbiAgICAgIHRoaXMuZ2V0U3RhdGUoKSxcbiAgICApO1xuICAgIGlmIChleHBpcnlTdGF0dXMgIT09IEV4cGlyeVN0YXR1cy5JbnZhbGlkICYmIERhdGUubm93KCkgPD0gZXhwaXJlc0F0KVxuICAgICAgcmV0dXJuIGRhdGEgYXMgYW55O1xuICAgIHJldHVybiB0aGlzLmZldGNoKGVuZHBvaW50LCAuLi5hcmdzKTtcbiAgfTtcblxuICAvKipcbiAgICogRm9yY2VzIHJlZmV0Y2hpbmcgYW5kIHN1c3BlbnNlIG9uIHVzZVN1c3BlbnNlIHdpdGggdGhlIHNhbWUgRW5kcG9pbnQgYW5kIHBhcmFtZXRlcnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjaW52YWxpZGF0ZVxuICAgKi9cbiAgaW52YWxpZGF0ZSA9IDxFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB8IHJlYWRvbmx5IFtudWxsXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgYXJnc1swXSAhPT0gbnVsbCA/XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICBjcmVhdGVJbnZhbGlkYXRlKGVuZHBvaW50LCB7XG4gICAgICAgICAgYXJnczogYXJncyBhcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIDogUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgLyoqXG4gICAqIEZvcmNlcyByZWZldGNoaW5nIGFuZCBzdXNwZW5zZSBvbiB1c2VTdXNwZW5zZSBvbiBhbGwgbWF0Y2hpbmcgZW5kcG9pbnQgcmVzdWx0IGtleXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjaW52YWxpZGF0ZUFsbFxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbnZhbGlkYXRpb24gaXMgY29tbWl0ZWQuXG4gICAqL1xuICBpbnZhbGlkYXRlQWxsID0gKG9wdGlvbnM6IHsgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuIH0pID0+XG4gICAgdGhpcy5kaXNwYXRjaChjcmVhdGVJbnZhbGlkYXRlQWxsKChrZXk6IHN0cmluZykgPT4gb3B0aW9ucy50ZXN0S2V5KGtleSkpKTtcblxuICAvKipcbiAgICogU2V0cyBhbGwgbWF0Y2hpbmcgZW5kcG9pbnQgcmVzdWx0IGtleXMgdG8gYmUgU1RBTEUuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZXhwaXJlQWxsXG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGV4cGlyeSBpcyBjb21taXRlZC4gKk5PVCogZmV0Y2ggcHJvbWlzZVxuICAgKi9cbiAgZXhwaXJlQWxsID0gKG9wdGlvbnM6IHsgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuIH0pID0+XG4gICAgdGhpcy5kaXNwYXRjaChjcmVhdGVFeHBpcmVBbGwoKGtleTogc3RyaW5nKSA9PiBvcHRpb25zLnRlc3RLZXkoa2V5KSkpO1xuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGVudGlyZSBSZWFjdGl2ZSBEYXRhIENsaWVudCBjYWNoZS4gQWxsIGluZmxpZ2h0IHJlcXVlc3RzIHdpbGwgbm90IHJlc29sdmUuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjcmVzZXRFbnRpcmVTdG9yZVxuICAgKi9cbiAgcmVzZXRFbnRpcmVTdG9yZSA9ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHRoaXMuZGlzcGF0Y2goY3JlYXRlUmVzZXQoKSk7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyByZXNwb25zZSBpbiBjYWNoZSBmb3IgZ2l2ZW4gRW5kcG9pbnQgYW5kIGFyZ3MuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc2V0XG4gICAqL1xuICBzZXRSZXNwb25zZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIGFueV1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2U6IFJlc29sdmVUeXBlPEU+ID0gcmVzdFtyZXN0Lmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGFjdGlvbiA9IGNyZWF0ZVNldChlbmRwb2ludCwge1xuICAgICAgYXJnczogcmVzdC5zbGljZSgwLCByZXN0Lmxlbmd0aCAtIDEpIGFzIFBhcmFtZXRlcnM8RT4sXG4gICAgICByZXNwb25zZSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChhY3Rpb24pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgdGhlIHJlc3VsdCBvZiBFbmRwb2ludCBhbmQgYXJncyBhcyB0aGUgZXJyb3IgcHJvdmlkZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc2V0RXJyb3JcbiAgICovXG4gIHNldEVycm9yID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gICAgfSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5yZXN0OiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPiwgRXJyb3JdXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBFcnJvciA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhY3Rpb24gPSBjcmVhdGVTZXQoZW5kcG9pbnQsIHtcbiAgICAgIGFyZ3M6IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEU+LFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBlcnJvcjogdHJ1ZSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChhY3Rpb24pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbiBpbmZsaWdodCBmZXRjaC4gYGZldGNoZWRBdGAgc2hvdWxkIGBmZXRjaGAncyBgY3JlYXRlZEF0YFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI3Jlc29sdmVcbiAgICovXG4gIHJlc29sdmUgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIG1ldGE6XG4gICAgICB8IHtcbiAgICAgICAgICBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl07XG4gICAgICAgICAgcmVzcG9uc2U6IEVycm9yO1xuICAgICAgICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgICAgIGVycm9yOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl07XG4gICAgICAgICAgcmVzcG9uc2U6IGFueTtcbiAgICAgICAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgICAgICBlcnJvcj86IGZhbHNlIHwgdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChjcmVhdGVTZXQoZW5kcG9pbnQsIG1ldGEgYXMgYW55KSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1hcmtzIGEgbmV3IHN1YnNjcmlwdGlvbiB0byBhIGdpdmVuIEVuZHBvaW50LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI3N1YnNjcmliZVxuICAgKi9cbiAgc3Vic2NyaWJlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZTxcbiAgICAgIEZldGNoRnVuY3Rpb24sXG4gICAgICBTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQgfCBmYWxzZVxuICAgID4sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsID9cbiAgICAgIHRoaXMuZGlzcGF0Y2goXG4gICAgICAgIGNyZWF0ZVN1YnNjcmlwdGlvbihlbmRwb2ludCwge1xuICAgICAgICAgIGFyZ3M6IGFyZ3MgYXMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8qKlxuICAgKiBNYXJrcyBjb21wbGV0aW9uIG9mIHN1YnNjcmlwdGlvbiB0byBhIGdpdmVuIEVuZHBvaW50LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI3Vuc3Vic2NyaWJlXG4gICAqL1xuICB1bnN1YnNjcmliZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8XG4gICAgICBGZXRjaEZ1bmN0aW9uLFxuICAgICAgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkIHwgZmFsc2VcbiAgICA+LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB8IHJlYWRvbmx5IFtudWxsXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgYXJnc1swXSAhPT0gbnVsbCA/XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICBjcmVhdGVVbnN1YnNjcmlwdGlvbihlbmRwb2ludCwge1xuICAgICAgICAgIGFyZ3M6IGFyZ3MgYXMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8qKioqKioqKioqKioqKiogTW9yZSAqKioqKioqKioqKioqKiovXG5cbiAgLyogVE9ETzpcbiAgYWJvcnQgPSA8RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl1cbiAgKTogUHJvbWlzZTx2b2lkPlxuICAqL1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgc25hcHNob3QgKGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TbmFwc2hvdClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzbmFwc2hvdFxuICAgKi9cbiAgc25hcHNob3QgPSAoc3RhdGU6IFN0YXRlPHVua25vd24+LCBmZXRjaGVkQXQ/OiBudW1iZXIpOiBTbmFwc2hvdEludGVyZmFjZSA9PiB7XG4gICAgcmV0dXJuIG5ldyBTbmFwc2hvdCh0aGlzLCBzdGF0ZSwgZmV0Y2hlZEF0KTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgZXJyb3IsIGlmIGFueSwgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQuIFJldHVybnMgdW5kZWZpbmVkIGZvciBubyBlcnJvcnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZ2V0RXJyb3JcbiAgICovXG4gIGdldEVycm9yID0gPFxuICAgIEUgZXh0ZW5kcyBQaWNrPEVuZHBvaW50SW50ZXJmYWNlLCAna2V5Jz4sXG4gICAgQXJncyBleHRlbmRzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0gfCByZWFkb25seSBbbnVsbF0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogWy4uLkFyZ3MsIFN0YXRlPHVua25vd24+XVxuICApOiBFcnJvclR5cGVzIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAocmVzdFswXSA9PT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IHN0YXRlID0gcmVzdFtyZXN0Lmxlbmd0aCAtIDFdIGFzIFN0YXRlPHVua25vd24+O1xuICAgIC8vIHRoaXMgaXMgdHlwZXNjcmlwdCBnZW5lcmljcyBicmVha2luZ1xuICAgIGNvbnN0IGFyZ3M6IGFueSA9IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEVbJ2tleSddPjtcbiAgICBjb25zdCBrZXkgPSBlbmRwb2ludC5rZXkoLi4uYXJncyk7XG5cbiAgICBjb25zdCBtZXRhID0gc2VsZWN0TWV0YShzdGF0ZSwga2V5KTtcbiAgICBjb25zdCBlcnJvciA9IHN0YXRlLmVuZHBvaW50c1trZXldO1xuXG4gICAgaWYgKGVycm9yICE9PSB1bmRlZmluZWQgJiYgbWV0YT8uZXJyb3JQb2xpY3kgPT09ICdzb2Z0JykgcmV0dXJuO1xuXG4gICAgcmV0dXJuIG1ldGE/LmVycm9yIGFzIGFueTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgKGdsb2JhbGx5IHJlZmVyZW50aWFsbHkgc3RhYmxlKSByZXNwb25zZSBmb3IgYSBnaXZlbiBlbmRwb2ludC9hcmdzIHBhaXIgZnJvbSBzdGF0ZSBnaXZlbi5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNnZXRSZXNwb25zZVxuICAgKi9cbiAgZ2V0UmVzcG9uc2U8RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5yZXN0OiByZWFkb25seSBbbnVsbCwgU3RhdGU8dW5rbm93bj5dXG4gICk6IHtcbiAgICBkYXRhOiBEZW5vcm1hbGl6ZU51bGxhYmxlPEVbJ3NjaGVtYSddPjtcbiAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cztcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgfTtcblxuICBnZXRSZXNwb25zZTxFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBTdGF0ZTx1bmtub3duPl1cbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9O1xuXG4gIGdldFJlc3BvbnNlPFxuICAgIEUgZXh0ZW5kcyBQaWNrPEVuZHBvaW50SW50ZXJmYWNlLCAna2V5JyB8ICdzY2hlbWEnIHwgJ2ludmFsaWRJZlN0YWxlJz4sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgW1xuICAgICAgLi4uKHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0gfCByZWFkb25seSBbbnVsbF0pLFxuICAgICAgU3RhdGU8dW5rbm93bj4sXG4gICAgXVxuICApOiB7XG4gICAgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47XG4gICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXM7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH07XG5cbiAgZ2V0UmVzcG9uc2UoXG4gICAgZW5kcG9pbnQ6IEVuZHBvaW50SW50ZXJmYWNlLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi51bmtub3duW10sIFN0YXRlPHVua25vd24+XVxuICApOiB7XG4gICAgZGF0YTogdW5rbm93bjtcbiAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cztcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgfSB7XG4gICAgY29uc3Qgc3RhdGUgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV0gYXMgU3RhdGU8dW5rbm93bj47XG4gICAgLy8gdGhpcyBpcyB0eXBlc2NyaXB0IGdlbmVyaWNzIGJyZWFraW5nXG4gICAgY29uc3QgYXJnczogYW55ID0gcmVzdFxuICAgICAgLnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSlcbiAgICAgIC8vIGhhbmRsZSBGb3JtRGF0YVxuICAgICAgLm1hcChlbnN1cmVQb2pvKTtcbiAgICBjb25zdCBpc0FjdGl2ZSA9IGFyZ3MubGVuZ3RoICE9PSAxIHx8IGFyZ3NbMF0gIT09IG51bGw7XG4gICAgY29uc3Qga2V5ID0gaXNBY3RpdmUgPyBlbmRwb2ludC5rZXkoLi4uYXJncykgOiAnJztcbiAgICBjb25zdCBjYWNoZUVuZHBvaW50cyA9IGlzQWN0aXZlID8gc3RhdGUuZW5kcG9pbnRzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2NoZW1hID0gZW5kcG9pbnQuc2NoZW1hO1xuICAgIGNvbnN0IG1ldGEgPSBzZWxlY3RNZXRhKHN0YXRlLCBrZXkpO1xuICAgIGxldCBleHBpcmVzQXQgPSBtZXRhPy5leHBpcmVzQXQ7XG4gICAgLy8gaWYgd2UgaGF2ZSBubyBlbmRwb2ludCBlbnRyeSwgYW5kIG91ciBlbmRwb2ludCBoYXMgYSBzY2hlbWEgLSB0cnkgcXVlcnlpbmcgdGhlIHN0b3JlXG4gICAgY29uc3Qgc2hvdWxkUXVlcnkgPSBjYWNoZUVuZHBvaW50cyA9PT0gdW5kZWZpbmVkICYmIHNjaGVtYSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgaW5wdXQgPVxuICAgICAgc2hvdWxkUXVlcnkgP1xuICAgICAgICAvLyBub3RoaW5nIGluIGVuZHBvaW50cyBjYWNoZSwgc28gdHJ5IHF1ZXJ5aW5nIGlmIHdlIGhhdmUgYSBzY2hlbWEgdG8gZG8gc29cbiAgICAgICAgdGhpcy5tZW1vLmJ1aWxkUXVlcnlLZXkoXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICBhcmdzLFxuICAgICAgICAgIHN0YXRlLmVudGl0aWVzIGFzIGFueSxcbiAgICAgICAgICBzdGF0ZS5pbmRleGVzLFxuICAgICAgICApXG4gICAgICA6IGNhY2hlRW5kcG9pbnRzO1xuXG4gICAgaWYgKCFpc0FjdGl2ZSkge1xuICAgICAgLy8gd2hlbiBub3QgYWN0aXZlIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5IGlucHV0IHdpdGhvdXQgZGVub3JtYWxpemluZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogaW5wdXQgYXMgYW55LFxuICAgICAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cy5WYWxpZCxcbiAgICAgICAgZXhwaXJlc0F0OiBJbmZpbml0eSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IGlzSW52YWxpZCA9IGZhbHNlO1xuICAgIGlmIChzaG91bGRRdWVyeSkge1xuICAgICAgaXNJbnZhbGlkID0gIXZhbGlkYXRlUXVlcnlLZXkoaW5wdXQpO1xuICAgIH0gZWxzZSBpZiAoIXNjaGVtYSB8fCAhc2NoZW1hSGFzRW50aXR5KHNjaGVtYSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IGNhY2hlRW5kcG9pbnRzLFxuICAgICAgICBleHBpcnlTdGF0dXM6XG4gICAgICAgICAgbWV0YT8uaW52YWxpZGF0ZWQgPyBFeHBpcnlTdGF0dXMuSW52YWxpZFxuICAgICAgICAgIDogY2FjaGVFbmRwb2ludHMgJiYgIWVuZHBvaW50LmludmFsaWRJZlN0YWxlID8gRXhwaXJ5U3RhdHVzLlZhbGlkXG4gICAgICAgICAgOiBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGUsXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlc0F0IHx8IDAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIHNlY29uZCBhcmd1bWVudCBpcyBmYWxzZSBpZiBhbnkgZW50aXRpZXMgYXJlIG1pc3NpbmdcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgY29uc3QgeyBkYXRhLCBwYXRocyB9ID0gdGhpcy5tZW1vLmRlbm9ybWFsaXplKFxuICAgICAgaW5wdXQsXG4gICAgICBzY2hlbWEsXG4gICAgICBzdGF0ZS5lbnRpdGllcyxcbiAgICAgIGFyZ3MsXG4gICAgKSBhcyB7IGRhdGE6IGFueTsgcGF0aHM6IEVudGl0eVBhdGhbXSB9O1xuXG4gICAgLy8gbm90ZTogaXNJbnZhbGlkIGNhbiBvbmx5IGJlIHRydWUgaWYgc2hvdWxkUXVlcnkgaXMgdHJ1ZVxuICAgIGlmICghZXhwaXJlc0F0ICYmIGlzSW52YWxpZCkgZXhwaXJlc0F0ID0gMTtcblxuICAgIHJldHVybiB0aGlzLmdldFNjaGVtYVJlc3BvbnNlKFxuICAgICAgZGF0YSxcbiAgICAgIHBhdGhzLFxuICAgICAgc3RhdGUuZW50aXR5TWV0YSxcbiAgICAgIGV4cGlyZXNBdCxcbiAgICAgIGVuZHBvaW50LmludmFsaWRJZlN0YWxlIHx8IGlzSW52YWxpZCxcbiAgICAgIG1ldGEsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyaWVzIHRoZSBzdG9yZSBmb3IgYSBRdWVyYWJsZSBzY2hlbWFcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNnZXRcbiAgICovXG4gIGdldDxTIGV4dGVuZHMgUXVlcnlhYmxlPihcbiAgICBzY2hlbWE6IFMsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgW1xuICAgICAgLi4uU2NoZW1hQXJnczxTPixcbiAgICAgIFBpY2s8U3RhdGU8dW5rbm93bj4sICdlbnRpdGllcycgfCAnZW50aXR5TWV0YSc+LFxuICAgIF1cbiAgKTogRGVub3JtYWxpemVOdWxsYWJsZTxTPiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RhdGUgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV0gYXMgU3RhdGU8YW55PjtcbiAgICAvLyB0aGlzIGlzIHR5cGVzY3JpcHQgZ2VuZXJpY3MgYnJlYWtpbmdcbiAgICBjb25zdCBhcmdzOiBhbnkgPSByZXN0XG4gICAgICAuc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKVxuICAgICAgLm1hcChlbnN1cmVQb2pvKSBhcyBTY2hlbWFBcmdzPFM+O1xuXG4gICAgLy8gTk9URTogZGlmZmVyZW50IG9yZGVycyBjYW4gcmVzdWx0IGluIGNhY2hlIGJ1c3RpbmcgaGVyZTsgYnV0IHNpbmNlIGl0J3MganVzdCBhIHBlcmYgcGVuYWx0eSB3ZSB3aWxsIGFsbG93IGZvciBub3dcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShhcmdzKTtcblxuICAgIHJldHVybiB0aGlzLm1lbW8ucXVlcnkoXG4gICAgICBrZXksXG4gICAgICBzY2hlbWEsXG4gICAgICBhcmdzLFxuICAgICAgc3RhdGUuZW50aXRpZXMgYXMgYW55LFxuICAgICAgc3RhdGUuaW5kZXhlcyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTY2hlbWFSZXNwb25zZTxUPihcbiAgICBkYXRhOiBULFxuICAgIHBhdGhzOiBFbnRpdHlQYXRoW10sXG4gICAgZW50aXR5TWV0YTogU3RhdGU8dW5rbm93bj5bJ2VudGl0eU1ldGEnXSxcbiAgICBleHBpcmVzQXQ6IG51bWJlcixcbiAgICBpbnZhbGlkSWZTdGFsZTogYm9vbGVhbixcbiAgICBtZXRhOiB7IGVycm9yPzogdW5rbm93bjsgaW52YWxpZGF0ZWQ/OiB1bmtub3duIH0gPSB7fSxcbiAgKToge1xuICAgIGRhdGE6IFQ7XG4gICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXM7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH0ge1xuICAgIGNvbnN0IGludmFsaWREZW5vcm1hbGl6ZSA9IHR5cGVvZiBkYXRhID09PSAnc3ltYm9sJztcblxuICAgIC8vIGZhbGxiYWNrIHRvIGVudGl0eSBleHBpcnkgdGltZVxuICAgIGlmICghZXhwaXJlc0F0KSB7XG4gICAgICBleHBpcmVzQXQgPSBlbnRpdHlFeHBpcmVzQXQocGF0aHMsIGVudGl0eU1ldGEpO1xuICAgIH1cblxuICAgIC8vIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2NvbmNlcHRzL2V4cGlyeS1wb2xpY3kjZXhwaXJ5LXN0YXR1c1xuICAgIC8vIHdlIGRvbid0IHRyYWNrIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhbGUgb3IgZnJlc2ggYmVjYXVzZSB0aGF0IGlzIHRpZWQgdG8gdHJpZ2dlcmluZ1xuICAgIC8vIGNvbmRpdGlvbnNcbiAgICBjb25zdCBleHBpcnlTdGF0dXMgPVxuICAgICAgbWV0YT8uaW52YWxpZGF0ZWQgfHwgKGludmFsaWREZW5vcm1hbGl6ZSAmJiAhbWV0YT8uZXJyb3IpID9cbiAgICAgICAgRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgIDogaW52YWxpZERlbm9ybWFsaXplIHx8IGludmFsaWRJZlN0YWxlID8gRXhwaXJ5U3RhdHVzLkludmFsaWRJZlN0YWxlXG4gICAgICA6IEV4cGlyeVN0YXR1cy5WYWxpZDtcblxuICAgIHJldHVybiB7IGRhdGEsIGV4cGlyeVN0YXR1cywgZXhwaXJlc0F0IH07XG4gIH1cbn1cblxuLy8gYmVuY2htYXJrOiBodHRwczovL3d3dy5tZWFzdXJldGhhdC5uZXQvQmVuY2htYXJrcy9TaG93LzI0NjkxLzAvbWluLXJlZHVjZXItdnMtaW1wZXJhdGl2ZS13aXRoLXBhdGhzXG4vLyBlYXJsaWVzdCBleHBpcnkgZGljdGF0ZXMgYWdlXG5mdW5jdGlvbiBlbnRpdHlFeHBpcmVzQXQoXG4gIHBhdGhzOiBFbnRpdHlQYXRoW10sXG4gIGVudGl0eU1ldGE6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7IC8vIFRoaXMgaXMgb25seSB0aGUgdmFsdWUgdW50aWwgaXQgaXMgc2V0IGJ5IHRoZSBDYWNoZVByb3ZpZGVyXG4gICAgICB9O1xuICAgIH07XG4gIH0sXG4pIHtcbiAgbGV0IGV4cGlyZXNBdCA9IEluZmluaXR5O1xuICBmb3IgKGNvbnN0IHsgcGssIGtleSB9IG9mIHBhdGhzKSB7XG4gICAgY29uc3QgZW50aXR5RXhwaXJ5ID0gZW50aXR5TWV0YVtrZXldPy5bcGtdPy5leHBpcmVzQXQ7XG4gICAgLy8gZXhwaXJlc0F0IHdpbGwgYWx3YXlzIHJlc29sdmUgdG8gZmFsc2Ugd2l0aCBhbnkgY29tcGFyaXNvblxuICAgIGlmIChlbnRpdHlFeHBpcnkgPCBleHBpcmVzQXQpIGV4cGlyZXNBdCA9IGVudGl0eUV4cGlyeTtcbiAgfVxuICByZXR1cm4gZXhwaXJlc0F0O1xufVxuXG4vKiogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNjaGVtYSBoYXMgYW55IGVudGl0aWVzLlxuICpcbiAqIFdpdGhvdXQgZW50aXRpZXMsIGRlbm9ybWFsaXphdGlvbiBpcyBub3QgbmVlZGVkLCBhbmQgcmVzdWx0cyBzaG91bGQgbm90IGJlIHF1ZXJpZWQuXG4gKi9cbmZ1bmN0aW9uIHNjaGVtYUhhc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IGJvb2xlYW4ge1xuICBpZiAoaXNFbnRpdHkoc2NoZW1hKSkgcmV0dXJuIHRydWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpXG4gICAgcmV0dXJuIHNjaGVtYS5sZW5ndGggIT09IDAgJiYgc2NoZW1hSGFzRW50aXR5KHNjaGVtYVswXSk7XG4gIGlmIChzY2hlbWEgJiYgKHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgY29uc3QgbmVzdGVkU2NoZW1hID1cbiAgICAgICdzY2hlbWEnIGluIHNjaGVtYSA/IChzY2hlbWEuc2NoZW1hIGFzIFJlY29yZDxzdHJpbmcsIFNjaGVtYT4pIDogc2NoZW1hO1xuICAgIGlmICh0eXBlb2YgbmVzdGVkU2NoZW1hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gc2NoZW1hSGFzRW50aXR5KG5lc3RlZFNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG5lc3RlZFNjaGVtYSkuc29tZSh4ID0+IHNjaGVtYUhhc0VudGl0eSh4KSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgdHlwZSB7IEVycm9yVHlwZXMgfTtcblxuY2xhc3MgU25hcHNob3Q8VCA9IHVua25vd24+IGltcGxlbWVudHMgU25hcHNob3RJbnRlcmZhY2Uge1xuICBwcml2YXRlIHN0YXRlOiBTdGF0ZTxUPjtcbiAgcHJpdmF0ZSBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYWJvcnQgPSBuZXcgQWJvcnRPcHRpbWlzdGljKCk7XG5cbiAgY29uc3RydWN0b3IoY29udHJvbGxlcjogQ29udHJvbGxlciwgc3RhdGU6IFN0YXRlPFQ+LCBmZXRjaGVkQXQgPSAwKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgdGhpcy5mZXRjaGVkQXQgPSBmZXRjaGVkQXQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqIERhdGEgQWNjZXNzICoqKioqKioqKioqKioqKi9cbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL1NuYXBzaG90I2dldFJlc3BvbnNlICovXG4gIGdldFJlc3BvbnNlPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgW251bGxdXG4gICk6IHtcbiAgICBkYXRhOiBEZW5vcm1hbGl6ZU51bGxhYmxlPEVbJ3NjaGVtYSddPjtcbiAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cztcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgfTtcblxuICBnZXRSZXNwb25zZTxFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XVxuICApOiB7XG4gICAgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47XG4gICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXM7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH07XG5cbiAgZ2V0UmVzcG9uc2U8XG4gICAgRSBleHRlbmRzIFBpY2s8RW5kcG9pbnRJbnRlcmZhY2UsICdrZXknIHwgJ3NjaGVtYScgfCAnaW52YWxpZElmU3RhbGUnPixcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IHtcbiAgICBkYXRhOiBEZW5vcm1hbGl6ZU51bGxhYmxlPEVbJ3NjaGVtYSddPjtcbiAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cztcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgfTtcblxuICBnZXRSZXNwb25zZTxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleScgfCAnc2NoZW1hJyB8ICdpbnZhbGlkSWZTdGFsZSc+LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0gfCByZWFkb25seSBbbnVsbF1cbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFJlc3BvbnNlKGVuZHBvaW50LCAuLi5hcmdzLCB0aGlzLnN0YXRlKTtcbiAgfVxuXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRFcnJvciAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRFcnJvcihlbmRwb2ludCwgLi4uYXJncywgdGhpcy5zdGF0ZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlZCBtZW1vaXplZCB2YWx1ZSBmb3IgYW55IFF1ZXJhYmxlIHNjaGVtYVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRcbiAgICovXG4gIGdldDxTIGV4dGVuZHMgUXVlcnlhYmxlPihcbiAgICBzY2hlbWE6IFMsXG4gICAgLi4uYXJnczogU2NoZW1hQXJnczxTPlxuICApOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldChzY2hlbWEsIC4uLmFyZ3MsIHRoaXMuc3RhdGUpO1xuICB9XG59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
|
|
@@ -5,4 +5,4 @@ export default function createExpireAll(testKey) {
|
|
|
5
5
|
testKey
|
|
6
6
|
};
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFWFBJUkVBTExfVFlQRSIsImNyZWF0ZUV4cGlyZUFsbCIsInRlc3RLZXkiLCJ0eXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvY3JlYXRlRXhwaXJlQWxsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVYUElSRUFMTF9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBFeHBpcmVBbGxBY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUV4cGlyZUFsbChcbiAgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuLFxuKTogRXhwaXJlQWxsQWN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBFWFBJUkVBTExfVFlQRSxcbiAgICB0ZXN0S2V5LFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFjLFFBQVEsbUJBQW1CO0FBR2xELGVBQWUsU0FBU0MsZUFBZUEsQ0FDckNDLE9BQWlDLEVBQ2hCO0VBQ2pCLE9BQU87SUFDTEMsSUFBSSxFQUFFSCxjQUFjO0lBQ3BCRTtFQUNGLENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -28,4 +28,4 @@ export default function createFetch(endpoint, {
|
|
|
28
28
|
endpoint
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGRVRDSF9UWVBFIiwiY3JlYXRlRmV0Y2giLCJlbmRwb2ludCIsImFyZ3MiLCJrZXkiLCJyZXNvbHZlIiwicmVqZWN0IiwicHJvbWlzZSIsIlByb21pc2UiLCJhIiwiYiIsIm1ldGEiLCJ0aHJvdHRsZSIsInNpZGVFZmZlY3QiLCJjcmVhdGVkQXQiLCJEYXRlIiwibm93Iiwibm0iLCJ0eXBlIiwicGF5bG9hZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2NyZWF0ZUZldGNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnRJbnRlcmZhY2UgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgRkVUQ0hfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRmV0Y2hBY3Rpb24sIEZldGNoTWV0YSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqXG4gKiBSZXF1ZXN0aW5nIGEgZmV0Y2ggdG8gYmVnaW5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRmV0Y2g8XG4gIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHsgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPiB9LFxuPihcbiAgZW5kcG9pbnQ6IEUsXG4gIHsgYXJncyB9OiB7IGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB9LFxuKTogRmV0Y2hBY3Rpb248RT4ge1xuICBjb25zdCBrZXkgPSBlbmRwb2ludC5rZXkoLi4uYXJncyk7XG4gIGxldCByZXNvbHZlOiAodmFsdWU/OiBhbnkgfCBQcm9taXNlTGlrZTxhbnk+KSA9PiB2b2lkID0gMCBhcyBhbnk7XG4gIGxldCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQgPSAwIGFzIGFueTtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPGFueT4oKGEsIGIpID0+
|
|
31
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGRVRDSF9UWVBFIiwiY3JlYXRlRmV0Y2giLCJlbmRwb2ludCIsImFyZ3MiLCJrZXkiLCJyZXNvbHZlIiwicmVqZWN0IiwicHJvbWlzZSIsIlByb21pc2UiLCJhIiwiYiIsIm1ldGEiLCJ0aHJvdHRsZSIsInNpZGVFZmZlY3QiLCJjcmVhdGVkQXQiLCJEYXRlIiwibm93Iiwibm0iLCJ0eXBlIiwicGF5bG9hZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2NyZWF0ZUZldGNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnRJbnRlcmZhY2UgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgRkVUQ0hfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRmV0Y2hBY3Rpb24sIEZldGNoTWV0YSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqXG4gKiBSZXF1ZXN0aW5nIGEgZmV0Y2ggdG8gYmVnaW5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRmV0Y2g8XG4gIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHsgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPiB9LFxuPihcbiAgZW5kcG9pbnQ6IEUsXG4gIHsgYXJncyB9OiB7IGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB9LFxuKTogRmV0Y2hBY3Rpb248RT4ge1xuICBjb25zdCBrZXkgPSBlbmRwb2ludC5rZXkoLi4uYXJncyk7XG4gIGxldCByZXNvbHZlOiAodmFsdWU/OiBhbnkgfCBQcm9taXNlTGlrZTxhbnk+KSA9PiB2b2lkID0gMCBhcyBhbnk7XG4gIGxldCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQgPSAwIGFzIGFueTtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPGFueT4oKGEsIGIpID0+IHtcbiAgICBbcmVzb2x2ZSwgcmVqZWN0XSA9IFthLCBiXTtcbiAgfSk7XG4gIGNvbnN0IG1ldGE6IEZldGNoTWV0YSA9IHtcbiAgICBhcmdzLFxuICAgIGtleSxcbiAgICB0aHJvdHRsZTogIWVuZHBvaW50LnNpZGVFZmZlY3QsXG4gICAgcmVzb2x2ZSxcbiAgICByZWplY3QsXG4gICAgcHJvbWlzZSxcbiAgICBjcmVhdGVkQXQ6IERhdGUubm93KCksXG4gICAgbm06IGZhbHNlLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogRkVUQ0hfVFlQRSxcbiAgICBwYXlsb2FkOiAoKSA9PiBlbmRwb2ludCguLi5hcmdzKSBhcyBhbnksXG4gICAgbWV0YSxcbiAgICBlbmRwb2ludCxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBR0EsU0FBU0EsVUFBVSxRQUFRLG1CQUFtQjtBQUc5QztBQUNBO0FBQ0E7QUFDQSxlQUFlLFNBQVNDLFdBQVdBLENBR2pDQyxRQUFXLEVBQ1g7RUFBRUM7QUFBNEMsQ0FBQyxFQUMvQjtFQUNoQixNQUFNQyxHQUFHLEdBQUdGLFFBQVEsQ0FBQ0UsR0FBRyxDQUFDLEdBQUdELElBQUksQ0FBQztFQUNqQyxJQUFJRSxPQUFpRCxHQUFHLENBQVE7RUFDaEUsSUFBSUMsTUFBOEIsR0FBRyxDQUFRO0VBQzdDLE1BQU1DLE9BQU8sR0FBRyxJQUFJQyxPQUFPLENBQU0sQ0FBQ0MsQ0FBQyxFQUFFQyxDQUFDLEtBQUs7SUFDekMsQ0FBQ0wsT0FBTyxFQUFFQyxNQUFNLENBQUMsR0FBRyxDQUFDRyxDQUFDLEVBQUVDLENBQUMsQ0FBQztFQUM1QixDQUFDLENBQUM7RUFDRixNQUFNQyxJQUFlLEdBQUc7SUFDdEJSLElBQUk7SUFDSkMsR0FBRztJQUNIUSxRQUFRLEVBQUUsQ0FBQ1YsUUFBUSxDQUFDVyxVQUFVO0lBQzlCUixPQUFPO0lBQ1BDLE1BQU07SUFDTkMsT0FBTztJQUNQTyxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUM7SUFDckJDLEVBQUUsRUFBRTtFQUNOLENBQUM7RUFFRCxPQUFPO0lBQ0xDLElBQUksRUFBRWxCLFVBQVU7SUFDaEJtQixPQUFPLEVBQUVBLENBQUEsS0FBTWpCLFFBQVEsQ0FBQyxHQUFHQyxJQUFJLENBQVE7SUFDdkNRLElBQUk7SUFDSlQ7RUFDRixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -9,4 +9,4 @@ export default function createInvalidate(endpoint, {
|
|
|
9
9
|
}
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTlZBTElEQVRFX1RZUEUiLCJjcmVhdGVJbnZhbGlkYXRlIiwiZW5kcG9pbnQiLCJhcmdzIiwidHlwZSIsIm1ldGEiLCJrZXkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9jcmVhdGVJbnZhbGlkYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnRJbnRlcmZhY2UgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgSU5WQUxJREFURV9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBJbnZhbGlkYXRlQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkYXRlPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gIGVuZHBvaW50OiBFLFxuICB7IGFyZ3MgfTogeyBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfSxcbik6IEludmFsaWRhdGVBY3Rpb24ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IElOVkFMSURBVEVfVFlQRSxcbiAgICBtZXRhOiB7XG4gICAgICBrZXk6IGVuZHBvaW50LmtleSguLi5hcmdzKSxcbiAgICB9LFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxlQUFlLFFBQVEsbUJBQW1CO0FBR25ELGVBQWUsU0FBU0MsZ0JBQWdCQSxDQUN0Q0MsUUFBVyxFQUNYO0VBQUVDO0FBQTRDLENBQUMsRUFDN0I7RUFDbEIsT0FBTztJQUNMQyxJQUFJLEVBQUVKLGVBQWU7SUFDckJLLElBQUksRUFBRTtNQUNKQyxHQUFHLEVBQUVKLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDLEdBQUdILElBQUk7SUFDM0I7RUFDRixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -5,4 +5,4 @@ export default function createInvalidateAll(testKey) {
|
|
|
5
5
|
testKey
|
|
6
6
|
};
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTlZBTElEQVRFQUxMX1RZUEUiLCJjcmVhdGVJbnZhbGlkYXRlQWxsIiwidGVzdEtleSIsInR5cGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9jcmVhdGVJbnZhbGlkYXRlQWxsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElOVkFMSURBVEVBTExfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgSW52YWxpZGF0ZUFsbEFjdGlvbiB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW52YWxpZGF0ZUFsbChcbiAgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuLFxuKTogSW52YWxpZGF0ZUFsbEFjdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogSU5WQUxJREFURUFMTF9UWVBFLFxuICAgIHRlc3RLZXksXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGtCQUFrQixRQUFRLG1CQUFtQjtBQUd0RCxlQUFlLFNBQVNDLG1CQUFtQkEsQ0FDekNDLE9BQWlDLEVBQ1o7RUFDckIsT0FBTztJQUNMQyxJQUFJLEVBQUVILGtCQUFrQjtJQUN4QkU7RUFDRixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -24,4 +24,4 @@ export default function createOptimistic(endpoint, {
|
|
|
24
24
|
};
|
|
25
25
|
return action;
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPUFRJTUlTVElDX1RZUEUiLCJjcmVhdGVPcHRpbWlzdGljIiwiZW5kcG9pbnQiLCJhcmdzIiwiZmV0Y2hlZEF0IiwiX2VuZHBvaW50JGRhdGFFeHBpcnlMIiwiZXhwaXJ5TGVuZ3RoIiwiZGF0YUV4cGlyeUxlbmd0aCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkVycm9yIiwibm93IiwiRGF0ZSIsIm1ldGEiLCJkYXRlIiwiZXhwaXJlc0F0Iiwia2V5IiwiYWN0aW9uIiwidHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2NyZWF0ZU9wdGltaXN0aWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmRwb2ludEludGVyZmFjZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50VXBkYXRlRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IE9QVElNSVNUSUNfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgT3B0aW1pc3RpY0FjdGlvbiB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlT3B0aW1pc3RpYzxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0LFxuICB9OiB7XG4gICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICB9LFxuKTogT3B0aW1pc3RpY0FjdGlvbjxFPiB7XG4gIGNvbnN0IGV4cGlyeUxlbmd0aDogbnVtYmVyID0gZW5kcG9pbnQuZGF0YUV4cGlyeUxlbmd0aCA/PyA2MDAwMDtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIGV4cGlyeUxlbmd0aCA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05lZ2F0aXZlIGV4cGlyeSBsZW5ndGggYXJlIG5vdCBhbGxvd2VkLicpO1xuICB9XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGNvbnN0IG1ldGE6IE9wdGltaXN0aWNBY3Rpb25bJ21ldGEnXSA9IHtcbiAgICBhcmdzLFxuICAgIGZldGNoZWRBdCxcbiAgICBkYXRlOiBub3csXG4gICAgZXhwaXJlc0F0OiBub3cgKyBleHBpcnlMZW5ndGgsXG4gICAga2V5OiBlbmRwb2ludC5rZXkoLi4uYXJncyksXG4gIH07XG5cbiAgY29uc3QgYWN0aW9uOiBPcHRpbWlzdGljQWN0aW9uPEU+
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPUFRJTUlTVElDX1RZUEUiLCJjcmVhdGVPcHRpbWlzdGljIiwiZW5kcG9pbnQiLCJhcmdzIiwiZmV0Y2hlZEF0IiwiX2VuZHBvaW50JGRhdGFFeHBpcnlMIiwiZXhwaXJ5TGVuZ3RoIiwiZGF0YUV4cGlyeUxlbmd0aCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkVycm9yIiwibm93IiwiRGF0ZSIsIm1ldGEiLCJkYXRlIiwiZXhwaXJlc0F0Iiwia2V5IiwiYWN0aW9uIiwidHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2NyZWF0ZU9wdGltaXN0aWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmRwb2ludEludGVyZmFjZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50VXBkYXRlRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IE9QVElNSVNUSUNfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgT3B0aW1pc3RpY0FjdGlvbiB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlT3B0aW1pc3RpYzxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0LFxuICB9OiB7XG4gICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICB9LFxuKTogT3B0aW1pc3RpY0FjdGlvbjxFPiB7XG4gIGNvbnN0IGV4cGlyeUxlbmd0aDogbnVtYmVyID0gZW5kcG9pbnQuZGF0YUV4cGlyeUxlbmd0aCA/PyA2MDAwMDtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIGV4cGlyeUxlbmd0aCA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05lZ2F0aXZlIGV4cGlyeSBsZW5ndGggYXJlIG5vdCBhbGxvd2VkLicpO1xuICB9XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGNvbnN0IG1ldGE6IE9wdGltaXN0aWNBY3Rpb25bJ21ldGEnXSA9IHtcbiAgICBhcmdzLFxuICAgIGZldGNoZWRBdCxcbiAgICBkYXRlOiBub3csXG4gICAgZXhwaXJlc0F0OiBub3cgKyBleHBpcnlMZW5ndGgsXG4gICAga2V5OiBlbmRwb2ludC5rZXkoLi4uYXJncyksXG4gIH07XG5cbiAgY29uc3QgYWN0aW9uOiBPcHRpbWlzdGljQWN0aW9uPEU+ID0ge1xuICAgIHR5cGU6IE9QVElNSVNUSUNfVFlQRSxcbiAgICBlbmRwb2ludCxcbiAgICBtZXRhLFxuICB9O1xuICByZXR1cm4gYWN0aW9uO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxlQUFlLFFBQVEsbUJBQW1CO0FBR25ELGVBQWUsU0FBU0MsZ0JBQWdCQSxDQUt0Q0MsUUFBVyxFQUNYO0VBQ0VDLElBQUk7RUFDSkM7QUFJRixDQUFDLEVBQ29CO0VBQUEsSUFBQUMscUJBQUE7RUFDckIsTUFBTUMsWUFBb0IsSUFBQUQscUJBQUEsR0FBR0gsUUFBUSxDQUFDSyxnQkFBZ0IsWUFBQUYscUJBQUEsR0FBSSxLQUFLO0VBQy9EO0VBQ0EsSUFBSUcsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxhQUFhLElBQUlKLFlBQVksR0FBRyxDQUFDLEVBQUU7SUFDOUQsTUFBTSxJQUFJSyxLQUFLLENBQUMseUNBQXlDLENBQUM7RUFDNUQ7RUFDQSxNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0QsR0FBRyxDQUFDLENBQUM7RUFDdEIsTUFBTUUsSUFBOEIsR0FBRztJQUNyQ1gsSUFBSTtJQUNKQyxTQUFTO0lBQ1RXLElBQUksRUFBRUgsR0FBRztJQUNUSSxTQUFTLEVBQUVKLEdBQUcsR0FBR04sWUFBWTtJQUM3QlcsR0FBRyxFQUFFZixRQUFRLENBQUNlLEdBQUcsQ0FBQyxHQUFHZCxJQUFJO0VBQzNCLENBQUM7RUFFRCxNQUFNZSxNQUEyQixHQUFHO0lBQ2xDQyxJQUFJLEVBQUVuQixlQUFlO0lBQ3JCRSxRQUFRO0lBQ1JZO0VBQ0YsQ0FBQztFQUNELE9BQU9JLE1BQU07QUFDZiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -5,4 +5,4 @@ export default function createReset() {
|
|
|
5
5
|
date: Date.now()
|
|
6
6
|
};
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSRVNFVF9UWVBFIiwiY3JlYXRlUmVzZXQiLCJ0eXBlIiwiZGF0ZSIsIkRhdGUiLCJub3ciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9jcmVhdGVSZXNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSRVNFVF9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNldEFjdGlvbiB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzZXQoKTogUmVzZXRBY3Rpb24ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFJFU0VUX1RZUEUsXG4gICAgZGF0ZTogRGF0ZS5ub3coKSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLG1CQUFtQjtBQUc5QyxlQUFlLFNBQVNDLFdBQVdBLENBQUEsRUFBZ0I7RUFDakQsT0FBTztJQUNMQyxJQUFJLEVBQUVGLFVBQVU7SUFDaEJHLElBQUksRUFBRUMsSUFBSSxDQUFDQyxHQUFHLENBQUM7RUFDakIsQ0FBQztBQUNIIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -29,4 +29,4 @@ export default function createSet(endpoint, {
|
|
|
29
29
|
if (error) action.error = true;
|
|
30
30
|
return action;
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbnN1cmVQb2pvIiwiU0VUX1RZUEUiLCJjcmVhdGVTZXQiLCJlbmRwb2ludCIsImFyZ3MiLCJmZXRjaGVkQXQiLCJyZXNwb25zZSIsImVycm9yIiwiX2VuZHBvaW50JGVycm9yRXhwaXJ5IiwiX2VuZHBvaW50JGRhdGFFeHBpcnlMIiwiZXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiRXJyb3IiLCJub3ciLCJEYXRlIiwibWV0YSIsIm1hcCIsImRhdGUiLCJleHBpcmVzQXQiLCJrZXkiLCJhY3Rpb24iLCJ0eXBlIiwicGF5bG9hZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2NyZWF0ZVNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50SW50ZXJmYWNlLCBSZXNvbHZlVHlwZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgZW5zdXJlUG9qbyBmcm9tICcuL2Vuc3VyZVBvam8uanMnO1xuaW1wb3J0IHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgU0VUX1RZUEUgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNldEFjdGlvbiwgU2V0TWV0YSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2V0PFxuICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgfSxcbj4oXG4gIGVuZHBvaW50OiBFLFxuICBvcHRpb25zOiB7XG4gICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgIHJlc3BvbnNlOiBFcnJvcjtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I6IHRydWU7XG4gIH0sXG4pOiBTZXRBY3Rpb248RT47XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNldDxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAgb3B0aW9uczoge1xuICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICByZXNwb25zZTogUmVzb2x2ZVR5cGU8RT47XG4gICAgZmV0Y2hlZEF0PzogbnVtYmVyO1xuICAgIGVycm9yPzogZmFsc2U7XG4gIH0sXG4pOiBTZXRBY3Rpb248RT47XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNldDxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0LFxuICAgIHJlc3BvbnNlLFxuICAgIGVycm9yID0gZmFsc2UsXG4gIH06IHtcbiAgICBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl07XG4gICAgcmVzcG9uc2U6IGFueTtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I/OiBib29sZWFuO1xuICB9LFxuKTogU2V0QWN0aW9uPEU+IHtcbiAgY29uc3QgZXhwaXJ5TGVuZ3RoOiBudW1iZXIgPVxuICAgIGVycm9yID9cbiAgICAgIGVuZHBvaW50LmVycm9yRXhwaXJ5TGVuZ3RoID8/IDEwMDBcbiAgICA6IGVuZHBvaW50LmRhdGFFeHBpcnlMZW5ndGggPz8gNjAwMDA7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBleHBpcnlMZW5ndGggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOZWdhdGl2ZSBleHBpcnkgbGVuZ3RoIGFyZSBub3QgYWxsb3dlZC4nKTtcbiAgfVxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBjb25zdCBtZXRhOiBTZXRNZXRhID0ge1xuICAgIGFyZ3M6IGFyZ3MubWFwKGVuc3VyZVBvam8pLFxuICAgIGZldGNoZWRBdDogZmV0Y2hlZEF0ID8/
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbnN1cmVQb2pvIiwiU0VUX1RZUEUiLCJjcmVhdGVTZXQiLCJlbmRwb2ludCIsImFyZ3MiLCJmZXRjaGVkQXQiLCJyZXNwb25zZSIsImVycm9yIiwiX2VuZHBvaW50JGVycm9yRXhwaXJ5IiwiX2VuZHBvaW50JGRhdGFFeHBpcnlMIiwiZXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiRXJyb3IiLCJub3ciLCJEYXRlIiwibWV0YSIsIm1hcCIsImRhdGUiLCJleHBpcmVzQXQiLCJrZXkiLCJhY3Rpb24iLCJ0eXBlIiwicGF5bG9hZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2NyZWF0ZVNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50SW50ZXJmYWNlLCBSZXNvbHZlVHlwZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgZW5zdXJlUG9qbyBmcm9tICcuL2Vuc3VyZVBvam8uanMnO1xuaW1wb3J0IHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgU0VUX1RZUEUgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNldEFjdGlvbiwgU2V0TWV0YSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2V0PFxuICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgfSxcbj4oXG4gIGVuZHBvaW50OiBFLFxuICBvcHRpb25zOiB7XG4gICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgIHJlc3BvbnNlOiBFcnJvcjtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I6IHRydWU7XG4gIH0sXG4pOiBTZXRBY3Rpb248RT47XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNldDxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAgb3B0aW9uczoge1xuICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICByZXNwb25zZTogUmVzb2x2ZVR5cGU8RT47XG4gICAgZmV0Y2hlZEF0PzogbnVtYmVyO1xuICAgIGVycm9yPzogZmFsc2U7XG4gIH0sXG4pOiBTZXRBY3Rpb248RT47XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNldDxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0LFxuICAgIHJlc3BvbnNlLFxuICAgIGVycm9yID0gZmFsc2UsXG4gIH06IHtcbiAgICBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl07XG4gICAgcmVzcG9uc2U6IGFueTtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I/OiBib29sZWFuO1xuICB9LFxuKTogU2V0QWN0aW9uPEU+IHtcbiAgY29uc3QgZXhwaXJ5TGVuZ3RoOiBudW1iZXIgPVxuICAgIGVycm9yID9cbiAgICAgIGVuZHBvaW50LmVycm9yRXhwaXJ5TGVuZ3RoID8/IDEwMDBcbiAgICA6IGVuZHBvaW50LmRhdGFFeHBpcnlMZW5ndGggPz8gNjAwMDA7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBleHBpcnlMZW5ndGggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOZWdhdGl2ZSBleHBpcnkgbGVuZ3RoIGFyZSBub3QgYWxsb3dlZC4nKTtcbiAgfVxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBjb25zdCBtZXRhOiBTZXRNZXRhID0ge1xuICAgIGFyZ3M6IGFyZ3MubWFwKGVuc3VyZVBvam8pLFxuICAgIGZldGNoZWRBdDogZmV0Y2hlZEF0ID8/IG5vdyxcbiAgICBkYXRlOiBub3csXG4gICAgZXhwaXJlc0F0OiBub3cgKyBleHBpcnlMZW5ndGgsXG4gICAga2V5OiBlbmRwb2ludC5rZXkoLi4uYXJncyksXG4gIH07XG5cbiAgY29uc3QgYWN0aW9uOiBTZXRBY3Rpb248RT4gPSB7XG4gICAgdHlwZTogU0VUX1RZUEUsXG4gICAgcGF5bG9hZDogcmVzcG9uc2UsXG4gICAgZW5kcG9pbnQ6IGVuZHBvaW50LFxuICAgIG1ldGEsXG4gIH07XG4gIGlmIChlcnJvcikgKGFjdGlvbiBhcyBhbnkpLmVycm9yID0gdHJ1ZTtcbiAgcmV0dXJuIGFjdGlvbjtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBT0EsVUFBVSxNQUFNLGlCQUFpQjtBQUV4QyxTQUFTQyxRQUFRLFFBQVEsbUJBQW1CO0FBK0I1QyxlQUFlLFNBQVNDLFNBQVNBLENBSy9CQyxRQUFXLEVBQ1g7RUFDRUMsSUFBSTtFQUNKQyxTQUFTO0VBQ1RDLFFBQVE7RUFDUkMsS0FBSyxHQUFHO0FBTVYsQ0FBQyxFQUNhO0VBQUEsSUFBQUMscUJBQUEsRUFBQUMscUJBQUE7RUFDZCxNQUFNQyxZQUFvQixHQUN4QkgsS0FBSyxJQUFBQyxxQkFBQSxHQUNITCxRQUFRLENBQUNRLGlCQUFpQixZQUFBSCxxQkFBQSxHQUFJLElBQUksSUFBQUMscUJBQUEsR0FDbENOLFFBQVEsQ0FBQ1MsZ0JBQWdCLFlBQUFILHFCQUFBLEdBQUksS0FBSztFQUN0QztFQUNBLElBQUlJLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssYUFBYSxJQUFJTCxZQUFZLEdBQUcsQ0FBQyxFQUFFO0lBQzlELE1BQU0sSUFBSU0sS0FBSyxDQUFDLHlDQUF5QyxDQUFDO0VBQzVEO0VBQ0EsTUFBTUMsR0FBRyxHQUFHQyxJQUFJLENBQUNELEdBQUcsQ0FBQyxDQUFDO0VBQ3RCLE1BQU1FLElBQWEsR0FBRztJQUNwQmYsSUFBSSxFQUFFQSxJQUFJLENBQUNnQixHQUFHLENBQUNwQixVQUFVLENBQUM7SUFDMUJLLFNBQVMsRUFBRUEsU0FBUyxXQUFUQSxTQUFTLEdBQUlZLEdBQUc7SUFDM0JJLElBQUksRUFBRUosR0FBRztJQUNUSyxTQUFTLEVBQUVMLEdBQUcsR0FBR1AsWUFBWTtJQUM3QmEsR0FBRyxFQUFFcEIsUUFBUSxDQUFDb0IsR0FBRyxDQUFDLEdBQUduQixJQUFJO0VBQzNCLENBQUM7RUFFRCxNQUFNb0IsTUFBb0IsR0FBRztJQUMzQkMsSUFBSSxFQUFFeEIsUUFBUTtJQUNkeUIsT0FBTyxFQUFFcEIsUUFBUTtJQUNqQkgsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCZ0I7RUFDRixDQUFDO0VBQ0QsSUFBSVosS0FBSyxFQUFHaUIsTUFBTSxDQUFTakIsS0FBSyxHQUFHLElBQUk7RUFDdkMsT0FBT2lCLE1BQU07QUFDZiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -23,4 +23,4 @@ export function createUnsubscription(endpoint, {
|
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkVfVFlQRSIsIlVOU1VCU0NSSUJFX1RZUEUiLCJjcmVhdGVTdWJzY3JpcHRpb24iLCJlbmRwb2ludCIsImFyZ3MiLCJ0eXBlIiwibWV0YSIsImtleSIsImNyZWF0ZVVuc3Vic2NyaXB0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvY3JlYXRlU3Vic2NyaXB0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnRJbnRlcmZhY2UgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgU1VCU0NSSUJFX1RZUEUsIFVOU1VCU0NSSUJFX1RZUEUgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFN1YnNjcmliZUFjdGlvbiwgVW5zdWJzY3JpYmVBY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdWJzY3JpcHRpb248RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgZW5kcG9pbnQ6IEUsXG4gIHsgYXJncyB9OiB7IGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB9LFxuKTogU3Vic2NyaWJlQWN0aW9uPEU+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBTVUJTQ1JJQkVfVFlQRSxcbiAgICBlbmRwb2ludCxcbiAgICBtZXRhOiB7XG4gICAgICBhcmdzLFxuICAgICAga2V5OiBlbmRwb2ludC5rZXkoLi4uYXJncyksXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVuc3Vic2NyaXB0aW9uPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gIGVuZHBvaW50OiBFLFxuICB7IGFyZ3MgfTogeyBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfSxcbik6IFVuc3Vic2NyaWJlQWN0aW9uPEU+
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkVfVFlQRSIsIlVOU1VCU0NSSUJFX1RZUEUiLCJjcmVhdGVTdWJzY3JpcHRpb24iLCJlbmRwb2ludCIsImFyZ3MiLCJ0eXBlIiwibWV0YSIsImtleSIsImNyZWF0ZVVuc3Vic2NyaXB0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvY3JlYXRlU3Vic2NyaXB0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnRJbnRlcmZhY2UgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgU1VCU0NSSUJFX1RZUEUsIFVOU1VCU0NSSUJFX1RZUEUgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFN1YnNjcmliZUFjdGlvbiwgVW5zdWJzY3JpYmVBY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdWJzY3JpcHRpb248RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgZW5kcG9pbnQ6IEUsXG4gIHsgYXJncyB9OiB7IGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB9LFxuKTogU3Vic2NyaWJlQWN0aW9uPEU+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBTVUJTQ1JJQkVfVFlQRSxcbiAgICBlbmRwb2ludCxcbiAgICBtZXRhOiB7XG4gICAgICBhcmdzLFxuICAgICAga2V5OiBlbmRwb2ludC5rZXkoLi4uYXJncyksXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVuc3Vic2NyaXB0aW9uPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gIGVuZHBvaW50OiBFLFxuICB7IGFyZ3MgfTogeyBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfSxcbik6IFVuc3Vic2NyaWJlQWN0aW9uPEU+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBVTlNVQlNDUklCRV9UWVBFLFxuICAgIGVuZHBvaW50LFxuICAgIG1ldGE6IHtcbiAgICAgIGFyZ3MsXG4gICAgICBrZXk6IGVuZHBvaW50LmtleSguLi5hcmdzKSxcbiAgICB9LFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxjQUFjLEVBQUVDLGdCQUFnQixRQUFRLG1CQUFtQjtBQUdwRSxPQUFPLFNBQVNDLGtCQUFrQkEsQ0FDaENDLFFBQVcsRUFDWDtFQUFFQztBQUE0QyxDQUFDLEVBQzNCO0VBQ3BCLE9BQU87SUFDTEMsSUFBSSxFQUFFTCxjQUFjO0lBQ3BCRyxRQUFRO0lBQ1JHLElBQUksRUFBRTtNQUNKRixJQUFJO01BQ0pHLEdBQUcsRUFBRUosUUFBUSxDQUFDSSxHQUFHLENBQUMsR0FBR0gsSUFBSTtJQUMzQjtFQUNGLENBQUM7QUFDSDtBQUVBLE9BQU8sU0FBU0ksb0JBQW9CQSxDQUNsQ0wsUUFBVyxFQUNYO0VBQUVDO0FBQTRDLENBQUMsRUFDekI7RUFDdEIsT0FBTztJQUNMQyxJQUFJLEVBQUVKLGdCQUFnQjtJQUN0QkUsUUFBUTtJQUNSRyxJQUFJLEVBQUU7TUFDSkYsSUFBSTtNQUNKRyxHQUFHLEVBQUVKLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDLEdBQUdILElBQUk7SUFDM0I7RUFDRixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -3,4 +3,4 @@ export const ensurePojo =
|
|
|
3
3
|
/* istanbul ignore else we don't run coverage when we test node*/
|
|
4
4
|
typeof FormData !== 'undefined' ? body => body instanceof FormData ? Object.fromEntries(body.entries()) : body : /* istanbul ignore next */body => body;
|
|
5
5
|
export default ensurePojo;
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbnN1cmVQb2pvIiwiRm9ybURhdGEiLCJib2R5IiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvZW5zdXJlUG9qby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW5zdXJlUG9qbyA9XG4gIC8vIEZvcm1EYXRhIGRvZXNuJ3QgZXhpc3QgaW4gbm9kZVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSB3ZSBkb24ndCBydW4gY292ZXJhZ2Ugd2hlbiB3ZSB0ZXN0IG5vZGUqL1xuICB0eXBlb2YgRm9ybURhdGEgIT09ICd1bmRlZmluZWQnID9cbiAgICAoYm9keTogYW55KSA9PlxuICAgICAgYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhID9cbiAgICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKChib2R5IGFzIGFueSkuZW50cmllcygpKVxuICAgICAgOiBib2R5XG4gIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gKGJvZHk6IGFueSkgPT4gYm9keTtcbmV4cG9ydCBkZWZhdWx0IGVuc3VyZVBvam87XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsVUFBVTtBQUNyQjtBQUNBO0FBQ0EsT0FBT0MsUUFBUSxLQUFLLFdBQVcsR0FDNUJDLElBQVMsSUFDUkEsSUFBSSxZQUFZRCxRQUFRLEdBQ3RCRSxNQUFNLENBQUNDLFdBQVcsQ0FBRUYsSUFBSSxDQUFTRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQzNDSCxJQUFJLEdBQ1IsMEJBQTRCQSxJQUFTLElBQUtBLElBQUk7QUFDbEQsZUFBZUYsVUFBVSIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/controller/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBOb3JtYWxpemUsXG4gIEVuZHBvaW50SW50ZXJmYWNlLFxuICBSZXNvbHZlVHlwZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdEVudHJ5PEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4gPVxuICBFWydzY2hlbWEnXSBleHRlbmRzIHVuZGVmaW5lZCB8IG51bGwgPyBSZXNvbHZlVHlwZTxFPlxuICA6IE5vcm1hbGl6ZTxFWydzY2hlbWEnXT47XG5cbmV4cG9ydCB0eXBlIEVuZHBvaW50VXBkYXRlRnVuY3Rpb248XG4gIFNvdXJjZSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlLFxuICBVcGRhdGVycyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuPiA9IChcbiAgc291cmNlOiBSZXN1bHRFbnRyeTxTb3VyY2U+LFxuICAvLyB0aGlzIGlzIGhvcGVsZXNzIGJlY2F1c2UgdHlwZXNjcmlwdCBkb2Vzbid0IHRoaW5rIGl0IHNob3VsZCBiZSBjb250cmF2YXJpYW50XG4gIC4uLmFyZ3M6IGFueVxuKSA9PiB7XG4gIFtLIGluIGtleW9mIFVwZGF0ZXJzXTogKHJlc3VsdDogVXBkYXRlcnNbS10pID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBOb3JtYWxpemUsXG4gIEVuZHBvaW50SW50ZXJmYWNlLFxuICBSZXNvbHZlVHlwZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdEVudHJ5PEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4gPVxuICBFWydzY2hlbWEnXSBleHRlbmRzIHVuZGVmaW5lZCB8IG51bGwgPyBSZXNvbHZlVHlwZTxFPlxuICA6IE5vcm1hbGl6ZTxFWydzY2hlbWEnXT47XG5cbmV4cG9ydCB0eXBlIEVuZHBvaW50VXBkYXRlRnVuY3Rpb248XG4gIFNvdXJjZSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlLFxuICBVcGRhdGVycyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuPiA9IChcbiAgc291cmNlOiBSZXN1bHRFbnRyeTxTb3VyY2U+LFxuICAvLyB0aGlzIGlzIGhvcGVsZXNzIGJlY2F1c2UgdHlwZXNjcmlwdCBkb2Vzbid0IHRoaW5rIGl0IHNob3VsZCBiZSBjb250cmF2YXJpYW50XG4gIC4uLmFyZ3M6IGFueVxuKSA9PiB7XG4gIFtLIGluIGtleW9mIFVwZGF0ZXJzXTogKHJlc3VsdDogVXBkYXRlcnNbS10pID0+IFVwZGF0ZXJzW0tdO1xufTtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as __INTERNAL__ from './internal.js';
|
|
2
|
-
export type { NetworkError, UnknownError, ErrorTypes, Schema, EndpointInterface, EntityInterface, ResolveType,
|
|
2
|
+
export type { NetworkError, UnknownError, ErrorTypes, Schema, EndpointInterface, EntityInterface, ResolveType, DenormalizeNullable, Denormalize, Normalize, NormalizeNullable, FetchFunction, EndpointExtraOptions, Queryable, SchemaArgs, NI, } from '@data-client/normalizr';
|
|
3
3
|
export { ExpiryStatus } from '@data-client/normalizr';
|
|
4
4
|
export { default as NetworkManager, ResetError, } from './manager/NetworkManager.js';
|
|
5
5
|
export { default as createReducer, initialState, } from './state/reducer/createReducer.js';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,EAAE,GACH,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,kBAAkB,EAClB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEjE,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -16,4 +16,4 @@ export { _actionTypes as actionTypes };
|
|
|
16
16
|
/* istanbul ignore next */
|
|
17
17
|
export * from './types.js';
|
|
18
18
|
export * from './manager/index.js';
|
|
19
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9JTlRFUk5BTF9fIiwiX19JTlRFUk5BTF9fIiwiRXhwaXJ5U3RhdHVzIiwiZGVmYXVsdCIsIk5ldHdvcmtNYW5hZ2VyIiwiUmVzZXRFcnJvciIsImNyZWF0ZVJlZHVjZXIiLCJpbml0aWFsU3RhdGUiLCJhcHBseU1hbmFnZXIiLCJDb250cm9sbGVyIiwiY3JlYXRlRmV0Y2giLCJjcmVhdGVTZXQiLCJfYWN0aW9uVHlwZXMiLCJhY3Rpb25UeXBlcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJPYmplY3QuaGFzT3duID1cbiAgT2JqZWN0Lmhhc093biB8fFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG4gIH07XG5cbmV4cG9ydCAqIGFzIF9fSU5URVJOQUxfXyBmcm9tICcuL2ludGVybmFsLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgTmV0d29ya0Vycm9yLFxuICBVbmtub3duRXJyb3IsXG4gIEVycm9yVHlwZXMsXG4gIFNjaGVtYSxcbiAgRW5kcG9pbnRJbnRlcmZhY2UsXG4gIEVudGl0eUludGVyZmFjZSxcbiAgUmVzb2x2ZVR5cGUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIERlbm9ybWFsaXplLFxuICBOb3JtYWxpemUsXG4gIE5vcm1hbGl6ZU51bGxhYmxlLFxuICBGZXRjaEZ1bmN0aW9uLFxuICBFbmRwb2ludEV4dHJhT3B0aW9ucyxcbiAgUXVlcnlhYmxlLFxuICBTY2hlbWFBcmdzLFxuICBOSSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5leHBvcnQgeyBFeHBpcnlTdGF0dXMgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgTmV0d29ya01hbmFnZXIsXG4gIFJlc2V0RXJyb3IsXG59IGZyb20gJy4vbWFuYWdlci9OZXR3b3JrTWFuYWdlci5qcyc7XG5leHBvcnQge1xuICBkZWZhdWx0IGFzIGNyZWF0ZVJlZHVjZXIsXG4gIGluaXRpYWxTdGF0ZSxcbn0gZnJvbSAnLi9zdGF0ZS9yZWR1Y2VyL2NyZWF0ZVJlZHVjZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhcHBseU1hbmFnZXIgfSBmcm9tICcuL21hbmFnZXIvYXBwbHlNYW5hZ2VyLmpzJztcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb250cm9sbGVyIH0gZnJvbSAnLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuZXhwb3J0IHR5cGUge1xuICBEYXRhQ2xpZW50RGlzcGF0Y2gsXG4gIEdlbmVyaWNEaXNwYXRjaCxcbn0gZnJvbSAnLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjcmVhdGVGZXRjaCB9IGZyb20gJy4vY29udHJvbGxlci9jcmVhdGVGZXRjaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVNldCB9IGZyb20gJy4vY29udHJvbGxlci9jcmVhdGVTZXQuanMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xsZXIvdHlwZXMuanMnO1xuZXhwb3J0ICogYXMgYWN0aW9uVHlwZXMgZnJvbSAnLi9hY3Rpb25UeXBlcy5qcyc7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL21hbmFnZXIvaW5kZXguanMnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNQSxDQUFDQyxFQUFFLEVBQUVDLEdBQUcsRUFBRTtFQUNsRCxPQUFPSCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLEVBQUUsRUFBRUMsR0FBRyxDQUFDO0FBQ3RELENBQUM7QUFBQyxZQUFBSSxXQUFBLE1BRTBCLGVBQWU7QUFBQSxTQUFBQSxXQUFBLElBQWpDQyxZQUFZO0FBbUJ4QixTQUFTQyxZQUFZLFFBQVEsd0JBQXdCO0FBQ3JELFNBQ0VDLE9BQU8sSUFBSUMsY0FBYyxFQUN6QkMsVUFBVSxRQUNMLDZCQUE2QjtBQUNwQyxTQUNFRixPQUFPLElBQUlHLGFBQWEsRUFDeEJDLFlBQVksUUFDUCxrQ0FBa0M7QUFDekMsU0FBU0osT0FBTyxJQUFJSyxZQUFZLFFBQVEsMkJBQTJCO0FBRW5FLFNBQVNMLE9BQU8sSUFBSU0sVUFBVSxRQUFRLDRCQUE0QjtBQUtsRSxTQUFTTixPQUFPLElBQUlPLFdBQVcsUUFBUSw2QkFBNkI7QUFDcEUsU0FBU1AsT0FBTyxJQUFJUSxTQUFTLFFBQVEsMkJBQTJCO0FBRWhFLGNBQWMsdUJBQXVCO0FBQUMsWUFBQUMsWUFBQSxNQUNULGtCQUFrQjtBQUFBLFNBQUFBLFlBQUEsSUFBbkNDLFdBQVc7QUFDdkI7QUFDQSxjQUFjLFlBQVk7QUFDMUIsY0FBYyxvQkFBb0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/internal.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { MemoCache, INVALID } from '@data-client/normalizr';
|
|
2
2
|
export { default as RIC } from './state/RIC.js';
|
|
3
3
|
export { initialState } from './state/reducer/createReducer.js';
|
|
4
4
|
//# sourceMappingURL=internal.d.ts.map
|
package/lib/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC"}
|
package/lib/internal.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { MemoCache, INVALID } from '@data-client/normalizr';
|
|
2
2
|
export { default as RIC } from './state/RIC.js';
|
|
3
3
|
export { initialState } from './state/reducer/createReducer.js';
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZW1vQ2FjaGUiLCJJTlZBTElEIiwiZGVmYXVsdCIsIlJJQyIsImluaXRpYWxTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNZW1vQ2FjaGUsIElOVkFMSUQgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUklDIH0gZnJvbSAnLi9zdGF0ZS9SSUMuanMnO1xuZXhwb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnLi9zdGF0ZS9yZWR1Y2VyL2NyZWF0ZVJlZHVjZXIuanMnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLE9BQU8sUUFBUSx3QkFBd0I7QUFDM0QsU0FBU0MsT0FBTyxJQUFJQyxHQUFHLFFBQVEsZ0JBQWdCO0FBQy9DLFNBQVNDLFlBQVksUUFBUSxrQ0FBa0MiLCJpZ25vcmVMaXN0IjpbXX0=
|