@data-client/rest 0.6.0 → 0.7.1
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 +25 -22
- package/dist/index.umd.min.js +1 -1
- package/dist/next.js +25 -22
- package/legacy/RestEndpoint.js +12 -6
- package/legacy/createResource.js +5 -3
- package/legacy/paginatedCollections.js +14 -19
- package/legacy/resourceTypes.js +1 -1
- package/lib/RestEndpoint.d.ts +59 -12
- package/lib/RestEndpoint.js +12 -6
- package/lib/createResource.d.ts +1 -1
- package/lib/createResource.d.ts.map +1 -1
- package/lib/createResource.js +3 -1
- package/lib/paginatedCollections.d.ts +2 -1
- package/lib/paginatedCollections.d.ts.map +1 -1
- package/lib/paginatedCollections.js +14 -19
- package/lib/resourceTypes.d.ts +4 -2
- package/lib/resourceTypes.d.ts.map +1 -1
- package/lib/resourceTypes.js +1 -1
- package/package.json +2 -2
- package/src/RestEndpoint.d.ts +59 -12
- package/src/RestEndpoint.js +16 -6
- package/src/__tests__/RestEndpoint.ts +95 -9
- package/src/__tests__/createResource.test.ts +77 -72
- package/src/createResource.ts +5 -1
- package/src/paginatedCollections.ts +24 -21
- package/src/resourceTypes.ts +22 -16
- package/ts4.0/RestEndpoint.d.ts +41 -7
- package/ts4.0/createResource.d.ts +1 -1
- package/ts4.0/paginatedCollections.d.ts +2 -1
- package/ts4.0/resourceTypes.d.ts +4 -2
- package/ts4.1/RestEndpoint.d.ts +41 -7
- package/ts4.1/createResource.d.ts +1 -1
- package/ts4.1/paginatedCollections.d.ts +2 -1
- package/ts4.1/resourceTypes.d.ts +4 -2
package/dist/index.js
CHANGED
|
@@ -86,25 +86,20 @@ function paginatedMerge(existing, incoming) {
|
|
|
86
86
|
}
|
|
87
87
|
return mergedList;
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
for (const key of keys1) {
|
|
103
|
-
if (object1[key] != object2[key]) {
|
|
104
|
-
return false;
|
|
89
|
+
function createPaginationSchema(removeCursor, collection) {
|
|
90
|
+
return Object.create(collection, {
|
|
91
|
+
name: {
|
|
92
|
+
value: `Pagination(${collection.schema})`
|
|
93
|
+
},
|
|
94
|
+
merge: {
|
|
95
|
+
value: paginatedMerge
|
|
96
|
+
},
|
|
97
|
+
pk: {
|
|
98
|
+
value: function (value, parent, key, args) {
|
|
99
|
+
return collection.pk.call(this, value, parent, key, removeCursor(...args));
|
|
100
|
+
}
|
|
105
101
|
}
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
102
|
+
});
|
|
108
103
|
}
|
|
109
104
|
|
|
110
105
|
function getArrayPath(s) {
|
|
@@ -361,13 +356,12 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
|
|
|
361
356
|
// extend from it and init with options sent
|
|
362
357
|
class E extends this.constructor {}
|
|
363
358
|
Object.assign(E.prototype, this);
|
|
364
|
-
|
|
359
|
+
return new E(
|
|
365
360
|
// fetch get overridden by function prototype, so we must set it explicitly every time
|
|
366
361
|
{
|
|
367
362
|
fetch: this.fetch,
|
|
368
363
|
...options
|
|
369
364
|
});
|
|
370
|
-
return instance;
|
|
371
365
|
}
|
|
372
366
|
paginated(removeCursor) {
|
|
373
367
|
if (typeof removeCursor === 'string') {
|
|
@@ -382,18 +376,25 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
|
|
|
382
376
|
let found = false;
|
|
383
377
|
const createPaginatedSchema = collection => {
|
|
384
378
|
found = true;
|
|
385
|
-
return
|
|
379
|
+
return createPaginationSchema(removeCursor, collection);
|
|
386
380
|
};
|
|
387
381
|
const newSchema = mapCollection(this.schema, createPaginatedSchema);
|
|
388
382
|
if (found) {
|
|
383
|
+
const sup = this;
|
|
389
384
|
return this.extend({
|
|
390
|
-
schema: newSchema
|
|
385
|
+
schema: newSchema,
|
|
386
|
+
key(...args) {
|
|
387
|
+
return sup.key.call(this, ...removeCursor(...args));
|
|
388
|
+
}
|
|
391
389
|
});
|
|
392
390
|
}
|
|
393
391
|
return this.extend({
|
|
394
392
|
update: paginationUpdate(this, removeCursor)
|
|
395
393
|
});
|
|
396
394
|
}
|
|
395
|
+
get getPage() {
|
|
396
|
+
return this.paginated(this.paginationField);
|
|
397
|
+
}
|
|
397
398
|
get push() {
|
|
398
399
|
return this.extend({
|
|
399
400
|
method: 'POST',
|
|
@@ -435,6 +436,7 @@ function createResource({
|
|
|
435
436
|
schema,
|
|
436
437
|
Endpoint = RestEndpoint,
|
|
437
438
|
optimistic,
|
|
439
|
+
paginationField,
|
|
438
440
|
...extraOptions
|
|
439
441
|
}) {
|
|
440
442
|
const shortenedPath = shortenPath(path);
|
|
@@ -461,6 +463,7 @@ function createResource({
|
|
|
461
463
|
}
|
|
462
464
|
const getList = new Endpoint({
|
|
463
465
|
...extraMutateOptions,
|
|
466
|
+
paginationField: paginationField,
|
|
464
467
|
path: shortenedPath,
|
|
465
468
|
schema: new Collection([schema]),
|
|
466
469
|
name: getName('getList')
|
package/dist/index.umd.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@data-client/endpoint"),require("path-to-regexp")):"function"==typeof define&&define.amd?define(["exports","@data-client/endpoint","path-to-regexp"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).restHookRest={},t.endpoint,t.pathToRegexp)}(this,(function(t,e,n){"use strict";function s(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function r(t,e){return t(e={exports:{}},e.exports),e.exports}var
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@data-client/endpoint"),require("path-to-regexp")):"function"==typeof define&&define.amd?define(["exports","@data-client/endpoint","path-to-regexp"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).restHookRest={},t.endpoint,t.pathToRegexp)}(this,(function(t,e,n){"use strict";function s(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function r(t,e){return t(e={exports:{}},e.exports),e.exports}var i=s(r((function(t){t.exports=function(t){if(null==t)throw new TypeError("Cannot destructure "+t)},t.exports.__esModule=!0,t.exports.default=t.exports}))),o=s(r((function(t){t.exports=function(t,e){if(!Object.prototype.hasOwnProperty.call(t,e))throw new TypeError("attempted to use private field on non-instance");return t},t.exports.__esModule=!0,t.exports.default=t.exports}))),a=s(r((function(t){var e=0;t.exports=function(t){return"__private_"+e+++"_"+t},t.exports.__esModule=!0,t.exports.default=t.exports})));function c(t,n){if("object"!=typeof t||void 0===t||Array.isArray(t))return;if(t instanceof e.schema.Collection)return n(t);const s=Object.assign({},t instanceof e.schema.Object?t.schema:t);for(const t in s){if(!s[t])continue;const e=c(s[t],n);if(e)return e}}function h(t,n){if("object"!=typeof t||void 0===t)return t;if(t instanceof e.schema.Collection)return n(t);const s=Object.assign({},t instanceof e.schema.Object?t.schema:t);for(const t in s)s[t]&&(s[t]=h(s[t],n));return s}class u extends Error{constructor(t){super(t.statusText||`Network response not 'ok': ${t.status}`),this.name="NetworkError",this.status=t.status,this.response=t}}function p(t,e){const n=new Set(t),s=[...t];for(const t of e)n.has(t)||s.push(t);return s}function f(t){if("object"!=typeof t)return!1;if(void 0===t||t instanceof e.schema.Array||Array.isArray(t))return[];const n=t instanceof e.schema.Object?t.schema:t;for(const t in n){if(!n[t])continue;const e=f(n[t]);if(!1!==e)return e.unshift(t),e}return!1}function d(t,e){const n=f(t.schema);if(!1===n)throw new Error("schema has no array");return(s,...r)=>({[t.key(...e(...r))]:t=>{const e=l(t,n),r=new Set(e),i=l(s,n).filter((t=>!r.has(t))),o=[...e,...i];return g(s,n,o)}})}const l=(t,e)=>{let n=t;for(const t of e){if(!n)return[];n=n[t]}return n||[]},g=(t,e,n)=>{if(0===e.length)return n;const s=Object.assign({},t);let r=s;for(let t=0;t<e.length-1;t++){const n=e[t];r=r[n]=Object.assign({},r[n])}return r[e[e.length-1]]=n,s};const m=Object.create(null);const O=Object.create(null);const b=Object.prototype,y=Object.getPrototypeOf;var x=a("hasBody");class j extends e.Endpoint{constructor(t){var e;super(null!=(e=t.fetch)?e:async function(...t){const e=o(this,x)[x]&&t.length<2?{}:t[0]||{},n=o(this,x)[x]?t[t.length-1]:void 0;return this.fetchResponse(this.url(e),await this.getRequestInit(n)).then((t=>this.parseResponse(t))).then((e=>this.process(e,...t)))},t),Object.defineProperty(this,x,{writable:!0,value:void 0}),(!("sideEffect"in this)||"method"in t&&!("sideEffect"in t))&&(this.sideEffect="GET"!==t.method&&void 0!==t.method||void 0),void 0===this.method&&(this.method=this.sideEffect?"POST":"GET"),void 0===this.urlPrefix&&(this.urlPrefix=""),o(this,x)[x]=!("body"in this&&void 0===this.body||["GET","DELETE"].includes(this.method)),Object.defineProperty(this,"name",{get(){return"__name"in this?this.__name:this.urlPrefix+this.path}})}key(...t){return`${this.method} ${this.url(o(this,x)[x]&&t.length<2?{}:t[0]||{})}`}url(t={}){const e=((s=this.path)in m||(m[s]=n.compile(s,{encode:encodeURIComponent,validate:!1})),m[s])(t);var s;const r=function(t){return t in O||(O[t]=new Set(n.parse(t).map((t=>"string"==typeof t?t:`${t.name}`)))),O[t]}(this.path),i={};return Object.keys(t).forEach((e=>{r.has(e)||(i[e]=t[e])})),Object.keys(i).length?`${this.urlPrefix}${e}?${function(t){const e=new URLSearchParams(t);return e.sort(),e.toString()}(i)}`:`${this.urlPrefix}${e}`}getHeaders(t){return t}async getRequestInit(t){const e=null!==(n=t)&&"object"==typeof n&&y(n)===b;var n;e&&(t=JSON.stringify(t));const s=Object.assign({},this.requestInit,{method:this.method,signal:this.signal,body:t});return t&&!e||(s.headers=Object.assign({"Content-Type":"application/json"},s.headers)),s.headers=await this.getHeaders(s.headers),s}fetchResponse(t,e){return fetch(t,e).then((t=>{if(!t.ok)throw new u(t);return t})).catch((t=>{throw t instanceof TypeError&&(t.status=500),t}))}parseResponse(t){var e;return 204===t.status?Promise.resolve(null):null!=(e=t.headers.get("content-type"))&&e.includes("json")?t.json().catch((t=>{throw t.status=400,t})):t.text().then((e=>{if(["string","undefined"].includes(typeof this.schema)||null===this.schema||this.process!==j.prototype.process)return e;const n=new u(t);throw n.status=404,n.message=`Unexpected text response for schema ${this.schema}`,n}))}process(t){return t}errorPolicy(t){return t.status>=500?"soft":void 0}get pathRegex(){return n.pathToRegexp(this.path)}testKey(t){const e=this.method+" "+this.urlPrefix;if(!t.startsWith(e))return!1;let n=t.lastIndexOf("?");return-1===n&&(n=void 0),this.pathRegex.test(t.substring(e.length,n))}extend(t){class e extends this.constructor{}return Object.assign(e.prototype,this),new e(Object.assign({fetch:this.fetch},t))}paginated(t){if("string"==typeof t){const e=t;t=t=>{let n=Object.assign({},(i(t),t));return delete n[e],[n]}}let e=!1;const n=h(this.schema,(n=>(e=!0,function(t,e){return Object.create(e,{name:{value:`Pagination(${e.schema})`},merge:{value:p},pk:{value:function(n,s,r,i){return e.pk.call(this,n,s,r,t(...i))}}})}(t,n))));if(e){const e=this;return this.extend({schema:n,key(...n){return e.key.call(this,...t(...n))}})}return this.extend({update:d(this,t)})}get getPage(){return this.paginated(this.paginationField)}get push(){return this.extend({method:"POST",schema:c(this.schema,(t=>t.push))})}get unshift(){return this.extend({method:"POST",schema:c(this.schema,(t=>t.unshift))})}get assign(){return this.extend({method:"POST",schema:c(this.schema,(t=>t.assign))})}}var w=s(r((function(t){t.exports=function(t,e){if(null==t)return{};var n,s,r={},i=Object.keys(t);for(s=0;s<i.length;s++)n=i[s],e.indexOf(n)>=0||(r[n]=t[n]);return r},t.exports.__esModule=!0,t.exports.default=t.exports})));const v=["path","schema","Endpoint","optimistic","paginationField"],{Invalidate:E,Collection:P}=e.schema;function R(t,e,n){return Object.assign({},e,_(n))}function T(t,e){return e}function _(t){return t instanceof FormData?Object.fromEntries(t.entries()):t}Object.hasOwn=Object.hasOwn||function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},t.NetworkError=u,t.RestEndpoint=j,t.createResource=function(t){let{path:n,schema:s,Endpoint:r=j,optimistic:i,paginationField:o}=t,a=w(t,v);const c=function(t){const e=t.lastIndexOf(":");if(-1===e)throw new Error("Resource path requires at least one :parameter");let n=t.substring(0,e);return"/"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n}(n),h=t=>`${null==s?void 0:s.name}.${t}`;function u(t,e,n){t[e]=t[e].extend(n)}const p=Object.assign({},a),f=Object.assign({},a),d=new r(Object.assign({},a,{path:n,schema:s,name:h("get")}));var l;i&&(p.getOptimisticResponse=R,f.getOptimisticResponse=(l=d,function(t,n,s){const{data:r}=t.getResponse(l,n);if(!r)throw new e.AbortOptimistic;return Object.assign({},n,r,_(s))}));const g=new r(Object.assign({},p,{paginationField:o,path:c,schema:new P([s]),name:h("getList")}));return{get:d,getList:g,create:g.push.extend({name:h("create")}),update:new r(Object.assign({},p,{path:n,schema:s,method:"PUT",name:h("update")})),partialUpdate:new r(Object.assign({},f,{path:n,schema:s,method:"PATCH",name:h("partialUpdate")})),delete:new r(Object.assign({},p,{path:n,schema:s.process?new E(s):s,method:"DELETE",name:h("delete"),process:(t,e)=>t&&Object.keys(t).length?t:e,getOptimisticResponse:i?T:void 0})),extend(...t){if("string"==typeof t[0]){const[e,n]=t;if(e in this){const t=Object.assign({},this);return u(t,e,n),t}return Object.assign({},this,{[e]:this.get.extend(n)})}if("function"==typeof t[0]){const e=t[0](this);return Object.assign({},this,e)}const e=t[0],n=Object.assign({},this);for(const t in e)u(n,t,e[t]);return n}}},t.hookifyResource=function(t,e){const n={};return Object.keys(t).forEach((s=>{const r=t[s];var i;void 0!==r.extend&&(n[`use${i=s,i.charAt(0).toUpperCase()+i.slice(1)}`]=()=>{const t=e();return r.extend({requestInit:t})})})),n},t.paginationUpdate=d,Object.keys(e).forEach((function(n){"default"===n||t.hasOwnProperty(n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})})),Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/dist/next.js
CHANGED
|
@@ -86,25 +86,20 @@ function paginatedMerge(existing, incoming) {
|
|
|
86
86
|
}
|
|
87
87
|
return mergedList;
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
for (const key of keys1) {
|
|
103
|
-
if (object1[key] != object2[key]) {
|
|
104
|
-
return false;
|
|
89
|
+
function createPaginationSchema(removeCursor, collection) {
|
|
90
|
+
return Object.create(collection, {
|
|
91
|
+
name: {
|
|
92
|
+
value: `Pagination(${collection.schema})`
|
|
93
|
+
},
|
|
94
|
+
merge: {
|
|
95
|
+
value: paginatedMerge
|
|
96
|
+
},
|
|
97
|
+
pk: {
|
|
98
|
+
value: function (value, parent, key, args) {
|
|
99
|
+
return collection.pk.call(this, value, parent, key, removeCursor(...args));
|
|
100
|
+
}
|
|
105
101
|
}
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
102
|
+
});
|
|
108
103
|
}
|
|
109
104
|
|
|
110
105
|
function getArrayPath(s) {
|
|
@@ -361,13 +356,12 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
|
|
|
361
356
|
// extend from it and init with options sent
|
|
362
357
|
class E extends this.constructor {}
|
|
363
358
|
Object.assign(E.prototype, this);
|
|
364
|
-
|
|
359
|
+
return new E(
|
|
365
360
|
// fetch get overridden by function prototype, so we must set it explicitly every time
|
|
366
361
|
{
|
|
367
362
|
fetch: this.fetch,
|
|
368
363
|
...options
|
|
369
364
|
});
|
|
370
|
-
return instance;
|
|
371
365
|
}
|
|
372
366
|
paginated(removeCursor) {
|
|
373
367
|
if (typeof removeCursor === 'string') {
|
|
@@ -382,18 +376,25 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
|
|
|
382
376
|
let found = false;
|
|
383
377
|
const createPaginatedSchema = collection => {
|
|
384
378
|
found = true;
|
|
385
|
-
return
|
|
379
|
+
return createPaginationSchema(removeCursor, collection);
|
|
386
380
|
};
|
|
387
381
|
const newSchema = mapCollection(this.schema, createPaginatedSchema);
|
|
388
382
|
if (found) {
|
|
383
|
+
const sup = this;
|
|
389
384
|
return this.extend({
|
|
390
|
-
schema: newSchema
|
|
385
|
+
schema: newSchema,
|
|
386
|
+
key(...args) {
|
|
387
|
+
return sup.key.call(this, ...removeCursor(...args));
|
|
388
|
+
}
|
|
391
389
|
});
|
|
392
390
|
}
|
|
393
391
|
return this.extend({
|
|
394
392
|
update: paginationUpdate(this, removeCursor)
|
|
395
393
|
});
|
|
396
394
|
}
|
|
395
|
+
get getPage() {
|
|
396
|
+
return this.paginated(this.paginationField);
|
|
397
|
+
}
|
|
397
398
|
get push() {
|
|
398
399
|
return this.extend({
|
|
399
400
|
method: 'POST',
|
|
@@ -435,6 +436,7 @@ function createResource({
|
|
|
435
436
|
schema,
|
|
436
437
|
Endpoint = RestEndpoint,
|
|
437
438
|
optimistic,
|
|
439
|
+
paginationField,
|
|
438
440
|
...extraOptions
|
|
439
441
|
}) {
|
|
440
442
|
const shortenedPath = shortenPath(path);
|
|
@@ -461,6 +463,7 @@ function createResource({
|
|
|
461
463
|
}
|
|
462
464
|
const getList = new Endpoint({
|
|
463
465
|
...extraMutateOptions,
|
|
466
|
+
paginationField: paginationField,
|
|
464
467
|
path: shortenedPath,
|
|
465
468
|
schema: new Collection([schema]),
|
|
466
469
|
name: getName('getList')
|
package/legacy/RestEndpoint.js
CHANGED
|
@@ -6,7 +6,7 @@ import { pathToRegexp } from 'path-to-regexp';
|
|
|
6
6
|
import extractCollection from './extractCollection.js';
|
|
7
7
|
import mapCollection from './mapCollection.js';
|
|
8
8
|
import NetworkError from './NetworkError.js';
|
|
9
|
-
import {
|
|
9
|
+
import { createPaginationSchema } from './paginatedCollections.js';
|
|
10
10
|
import paginationUpdate from './paginationUpdate.js';
|
|
11
11
|
import paramsToString from './paramsToString.js';
|
|
12
12
|
import { getUrlBase, getUrlTokens, isPojo } from './RestHelpers.js';
|
|
@@ -166,11 +166,10 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
|
|
|
166
166
|
// extend from it and init with options sent
|
|
167
167
|
class E extends this.constructor {}
|
|
168
168
|
Object.assign(E.prototype, this);
|
|
169
|
-
|
|
169
|
+
return new E( // fetch get overridden by function prototype, so we must set it explicitly every time
|
|
170
170
|
Object.assign({
|
|
171
171
|
fetch: this.fetch
|
|
172
172
|
}, options));
|
|
173
|
-
return instance;
|
|
174
173
|
}
|
|
175
174
|
paginated(removeCursor) {
|
|
176
175
|
if (typeof removeCursor === 'string') {
|
|
@@ -184,18 +183,25 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
|
|
|
184
183
|
let found = false;
|
|
185
184
|
const createPaginatedSchema = collection => {
|
|
186
185
|
found = true;
|
|
187
|
-
return
|
|
186
|
+
return createPaginationSchema(removeCursor, collection);
|
|
188
187
|
};
|
|
189
188
|
const newSchema = mapCollection(this.schema, createPaginatedSchema);
|
|
190
189
|
if (found) {
|
|
190
|
+
const sup = this;
|
|
191
191
|
return this.extend({
|
|
192
|
-
schema: newSchema
|
|
192
|
+
schema: newSchema,
|
|
193
|
+
key(...args) {
|
|
194
|
+
return sup.key.call(this, ...removeCursor(...args));
|
|
195
|
+
}
|
|
193
196
|
});
|
|
194
197
|
}
|
|
195
198
|
return this.extend({
|
|
196
199
|
update: paginationUpdate(this, removeCursor)
|
|
197
200
|
});
|
|
198
201
|
}
|
|
202
|
+
get getPage() {
|
|
203
|
+
return this.paginated(this.paginationField);
|
|
204
|
+
}
|
|
199
205
|
get push() {
|
|
200
206
|
return this.extend({
|
|
201
207
|
method: 'POST',
|
|
@@ -222,4 +228,4 @@ const tryParse = input => {
|
|
|
222
228
|
return undefined;
|
|
223
229
|
}
|
|
224
230
|
};
|
|
225
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsInBhZ2luYXRlZE1lcmdlIiwicGFnaW5hdGVkRmlsdGVyIiwicGFnaW5hdGlvblVwZGF0ZSIsInBhcmFtc1RvU3RyaW5nIiwiZ2V0VXJsQmFzZSIsImdldFVybFRva2VucyIsImlzUG9qbyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicmVzcG9uc2UiLCJwYXJzZVJlc3BvbnNlIiwicmVzIiwicHJvY2VzcyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJ2YWx1ZSIsInNpZGVFZmZlY3QiLCJtZXRob2QiLCJ1cmxQcmVmaXgiLCJpbmNsdWRlcyIsImdldCIsIl9fbmFtZSIsInBhdGgiLCJrZXkiLCJ1cmxCYXNlIiwidG9rZW5zIiwic2VhcmNoUGFyYW1zIiwia2V5cyIsImZvckVhY2giLCJrIiwiaGFzIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJhc3NpZ24iLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwiaW5zdGFuY2UiLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJfcmVmIiwicGFyYW1zIiwiX29iamVjdERlc3RydWN0dXJpbmdFbXB0eSIsImZvdW5kIiwiY3JlYXRlUGFnaW5hdGVkU2NoZW1hIiwiY29sbGVjdGlvbiIsImFkZFdpdGgiLCJuZXdTY2hlbWEiLCJ1cGRhdGUiLCJwdXNoIiwicyIsInVuc2hpZnQiLCJwYXJzZSIsImUiXSwic291cmNlcyI6WyIuLi9zcmMvUmVzdEVuZHBvaW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50IH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcbmltcG9ydCB7IHBhdGhUb1JlZ2V4cCB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IGV4dHJhY3RDb2xsZWN0aW9uIGZyb20gJy4vZXh0cmFjdENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IG1hcENvbGxlY3Rpb24gZnJvbSAnLi9tYXBDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBOZXR3b3JrRXJyb3IgZnJvbSAnLi9OZXR3b3JrRXJyb3IuanMnO1xuaW1wb3J0IHsgcGFnaW5hdGVkTWVyZ2UsIHBhZ2luYXRlZEZpbHRlciB9IGZyb20gJy4vcGFnaW5hdGVkQ29sbGVjdGlvbnMuanMnO1xuaW1wb3J0IHBhZ2luYXRpb25VcGRhdGUgZnJvbSAnLi9wYWdpbmF0aW9uVXBkYXRlLmpzJztcbmltcG9ydCBwYXJhbXNUb1N0cmluZyBmcm9tICcuL3BhcmFtc1RvU3RyaW5nLmpzJztcbmltcG9ydCB7IGdldFVybEJhc2UsIGdldFVybFRva2VucywgaXNQb2pvIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXN0RW5kcG9pbnQgZXh0ZW5kcyBFbmRwb2ludCB7XG4gICNoYXNCb2R5O1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgc3VwZXIoXG4gICAgICBvcHRpb25zLmZldGNoID8/XG4gICAgICAgIGFzeW5jIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgY29uc3QgdXJsUGFyYW1zID1cbiAgICAgICAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9O1xuICAgICAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLiNoYXNCb2R5ID8gYXJnc1thcmdzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoUmVzcG9uc2UoXG4gICAgICAgICAgICB0aGlzLnVybCh1cmxQYXJhbXMpLFxuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRSZXF1ZXN0SW5pdChib2R5KSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB0aGlzLnBhcnNlUmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHRoaXMucHJvY2VzcyhyZXMsIC4uLmFyZ3MpKTtcbiAgICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICAvLyB3ZSB3YW50IHRvIHVzZSB0aGUgcHJvdG90eXBlIGNoYWluIGhlcmVcbiAgICBpZiAoXG4gICAgICAhKCdzaWRlRWZmZWN0JyBpbiB0aGlzKSB8fFxuICAgICAgKCdtZXRob2QnIGluIG9wdGlvbnMgJiYgISgnc2lkZUVmZmVjdCcgaW4gb3B0aW9ucykpXG4gICAgKSB7XG4gICAgICB0aGlzLnNpZGVFZmZlY3QgPVxuICAgICAgICBvcHRpb25zLm1ldGhvZCA9PT0gJ0dFVCcgfHwgb3B0aW9ucy5tZXRob2QgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnbmFtZScsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgLy8gdXNpbmcgJ2luJyB0byBlbnN1cmUgaW5oZXJpdGFuY2UgbG9va3VwXG4gICAgICAgIGlmICgnX19uYW1lJyBpbiB0aGlzKSByZXR1cm4gdGhpcy5fX25hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLnVybFByZWZpeCArIHRoaXMucGF0aDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBrZXkoLi4uYXJncykge1xuICAgIHJldHVybiBgJHt0aGlzLm1ldGhvZH0gJHt0aGlzLnVybChcbiAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9LFxuICAgICl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHVybCAqL1xuICB1cmwodXJsUGFyYW1zID0ge30pIHtcbiAgICBjb25zdCB1cmxCYXNlID0gZ2V0VXJsQmFzZSh0aGlzLnBhdGgpKHVybFBhcmFtcyk7XG4gICAgY29uc3QgdG9rZW5zID0gZ2V0VXJsVG9rZW5zKHRoaXMucGF0aCk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0ge307XG4gICAgT2JqZWN0LmtleXModXJsUGFyYW1zKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgaWYgKCF0b2tlbnMuaGFzKGspKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtc1trXSA9IHVybFBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9PyR7cGFyYW1zVG9TdHJpbmcoc2VhcmNoUGFyYW1zKX1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy51cmxQcmVmaXh9JHt1cmxCYXNlfWA7XG4gIH1cblxuICBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKiBJbml0IG9wdGlvbnMgZm9yIGZldGNoIC0gcnVuIGF0IGZldGNoICovXG4gIGFzeW5jIGdldFJlcXVlc3RJbml0KGJvZHkpIHtcbiAgICBjb25zdCBib2R5SXNQb2pvID0gaXNQb2pvKGJvZHkpO1xuICAgIGlmIChib2R5SXNQb2pvKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIGNvbnN0IGluaXQgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RJbml0LFxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICBib2R5LFxuICAgIH07XG4gICAgaWYgKCFib2R5IHx8IGJvZHlJc1Bvam8pIHtcbiAgICAgIGluaXQuaGVhZGVycyA9IHtcbiAgICAgICAgLy8gZGVmYXVsdCB0byBhcHBsaWNhdGlvbi9qc29uIGJ1dCBhbGxvdyB1c2VyIGV4cGxpY2l0IG92ZXJyaWRlc1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5pbml0LmhlYWRlcnMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpbml0LmhlYWRlcnMgPSBhd2FpdCB0aGlzLmdldEhlYWRlcnMoaW5pdC5oZWFkZXJzKTtcbiAgICByZXR1cm4gaW5pdDtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIEhUVFAgUmVzcG9uc2UgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAvLyBlbnN1cmUgQ09SUywgbmV0d29yayBkb3duLCBhbmQgcGFyc2UgZXJyb3JzIGFyZSBzdGlsbCBjYXVnaHQgYnkgTmV0d29ya0Vycm9yQm91bmRhcnlcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNTAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgLy8gdGhpcyBzaG91bGQgbm90IGhhdmUgYW55IGNvbnRlbnQgdG8gcmVhZFxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICBpZiAoIXJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2pzb24nKSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICAvLyBzdHJpbmcgb3IgJ25vdCBzZXQnIHNjaGVtYSwgYXJlIHZhbGlkXG4gICAgICAgIC8vIHdoZW4gb3ZlcnJpZGluZyBwcm9jZXNzIHRoZXkgbWlnaHQgaGFuZGxlIG90aGVyIGNhc2VzLCBzbyB3ZSBkb24ndCB3YW50IHRvIGJsb2NrIG9uIG91ciBsb2dpY1xuICAgICAgICBpZiAoXG4gICAgICAgICAgWydzdHJpbmcnLCAndW5kZWZpbmVkJ10uaW5jbHVkZXModHlwZW9mIHRoaXMuc2NoZW1hKSB8fFxuICAgICAgICAgIHRoaXMuc2NoZW1hID09PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5wcm9jZXNzICE9PSBSZXN0RW5kcG9pbnQucHJvdG90eXBlLnByb2Nlc3NcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB0ZXh0O1xuXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIGVycm9yLnN0YXR1cyA9IDQwNDtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIHRleHQgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAgIC8vIGN1c3RvbSBkZXYtb25seSBtZXNzYWdlcyBmb3IgbW9yZSBkZXRhaWxlZCBjYXVzZVxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2h0bWwnKSB8fFxuICAgICAgICAgICAgICB0ZXh0LnN0YXJ0c1dpdGgoJzwhZG9jdHlwZSBodG1sPicpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodHJ5UGFyc2UodGV4dCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFwiY29udGVudC10eXBlXCIgaGVhZGVyIGRvZXMgbm90IGluY2x1ZGUgXCJqc29uXCIsIGJ1dCBKU09OIHJlc3BvbnNlIGZvdW5kLlxuU2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM0NjI3IGZvciBpbmZvcm1hdGlvbiBvbiBKU09OIHJlc3BvbnNlc1xuXG5Vc2luZyBwYXJzZWQgSlNPTi5cbklmIHRleHQgY29udGVudCB3YXMgZXhwZWN0ZWQgc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGh0bWwgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfVxuVGhpcyBsaWtlbHkgbWVhbnMgbm8gQVBJIGVuZHBvaW50IHdhcyBjb25maWd1cmVkIGZvciB0aGlzIHJlcXVlc3QsIHJlc3VsdGluZyBpbiBhbiBIVE1MIGZhbGxiYWNrLlxuXG5SZXNwb25zZSAoZmlyc3QgMzAwIGNoYXJhY3RlcnMpOiAke3RleHQuc3Vic3RyaW5nKDAsIDMwMCl9YDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIHByb2Nlc3ModmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBlcnJvclBvbGljeShlcnJvcikge1xuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPj0gNTAwID8gJ3NvZnQnIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHBhdGhSZWdleCgpIHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHRoaXMucGF0aCk7XG4gIH1cblxuICB0ZXN0S2V5KGtleSkge1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubWV0aG9kICsgJyAnICsgdGhpcy51cmxQcmVmaXg7XG4gICAgaWYgKCFrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IGxhc3RRdWVzdGlvbiA9IGtleS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChsYXN0UXVlc3Rpb24gPT09IC0xKSBsYXN0UXVlc3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMucGF0aFJlZ2V4LnRlc3Qoa2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoLCBsYXN0UXVlc3Rpb24pKTtcbiAgfVxuXG4gIGV4dGVuZChvcHRpb25zKSB7XG4gICAgLy8gbWFrZSBhIGNvbnN0cnVjdG9yL3Byb3RvdHlwZSBiYXNlZCBvZmYgdGhpc1xuICAgIC8vIGV4dGVuZCBmcm9tIGl0IGFuZCBpbml0IHdpdGggb3B0aW9ucyBzZW50XG4gICAgY2xhc3MgRSBleHRlbmRzIHRoaXMuY29uc3RydWN0b3Ige31cblxuICAgIE9iamVjdC5hc3NpZ24oRS5wcm90b3R5cGUsIHRoaXMpO1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IEUoXG4gICAgICAvLyAgZmV0Y2ggZ2V0IG92ZXJyaWRkZW4gYnkgZnVuY3Rpb24gcHJvdG90eXBlLCBzbyB3ZSBtdXN0IHNldCBpdCBleHBsaWNpdGx5IGV2ZXJ5IHRpbWVcbiAgICAgIHsgZmV0Y2g6IHRoaXMuZmV0Y2gsIC4uLm9wdGlvbnMgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgcGFnaW5hdGVkKHJlbW92ZUN1cnNvcikge1xuICAgIGlmICh0eXBlb2YgcmVtb3ZlQ3Vyc29yID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gcmVtb3ZlQ3Vyc29yO1xuICAgICAgcmVtb3ZlQ3Vyc29yID0gKHsgLi4ucGFyYW1zIH0pID0+IHtcbiAgICAgICAgZGVsZXRlIHBhcmFtc1tmaWVsZE5hbWVdO1xuICAgICAgICByZXR1cm4gW3BhcmFtc107XG4gICAgICB9O1xuICAgIH1cbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBjb25zdCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEgPSBjb2xsZWN0aW9uID0+IHtcbiAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIHJldHVybiBjb2xsZWN0aW9uLmFkZFdpdGgocGFnaW5hdGVkTWVyZ2UsIHBhZ2luYXRlZEZpbHRlcihyZW1vdmVDdXJzb3IpKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRlbmQoeyBzY2hlbWE6IG5ld1NjaGVtYSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoeyB1cGRhdGU6IHBhZ2luYXRpb25VcGRhdGUodGhpcywgcmVtb3ZlQ3Vyc29yKSB9KTtcbiAgfVxuXG4gIGdldCBwdXNoKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5wdXNoKSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB1bnNoaWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy51bnNoaWZ0KSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhc3NpZ24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLmFzc2lnbiksXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgdHJ5UGFyc2UgPSBpbnB1dCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoaW5wdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxZQUFZLFFBQVEsZ0JBQWdCO0FBRTdDLE9BQU9DLGlCQUFpQixNQUFNLHdCQUF3QjtBQUN0RCxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLE9BQU9DLFlBQVksTUFBTSxtQkFBbUI7QUFDNUMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsMkJBQTJCO0FBQzNFLE9BQU9DLGdCQUFnQixNQUFNLHVCQUF1QjtBQUNwRCxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFDLFFBQUEsZ0JBQUFDLDBCQUFBO0FBSUEsZUFBZSxNQUFNQyxZQUFZLFNBQVNkLFFBQVEsQ0FBQztFQUVqRGUsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFFO0lBQUEsSUFBQUMsY0FBQTtJQUNuQixLQUFLLEVBQUFBLGNBQUEsR0FDSEQsT0FBTyxDQUFDRSxLQUFLLFlBQUFELGNBQUEsR0FDWCxnQkFBZ0IsR0FBR0UsSUFBSSxFQUFFO01BQ3ZCLE1BQU1DLFNBQVMsR0FDYkMsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsS0FBYU8sSUFBSSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHSCxJ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
|
|
231
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYWdpbmF0aW9uVXBkYXRlIiwicGFyYW1zVG9TdHJpbmciLCJnZXRVcmxCYXNlIiwiZ2V0VXJsVG9rZW5zIiwiaXNQb2pvIiwiX2hhc0JvZHkiLCJfY2xhc3NQcml2YXRlRmllbGRMb29zZUtleSIsIlJlc3RFbmRwb2ludCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIl9vcHRpb25zJGZldGNoIiwiZmV0Y2giLCJhcmdzIiwidXJsUGFyYW1zIiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VCYXNlIiwibGVuZ3RoIiwiYm9keSIsInVuZGVmaW5lZCIsImZldGNoUmVzcG9uc2UiLCJ1cmwiLCJnZXRSZXF1ZXN0SW5pdCIsInRoZW4iLCJyZXNwb25zZSIsInBhcnNlUmVzcG9uc2UiLCJyZXMiLCJwcm9jZXNzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0YWJsZSIsInZhbHVlIiwic2lkZUVmZmVjdCIsIm1ldGhvZCIsInVybFByZWZpeCIsImluY2x1ZGVzIiwiZ2V0IiwiX19uYW1lIiwicGF0aCIsImtleSIsInVybEJhc2UiLCJ0b2tlbnMiLCJzZWFyY2hQYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsImsiLCJoYXMiLCJnZXRIZWFkZXJzIiwiaGVhZGVycyIsImJvZHlJc1Bvam8iLCJKU09OIiwic3RyaW5naWZ5IiwiaW5pdCIsImFzc2lnbiIsInJlcXVlc3RJbml0Iiwic2lnbmFsIiwiaW5wdXQiLCJvayIsImNhdGNoIiwiZXJyb3IiLCJUeXBlRXJyb3IiLCJzdGF0dXMiLCJfcmVzcG9uc2UkaGVhZGVycyRnZXQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRleHQiLCJzY2hlbWEiLCJwcm90b3R5cGUiLCJtZXNzYWdlIiwiZW52IiwiTk9ERV9FTlYiLCJfcmVzcG9uc2UkaGVhZGVycyRnZXQyIiwic3RhcnRzV2l0aCIsInRyeVBhcnNlIiwic3Vic3RyaW5nIiwianNvbiIsImVycm9yUG9saWN5IiwicGF0aFJlZ2V4IiwidGVzdEtleSIsInByZWZpeCIsImxhc3RRdWVzdGlvbiIsImxhc3RJbmRleE9mIiwidGVzdCIsImV4dGVuZCIsIkUiLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJfcmVmIiwicGFyYW1zIiwiX29iamVjdERlc3RydWN0dXJpbmdFbXB0eSIsImZvdW5kIiwiY3JlYXRlUGFnaW5hdGVkU2NoZW1hIiwiY29sbGVjdGlvbiIsIm5ld1NjaGVtYSIsInN1cCIsImNhbGwiLCJ1cGRhdGUiLCJnZXRQYWdlIiwicGFnaW5hdGlvbkZpZWxkIiwicHVzaCIsInMiLCJ1bnNoaWZ0IiwicGFyc2UiLCJlIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgeyBwYXRoVG9SZWdleHAgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCBleHRyYWN0Q29sbGVjdGlvbiBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBtYXBDb2xsZWN0aW9uIGZyb20gJy4vbWFwQ29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgTmV0d29ya0Vycm9yIGZyb20gJy4vTmV0d29ya0Vycm9yLmpzJztcbmltcG9ydCB7IGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEgfSBmcm9tICcuL3BhZ2luYXRlZENvbGxlY3Rpb25zLmpzJztcbmltcG9ydCBwYWdpbmF0aW9uVXBkYXRlIGZyb20gJy4vcGFnaW5hdGlvblVwZGF0ZS5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMsIGlzUG9qbyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdEVuZHBvaW50IGV4dGVuZHMgRW5kcG9pbnQge1xuICAjaGFzQm9keTtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgb3B0aW9ucy5mZXRjaCA/P1xuICAgICAgICBhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBib2R5ID0gdGhpcy4jaGFzQm9keSA/IGFyZ3NbYXJncy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJlc3BvbnNlKFxuICAgICAgICAgICAgdGhpcy51cmwodXJsUGFyYW1zKSxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UmVxdWVzdEluaXQoYm9keSksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gdGhpcy5wYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnByb2Nlc3MocmVzLCAuLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgLy8gd2Ugd2FudCB0byB1c2UgdGhlIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgaWYgKFxuICAgICAgISgnc2lkZUVmZmVjdCcgaW4gdGhpcykgfHxcbiAgICAgICgnbWV0aG9kJyBpbiBvcHRpb25zICYmICEoJ3NpZGVFZmZlY3QnIGluIG9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5zaWRlRWZmZWN0ID1cbiAgICAgICAgb3B0aW9ucy5tZXRob2QgPT09ICdHRVQnIHx8IG9wdGlvbnMubWV0aG9kID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWV0aG9kID0gdGhpcy5zaWRlRWZmZWN0ID8gJ1BPU1QnIDogJ0dFVCc7XG4gICAgfVxuICAgIGlmICh0aGlzLnVybFByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnVybFByZWZpeCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLiNoYXNCb2R5ID1cbiAgICAgICghKCdib2R5JyBpbiB0aGlzKSB8fCB0aGlzLmJvZHkgIT09IHVuZGVmaW5lZCkgJiZcbiAgICAgICFbJ0dFVCcsICdERUxFVEUnXS5pbmNsdWRlcyh0aGlzLm1ldGhvZCk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ25hbWUnLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIC8vIHVzaW5nICdpbicgdG8gZW5zdXJlIGluaGVyaXRhbmNlIGxvb2t1cFxuICAgICAgICBpZiAoJ19fbmFtZScgaW4gdGhpcykgcmV0dXJuIHRoaXMuX19uYW1lO1xuICAgICAgICByZXR1cm4gdGhpcy51cmxQcmVmaXggKyB0aGlzLnBhdGg7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAga2V5KC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5tZXRob2R9ICR7dGhpcy51cmwoXG4gICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fSxcbiAgICApfWA7XG4gIH1cblxuICAvKiogR2V0IHRoZSB1cmwgKi9cbiAgdXJsKHVybFBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgdXJsQmFzZSA9IGdldFVybEJhc2UodGhpcy5wYXRoKSh1cmxQYXJhbXMpO1xuICAgIGNvbnN0IHRva2VucyA9IGdldFVybFRva2Vucyh0aGlzLnBhdGgpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHVybFBhcmFtcykuZm9yRWFjaChrID0+IHtcbiAgICAgIGlmICghdG9rZW5zLmhhcyhrKSkge1xuICAgICAgICBzZWFyY2hQYXJhbXNba10gPSB1cmxQYXJhbXNba107XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy51cmxQcmVmaXh9JHt1cmxCYXNlfT8ke3BhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX1gO1xuICB9XG5cbiAgZ2V0SGVhZGVycyhoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICAvKiogSW5pdCBvcHRpb25zIGZvciBmZXRjaCAtIHJ1biBhdCBmZXRjaCAqL1xuICBhc3luYyBnZXRSZXF1ZXN0SW5pdChib2R5KSB7XG4gICAgY29uc3QgYm9keUlzUG9qbyA9IGlzUG9qbyhib2R5KTtcbiAgICBpZiAoYm9keUlzUG9qbykge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIH1cbiAgICBjb25zdCBpbml0ID0ge1xuICAgICAgLi4udGhpcy5yZXF1ZXN0SW5pdCxcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxuICAgICAgYm9keSxcbiAgICB9O1xuICAgIGlmICghYm9keSB8fCBib2R5SXNQb2pvKSB7XG4gICAgICBpbml0LmhlYWRlcnMgPSB7XG4gICAgICAgIC8vIGRlZmF1bHQgdG8gYXBwbGljYXRpb24vanNvbiBidXQgYWxsb3cgdXNlciBleHBsaWNpdCBvdmVycmlkZXNcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgLi4uaW5pdC5oZWFkZXJzLFxuICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5oZWFkZXJzID0gYXdhaXQgdGhpcy5nZXRIZWFkZXJzKGluaXQuaGVhZGVycyk7XG4gICAgcmV0dXJuIGluaXQ7XG4gIH1cblxuICAvKiogUGVyZm9ybSBuZXR3b3JrIHJlcXVlc3QgYW5kIHJlc29sdmUgd2l0aCBIVFRQIFJlc3BvbnNlICovXG4gIGZldGNoUmVzcG9uc2UoaW5wdXQsIGluaXQpIHtcbiAgICByZXR1cm4gZmV0Y2goaW5wdXQsIGluaXQpXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgLy8gZW5zdXJlIENPUlMsIG5ldHdvcmsgZG93biwgYW5kIHBhcnNlIGVycm9ycyBhcmUgc3RpbGwgY2F1Z2h0IGJ5IE5ldHdvcmtFcnJvckJvdW5kYXJ5XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICAgIGVycm9yLnN0YXR1cyA9IDUwMDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9XG5cbiAgcGFyc2VSZXNwb25zZShyZXNwb25zZSkge1xuICAgIC8vIHRoaXMgc2hvdWxkIG5vdCBoYXZlIGFueSBjb250ZW50IHRvIHJlYWRcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgaWYgKCFyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdqc29uJykpIHtcbiAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgLy8gc3RyaW5nIG9yICdub3Qgc2V0JyBzY2hlbWEsIGFyZSB2YWxpZFxuICAgICAgICAvLyB3aGVuIG92ZXJyaWRpbmcgcHJvY2VzcyB0aGV5IG1pZ2h0IGhhbmRsZSBvdGhlciBjYXNlcywgc28gd2UgZG9uJ3Qgd2FudCB0byBibG9jayBvbiBvdXIgbG9naWNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIFsnc3RyaW5nJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiB0aGlzLnNjaGVtYSkgfHxcbiAgICAgICAgICB0aGlzLnNjaGVtYSA9PT0gbnVsbCB8fFxuICAgICAgICAgIHRoaXMucHJvY2VzcyAhPT0gUmVzdEVuZHBvaW50LnByb3RvdHlwZS5wcm9jZXNzXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gdGV4dDtcblxuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICBlcnJvci5zdGF0dXMgPSA0MDQ7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0ZXh0IHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgICAvLyBjdXN0b20gZGV2LW9ubHkgbWVzc2FnZXMgZm9yIG1vcmUgZGV0YWlsZWQgY2F1c2VcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdodG1sJykgfHxcbiAgICAgICAgICAgICAgdGV4dC5zdGFydHNXaXRoKCc8IWRvY3R5cGUgaHRtbD4nKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHRyeVBhcnNlKHRleHQpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBcImNvbnRlbnQtdHlwZVwiIGhlYWRlciBkb2VzIG5vdCBpbmNsdWRlIFwianNvblwiLCBidXQgSlNPTiByZXNwb25zZSBmb3VuZC5cblNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNDYyNyBmb3IgaW5mb3JtYXRpb24gb24gSlNPTiByZXNwb25zZXNcblxuVXNpbmcgcGFyc2VkIEpTT04uXG5JZiB0ZXh0IGNvbnRlbnQgd2FzIGV4cGVjdGVkIHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIHBhdGhUb1JlZ2V4cCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcblxuICAgIHJldHVybiBuZXcgRShcbiAgICAgIC8vICBmZXRjaCBnZXQgb3ZlcnJpZGRlbiBieSBmdW5jdGlvbiBwcm90b3R5cGUsIHNvIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkgZXZlcnkgdGltZVxuICAgICAgeyBmZXRjaDogdGhpcy5mZXRjaCwgLi4ub3B0aW9ucyB9LFxuICAgICk7XG4gIH1cblxuICBwYWdpbmF0ZWQocmVtb3ZlQ3Vyc29yKSB7XG4gICAgaWYgKHR5cGVvZiByZW1vdmVDdXJzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSByZW1vdmVDdXJzb3I7XG4gICAgICByZW1vdmVDdXJzb3IgPSAoeyAuLi5wYXJhbXMgfSkgPT4ge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2ZpZWxkTmFtZV07XG4gICAgICAgIHJldHVybiBbcGFyYW1zXTtcbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSA9IGNvbGxlY3Rpb24gPT4ge1xuICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEocmVtb3ZlQ3Vyc29yLCBjb2xsZWN0aW9uKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICBjb25zdCBzdXAgPSB0aGlzO1xuXG4gICAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgICBzY2hlbWE6IG5ld1NjaGVtYSxcbiAgICAgICAga2V5KC4uLmFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gc3VwLmtleS5jYWxsKHRoaXMsIC4uLnJlbW92ZUN1cnNvciguLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoeyB1cGRhdGU6IHBhZ2luYXRpb25VcGRhdGUodGhpcywgcmVtb3ZlQ3Vyc29yKSB9KTtcbiAgfVxuXG4gIGdldCBnZXRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlZCh0aGlzLnBhZ2luYXRpb25GaWVsZCk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHRyeVBhcnNlID0gaW5wdXQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGlucHV0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsWUFBWSxRQUFRLGdCQUFnQjtBQUU3QyxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxPQUFPQyxZQUFZLE1BQU0sbUJBQW1CO0FBQzVDLFNBQVNDLHNCQUFzQixRQUFRLDJCQUEyQjtBQUNsRSxPQUFPQyxnQkFBZ0IsTUFBTSx1QkFBdUI7QUFDcEQsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxTQUFTQyxVQUFVLEVBQUVDLFlBQVksRUFBRUMsTUFBTSxRQUFRLGtCQUFrQjs7QUFFbkU7QUFDQTtBQUNBO0FBQ0E7QUFIQSxJQUFBQyxRQUFBLGdCQUFBQywwQkFBQTtBQUlBLGVBQWUsTUFBTUMsWUFBWSxTQUFTYixRQUFRLENBQUM7RUFFakRjLFdBQVdBLENBQUNDLE9BQU8sRUFBRTtJQUFBLElBQUFDLGNBQUE7SUFDbkIsS0FBSyxFQUFBQSxjQUFBLEdBQ0hELE9B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
|
package/legacy/createResource.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
2
|
-
const _excluded = ["path", "schema", "Endpoint", "optimistic"];
|
|
2
|
+
const _excluded = ["path", "schema", "Endpoint", "optimistic", "paginationField"];
|
|
3
3
|
import { AbortOptimistic, schema } from '@data-client/endpoint';
|
|
4
4
|
import RestEndpoint from './RestEndpoint.js';
|
|
5
5
|
import { shortenPath } from './RestHelpers.js';
|
|
@@ -17,7 +17,8 @@ export default function createResource(_ref) {
|
|
|
17
17
|
path,
|
|
18
18
|
schema,
|
|
19
19
|
Endpoint = RestEndpoint,
|
|
20
|
-
optimistic
|
|
20
|
+
optimistic,
|
|
21
|
+
paginationField
|
|
21
22
|
} = _ref,
|
|
22
23
|
extraOptions = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
23
24
|
const shortenedPath = shortenPath(path);
|
|
@@ -38,6 +39,7 @@ export default function createResource(_ref) {
|
|
|
38
39
|
extraPartialOptions.getOptimisticResponse = optimisticPartial(get);
|
|
39
40
|
}
|
|
40
41
|
const getList = new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
42
|
+
paginationField: paginationField,
|
|
41
43
|
path: shortenedPath,
|
|
42
44
|
schema: new Collection([schema]),
|
|
43
45
|
name: getName('getList')
|
|
@@ -117,4 +119,4 @@ function optimisticDelete(snap, params) {
|
|
|
117
119
|
function ensureBodyPojo(body) {
|
|
118
120
|
return body instanceof FormData ? Object.fromEntries(body.entries()) : body;
|
|
119
121
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydE9wdGltaXN0aWMiLCJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiY3JlYXRlUmVzb3VyY2UiLCJfcmVmIiwicGF0aCIsIkVuZHBvaW50Iiwib3B0aW1pc3RpYyIsImV4dHJhT3B0aW9ucyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwiX2V4Y2x1ZGVkIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwiZXh0cmFQYXJ0aWFsT3B0aW9ucyIsImdldCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsIm9wdGltaXN0aWNVcGRhdGUiLCJvcHRpbWlzdGljUGFydGlhbCIsImdldExpc3QiLCJyZXQiLCJjcmVhdGUiLCJwdXNoIiwidXBkYXRlIiwibWV0aG9kIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsInByb2Nlc3MiLCJyZXMiLCJwYXJhbXMiLCJrZXlzIiwibGVuZ3RoIiwib3B0aW1pc3RpY0RlbGV0ZSIsInVuZGVmaW5lZCIsImFyZ3MiLCJvdmVycmlkZXMiLCJzbmFwIiwiYm9keSIsImVuc3VyZUJvZHlQb2pvIiwiZ2V0RW5kcG9pbnQiLCJkYXRhIiwiZ2V0UmVzcG9uc2UiLCJGb3JtRGF0YSIsImZyb21FbnRyaWVzIiwiZW50cmllcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVSZXNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBYm9ydE9wdGltaXN0aWMsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxuICBzY2hlbWEsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB7IFJlc291cmNlUGF0aCB9IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7XG4gIFJlc291cmNlR2VuZXJpY3MsXG4gIFJlc291cmNlT3B0aW9ucyxcbiAgUmVzb3VyY2UsXG4gIFJlc291cmNlSW50ZXJmYWNlLFxufSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBHZXRFbmRwb2ludCxcbiAgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgUmVzdEVuZHBvaW50T3B0aW9ucyxcbiAgUmVzdEluc3RhbmNlQmFzZSxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuaW1wb3J0IHsgc2hvcnRlblBhdGggfSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcblxuY29uc3QgeyBJbnZhbGlkYXRlLCBDb2xsZWN0aW9uIH0gPSBzY2hlbWE7XG5cbi8qKiBDcmVhdGVzIGNvbGxlY3Rpb24gb2YgRW5kcG9pbnRzIGZvciBjb21tb24gb3BlcmF0aW9ucyBvbiBhIGdpdmVuIGRhdGEvc2NoZW1hLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgb3B0aW1pc3RpYyxcbiAgLi4uZXh0cmFPcHRpb25zXG59OiBSZWFkb25seTxPPiAmIFJlc291cmNlT3B0aW9ucyk6IFJlc291cmNlPE8+IHtcbiAgY29uc3Qgc2hvcnRlbmVkUGF0aCA9IHNob3J0ZW5QYXRoKHBhdGgpO1xuICBjb25zdCBnZXROYW1lID0gKG5hbWU6IHN0cmluZykgPT4gYCR7KHNjaGVtYSBhcyBhbnkpPy5uYW1lfS4ke25hbWV9YDtcbiAgLy8gdGhpcyBhY2NvdW50cyBmb3IgZGVyaXZhdGl2ZSBlbmRwb2ludHNcbiAgZnVuY3Rpb24gZXh0ZW5kTWVtYmVyKGV4dGVuZGVkOiBhbnksIGtleTogc3RyaW5nLCBvcHRpb25zOiBhbnkpIHtcbiAgICBleHRlbmRlZFtrZXldID0gZXh0ZW5kZWRba2V5XS5leHRlbmQob3B0aW9ucyk7XG4gIH1cblxuICBjb25zdCBleHRyYU11dGF0ZU9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBleHRyYVBhcnRpYWxPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PiA9XG4gICAgbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lOiBnZXROYW1lKCdnZXQnKSxcbiAgICB9KSBhcyBhbnk7XG4gIGlmIChvcHRpbWlzdGljKSB7XG4gICAgKGV4dHJhTXV0YXRlT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNVcGRhdGU7XG4gICAgKGV4dHJhUGFydGlhbE9wdGlvbnMgYXMgYW55KS5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljUGFydGlhbChnZXQpO1xuICB9XG4gIGNvbnN0IGdldExpc3QgPSBuZXcgRW5kcG9pbnQoe1xuICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICBwYXRoOiBzaG9ydGVuZWRQYXRoLFxuICAgIHNjaGVtYTogbmV3IENvbGxlY3Rpb24oW3NjaGVtYSBhcyBhbnldKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgLy8gVE9ETyhkZXByZWNhdGVkKTogcmVtb3ZlIHRoaXMgb25jZSB3ZSByZW1vdmUgY3JlYXRlc1xuICAgIGNyZWF0ZTogZ2V0TGlzdC5wdXNoLmV4dGVuZCh7IG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6IChzY2hlbWEgYXMgYW55KS5wcm9jZXNzID8gbmV3IEludmFsaWRhdGUoc2NoZW1hIGFzIGFueSkgOiBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZGVsZXRlJyksXG4gICAgICBwcm9jZXNzKHJlczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzICYmIE9iamVjdC5rZXlzKHJlcykubGVuZ3RoID8gcmVzIDogcGFyYW1zO1xuICAgICAgfSxcbiAgICAgIGdldE9wdGltaXN0aWNSZXNwb25zZTogb3B0aW1pc3RpYyA/IChvcHRpbWlzdGljRGVsZXRlIGFzIGFueSkgOiB1bmRlZmluZWQsXG4gICAgfSksXG4gICAgZXh0ZW5kKFxuICAgICAgLi4uYXJnczpcbiAgICAgICAgfCBbc3RyaW5nLCBSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBiYXNlUmVzb3VyY2U6IFJlc291cmNlSW50ZXJmYWNlLFxuICAgICAgICAgICAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXN0SW5zdGFuY2VCYXNlPixcbiAgICAgICAgICBdXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgICAgW2tleV06IHRoaXMuZ2V0LmV4dGVuZChvcHRpb25zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkID0gYXJnc1swXSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgIC4uLmV4dGVuZGVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvdmVycmlkZXNba2V5XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uZW5zdXJlQm9keVBvam8oYm9keSksXG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljUGFydGlhbChcbiAgZ2V0RW5kcG9pbnQ6IEdldEVuZHBvaW50PHsgcGF0aDogUmVzb3VyY2VQYXRoOyBzY2hlbWE6IGFueSB9Pixcbikge1xuICByZXR1cm4gZnVuY3Rpb24gKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBzbmFwLmdldFJlc3BvbnNlKGdldEVuZHBvaW50LCBwYXJhbXMpIGFzIHsgZGF0YTogYW55IH07XG4gICAgaWYgKCFkYXRhKSB0aHJvdyBuZXcgQWJvcnRPcHRpbWlzdGljKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIC4uLmRhdGEsXG4gICAgICAvLyBldmVuIHRobyB3ZSBkb24ndCBhbHdheXMgaGF2ZSB0d28gYXJndW1lbnRzLCB0aGUgZXh0cmEgb25lIHdpbGwgc2ltcGx5IGJlIHVuZGVmaW5lZCB3aGljaCBzcHJlYWRzIGZpbmVcbiAgICAgIC4uLmVuc3VyZUJvZHlQb2pvKGJvZHkpLFxuICAgIH07XG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljRGVsZXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSkge1xuICByZXR1cm4gcGFyYW1zO1xufVxuZnVuY3Rpb24gZW5zdXJlQm9keVBvam8oYm9keTogYW55KSB7XG4gIHJldHVybiBib2R5IGluc3RhbmNlb2YgRm9ybURhdGFcbiAgICA/IE9iamVjdC5mcm9tRW50cmllcygoYm9keSBhcyBhbnkpLmVudHJpZXMoKSlcbiAgICA6IGJvZHk7XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FDRUEsZUFBZSxFQUVmQyxNQUFNLFFBQ0QsdUJBQXVCO0FBUzlCLE9BQU9DLFlBQVksTUFLWixtQkFBbUI7QUFDMUIsU0FBU0MsV0FBVyxRQUFRLGtCQUFrQjtBQUU5QyxNQUFNO0VBQUVDLFVBQVU7RUFBRUM7QUFBVyxDQUFDLEdBQUdKLE1BQU07O0FBRXpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxTQUFTSyxjQUFjQSxDQUFBQyxJQUFBLEVBTVM7RUFBQSxJQU5vQjtNQUNqRUMsSUFBSTtNQUNKUCxNQUFNO01BQ05RLFFBQVEsR0FBR1AsWUFBWTtNQUN2QlE7SUFFNkIsQ0FBQyxHQUFBSCxJQUFBO0lBRDNCSSxZQUFZLEdBQUFDLDZCQUFBLENBQUFMLElBQUEsRUFBQU0sU0FBQTtFQUVmLE1BQU1DLGFBQWEsR0FBR1gsV0FBVyxDQUFDSyxJQUFJLENBQUM7RUFDdkMsTUFBTU8sT0FBTyxHQUFJQyxJQUFZLElBQU0sR0FBR2YsTUFBTSxvQkFBTkEsTUFBTSxDQUFVZSxJQUFLLElBQUdBLElBQUssRUFBQztFQUNwRTtFQUNBLFNBQVNDLFlBQVlBLENBQUNDLFFBQWEsRUFBRUMsR0FBVyxFQUFFQyxPQUFZLEVBQUU7SUFDOURGLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLEdBQUdELFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLENBQUNFLE1BQU0sQ0FBQ0QsT0FBTyxDQUFDO0VBQy9DO0VBRUEsTUFBTUUsa0JBQWtCLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxLQUFRYixZQUFZLENBQUU7RUFDOUMsTUFBTWMsbUJBQW1CLEdBQUFGLE1BQUEsQ0FBQUMsTUFBQSxLQUFRYixZQUFZLENBQUU7RUFDL0MsTUFBTWUsR0FBMEQsR0FDOUQsSUFBSWpCLFFBQVEsQ0FBQWMsTUFBQSxDQUFBQyxNQUFBLEtBQ1BiLFlBQVk7SUFDZkgsSUFBSTtJQUNKUCxNQUFN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
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydE9wdGltaXN0aWMiLCJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiY3JlYXRlUmVzb3VyY2UiLCJfcmVmIiwicGF0aCIsIkVuZHBvaW50Iiwib3B0aW1pc3RpYyIsInBhZ2luYXRpb25GaWVsZCIsImV4dHJhT3B0aW9ucyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwiX2V4Y2x1ZGVkIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwiZXh0cmFQYXJ0aWFsT3B0aW9ucyIsImdldCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsIm9wdGltaXN0aWNVcGRhdGUiLCJvcHRpbWlzdGljUGFydGlhbCIsImdldExpc3QiLCJyZXQiLCJjcmVhdGUiLCJwdXNoIiwidXBkYXRlIiwibWV0aG9kIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsInByb2Nlc3MiLCJyZXMiLCJwYXJhbXMiLCJrZXlzIiwibGVuZ3RoIiwib3B0aW1pc3RpY0RlbGV0ZSIsInVuZGVmaW5lZCIsImFyZ3MiLCJvdmVycmlkZXMiLCJzbmFwIiwiYm9keSIsImVuc3VyZUJvZHlQb2pvIiwiZ2V0RW5kcG9pbnQiLCJkYXRhIiwiZ2V0UmVzcG9uc2UiLCJGb3JtRGF0YSIsImZyb21FbnRyaWVzIiwiZW50cmllcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVSZXNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBYm9ydE9wdGltaXN0aWMsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxuICBzY2hlbWEsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB7IFJlc291cmNlUGF0aCB9IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7XG4gIFJlc291cmNlR2VuZXJpY3MsXG4gIFJlc291cmNlT3B0aW9ucyxcbiAgUmVzb3VyY2UsXG4gIFJlc291cmNlSW50ZXJmYWNlLFxufSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBHZXRFbmRwb2ludCxcbiAgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgUmVzdEVuZHBvaW50T3B0aW9ucyxcbiAgUmVzdEluc3RhbmNlQmFzZSxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuaW1wb3J0IHsgc2hvcnRlblBhdGggfSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcblxuY29uc3QgeyBJbnZhbGlkYXRlLCBDb2xsZWN0aW9uIH0gPSBzY2hlbWE7XG5cbi8qKiBDcmVhdGVzIGNvbGxlY3Rpb24gb2YgRW5kcG9pbnRzIGZvciBjb21tb24gb3BlcmF0aW9ucyBvbiBhIGdpdmVuIGRhdGEvc2NoZW1hLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgb3B0aW1pc3RpYyxcbiAgcGFnaW5hdGlvbkZpZWxkLFxuICAuLi5leHRyYU9wdGlvbnNcbn06IFJlYWRvbmx5PE8+ICYgUmVzb3VyY2VPcHRpb25zKTogUmVzb3VyY2U8Tz4ge1xuICBjb25zdCBzaG9ydGVuZWRQYXRoID0gc2hvcnRlblBhdGgocGF0aCk7XG4gIGNvbnN0IGdldE5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiBgJHsoc2NoZW1hIGFzIGFueSk/Lm5hbWV9LiR7bmFtZX1gO1xuICAvLyB0aGlzIGFjY291bnRzIGZvciBkZXJpdmF0aXZlIGVuZHBvaW50c1xuICBmdW5jdGlvbiBleHRlbmRNZW1iZXIoZXh0ZW5kZWQ6IGFueSwga2V5OiBzdHJpbmcsIG9wdGlvbnM6IGFueSkge1xuICAgIGV4dGVuZGVkW2tleV0gPSBleHRlbmRlZFtrZXldLmV4dGVuZChvcHRpb25zKTtcbiAgfVxuXG4gIGNvbnN0IGV4dHJhTXV0YXRlT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGV4dHJhUGFydGlhbE9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBnZXQ6IEdldEVuZHBvaW50PHsgcGF0aDogT1sncGF0aCddOyBzY2hlbWE6IE9bJ3NjaGVtYSddIH0+ID1cbiAgICBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2dldCcpLFxuICAgIH0pIGFzIGFueTtcbiAgaWYgKG9wdGltaXN0aWMpIHtcbiAgICAoZXh0cmFNdXRhdGVPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1VwZGF0ZTtcbiAgICAoZXh0cmFQYXJ0aWFsT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNQYXJ0aWFsKFxuICAgICAgZ2V0IGFzIGFueSxcbiAgICApO1xuICB9XG4gIGNvbnN0IGdldExpc3QgPSBuZXcgRW5kcG9pbnQoe1xuICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICBwYWdpbmF0aW9uRmllbGQ6IHBhZ2luYXRpb25GaWVsZCBhcyBzdHJpbmcsXG4gICAgcGF0aDogc2hvcnRlbmVkUGF0aCxcbiAgICBzY2hlbWE6IG5ldyBDb2xsZWN0aW9uKFtzY2hlbWEgYXMgYW55XSksXG4gICAgbmFtZTogZ2V0TmFtZSgnZ2V0TGlzdCcpLFxuICB9KTtcbiAgY29uc3QgcmV0ID0ge1xuICAgIGdldCxcbiAgICBnZXRMaXN0LFxuICAgIC8vIFRPRE8oZGVwcmVjYXRlZCk6IHJlbW92ZSB0aGlzIG9uY2Ugd2UgcmVtb3ZlIGNyZWF0ZXNcbiAgICBjcmVhdGU6IGdldExpc3QucHVzaC5leHRlbmQoeyBuYW1lOiBnZXROYW1lKCdjcmVhdGUnKSB9KSxcbiAgICB1cGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3VwZGF0ZScpLFxuICAgIH0pLFxuICAgIHBhcnRpYWxVcGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYVBhcnRpYWxPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3BhcnRpYWxVcGRhdGUnKSxcbiAgICB9KSxcbiAgICBkZWxldGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hOiAoc2NoZW1hIGFzIGFueSkucHJvY2VzcyA/IG5ldyBJbnZhbGlkYXRlKHNjaGVtYSBhcyBhbnkpIDogc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2RlbGV0ZScpLFxuICAgICAgcHJvY2VzcyhyZXM6IGFueSwgcGFyYW1zOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHJlcyAmJiBPYmplY3Qua2V5cyhyZXMpLmxlbmd0aCA/IHJlcyA6IHBhcmFtcztcbiAgICAgIH0sXG4gICAgICBnZXRPcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWMgPyAob3B0aW1pc3RpY0RlbGV0ZSBhcyBhbnkpIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICAgIGV4dGVuZChcbiAgICAgIC4uLmFyZ3M6XG4gICAgICAgIHwgW3N0cmluZywgUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1Jlc3RFbmRwb2ludE9wdGlvbnMgJiBQYXJ0aWFsUmVzdEdlbmVyaWNzXVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgYmFzZVJlc291cmNlOiBSZXNvdXJjZUludGVyZmFjZSxcbiAgICAgICAgICAgICkgPT4gUmVjb3JkPHN0cmluZywgUmVzdEluc3RhbmNlQmFzZT4sXG4gICAgICAgICAgXVxuICAgICkge1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBba2V5LCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICAgICAgZXh0ZW5kTWVtYmVyKGV4dGVuZGVkLCBrZXksIG9wdGlvbnMpO1xuICAgICAgICAgIHJldHVybiBleHRlbmRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAgIFtrZXldOiB0aGlzLmdldC5leHRlbmQob3B0aW9ucyksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBleHRlbmRlZCA9IGFyZ3NbMF0odGhpcyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAuLi5leHRlbmRlZCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IGFyZ3NbMF07XG4gICAgICBjb25zdCBleHRlbmRlZCA9IHsgLi4udGhpcyB9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVzKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3ZlcnJpZGVzW2tleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgIH0sXG4gIH0gYXMgYW55O1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvcHRpbWlzdGljVXBkYXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gIHJldHVybiB7XG4gICAgLi4ucGFyYW1zLFxuICAgIC4uLmVuc3VyZUJvZHlQb2pvKGJvZHkpLFxuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY1BhcnRpYWwoXG4gIGdldEVuZHBvaW50OiBHZXRFbmRwb2ludDx7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfT4sXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnksIGJvZHk6IGFueSkge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gc25hcC5nZXRSZXNwb25zZShnZXRFbmRwb2ludCwgcGFyYW1zKSBhcyB7IGRhdGE6IGFueSB9O1xuICAgIGlmICghZGF0YSkgdGhyb3cgbmV3IEFib3J0T3B0aW1pc3RpYygpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi5kYXRhLFxuICAgICAgLy8gZXZlbiB0aG8gd2UgZG9uJ3QgYWx3YXlzIGhhdmUgdHdvIGFyZ3VtZW50cywgdGhlIGV4dHJhIG9uZSB3aWxsIHNpbXBseSBiZSB1bmRlZmluZWQgd2hpY2ggc3ByZWFkcyBmaW5lXG4gICAgICAuLi5lbnN1cmVCb2R5UG9qbyhib2R5KSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIGVuc3VyZUJvZHlQb2pvKGJvZHk6IGFueSkge1xuICByZXR1cm4gYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhXG4gICAgPyBPYmplY3QuZnJvbUVudHJpZXMoKGJvZHkgYXMgYW55KS5lbnRyaWVzKCkpXG4gICAgOiBib2R5O1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQ0VBLGVBQWUsRUFFZkMsTUFBTSxRQUNELHVCQUF1QjtBQVM5QixPQUFPQyxZQUFZLE1BS1osbUJBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFFOUMsTUFBTTtFQUFFQyxVQUFVO0VBQUVDO0FBQVcsQ0FBQyxHQUFHSixNQUFNOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU0ssY0FBY0EsQ0FBQUMsSUFBQSxFQU9TO0VBQUEsSUFQb0I7TUFDakVDLElBQUk7TUFDSlAsTUFBTTtNQUNOUSxRQUFRLEdBQUdQLFlBQVk7TUFDdkJRLFVBQVU7TUFDVkM7SUFFNkIsQ0FBQyxHQUFBSixJQUFBO0lBRDNCSyxZQUFZLEdBQUFDLDZCQUFBLENBQUFOLElBQUEsRUFBQU8sU0FBQTtFQUVmLE1BQU1DLGFBQWEsR0FBR1osV0FBVyxDQUFDSyxJQUFJLENBQUM7RUFDdkMsTUFBTVEsT0FBTyxHQUFJQyxJQUFZLElBQU0sR0FBR2hCLE1BQU0sb0JBQU5BLE1BQU0sQ0FBVWdCLElBQUssSUFBR0EsSUFBSyxFQUFDO0VBQ3BFO0VBQ0EsU0FBU0MsWUFBWUEsQ0FBQ0MsUUFBYSxFQUFFQyxHQUFXLEVBQUVDLE9BQVksRUFBRTtJQUM5REYsUUFBUSxDQUFDQyxHQUFHLENBQUMsR0FBR0QsUUFBUSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0UsTUFBTSxDQUFDRCxPQUFPLENBQUM7RUFDL0M7RUFFQSxNQUFNRSxrQkFBa0IsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEtBQVFiLFlBQVksQ0FBRTtFQUM5QyxNQUFNYyxtQkFBbUIsR0FBQUYs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
|
|
@@ -6,24 +6,19 @@ export function paginatedMerge(existing, incoming) {
|
|
|
6
6
|
}
|
|
7
7
|
return mergedList;
|
|
8
8
|
}
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
for (const key of keys1) {
|
|
23
|
-
if (object1[key] != object2[key]) {
|
|
24
|
-
return false;
|
|
9
|
+
export function createPaginationSchema(removeCursor, collection) {
|
|
10
|
+
return Object.create(collection, {
|
|
11
|
+
name: {
|
|
12
|
+
value: `Pagination(${collection.schema})`
|
|
13
|
+
},
|
|
14
|
+
merge: {
|
|
15
|
+
value: paginatedMerge
|
|
16
|
+
},
|
|
17
|
+
pk: {
|
|
18
|
+
value: function (value, parent, key, args) {
|
|
19
|
+
return collection.pk.call(this, value, parent, key, removeCursor(...args));
|
|
20
|
+
}
|
|
25
21
|
}
|
|
26
|
-
}
|
|
27
|
-
return true;
|
|
22
|
+
});
|
|
28
23
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYWdpbmF0ZWRNZXJnZSIsImV4aXN0aW5nIiwiaW5jb21pbmciLCJleGlzdGluZ1NldCIsIlNldCIsIm1lcmdlZExpc3QiLCJwayIsImhhcyIsInB1c2giLCJjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIiwicmVtb3ZlQ3Vyc29yIiwiY29sbGVjdGlvbiIsIk9iamVjdCIsImNyZWF0ZSIsIm5hbWUiLCJ2YWx1ZSIsInNjaGVtYSIsIm1lcmdlIiwicGFyZW50Iiwia2V5IiwiYXJncyIsImNhbGwiXSwic291cmNlcyI6WyIuLi9zcmMvcGFnaW5hdGVkQ29sbGVjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFnaW5hdGVkTWVyZ2UoZXhpc3Rpbmc6IGFueVtdLCBpbmNvbWluZzogYW55W10pIHtcbiAgY29uc3QgZXhpc3RpbmdTZXQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldChleGlzdGluZyk7XG4gIGNvbnN0IG1lcmdlZExpc3QgPSBbLi4uZXhpc3RpbmddO1xuICBmb3IgKGNvbnN0IHBrIG9mIGluY29taW5nKSB7XG4gICAgaWYgKCFleGlzdGluZ1NldC5oYXMocGspKSBtZXJnZWRMaXN0LnB1c2gocGspO1xuICB9XG4gIHJldHVybiBtZXJnZWRMaXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFnaW5hdGlvblNjaGVtYShcbiAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogcmVhZG9ubHkgYW55W10pID0+IGFueVtdLFxuICBjb2xsZWN0aW9uOiBzY2hlbWEuQ29sbGVjdGlvbixcbikge1xuICByZXR1cm4gT2JqZWN0LmNyZWF0ZShjb2xsZWN0aW9uLCB7XG4gICAgbmFtZToge1xuICAgICAgdmFsdWU6IGBQYWdpbmF0aW9uKCR7Y29sbGVjdGlvbi5zY2hlbWF9KWAsXG4gICAgfSxcbiAgICBtZXJnZToge1xuICAgICAgdmFsdWU6IHBhZ2luYXRlZE1lcmdlLFxuICAgIH0sXG4gICAgcGs6IHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiAodmFsdWU6IGFueSwgcGFyZW50OiBhbnksIGtleTogYW55LCBhcmdzOiBhbnlbXSkge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5way5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgcGFyZW50LFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICByZW1vdmVDdXJzb3IoLi4uYXJncyksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLGNBQWNBLENBQUNDLFFBQWUsRUFBRUMsUUFBZSxFQUFFO0VBQy9ELE1BQU1DLFdBQXdCLEdBQUcsSUFBSUMsR0FBRyxDQUFDSCxRQUFRLENBQUM7RUFDbEQsTUFBTUksVUFBVSxHQUFHLENBQUMsR0FBR0osUUFBUSxDQUFDO0VBQ2hDLEtBQUssTUFBTUssRUFBRSxJQUFJSixRQUFRLEVBQUU7SUFDekIsSUFBSSxDQUFDQyxXQUFXLENBQUNJLEdBQUcsQ0FBQ0QsRUFBRSxDQUFDLEVBQUVELFVBQVUsQ0FBQ0csSUFBSSxDQUFDRixFQUFFLENBQUM7RUFDL0M7RUFDQSxPQUFPRCxVQUFVO0FBQ25CO0FBRUEsT0FBTyxTQUFTSSxzQkFBc0JBLENBQ3BDQyxZQUFnRCxFQUNoREMsVUFBNkIsRUFDN0I7RUFDQSxPQUFPQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0YsVUFBVSxFQUFFO0lBQy9CRyxJQUFJLEVBQUU7TUFDSkMsS0FBSyxFQUFHLGNBQWFKLFVBQVUsQ0FBQ0ssTUFBTztJQUN6QyxDQUFDO0lBQ0RDLEtBQUssRUFBRTtNQUNMRixLQUFLLEVBQUVmO0lBQ1QsQ0FBQztJQUNETSxFQUFFLEVBQUU7TUFDRlMsS0FBSyxFQUFFLFNBQUFBLENBQVVBLEtBQVUsRUFBRUcsTUFBVyxFQUFFQyxHQUFRLEVBQUVDLElBQVcsRUFBRTtRQUMvRCxPQUFPVCxVQUFVLENBQUNMLEVBQUUsQ0FBQ2UsSUFBSSxDQUN2QixJQUFJLEVBQ0pOLEtBQUssRUFDTEcsTUFBTSxFQUNOQyxHQUFHLEVBQ0hULFlBQVksQ0FBQyxHQUFHVSxJQUFJLENBQ3RCLENBQUM7TUFDSDtJQUNGO0VBQ0YsQ0FBQyxDQUFDO0FBQ0oifQ==
|
package/legacy/resourceTypes.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgUGF0aEFyZ3MsIFJlc291cmNlUGF0aCwgU2hvcnRlblBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFeHRlbmRhYmxlIH0gZnJvbSAnLi9yZXNvdXJjZUV4dGVuZGFibGUuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBHZXRFbmRwb2ludCxcbiAgTXV0YXRlRW5kcG9pbnQsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RUeXBlTm9Cb2R5LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbi8qKiBUaGUgdHlwZWQgKGdlbmVyaWMpIG9wdGlvbnMgZm9yIGEgUmVzb3VyY2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VHZW5lcmljcyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aDogUmVzb3VyY2VQYXRoO1xuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNib2R5ICovXG4gIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3NlYXJjaFBhcmFtcyAqL1xuICByZWFkb25seSBzZWFyY2hQYXJhbXM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgUGF0aEFyZ3MsIFJlc291cmNlUGF0aCwgU2hvcnRlblBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFeHRlbmRhYmxlIH0gZnJvbSAnLi9yZXNvdXJjZUV4dGVuZGFibGUuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBHZXRFbmRwb2ludCxcbiAgTXV0YXRlRW5kcG9pbnQsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RUeXBlTm9Cb2R5LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbi8qKiBUaGUgdHlwZWQgKGdlbmVyaWMpIG9wdGlvbnMgZm9yIGEgUmVzb3VyY2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VHZW5lcmljcyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aDogUmVzb3VyY2VQYXRoO1xuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNib2R5ICovXG4gIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3NlYXJjaFBhcmFtcyAqL1xuICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3BhZ2luYXRpb25maWVsZCAqL1xuICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG59XG4vKiogVGhlIHVudHlwZWQgb3B0aW9ucyBmb3IgY3JlYXRlUmVzb3VyY2UoKSAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZU9wdGlvbnMge1xuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9yZXN0L2FwaS9jcmVhdGVSZXNvdXJjZSNlbmRwb2ludCAqL1xuICBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI29wdGltaXN0aWMgKi9cbiAgb3B0aW1pc3RpYz86IGJvb2xlYW47XG4gIC8qKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI3VybHByZWZpeCAqL1xuICB1cmxQcmVmaXg/OiBzdHJpbmc7XG4gIHJlcXVlc3RJbml0PzogUmVxdWVzdEluaXQ7XG4gIGdldEhlYWRlcnM/KGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgZ2V0UmVxdWVzdEluaXQ/KGJvZHk6IGFueSk6IFByb21pc2U8UmVxdWVzdEluaXQ+IHwgUmVxdWVzdEluaXQ7XG4gIGZldGNoUmVzcG9uc2U/KGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPGFueT47XG4gIHBhcnNlUmVzcG9uc2U/KHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8YW55PjtcbiAgLyoqIERlZmF1bHQgZGF0YSBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGRhdGFFeHBpcnlMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBEZWZhdWx0IGVycm9yIGV4cGlyeSBsZW5ndGgsIHdpbGwgZmFsbCBiYWNrIHRvIE5ldHdvcmtNYW5hZ2VyIGRlZmF1bHQgaWYgbm90IGRlZmluZWQgKi9cbiAgcmVhZG9ubHkgZXJyb3JFeHBpcnlMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBQb2xsIHdpdGggYXQgbGVhc3QgdGhpcyBmcmVxdWVuY3kgaW4gbWlsaXNlY29uZHMgKi9cbiAgcmVhZG9ubHkgcG9sbEZyZXF1ZW5jeT86IG51bWJlcjtcbiAgLyoqIE1hcmtzIGNhY2hlZCByZXNvdXJjZXMgYXMgaW52YWxpZCBpZiB0aGV5IGFyZSBzdGFsZSAqL1xuICByZWFkb25seSBpbnZhbGlkSWZTdGFsZT86IGJvb2xlYW47XG4gIC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdGhyb3cgb3IgZmFsbGJhY2sgdG8gKi9cbiAgZXJyb3JQb2xpY3k/KGVycm9yOiBhbnkpOiAnaGFyZCcgfCAnc29mdCcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZXNvdXJjZXMgYXJlIGEgY29sbGVjdGlvbiBvZiBtZXRob2RzIGZvciBhIGdpdmVuIGRhdGEgbW9kZWwuXG4gKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2U8XG4gIE8gZXh0ZW5kcyBSZXNvdXJjZUdlbmVyaWNzID0geyBwYXRoOiBSZXNvdXJjZVBhdGg7IHNjaGVtYTogYW55IH0sXG4+IGV4dGVuZHMgRXh0ZW5kYWJsZTxPPiB7XG4gIC8qKiBHZXQgYSBzaW5ndWxhciBpdGVtXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjZ2V0XG4gICAqL1xuICBnZXQ6IEdldEVuZHBvaW50PHsgcGF0aDogT1sncGF0aCddOyBzY2hlbWE6IE9bJ3NjaGVtYSddIH0+O1xuICAvKiogR2V0IGEgbGlzdCBvZiBpdGVtXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjZ2V0bGlzdFxuICAgKi9cbiAgZ2V0TGlzdDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPXG4gICAgPyBHZXRFbmRwb2ludDxcbiAgICAgICAge1xuICAgICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxbT1snc2NoZW1hJ11dPjtcbiAgICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPXG4gICAgICAgICAgICA/IE9bJ2JvZHknXVxuICAgICAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgfSAmIFBpY2s8TywgJ3BhZ2luYXRpb25GaWVsZCc+XG4gICAgICA+XG4gICAgOiBHZXRFbmRwb2ludDxcbiAgICAgICAge1xuICAgICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxbT1snc2NoZW1hJ11dPjtcbiAgICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPXG4gICAgICAgICAgICA/IE9bJ2JvZHknXVxuICAgICAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICAgICAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgfSAmIFBpY2s8TywgJ3BhZ2luYXRpb25GaWVsZCc+XG4gICAgICA+O1xuICAvKiogQ3JlYXRlIGEgbmV3IGl0ZW0gKFBPU1QpXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBSZXNvdXJjZS5nZXRMaXN0LnB1c2ggaW5zdGVhZFxuICAgKi9cbiAgY3JlYXRlOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE9cbiAgICA/IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxbT1snc2NoZW1hJ11dPlsncHVzaCddO1xuICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPXG4gICAgICAgICAgPyBPWydib2R5J11cbiAgICAgICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgIH0+XG4gICAgOiBNdXRhdGVFbmRwb2ludDx7XG4gICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248W09bJ3NjaGVtYSddXT5bJ3B1c2gnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgT1xuICAgICAgICAgID8gT1snYm9keSddXG4gICAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICB9PjtcbiAgLyoqIFVwZGF0ZSBhbiBpdGVtIChQVVQpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjdXBkYXRlXG4gICAqL1xuICB1cGRhdGU6ICdib2R5JyBleHRlbmRzIGtleW9mIE9cbiAgICA/IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgICBib2R5OiBPWydib2R5J107XG4gICAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgICB9PlxuICAgIDogTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICAgIGJvZHk6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PiB8IEZvcm1EYXRhO1xuICAgICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgICAgfT47XG4gIC8qKiBVcGRhdGUgYW4gaXRlbSAoUEFUQ0gpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjcGFydGlhbHVwZGF0ZVxuICAgKi9cbiAgcGFydGlhbFVwZGF0ZTogJ2JvZHknIGV4dGVuZHMga2V5b2YgT1xuICAgID8gTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICAgIGJvZHk6IFBhcnRpYWw8T1snYm9keSddPjtcbiAgICAgICAgc2NoZW1hOiBPWydzY2hlbWEnXTtcbiAgICAgIH0+XG4gICAgOiBNdXRhdGVFbmRwb2ludDx7XG4gICAgICAgIHBhdGg6IE9bJ3BhdGgnXTtcbiAgICAgICAgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+IHwgRm9ybURhdGE7XG4gICAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgICB9PjtcbiAgLyoqIERlbGV0ZSBhbiBpdGVtIChERUxFVEUpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjZGVsZXRlXG4gICAqL1xuICBkZWxldGU6IFJlc3RUeXBlTm9Cb2R5PFxuICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgT1snc2NoZW1hJ10gZXh0ZW5kcyBzY2hlbWEuRW50aXR5SW50ZXJmYWNlICYgeyBwcm9jZXNzOiBhbnkgfVxuICAgICAgPyBzY2hlbWEuSW52YWxpZGF0ZTxPWydzY2hlbWEnXT5cbiAgICAgIDogT1snc2NoZW1hJ10sXG4gICAgdW5kZWZpbmVkLFxuICAgIFBhcnRpYWw8UGF0aEFyZ3M8T1sncGF0aCddPj4sXG4gICAge1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUludGVyZmFjZSB7XG4gIGdldDogUmVzdEluc3RhbmNlQmFzZTtcbiAgZ2V0TGlzdDogUmVzdEluc3RhbmNlQmFzZTtcbiAgdXBkYXRlOiBSZXN0SW5zdGFuY2VCYXNlO1xuICBwYXJ0aWFsVXBkYXRlOiBSZXN0SW5zdGFuY2VCYXNlO1xuICBkZWxldGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG4iXSwibWFwcGluZ3MiOiIifQ==
|