@data-client/rest 0.14.18 → 0.14.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -211,7 +211,7 @@ supports inferring argument types from the path templates.
211
211
  <td align="center">🛑</td>
212
212
  </tr>
213
213
  <tr>
214
- <td align="center">✅</td>
214
+ <td align="center"> </td>
215
215
  <td><a href="https://dataclient.io/rest/api/All">All</a></td>
216
216
  <td>list of all entities of a kind</td>
217
217
  <td align="center">✅</td>
package/dist/index.js CHANGED
@@ -1,38 +1,9 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
3
+ var _pushInstanceProperty = require('core-js-pure/stable/instance/push.js');
5
4
  var endpoint = require('@data-client/endpoint');
6
5
  var pathToRegexp = require('path-to-regexp');
7
6
 
8
- function unwrapExports (x) {
9
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
10
- }
11
-
12
- function createCommonjsModule(fn, module) {
13
- return module = { exports: {} }, fn(module, module.exports), module.exports;
14
- }
15
-
16
- var classPrivateFieldLooseBase = createCommonjsModule(function (module) {
17
- function _classPrivateFieldBase(e, t) {
18
- if (!{}.hasOwnProperty.call(e, t)) throw new TypeError("attempted to use private field on non-instance");
19
- return e;
20
- }
21
- module.exports = _classPrivateFieldBase, module.exports.__esModule = true, module.exports["default"] = module.exports;
22
- });
23
-
24
- var _classPrivateFieldLooseBase = unwrapExports(classPrivateFieldLooseBase);
25
-
26
- var classPrivateFieldLooseKey = createCommonjsModule(function (module) {
27
- var id = 0;
28
- function _classPrivateFieldKey(e) {
29
- return "__private_" + id++ + "_" + e;
30
- }
31
- module.exports = _classPrivateFieldKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
32
- });
33
-
34
- var _classPrivateFieldLooseKey = unwrapExports(classPrivateFieldLooseKey);
35
-
36
7
  function extractCollection(s, mapper) {
37
8
  if (typeof s !== 'object' || s === undefined || Array.isArray(s)) return;
38
9
  if (s instanceof endpoint.schema.Collection) {
@@ -68,9 +39,9 @@ function mapCollection(s, mapper) {
68
39
  * @see https://dataclient.io/rest/api/NetworkError
69
40
  */
70
41
  class NetworkError extends Error {
42
+ name = 'NetworkError';
71
43
  constructor(response) {
72
44
  super(`${response.url}: ${response.statusText || `Status not 'ok': ${response.status}`}`);
73
- this.name = 'NetworkError';
74
45
  this.status = response.status;
75
46
  this.response = response;
76
47
  }
@@ -80,7 +51,7 @@ function paginatedMerge(existing, incoming) {
80
51
  const existingSet = new Set(existing);
81
52
  const mergedList = [...existing];
82
53
  for (const pk of incoming) {
83
- if (!existingSet.has(pk)) mergedList.push(pk);
54
+ if (!existingSet.has(pk)) _pushInstanceProperty(mergedList).call(mergedList, pk);
84
55
  }
85
56
  return mergedList;
86
57
  }
@@ -144,20 +115,16 @@ function shortenPath(path) {
144
115
  *
145
116
  * @see https://dataclient.io/rest/api/RestEndpoint
146
117
  */
147
- var _hasBody = /*#__PURE__*/_classPrivateFieldLooseKey("hasBody");
148
118
  class RestEndpoint extends endpoint.Endpoint {
119
+ #hasBody;
149
120
  constructor(options) {
150
121
  var _options$fetch;
151
122
  super((_options$fetch = options.fetch) != null ? _options$fetch : async function (...args) {
152
- const urlParams = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] && args.length < 2 ? {} : args[0] || {};
153
- const body = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] ? args[args.length - 1] : undefined;
123
+ const urlParams = this.#hasBody && args.length < 2 ? {} : args[0] || {};
124
+ const body = this.#hasBody ? args[args.length - 1] : undefined;
154
125
  return this.fetchResponse(this.url(urlParams), await this.getRequestInit(body)).then(response => this.parseResponse(response)).then(res => this.process(res, ...args));
155
126
  }, options);
156
127
  // we want to use the prototype chain here
157
- Object.defineProperty(this, _hasBody, {
158
- writable: true,
159
- value: void 0
160
- });
161
128
  if (!('sideEffect' in this) || 'method' in options && !('sideEffect' in options)) {
162
129
  this.sideEffect = options.method === 'GET' || options.method === undefined ? undefined : true;
163
130
  }
@@ -167,7 +134,7 @@ class RestEndpoint extends endpoint.Endpoint {
167
134
  if (this.urlPrefix === undefined) {
168
135
  this.urlPrefix = '';
169
136
  }
170
- _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] = (!('body' in this) || this.body !== undefined) && !['GET', 'DELETE'].includes(this.method);
137
+ this.#hasBody = (!('body' in this) || this.body !== undefined) && !['GET', 'DELETE'].includes(this.method);
171
138
  Object.defineProperty(this, 'name', {
172
139
  get() {
173
140
  // using 'in' to ensure inheritance lookup
@@ -177,7 +144,7 @@ class RestEndpoint extends endpoint.Endpoint {
177
144
  });
178
145
  }
179
146
  key(...args) {
180
- return `${this.method} ${this.url(_classPrivateFieldLooseBase(this, _hasBody)[_hasBody] && args.length < 2 ? {} : args[0] || {})}`;
147
+ return `${this.method} ${this.url(this.#hasBody && args.length < 2 ? {} : args[0] || {})}`;
181
148
  }
182
149
 
183
150
  /** Get the url */
@@ -341,7 +308,7 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
341
308
  get push() {
342
309
  return this.extend({
343
310
  method: 'POST',
344
- schema: extractCollection(this.schema, s => s.push),
311
+ schema: extractCollection(this.schema, s => _pushInstanceProperty(s)),
345
312
  name: this.name + '.create'
346
313
  });
347
314
  }
@@ -438,7 +405,7 @@ This warning will not show in production.`);
438
405
  get,
439
406
  getList,
440
407
  // TODO(deprecated): remove this once we remove creates
441
- create: getList.push.extend({
408
+ create: _pushInstanceProperty(getList).extend({
442
409
  name: getName('create')
443
410
  }),
444
411
  update: new Endpoint({
@@ -551,10 +518,6 @@ function capitalizeFirstLetter(s) {
551
518
  return s.charAt(0).toUpperCase() + s.slice(1);
552
519
  }
553
520
 
554
- Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {
555
- return Object.prototype.hasOwnProperty.call(it, key);
556
- };
557
-
558
521
  exports.NetworkError = NetworkError;
559
522
  exports.RestEndpoint = RestEndpoint;
560
523
  exports.createResource = resource;
@@ -563,8 +526,8 @@ exports.getUrlTokens = getUrlTokens;
563
526
  exports.hookifyResource = hookifyResource;
564
527
  exports.resource = resource;
565
528
  Object.keys(endpoint).forEach(function (k) {
566
- if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
567
- enumerable: true,
568
- get: function () { return endpoint[k]; }
569
- });
529
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
530
+ enumerable: true,
531
+ get: function () { return endpoint[k]; }
532
+ });
570
533
  });
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Rest={})}(this,(function(e){"use strict";function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function n(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t(n((function(e){e.exports=function(e){if(null==e)throw new TypeError("Cannot destructure "+e)},e.exports.__esModule=!0,e.exports.default=e.exports}))),s=t(n((function(e){e.exports=function(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e},e.exports.__esModule=!0,e.exports.default=e.exports}))),i=t(n((function(e){var t=0;e.exports=function(e){return"__private_"+t+++"_"+e},e.exports.__esModule=!0,e.exports.default=e.exports})));function o(e){return!("function"!=typeof e.hasOwnProperty||!(Object.hasOwnProperty.call(e,"__ownerID")||e._map&&Object.hasOwnProperty.call(e._map,"__ownerID")))}class a{constructor(e,t){this.schema=void 0,t&&(this._schemaAttribute="string"==typeof t?e=>e[t]:t),this.define(e)}get isSingleSchema(){return!this._schemaAttribute}define(e){"_schemaAttribute"in e&&!this._schemaAttribute?(this.schema=e.schema,this._schemaAttribute=e._schemaAttribute):this.schema=e}getSchemaAttribute(e,t,n){return!this.isSingleSchema&&this._schemaAttribute(e,t,n)}inferSchema(e,t,n){if(this.isSingleSchema)return this.schema;const r=this.getSchemaAttribute(e,t,n);return this.schema[r]}schemaKey(){return this.isSingleSchema?this.schema.key:Object.values(this.schema).join(";")}normalizeValue(e,t,n,r,s){if(!e)return e;const i=this.inferSchema(e,t,n);if(!i)return e;const o=s(i,e,t,n,r);return this.isSingleSchema||null==o?o:{id:o,schema:this.getSchemaAttribute(e,t,n)}}denormalizeValue(e,t){const n=!this.isSingleSchema&&e&&(o(e)?e.get("schema"):e.schema);if(!this.isSingleSchema&&!n){if("object"==typeof e&&null!==e){const n=this.inferSchema(e,void 0,void 0);if(n)return t(n,e)}return e}const r=this.isSingleSchema?void 0:o(e)?e.get("id"):e.id;return t(this.isSingleSchema?this.schema:this.schema[n],r||e)}}class c extends a{normalize(e,t,n,r,s,i,o,a){return Object.keys(e).reduce(((t,n,i)=>{const o=e[n];return null!=o?Object.assign({},t,{[n]:this.normalizeValue(o,e,n,r,s)}):t}),{})}denormalize(e,t,n){return Object.keys(e).reduce(((t,r)=>{const s=e[r],i=this.denormalizeValue(s,n);return i&&"symbol"!=typeof i?Object.assign({},t,{[r]:i}):t}),{})}queryKey(e,t,n,r){}}const u=e=>void 0!==e&&"symbol"!=typeof e;class h extends a{normalize(e,t,n,r,s,i,o,a){const c=(e=>Array.isArray(e)?e:Object.keys(e).map((t=>e[t])))(e);return c.map(((e,i)=>this.normalizeValue(e,t,n,r,s)))}denormalize(e,t,n){return e.map?e.map((e=>this.denormalizeValue(e,n))).filter(u):e}queryKey(e,t,n,r){}toJSON(){return[this.schema]}}const f=Symbol("INVALID");function l(e,t,n,r){if(o(t))return function(e,t,n){var r;let s;const i=Object.keys(e).reduce(((t,r)=>{const i=`${r}`,o=n(e[i],t.get(i));return"symbol"==typeof o&&(s=o),t.has(i)?t.set(i,o):t}),t);return null!=(r=s)?r:i}(e,t,r);const s=Object.assign({},t);for(const t of Object.keys(e)){const n=r(e[t],s[t]);if(void 0!==s[t]&&(s[t]=n),"symbol"==typeof n)return n}return s}class d{constructor(e){this.schema=void 0,this.define(e)}define(e){this.schema=Object.keys(e).reduce(((t,n)=>{const r=e[n];return Object.assign({},t,{[n]:r})}),this.schema||{})}normalize(...e){return((e,t,n,r,s,i)=>{const o=Object.assign({},t);return Object.keys(e).forEach((n=>{const r=e[n],a=i(r,t[n],t,n,s);void 0===a?delete o[n]:o[n]=a})),o})(this.schema,...e)}denormalize(e,t,n){return l(this.schema,e,0,n)}queryKey(e,t,n,r){return function(e,t,n,r,s){const i={};return Object.keys(e).forEach((o=>{i[o]=n(e[o],t,r,s)})),i}(this.schema,e,t,n,r)}}const p=(e,t)=>[...e,...t],m=(e,t)=>[...t,...e],y=(e,t)=>Object.assign({},e,t),g=e=>[...e],b=e=>Object.assign({},e);class v{addWith(e,t){return O(this,e,t)}createCollectionFilter(...e){return t=>Object.entries(t).every((([t,n])=>{var r;return this.nonFilterArgumentKeys(t)||`${e[0][t]}`===n||`${null==(r=e[1])?void 0:r[t]}`===n}))}nonFilterArgumentKeys(e){return e.startsWith("order")}constructor(e,t){if(this.schema=Array.isArray(e)?new h(e[0]):e,t?"nestKey"in t?this.nestKey=t.nestKey:this.argsKey="argsKey"in t?t.argsKey:e=>Object.assign({},e):this.argsKey=e=>Object.assign({},e),this.key=function(e){if(e instanceof h)return`[${e.schemaKey()}]`;if(e instanceof c)return`{${e.schemaKey()}}`;return`(${e.schemaKey()})`}(this.schema),null!=t&&t.nonFilterArgumentKeys){const{nonFilterArgumentKeys:e}=t;"function"==typeof e?this.nonFilterArgumentKeys=e:e instanceof RegExp?this.nonFilterArgumentKeys=t=>e.test(t):this.nonFilterArgumentKeys=t=>e.includes(t)}else null!=t&&t.createCollectionFilter&&(this.createCollectionFilter=t.createCollectionFilter.bind(this));this.schema instanceof h?(this.createIfValid=g,this.push=O(this,p),this.unshift=O(this,m)):e instanceof c&&(this.createIfValid=b,this.assign=O(this,y))}get cacheWith(){return this.schema.schema}toString(){return this.key}toJSON(){return{key:this.key,schema:this.schema.schema.toJSON()}}pk(e,t,n,r){const s=this.argsKey?this.argsKey(...r):this.nestKey(t,n);for(const e in s)["number","boolean"].includes(typeof s[e])&&(s[e]=`${s[e]}`);return function(e){const t=Object.keys(e).sort(),n={};for(const r of t)n[r]=e[r];return JSON.stringify(n)}(s)}normalize(e,t,n,r,s,i,o,a){const c=this.schema.normalize(e,t,n,r,s,i,o,a),u=this.pk(c,t,n,r);return i(this,c,u),u}merge(e,t){return t}shouldReorder(e,t,n,r){return t.fetchedAt<e.fetchedAt}mergeWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?this.merge(r,n):this.merge(n,r)}mergeMetaWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?e:t}queryKey(e,t,n,r){if(this.argsKey){const t=this.pk(void 0,void 0,"",e);if(n(this.key,t))return t}}denormalize(e,t,n){return this.schema.denormalize(e,t,n)}}function O(e,t,n){const r={merge:{value:t},normalize:{value:j},queryKey:{value:x}};return e.schema instanceof h&&(r.createIfValid={value:w},r.denormalize={value:E}),n&&(r.createCollectionFilter={value:n}),Object.create(e,r)}function x(){}function j(e,t,n,r,s,i,o,a){const c=this.schema.normalize(this.schema instanceof h&&!Array.isArray(e)?[e]:e,t,n,r,s,i,o,a),u=this.createCollectionFilter(...r),f=o(this.key);return f&&Object.keys(f).forEach((e=>{u(JSON.parse(e))&&i(this,c,e)})),c}function w(e){return Array.isArray(e)?[...e]:Object.assign({},e)}function E(e,t,n){return Array.isArray(e)?this.schema.denormalize(e,t,n):this.schema.denormalize([e],t,n)[0]}var k=t(n((function(e){e.exports=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n},e.exports.__esModule=!0,e.exports.default=e.exports})));const S=["pk","schema","key"];function A(e,t={}){class n extends e{static toString(){return this.key}static toJSON(){return{key:this.key,schema:this.schema}}static pk(e,t,n,r){return this.prototype.pk.call(e,t,n,r)}static shouldUpdate(e,t,n,r){return!0}static shouldReorder(e,t,n,r){return t.fetchedAt<e.fetchedAt}static merge(e,t){return Object.assign({},e,t)}static mergeWithStore(e,t,n,r){return this.shouldUpdate(e,t,n,r)?typeof r!=typeof n?r:this.shouldReorder(e,t,n,r)?this.merge(r,n):this.merge(n,r):n}static mergeMetaWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?e:t}static fromJS(e={}){const t=new this(e);return Object.assign(t,e),t}static createIfValid(e){if(!this.validate(e))return this.fromJS(e)}static process(e,t,n,r){return Object.assign({},e)}static normalize(e,t,n,r,s,i,o,a){const c=this.process(e,t,n,r);let u=this.pk(c,t,n,r);if(u=void 0===u||""===u||"undefined"===u?`MISS-${Math.random()}`:`${u}`,a(this.key,u,e))return u;return function(e){if(e){const t=new Error(e);throw t.status=400,t}}(this.validate(c)),Object.keys(this.schema).forEach((e=>{Object.hasOwn(c,e)&&(c[e]=s(this.schema[e],c[e],c,e,r))})),i(this,c,u),u}static validate(e){}static queryKey(e,t,n,r){if(!e[0])return;const s=function(e,t,n){if(["string","number"].includes(typeof t[0]))return`${t[0]}`;const r=e.pk(t[0],void 0,"",t);if(void 0!==r&&""!==r)return r;const s=(i=t[0],o=e.indexes,o?o.find((e=>Object.hasOwn(i,e))):void 0);var i,o;if(!s)return;const a=t[0][s];return n(e.key,s,a)[a]}(this,e,r);return n(this.key,s)?s:void 0}static denormalize(e,t,n){if("symbol"==typeof e)return e;for(const t of Object.keys(this.schema)){const r=n(this.schema[t],e[t]);if("symbol"==typeof r){if(this.defaults[t])return r;e[t]=void 0}else e[t]=r}return e}static get defaults(){return Object.hasOwn(this,"__defaults")||Object.defineProperty(this,"__defaults",{value:new this,writable:!0,configurable:!0}),this.__defaults}}const r=k(t,S);if(Object.assign(n,r),"schema"in t?n.schema=t.schema:e.schema||(n.schema={}),"pk"in t?"function"==typeof t.pk?n.prototype.pk=function(e,n){return t.pk(this,e,n)}:n.prototype.pk=function(){return this[t.pk]}:"function"!=typeof e.prototype.pk&&(n.prototype.pk=function(){return this.id}),"key"in t)Object.defineProperty(n,"key",{value:t.key,configurable:!0,writable:!0,enumerable:!0});else if(!("key"in e)){function s(e){Object.defineProperty(this,"key",{value:e,writable:!0,enumerable:!0,configurable:!0})}const i=function(){return"EntityMixin"===this.name?e.name:this.name},o="undefined"!=typeof document&&document.CLS_MANGLE?function(){return null==document.CLS_MANGLE||document.CLS_MANGLE(this),Object.defineProperty(n,"key",{get:i,set:s,enumerable:!0,configurable:!0}),i.call(this)}:i;Object.defineProperty(n,"key",{get:o,set:s,enumerable:!0,configurable:!0})}return n}var _=Object.freeze({__proto__:null,Union:class extends a{constructor(e,t){if(!t)throw new Error('Expected option "schemaAttribute" not found on UnionSchema.');super(e,t)}normalize(e,t,n,r,s,i,o,a){return this.normalizeValue(e,t,n,r,s)}denormalize(e,t,n){return this.denormalizeValue(e,n)}queryKey(e,t,n,r){if(!e[0])return;const s=this.getSchemaAttribute(e[0],void 0,""),i=this.schema[s];if(void 0===i)return;const o=t(i,e,n,r);return void 0!==o?{id:o,schema:s}:void 0}},Values:c,Array:h,All:class extends h{constructor(e,t){super(e,t)}normalize(e,t,n,r,s,i,o,a){super.normalize(e,t,n,r,s,i,o,a)}queryKey(e,t,n,r){if(this.isSingleSchema){const e=n(this.schema.key);return void 0===e?f:Object.values(e).map((e=>e&&this.schema.pk(e)))}let s=!1;const i=Object.values(this.schema).flatMap((e=>{const t=n(e.key);return void 0===t?[]:(s=!0,Object.values(t).map((t=>({id:t&&e.pk(t),schema:this.getSchemaAttribute(t,void 0,void 0)}))))}));return s?i:f}},Object:d,Invalidate:class{constructor(e){this._entity=e}get key(){return this._entity.key}normalize(e,t,n,r,s,i,o,a){const c=this._entity.process(e,t,n,r),u=this._entity.pk(c,t,n,r);return i(this,f,u),u}merge(e,t){return t}mergeWithStore(e,t,n,r){return this.merge(n,r)}mergeMetaWithStore(e,t,n,r){return t}queryKey(e,t,n,r){}denormalize(e,t,n){return n(this._entity,e)}_denormalizeNullable(){return{}}_normalizeNullable(){return{}}},Collection:v,EntityMixin:A,Entity:A,Query:class{constructor(e,t){this.schema=e,this.process=t}normalize(...e){return this.schema.normalize(...e)}denormalize(e,t,n){const r=n(this.schema,e);return"symbol"==typeof r?r:this.process(r,...t)}queryKey(e,t,n,r){return t(this.schema,e,n,r)}}});const P=class{};class R extends(A(P)){static process(e,t,n,r){return super.process(e,t,n,r)}}var T;const C="undefined"!=typeof document;let z=C&&!(null!=(T=document.querySelector("meta[http-equiv='Content-Security-Policy']"))&&T.getAttribute("content"));try{z||Function()}catch(e){z=!0,C&&console.error("Content Security Policy: The previous CSP log can be safely ignored - @data-client/endpoint will use setPrototypeOf instead")}var K;class $ extends Function{constructor(e,t){let n,r;return z?(n=(...e)=>n.fetch(...e),Object.setPrototypeOf(n,new.target.prototype)):(super("return arguments.callee.fetch.apply(arguments.callee, arguments)"),n=this),e&&(n.fetch=e),t&&"name"in t||!e||!e.name||"anonymous"===e.name||(r=e.name),Object.defineProperty(n,"name",{get(){return r||this.__name},set(e){this.__name=e}}),Object.assign(n,t),n}key(...e){return`${this.name} ${JSON.stringify(e)}`}testKey(e){return e.startsWith(this.name)}bind(e,...t){const n=this.fetch,r=this.key;return this.extend({fetch(){return n.apply(null!=e?e:this,t)},key(){return r.apply(this,t)}})}extend(e){class t extends this.constructor{}return Object.assign(t.prototype,this),new t(e.fetch,e)}}K=$,(()=>{if("undefined"!=typeof document&&document.FUNC_MANGLE){const e=K.prototype.key;K.prototype.key=function(...t){return null==document.FUNC_MANGLE||document.FUNC_MANGLE(this),this.prototype.key=e,e.call(this,...t)}}})();const N=$;function M(e,t){void 0===t&&(t={});for(var n=function(e){for(var t=[],n=0;n<e.length;){var r=e[n];if("*"!==r&&"+"!==r&&"?"!==r)if("\\"!==r)if("{"!==r)if("}"!==r)if(":"!==r)if("("!==r)t.push({type:"CHAR",index:n,value:e[n++]});else{var s=1,i="";if("?"===e[a=n+1])throw new TypeError('Pattern cannot start with "?" at '.concat(a));for(;a<e.length;)if("\\"!==e[a]){if(")"===e[a]){if(0==--s){a++;break}}else if("("===e[a]&&(s++,"?"!==e[a+1]))throw new TypeError("Capturing groups are not allowed at ".concat(a));i+=e[a++]}else i+=e[a++]+e[a++];if(s)throw new TypeError("Unbalanced pattern at ".concat(n));if(!i)throw new TypeError("Missing pattern at ".concat(n));t.push({type:"PATTERN",index:n,value:i}),n=a}else{for(var o="",a=n+1;a<e.length;){var c=e.charCodeAt(a);if(!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||95===c))break;o+=e[a++]}if(!o)throw new TypeError("Missing parameter name at ".concat(n));t.push({type:"NAME",index:n,value:o}),n=a}else t.push({type:"CLOSE",index:n,value:e[n++]});else t.push({type:"OPEN",index:n,value:e[n++]});else t.push({type:"ESCAPED_CHAR",index:n++,value:e[n++]});else t.push({type:"MODIFIER",index:n,value:e[n++]})}return t.push({type:"END",index:n,value:""}),t}(e),r=t.prefixes,s=void 0===r?"./":r,i=t.delimiter,o=void 0===i?"/#?":i,a=[],c=0,u=0,h="",f=function(e){if(u<n.length&&n[u].type===e)return n[u++].value},l=function(e){var t=f(e);if(void 0!==t)return t;var r=n[u],s=r.type,i=r.index;throw new TypeError("Unexpected ".concat(s," at ").concat(i,", expected ").concat(e))},d=function(){for(var e,t="";e=f("CHAR")||f("ESCAPED_CHAR");)t+=e;return t},p=function(e){var t=a[a.length-1],n=e||(t&&"string"==typeof t?t:"");if(t&&!n)throw new TypeError('Must have text between two parameters, missing text after "'.concat(t.name,'"'));return!n||function(e){for(var t=0,n=o;t<n.length;t++){var r=n[t];if(e.indexOf(r)>-1)return!0}return!1}(n)?"[^".concat(I(o),"]+?"):"(?:(?!".concat(I(n),")[^").concat(I(o),"])+?")};u<n.length;){var m=f("CHAR"),y=f("NAME"),g=f("PATTERN");if(y||g){var b=m||"";-1===s.indexOf(b)&&(h+=b,b=""),h&&(a.push(h),h=""),a.push({name:y||c++,prefix:b,suffix:"",pattern:g||p(b),modifier:f("MODIFIER")||""})}else{var v=m||f("ESCAPED_CHAR");if(v)h+=v;else if(h&&(a.push(h),h=""),f("OPEN")){b=d();var O=f("NAME")||"",x=f("PATTERN")||"",j=d();l("CLOSE"),a.push({name:O||(x?c++:""),pattern:O&&!x?p(b):x,prefix:b,suffix:j,modifier:f("MODIFIER")||""})}else l("END")}}return a}function F(e,t){return function(e,t){void 0===t&&(t={});var n=q(t),r=t.encode,s=void 0===r?function(e){return e}:r,i=t.validate,o=void 0===i||i,a=e.map((function(e){if("object"==typeof e)return new RegExp("^(?:".concat(e.pattern,")$"),n)}));return function(t){for(var n="",r=0;r<e.length;r++){var i=e[r];if("string"!=typeof i){var c=t?t[i.name]:void 0,u="?"===i.modifier||"*"===i.modifier,h="*"===i.modifier||"+"===i.modifier;if(Array.isArray(c)){if(!h)throw new TypeError('Expected "'.concat(i.name,'" to not repeat, but got an array'));if(0===c.length){if(u)continue;throw new TypeError('Expected "'.concat(i.name,'" to not be empty'))}for(var f=0;f<c.length;f++){var l=s(c[f],i);if(o&&!a[r].test(l))throw new TypeError('Expected all "'.concat(i.name,'" to match "').concat(i.pattern,'", but got "').concat(l,'"'));n+=i.prefix+l+i.suffix}}else if("string"!=typeof c&&"number"!=typeof c){if(!u){var d=h?"an array":"a string";throw new TypeError('Expected "'.concat(i.name,'" to be ').concat(d))}}else{l=s(String(c),i);if(o&&!a[r].test(l))throw new TypeError('Expected "'.concat(i.name,'" to match "').concat(i.pattern,'", but got "').concat(l,'"'));n+=i.prefix+l+i.suffix}}else n+=i}return n}}(M(e,t),t)}function I(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function q(e){return e&&e.sensitive?"":"i"}function L(e,t,n){return function(e,t,n){void 0===n&&(n={});for(var r=n.strict,s=void 0!==r&&r,i=n.start,o=void 0===i||i,a=n.end,c=void 0===a||a,u=n.encode,h=void 0===u?function(e){return e}:u,f=n.delimiter,l=void 0===f?"/#?":f,d=n.endsWith,p="[".concat(I(void 0===d?"":d),"]|$"),m="[".concat(I(l),"]"),y=o?"^":"",g=0,b=e;g<b.length;g++){var v=b[g];if("string"==typeof v)y+=I(h(v));else{var O=I(h(v.prefix)),x=I(h(v.suffix));if(v.pattern)if(t&&t.push(v),O||x)if("+"===v.modifier||"*"===v.modifier){var j="*"===v.modifier?"?":"";y+="(?:".concat(O,"((?:").concat(v.pattern,")(?:").concat(x).concat(O,"(?:").concat(v.pattern,"))*)").concat(x,")").concat(j)}else y+="(?:".concat(O,"(").concat(v.pattern,")").concat(x,")").concat(v.modifier);else{if("+"===v.modifier||"*"===v.modifier)throw new TypeError('Can not repeat "'.concat(v.name,'" without a prefix and suffix'));y+="(".concat(v.pattern,")").concat(v.modifier)}else y+="(?:".concat(O).concat(x,")").concat(v.modifier)}}if(c)s||(y+="".concat(m,"?")),y+=n.endsWith?"(?=".concat(p,")"):"$";else{var w=e[e.length-1],E="string"==typeof w?m.indexOf(w[w.length-1])>-1:void 0===w;s||(y+="(?:".concat(m,"(?=").concat(p,"))?")),E||(y+="(?=".concat(m,"|").concat(p,")"))}return new RegExp(y,q(n))}(M(e,n),t,n)}function U(e,t,n){return e instanceof RegExp?function(e,t){if(!t)return e;for(var n=/\((?:\?<(.*?)>)?(?!\?)/g,r=0,s=n.exec(e.source);s;)t.push({name:s[1]||r++,prefix:"",suffix:"",modifier:"",pattern:""}),s=n.exec(e.source);return e}(e,t):Array.isArray(e)?function(e,t,n){var r=e.map((function(e){return U(e,t,n).source}));return new RegExp("(?:".concat(r.join("|"),")"),q(n))}(e,t,n):L(e,t,n)}function D(e,t){if("object"!=typeof e||void 0===e||Array.isArray(e))return;if(e instanceof v)return t(e);const n=Object.assign({},e instanceof d?e.schema:e);for(const e in n){if(!n[e])continue;const r=D(n[e],t);if(r)return r}}function V(e,t){if("object"!=typeof e||void 0===e)return e;if(e instanceof v)return t(e);const n=Object.assign({},e instanceof d?e.schema:e);for(const e in n)n[e]&&(n[e]=V(n[e],t));return n}class W extends Error{constructor(e){super(`${e.url}: ${e.statusText||`Status not 'ok': ${e.status}`}`),this.name="NetworkError",this.status=e.status,this.response=e}}function J(e,t){const n=new Set(e),r=[...e];for(const e of t)n.has(e)||r.push(e);return r}const G=Object.create(null);function H(e){return e in G||(G[e]=F(e,{encode:encodeURIComponent,validate:!1})),G[e]}const B=Object.create(null);function Q(e){return e in B||(B[e]=new Set(M(e).map((e=>"string"==typeof e?e:`${e.name}`)))),B[e]}const X=Object.prototype,Y=Object.getPrototypeOf;var Z=i("hasBody");class ee extends ${constructor(e){var t;super(null!=(t=e.fetch)?t:async function(...e){const t=s(this,Z)[Z]&&e.length<2?{}:e[0]||{},n=s(this,Z)[Z]?e[e.length-1]:void 0;return this.fetchResponse(this.url(t),await this.getRequestInit(n)).then((e=>this.parseResponse(e))).then((t=>this.process(t,...e)))},e),Object.defineProperty(this,Z,{writable:!0,value:void 0}),(!("sideEffect"in this)||"method"in e&&!("sideEffect"in e))&&(this.sideEffect="GET"!==e.method&&void 0!==e.method||void 0),void 0===this.method&&(this.method=this.sideEffect?"POST":"GET"),void 0===this.urlPrefix&&(this.urlPrefix=""),s(this,Z)[Z]=!("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(...e){return`${this.method} ${this.url(s(this,Z)[Z]&&e.length<2?{}:e[0]||{})}`}url(e={}){const t=H(this.path)(e),n=Q(this.path),r={};return Object.keys(e).forEach((t=>{n.has(t)||(r[t]=e[t])})),Object.keys(r).length?`${this.urlPrefix}${t}?${this.searchToString(r)}`:`${this.urlPrefix}${t}`}searchToString(e){return function(e){const t=new URLSearchParams(e);return t.sort(),t.toString()}(e)}getHeaders(e){return e}async getRequestInit(e){const t=null!==(n=e)&&"object"==typeof n&&Y(n)===X;var n;t&&(e=JSON.stringify(e));const r=Object.assign({},this.requestInit,{method:this.method,signal:this.signal,body:e});return e&&!t||(r.headers=Object.assign({"Content-Type":"application/json"},r.headers)),r.headers=await this.getHeaders(r.headers),r}fetchResponse(e,t){return fetch(e,t).then((e=>{if(!e.ok)throw new W(e);return e})).catch((e=>{throw e instanceof TypeError&&(e.status=500),e}))}parseResponse(e){var t;return 204===e.status?Promise.resolve(null):null!=(t=e.headers.get("content-type"))&&t.includes("json")?e.json().catch((e=>{throw e.status=400,e})):e.text().then((t=>{if(["string","undefined"].includes(typeof this.schema)||null===this.schema||this.process!==ee.prototype.process)return t;const n=new W(e);throw n.status=404,n.message=`Unexpected text response for schema ${this.schema}`,n}))}process(e){return e}errorPolicy(e){return e.status>=500?"soft":void 0}get pathRegex(){return U(this.path)}testKey(e){const t=this.method+" "+this.urlPrefix;if(!e.startsWith(t))return!1;let n=e.lastIndexOf("?");return-1===n&&(n=void 0),this.pathRegex.test(e.substring(t.length,n))}extend(e){class t extends this.constructor{}return Object.assign(t.prototype,this),new t(Object.assign({fetch:this.fetch},e))}paginated(e){if("string"==typeof e){const t=e;e=e=>{let n=Object.assign({},(r(e),e));return delete n[t],[n]}}let t=!1;const n=V(this.schema,(n=>(t=!0,function(e,t){return Object.create(t,{name:{value:`Pagination(${t.schema})`},merge:{value:J},pk:{value:function(n,r,s,i){return t.pk.call(this,n,r,s,e(...i))}}})}(e,n))));if(!t)throw new Error("Missing Collection");const s=this;return this.extend({schema:n,key(...t){return s.key.call(this,...e(...t))},name:this.name+".getPage"})}get getPage(){return this.paginated(this.paginationField)}get push(){return this.extend({method:"POST",schema:D(this.schema,(e=>e.push)),name:this.name+".create"})}get unshift(){return this.extend({method:"POST",schema:D(this.schema,(e=>e.unshift)),name:this.name+".create"})}get assign(){return this.extend({method:"POST",schema:D(this.schema,(e=>e.assign)),name:this.name+".create"})}}const te=["path","schema","Endpoint","Collection","optimistic","paginationField"],{Invalidate:ne,Collection:re}=_;function se(e){let{path:t,schema:n,Endpoint:r=ee,Collection:s=re,optimistic:i,paginationField:o}=e,a=k(e,te);const c=function(e){const t=e.lastIndexOf(":");if(-1===t)throw new Error("Resource path requires at least one :parameter");let n=e.substring(0,t);return"/"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n}(t),u=e=>`${null==n?void 0:n.name}.${e}`;function h(e,t,n){e[t]=e[t].extend(n)}const f=Object.assign({},a),l=Object.assign({},a),d=new r(Object.assign({},a,{path:t,schema:n,name:u("get")}));i&&(f.getOptimisticResponse=ie,l.getOptimisticResponse=function(e){return function(t,n,r){const s=t.get(e,n);if(!s)throw t.abort;return Object.assign({},n,s,ae(r))}}(n));const p=new r(Object.assign({},f,{paginationField:o,path:c,schema:new s([n]),name:u("getList")}));return{get:d,getList:p,create:p.push.extend({name:u("create")}),update:new r(Object.assign({},f,{path:t,schema:n,method:"PUT",name:u("update")})),partialUpdate:new r(Object.assign({},l,{path:t,schema:n,method:"PATCH",name:u("partialUpdate")})),delete:new r(Object.assign({},f,{path:t,schema:n.process?new ne(n):n,method:"DELETE",name:u("delete"),process:(e,t)=>e&&Object.keys(e).length?e:t,getOptimisticResponse:i?oe:void 0})),extend(...e){if("string"==typeof e[0]){const[t,n]=e;if(t in this){const e=Object.assign({},this);return h(e,t,n),e}return Object.assign({},this,{[t]:this.get.extend(n)})}if("function"==typeof e[0]){const t=e[0](this);return Object.assign({},this,t)}const t=e[0],n=Object.assign({},this);for(const e in t)h(n,e,t[e]);return n}}}function ie(e,t,n){return Object.assign({},t,ae(n))}function oe(e,t){return t}function ae(e){return e instanceof FormData?Object.fromEntries(e.entries()):e}Object.hasOwn=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.Endpoint=$,e.Entity=R,e.EntityMixin=A,e.ExtendableEndpoint=N,e.INVALID=f,e.NetworkError=W,e.RestEndpoint=ee,e.createResource=se,e.getUrlBase=H,e.getUrlTokens=Q,e.hookifyResource=function(e,t){const n={};return Object.keys(e).forEach((r=>{const s=e[r];var i;void 0!==s.extend&&(n[`use${i=r,i.charAt(0).toUpperCase()+i.slice(1)}`]=()=>{const e=t();return s.extend({requestInit:e})})})),n},e.resource=se,e.schema=_,e.validateRequired=function(e,t){let n="";if(Object.keys(t).some((t=>!Object.hasOwn(e,t)&&(n=t,!0))))return`Missing key ${n}`},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Rest={})}(this,(function(t){"use strict";function e(){return e=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},e.apply(null,arguments)}function r(t,e){if(!{}.hasOwnProperty.call(t,e))throw new TypeError("attempted to use private field on non-instance");return t}var n=0;function i(t){return"__private_"+n+++"_"+t}var o,u,s,c,a,f,h,l,p="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function d(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function m(){return u?o:(u=1,o=function(t){try{return!!t()}catch(t){return!0}})}function y(){return c?s:(c=1,s=!m()((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})))}function v(){if(f)return a;f=1;var t=y(),e=Function.prototype,r=e.call,n=t&&e.bind.bind(r,r);return a=t?n:function(t){return function(){return r.apply(t,arguments)}},a}function g(){return l?h:(l=1,h=v()({}.isPrototypeOf))}var b,w,O,E,S,j,x,k,A,P,T={};function _(){if(w)return b;w=1;var t=function(t){return t&&t.Math===Math&&t};return b=t("object"==typeof globalThis&&globalThis)||t("object"==typeof window&&window)||t("object"==typeof self&&self)||t("object"==typeof p&&p)||t("object"==typeof b&&b)||function(){return this}()||Function("return this")()}function R(){if(E)return O;E=1;var t=y(),e=Function.prototype,r=e.apply,n=e.call;return O="object"==typeof Reflect&&Reflect.apply||(t?n.bind(r):function(){return n.apply(r,arguments)}),O}function C(){if(j)return S;j=1;var t=v(),e=t({}.toString),r=t("".slice);return S=function(t){return r(e(t),8,-1)}}function N(){if(k)return x;k=1;var t=C(),e=v();return x=function(r){if("Function"===t(r))return e(r)}}function z(){if(P)return A;P=1;var t="object"==typeof document&&document.all;return A=void 0===t&&void 0!==t?function(e){return"function"==typeof e||e===t}:function(t){return"function"==typeof t}}var M,K,$,F,I={};function D(){return K?M:(K=1,M=!m()((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})))}function L(){if(F)return $;F=1;var t=y(),e=Function.prototype.call;return $=t?e.bind(e):function(){return e.apply(e,arguments)},$}var U,q,V,W,G,J,H,B,Q,Y,X,Z,tt,et,rt,nt,it,ot,ut,st,ct,at,ft,ht,lt,pt,dt,mt,yt,vt,gt,bt,wt,Ot,Et,St={};function jt(){if(U)return St;U=1;var t={}.propertyIsEnumerable,e=Object.getOwnPropertyDescriptor,r=e&&!t.call({1:2},1);return St.f=r?function(t){var r=e(this,t);return!!r&&r.enumerable}:t,St}function xt(){return V?q:(V=1,q=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}})}function kt(){if(G)return W;G=1;var t=v(),e=m(),r=C(),n=Object,i=t("".split);return W=e((function(){return!n("z").propertyIsEnumerable(0)}))?function(t){return"String"===r(t)?i(t,""):n(t)}:n}function At(){return H?J:(H=1,J=function(t){return null==t})}function Pt(){if(Q)return B;Q=1;var t=At(),e=TypeError;return B=function(r){if(t(r))throw new e("Can't call method on "+r);return r}}function Tt(){if(X)return Y;X=1;var t=kt(),e=Pt();return Y=function(r){return t(e(r))}}function _t(){if(tt)return Z;tt=1;var t=z();return Z=function(e){return"object"==typeof e?null!==e:t(e)}}function Rt(){return rt?et:(rt=1,et={})}function Ct(){if(it)return nt;it=1;var t=Rt(),e=_(),r=z(),n=function(t){return r(t)?t:void 0};return nt=function(r,i){return arguments.length<2?n(t[r])||n(e[r]):t[r]&&t[r][i]||e[r]&&e[r][i]},nt}function Nt(){if(ut)return ot;ut=1;var t=_().navigator,e=t&&t.userAgent;return ot=e?String(e):""}function zt(){if(ct)return st;ct=1;var t,e,r=_(),n=Nt(),i=r.process,o=r.Deno,u=i&&i.versions||o&&o.version,s=u&&u.v8;return s&&(e=(t=s.split("."))[0]>0&&t[0]<4?1:+(t[0]+t[1])),!e&&n&&(!(t=n.match(/Edge\/(\d+)/))||t[1]>=74)&&(t=n.match(/Chrome\/(\d+)/))&&(e=+t[1]),st=e}function Mt(){if(ft)return at;ft=1;var t=zt(),e=m(),r=_().String;return at=!!Object.getOwnPropertySymbols&&!e((function(){var e=Symbol("symbol detection");return!r(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&t&&t<41}))}function Kt(){return lt?ht:(lt=1,ht=Mt()&&!Symbol.sham&&"symbol"==typeof Symbol.iterator)}function $t(){if(dt)return pt;dt=1;var t=Ct(),e=z(),r=g(),n=Object;return pt=Kt()?function(t){return"symbol"==typeof t}:function(i){var o=t("Symbol");return e(o)&&r(o.prototype,n(i))}}function Ft(){if(yt)return mt;yt=1;var t=String;return mt=function(e){try{return t(e)}catch(t){return"Object"}}}function It(){if(gt)return vt;gt=1;var t=z(),e=Ft(),r=TypeError;return vt=function(n){if(t(n))return n;throw new r(e(n)+" is not a function")}}function Dt(){if(wt)return bt;wt=1;var t=It(),e=At();return bt=function(r,n){var i=r[n];return e(i)?void 0:t(i)}}function Lt(){if(Et)return Ot;Et=1;var t=L(),e=z(),r=_t(),n=TypeError;return Ot=function(i,o){var u,s;if("string"===o&&e(u=i.toString)&&!r(s=t(u,i)))return s;if(e(u=i.valueOf)&&!r(s=t(u,i)))return s;if("string"!==o&&e(u=i.toString)&&!r(s=t(u,i)))return s;throw new n("Can't convert object to primitive value")}}var Ut,qt,Vt,Wt,Gt,Jt,Ht,Bt,Qt,Yt,Xt,Zt,te,ee,re,ne,ie,oe,ue,se,ce,ae,fe,he,le,pe,de,me,ye={exports:{}};function ve(){return qt?Ut:(qt=1,Ut=!0)}function ge(){if(Wt)return Vt;Wt=1;var t=_(),e=Object.defineProperty;return Vt=function(r,n){try{e(t,r,{value:n,configurable:!0,writable:!0})}catch(e){t[r]=n}return n}}function be(){if(Gt)return ye.exports;Gt=1;var t=ve(),e=_(),r=ge(),n="__core-js_shared__",i=ye.exports=e[n]||r(n,{});return(i.versions||(i.versions=[])).push({version:"3.40.0",mode:t?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE",source:"https://github.com/zloirock/core-js"}),ye.exports}function we(){if(Ht)return Jt;Ht=1;var t=be();return Jt=function(e,r){return t[e]||(t[e]=r||{})}}function Oe(){if(Qt)return Bt;Qt=1;var t=Pt(),e=Object;return Bt=function(r){return e(t(r))}}function Ee(){if(Xt)return Yt;Xt=1;var t=v(),e=Oe(),r=t({}.hasOwnProperty);return Yt=Object.hasOwn||function(t,n){return r(e(t),n)}}function Se(){if(te)return Zt;te=1;var t=v(),e=0,r=Math.random(),n=t(1..toString);return Zt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+n(++e+r,36)}}function je(){if(re)return ee;re=1;var t=_(),e=we(),r=Ee(),n=Se(),i=Mt(),o=Kt(),u=t.Symbol,s=e("wks"),c=o?u.for||u:u&&u.withoutSetter||n;return ee=function(t){return r(s,t)||(s[t]=i&&r(u,t)?u[t]:c("Symbol."+t)),s[t]}}function xe(){if(ie)return ne;ie=1;var t=L(),e=_t(),r=$t(),n=Dt(),i=Lt(),o=TypeError,u=je()("toPrimitive");return ne=function(s,c){if(!e(s)||r(s))return s;var a,f=n(s,u);if(f){if(void 0===c&&(c="default"),a=t(f,s,c),!e(a)||r(a))return a;throw new o("Can't convert object to primitive value")}return void 0===c&&(c="number"),i(s,c)}}function ke(){if(ue)return oe;ue=1;var t=xe(),e=$t();return oe=function(r){var n=t(r,"string");return e(n)?n:n+""}}function Ae(){if(ce)return se;ce=1;var t=_(),e=_t(),r=t.document,n=e(r)&&e(r.createElement);return se=function(t){return n?r.createElement(t):{}}}function Pe(){if(fe)return ae;fe=1;var t=D(),e=m(),r=Ae();return ae=!t&&!e((function(){return 7!==Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a}))}function Te(){if(he)return I;he=1;var t=D(),e=L(),r=jt(),n=xt(),i=Tt(),o=ke(),u=Ee(),s=Pe(),c=Object.getOwnPropertyDescriptor;return I.f=t?c:function(t,a){if(t=i(t),a=o(a),s)try{return c(t,a)}catch(t){}if(u(t,a))return n(!e(r.f,t,a),t[a])},I}function _e(){if(pe)return le;pe=1;var t=m(),e=z(),r=/#|\.prototype\./,n=function(r,n){var c=o[i(r)];return c===s||c!==u&&(e(n)?t(n):!!n)},i=n.normalize=function(t){return String(t).replace(r,".").toLowerCase()},o=n.data={},u=n.NATIVE="N",s=n.POLYFILL="P";return le=n}function Re(){if(me)return de;me=1;var t=N(),e=It(),r=y(),n=t(t.bind);return de=function(t,i){return e(t),void 0===i?t:r?n(t,i):function(){return t.apply(i,arguments)}},de}var Ce,Ne,ze,Me,Ke,$e,Fe,Ie,De,Le,Ue,qe,Ve,We,Ge,Je,He,Be,Qe,Ye,Xe,Ze,tr,er,rr,nr,ir,or,ur,sr,cr,ar,fr,hr,lr={};function pr(){return Ne?Ce:(Ne=1,Ce=D()&&m()((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})))}function dr(){if(Me)return ze;Me=1;var t=_t(),e=String,r=TypeError;return ze=function(n){if(t(n))return n;throw new r(e(n)+" is not an object")}}function mr(){if(Ke)return lr;Ke=1;var t=D(),e=Pe(),r=pr(),n=dr(),i=ke(),o=TypeError,u=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c="enumerable",a="configurable",f="writable";return lr.f=t?r?function(t,e,r){if(n(t),e=i(e),n(r),"function"==typeof t&&"prototype"===e&&"value"in r&&f in r&&!r[f]){var o=s(t,e);o&&o[f]&&(t[e]=r.value,r={configurable:a in r?r[a]:o[a],enumerable:c in r?r[c]:o[c],writable:!1})}return u(t,e,r)}:u:function(t,r,s){if(n(t),r=i(r),n(s),e)try{return u(t,r,s)}catch(t){}if("get"in s||"set"in s)throw new o("Accessors not supported");return"value"in s&&(t[r]=s.value),t},lr}function yr(){if(Fe)return $e;Fe=1;var t=D(),e=mr(),r=xt();return $e=t?function(t,n,i){return e.f(t,n,r(1,i))}:function(t,e,r){return t[e]=r,t}}function vr(){if(De)return Ie;De=1;var t=_(),e=R(),r=N(),n=z(),i=Te().f,o=_e(),u=Rt(),s=Re(),c=yr(),a=Ee(),f=function(t){var r=function r(n,i,o){if(this instanceof r){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,i)}return new t(n,i,o)}return e(t,this,arguments)};return r.prototype=t.prototype,r};return Ie=function(e,h){var l,p,d,m,y,v,g,b,w,O=e.target,E=e.global,S=e.stat,j=e.proto,x=E?t:S?t[O]:t[O]&&t[O].prototype,k=E?u:u[O]||c(u,O,{})[O],A=k.prototype;for(m in h)p=!(l=o(E?m:O+(S?".":"#")+m,e.forced))&&x&&a(x,m),v=k[m],p&&(g=e.dontCallGetSet?(w=i(x,m))&&w.value:x[m]),y=p&&g?g:h[m],(l||j||typeof v!=typeof y)&&(b=e.bind&&p?s(y,t):e.wrap&&p?f(y):j&&n(y)?r(y):y,(e.sham||y&&y.sham||v&&v.sham)&&c(b,"sham",!0),c(k,m,b),j&&(a(u,d=O+"Prototype")||c(u,d,{}),c(u[d],m,y),e.real&&A&&(l||!A[m])&&c(A,m,y)))}}function gr(){if(Ue)return Le;Ue=1;var t=Math.ceil,e=Math.floor;return Le=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}}function br(){if(Ve)return qe;Ve=1;var t=gr();return qe=function(e){var r=+e;return r!=r||0===r?0:t(r)}}function wr(){if(Ge)return We;Ge=1;var t=br(),e=Math.min;return We=function(r){var n=t(r);return n>0?e(n,9007199254740991):0}}function Or(){if(He)return Je;He=1;var t=wr();return Je=function(e){return t(e.length)}}function Er(){if(Qe)return Be;Qe=1;var t=It(),e=Oe(),r=kt(),n=Or(),i=TypeError,o="Reduce of empty array with no initial value",u=function(u){return function(s,c,a,f){var h=e(s),l=r(h),p=n(h);if(t(c),0===p&&a<2)throw new i(o);var d=u?p-1:0,m=u?-1:1;if(a<2)for(;;){if(d in l){f=l[d],d+=m;break}if(d+=m,u?d<0:p<=d)throw new i(o)}for(;u?d>=0:p>d;d+=m)d in l&&(f=c(f,l[d],d,h));return f}};return Be={left:u(!1),right:u(!0)}}function Sr(){if(Xe)return Ye;Xe=1;var t=m();return Ye=function(e,r){var n=[][e];return!!n&&t((function(){n.call(null,r||function(){return 1},1)}))}}function jr(){if(tr)return Ze;tr=1;var t=_(),e=Nt(),r=C(),n=function(t){return e.slice(0,t.length)===t};return Ze=n("Bun/")?"BUN":n("Cloudflare-Workers")?"CLOUDFLARE":n("Deno/")?"DENO":n("Node.js/")?"NODE":t.Bun&&"string"==typeof Bun.version?"BUN":t.Deno&&"object"==typeof Deno.version?"DENO":"process"===r(t.process)?"NODE":t.window&&t.document?"BROWSER":"REST"}function xr(){return rr?er:(rr=1,er="NODE"===jr())}function kr(){if(or)return ir;or=1;var t=_(),e=Rt();return ir=function(r,n){var i=e[r+"Prototype"],o=i&&i[n];if(o)return o;var u=t[r],s=u&&u.prototype;return s&&s[n]}}function Ar(){return sr?ur:(sr=1,function(){if(nr)return T;nr=1;var t=vr(),e=Er().left,r=Sr(),n=zt();t({target:"Array",proto:!0,forced:!xr()&&n>79&&n<83||!r("reduce")},{reduce:function(t){var r=arguments.length;return e(this,t,r,r>1?arguments[1]:void 0)}})}(),ur=kr()("Array","reduce"))}function Pr(){if(ar)return cr;ar=1;var t=g(),e=Ar(),r=Array.prototype;return cr=function(n){var i=n.reduce;return n===r||t(r,n)&&i===r.reduce?e:i}}function Tr(){return hr?fr:(hr=1,fr=Pr())}var _r=d(Tr());function Rr(t){return!("function"!=typeof t.hasOwnProperty||!(Object.hasOwnProperty.call(t,"__ownerID")||t._map&&Object.hasOwnProperty.call(t._map,"__ownerID")))}class Cr{constructor(t,e){this.schema=void 0,e&&(this._schemaAttribute="string"==typeof e?t=>t[e]:e),this.define(t)}get isSingleSchema(){return!this._schemaAttribute}define(t){"_schemaAttribute"in t&&!this._schemaAttribute?(this.schema=t.schema,this._schemaAttribute=t._schemaAttribute):this.schema=t}getSchemaAttribute(t,e,r){return!this.isSingleSchema&&this._schemaAttribute(t,e,r)}inferSchema(t,e,r){if(this.isSingleSchema)return this.schema;const n=this.getSchemaAttribute(t,e,r);return this.schema[n]}schemaKey(){return this.isSingleSchema?this.schema.key:Object.values(this.schema).join(";")}normalizeValue(t,e,r,n,i){if(!t)return t;const o=this.inferSchema(t,e,r);if(!o)return t;const u=i(o,t,e,r,n);return this.isSingleSchema||null==u?u:{id:u,schema:this.getSchemaAttribute(t,e,r)}}denormalizeValue(t,e){const r=!this.isSingleSchema&&t&&(Rr(t)?t.get("schema"):t.schema);if(!this.isSingleSchema&&!r){if("object"==typeof t&&null!==t){const r=this.inferSchema(t,void 0,void 0);if(r)return e(r,t)}return t}const n=this.isSingleSchema?void 0:Rr(t)?t.get("id"):t.id;return e(this.isSingleSchema?this.schema:this.schema[r],n||t)}}class Nr extends Cr{normalize(t,r,n,i,o,u,s,c){var a;return _r(a=Object.keys(t)).call(a,((r,n,u)=>{const s=t[n];return null!=s?e({},r,{[n]:this.normalizeValue(s,t,n,i,o)}):r}),{})}denormalize(t,r,n){var i;return _r(i=Object.keys(t)).call(i,((r,i)=>{const o=t[i],u=this.denormalizeValue(o,n);return u&&"symbol"!=typeof u?e({},r,{[i]:u}):r}),{})}queryKey(t,e,r,n){}}const zr=t=>void 0!==t&&"symbol"!=typeof t;class Mr extends Cr{normalize(t,e,r,n,i,o,u,s){const c=(t=>Array.isArray(t)?t:Object.keys(t).map((e=>t[e])))(t);return c.map(((t,o)=>this.normalizeValue(t,e,r,n,i)))}denormalize(t,e,r){return t.map?t.map((t=>this.denormalizeValue(t,r))).filter(zr):t}queryKey(t,e,r,n){}toJSON(){return[this.schema]}}const Kr=Symbol("INVALID");function $r(t,r,n,i){if(Rr(r))return function(t,e,r){var n;let i;const o=_r(n=Object.keys(t)).call(n,((e,n)=>{const o=`${n}`,u=r(t[o],e.get(o));return"symbol"==typeof u&&(i=u),e.has(o)?e.set(o,u):e}),e);return null!=i?i:o}(t,r,i);const o=e({},r);for(const e of Object.keys(t)){const r=i(t[e],o[e]);if(void 0!==o[e]&&(o[e]=r),"symbol"==typeof r)return r}return o}class Fr{constructor(t){this.schema=void 0,this.define(t)}define(t){var r;this.schema=_r(r=Object.keys(t)).call(r,((r,n)=>{const i=t[n];return e({},r,{[n]:i})}),this.schema||{})}normalize(...t){return((t,r,n,i,o,u)=>{const s=e({},r);return Object.keys(t).forEach((e=>{const n=t[e],i=u(n,r[e],r,e,o);void 0===i?delete s[e]:s[e]=i})),s})(this.schema,...t)}denormalize(t,e,r){return $r(this.schema,t,0,r)}queryKey(t,e,r,n){return function(t,e,r,n,i){const o={};return Object.keys(t).forEach((u=>{o[u]=r(t[u],e,n,i)})),o}(this.schema,t,e,r,n)}}var Ir,Dr,Lr,Ur,qr,Vr,Wr,Gr,Jr,Hr={};function Br(){if(Dr)return Ir;Dr=1;var t=br(),e=Math.max,r=Math.min;return Ir=function(n,i){var o=t(n);return o<0?e(o+i,0):r(o,i)}}function Qr(){if(Ur)return Lr;Ur=1;var t=Tt(),e=Br(),r=Or(),n=function(n){return function(i,o,u){var s=t(i),c=r(s);if(0===c)return!n&&-1;var a,f=e(u,c);if(n&&o!=o){for(;c>f;)if((a=s[f++])!=a)return!0}else for(;c>f;f++)if((n||f in s)&&s[f]===o)return n||f||0;return!n&&-1}};return Lr={includes:n(!0),indexOf:n(!1)}}function Yr(){return Vr?qr:(Vr=1,qr=function(){})}function Xr(){return Jr?Gr:(Jr=1,function(){if(Wr)return Hr;Wr=1;var t=vr(),e=Qr().includes,r=m(),n=Yr();t({target:"Array",proto:!0,forced:r((function(){return!Array(1).includes()}))},{includes:function(t){return e(this,t,arguments.length>1?arguments[1]:void 0)}}),n("includes")}(),Gr=kr()("Array","includes"))}var Zr,tn,en,rn,nn,on,un,sn,cn,an,fn,hn,ln,pn,dn,mn,yn,vn,gn,bn={};function wn(){if(tn)return Zr;tn=1;var t=_t(),e=C(),r=je()("match");return Zr=function(n){var i;return t(n)&&(void 0!==(i=n[r])?!!i:"RegExp"===e(n))}}function On(){if(rn)return en;rn=1;var t=wn(),e=TypeError;return en=function(r){if(t(r))throw new e("The method doesn't accept regular expressions");return r}}function En(){if(on)return nn;on=1;var t={};return t[je()("toStringTag")]="z",nn="[object z]"===String(t)}function Sn(){if(sn)return un;sn=1;var t=En(),e=z(),r=C(),n=je()("toStringTag"),i=Object,o="Arguments"===r(function(){return arguments}());return un=t?r:function(t){var u,s,c;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(s=function(t,e){try{return t[e]}catch(t){}}(u=i(t),n))?s:o?r(u):"Object"===(c=r(u))&&e(u.callee)?"Arguments":c}}function jn(){if(an)return cn;an=1;var t=Sn(),e=String;return cn=function(r){if("Symbol"===t(r))throw new TypeError("Cannot convert a Symbol value to a string");return e(r)}}function xn(){if(hn)return fn;hn=1;var t=je()("match");return fn=function(e){var r=/./;try{"/./"[e](r)}catch(n){try{return r[t]=!1,"/./"[e](r)}catch(t){}}return!1}}function kn(){return dn?pn:(dn=1,function(){if(ln)return bn;ln=1;var t=vr(),e=v(),r=On(),n=Pt(),i=jn(),o=xn(),u=e("".indexOf);t({target:"String",proto:!0,forced:!o("includes")},{includes:function(t){return!!~u(i(n(this)),i(r(t)),arguments.length>1?arguments[1]:void 0)}})}(),pn=kr()("String","includes"))}function An(){if(yn)return mn;yn=1;var t=g(),e=Xr(),r=kn(),n=Array.prototype,i=String.prototype;return mn=function(o){var u=o.includes;return o===n||t(n,o)&&u===n.includes?e:"string"==typeof o||o===i||t(i,o)&&u===i.includes?r:u}}function Pn(){return gn?vn:(gn=1,vn=An())}var Tn=d(Pn());const _n=(t,e)=>[...t,...e],Rn=(t,e)=>[...e,...t],Cn=(t,r)=>e({},t,r),Nn=t=>[...t],zn=t=>e({},t);class Mn{addWith(t,e){return Kn(this,t,e)}createCollectionFilter(...t){return e=>Object.entries(e).every((([e,r])=>{var n;return this.nonFilterArgumentKeys(e)||`${t[0][e]}`===r||`${null==(n=t[1])?void 0:n[e]}`===r}))}nonFilterArgumentKeys(t){return t.startsWith("order")}constructor(t,r){if(this.schema=Array.isArray(t)?new Mr(t[0]):t,r?"nestKey"in r?this.nestKey=r.nestKey:this.argsKey="argsKey"in r?r.argsKey:t=>e({},t):this.argsKey=t=>e({},t),this.key=function(t){if(t instanceof Mr)return`[${t.schemaKey()}]`;if(t instanceof Nr)return`{${t.schemaKey()}}`;return`(${t.schemaKey()})`}(this.schema),null!=r&&r.nonFilterArgumentKeys){const{nonFilterArgumentKeys:t}=r;"function"==typeof t?this.nonFilterArgumentKeys=t:t instanceof RegExp?this.nonFilterArgumentKeys=e=>t.test(e):this.nonFilterArgumentKeys=e=>Tn(t).call(t,e)}else null!=r&&r.createCollectionFilter&&(this.createCollectionFilter=r.createCollectionFilter.bind(this));this.schema instanceof Mr?(this.createIfValid=Nn,this.push=Kn(this,_n),this.unshift=Kn(this,Rn)):t instanceof Nr&&(this.createIfValid=zn,this.assign=Kn(this,Cn))}get cacheWith(){return this.schema.schema}toString(){return this.key}toJSON(){return{key:this.key,schema:this.schema.schema.toJSON()}}pk(t,e,r,n){const i=this.argsKey?this.argsKey(...n):this.nestKey(e,r);for(const t in i){var o;Tn(o=["number","boolean"]).call(o,typeof i[t])&&(i[t]=`${i[t]}`)}return function(t){const e=Object.keys(t).sort(),r={};for(const n of e)r[n]=t[n];return JSON.stringify(r)}(i)}normalize(t,e,r,n,i,o,u,s){const c=this.schema.normalize(t,e,r,n,i,o,u,s),a=this.pk(c,e,r,n);return o(this,c,a),a}merge(t,e){return e}shouldReorder(t,e,r,n){return e.fetchedAt<t.fetchedAt}mergeWithStore(t,e,r,n){return this.shouldReorder(t,e,r,n)?this.merge(n,r):this.merge(r,n)}mergeMetaWithStore(t,e,r,n){return this.shouldReorder(t,e,r,n)?t:e}queryKey(t,e,r,n){if(this.argsKey){const e=this.pk(void 0,void 0,"",t);if(r(this.key,e))return e}}denormalize(t,e,r){return this.schema.denormalize(t,e,r)}}function Kn(t,e,r){const n={merge:{value:e},normalize:{value:Fn},queryKey:{value:$n}};return t.schema instanceof Mr&&(n.createIfValid={value:In},n.denormalize={value:Dn}),r&&(n.createCollectionFilter={value:r}),Object.create(t,n)}function $n(){}function Fn(t,e,r,n,i,o,u,s){const c=this.schema.normalize(this.schema instanceof Mr&&!Array.isArray(t)?[t]:t,e,r,n,i,o,u,s),a=this.createCollectionFilter(...n),f=u(this.key);return f&&Object.keys(f).forEach((t=>{a(JSON.parse(t))&&o(this,c,t)})),c}function In(t){return Array.isArray(t)?[...t]:e({},t)}function Dn(t,e,r){return Array.isArray(t)?this.schema.denormalize(t,e,r):this.schema.denormalize([t],e,r)[0]}function Ln(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(e.includes(n))continue;r[n]=t[n]}return r}var Un,qn,Vn,Wn,Gn;function Jn(){return Vn?qn:(Vn=1,Un||(Un=1,vr()({target:"Object",stat:!0},{hasOwn:Ee()})),qn=Rt().Object.hasOwn)}function Hn(){return Gn?Wn:(Gn=1,Wn=Jn())}var Bn=d(Hn());const Qn=["pk","schema","key"];function Yn(t,r={}){class n extends t{static toString(){return this.key}static toJSON(){return{key:this.key,schema:this.schema}}static pk(t,e,r,n){return this.prototype.pk.call(t,e,r,n)}static shouldUpdate(t,e,r,n){return!0}static shouldReorder(t,e,r,n){return e.fetchedAt<t.fetchedAt}static merge(t,r){return e({},t,r)}static mergeWithStore(t,e,r,n){return this.shouldUpdate(t,e,r,n)?typeof n!=typeof r?n:this.shouldReorder(t,e,r,n)?this.merge(n,r):this.merge(r,n):r}static mergeMetaWithStore(t,e,r,n){return this.shouldReorder(t,e,r,n)?t:e}static fromJS(t={}){const e=new this(t);return Object.assign(e,t),e}static createIfValid(t){if(!this.validate(t))return this.fromJS(t)}static process(t,r,n,i){return e({},t)}static normalize(t,e,r,n,i,o,u,s){const c=this.process(t,e,r,n);let a=this.pk(c,e,r,n);if(a=void 0===a||""===a||"undefined"===a?`MISS-${Math.random()}`:`${a}`,s(this.key,a,t))return a;return function(t){if(t){const e=new Error(t);throw e.status=400,e}}(this.validate(c)),Object.keys(this.schema).forEach((t=>{Bn(c,t)&&(c[t]=i(this.schema[t],c[t],c,t,n))})),o(this,c,a),a}static validate(t){}static queryKey(t,e,r,n){if(!t[0])return;const i=function(t,e,r){var n;if(Tn(n=["string","number"]).call(n,typeof e[0]))return`${e[0]}`;const i=t.pk(e[0],void 0,"",e);if(void 0!==i&&""!==i)return i;const o=(u=e[0],s=t.indexes,s?s.find((t=>Bn(u,t))):void 0);var u,s;if(!o)return;const c=e[0][o];return r(t.key,o,c)[c]}(this,t,n);return r(this.key,i)?i:void 0}static denormalize(t,e,r){if("symbol"==typeof t)return t;for(const e of Object.keys(this.schema)){const n=r(this.schema[e],t[e]);if("symbol"==typeof n){if(this.defaults[e])return n;t[e]=void 0}else t[e]=n}return t}static get defaults(){return Bn(this,"__defaults")||Object.defineProperty(this,"__defaults",{value:new this,writable:!0,configurable:!0}),this.__defaults}}const i=Ln(r,Qn);if(Object.assign(n,i),"schema"in r?n.schema=r.schema:t.schema||(n.schema={}),"pk"in r?"function"==typeof r.pk?n.prototype.pk=function(t,e){return r.pk(this,t,e)}:n.prototype.pk=function(){return this[r.pk]}:"function"!=typeof t.prototype.pk&&(n.prototype.pk=function(){return this.id}),"key"in r)Object.defineProperty(n,"key",{value:r.key,configurable:!0,writable:!0,enumerable:!0});else if(!("key"in t)){function o(t){Object.defineProperty(this,"key",{value:t,writable:!0,enumerable:!0,configurable:!0})}const u=function(){return"EntityMixin"===this.name?t.name:this.name},s="undefined"!=typeof document&&document.CLS_MANGLE?function(){return null==document.CLS_MANGLE||document.CLS_MANGLE(this),Object.defineProperty(n,"key",{get:u,set:o,enumerable:!0,configurable:!0}),u.call(this)}:u;Object.defineProperty(n,"key",{get:s,set:o,enumerable:!0,configurable:!0})}return n}var Xn=Object.freeze({__proto__:null,All:class extends Mr{constructor(t,e){super(t,e)}normalize(t,e,r,n,i,o,u,s){super.normalize(t,e,r,n,i,o,u,s)}queryKey(t,e,r,n){if(this.isSingleSchema){const t=r(this.schema.key);return void 0===t?Kr:Object.values(t).map((t=>t&&this.schema.pk(t)))}let i=!1;const o=Object.values(this.schema).flatMap((t=>{const e=r(t.key);return void 0===e?[]:(i=!0,Object.values(e).map((e=>({id:e&&t.pk(e),schema:this.getSchemaAttribute(e,void 0,void 0)}))))}));return i?o:Kr}},Array:Mr,Collection:Mn,Entity:Yn,EntityMixin:Yn,Invalidate:class{constructor(t){this._entity=t}get key(){return this._entity.key}normalize(t,e,r,n,i,o,u,s){const c=this._entity.process(t,e,r,n),a=this._entity.pk(c,e,r,n);return o(this,Kr,a),a}merge(t,e){return e}mergeWithStore(t,e,r,n){return this.merge(r,n)}mergeMetaWithStore(t,e,r,n){return e}queryKey(t,e,r,n){}denormalize(t,e,r){return r(this._entity,t)}_denormalizeNullable(){return{}}_normalizeNullable(){return{}}},Object:Fr,Query:class{constructor(t,e){this.schema=t,this.process=e}normalize(...t){return this.schema.normalize(...t)}denormalize(t,e,r){const n=r(this.schema,t);return"symbol"==typeof n?n:this.process(n,...e)}queryKey(t,e,r,n){return e(this.schema,t,r,n)}},Union:class extends Cr{constructor(t,e){if(!e)throw new Error('Expected option "schemaAttribute" not found on UnionSchema.');super(t,e)}normalize(t,e,r,n,i,o,u,s){return this.normalizeValue(t,e,r,n,i)}denormalize(t,e,r){return this.denormalizeValue(t,r)}queryKey(t,e,r,n){if(!t[0])return;const i=this.getSchemaAttribute(t[0],void 0,""),o=this.schema[i];if(void 0===o)return;const u=e(o,t,r,n);return void 0!==u?{id:u,schema:i}:void 0}},Values:Nr});const Zn=class{};class ti extends(Yn(Zn)){static process(t,e,r,n){return super.process(t,e,r,n)}}var ei;const ri="undefined"!=typeof document;let ni=ri&&!(null!=(ei=document.querySelector("meta[http-equiv='Content-Security-Policy']"))&&ei.getAttribute("content"));try{ni||Function()}catch(t){ni=!0,ri&&console.error("Content Security Policy: The previous CSP log can be safely ignored - @data-client/endpoint will use setPrototypeOf instead")}var ii;class oi extends Function{constructor(t,e){let r,n;return ni?(r=(...t)=>r.fetch(...t),Object.setPrototypeOf(r,new.target.prototype)):(super("return arguments.callee.fetch.apply(arguments.callee, arguments)"),r=this),t&&(r.fetch=t),e&&"name"in e||!t||!t.name||"anonymous"===t.name||(n=t.name),Object.defineProperty(r,"name",{get(){return n||this.__name},set(t){this.__name=t}}),Object.assign(r,e),r}key(...t){return`${this.name} ${JSON.stringify(t)}`}testKey(t){return t.startsWith(this.name)}bind(t,...e){const r=this.fetch,n=this.key;return this.extend({fetch(){return r.apply(null!=t?t:this,e)},key(){return n.apply(this,e)}})}extend(t){class e extends this.constructor{}return Object.assign(e.prototype,this),new e(t.fetch,t)}}ii=oi,(()=>{if("undefined"!=typeof document&&document.FUNC_MANGLE){const t=ii.prototype.key;ii.prototype.key=function(...e){return null==document.FUNC_MANGLE||document.FUNC_MANGLE(this),this.prototype.key=t,t.call(this,...e)}}})();const ui=oi;function si(t,e){void 0===e&&(e={});for(var r=function(t){for(var e=[],r=0;r<t.length;){var n=t[r];if("*"!==n&&"+"!==n&&"?"!==n)if("\\"!==n)if("{"!==n)if("}"!==n)if(":"!==n)if("("!==n)e.push({type:"CHAR",index:r,value:t[r++]});else{var i=1,o="";if("?"===t[s=r+1])throw new TypeError('Pattern cannot start with "?" at '.concat(s));for(;s<t.length;)if("\\"!==t[s]){if(")"===t[s]){if(0==--i){s++;break}}else if("("===t[s]&&(i++,"?"!==t[s+1]))throw new TypeError("Capturing groups are not allowed at ".concat(s));o+=t[s++]}else o+=t[s++]+t[s++];if(i)throw new TypeError("Unbalanced pattern at ".concat(r));if(!o)throw new TypeError("Missing pattern at ".concat(r));e.push({type:"PATTERN",index:r,value:o}),r=s}else{for(var u="",s=r+1;s<t.length;){var c=t.charCodeAt(s);if(!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||95===c))break;u+=t[s++]}if(!u)throw new TypeError("Missing parameter name at ".concat(r));e.push({type:"NAME",index:r,value:u}),r=s}else e.push({type:"CLOSE",index:r,value:t[r++]});else e.push({type:"OPEN",index:r,value:t[r++]});else e.push({type:"ESCAPED_CHAR",index:r++,value:t[r++]});else e.push({type:"MODIFIER",index:r,value:t[r++]})}return e.push({type:"END",index:r,value:""}),e}(t),n=e.prefixes,i=void 0===n?"./":n,o=e.delimiter,u=void 0===o?"/#?":o,s=[],c=0,a=0,f="",h=function(t){if(a<r.length&&r[a].type===t)return r[a++].value},l=function(t){var e=h(t);if(void 0!==e)return e;var n=r[a],i=n.type,o=n.index;throw new TypeError("Unexpected ".concat(i," at ").concat(o,", expected ").concat(t))},p=function(){for(var t,e="";t=h("CHAR")||h("ESCAPED_CHAR");)e+=t;return e},d=function(t){var e=s[s.length-1],r=t||(e&&"string"==typeof e?e:"");if(e&&!r)throw new TypeError('Must have text between two parameters, missing text after "'.concat(e.name,'"'));return!r||function(t){for(var e=0,r=u;e<r.length;e++){var n=r[e];if(t.indexOf(n)>-1)return!0}return!1}(r)?"[^".concat(ai(u),"]+?"):"(?:(?!".concat(ai(r),")[^").concat(ai(u),"])+?")};a<r.length;){var m=h("CHAR"),y=h("NAME"),v=h("PATTERN");if(y||v){var g=m||"";-1===i.indexOf(g)&&(f+=g,g=""),f&&(s.push(f),f=""),s.push({name:y||c++,prefix:g,suffix:"",pattern:v||d(g),modifier:h("MODIFIER")||""})}else{var b=m||h("ESCAPED_CHAR");if(b)f+=b;else if(f&&(s.push(f),f=""),h("OPEN")){g=p();var w=h("NAME")||"",O=h("PATTERN")||"",E=p();l("CLOSE"),s.push({name:w||(O?c++:""),pattern:w&&!O?d(g):O,prefix:g,suffix:E,modifier:h("MODIFIER")||""})}else l("END")}}return s}function ci(t,e){return function(t,e){void 0===e&&(e={});var r=fi(e),n=e.encode,i=void 0===n?function(t){return t}:n,o=e.validate,u=void 0===o||o,s=t.map((function(t){if("object"==typeof t)return new RegExp("^(?:".concat(t.pattern,")$"),r)}));return function(e){for(var r="",n=0;n<t.length;n++){var o=t[n];if("string"!=typeof o){var c=e?e[o.name]:void 0,a="?"===o.modifier||"*"===o.modifier,f="*"===o.modifier||"+"===o.modifier;if(Array.isArray(c)){if(!f)throw new TypeError('Expected "'.concat(o.name,'" to not repeat, but got an array'));if(0===c.length){if(a)continue;throw new TypeError('Expected "'.concat(o.name,'" to not be empty'))}for(var h=0;h<c.length;h++){var l=i(c[h],o);if(u&&!s[n].test(l))throw new TypeError('Expected all "'.concat(o.name,'" to match "').concat(o.pattern,'", but got "').concat(l,'"'));r+=o.prefix+l+o.suffix}}else if("string"!=typeof c&&"number"!=typeof c){if(!a){var p=f?"an array":"a string";throw new TypeError('Expected "'.concat(o.name,'" to be ').concat(p))}}else{l=i(String(c),o);if(u&&!s[n].test(l))throw new TypeError('Expected "'.concat(o.name,'" to match "').concat(o.pattern,'", but got "').concat(l,'"'));r+=o.prefix+l+o.suffix}}else r+=o}return r}}(si(t,e),e)}function ai(t){return t.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function fi(t){return t&&t.sensitive?"":"i"}function hi(t,e,r){return function(t,e,r){void 0===r&&(r={});for(var n=r.strict,i=void 0!==n&&n,o=r.start,u=void 0===o||o,s=r.end,c=void 0===s||s,a=r.encode,f=void 0===a?function(t){return t}:a,h=r.delimiter,l=void 0===h?"/#?":h,p=r.endsWith,d="[".concat(ai(void 0===p?"":p),"]|$"),m="[".concat(ai(l),"]"),y=u?"^":"",v=0,g=t;v<g.length;v++){var b=g[v];if("string"==typeof b)y+=ai(f(b));else{var w=ai(f(b.prefix)),O=ai(f(b.suffix));if(b.pattern)if(w||O)if("+"===b.modifier||"*"===b.modifier){var E="*"===b.modifier?"?":"";y+="(?:".concat(w,"((?:").concat(b.pattern,")(?:").concat(O).concat(w,"(?:").concat(b.pattern,"))*)").concat(O,")").concat(E)}else y+="(?:".concat(w,"(").concat(b.pattern,")").concat(O,")").concat(b.modifier);else{if("+"===b.modifier||"*"===b.modifier)throw new TypeError('Can not repeat "'.concat(b.name,'" without a prefix and suffix'));y+="(".concat(b.pattern,")").concat(b.modifier)}else y+="(?:".concat(w).concat(O,")").concat(b.modifier)}}if(c)i||(y+="".concat(m,"?")),y+=r.endsWith?"(?=".concat(d,")"):"$";else{var S=t[t.length-1],j="string"==typeof S?m.indexOf(S[S.length-1])>-1:void 0===S;i||(y+="(?:".concat(m,"(?=").concat(d,"))?")),j||(y+="(?=".concat(m,"|").concat(d,")"))}return new RegExp(y,fi(r))}(si(t,r),0,r)}function li(t,e,r){return t instanceof RegExp?function(t){return t}(t):Array.isArray(t)?function(t,e,r){var n=t.map((function(t){return li(t,e,r).source}));return new RegExp("(?:".concat(n.join("|"),")"),fi(r))}(t,e,r):hi(t,0,r)}function pi(t,r){if("object"!=typeof t||void 0===t||Array.isArray(t))return;if(t instanceof Mn)return r(t);const n=e({},t instanceof Fr?t.schema:t);for(const t in n){if(!n[t])continue;const e=pi(n[t],r);if(e)return e}}function di(t,r){if("object"!=typeof t||void 0===t)return t;if(t instanceof Mn)return r(t);const n=e({},t instanceof Fr?t.schema:t);for(const t in n)n[t]&&(n[t]=di(n[t],r));return n}class mi extends Error{constructor(t){super(`${t.url}: ${t.statusText||`Status not 'ok': ${t.status}`}`),this.name="NetworkError",this.status=t.status,this.response=t}}function yi(t,e){const r=new Set(t),n=[...t];for(const t of e)r.has(t)||n.push(t);return n}const vi=Object.create(null);function gi(t){return t in vi||(vi[t]=ci(t,{encode:encodeURIComponent,validate:!1})),vi[t]}const bi=Object.create(null);function wi(t){return t in bi||(bi[t]=new Set(si(t).map((t=>"string"==typeof t?t:`${t.name}`)))),bi[t]}const Oi=Object.prototype,Ei=Object.getPrototypeOf;var Si=i("hasBody");class ji extends oi{constructor(t){var e;super(null!=(e=t.fetch)?e:async function(...t){const e=r(this,Si)[Si]&&t.length<2?{}:t[0]||{},n=r(this,Si)[Si]?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,Si,{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=""),r(this,Si)[Si]=!("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(r(this,Si)[Si]&&t.length<2?{}:t[0]||{})}`}url(t={}){const e=gi(this.path)(t),r=wi(this.path),n={};return Object.keys(t).forEach((e=>{r.has(e)||(n[e]=t[e])})),Object.keys(n).length?`${this.urlPrefix}${e}?${this.searchToString(n)}`:`${this.urlPrefix}${e}`}searchToString(t){return function(t){const e=new URLSearchParams(t);return e.sort(),e.toString()}(t)}getHeaders(t){return t}async getRequestInit(t){const r=null!==(n=t)&&"object"==typeof n&&Ei(n)===Oi;var n;r&&(t=JSON.stringify(t));const i=e({},this.requestInit,{method:this.method,signal:this.signal,body:t});return t&&!r||(i.headers=e({"Content-Type":"application/json"},i.headers)),i.headers=await this.getHeaders(i.headers),i}fetchResponse(t,e){return fetch(t,e).then((t=>{if(!t.ok)throw new mi(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!==ji.prototype.process)return e;const r=new mi(t);throw r.status=404,r.message=`Unexpected text response for schema ${this.schema}`,r}))}process(t){return t}errorPolicy(t){return t.status>=500?"soft":void 0}get pathRegex(){return li(this.path)}testKey(t){const e=this.method+" "+this.urlPrefix;if(!t.startsWith(e))return!1;let r=t.lastIndexOf("?");return-1===r&&(r=void 0),this.pathRegex.test(t.substring(e.length,r))}extend(t){class r extends this.constructor{}return Object.assign(r.prototype,this),new r(e({fetch:this.fetch},t))}paginated(t){if("string"==typeof t){const r=t;t=t=>{let n=e({},(function(t){if(null==t)throw new TypeError("Cannot destructure "+t)}(t),t));return delete n[r],[n]}}let r=!1;const n=di(this.schema,(e=>(r=!0,function(t,e){return Object.create(e,{name:{value:`Pagination(${e.schema})`},merge:{value:yi},pk:{value:function(r,n,i,o){return e.pk.call(this,r,n,i,t(...o))}}})}(t,e))));if(!r)throw new Error("Missing Collection");const i=this;return this.extend({schema:n,key(...e){return i.key.call(this,...t(...e))},name:this.name+".getPage"})}get getPage(){return this.paginated(this.paginationField)}get push(){return this.extend({method:"POST",schema:pi(this.schema,(t=>t.push)),name:this.name+".create"})}get unshift(){return this.extend({method:"POST",schema:pi(this.schema,(t=>t.unshift)),name:this.name+".create"})}get assign(){return this.extend({method:"POST",schema:pi(this.schema,(t=>t.assign)),name:this.name+".create"})}}const xi=["path","schema","Endpoint","Collection","optimistic","paginationField"],{Invalidate:ki,Collection:Ai}=Xn;function Pi(t){let{path:r,schema:n,Endpoint:i=ji,Collection:o=Ai,optimistic:u,paginationField:s}=t,c=Ln(t,xi);const a=function(t){const e=t.lastIndexOf(":");if(-1===e)throw new Error("Resource path requires at least one :parameter");let r=t.substring(0,e);return"/"===r[r.length-1]&&(r=r.substring(0,r.length-1)),r}(r),f=t=>`${null==n?void 0:n.name}.${t}`;function h(t,e,r){t[e]=t[e].extend(r)}const l=e({},c),p=e({},c),d=new i(e({},c,{path:r,schema:n,name:f("get")}));u&&(l.getOptimisticResponse=Ti,p.getOptimisticResponse=function(t){return function(r,n,i){const o=r.get(t,n);if(!o)throw r.abort;return e({},n,o,Ri(i))}}(n));const m=new i(e({},l,{paginationField:s,path:a,schema:new o([n]),name:f("getList")}));return{get:d,getList:m,create:m.push.extend({name:f("create")}),update:new i(e({},l,{path:r,schema:n,method:"PUT",name:f("update")})),partialUpdate:new i(e({},p,{path:r,schema:n,method:"PATCH",name:f("partialUpdate")})),delete:new i(e({},l,{path:r,schema:n.process?new ki(n):n,method:"DELETE",name:f("delete"),process:(t,e)=>t&&Object.keys(t).length?t:e,getOptimisticResponse:u?_i:void 0})),extend(...t){if("string"==typeof t[0]){const[r,n]=t;if(r in this){const t=e({},this);return h(t,r,n),t}return e({},this,{[r]:this.get.extend(n)})}if("function"==typeof t[0]){return e({},this,t[0](this))}const r=t[0],n=e({},this);for(const t in r)h(n,t,r[t]);return n}}}function Ti(t,r,n){return e({},r,Ri(n))}function _i(t,e){return e}function Ri(t){return t instanceof FormData?Object.fromEntries(t.entries()):t}t.Endpoint=oi,t.Entity=ti,t.EntityMixin=Yn,t.ExtendableEndpoint=ui,t.INVALID=Kr,t.NetworkError=mi,t.RestEndpoint=ji,t.createResource=Pi,t.getUrlBase=gi,t.getUrlTokens=wi,t.hookifyResource=function(t,e){const r={};return Object.keys(t).forEach((n=>{const i=t[n];var o;void 0!==i.extend&&(r[`use${o=n,o.charAt(0).toUpperCase()+o.slice(1)}`]=()=>{const t=e();return i.extend({requestInit:t})})})),r},t.resource=Pi,t.schema=Xn,t.validateRequired=function(t,e){let r="";if(Object.keys(e).some((e=>!Bn(t,e)&&(r=e,!0))))return`Missing key ${r}`}}));
@@ -1,6 +1,13 @@
1
- import _objectDestructuringEmpty from "@babel/runtime/helpers/objectDestructuringEmpty";
2
- import _classPrivateFieldLooseBase from "@babel/runtime/helpers/classPrivateFieldLooseBase";
3
- import _classPrivateFieldLooseKey from "@babel/runtime/helpers/classPrivateFieldLooseKey";
1
+ import _objectDestructuringEmpty from "@babel/runtime-corejs3/helpers/esm/objectDestructuringEmpty";
2
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
3
+ import _classPrivateFieldLooseBase from "@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseBase";
4
+ import _classPrivateFieldLooseKey from "@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseKey";
5
+ import _includesInstanceProperty from "core-js-pure/stable/instance/includes.js";
6
+ import _Promise from "core-js-pure/stable/promise/index.js";
7
+ import _startsWithInstanceProperty from "core-js-pure/stable/instance/starts-with.js";
8
+ import _Object$assign from "core-js-pure/stable/object/assign.js";
9
+ import _pushInstanceProperty from "core-js-pure/stable/instance/push.js";
10
+ import _unshiftInstanceProperty from "core-js-pure/stable/instance/unshift.js";
4
11
  import { Endpoint } from '@data-client/endpoint';
5
12
  import { pathToRegexp } from 'path-to-regexp';
6
13
  import extractCollection from './extractCollection.js';
@@ -17,7 +24,7 @@ import { getUrlBase, getUrlTokens, isPojo } from './RestHelpers.js';
17
24
  var _hasBody = /*#__PURE__*/_classPrivateFieldLooseKey("hasBody");
18
25
  export default class RestEndpoint extends Endpoint {
19
26
  constructor(options) {
20
- var _options$fetch;
27
+ var _options$fetch, _context;
21
28
  super((_options$fetch = options.fetch) != null ? _options$fetch : async function (...args) {
22
29
  const urlParams = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] && args.length < 2 ? {} : args[0] || {};
23
30
  const body = _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] ? args[args.length - 1] : undefined;
@@ -37,7 +44,7 @@ export default class RestEndpoint extends Endpoint {
37
44
  if (this.urlPrefix === undefined) {
38
45
  this.urlPrefix = '';
39
46
  }
40
- _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] = (!('body' in this) || this.body !== undefined) && !['GET', 'DELETE'].includes(this.method);
47
+ _classPrivateFieldLooseBase(this, _hasBody)[_hasBody] = (!('body' in this) || this.body !== undefined) && !_includesInstanceProperty(_context = ['GET', 'DELETE']).call(_context, this.method);
41
48
  Object.defineProperty(this, 'name', {
42
49
  get() {
43
50
  // using 'in' to ensure inheritance lookup
@@ -80,13 +87,13 @@ export default class RestEndpoint extends Endpoint {
80
87
  if (bodyIsPojo) {
81
88
  body = JSON.stringify(body);
82
89
  }
83
- const init = Object.assign({}, this.requestInit, {
90
+ const init = _extends({}, this.requestInit, {
84
91
  method: this.method,
85
92
  signal: this.signal,
86
93
  body
87
94
  });
88
95
  if (!body || bodyIsPojo) {
89
- init.headers = Object.assign({
96
+ init.headers = _extends({
90
97
  // default to application/json but allow user explicit overrides
91
98
  'Content-Type': 'application/json'
92
99
  }, init.headers);
@@ -113,12 +120,13 @@ export default class RestEndpoint extends Endpoint {
113
120
  parseResponse(response) {
114
121
  var _response$headers$get;
115
122
  // this should not have any content to read
116
- if (response.status === 204) return Promise.resolve(null);
117
- if (!((_response$headers$get = response.headers.get('content-type')) != null && _response$headers$get.includes('json'))) {
123
+ if (response.status === 204) return _Promise.resolve(null);
124
+ if (!((_response$headers$get = response.headers.get('content-type')) != null && _includesInstanceProperty(_response$headers$get).call(_response$headers$get, 'json'))) {
118
125
  return response.text().then(text => {
126
+ var _context2;
119
127
  // string or 'not set' schema, are valid
120
128
  // when overriding process they might handle other cases, so we don't want to block on our logic
121
- if (['string', 'undefined'].includes(typeof this.schema) || this.schema === null || this.process !== RestEndpoint.prototype.process) return text;
129
+ if (_includesInstanceProperty(_context2 = ['string', 'undefined']).call(_context2, typeof this.schema) || this.schema === null || this.process !== RestEndpoint.prototype.process) return text;
122
130
  const error = new NetworkError(response);
123
131
  error.status = 404;
124
132
  error.message = `Unexpected text response for schema ${this.schema}`;
@@ -126,7 +134,7 @@ export default class RestEndpoint extends Endpoint {
126
134
  /* istanbul ignore else */
127
135
  if (process.env.NODE_ENV !== 'production') {
128
136
  var _response$headers$get2;
129
- if (!((_response$headers$get2 = response.headers.get('content-type')) != null && _response$headers$get2.includes('html') || text.startsWith('<!doctype html>'))) {
137
+ if (!((_response$headers$get2 = response.headers.get('content-type')) != null && _includesInstanceProperty(_response$headers$get2).call(_response$headers$get2, 'html') || _startsWithInstanceProperty(text).call(text, '<!doctype html>'))) {
130
138
  if (tryParse(text) !== undefined) {
131
139
  error.message = `"content-type" header does not include "json", but JSON response found.
132
140
  See https://www.rfc-editor.org/rfc/rfc4627 for information on JSON responses
@@ -160,7 +168,7 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
160
168
  }
161
169
  testKey(key) {
162
170
  const prefix = this.method + ' ' + this.urlPrefix;
163
- if (!key.startsWith(prefix)) return false;
171
+ if (!_startsWithInstanceProperty(key).call(key, prefix)) return false;
164
172
  let lastQuestion = key.lastIndexOf('?');
165
173
  if (lastQuestion === -1) lastQuestion = undefined;
166
174
  return this.pathRegex.test(key.substring(prefix.length, lastQuestion));
@@ -169,9 +177,9 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
169
177
  // make a constructor/prototype based off this
170
178
  // extend from it and init with options sent
171
179
  class E extends this.constructor {}
172
- Object.assign(E.prototype, this);
180
+ _Object$assign(E.prototype, this);
173
181
  return new E(// fetch get overridden by function prototype, so we must set it explicitly every time
174
- Object.assign({
182
+ _extends({
175
183
  fetch: this.fetch
176
184
  }, options));
177
185
  }
@@ -179,7 +187,7 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
179
187
  if (typeof removeCursor === 'string') {
180
188
  const fieldName = removeCursor;
181
189
  removeCursor = _ref => {
182
- let params = Object.assign({}, (_objectDestructuringEmpty(_ref), _ref));
190
+ let params = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
183
191
  delete params[fieldName];
184
192
  return [params];
185
193
  };
@@ -206,14 +214,14 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
206
214
  get push() {
207
215
  return this.extend({
208
216
  method: 'POST',
209
- schema: extractCollection(this.schema, s => s.push),
217
+ schema: extractCollection(this.schema, s => _pushInstanceProperty(s)),
210
218
  name: this.name + '.create'
211
219
  });
212
220
  }
213
221
  get unshift() {
214
222
  return this.extend({
215
223
  method: 'POST',
216
- schema: extractCollection(this.schema, s => s.unshift),
224
+ schema: extractCollection(this.schema, s => _unshiftInstanceProperty(s)),
217
225
  name: this.name + '.create'
218
226
  });
219
227
  }
@@ -232,4 +240,4 @@ const tryParse = input => {
232
240
  return undefined;
233
241
  }
234
242
  };
235
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJpc1Bvam8iLCJfaGFzQm9keSIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlS2V5IiwiUmVzdEVuZHBvaW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX29wdGlvbnMkZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ1cmxQYXJhbXMiLCJfY2xhc3NQcml2YXRlRmllbGRMb29zZUJhc2UiLCJsZW5ndGgiLCJib2R5IiwidW5kZWZpbmVkIiwiZmV0Y2hSZXNwb25zZSIsInVybCIsImdldFJlcXVlc3RJbml0IiwidGhlbiIsInJlc3BvbnNlIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJnZXQiLCJfX25hbWUiLCJwYXRoIiwia2V5IiwidXJsQmFzZSIsInRva2VucyIsInNlYXJjaFBhcmFtcyIsImtleXMiLCJmb3JFYWNoIiwiayIsImhhcyIsInNlYXJjaFRvU3RyaW5nIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJhc3NpZ24iLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwicGFnaW5hdGVkIiwicmVtb3ZlQ3Vyc29yIiwiZmllbGROYW1lIiwiX3JlZiIsInBhcmFtcyIsIl9vYmplY3REZXN0cnVjdHVyaW5nRW1wdHkiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJuZXdTY2hlbWEiLCJFcnJvciIsInN1cCIsImNhbGwiLCJuYW1lIiwiZ2V0UGFnZSIsInBhZ2luYXRpb25GaWVsZCIsInB1c2giLCJzIiwidW5zaGlmdCIsInBhcnNlIiwiZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXN0RW5kcG9pbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHsgcGF0aFRvUmVnZXhwIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgZXh0cmFjdENvbGxlY3Rpb24gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgbWFwQ29sbGVjdGlvbiBmcm9tICcuL21hcENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IE5ldHdvcmtFcnJvciBmcm9tICcuL05ldHdvcmtFcnJvci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9wYWdpbmF0ZWRDb2xsZWN0aW9ucy5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMsIGlzUG9qbyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3RFbmRwb2ludCBleHRlbmRzIEVuZHBvaW50IHtcbiAgI2hhc0JvZHk7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMuZmV0Y2ggPz9cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPVxuICAgICAgICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge307XG4gICAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuI2hhc0JvZHkgPyBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZShcbiAgICAgICAgICAgIHRoaXMudXJsKHVybFBhcmFtcyksXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFJlcXVlc3RJbml0KGJvZHkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHRoaXMucGFyc2VSZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gdGhpcy5wcm9jZXNzKHJlcywgLi4uYXJncykpO1xuICAgICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIC8vIHdlIHdhbnQgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgIGlmIChcbiAgICAgICEoJ3NpZGVFZmZlY3QnIGluIHRoaXMpIHx8XG4gICAgICAoJ21ldGhvZCcgaW4gb3B0aW9ucyAmJiAhKCdzaWRlRWZmZWN0JyBpbiBvcHRpb25zKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2lkZUVmZmVjdCA9XG4gICAgICAgIG9wdGlvbnMubWV0aG9kID09PSAnR0VUJyB8fCBvcHRpb25zLm1ldGhvZCA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnbmFtZScsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgLy8gdXNpbmcgJ2luJyB0byBlbnN1cmUgaW5oZXJpdGFuY2UgbG9va3VwXG4gICAgICAgIGlmICgnX19uYW1lJyBpbiB0aGlzKSByZXR1cm4gdGhpcy5fX25hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLnVybFByZWZpeCArIHRoaXMucGF0aDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBrZXkoLi4uYXJncykge1xuICAgIHJldHVybiBgJHt0aGlzLm1ldGhvZH0gJHt0aGlzLnVybChcbiAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9LFxuICAgICl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHVybCAqL1xuICB1cmwodXJsUGFyYW1zID0ge30pIHtcbiAgICBjb25zdCB1cmxCYXNlID0gZ2V0VXJsQmFzZSh0aGlzLnBhdGgpKHVybFBhcmFtcyk7XG4gICAgY29uc3QgdG9rZW5zID0gZ2V0VXJsVG9rZW5zKHRoaXMucGF0aCk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0ge307XG4gICAgT2JqZWN0LmtleXModXJsUGFyYW1zKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgaWYgKCF0b2tlbnMuaGFzKGspKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtc1trXSA9IHVybFBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9PyR7dGhpcy5zZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9YDtcbiAgfVxuXG4gIC8qKiBFbmNvZGUgdGhlIHVybCBzZWFyY2hQYXJhbXMgKi9cbiAgc2VhcmNoVG9TdHJpbmcoc2VhcmNoUGFyYW1zKSB7XG4gICAgcmV0dXJuIHBhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyk7XG4gIH1cblxuICBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKiBJbml0IG9wdGlvbnMgZm9yIGZldGNoIC0gcnVuIGF0IGZldGNoICovXG4gIGFzeW5jIGdldFJlcXVlc3RJbml0KGJvZHkpIHtcbiAgICBjb25zdCBib2R5SXNQb2pvID0gaXNQb2pvKGJvZHkpO1xuICAgIGlmIChib2R5SXNQb2pvKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIGNvbnN0IGluaXQgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RJbml0LFxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICBib2R5LFxuICAgIH07XG4gICAgaWYgKCFib2R5IHx8IGJvZHlJc1Bvam8pIHtcbiAgICAgIGluaXQuaGVhZGVycyA9IHtcbiAgICAgICAgLy8gZGVmYXVsdCB0byBhcHBsaWNhdGlvbi9qc29uIGJ1dCBhbGxvdyB1c2VyIGV4cGxpY2l0IG92ZXJyaWRlc1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5pbml0LmhlYWRlcnMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpbml0LmhlYWRlcnMgPSBhd2FpdCB0aGlzLmdldEhlYWRlcnMoaW5pdC5oZWFkZXJzKTtcbiAgICByZXR1cm4gaW5pdDtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIEhUVFAgUmVzcG9uc2UgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAvLyBlbnN1cmUgQ09SUywgbmV0d29yayBkb3duLCBhbmQgcGFyc2UgZXJyb3JzIGFyZSBzdGlsbCBjYXVnaHQgYnkgTmV0d29ya0Vycm9yQm91bmRhcnlcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNTAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgLy8gdGhpcyBzaG91bGQgbm90IGhhdmUgYW55IGNvbnRlbnQgdG8gcmVhZFxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICBpZiAoIXJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2pzb24nKSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICAvLyBzdHJpbmcgb3IgJ25vdCBzZXQnIHNjaGVtYSwgYXJlIHZhbGlkXG4gICAgICAgIC8vIHdoZW4gb3ZlcnJpZGluZyBwcm9jZXNzIHRoZXkgbWlnaHQgaGFuZGxlIG90aGVyIGNhc2VzLCBzbyB3ZSBkb24ndCB3YW50IHRvIGJsb2NrIG9uIG91ciBsb2dpY1xuICAgICAgICBpZiAoXG4gICAgICAgICAgWydzdHJpbmcnLCAndW5kZWZpbmVkJ10uaW5jbHVkZXModHlwZW9mIHRoaXMuc2NoZW1hKSB8fFxuICAgICAgICAgIHRoaXMuc2NoZW1hID09PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5wcm9jZXNzICE9PSBSZXN0RW5kcG9pbnQucHJvdG90eXBlLnByb2Nlc3NcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB0ZXh0O1xuXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIGVycm9yLnN0YXR1cyA9IDQwNDtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIHRleHQgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAgIC8vIGN1c3RvbSBkZXYtb25seSBtZXNzYWdlcyBmb3IgbW9yZSBkZXRhaWxlZCBjYXVzZVxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2h0bWwnKSB8fFxuICAgICAgICAgICAgICB0ZXh0LnN0YXJ0c1dpdGgoJzwhZG9jdHlwZSBodG1sPicpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodHJ5UGFyc2UodGV4dCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFwiY29udGVudC10eXBlXCIgaGVhZGVyIGRvZXMgbm90IGluY2x1ZGUgXCJqc29uXCIsIGJ1dCBKU09OIHJlc3BvbnNlIGZvdW5kLlxuU2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM0NjI3IGZvciBpbmZvcm1hdGlvbiBvbiBKU09OIHJlc3BvbnNlc1xuXG5Vc2luZyBwYXJzZWQgSlNPTi5cbklmIHRleHQgY29udGVudCB3YXMgZXhwZWN0ZWQgc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIHBhdGhUb1JlZ2V4cCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcblxuICAgIHJldHVybiBuZXcgRShcbiAgICAgIC8vICBmZXRjaCBnZXQgb3ZlcnJpZGRlbiBieSBmdW5jdGlvbiBwcm90b3R5cGUsIHNvIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkgZXZlcnkgdGltZVxuICAgICAgeyBmZXRjaDogdGhpcy5mZXRjaCwgLi4ub3B0aW9ucyB9LFxuICAgICk7XG4gIH1cblxuICBwYWdpbmF0ZWQocmVtb3ZlQ3Vyc29yKSB7XG4gICAgaWYgKHR5cGVvZiByZW1vdmVDdXJzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSByZW1vdmVDdXJzb3I7XG4gICAgICByZW1vdmVDdXJzb3IgPSAoeyAuLi5wYXJhbXMgfSkgPT4ge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2ZpZWxkTmFtZV07XG4gICAgICAgIHJldHVybiBbcGFyYW1zXTtcbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSA9IGNvbGxlY3Rpb24gPT4ge1xuICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEocmVtb3ZlQ3Vyc29yLCBjb2xsZWN0aW9uKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG5cbiAgICBpZiAoIWZvdW5kKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQ29sbGVjdGlvbicpO1xuICAgIGNvbnN0IHN1cCA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgc2NoZW1hOiBuZXdTY2hlbWEsXG4gICAgICBrZXkoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc3VwLmtleS5jYWxsKHRoaXMsIC4uLnJlbW92ZUN1cnNvciguLi5hcmdzKSk7XG4gICAgICB9LFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5nZXRQYWdlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBnZXRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlZCh0aGlzLnBhZ2luYXRpb25GaWVsZCk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHRyeVBhcnNlID0gaW5wdXQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGlucHV0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsWUFBWSxRQUFRLGdCQUFnQjtBQUU3QyxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxPQUFPQyxZQUFZLE1BQU0sbUJBQW1CO0FBQzVDLFNBQVNDLHNCQUFzQixRQUFRLDJCQUEyQjtBQUNsRSxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFD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
243
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJpc1Bvam8iLCJfaGFzQm9keSIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlS2V5IiwiUmVzdEVuZHBvaW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX29wdGlvbnMkZmV0Y2giLCJfY29udGV4dCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicmVzcG9uc2UiLCJwYXJzZVJlc3BvbnNlIiwicmVzIiwicHJvY2VzcyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJ2YWx1ZSIsInNpZGVFZmZlY3QiLCJtZXRob2QiLCJ1cmxQcmVmaXgiLCJfaW5jbHVkZXNJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsImdldCIsIl9fbmFtZSIsInBhdGgiLCJrZXkiLCJ1cmxCYXNlIiwidG9rZW5zIiwic2VhcmNoUGFyYW1zIiwia2V5cyIsImZvckVhY2giLCJrIiwiaGFzIiwic2VhcmNoVG9TdHJpbmciLCJnZXRIZWFkZXJzIiwiaGVhZGVycyIsImJvZHlJc1Bvam8iLCJKU09OIiwic3RyaW5naWZ5IiwiaW5pdCIsIl9leHRlbmRzIiwicmVxdWVzdEluaXQiLCJzaWduYWwiLCJpbnB1dCIsIm9rIiwiY2F0Y2giLCJlcnJvciIsIlR5cGVFcnJvciIsInN0YXR1cyIsIl9yZXNwb25zZSRoZWFkZXJzJGdldCIsIl9Qcm9taXNlIiwicmVzb2x2ZSIsInRleHQiLCJfY29udGV4dDIiLCJzY2hlbWEiLCJwcm90b3R5cGUiLCJtZXNzYWdlIiwiZW52IiwiTk9ERV9FTlYiLCJfcmVzcG9uc2UkaGVhZGVycyRnZXQyIiwiX3N0YXJ0c1dpdGhJbnN0YW5jZVByb3BlcnR5IiwidHJ5UGFyc2UiLCJzdWJzdHJpbmciLCJqc29uIiwiZXJyb3JQb2xpY3kiLCJwYXRoUmVnZXgiLCJ0ZXN0S2V5IiwicHJlZml4IiwibGFzdFF1ZXN0aW9uIiwibGFzdEluZGV4T2YiLCJ0ZXN0IiwiZXh0ZW5kIiwiRSIsIl9PYmplY3QkYXNzaWduIiwicGFnaW5hdGVkIiwicmVtb3ZlQ3Vyc29yIiwiZmllbGROYW1lIiwiX3JlZiIsInBhcmFtcyIsIl9vYmplY3REZXN0cnVjdHVyaW5nRW1wdHkiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJuZXdTY2hlbWEiLCJFcnJvciIsInN1cCIsIm5hbWUiLCJnZXRQYWdlIiwicGFnaW5hdGlvbkZpZWxkIiwicHVzaCIsInMiLCJfcHVzaEluc3RhbmNlUHJvcGVydHkiLCJ1bnNoaWZ0IiwiX3Vuc2hpZnRJbnN0YW5jZVByb3BlcnR5IiwiYXNzaWduIiwicGFyc2UiLCJlIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgeyBwYXRoVG9SZWdleHAgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCBleHRyYWN0Q29sbGVjdGlvbiBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBtYXBDb2xsZWN0aW9uIGZyb20gJy4vbWFwQ29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgTmV0d29ya0Vycm9yIGZyb20gJy4vTmV0d29ya0Vycm9yLmpzJztcbmltcG9ydCB7IGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEgfSBmcm9tICcuL3BhZ2luYXRlZENvbGxlY3Rpb25zLmpzJztcbmltcG9ydCBwYXJhbXNUb1N0cmluZyBmcm9tICcuL3BhcmFtc1RvU3RyaW5nLmpzJztcbmltcG9ydCB7IGdldFVybEJhc2UsIGdldFVybFRva2VucywgaXNQb2pvIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdEVuZHBvaW50IGV4dGVuZHMgRW5kcG9pbnQge1xuICAjaGFzQm9keTtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgb3B0aW9ucy5mZXRjaCA/P1xuICAgICAgICBhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBib2R5ID0gdGhpcy4jaGFzQm9keSA/IGFyZ3NbYXJncy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJlc3BvbnNlKFxuICAgICAgICAgICAgdGhpcy51cmwodXJsUGFyYW1zKSxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UmVxdWVzdEluaXQoYm9keSksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gdGhpcy5wYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnByb2Nlc3MocmVzLCAuLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgLy8gd2Ugd2FudCB0byB1c2UgdGhlIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgaWYgKFxuICAgICAgISgnc2lkZUVmZmVjdCcgaW4gdGhpcykgfHxcbiAgICAgICgnbWV0aG9kJyBpbiBvcHRpb25zICYmICEoJ3NpZGVFZmZlY3QnIGluIG9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5zaWRlRWZmZWN0ID1cbiAgICAgICAgb3B0aW9ucy5tZXRob2QgPT09ICdHRVQnIHx8IG9wdGlvbnMubWV0aG9kID09PSB1bmRlZmluZWQgP1xuICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICA6IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLm1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1ldGhvZCA9IHRoaXMuc2lkZUVmZmVjdCA/ICdQT1NUJyA6ICdHRVQnO1xuICAgIH1cbiAgICBpZiAodGhpcy51cmxQcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy51cmxQcmVmaXggPSAnJztcbiAgICB9XG4gICAgdGhpcy4jaGFzQm9keSA9XG4gICAgICAoISgnYm9keScgaW4gdGhpcykgfHwgdGhpcy5ib2R5ICE9PSB1bmRlZmluZWQpICYmXG4gICAgICAhWydHRVQnLCAnREVMRVRFJ10uaW5jbHVkZXModGhpcy5tZXRob2QpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICduYW1lJywge1xuICAgICAgZ2V0KCkge1xuICAgICAgICAvLyB1c2luZyAnaW4nIHRvIGVuc3VyZSBpbmhlcml0YW5jZSBsb29rdXBcbiAgICAgICAgaWYgKCdfX25hbWUnIGluIHRoaXMpIHJldHVybiB0aGlzLl9fbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMudXJsUHJlZml4ICsgdGhpcy5wYXRoO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGtleSguLi5hcmdzKSB7XG4gICAgcmV0dXJuIGAke3RoaXMubWV0aG9kfSAke3RoaXMudXJsKFxuICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge30sXG4gICAgKX1gO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdXJsICovXG4gIHVybCh1cmxQYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHVybEJhc2UgPSBnZXRVcmxCYXNlKHRoaXMucGF0aCkodXJsUGFyYW1zKTtcbiAgICBjb25zdCB0b2tlbnMgPSBnZXRVcmxUb2tlbnModGhpcy5wYXRoKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh1cmxQYXJhbXMpLmZvckVhY2goayA9PiB7XG4gICAgICBpZiAoIXRva2Vucy5oYXMoaykpIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zW2tdID0gdXJsUGFyYW1zW2tdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX0/JHt0aGlzLnNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtcyl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX1gO1xuICB9XG5cbiAgLyoqIEVuY29kZSB0aGUgdXJsIHNlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpIHtcbiAgICByZXR1cm4gcGFyYW1zVG9TdHJpbmcoc2VhcmNoUGFyYW1zKTtcbiAgfVxuXG4gIGdldEhlYWRlcnMoaGVhZGVycykge1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgLyoqIEluaXQgb3B0aW9ucyBmb3IgZmV0Y2ggLSBydW4gYXQgZmV0Y2ggKi9cbiAgYXN5bmMgZ2V0UmVxdWVzdEluaXQoYm9keSkge1xuICAgIGNvbnN0IGJvZHlJc1Bvam8gPSBpc1Bvam8oYm9keSk7XG4gICAgaWYgKGJvZHlJc1Bvam8pIHtcbiAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICB9XG4gICAgY29uc3QgaW5pdCA9IHtcbiAgICAgIC4uLnRoaXMucmVxdWVzdEluaXQsXG4gICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgc2lnbmFsOiB0aGlzLnNpZ25hbCxcbiAgICAgIGJvZHksXG4gICAgfTtcbiAgICBpZiAoIWJvZHkgfHwgYm9keUlzUG9qbykge1xuICAgICAgaW5pdC5oZWFkZXJzID0ge1xuICAgICAgICAvLyBkZWZhdWx0IHRvIGFwcGxpY2F0aW9uL2pzb24gYnV0IGFsbG93IHVzZXIgZXhwbGljaXQgb3ZlcnJpZGVzXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmluaXQuaGVhZGVycyxcbiAgICAgIH07XG4gICAgfVxuICAgIGluaXQuaGVhZGVycyA9IGF3YWl0IHRoaXMuZ2V0SGVhZGVycyhpbml0LmhlYWRlcnMpO1xuICAgIHJldHVybiBpbml0O1xuICB9XG5cbiAgLyoqIFBlcmZvcm0gbmV0d29yayByZXF1ZXN0IGFuZCByZXNvbHZlIHdpdGggSFRUUCBSZXNwb25zZSAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0LCBpbml0KSB7XG4gICAgcmV0dXJuIGZldGNoKGlucHV0LCBpbml0KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIC8vIGVuc3VyZSBDT1JTLCBuZXR3b3JrIGRvd24sIGFuZCBwYXJzZSBlcnJvcnMgYXJlIHN0aWxsIGNhdWdodCBieSBOZXR3b3JrRXJyb3JCb3VuZGFyeVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgICBlcnJvci5zdGF0dXMgPSA1MDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICAvLyB0aGlzIHNob3VsZCBub3QgaGF2ZSBhbnkgY29udGVudCB0byByZWFkXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIGlmICghcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5pbmNsdWRlcygnanNvbicpKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4odGV4dCA9PiB7XG4gICAgICAgIC8vIHN0cmluZyBvciAnbm90IHNldCcgc2NoZW1hLCBhcmUgdmFsaWRcbiAgICAgICAgLy8gd2hlbiBvdmVycmlkaW5nIHByb2Nlc3MgdGhleSBtaWdodCBoYW5kbGUgb3RoZXIgY2FzZXMsIHNvIHdlIGRvbid0IHdhbnQgdG8gYmxvY2sgb24gb3VyIGxvZ2ljXG4gICAgICAgIGlmIChcbiAgICAgICAgICBbJ3N0cmluZycsICd1bmRlZmluZWQnXS5pbmNsdWRlcyh0eXBlb2YgdGhpcy5zY2hlbWEpIHx8XG4gICAgICAgICAgdGhpcy5zY2hlbWEgPT09IG51bGwgfHxcbiAgICAgICAgICB0aGlzLnByb2Nlc3MgIT09IFJlc3RFbmRwb2ludC5wcm90b3R5cGUucHJvY2Vzc1xuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIHRleHQ7XG5cbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgZXJyb3Iuc3RhdHVzID0gNDA0O1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gYFVuZXhwZWN0ZWQgdGV4dCByZXNwb25zZSBmb3Igc2NoZW1hICR7dGhpcy5zY2hlbWF9YDtcbiAgICAgICAgLy8gY3VzdG9tIGRldi1vbmx5IG1lc3NhZ2VzIGZvciBtb3JlIGRldGFpbGVkIGNhdXNlXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5pbmNsdWRlcygnaHRtbCcpIHx8XG4gICAgICAgICAgICAgIHRleHQuc3RhcnRzV2l0aCgnPCFkb2N0eXBlIGh0bWw+JylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh0cnlQYXJzZSh0ZXh0KSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgXCJjb250ZW50LXR5cGVcIiBoZWFkZXIgZG9lcyBub3QgaW5jbHVkZSBcImpzb25cIiwgYnV0IEpTT04gcmVzcG9uc2UgZm91bmQuXG5TZWUgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzQ2MjcgZm9yIGluZm9ybWF0aW9uIG9uIEpTT04gcmVzcG9uc2VzXG5cblVzaW5nIHBhcnNlZCBKU09OLlxuSWYgdGV4dCBjb250ZW50IHdhcyBleHBlY3RlZCBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGh0bWwgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfVxuVGhpcyBsaWtlbHkgbWVhbnMgbm8gQVBJIGVuZHBvaW50IHdhcyBjb25maWd1cmVkIGZvciB0aGlzIHJlcXVlc3QsIHJlc3VsdGluZyBpbiBhbiBIVE1MIGZhbGxiYWNrLlxuXG5SZXNwb25zZSAoZmlyc3QgMzAwIGNoYXJhY3RlcnMpOiAke3RleHQuc3Vic3RyaW5nKDAsIDMwMCl9YDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIHByb2Nlc3ModmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBlcnJvclBvbGljeShlcnJvcikge1xuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPj0gNTAwID8gJ3NvZnQnIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHBhdGhSZWdleCgpIHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHRoaXMucGF0aCk7XG4gIH1cblxuICB0ZXN0S2V5KGtleSkge1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubWV0aG9kICsgJyAnICsgdGhpcy51cmxQcmVmaXg7XG4gICAgaWYgKCFrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IGxhc3RRdWVzdGlvbiA9IGtleS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChsYXN0UXVlc3Rpb24gPT09IC0xKSBsYXN0UXVlc3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMucGF0aFJlZ2V4LnRlc3Qoa2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoLCBsYXN0UXVlc3Rpb24pKTtcbiAgfVxuXG4gIGV4dGVuZChvcHRpb25zKSB7XG4gICAgLy8gbWFrZSBhIGNvbnN0cnVjdG9yL3Byb3RvdHlwZSBiYXNlZCBvZmYgdGhpc1xuICAgIC8vIGV4dGVuZCBmcm9tIGl0IGFuZCBpbml0IHdpdGggb3B0aW9ucyBzZW50XG4gICAgY2xhc3MgRSBleHRlbmRzIHRoaXMuY29uc3RydWN0b3Ige31cblxuICAgIE9iamVjdC5hc3NpZ24oRS5wcm90b3R5cGUsIHRoaXMpO1xuXG4gICAgcmV0dXJuIG5ldyBFKFxuICAgICAgLy8gIGZldGNoIGdldCBvdmVycmlkZGVuIGJ5IGZ1bmN0aW9uIHByb3RvdHlwZSwgc28gd2UgbXVzdCBzZXQgaXQgZXhwbGljaXRseSBldmVyeSB0aW1lXG4gICAgICB7IGZldGNoOiB0aGlzLmZldGNoLCAuLi5vcHRpb25zIH0sXG4gICAgKTtcbiAgfVxuXG4gIHBhZ2luYXRlZChyZW1vdmVDdXJzb3IpIHtcbiAgICBpZiAodHlwZW9mIHJlbW92ZUN1cnNvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHJlbW92ZUN1cnNvcjtcbiAgICAgIHJlbW92ZUN1cnNvciA9ICh7IC4uLnBhcmFtcyB9KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBwYXJhbXNbZmllbGROYW1lXTtcbiAgICAgICAgcmV0dXJuIFtwYXJhbXNdO1xuICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRlUGFnaW5hdGVkU2NoZW1hID0gY29sbGVjdGlvbiA9PiB7XG4gICAgICBmb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm4gY3JlYXRlUGFnaW5hdGlvblNjaGVtYShyZW1vdmVDdXJzb3IsIGNvbGxlY3Rpb24pO1xuICAgIH07XG4gICAgY29uc3QgbmV3U2NoZW1hID0gbWFwQ29sbGVjdGlvbih0aGlzLnNjaGVtYSwgY3JlYXRlUGFnaW5hdGVkU2NoZW1hKTtcblxuICAgIGlmICghZm91bmQpIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBDb2xsZWN0aW9uJyk7XG4gICAgY29uc3Qgc3VwID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBzY2hlbWE6IG5ld1NjaGVtYSxcbiAgICAgIGtleSguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiBzdXAua2V5LmNhbGwodGhpcywgLi4ucmVtb3ZlQ3Vyc29yKC4uLmFyZ3MpKTtcbiAgICAgIH0sXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmdldFBhZ2UnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGdldFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGVkKHRoaXMucGFnaW5hdGlvbkZpZWxkKTtcbiAgfVxuXG4gIGdldCBwdXNoKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5wdXNoKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB1bnNoaWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy51bnNoaWZ0KSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhc3NpZ24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLmFzc2lnbiksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgdHJ5UGFyc2UgPSBpbnB1dCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoaW5wdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsWUFBWSxRQUFRLGdCQUFnQjtBQUU3QyxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxPQUFPQyxZQUFZLE1BQU0sbUJBQW1C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
@@ -1,14 +1,15 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
1
2
  import { schema } from '@data-client/endpoint';
2
3
  export default function extractCollection(s, mapper) {
3
4
  if (typeof s !== 'object' || s === undefined || Array.isArray(s)) return;
4
5
  if (s instanceof schema.Collection) {
5
6
  return mapper(s);
6
7
  }
7
- const objCopy = Object.assign({}, s instanceof schema.Object ? s.schema : s);
8
+ const objCopy = _extends({}, s instanceof schema.Object ? s.schema : s);
8
9
  for (const k in objCopy) {
9
10
  if (!objCopy[k]) continue;
10
11
  const collection = extractCollection(objCopy[k], mapper);
11
12
  if (collection) return collection;
12
13
  }
13
14
  }
14
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJleHRyYWN0Q29sbGVjdGlvbiIsInMiLCJtYXBwZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwib2JqQ29weSIsIk9iamVjdCIsImFzc2lnbiIsImsiLCJjb2xsZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2V4dHJhY3RDb2xsZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYSwgc2NoZW1hIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IHsgRXh0cmFjdE9iamVjdCB9IGZyb20gJy4vZXh0cmFjdE9iamVjdC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGV4dHJhY3RDb2xsZWN0aW9uPFxuICBNIGV4dGVuZHMgPEMgZXh0ZW5kcyBzY2hlbWEuQ29sbGVjdGlvbj4oY29sbGVjdGlvbjogQykgPT4gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuPihzOiBTLCBtYXBwZXI6IE0pOiBFeHRyYWN0Q29sbGVjdGlvbjxTPiB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgcyAhPT0gJ29iamVjdCcgfHwgcyA9PT0gdW5kZWZpbmVkIHx8IEFycmF5LmlzQXJyYXkocykpIHJldHVybjtcbiAgaWYgKHMgaW5zdGFuY2VvZiBzY2hlbWEuQ29sbGVjdGlvbikge1xuICAgIHJldHVybiBtYXBwZXIocyBhcyBhbnkpO1xuICB9XG4gIGNvbnN0IG9iakNvcHk6IFJlY29yZDxzdHJpbmcsIFNjaGVtYT4gPSB7XG4gICAgLi4uKHMgaW5zdGFuY2VvZiBzY2hlbWEuT2JqZWN0ID8gKHMgYXMgYW55KS5zY2hlbWEgOiBzKSxcbiAgfTtcbiAgZm9yIChjb25zdCBrIGluIG9iakNvcHkpIHtcbiAgICBpZiAoIW9iakNvcHlba10pIGNvbnRpbnVlO1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBleHRyYWN0Q29sbGVjdGlvbihvYmpDb3B5W2tdLCBtYXBwZXIpO1xuICAgIGlmIChjb2xsZWN0aW9uKSByZXR1cm4gY29sbGVjdGlvbjtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBFeHRyYWN0Q29sbGVjdGlvbjxTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkPiA9XG4gIFMgZXh0ZW5kcyAoXG4gICAge1xuICAgICAgcHVzaDogYW55O1xuICAgICAgdW5zaGlmdDogYW55O1xuICAgICAgYXNzaWduOiBhbnk7XG4gICAgICBzY2hlbWE6IFNjaGVtYTtcbiAgICB9XG4gICkgP1xuICAgIFNcbiAgOiBTIGV4dGVuZHMgc2NoZW1hLk9iamVjdDxpbmZlciBUPiA/IEV4dHJhY3RPYmplY3Q8VD5cbiAgOiBTIGV4dGVuZHMgRXhjbHVkZTxTY2hlbWEsIHsgW0s6IHN0cmluZ106IGFueSB9PiA/IG5ldmVyXG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IFNjaGVtYSB9ID8gRXh0cmFjdE9iamVjdDxTPlxuICA6IG5ldmVyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFpQkEsTUFBTSxRQUFRLHVCQUF1QjtBQUl0RCxlQUFlLFNBQVNDLGlCQUFpQkEsQ0FHdkNDLENBQUksRUFBRUMsTUFBUyxFQUFvQztFQUNuRCxJQUFJLE9BQU9ELENBQUMsS0FBSyxRQUFRLElBQUlBLENBQUMsS0FBS0UsU0FBUyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osQ0FBQyxDQUFDLEVBQUU7RUFDbEUsSUFBSUEsQ0FBQyxZQUFZRixNQUFNLENBQUNPLFVBQVUsRUFBRTtJQUNsQyxPQUFPSixNQUFNLENBQUNELENBQVEsQ0FBQztFQUN6QjtFQUNBLE1BQU1NLE9BQStCLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxLQUMvQlIsQ0FBQyxZQUFZRixNQUFNLENBQUNTLE1BQU0sR0FBSVAsQ0FBQyxDQUFTRixNQUFNLEdBQUdFLENBQUMsQ0FDdkQ7RUFDRCxLQUFLLE1BQU1TLENBQUMsSUFBSUgsT0FBTyxFQUFFO0lBQ3ZCLElBQUksQ0FBQ0EsT0FBTyxDQUFDRyxDQUFDLENBQUMsRUFBRTtJQUNqQixNQUFNQyxVQUFVLEdBQUdYLGlCQUFpQixDQUFDTyxPQUFPLENBQUNHLENBQUMsQ0FBQyxFQUFFUixNQUFNLENBQUM7SUFDeEQsSUFBSVMsVUFBVSxFQUFFLE9BQU9BLFVBQVU7RUFDbkM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJleHRyYWN0Q29sbGVjdGlvbiIsInMiLCJtYXBwZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwib2JqQ29weSIsIl9leHRlbmRzIiwiT2JqZWN0IiwiayIsImNvbGxlY3Rpb24iXSwic291cmNlcyI6WyIuLi9zcmMvZXh0cmFjdENvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBFeHRyYWN0T2JqZWN0IH0gZnJvbSAnLi9leHRyYWN0T2JqZWN0LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXh0cmFjdENvbGxlY3Rpb248XG4gIE0gZXh0ZW5kcyA8QyBleHRlbmRzIHNjaGVtYS5Db2xsZWN0aW9uPihjb2xsZWN0aW9uOiBDKSA9PiBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4+KHM6IFMsIG1hcHBlcjogTSk6IEV4dHJhY3RDb2xsZWN0aW9uPFM+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JyB8fCBzID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShzKSkgcmV0dXJuO1xuICBpZiAocyBpbnN0YW5jZW9mIHNjaGVtYS5Db2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuIG1hcHBlcihzIGFzIGFueSk7XG4gIH1cbiAgY29uc3Qgb2JqQ29weTogUmVjb3JkPHN0cmluZywgU2NoZW1hPiA9IHtcbiAgICAuLi4ocyBpbnN0YW5jZW9mIHNjaGVtYS5PYmplY3QgPyAocyBhcyBhbnkpLnNjaGVtYSA6IHMpLFxuICB9O1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqQ29weSkge1xuICAgIGlmICghb2JqQ29weVtrXSkgY29udGludWU7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IGV4dHJhY3RDb2xsZWN0aW9uKG9iakNvcHlba10sIG1hcHBlcik7XG4gICAgaWYgKGNvbGxlY3Rpb24pIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RDb2xsZWN0aW9uPFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQ+ID1cbiAgUyBleHRlbmRzIChcbiAgICB7XG4gICAgICBwdXNoOiBhbnk7XG4gICAgICB1bnNoaWZ0OiBhbnk7XG4gICAgICBhc3NpZ246IGFueTtcbiAgICAgIHNjaGVtYTogU2NoZW1hO1xuICAgIH1cbiAgKSA/XG4gICAgU1xuICA6IFMgZXh0ZW5kcyBzY2hlbWEuT2JqZWN0PGluZmVyIFQ+ID8gRXh0cmFjdE9iamVjdDxUPlxuICA6IFMgZXh0ZW5kcyBFeGNsdWRlPFNjaGVtYSwgeyBbSzogc3RyaW5nXTogYW55IH0+ID8gbmV2ZXJcbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogU2NoZW1hIH0gPyBFeHRyYWN0T2JqZWN0PFM+XG4gIDogbmV2ZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFpQkEsTUFBTSxRQUFRLHVCQUF1QjtBQUl0RCxlQUFlLFNBQVNDLGlCQUFpQkEsQ0FHdkNDLENBQUksRUFBRUMsTUFBUyxFQUFvQztFQUNuRCxJQUFJLE9BQU9ELENBQUMsS0FBSyxRQUFRLElBQUlBLENBQUMsS0FBS0UsU0FBUyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osQ0FBQyxDQUFDLEVBQUU7RUFDbEUsSUFBSUEsQ0FBQyxZQUFZRixNQUFNLENBQUNPLFVBQVUsRUFBRTtJQUNsQyxPQUFPSixNQUFNLENBQUNELENBQVEsQ0FBQztFQUN6QjtFQUNBLE1BQU1NLE9BQStCLEdBQUFDLFFBQUEsS0FDL0JQLENBQUMsWUFBWUYsTUFBTSxDQUFDVSxNQUFNLEdBQUlSLENBQUMsQ0FBU0YsTUFBTSxHQUFHRSxDQUFDLENBQ3ZEO0VBQ0QsS0FBSyxNQUFNUyxDQUFDLElBQUlILE9BQU8sRUFBRTtJQUN2QixJQUFJLENBQUNBLE9BQU8sQ0FBQ0csQ0FBQyxDQUFDLEVBQUU7SUFDakIsTUFBTUMsVUFBVSxHQUFHWCxpQkFBaUIsQ0FBQ08sT0FBTyxDQUFDRyxDQUFDLENBQUMsRUFBRVIsTUFBTSxDQUFDO0lBQ3hELElBQUlTLFVBQVUsRUFBRSxPQUFPQSxVQUFVO0VBQ25DO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
package/legacy/index.js CHANGED
@@ -1,6 +1,3 @@
1
- Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {
2
- return Object.prototype.hasOwnProperty.call(it, key);
3
- };
4
1
  export { default as RestEndpoint } from './RestEndpoint.js';
5
2
  export { getUrlBase, getUrlTokens } from './RestHelpers.js';
6
3
  export { default as resource } from './resource.js';
@@ -9,4 +6,4 @@ export { default as hookifyResource } from './hookifyResource.js';
9
6
  export { default as NetworkError } from './NetworkError.js';
10
7
  export * from '@data-client/endpoint';
11
8
  export * from './RestEndpoint.js';
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlZmF1bHQiLCJSZXN0RW5kcG9pbnQiLCJnZXRVcmxCYXNlIiwiZ2V0VXJsVG9rZW5zIiwicmVzb3VyY2UiLCJjcmVhdGVSZXNvdXJjZSIsImhvb2tpZnlSZXNvdXJjZSIsIk5ldHdvcmtFcnJvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJPYmplY3QuaGFzT3duID1cbiAgT2JqZWN0Lmhhc093biB8fFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG4gIH07XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlc3RFbmRwb2ludCB9IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgR2V0RW5kcG9pbnQsXG4gIE11dGF0ZUVuZHBvaW50LFxuICBEZWZhdWx0cyxcbiAgUmVzdEdlbmVyaWNzLFxuICBGZXRjaEdldCxcbiAgRmV0Y2hNdXRhdGUsXG4gIFJlc3RGZXRjaCxcbiAgUmVzdFR5cGUsXG4gIFJlc3RJbnN0YW5jZSxcbiAgS2V5b2ZSZXN0RW5kcG9pbnQsXG4gIFJlc3RFbmRwb2ludENvbnN0cnVjdG9yT3B0aW9ucyxcbiAgQWRkRW5kcG9pbnQsXG4gIFBhZ2luYXRpb25GaWVsZEVuZHBvaW50LFxuICBQYWdpbmF0aW9uRW5kcG9pbnQsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmV4cG9ydCB0eXBlIHsgUmVzdEVuZHBvaW50IGFzIElSZXN0RW5kcG9pbnQgfSBmcm9tICcuL1Jlc3RFbmRwb2ludFR5cGVzLmpzJztcbmV4cG9ydCB7IGdldFVybEJhc2UsIGdldFVybFRva2VucyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjcmVhdGVSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2UuanMnO1xuZXhwb3J0IHR5cGUge1xuICBSZXNvdXJjZSxcbiAgUmVzb3VyY2VPcHRpb25zLFxuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVzb3VyY2VFeHRlbnNpb24sXG4gIFJlc291cmNlRW5kcG9pbnRFeHRlbnNpb25zLFxuICBDdXN0b21SZXNvdXJjZSxcbiAgRXh0ZW5kZWRSZXNvdXJjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZUV4dGVuc2lvblR5cGVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgaG9va2lmeVJlc291cmNlIH0gZnJvbSAnLi9ob29raWZ5UmVzb3VyY2UuanMnO1xuZXhwb3J0IHR5cGUge1xuICBIb29rUmVzb3VyY2UsXG4gIEhvb2thYmxlRW5kcG9pbnRJbnRlcmZhY2UsXG59IGZyb20gJy4vaG9va2lmeVJlc291cmNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTmV0d29ya0Vycm9yIH0gZnJvbSAnLi9OZXR3b3JrRXJyb3IuanMnO1xuZXhwb3J0IHR5cGUgeyBPcHRpb25zVG9GdW5jdGlvbiB9IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuZXhwb3J0IHR5cGUge1xuICBTaG9ydGVuUGF0aCxcbiAgUGF0aEFyZ3MsXG4gIFBhdGhLZXlzLFxuICBLZXlzVG9BcmdzLFxuICBQYXRoQXJnc0FuZFNlYXJjaCxcbn0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuXG5leHBvcnQgKiBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNQSxDQUFDQyxFQUFFLEVBQUVDLEdBQUcsRUFBRTtFQUNsRCxPQUFPSCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLEVBQUUsRUFBRUMsR0FBRyxDQUFDO0FBQ3RELENBQUM7QUFDSCxTQUFTSSxPQUFPLElBQUlDLFlBQVksUUFBUSxtQkFBbUI7QUFrQjNELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxRQUFRLGtCQUFrQjtBQUMzRCxTQUFTSCxPQUFPLElBQUlJLFFBQVEsUUFBUSxlQUFlO0FBQ25ELFNBQVNKLE9BQU8sSUFBSUssY0FBYyxRQUFRLGVBQWU7QUFhekQsU0FBU0wsT0FBTyxJQUFJTSxlQUFlLFFBQVEsc0JBQXNCO0FBS2pFLFNBQVNOLE9BQU8sSUFBSU8sWUFBWSxRQUFRLG1CQUFtQjtBQVUzRCxjQUFjLHVCQUF1QjtBQUNyQyxjQUFjLG1CQUFtQiIsImlnbm9yZUxpc3QiOltdfQ==
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0IiwiUmVzdEVuZHBvaW50IiwiZ2V0VXJsQmFzZSIsImdldFVybFRva2VucyIsInJlc291cmNlIiwiY3JlYXRlUmVzb3VyY2UiLCJob29raWZ5UmVzb3VyY2UiLCJOZXR3b3JrRXJyb3IiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXN0RW5kcG9pbnQgfSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgRGVmYXVsdHMsXG4gIFJlc3RHZW5lcmljcyxcbiAgRmV0Y2hHZXQsXG4gIEZldGNoTXV0YXRlLFxuICBSZXN0RmV0Y2gsXG4gIFJlc3RUeXBlLFxuICBSZXN0SW5zdGFuY2UsXG4gIEtleW9mUmVzdEVuZHBvaW50LFxuICBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnMsXG4gIEFkZEVuZHBvaW50LFxuICBQYWdpbmF0aW9uRmllbGRFbmRwb2ludCxcbiAgUGFnaW5hdGlvbkVuZHBvaW50LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5leHBvcnQgdHlwZSB7IFJlc3RFbmRwb2ludCBhcyBJUmVzdEVuZHBvaW50IH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlcy5qcyc7XG5leHBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMgfSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY3JlYXRlUmVzb3VyY2UgfSBmcm9tICcuL3Jlc291cmNlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgUmVzb3VyY2UsXG4gIFJlc291cmNlT3B0aW9ucyxcbiAgUmVzb3VyY2VHZW5lcmljcyxcbiAgUmVzb3VyY2VJbnRlcmZhY2UsXG59IGZyb20gJy4vcmVzb3VyY2VUeXBlcy5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIFJlc291cmNlRXh0ZW5zaW9uLFxuICBSZXNvdXJjZUVuZHBvaW50RXh0ZW5zaW9ucyxcbiAgQ3VzdG9tUmVzb3VyY2UsXG4gIEV4dGVuZGVkUmVzb3VyY2UsXG59IGZyb20gJy4vcmVzb3VyY2VFeHRlbnNpb25UeXBlcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGhvb2tpZnlSZXNvdXJjZSB9IGZyb20gJy4vaG9va2lmeVJlc291cmNlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgSG9va1Jlc291cmNlLFxuICBIb29rYWJsZUVuZHBvaW50SW50ZXJmYWNlLFxufSBmcm9tICcuL2hvb2tpZnlSZXNvdXJjZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5ldHdvcmtFcnJvciB9IGZyb20gJy4vTmV0d29ya0Vycm9yLmpzJztcbmV4cG9ydCB0eXBlIHsgT3B0aW9uc1RvRnVuY3Rpb24gfSBmcm9tICcuL09wdGlvbnNUb0Z1bmN0aW9uLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgU2hvcnRlblBhdGgsXG4gIFBhdGhBcmdzLFxuICBQYXRoS2V5cyxcbiAgS2V5c1RvQXJncyxcbiAgUGF0aEFyZ3NBbmRTZWFyY2gsXG59IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcblxuZXhwb3J0ICogZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcbmV4cG9ydCAqIGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxJQUFJQyxZQUFZLFFBQVEsbUJBQW1CO0FBa0IzRCxTQUFTQyxVQUFVLEVBQUVDLFlBQVksUUFBUSxrQkFBa0I7QUFDM0QsU0FBU0gsT0FBTyxJQUFJSSxRQUFRLFFBQVEsZUFBZTtBQUNuRCxTQUFTSixPQUFPLElBQUlLLGNBQWMsUUFBUSxlQUFlO0FBYXpELFNBQVNMLE9BQU8sSUFBSU0sZUFBZSxRQUFRLHNCQUFzQjtBQUtqRSxTQUFTTixPQUFPLElBQUlPLFlBQVksUUFBUSxtQkFBbUI7QUFVM0QsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyxtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=