@data-client/rest 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +17 -16
- package/dist/index.umd.min.js +1 -1
- package/dist/next.js +7 -2
- package/legacy/OptionsToFunction.js +1 -1
- package/legacy/RestEndpoint.js +5 -5
- package/legacy/RestHelpers.js +4 -2
- package/legacy/createResource.js +14 -13
- package/legacy/index.js +2 -1
- package/legacy/next/index.js +4 -4
- package/legacy/pathTypes.js +1 -1
- package/legacy/resourceTypes.js +2 -0
- package/lib/OptionsToFunction.d.ts.map +1 -1
- package/lib/OptionsToFunction.js +1 -1
- package/lib/RestEndpoint.d.ts +30 -36
- package/lib/RestEndpoint.js +5 -5
- package/lib/RestHelpers.js +4 -2
- package/lib/createResource.d.ts +65 -32
- package/lib/createResource.d.ts.map +1 -1
- package/lib/createResource.js +11 -12
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/next/index.d.ts +5 -5
- package/lib/next/index.d.ts.map +1 -1
- package/lib/next/index.js +4 -4
- package/lib/pathTypes.d.ts +1 -0
- package/lib/pathTypes.d.ts.map +1 -1
- package/lib/pathTypes.js +1 -1
- package/lib/{next/resourceTypes.d.ts → resourceTypes.d.ts} +12 -2
- package/lib/resourceTypes.d.ts.map +1 -0
- package/lib/resourceTypes.js +2 -0
- package/package.json +3 -3
- package/src/OptionsToFunction.ts +0 -1
- package/src/RestEndpoint.d.ts +30 -36
- package/src/RestEndpoint.js +4 -4
- package/src/RestHelpers.ts +4 -4
- package/src/__tests__/Resource.test.ts +2 -2
- package/src/__tests__/RestEndpoint.ts +38 -9
- package/src/__tests__/__snapshots__/createResource.test.ts.snap +2 -0
- package/src/__tests__/createResource.test.ts +25 -4
- package/src/__tests__/hookifyResource.ts +7 -3
- package/src/__tests__/types.test.ts +353 -212
- package/src/createResource.ts +111 -62
- package/src/index.ts +2 -2
- package/src/next/index.ts +5 -5
- package/src/pathTypes.ts +2 -0
- package/src/{next/resourceTypes.ts → resourceTypes.ts} +12 -2
- package/ts4.0/RestEndpoint.d.ts +19 -33
- package/ts4.0/createResource.d.ts +77 -32
- package/ts4.0/index.d.ts +3 -1
- package/ts4.0/next/index.d.ts +5 -5
- package/ts4.0/pathTypes.d.ts +2 -0
- package/ts4.0/{next/resourceTypes.d.ts → resourceTypes.d.ts} +12 -2
- package/legacy/next/OptionsToFunction.js +0 -2
- package/legacy/next/RestEndpoint.js +0 -225
- package/legacy/next/createResource.js +0 -86
- package/legacy/next/resourceTypes.js +0 -2
- package/lib/next/OptionsToFunction.d.ts +0 -7
- package/lib/next/OptionsToFunction.d.ts.map +0 -1
- package/lib/next/OptionsToFunction.js +0 -2
- package/lib/next/RestEndpoint.d.ts +0 -542
- package/lib/next/RestEndpoint.js +0 -229
- package/lib/next/createResource.d.ts +0 -86
- package/lib/next/createResource.d.ts.map +0 -1
- package/lib/next/createResource.js +0 -100
- package/lib/next/resourceTypes.d.ts.map +0 -1
- package/lib/next/resourceTypes.js +0 -2
- package/src/next/OptionsToFunction.ts +0 -41
- package/src/next/RestEndpoint.d.ts +0 -542
- package/src/next/RestEndpoint.js +0 -262
- package/src/next/__tests__/RestEndpoint.ts +0 -1333
- package/src/next/__tests__/__snapshots__/RestEndpoint.ts.snap +0 -18
- package/src/next/__tests__/types.test.ts +0 -429
- package/src/next/createResource.ts +0 -194
- package/ts4.0/next/OptionsToFunction.d.ts +0 -16
- package/ts4.0/next/RestEndpoint.d.ts +0 -226
- package/ts4.0/next/createResource.d.ts +0 -94
package/lib/RestEndpoint.d.ts
CHANGED
|
@@ -47,9 +47,9 @@ export interface RestInstanceBase<
|
|
|
47
47
|
getRequestInit(
|
|
48
48
|
this: any,
|
|
49
49
|
body?: RequestInit['body'] | Record<string, unknown>,
|
|
50
|
-
): RequestInit;
|
|
50
|
+
): Promise<RequestInit> | RequestInit;
|
|
51
51
|
/** @see https://resthooks.io/rest/api/RestEndpoint#getHeaders */
|
|
52
|
-
getHeaders(headers: HeadersInit): HeadersInit;
|
|
52
|
+
getHeaders(headers: HeadersInit): Promise<HeadersInit> | HeadersInit;
|
|
53
53
|
/* after-fetch */
|
|
54
54
|
/** @see https://resthooks.io/rest/api/RestEndpoint#fetchResponse */
|
|
55
55
|
fetchResponse(input: RequestInfo, init: RequestInit): Promise<Response>;
|
|
@@ -102,15 +102,6 @@ export interface RestInstance<
|
|
|
102
102
|
assign: AddEndpoint<F, S, O>;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
export type ContainsCollectionArray =
|
|
106
|
-
| { push: any; unshift: any }
|
|
107
|
-
| { [K: string]: ContainsCollectionArray }
|
|
108
|
-
| { schema: { [K: string]: ContainsCollectionArray } };
|
|
109
|
-
export type ContainsCollectionValues =
|
|
110
|
-
| { assign: any }
|
|
111
|
-
| { [K: string]: ContainsCollectionValues }
|
|
112
|
-
| { schema: { [K: string]: ContainsCollectionValues } };
|
|
113
|
-
|
|
114
105
|
export type RestEndpointExtendOptions<
|
|
115
106
|
O extends PartialRestGenerics,
|
|
116
107
|
E extends RestInstanceBase,
|
|
@@ -271,7 +262,7 @@ export type AddEndpoint<
|
|
|
271
262
|
: O['searchParams'] & PathArgs<Exclude<O['path'], undefined>>
|
|
272
263
|
: PathArgs<Exclude<O['path'], undefined>>,
|
|
273
264
|
any,
|
|
274
|
-
|
|
265
|
+
ResolveType<F>
|
|
275
266
|
>,
|
|
276
267
|
ExtractCollection<S>,
|
|
277
268
|
true,
|
|
@@ -496,51 +487,54 @@ export type FetchGet<A extends readonly any[] = [any], R = any> = (
|
|
|
496
487
|
...args: A
|
|
497
488
|
) => Promise<R>;
|
|
498
489
|
|
|
499
|
-
export type GetEndpoint<
|
|
500
|
-
UrlParams = any,
|
|
501
|
-
S extends Schema | undefined = Schema | undefined,
|
|
502
|
-
> = RestTypeNoBody<UrlParams, S, undefined>;
|
|
503
|
-
|
|
504
|
-
export type MutateEndpoint<
|
|
505
|
-
UrlParams = any,
|
|
506
|
-
Body extends BodyInit | Record<string, any> = any,
|
|
507
|
-
S extends Schema | undefined = Schema | undefined,
|
|
508
|
-
> = RestTypeWithBody<UrlParams, S, true, Body>;
|
|
509
|
-
|
|
510
490
|
export type Defaults<O, D> = {
|
|
511
491
|
[K in keyof O | keyof D]: K extends keyof O
|
|
512
492
|
? Exclude<O[K], undefined>
|
|
513
493
|
: D[Extract<K, keyof D>];
|
|
514
494
|
};
|
|
515
495
|
|
|
516
|
-
export type
|
|
496
|
+
export type GetEndpoint<
|
|
517
497
|
O extends {
|
|
498
|
+
readonly path: string;
|
|
499
|
+
readonly schema: Schema;
|
|
500
|
+
/** Only used for types */
|
|
501
|
+
readonly searchParams?: any;
|
|
502
|
+
} = {
|
|
518
503
|
path: string;
|
|
519
|
-
|
|
520
|
-
}
|
|
521
|
-
S extends Schema | undefined = Schema | undefined,
|
|
504
|
+
schema: Schema;
|
|
505
|
+
},
|
|
522
506
|
> = RestTypeNoBody<
|
|
523
507
|
'searchParams' extends keyof O
|
|
524
|
-
? O['searchParams']
|
|
508
|
+
? O['searchParams'] extends undefined
|
|
509
|
+
? PathArgs<O['path']>
|
|
510
|
+
: O['searchParams'] & PathArgs<O['path']>
|
|
525
511
|
: PathArgs<O['path']>,
|
|
526
|
-
|
|
512
|
+
O['schema'],
|
|
527
513
|
undefined,
|
|
528
514
|
any,
|
|
529
515
|
O & { body: undefined }
|
|
530
516
|
>;
|
|
531
517
|
|
|
532
|
-
export type
|
|
518
|
+
export type MutateEndpoint<
|
|
533
519
|
O extends {
|
|
520
|
+
readonly path: string;
|
|
521
|
+
readonly schema: Schema;
|
|
522
|
+
/** Only used for types */
|
|
523
|
+
readonly searchParams?: any;
|
|
524
|
+
/** Only used for types */
|
|
525
|
+
readonly body?: any;
|
|
526
|
+
} = {
|
|
534
527
|
path: string;
|
|
535
|
-
body
|
|
536
|
-
|
|
537
|
-
}
|
|
538
|
-
S extends Schema | undefined = Schema | undefined,
|
|
528
|
+
body: any;
|
|
529
|
+
schema: Schema;
|
|
530
|
+
},
|
|
539
531
|
> = RestTypeWithBody<
|
|
540
532
|
'searchParams' extends keyof O
|
|
541
|
-
? O['searchParams']
|
|
533
|
+
? O['searchParams'] extends undefined
|
|
534
|
+
? PathArgs<O['path']>
|
|
535
|
+
: O['searchParams'] & PathArgs<O['path']>
|
|
542
536
|
: PathArgs<O['path']>,
|
|
543
|
-
|
|
537
|
+
O['schema'],
|
|
544
538
|
true,
|
|
545
539
|
O['body'],
|
|
546
540
|
any,
|
package/lib/RestEndpoint.js
CHANGED
|
@@ -18,10 +18,10 @@ var _hasBody = /*#__PURE__*/_classPrivateFieldLooseKey("hasBody");
|
|
|
18
18
|
export default class RestEndpoint extends Endpoint {
|
|
19
19
|
constructor(options) {
|
|
20
20
|
var _options$fetch;
|
|
21
|
-
super((_options$fetch = options.fetch) != null ? _options$fetch : function (...args) {
|
|
21
|
+
super((_options$fetch = options.fetch) != null ? _options$fetch : async function (...args) {
|
|
22
22
|
const urlParams = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] && args.length < 2 ? {} : args[0] || {};
|
|
23
23
|
const body = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] ? args[args.length - 1] : undefined;
|
|
24
|
-
return this.fetchResponse(this.url(urlParams), this.getRequestInit(body)).then(response => this.parseResponse(response)).then(res => this.process(res, ...args));
|
|
24
|
+
return this.fetchResponse(this.url(urlParams), await this.getRequestInit(body)).then(response => this.parseResponse(response)).then(res => this.process(res, ...args));
|
|
25
25
|
}, options);
|
|
26
26
|
// we want to use the prototype chain here
|
|
27
27
|
Object.defineProperty(this, _hasBody, {
|
|
@@ -70,7 +70,7 @@ export default class RestEndpoint extends Endpoint {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
/** Init options for fetch - run at fetch */
|
|
73
|
-
getRequestInit(body) {
|
|
73
|
+
async getRequestInit(body) {
|
|
74
74
|
const bodyIsPojo = isPojo(body);
|
|
75
75
|
if (bodyIsPojo) {
|
|
76
76
|
body = JSON.stringify(body);
|
|
@@ -88,7 +88,7 @@ export default class RestEndpoint extends Endpoint {
|
|
|
88
88
|
...init.headers
|
|
89
89
|
};
|
|
90
90
|
}
|
|
91
|
-
init.headers = this.getHeaders(init.headers);
|
|
91
|
+
init.headers = await this.getHeaders(init.headers);
|
|
92
92
|
return init;
|
|
93
93
|
}
|
|
94
94
|
|
|
@@ -226,4 +226,4 @@ const tryParse = input => {
|
|
|
226
226
|
return undefined;
|
|
227
227
|
}
|
|
228
228
|
};
|
|
229
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsInBhZ2luYXRlZE1lcmdlIiwicGFnaW5hdGVkRmlsdGVyIiwicGFnaW5hdGlvblVwZGF0ZSIsInBhcmFtc1RvU3RyaW5nIiwiZ2V0VXJsQmFzZSIsImdldFVybFRva2VucyIsImlzUG9qbyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicmVzcG9uc2UiLCJwYXJzZVJlc3BvbnNlIiwicmVzIiwicHJvY2VzcyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJ2YWx1ZSIsInNpZGVFZmZlY3QiLCJtZXRob2QiLCJ1cmxQcmVmaXgiLCJpbmNsdWRlcyIsImdldCIsIl9fbmFtZSIsInBhdGgiLCJrZXkiLCJ1cmxCYXNlIiwidG9rZW5zIiwic2VhcmNoUGFyYW1zIiwia2V5cyIsImZvckVhY2giLCJrIiwiaGFzIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwiYXNzaWduIiwiaW5zdGFuY2UiLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJwYXJhbXMiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJhZGRXaXRoIiwibmV3U2NoZW1hIiwidXBkYXRlIiwicHVzaCIsInMiLCJ1bnNoaWZ0IiwicGFyc2UiLCJlIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgeyBwYXRoVG9SZWdleHAgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCBleHRyYWN0Q29sbGVjdGlvbiBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBtYXBDb2xsZWN0aW9uIGZyb20gJy4vbWFwQ29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgTmV0d29ya0Vycm9yIGZyb20gJy4vTmV0d29ya0Vycm9yLmpzJztcbmltcG9ydCB7IHBhZ2luYXRlZE1lcmdlLCBwYWdpbmF0ZWRGaWx0ZXIgfSBmcm9tICcuL3BhZ2luYXRlZENvbGxlY3Rpb25zLmpzJztcbmltcG9ydCBwYWdpbmF0aW9uVXBkYXRlIGZyb20gJy4vcGFnaW5hdGlvblVwZGF0ZS5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMsIGlzUG9qbyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdEVuZHBvaW50IGV4dGVuZHMgRW5kcG9pbnQge1xuICAjaGFzQm9keTtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgb3B0aW9ucy5mZXRjaCA/P1xuICAgICAgICBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBib2R5ID0gdGhpcy4jaGFzQm9keSA/IGFyZ3NbYXJncy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJlc3BvbnNlKFxuICAgICAgICAgICAgdGhpcy51cmwodXJsUGFyYW1zKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVxdWVzdEluaXQoYm9keSksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gdGhpcy5wYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnByb2Nlc3MocmVzLCAuLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgLy8gd2Ugd2FudCB0byB1c2UgdGhlIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgaWYgKFxuICAgICAgISgnc2lkZUVmZmVjdCcgaW4gdGhpcykgfHxcbiAgICAgICgnbWV0aG9kJyBpbiBvcHRpb25zICYmICEoJ3NpZGVFZmZlY3QnIGluIG9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5zaWRlRWZmZWN0ID1cbiAgICAgICAgb3B0aW9ucy5tZXRob2QgPT09ICdHRVQnIHx8IG9wdGlvbnMubWV0aG9kID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWV0aG9kID0gdGhpcy5zaWRlRWZmZWN0ID8gJ1BPU1QnIDogJ0dFVCc7XG4gICAgfVxuICAgIGlmICh0aGlzLnVybFByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnVybFByZWZpeCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLiNoYXNCb2R5ID1cbiAgICAgICghKCdib2R5JyBpbiB0aGlzKSB8fCB0aGlzLmJvZHkgIT09IHVuZGVmaW5lZCkgJiZcbiAgICAgICFbJ0dFVCcsICdERUxFVEUnXS5pbmNsdWRlcyh0aGlzLm1ldGhvZCk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ25hbWUnLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIC8vIHVzaW5nICdpbicgdG8gZW5zdXJlIGluaGVyaXRhbmNlIGxvb2t1cFxuICAgICAgICBpZiAoJ19fbmFtZScgaW4gdGhpcykgcmV0dXJuIHRoaXMuX19uYW1lO1xuICAgICAgICByZXR1cm4gdGhpcy51cmxQcmVmaXggKyB0aGlzLnBhdGg7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAga2V5KC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5tZXRob2R9ICR7dGhpcy51cmwoXG4gICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fSxcbiAgICApfWA7XG4gIH1cblxuICAvKiogR2V0IHRoZSB1cmwgKi9cbiAgdXJsKHVybFBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgdXJsQmFzZSA9IGdldFVybEJhc2UodGhpcy5wYXRoKSh1cmxQYXJhbXMpO1xuICAgIGNvbnN0IHRva2VucyA9IGdldFVybFRva2Vucyh0aGlzLnBhdGgpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHVybFBhcmFtcykuZm9yRWFjaChrID0+IHtcbiAgICAgIGlmICghdG9rZW5zLmhhcyhrKSkge1xuICAgICAgICBzZWFyY2hQYXJhbXNba10gPSB1cmxQYXJhbXNba107XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy51cmxQcmVmaXh9JHt1cmxCYXNlfT8ke3BhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX1gO1xuICB9XG5cbiAgZ2V0SGVhZGVycyhoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICAvKiogSW5pdCBvcHRpb25zIGZvciBmZXRjaCAtIHJ1biBhdCBmZXRjaCAqL1xuICBnZXRSZXF1ZXN0SW5pdChib2R5KSB7XG4gICAgY29uc3QgYm9keUlzUG9qbyA9IGlzUG9qbyhib2R5KTtcbiAgICBpZiAoYm9keUlzUG9qbykge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIH1cbiAgICBjb25zdCBpbml0ID0ge1xuICAgICAgLi4udGhpcy5yZXF1ZXN0SW5pdCxcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxuICAgICAgYm9keSxcbiAgICB9O1xuICAgIGlmICghYm9keSB8fCBib2R5SXNQb2pvKSB7XG4gICAgICBpbml0LmhlYWRlcnMgPSB7XG4gICAgICAgIC8vIGRlZmF1bHQgdG8gYXBwbGljYXRpb24vanNvbiBidXQgYWxsb3cgdXNlciBleHBsaWNpdCBvdmVycmlkZXNcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgLi4uaW5pdC5oZWFkZXJzLFxuICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5oZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKGluaXQuaGVhZGVycyk7XG4gICAgcmV0dXJuIGluaXQ7XG4gIH1cblxuICAvKiogUGVyZm9ybSBuZXR3b3JrIHJlcXVlc3QgYW5kIHJlc29sdmUgd2l0aCBIVFRQIFJlc3BvbnNlICovXG4gIGZldGNoUmVzcG9uc2UoaW5wdXQsIGluaXQpIHtcbiAgICByZXR1cm4gZmV0Y2goaW5wdXQsIGluaXQpXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgLy8gZW5zdXJlIENPUlMsIG5ldHdvcmsgZG93biwgYW5kIHBhcnNlIGVycm9ycyBhcmUgc3RpbGwgY2F1Z2h0IGJ5IE5ldHdvcmtFcnJvckJvdW5kYXJ5XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICAgIGVycm9yLnN0YXR1cyA9IDUwMDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9XG5cbiAgcGFyc2VSZXNwb25zZShyZXNwb25zZSkge1xuICAgIC8vIHRoaXMgc2hvdWxkIG5vdCBoYXZlIGFueSBjb250ZW50IHRvIHJlYWRcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgaWYgKCFyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdqc29uJykpIHtcbiAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgLy8gc3RyaW5nIG9yICdub3Qgc2V0JyBzY2hlbWEsIGFyZSB2YWxpZFxuICAgICAgICAvLyB3aGVuIG92ZXJyaWRpbmcgcHJvY2VzcyB0aGV5IG1pZ2h0IGhhbmRsZSBvdGhlciBjYXNlcywgc28gd2UgZG9uJ3Qgd2FudCB0byBibG9jayBvbiBvdXIgbG9naWNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIFsnc3RyaW5nJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiB0aGlzLnNjaGVtYSkgfHxcbiAgICAgICAgICB0aGlzLnNjaGVtYSA9PT0gbnVsbCB8fFxuICAgICAgICAgIHRoaXMucHJvY2VzcyAhPT0gUmVzdEVuZHBvaW50LnByb3RvdHlwZS5wcm9jZXNzXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gdGV4dDtcblxuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICBlcnJvci5zdGF0dXMgPSA0MDQ7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0ZXh0IHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgICAvLyBjdXN0b20gZGV2LW9ubHkgbWVzc2FnZXMgZm9yIG1vcmUgZGV0YWlsZWQgY2F1c2VcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdodG1sJykgfHxcbiAgICAgICAgICAgICAgdGV4dC5zdGFydHNXaXRoKCc8IWRvY3R5cGUgaHRtbD4nKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHRyeVBhcnNlKHRleHQpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBcImNvbnRlbnQtdHlwZVwiIGhlYWRlciBkb2VzIG5vdCBpbmNsdWRlIFwianNvblwiLCBidXQgSlNPTiByZXNwb25zZSBmb3VuZC5cblNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNDYyNyBmb3IgaW5mb3JtYXRpb24gb24gSlNPTiByZXNwb25zZXNcblxuVXNpbmcgcGFyc2VkIEpTT04uXG5JZiB0ZXh0IGNvbnRlbnQgd2FzIGV4cGVjdGVkIHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIHBhdGhUb1JlZ2V4cCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBFKFxuICAgICAgLy8gIGZldGNoIGdldCBvdmVycmlkZGVuIGJ5IGZ1bmN0aW9uIHByb3RvdHlwZSwgc28gd2UgbXVzdCBzZXQgaXQgZXhwbGljaXRseSBldmVyeSB0aW1lXG4gICAgICB7IGZldGNoOiB0aGlzLmZldGNoLCAuLi5vcHRpb25zIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuXG4gIHBhZ2luYXRlZChyZW1vdmVDdXJzb3IpIHtcbiAgICBpZiAodHlwZW9mIHJlbW92ZUN1cnNvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHJlbW92ZUN1cnNvcjtcbiAgICAgIHJlbW92ZUN1cnNvciA9ICh7IC4uLnBhcmFtcyB9KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBwYXJhbXNbZmllbGROYW1lXTtcbiAgICAgICAgcmV0dXJuIFtwYXJhbXNdO1xuICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRlUGFnaW5hdGVkU2NoZW1hID0gY29sbGVjdGlvbiA9PiB7XG4gICAgICBmb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm4gY29sbGVjdGlvbi5hZGRXaXRoKHBhZ2luYXRlZE1lcmdlLCBwYWdpbmF0ZWRGaWx0ZXIocmVtb3ZlQ3Vyc29yKSk7XG4gICAgfTtcbiAgICBjb25zdCBuZXdTY2hlbWEgPSBtYXBDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEpO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHsgc2NoZW1hOiBuZXdTY2hlbWEgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHsgdXBkYXRlOiBwYWdpbmF0aW9uVXBkYXRlKHRoaXMsIHJlbW92ZUN1cnNvcikgfSk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHRyeVBhcnNlID0gaW5wdXQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGlucHV0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxZQUFZLFFBQVEsZ0JBQWdCO0FBRTdDLE9BQU9DLGlCQUFpQixNQUFNLHdCQUF3QjtBQUN0RCxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLE9BQU9DLFlBQVksTUFBTSxtQkFBbUI7QUFDNUMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsMkJBQTJCO0FBQzNFLE9BQU9DLGdCQUFnQixNQUFNLHVCQUF1QjtBQUNwRCxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFDLFFBQUEsZ0JBQUFDLDBCQUFBO0FBSUEsZUFBZSxNQUFNQyxZQUFZLFNBQVNkLFFBQVEsQ0FBQztFQUVqRGUsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFFO0lBQUEsSUFBQUMsY0FBQTtJQUNuQixLQUFLLEVBQUFBLGNBQUEsR0FDSEQsT0FBTyxDQUFDRSxLQUFLLFlBQUFELGNBQUEsR0FDWCxVQUFVLEdBQUdFLElBQUksRUFBRTtNQUNqQixNQUFNQyxTQUFTLEdBQ2JDLDJCQUFBLEtBQUksRUFBQVQsUUFBQSxFQUFBQSxRQUFBLEtBQWFPLElBQUksQ0FBQ0csTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBR0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztNQUN2RCxNQUFNSSxJQUFJLEdBQUdGLDJCQUFB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
|
|
229
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsInBhZ2luYXRlZE1lcmdlIiwicGFnaW5hdGVkRmlsdGVyIiwicGFnaW5hdGlvblVwZGF0ZSIsInBhcmFtc1RvU3RyaW5nIiwiZ2V0VXJsQmFzZSIsImdldFVybFRva2VucyIsImlzUG9qbyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicmVzcG9uc2UiLCJwYXJzZVJlc3BvbnNlIiwicmVzIiwicHJvY2VzcyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJ2YWx1ZSIsInNpZGVFZmZlY3QiLCJtZXRob2QiLCJ1cmxQcmVmaXgiLCJpbmNsdWRlcyIsImdldCIsIl9fbmFtZSIsInBhdGgiLCJrZXkiLCJ1cmxCYXNlIiwidG9rZW5zIiwic2VhcmNoUGFyYW1zIiwia2V5cyIsImZvckVhY2giLCJrIiwiaGFzIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwiYXNzaWduIiwiaW5zdGFuY2UiLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJwYXJhbXMiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJhZGRXaXRoIiwibmV3U2NoZW1hIiwidXBkYXRlIiwicHVzaCIsInMiLCJ1bnNoaWZ0IiwicGFyc2UiLCJlIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgeyBwYXRoVG9SZWdleHAgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCBleHRyYWN0Q29sbGVjdGlvbiBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBtYXBDb2xsZWN0aW9uIGZyb20gJy4vbWFwQ29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgTmV0d29ya0Vycm9yIGZyb20gJy4vTmV0d29ya0Vycm9yLmpzJztcbmltcG9ydCB7IHBhZ2luYXRlZE1lcmdlLCBwYWdpbmF0ZWRGaWx0ZXIgfSBmcm9tICcuL3BhZ2luYXRlZENvbGxlY3Rpb25zLmpzJztcbmltcG9ydCBwYWdpbmF0aW9uVXBkYXRlIGZyb20gJy4vcGFnaW5hdGlvblVwZGF0ZS5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMsIGlzUG9qbyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdEVuZHBvaW50IGV4dGVuZHMgRW5kcG9pbnQge1xuICAjaGFzQm9keTtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgb3B0aW9ucy5mZXRjaCA/P1xuICAgICAgICBhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBib2R5ID0gdGhpcy4jaGFzQm9keSA/IGFyZ3NbYXJncy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJlc3BvbnNlKFxuICAgICAgICAgICAgdGhpcy51cmwodXJsUGFyYW1zKSxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UmVxdWVzdEluaXQoYm9keSksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gdGhpcy5wYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnByb2Nlc3MocmVzLCAuLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgLy8gd2Ugd2FudCB0byB1c2UgdGhlIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgaWYgKFxuICAgICAgISgnc2lkZUVmZmVjdCcgaW4gdGhpcykgfHxcbiAgICAgICgnbWV0aG9kJyBpbiBvcHRpb25zICYmICEoJ3NpZGVFZmZlY3QnIGluIG9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5zaWRlRWZmZWN0ID1cbiAgICAgICAgb3B0aW9ucy5tZXRob2QgPT09ICdHRVQnIHx8IG9wdGlvbnMubWV0aG9kID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWV0aG9kID0gdGhpcy5zaWRlRWZmZWN0ID8gJ1BPU1QnIDogJ0dFVCc7XG4gICAgfVxuICAgIGlmICh0aGlzLnVybFByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnVybFByZWZpeCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLiNoYXNCb2R5ID1cbiAgICAgICghKCdib2R5JyBpbiB0aGlzKSB8fCB0aGlzLmJvZHkgIT09IHVuZGVmaW5lZCkgJiZcbiAgICAgICFbJ0dFVCcsICdERUxFVEUnXS5pbmNsdWRlcyh0aGlzLm1ldGhvZCk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ25hbWUnLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIC8vIHVzaW5nICdpbicgdG8gZW5zdXJlIGluaGVyaXRhbmNlIGxvb2t1cFxuICAgICAgICBpZiAoJ19fbmFtZScgaW4gdGhpcykgcmV0dXJuIHRoaXMuX19uYW1lO1xuICAgICAgICByZXR1cm4gdGhpcy51cmxQcmVmaXggKyB0aGlzLnBhdGg7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAga2V5KC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5tZXRob2R9ICR7dGhpcy51cmwoXG4gICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fSxcbiAgICApfWA7XG4gIH1cblxuICAvKiogR2V0IHRoZSB1cmwgKi9cbiAgdXJsKHVybFBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgdXJsQmFzZSA9IGdldFVybEJhc2UodGhpcy5wYXRoKSh1cmxQYXJhbXMpO1xuICAgIGNvbnN0IHRva2VucyA9IGdldFVybFRva2Vucyh0aGlzLnBhdGgpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHVybFBhcmFtcykuZm9yRWFjaChrID0+IHtcbiAgICAgIGlmICghdG9rZW5zLmhhcyhrKSkge1xuICAgICAgICBzZWFyY2hQYXJhbXNba10gPSB1cmxQYXJhbXNba107XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy51cmxQcmVmaXh9JHt1cmxCYXNlfT8ke3BhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX1gO1xuICB9XG5cbiAgZ2V0SGVhZGVycyhoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICAvKiogSW5pdCBvcHRpb25zIGZvciBmZXRjaCAtIHJ1biBhdCBmZXRjaCAqL1xuICBhc3luYyBnZXRSZXF1ZXN0SW5pdChib2R5KSB7XG4gICAgY29uc3QgYm9keUlzUG9qbyA9IGlzUG9qbyhib2R5KTtcbiAgICBpZiAoYm9keUlzUG9qbykge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIH1cbiAgICBjb25zdCBpbml0ID0ge1xuICAgICAgLi4udGhpcy5yZXF1ZXN0SW5pdCxcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxuICAgICAgYm9keSxcbiAgICB9O1xuICAgIGlmICghYm9keSB8fCBib2R5SXNQb2pvKSB7XG4gICAgICBpbml0LmhlYWRlcnMgPSB7XG4gICAgICAgIC8vIGRlZmF1bHQgdG8gYXBwbGljYXRpb24vanNvbiBidXQgYWxsb3cgdXNlciBleHBsaWNpdCBvdmVycmlkZXNcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgLi4uaW5pdC5oZWFkZXJzLFxuICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5oZWFkZXJzID0gYXdhaXQgdGhpcy5nZXRIZWFkZXJzKGluaXQuaGVhZGVycyk7XG4gICAgcmV0dXJuIGluaXQ7XG4gIH1cblxuICAvKiogUGVyZm9ybSBuZXR3b3JrIHJlcXVlc3QgYW5kIHJlc29sdmUgd2l0aCBIVFRQIFJlc3BvbnNlICovXG4gIGZldGNoUmVzcG9uc2UoaW5wdXQsIGluaXQpIHtcbiAgICByZXR1cm4gZmV0Y2goaW5wdXQsIGluaXQpXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgLy8gZW5zdXJlIENPUlMsIG5ldHdvcmsgZG93biwgYW5kIHBhcnNlIGVycm9ycyBhcmUgc3RpbGwgY2F1Z2h0IGJ5IE5ldHdvcmtFcnJvckJvdW5kYXJ5XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICAgIGVycm9yLnN0YXR1cyA9IDUwMDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9XG5cbiAgcGFyc2VSZXNwb25zZShyZXNwb25zZSkge1xuICAgIC8vIHRoaXMgc2hvdWxkIG5vdCBoYXZlIGFueSBjb250ZW50IHRvIHJlYWRcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgaWYgKCFyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdqc29uJykpIHtcbiAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgLy8gc3RyaW5nIG9yICdub3Qgc2V0JyBzY2hlbWEsIGFyZSB2YWxpZFxuICAgICAgICAvLyB3aGVuIG92ZXJyaWRpbmcgcHJvY2VzcyB0aGV5IG1pZ2h0IGhhbmRsZSBvdGhlciBjYXNlcywgc28gd2UgZG9uJ3Qgd2FudCB0byBibG9jayBvbiBvdXIgbG9naWNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIFsnc3RyaW5nJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiB0aGlzLnNjaGVtYSkgfHxcbiAgICAgICAgICB0aGlzLnNjaGVtYSA9PT0gbnVsbCB8fFxuICAgICAgICAgIHRoaXMucHJvY2VzcyAhPT0gUmVzdEVuZHBvaW50LnByb3RvdHlwZS5wcm9jZXNzXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gdGV4dDtcblxuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICBlcnJvci5zdGF0dXMgPSA0MDQ7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0ZXh0IHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgICAvLyBjdXN0b20gZGV2LW9ubHkgbWVzc2FnZXMgZm9yIG1vcmUgZGV0YWlsZWQgY2F1c2VcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdodG1sJykgfHxcbiAgICAgICAgICAgICAgdGV4dC5zdGFydHNXaXRoKCc8IWRvY3R5cGUgaHRtbD4nKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHRyeVBhcnNlKHRleHQpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBcImNvbnRlbnQtdHlwZVwiIGhlYWRlciBkb2VzIG5vdCBpbmNsdWRlIFwianNvblwiLCBidXQgSlNPTiByZXNwb25zZSBmb3VuZC5cblNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNDYyNyBmb3IgaW5mb3JtYXRpb24gb24gSlNPTiByZXNwb25zZXNcblxuVXNpbmcgcGFyc2VkIEpTT04uXG5JZiB0ZXh0IGNvbnRlbnQgd2FzIGV4cGVjdGVkIHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIHBhdGhUb1JlZ2V4cCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBFKFxuICAgICAgLy8gIGZldGNoIGdldCBvdmVycmlkZGVuIGJ5IGZ1bmN0aW9uIHByb3RvdHlwZSwgc28gd2UgbXVzdCBzZXQgaXQgZXhwbGljaXRseSBldmVyeSB0aW1lXG4gICAgICB7IGZldGNoOiB0aGlzLmZldGNoLCAuLi5vcHRpb25zIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuXG4gIHBhZ2luYXRlZChyZW1vdmVDdXJzb3IpIHtcbiAgICBpZiAodHlwZW9mIHJlbW92ZUN1cnNvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHJlbW92ZUN1cnNvcjtcbiAgICAgIHJlbW92ZUN1cnNvciA9ICh7IC4uLnBhcmFtcyB9KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBwYXJhbXNbZmllbGROYW1lXTtcbiAgICAgICAgcmV0dXJuIFtwYXJhbXNdO1xuICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRlUGFnaW5hdGVkU2NoZW1hID0gY29sbGVjdGlvbiA9PiB7XG4gICAgICBmb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm4gY29sbGVjdGlvbi5hZGRXaXRoKHBhZ2luYXRlZE1lcmdlLCBwYWdpbmF0ZWRGaWx0ZXIocmVtb3ZlQ3Vyc29yKSk7XG4gICAgfTtcbiAgICBjb25zdCBuZXdTY2hlbWEgPSBtYXBDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEpO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHsgc2NoZW1hOiBuZXdTY2hlbWEgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHsgdXBkYXRlOiBwYWdpbmF0aW9uVXBkYXRlKHRoaXMsIHJlbW92ZUN1cnNvcikgfSk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHRyeVBhcnNlID0gaW5wdXQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGlucHV0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxZQUFZLFFBQVEsZ0JBQWdCO0FBRTdDLE9BQU9DLGlCQUFpQixNQUFNLHdCQUF3QjtBQUN0RCxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLE9BQU9DLFlBQVksTUFBTSxtQkFBbUI7QUFDNUMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsMkJBQTJCO0FBQzNFLE9BQU9DLGdCQUFnQixNQUFNLHVCQUF1QjtBQUNwRCxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFDLFFBQUEsZ0JBQUFDLDBCQUFBO0FBSUEsZUFBZSxNQUFNQyxZQUFZLFNBQVNkLFFBQVEsQ0FBQztFQUVqRGUsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFFO0lBQUEsSUFBQUMsY0FBQTtJQUNuQixLQUFLLEVBQUFBLGNBQUEsR0FDSEQsT0FBTyxDQUFDRSxLQUFLLFlBQUFELGNBQUEsR0FDWCxnQkFBZ0IsR0FBR0UsSUFBSSxFQUFFO01BQ3ZCLE1BQU1DLFNBQVMsR0FDYkMsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsS0FBYU8sSUFBSSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHSCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO01B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
|
package/lib/RestHelpers.js
CHANGED
|
@@ -25,9 +25,11 @@ export function isPojo(obj) {
|
|
|
25
25
|
return gpo(obj) === proto;
|
|
26
26
|
}
|
|
27
27
|
export function shortenPath(path) {
|
|
28
|
+
const lastColonIndex = path.lastIndexOf(':');
|
|
29
|
+
if (lastColonIndex === -1) throw new Error('Resource path requires at least one :parameter');
|
|
28
30
|
// this is for when not specifying a specific item like create/list
|
|
29
|
-
let shortUrlRoot = path.substring(0,
|
|
31
|
+
let shortUrlRoot = path.substring(0, lastColonIndex);
|
|
30
32
|
if (shortUrlRoot[shortUrlRoot.length - 1] === '/') shortUrlRoot = shortUrlRoot.substring(0, shortUrlRoot.length - 1);
|
|
31
33
|
return shortUrlRoot;
|
|
32
34
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlIiwicGFyc2UiLCJ1cmxCYXNlQ2FjaGUiLCJPYmplY3QiLCJjcmVhdGUiLCJnZXRVcmxCYXNlIiwicGF0aCIsImVuY29kZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInZhbGlkYXRlIiwidXJsVG9rZW5zQ2FjaGUiLCJnZXRVcmxUb2tlbnMiLCJTZXQiLCJtYXAiLCJ0IiwicHJvdG8iLCJwcm90b3R5cGUiLCJncG8iLCJnZXRQcm90b3R5cGVPZiIsImlzUG9qbyIsIm9iaiIsInNob3J0ZW5QYXRoIiwibGFzdENvbG9uSW5kZXgiLCJsYXN0SW5kZXhPZiIsIkVycm9yIiwic2hvcnRVcmxSb290Iiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RIZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGUsIFBhdGhGdW5jdGlvbiwgcGFyc2UgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCB7IFNob3J0ZW5QYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuXG5jb25zdCB1cmxCYXNlQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFBhdGhGdW5jdGlvbjxvYmplY3Q+PiA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VXJsQmFzZShwYXRoOiBzdHJpbmcpOiBQYXRoRnVuY3Rpb24ge1xuICBpZiAoIShwYXRoIGluIHVybEJhc2VDYWNoZSkpIHtcbiAgICB1cmxCYXNlQ2FjaGVbcGF0aF0gPSBjb21waWxlKHBhdGgsIHtcbiAgICAgIGVuY29kZTogZW5jb2RlVVJJQ29tcG9uZW50LFxuICAgICAgdmFsaWRhdGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiB1cmxCYXNlQ2FjaGVbcGF0aF07XG59XG5cbmNvbnN0IHVybFRva2Vuc0NhY2hlOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVybFRva2VucyhwYXRoOiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gIGlmICghKHBhdGggaW4gdXJsVG9rZW5zQ2FjaGUpKSB7XG4gICAgdXJsVG9rZW5zQ2FjaGVbcGF0aF0gPSBuZXcgU2V0KFxuICAgICAgcGFyc2UocGF0aCkubWFwKHQgPT4gKHR5cGVvZiB0ID09PSAnc3RyaW5nJyA/IHQgOiBgJHt0WyduYW1lJ119YCkpLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVybFRva2Vuc0NhY2hlW3BhdGhdO1xufVxuXG5jb25zdCBwcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5jb25zdCBncG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Bvam8ob2JqOiB1bmtub3duKTogb2JqIGlzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBncG8ob2JqKSA9PT0gcHJvdG87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG9ydGVuUGF0aDxTIGV4dGVuZHMgc3RyaW5nPihwYXRoOiBTKTogU2hvcnRlblBhdGg8Uz4ge1xuICBjb25zdCBsYXN0Q29sb25JbmRleCA9IHBhdGgubGFzdEluZGV4T2YoJzonKTtcbiAgaWYgKGxhc3RDb2xvbkluZGV4ID09PSAtMSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jlc291cmNlIHBhdGggcmVxdWlyZXMgYXQgbGVhc3Qgb25lIDpwYXJhbWV0ZXInKTtcbiAgLy8gdGhpcyBpcyBmb3Igd2hlbiBub3Qgc3BlY2lmeWluZyBhIHNwZWNpZmljIGl0ZW0gbGlrZSBjcmVhdGUvbGlzdFxuICBsZXQgc2hvcnRVcmxSb290OiBTaG9ydGVuUGF0aDxTPiA9IHBhdGguc3Vic3RyaW5nKDAsIGxhc3RDb2xvbkluZGV4KSBhcyBhbnk7XG4gIGlmIChzaG9ydFVybFJvb3Rbc2hvcnRVcmxSb290Lmxlbmd0aCAtIDFdID09PSAnLycpXG4gICAgc2hvcnRVcmxSb290ID0gc2hvcnRVcmxSb290LnN1YnN0cmluZyhcbiAgICAgIDAsXG4gICAgICBzaG9ydFVybFJvb3QubGVuZ3RoIC0gMSxcbiAgICApIGFzIFNob3J0ZW5QYXRoPFM+O1xuICByZXR1cm4gc2hvcnRVcmxSb290O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLEVBQWdCQyxLQUFLLFFBQVEsZ0JBQWdCO0FBSTdELE1BQU1DLFlBQWtELEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQztBQUM5RSxPQUFPLFNBQVNDLFVBQVVBLENBQUNDLElBQVksRUFBZ0I7RUFDckQsSUFBSSxFQUFFQSxJQUFJLElBQUlKLFlBQVksQ0FBQyxFQUFFO0lBQzNCQSxZQUFZLENBQUNJLElBQUksQ0FBQyxHQUFHTixPQUFPLENBQUNNLElBQUksRUFBRTtNQUNqQ0MsTUFBTSxFQUFFQyxrQkFBa0I7TUFDMUJDLFFBQVEsRUFBRTtJQUNaLENBQUMsQ0FBQztFQUNKO0VBQ0EsT0FBT1AsWUFBWSxDQUFDSSxJQUFJLENBQUM7QUFDM0I7QUFFQSxNQUFNSSxjQUEyQyxHQUFHUCxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkUsT0FBTyxTQUFTTyxZQUFZQSxDQUFDTCxJQUFZLEVBQWU7RUFDdEQsSUFBSSxFQUFFQSxJQUFJLElBQUlJLGNBQWMsQ0FBQyxFQUFFO0lBQzdCQSxjQUFjLENBQUNKLElBQUksQ0FBQyxHQUFHLElBQUlNLEdBQUcsQ0FDNUJYLEtBQUssQ0FBQ0ssSUFBSSxDQUFDLENBQUNPLEdBQUcsQ0FBQ0MsQ0FBQyxJQUFLLE9BQU9BLENBQUMsS0FBSyxRQUFRLEdBQUdBLENBQUMsR0FBSSxHQUFFQSxDQUFDLENBQUMsTUFBTSxDQUFFLEVBQUUsQ0FDbkUsQ0FBQztFQUNIO0VBQ0EsT0FBT0osY0FBYyxDQUFDSixJQUFJLENBQUM7QUFDN0I7QUFFQSxNQUFNUyxLQUFLLEdBQUdaLE1BQU0sQ0FBQ2EsU0FBUztBQUM5QixNQUFNQyxHQUFHLEdBQUdkLE1BQU0sQ0FBQ2UsY0FBYztBQUVqQyxPQUFPLFNBQVNDLE1BQU1BLENBQUNDLEdBQVksRUFBOEI7RUFDL0QsSUFBSUEsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQzNDLE9BQU8sS0FBSztFQUNkO0VBQ0EsT0FBT0gsR0FBRyxDQUFDRyxHQUFHLENBQUMsS0FBS0wsS0FBSztBQUMzQjtBQUVBLE9BQU8sU0FBU00sV0FBV0EsQ0FBbUJmLElBQU8sRUFBa0I7RUFDckUsTUFBTWdCLGNBQWMsR0FBR2hCLElBQUksQ0FBQ2lCLFdBQVcsQ0FBQyxHQUFHLENBQUM7RUFDNUMsSUFBSUQsY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUN2QixNQUFNLElBQUlFLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQztFQUNuRTtFQUNBLElBQUlDLFlBQTRCLEdBQUduQixJQUFJLENBQUNvQixTQUFTLENBQUMsQ0FBQyxFQUFFSixjQUFjLENBQVE7RUFDM0UsSUFBSUcsWUFBWSxDQUFDQSxZQUFZLENBQUNFLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQy9DRixZQUFZLEdBQUdBLFlBQVksQ0FBQ0MsU0FBUyxDQUNuQyxDQUFDLEVBQ0RELFlBQVksQ0FBQ0UsTUFBTSxHQUFHLENBQ3hCLENBQW1CO0VBQ3JCLE9BQU9GLFlBQVk7QUFDckIifQ==
|
package/lib/createResource.d.ts
CHANGED
|
@@ -1,66 +1,99 @@
|
|
|
1
1
|
import { schema } from '@data-client/endpoint';
|
|
2
|
-
import type {
|
|
3
|
-
import { PathArgs, ShortenPath } from './pathTypes.js';
|
|
4
|
-
import
|
|
2
|
+
import type { Denormalize } from '@data-client/endpoint';
|
|
3
|
+
import { PathArgs, ResourcePath, ShortenPath } from './pathTypes.js';
|
|
4
|
+
import { ResourceGenerics, ResourceOptions } from './resourceTypes.js';
|
|
5
|
+
import { GetEndpoint, MutateEndpoint, PaginationFieldEndpoint, RestTypeNoBody } from './RestEndpoint.js';
|
|
5
6
|
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
6
7
|
*
|
|
7
8
|
* @see https://resthooks.io/rest/api/createResource
|
|
8
9
|
*/
|
|
9
|
-
export default function createResource<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
optimistic?: boolean;
|
|
15
|
-
} & EndpointExtraOptions): Resource<U, S>;
|
|
16
|
-
export interface Resource<U extends string, S extends Schema> {
|
|
10
|
+
export default function createResource<O extends ResourceGenerics>({ path, schema, Endpoint, optimistic, paginationField, ...extraOptions }: Readonly<O> & ResourceOptions): Resource<O>;
|
|
11
|
+
export interface Resource<O extends ResourceGenerics = {
|
|
12
|
+
path: ResourcePath;
|
|
13
|
+
schema: any;
|
|
14
|
+
}> {
|
|
17
15
|
/** Get a singular item
|
|
18
16
|
*
|
|
19
17
|
* @see https://resthooks.io/rest/api/createResource#get
|
|
20
18
|
*/
|
|
21
|
-
get:
|
|
22
|
-
path:
|
|
23
|
-
|
|
19
|
+
get: GetEndpoint<{
|
|
20
|
+
path: O['path'];
|
|
21
|
+
schema: O['schema'];
|
|
22
|
+
}>;
|
|
24
23
|
/** Get a list of item
|
|
25
24
|
*
|
|
26
25
|
* @see https://resthooks.io/rest/api/createResource#getlist
|
|
27
26
|
*/
|
|
28
|
-
getList:
|
|
29
|
-
path: ShortenPath<
|
|
27
|
+
getList: 'searchParams' extends keyof O ? GetEndpoint<{
|
|
28
|
+
path: ShortenPath<O['path']>;
|
|
29
|
+
schema: schema.Collection<[O['schema']]>;
|
|
30
|
+
searchParams: O['searchParams'];
|
|
31
|
+
}> : GetEndpoint<{
|
|
32
|
+
path: ShortenPath<O['path']>;
|
|
33
|
+
schema: schema.Collection<[O['schema']]>;
|
|
30
34
|
searchParams: Record<string, number | string | boolean> | undefined;
|
|
31
|
-
}
|
|
35
|
+
}>;
|
|
36
|
+
/** Get a list of item
|
|
37
|
+
*
|
|
38
|
+
* @see https://dataclient.io/rest/api/createResource#getNextPage
|
|
39
|
+
*/
|
|
40
|
+
getNextPage: 'paginationField' extends keyof O ? PaginationFieldEndpoint<'searchParams' extends keyof O ? GetEndpoint<{
|
|
41
|
+
path: ShortenPath<O['path']>;
|
|
42
|
+
schema: schema.Collection<[O['schema']]>;
|
|
43
|
+
searchParams: O['searchParams'];
|
|
44
|
+
}> : GetEndpoint<{
|
|
45
|
+
path: ShortenPath<O['path']>;
|
|
46
|
+
schema: schema.Collection<[O['schema']]>;
|
|
47
|
+
searchParams: Record<string, number | string | boolean> | undefined;
|
|
48
|
+
}>, Exclude<O['paginationField'], undefined>> : undefined;
|
|
32
49
|
/** Create a new item (POST)
|
|
33
50
|
*
|
|
34
51
|
* @see https://resthooks.io/rest/api/createResource#create
|
|
35
52
|
*/
|
|
36
|
-
create:
|
|
37
|
-
path: ShortenPath<
|
|
38
|
-
|
|
39
|
-
|
|
53
|
+
create: 'searchParams' extends keyof O ? MutateEndpoint<{
|
|
54
|
+
path: ShortenPath<O['path']>;
|
|
55
|
+
schema: schema.Collection<[O['schema']]>['push'];
|
|
56
|
+
body: 'body' extends keyof O ? O['body'] : Partial<Denormalize<O['schema']>>;
|
|
57
|
+
searchParams: O['searchParams'];
|
|
58
|
+
}> : MutateEndpoint<{
|
|
59
|
+
path: ShortenPath<O['path']>;
|
|
60
|
+
schema: schema.Collection<[O['schema']]>['push'];
|
|
61
|
+
body: 'body' extends keyof O ? O['body'] : Partial<Denormalize<O['schema']>>;
|
|
62
|
+
}>;
|
|
40
63
|
/** Update an item (PUT)
|
|
41
64
|
*
|
|
42
65
|
* @see https://resthooks.io/rest/api/createResource#update
|
|
43
66
|
*/
|
|
44
|
-
update:
|
|
45
|
-
path:
|
|
46
|
-
body:
|
|
47
|
-
|
|
67
|
+
update: 'body' extends keyof O ? MutateEndpoint<{
|
|
68
|
+
path: O['path'];
|
|
69
|
+
body: O['body'];
|
|
70
|
+
schema: O['schema'];
|
|
71
|
+
}> : MutateEndpoint<{
|
|
72
|
+
path: O['path'];
|
|
73
|
+
body: Partial<Denormalize<O['schema']>>;
|
|
74
|
+
schema: O['schema'];
|
|
75
|
+
}>;
|
|
48
76
|
/** Update an item (PATCH)
|
|
49
77
|
*
|
|
50
78
|
* @see https://resthooks.io/rest/api/createResource#partialupdate
|
|
51
79
|
*/
|
|
52
|
-
partialUpdate:
|
|
53
|
-
path:
|
|
54
|
-
body: Partial<
|
|
55
|
-
|
|
80
|
+
partialUpdate: 'body' extends keyof O ? MutateEndpoint<{
|
|
81
|
+
path: O['path'];
|
|
82
|
+
body: Partial<O['body']>;
|
|
83
|
+
schema: O['schema'];
|
|
84
|
+
}> : MutateEndpoint<{
|
|
85
|
+
path: O['path'];
|
|
86
|
+
body: Partial<Denormalize<O['schema']>>;
|
|
87
|
+
schema: O['schema'];
|
|
88
|
+
}>;
|
|
56
89
|
/** Delete an item (DELETE)
|
|
57
90
|
*
|
|
58
91
|
* @see https://resthooks.io/rest/api/createResource#delete
|
|
59
92
|
*/
|
|
60
|
-
delete: RestTypeNoBody<PathArgs<
|
|
93
|
+
delete: RestTypeNoBody<PathArgs<O['path']>, O['schema'] extends schema.EntityInterface & {
|
|
61
94
|
process: any;
|
|
62
|
-
} ? schema.
|
|
63
|
-
path:
|
|
95
|
+
} ? schema.Invalidate<O['schema']> : O['schema'], undefined, Partial<PathArgs<O['path']>>, {
|
|
96
|
+
path: O['path'];
|
|
64
97
|
}>;
|
|
65
98
|
}
|
|
66
99
|
//# sourceMappingURL=createResource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createResource.d.ts","sourceRoot":"","sources":["../src/createResource.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"createResource.d.ts","sourceRoot":"","sources":["../src/createResource.ts"],"names":[],"mappings":"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"}
|
package/lib/createResource.js
CHANGED
|
@@ -2,7 +2,8 @@ import { AbortOptimistic, schema } from '@data-client/endpoint';
|
|
|
2
2
|
import RestEndpoint from './RestEndpoint.js';
|
|
3
3
|
import { shortenPath } from './RestHelpers.js';
|
|
4
4
|
const {
|
|
5
|
-
|
|
5
|
+
Invalidate,
|
|
6
|
+
Collection
|
|
6
7
|
} = schema;
|
|
7
8
|
|
|
8
9
|
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
@@ -14,6 +15,7 @@ export default function createResource({
|
|
|
14
15
|
schema,
|
|
15
16
|
Endpoint = RestEndpoint,
|
|
16
17
|
optimistic,
|
|
18
|
+
paginationField,
|
|
17
19
|
...extraOptions
|
|
18
20
|
}) {
|
|
19
21
|
const shortenedPath = shortenPath(path);
|
|
@@ -35,19 +37,15 @@ export default function createResource({
|
|
|
35
37
|
extraPartialOptions.getOptimisticResponse = optimisticPartial(get);
|
|
36
38
|
}
|
|
37
39
|
const getList = new Endpoint({
|
|
38
|
-
...
|
|
40
|
+
...extraMutateOptions,
|
|
39
41
|
path: shortenedPath,
|
|
40
|
-
schema: [schema],
|
|
42
|
+
schema: new Collection([schema]),
|
|
41
43
|
name: getName('getList')
|
|
42
44
|
});
|
|
43
|
-
|
|
45
|
+
const ret = {
|
|
44
46
|
get,
|
|
45
47
|
getList,
|
|
46
|
-
create:
|
|
47
|
-
...extraMutateOptions,
|
|
48
|
-
path: shortenedPath,
|
|
49
|
-
schema,
|
|
50
|
-
method: 'POST',
|
|
48
|
+
create: getList.push.extend({
|
|
51
49
|
name: getName('create')
|
|
52
50
|
}),
|
|
53
51
|
update: new Endpoint({
|
|
@@ -67,7 +65,7 @@ export default function createResource({
|
|
|
67
65
|
delete: new Endpoint({
|
|
68
66
|
...extraMutateOptions,
|
|
69
67
|
path,
|
|
70
|
-
schema: schema.process ? new
|
|
68
|
+
schema: schema.process ? new Invalidate(schema) : schema,
|
|
71
69
|
method: 'DELETE',
|
|
72
70
|
name: getName('delete'),
|
|
73
71
|
process(res, params) {
|
|
@@ -76,11 +74,12 @@ export default function createResource({
|
|
|
76
74
|
getOptimisticResponse: optimistic ? optimisticDelete : undefined
|
|
77
75
|
})
|
|
78
76
|
};
|
|
77
|
+
if (paginationField) ret.getNextPage = getList.paginated(paginationField);
|
|
78
|
+
return ret;
|
|
79
79
|
}
|
|
80
80
|
function optimisticUpdate(snap, params, body) {
|
|
81
81
|
return {
|
|
82
82
|
...params,
|
|
83
|
-
// even tho we don't always have two arguments, the extra one will simply be undefined which spreads fine
|
|
84
83
|
...body
|
|
85
84
|
};
|
|
86
85
|
}
|
|
@@ -101,4 +100,4 @@ function optimisticPartial(getEndpoint) {
|
|
|
101
100
|
function optimisticDelete(snap, params) {
|
|
102
101
|
return params;
|
|
103
102
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydE9wdGltaXN0aWMiLCJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkRlbGV0ZSIsImNyZWF0ZVJlc291cmNlIiwicGF0aCIsIkVuZHBvaW50Iiwib3B0aW1pc3RpYyIsImV4dHJhT3B0aW9ucyIsInNob3J0ZW5lZFBhdGgiLCJnZXROYW1lIiwibmFtZSIsImV4dHJhTXV0YXRlT3B0aW9ucyIsImV4dHJhUGFydGlhbE9wdGlvbnMiLCJnZXQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJvcHRpbWlzdGljVXBkYXRlIiwib3B0aW1pc3RpY1BhcnRpYWwiLCJnZXRMaXN0IiwiY3JlYXRlIiwibWV0aG9kIiwidXBkYXRlIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsInByb2Nlc3MiLCJyZXMiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwib3B0aW1pc3RpY0RlbGV0ZSIsInVuZGVmaW5lZCIsInNuYXAiLCJib2R5IiwiZ2V0RW5kcG9pbnQiLCJkYXRhIiwiZ2V0UmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlUmVzb3VyY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJvcnRPcHRpbWlzdGljLFxuICBzY2hlbWEsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUge1xuICBTY2hlbWEsXG4gIERlbm9ybWFsaXplLFxuICBFbmRwb2ludEV4dHJhT3B0aW9ucyxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IHsgUGF0aEFyZ3MsIFNob3J0ZW5QYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBOZXdHZXRFbmRwb2ludCxcbiAgTmV3TXV0YXRlRW5kcG9pbnQsXG4gIFJlc3RJbnN0YW5jZSxcbiAgUmVzdFR5cGVOb0JvZHksXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgRGVsZXRlIH0gPSBzY2hlbWE7XG5cbi8qKiBDcmVhdGVzIGNvbGxlY3Rpb24gb2YgRW5kcG9pbnRzIGZvciBjb21tb24gb3BlcmF0aW9ucyBvbiBhIGdpdmVuIGRhdGEvc2NoZW1hLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8VSBleHRlbmRzIHN0cmluZywgUyBleHRlbmRzIFNjaGVtYT4oe1xuICBwYXRoLFxuICBzY2hlbWEsXG4gIEVuZHBvaW50ID0gUmVzdEVuZHBvaW50LFxuICBvcHRpbWlzdGljLFxuICAuLi5leHRyYU9wdGlvbnNcbn06IHtcbiAgcmVhZG9ubHkgcGF0aDogVTtcbiAgcmVhZG9ubHkgc2NoZW1hOiBTO1xuICByZWFkb25seSBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIHVybFByZWZpeD86IHN0cmluZztcbiAgb3B0aW1pc3RpYz86IGJvb2xlYW47XG59ICYgRW5kcG9pbnRFeHRyYU9wdGlvbnMpOiBSZXNvdXJjZTxVLCBTPiB7XG4gIGNvbnN0IHNob3J0ZW5lZFBhdGggPSBzaG9ydGVuUGF0aChwYXRoKTtcbiAgY29uc3QgZ2V0TmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IGAkeyhzY2hlbWEgYXMgYW55KT8ubmFtZX0uJHtuYW1lfWA7XG4gIGNvbnN0IGV4dHJhTXV0YXRlT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGV4dHJhUGFydGlhbE9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBnZXQ6IE5ld0dldEVuZHBvaW50PHsgcGF0aDogVSB9LCBTPiA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFPcHRpb25zLFxuICAgIHBhdGgsXG4gICAgc2NoZW1hLFxuICAgIG5hbWU6IGdldE5hbWUoJ2dldCcpLFxuICB9KTtcbiAgaWYgKG9wdGltaXN0aWMpIHtcbiAgICAoZXh0cmFNdXRhdGVPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1VwZGF0ZTtcbiAgICAoZXh0cmFQYXJ0aWFsT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNQYXJ0aWFsKGdldCk7XG4gIH1cbiAgY29uc3QgZ2V0TGlzdCA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFPcHRpb25zLFxuICAgIHBhdGg6IHNob3J0ZW5lZFBhdGgsXG4gICAgc2NoZW1hOiBbc2NoZW1hXSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGdldCxcbiAgICBnZXRMaXN0LFxuICAgIGNyZWF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGg6IHNob3J0ZW5lZFBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpLFxuICAgIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6IChzY2hlbWEgYXMgYW55KS5wcm9jZXNzID8gbmV3IERlbGV0ZShzY2hlbWEgYXMgYW55KSA6IHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBuYW1lOiBnZXROYW1lKCdkZWxldGUnKSxcbiAgICAgIHByb2Nlc3MocmVzLCBwYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIHJlcyAmJiBPYmplY3Qua2V5cyhyZXMpLmxlbmd0aCA/IHJlcyA6IHBhcmFtcztcbiAgICAgIH0sXG4gICAgICBnZXRPcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWMgPyAob3B0aW1pc3RpY0RlbGV0ZSBhcyBhbnkpIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICB9IGFzIGFueTtcbn1cblxuZnVuY3Rpb24gb3B0aW1pc3RpY1VwZGF0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnksIGJvZHk6IGFueSkge1xuICByZXR1cm4ge1xuICAgIC4uLnBhcmFtcyxcbiAgICAvLyBldmVuIHRobyB3ZSBkb24ndCBhbHdheXMgaGF2ZSB0d28gYXJndW1lbnRzLCB0aGUgZXh0cmEgb25lIHdpbGwgc2ltcGx5IGJlIHVuZGVmaW5lZCB3aGljaCBzcHJlYWRzIGZpbmVcbiAgICAuLi5ib2R5LFxuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY1BhcnRpYWwoZ2V0RW5kcG9pbnQ6IE5ld0dldEVuZHBvaW50PGFueSwgYW55Pikge1xuICByZXR1cm4gZnVuY3Rpb24gKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBzbmFwLmdldFJlc3BvbnNlKGdldEVuZHBvaW50LCBwYXJhbXMpO1xuICAgIGlmICghZGF0YSkgdGhyb3cgbmV3IEFib3J0T3B0aW1pc3RpYygpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi5kYXRhLFxuICAgICAgLy8gZXZlbiB0aG8gd2UgZG9uJ3QgYWx3YXlzIGhhdmUgdHdvIGFyZ3VtZW50cywgdGhlIGV4dHJhIG9uZSB3aWxsIHNpbXBseSBiZSB1bmRlZmluZWQgd2hpY2ggc3ByZWFkcyBmaW5lXG4gICAgICAuLi5ib2R5LFxuICAgIH07XG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljRGVsZXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSkge1xuICByZXR1cm4gcGFyYW1zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlPFUgZXh0ZW5kcyBzdHJpbmcsIFMgZXh0ZW5kcyBTY2hlbWE+IHtcbiAgLyoqIEdldCBhIHNpbmd1bGFyIGl0ZW1cbiAgICpcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNnZXRcbiAgICovXG4gIGdldDogTmV3R2V0RW5kcG9pbnQ8eyBwYXRoOiBVIH0sIFM+O1xuICAvKiogR2V0IGEgbGlzdCBvZiBpdGVtXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjZ2V0bGlzdFxuICAgKi9cbiAgZ2V0TGlzdDogTmV3R2V0RW5kcG9pbnQ8XG4gICAge1xuICAgICAgcGF0aDogU2hvcnRlblBhdGg8VT47XG4gICAgICBzZWFyY2hQYXJhbXM6IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkO1xuICAgIH0sXG4gICAgU1tdXG4gID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVClcbiAgICpcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNjcmVhdGVcbiAgICovXG4gIGNyZWF0ZTogTmV3TXV0YXRlRW5kcG9pbnQ8XG4gICAgeyBwYXRoOiBTaG9ydGVuUGF0aDxVPjsgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxTPj4gfSxcbiAgICBTXG4gID47XG4gIC8qKiBVcGRhdGUgYW4gaXRlbSAoUFVUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3VwZGF0ZVxuICAgKi9cbiAgdXBkYXRlOiBOZXdNdXRhdGVFbmRwb2ludDx7IHBhdGg6IFU7IGJvZHk6IFBhcnRpYWw8RGVub3JtYWxpemU8Uz4+IH0sIFM+O1xuICAvKiogVXBkYXRlIGFuIGl0ZW0gKFBBVENIKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3BhcnRpYWx1cGRhdGVcbiAgICovXG4gIHBhcnRpYWxVcGRhdGU6IE5ld011dGF0ZUVuZHBvaW50PFxuICAgIHsgcGF0aDogVTsgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxTPj4gfSxcbiAgICBTXG4gID47XG4gIC8qKiBEZWxldGUgYW4gaXRlbSAoREVMRVRFKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI2RlbGV0ZVxuICAgKi9cbiAgZGVsZXRlOiBSZXN0VHlwZU5vQm9keTxcbiAgICBQYXRoQXJnczxVPixcbiAgICBTIGV4dGVuZHMgc2NoZW1hLkVudGl0eUludGVyZmFjZSAmIHsgcHJvY2VzczogYW55IH0gPyBzY2hlbWEuRGVsZXRlPFM+IDogUyxcbiAgICB1bmRlZmluZWQsXG4gICAgUGFydGlhbDxQYXRoQXJnczxVPj4sXG4gICAge1xuICAgICAgcGF0aDogVTtcbiAgICB9XG4gID47XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGVBQWUsRUFDZkMsTUFBTSxRQUVELHVCQUF1QjtBQVE5QixPQUFPQyxZQUFZLE1BS1osbUJBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7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
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydE9wdGltaXN0aWMiLCJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiY3JlYXRlUmVzb3VyY2UiLCJwYXRoIiwiRW5kcG9pbnQiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiZXh0cmFQYXJ0aWFsT3B0aW9ucyIsImdldCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsIm9wdGltaXN0aWNVcGRhdGUiLCJvcHRpbWlzdGljUGFydGlhbCIsImdldExpc3QiLCJyZXQiLCJjcmVhdGUiLCJwdXNoIiwiZXh0ZW5kIiwidXBkYXRlIiwibWV0aG9kIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsInByb2Nlc3MiLCJyZXMiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwib3B0aW1pc3RpY0RlbGV0ZSIsInVuZGVmaW5lZCIsImdldE5leHRQYWdlIiwicGFnaW5hdGVkIiwic25hcCIsImJvZHkiLCJnZXRFbmRwb2ludCIsImRhdGEiLCJnZXRSZXNwb25zZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVSZXNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBYm9ydE9wdGltaXN0aWMsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxuICBzY2hlbWEsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgdHlwZSB7IERlbm9ybWFsaXplIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IHsgUGF0aEFyZ3MsIFJlc291cmNlUGF0aCwgU2hvcnRlblBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBSZXNvdXJjZUdlbmVyaWNzLCBSZXNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBHZXRFbmRwb2ludCxcbiAgTXV0YXRlRW5kcG9pbnQsXG4gIFBhZ2luYXRpb25GaWVsZEVuZHBvaW50LFxuICBSZXN0VHlwZU5vQm9keSxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuaW1wb3J0IHsgc2hvcnRlblBhdGggfSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcblxuY29uc3QgeyBJbnZhbGlkYXRlLCBDb2xsZWN0aW9uIH0gPSBzY2hlbWE7XG5cbi8qKiBDcmVhdGVzIGNvbGxlY3Rpb24gb2YgRW5kcG9pbnRzIGZvciBjb21tb24gb3BlcmF0aW9ucyBvbiBhIGdpdmVuIGRhdGEvc2NoZW1hLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgb3B0aW1pc3RpYyxcbiAgcGFnaW5hdGlvbkZpZWxkLFxuICAuLi5leHRyYU9wdGlvbnNcbn06IFJlYWRvbmx5PE8+ICYgUmVzb3VyY2VPcHRpb25zKTogUmVzb3VyY2U8Tz4ge1xuICBjb25zdCBzaG9ydGVuZWRQYXRoID0gc2hvcnRlblBhdGgocGF0aCk7XG4gIGNvbnN0IGdldE5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiBgJHsoc2NoZW1hIGFzIGFueSk/Lm5hbWV9LiR7bmFtZX1gO1xuICBjb25zdCBleHRyYU11dGF0ZU9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBleHRyYVBhcnRpYWxPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PiA9XG4gICAgbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lOiBnZXROYW1lKCdnZXQnKSxcbiAgICB9KSBhcyBhbnk7XG4gIGlmIChvcHRpbWlzdGljKSB7XG4gICAgKGV4dHJhTXV0YXRlT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNVcGRhdGU7XG4gICAgKGV4dHJhUGFydGlhbE9wdGlvbnMgYXMgYW55KS5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljUGFydGlhbChnZXQpO1xuICB9XG4gIGNvbnN0IGdldExpc3QgPSBuZXcgRW5kcG9pbnQoe1xuICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICBwYXRoOiBzaG9ydGVuZWRQYXRoLFxuICAgIHNjaGVtYTogbmV3IENvbGxlY3Rpb24oW3NjaGVtYSBhcyBhbnldKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgY3JlYXRlOiBnZXRMaXN0LnB1c2guZXh0ZW5kKHsgbmFtZTogZ2V0TmFtZSgnY3JlYXRlJykgfSksXG4gICAgdXBkYXRlOiBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICBuYW1lOiBnZXROYW1lKCd1cGRhdGUnKSxcbiAgICB9KSxcbiAgICBwYXJ0aWFsVXBkYXRlOiBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFQYXJ0aWFsT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBuYW1lOiBnZXROYW1lKCdwYXJ0aWFsVXBkYXRlJyksXG4gICAgfSksXG4gICAgZGVsZXRlOiBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYTogKHNjaGVtYSBhcyBhbnkpLnByb2Nlc3MgPyBuZXcgSW52YWxpZGF0ZShzY2hlbWEgYXMgYW55KSA6IHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBuYW1lOiBnZXROYW1lKCdkZWxldGUnKSxcbiAgICAgIHByb2Nlc3MocmVzOiBhbnksIHBhcmFtczogYW55KSB7XG4gICAgICAgIHJldHVybiByZXMgJiYgT2JqZWN0LmtleXMocmVzKS5sZW5ndGggPyByZXMgOiBwYXJhbXM7XG4gICAgICB9LFxuICAgICAgZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlOiBvcHRpbWlzdGljID8gKG9wdGltaXN0aWNEZWxldGUgYXMgYW55KSA6IHVuZGVmaW5lZCxcbiAgICB9KSxcbiAgfSBhcyBhbnk7XG4gIGlmIChwYWdpbmF0aW9uRmllbGQpIHJldC5nZXROZXh0UGFnZSA9IGdldExpc3QucGFnaW5hdGVkKHBhZ2luYXRpb25GaWVsZCk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uYm9keSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNQYXJ0aWFsKFxuICBnZXRFbmRwb2ludDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBSZXNvdXJjZVBhdGg7IHNjaGVtYTogYW55IH0+LFxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHNuYXAuZ2V0UmVzcG9uc2UoZ2V0RW5kcG9pbnQsIHBhcmFtcykgYXMgeyBkYXRhOiBhbnkgfTtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBBYm9ydE9wdGltaXN0aWMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIC8vIGV2ZW4gdGhvIHdlIGRvbid0IGFsd2F5cyBoYXZlIHR3byBhcmd1bWVudHMsIHRoZSBleHRyYSBvbmUgd2lsbCBzaW1wbHkgYmUgdW5kZWZpbmVkIHdoaWNoIHNwcmVhZHMgZmluZVxuICAgICAgLi4uYm9keSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4ge1xuICAvKiogR2V0IGEgc2luZ3VsYXIgaXRlbVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI2dldFxuICAgKi9cbiAgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PjtcbiAgLyoqIEdldCBhIGxpc3Qgb2YgaXRlbVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI2dldGxpc3RcbiAgICovXG4gIGdldExpc3Q6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgT1xuICAgID8gR2V0RW5kcG9pbnQ8e1xuICAgICAgICBwYXRoOiBTaG9ydGVuUGF0aDxPWydwYXRoJ10+O1xuICAgICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFtPWydzY2hlbWEnXV0+O1xuICAgICAgICBzZWFyY2hQYXJhbXM6IE9bJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgfT5cbiAgICA6IEdldEVuZHBvaW50PHtcbiAgICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxbT1snc2NoZW1hJ11dPjtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZDtcbiAgICAgIH0+O1xuICAvKiogR2V0IGEgbGlzdCBvZiBpdGVtXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI2dldE5leHRQYWdlXG4gICAqL1xuICBnZXROZXh0UGFnZTogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPXG4gICAgPyBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPXG4gICAgICAgICAgPyBHZXRFbmRwb2ludDx7XG4gICAgICAgICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgICAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248W09bJ3NjaGVtYSddXT47XG4gICAgICAgICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICAgICAgICB9PlxuICAgICAgICAgIDogR2V0RW5kcG9pbnQ8e1xuICAgICAgICAgICAgICBwYXRoOiBTaG9ydGVuUGF0aDxPWydwYXRoJ10+O1xuICAgICAgICAgICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFtPWydzY2hlbWEnXV0+O1xuICAgICAgICAgICAgICBzZWFyY2hQYXJhbXM6XG4gICAgICAgICAgICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPlxuICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgfT4sXG4gICAgICAgIEV4Y2x1ZGU8T1sncGFnaW5hdGlvbkZpZWxkJ10sIHVuZGVmaW5lZD5cbiAgICAgID5cbiAgICA6IHVuZGVmaW5lZDtcbiAgLyoqIENyZWF0ZSBhIG5ldyBpdGVtIChQT1NUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI2NyZWF0ZVxuICAgKi9cbiAgY3JlYXRlOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE9cbiAgICA/IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxbT1snc2NoZW1hJ11dPlsncHVzaCddO1xuICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPXG4gICAgICAgICAgPyBPWydib2R5J11cbiAgICAgICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgIH0+XG4gICAgOiBNdXRhdGVFbmRwb2ludDx7XG4gICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248W09bJ3NjaGVtYSddXT5bJ3B1c2gnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgT1xuICAgICAgICAgID8gT1snYm9keSddXG4gICAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICB9PjtcbiAgLyoqIFVwZGF0ZSBhbiBpdGVtIChQVVQpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjdXBkYXRlXG4gICAqL1xuICB1cGRhdGU6ICdib2R5JyBleHRlbmRzIGtleW9mIE9cbiAgICA/IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgICBib2R5OiBPWydib2R5J107XG4gICAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgICB9PlxuICAgIDogTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICAgIGJvZHk6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2NoZW1hOiBPWydzY2hlbWEnXTtcbiAgICAgIH0+O1xuICAvKiogVXBkYXRlIGFuIGl0ZW0gKFBBVENIKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3BhcnRpYWx1cGRhdGVcbiAgICovXG4gIHBhcnRpYWxVcGRhdGU6ICdib2R5JyBleHRlbmRzIGtleW9mIE9cbiAgICA/IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgICBib2R5OiBQYXJ0aWFsPE9bJ2JvZHknXT47XG4gICAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgICB9PlxuICAgIDogTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICAgIGJvZHk6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2NoZW1hOiBPWydzY2hlbWEnXTtcbiAgICAgIH0+O1xuICAvKiogRGVsZXRlIGFuIGl0ZW0gKERFTEVURSlcbiAgICpcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNkZWxldGVcbiAgICovXG4gIGRlbGV0ZTogUmVzdFR5cGVOb0JvZHk8XG4gICAgUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgICBPWydzY2hlbWEnXSBleHRlbmRzIHNjaGVtYS5FbnRpdHlJbnRlcmZhY2UgJiB7IHByb2Nlc3M6IGFueSB9XG4gICAgICA/IHNjaGVtYS5JbnZhbGlkYXRlPE9bJ3NjaGVtYSddPlxuICAgICAgOiBPWydzY2hlbWEnXSxcbiAgICB1bmRlZmluZWQsXG4gICAgUGFydGlhbDxQYXRoQXJnczxPWydwYXRoJ10+PixcbiAgICB7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgfVxuICA+O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxlQUFlLEVBRWZDLE1BQU0sUUFDRCx1QkFBdUI7QUFLOUIsT0FBT0MsWUFBWSxNQUtaLG1CQUFtQjtBQUMxQixTQUFTQyxXQUFXLFFBQVEsa0JBQWtCO0FBRTlDLE1BQU07RUFBRUMsVUFBVTtFQUFFQztBQUFXLENBQUMsR0FBR0osTUFBTTs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFNBQVNLLGNBQWNBLENBQTZCO0VBQ2pFQyxJQUFJO0VBQ0pOLE1BQU07RUFDTk8sUUFBUSxHQUFHTixZQUFZO0VBQ3ZCTyxVQUFVO0VBQ1ZDLGVBQWU7RUFDZixHQUFHQztBQUMwQixDQUFDLEVBQWU7RUFDN0MsTUFBTUMsYUFBYSxHQUFHVCxXQUFXLENBQUNJLElBQUksQ0FBQztFQUN2QyxNQUFNTSxPQUFPLEdBQUlDLElBQVksSUFBTSxHQUFHYixNQUFNLG9CQUFOQSxNQUFNLENBQVVhLElBQUssSUFBR0EsSUFBSyxFQUFDO0VBQ3BFLE1BQU1DLGtCQUFrQixHQUFHO0lBQUUsR0FBR0o7RUFBYSxDQUFDO0VBQzlDLE1BQU1LLG1CQUFtQixHQUFHO0lBQUUsR0FBR0w7RUFBYSxDQUFDO0VBQy9DLE1BQU1NLEdBQTBELEdBQzlELElBQUlULFFBQVEsQ0FBQztJQUNYLEdBQUdHLFlBQVk7SUFDZkosSUFBSTtJQUNKTixNQUFNO0lBQ05hLElBQUksRUFBRUQsT0FBTyxDQUFDLEtBQUs7RUFDckIsQ0FBQyxDQUFRO0VBQ1gsSUFBSUosVUFBVSxFQUFFO0lBQ2JNLGtCQUFrQixDQUFTRyxxQkFBcUIsR0FBR0MsZ0JBQWdCO0lBQ25FSCxtQkFBbUIsQ0FBU0UscUJBQXFCLEdBQUdF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
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { default as RestEndpoint } from './RestEndpoint.js';
|
|
2
|
-
export type { GetEndpoint, MutateEndpoint,
|
|
2
|
+
export type { GetEndpoint, MutateEndpoint, Defaults, RestGenerics, FetchGet, FetchMutate, RestFetch, RestType, RestInstance, KeyofRestEndpoint, RestEndpointConstructorOptions, AddEndpoint, PaginationFieldEndpoint, } from './RestEndpoint.js';
|
|
3
3
|
export { default as createResource } from './createResource.js';
|
|
4
4
|
export type { Resource } from './createResource.js';
|
|
5
|
+
export type { ResourceOptions, ResourceGenerics } from './resourceTypes.js';
|
|
5
6
|
export { default as hookifyResource } from './hookifyResource.js';
|
|
6
7
|
export type { HookResource, HookableEndpointInterface, } from './hookifyResource.js';
|
|
7
8
|
export { default as NetworkError } from './NetworkError.js';
|
|
@@ -9,4 +10,5 @@ export { default as paginationUpdate } from './paginationUpdate.js';
|
|
|
9
10
|
export type { OptionsToFunction } from './OptionsToFunction.js';
|
|
10
11
|
export type { ShortenPath, PathArgs, PathKeys, KeysToArgs, PathArgsAndSearch, } from './pathTypes.js';
|
|
11
12
|
export * from '@data-client/endpoint';
|
|
13
|
+
export * from './RestEndpoint.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,8BAA8B,EAC9B,WAAW,EACX,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EACV,YAAY,EACZ,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -7,4 +7,5 @@ export { default as hookifyResource } from './hookifyResource.js';
|
|
|
7
7
|
export { default as NetworkError } from './NetworkError.js';
|
|
8
8
|
export { default as paginationUpdate } from './paginationUpdate.js';
|
|
9
9
|
export * from '@data-client/endpoint';
|
|
10
|
-
|
|
10
|
+
export * from './RestEndpoint.js';
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlZmF1bHQiLCJSZXN0RW5kcG9pbnQiLCJjcmVhdGVSZXNvdXJjZSIsImhvb2tpZnlSZXNvdXJjZSIsIk5ldHdvcmtFcnJvciIsInBhZ2luYXRpb25VcGRhdGUiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXN0RW5kcG9pbnQgfSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgRGVmYXVsdHMsXG4gIFJlc3RHZW5lcmljcyxcbiAgRmV0Y2hHZXQsXG4gIEZldGNoTXV0YXRlLFxuICBSZXN0RmV0Y2gsXG4gIFJlc3RUeXBlLFxuICBSZXN0SW5zdGFuY2UsXG4gIEtleW9mUmVzdEVuZHBvaW50LFxuICBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnMsXG4gIEFkZEVuZHBvaW50LFxuICBQYWdpbmF0aW9uRmllbGRFbmRwb2ludCxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjcmVhdGVSZXNvdXJjZSB9IGZyb20gJy4vY3JlYXRlUmVzb3VyY2UuanMnO1xuZXhwb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gJy4vY3JlYXRlUmVzb3VyY2UuanMnO1xuZXhwb3J0IHR5cGUgeyBSZXNvdXJjZU9wdGlvbnMsIFJlc291cmNlR2VuZXJpY3MgfSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBob29raWZ5UmVzb3VyY2UgfSBmcm9tICcuL2hvb2tpZnlSZXNvdXJjZS5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIEhvb2tSZXNvdXJjZSxcbiAgSG9va2FibGVFbmRwb2ludEludGVyZmFjZSxcbn0gZnJvbSAnLi9ob29raWZ5UmVzb3VyY2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOZXR3b3JrRXJyb3IgfSBmcm9tICcuL05ldHdvcmtFcnJvci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHBhZ2luYXRpb25VcGRhdGUgfSBmcm9tICcuL3BhZ2luYXRpb25VcGRhdGUuanMnO1xuZXhwb3J0IHR5cGUgeyBPcHRpb25zVG9GdW5jdGlvbiB9IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuZXhwb3J0IHR5cGUge1xuICBTaG9ydGVuUGF0aCxcbiAgUGF0aEFyZ3MsXG4gIFBhdGhLZXlzLFxuICBLZXlzVG9BcmdzLFxuICBQYXRoQXJnc0FuZFNlYXJjaCxcbn0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuXG5leHBvcnQgKiBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNQSxDQUFDQyxFQUFFLEVBQUVDLEdBQUcsRUFBRTtFQUNsRCxPQUFPSCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLEVBQUUsRUFBRUMsR0FBRyxDQUFDO0FBQ3RELENBQUM7QUFDSCxTQUFTSSxPQUFPLElBQUlDLFlBQVksUUFBUSxtQkFBbUI7QUFnQjNELFNBQVNELE9BQU8sSUFBSUUsY0FBYyxRQUFRLHFCQUFxQjtBQUcvRCxTQUFTRixPQUFPLElBQUlHLGVBQWUsUUFBUSxzQkFBc0I7QUFLakUsU0FBU0gsT0FBTyxJQUFJSSxZQUFZLFFBQVEsbUJBQW1CO0FBQzNELFNBQVNKLE9BQU8sSUFBSUssZ0JBQWdCLFFBQVEsdUJBQXVCO0FBVW5FLGNBQWMsdUJBQXVCO0FBQ3JDLGNBQWMsbUJBQW1CIn0=
|
package/lib/next/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export { default as RestEndpoint } from '
|
|
3
|
-
export { default as createResource } from '
|
|
4
|
-
export type { Resource } from '
|
|
5
|
-
export type { ResourceOptions, ResourceGenerics } from '
|
|
1
|
+
export * from '../RestEndpoint.js';
|
|
2
|
+
export { default as RestEndpoint } from '../RestEndpoint.js';
|
|
3
|
+
export { default as createResource } from '../createResource.js';
|
|
4
|
+
export type { Resource } from '../createResource.js';
|
|
5
|
+
export type { ResourceOptions, ResourceGenerics } from '../resourceTypes.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/next/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/next/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/next/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|