From 55a5a619e14558b3b225f41fccf3442218c83427 Mon Sep 17 00:00:00 2001 From: STAC Browser CI Date: Sun, 26 Jan 2025 20:21:44 +0000 Subject: [PATCH] deploy: 90c53d58670382b72712ff5d66a46626bbcf89d3 --- index.html | 2 +- js/{287.fa584da8.js => 287.d53cc4de.js} | 4 ++-- js/287.d53cc4de.js.map | 1 + js/287.fa584da8.js.map | 1 - js/{app.6fa6abd7.js => app.5edca583.js} | 4 ++-- js/{app.6fa6abd7.js.map => app.5edca583.js.map} | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) rename js/{287.fa584da8.js => 287.d53cc4de.js} (96%) create mode 100644 js/287.d53cc4de.js.map delete mode 100644 js/287.fa584da8.js.map rename js/{app.6fa6abd7.js => app.5edca583.js} (99%) rename js/{app.6fa6abd7.js.map => app.5edca583.js.map} (99%) diff --git a/index.html b/index.html index 41e9a55b9..bdbd056e0 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -STAC Browser
\ No newline at end of file +STAC Browser
\ No newline at end of file diff --git a/js/287.fa584da8.js b/js/287.d53cc4de.js similarity index 96% rename from js/287.fa584da8.js rename to js/287.d53cc4de.js index 108931522..6fd69a472 100644 --- a/js/287.fa584da8.js +++ b/js/287.d53cc4de.js @@ -12,5 +12,5 @@ * @license MIT */function F(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,o=0,s=Math.min(r,n);o-1?o(r):r}},38452:function(e,t,r){"use strict";var n=r(1189),o="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),s=Object.prototype.toString,a=Array.prototype.concat,i=r(30041),c=function(e){return"function"===typeof e&&"[object Function]"===s.call(e)},u=r(30592)(),l=function(e,t,r,n){if(t in e)if(!0===n){if(e[t]===r)return}else if(!c(n)||!n())return;u?i(e,t,r,!0):i(e,t,r)},f=function(e,t){var r=arguments.length>2?arguments[2]:{},s=n(t);o&&(s=a.call(s,Object.getOwnPropertySymbols(t)));for(var i=0;i0&&!o.call(e,0))for(var p=0;p0)for(var m=0;m=0&&"[object Function]"===t.call(e.callee)),n}},38403:function(e,t,r){"use strict";var n=r(1189),o=r(41333)(),s=r(36556),a=r(79612),i=s("Array.prototype.push"),c=s("Object.prototype.propertyIsEnumerable"),u=o?a.getOwnPropertySymbols:null;e.exports=function(e,t){if(null==e)throw new TypeError("target must be an object");var r=a(e);if(1===arguments.length)return r;for(var s=1;s=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,o=e=>{if("string"!==typeof e)throw new TypeError("Invalid argument expected string");const t=e.match(n);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},s=e=>"*"===e||"x"===e||"X"===e,a=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},i=(e,t)=>typeof e!==typeof t?[String(e),String(t)]:[e,t],c=(e,t)=>{if(s(e)||s(t))return 0;const[r,n]=i(a(e),a(t));return r>n?1:r{for(let r=0;r{const r=o(e),n=o(t),s=r.pop(),a=n.pop(),i=u(r,n);return 0!==i?i:s&&a?u(s.split("."),a.split(".")):s||a?s?-1:1:0},f=(e,t,r)=>{h(r);const n=l(e,t);return d[r].includes(n)},d={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},p=Object.keys(d),h=e=>{if("string"!==typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===p.indexOf(e))throw new Error(`Invalid operator, expected one of ${p.join("|")}`)},m=(e,t)=>{if(t=t.replace(/([><=]+)\s+/g,"$1"),t.includes("||"))return t.split("||").some((t=>m(e,t)));if(t.includes(" - ")){const[r,n]=t.split(" - ",2);return m(e,`>=${r} <=${n}`)}if(t.includes(" "))return t.trim().replace(/\s{2,}/g," ").split(" ").every((t=>m(e,t)));const r=t.match(/^([<>=~^]+)/),n=r?r[1]:"=";if("^"!==n&&"~"!==n)return f(e,t,n);const[s,a,i,,c]=o(e),[l,d,p,,h]=o(t),y=[s,a,i],g=[l,null!==d&&void 0!==d?d:"x",null!==p&&void 0!==p?p:"x"];if(h){if(!c)return!1;if(0!==u(y,g))return!1;if(-1===u(c.split("."),h.split(".")))return!1}const v=g.findIndex((e=>"0"!==e))+1,b="~"===n?2:v>1?v:1;return 0===u(y.slice(0,b),g.slice(0,b))&&-1!==u(y.slice(b),g.slice(b))},y=e=>"string"===typeof e&&/^[v\d]/.test(e)&&n.test(e),g=e=>"string"===typeof e&&/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/.test(e)},92646:function(e){class t{constructor(){}async createAjv(e){return e}async afterLoading(e,t,r){return e}async afterValidation(e,t,r,n){}}e.exports=t},80287:function(e,t,r){const n=r(88409),{createAjv:o,isUrl:s,loadSchemaFromUri:a,normalizePath:i,isObject:c}=r(3386),u=r(25078),l=(r(92646),r(73383));function f(){let e={id:null,type:null,version:null,valid:null,skipped:!1,messages:[],children:[],results:{core:[],extensions:{},custom:[]},apiList:!1};return e}async function d(e,t){const r={loader:u,schemas:null,schemaMap:{},strict:!1};t=Object.assign({},r,t),t.ajv=o(t),t.customValidator&&(t.ajv=await t.customValidator.createAjv(t.ajv));let n=f();if("string"===typeof e&&(n.id=i(e),e=await t.loader(e)),c(e))if(n.id=n.id||e.id,n.version=e.stac_version,n.type=e.type,Array.isArray(e.collections))e=e.collections,n.apiList=!0,t.verbose&&n.messages.push(`The file is a CollectionCollection. Validating all ${entries.length} collections, but ignoring the other parts of the response.`);else{if(!Array.isArray(e.features))return p(e,t,n);e=e.features,n.apiList=!0,t.verbose&&n.messages.push(`The file is a ItemCollection. Validating all ${entries.length} items, but ignoring the other parts of the response.`)}if(Array.isArray(e)&&e.length>0){for(const r of e){const e=await p(r,t);n.children.push(e)}return m(n)}return null}async function p(e,t,o=null){o||(o=f());let s=e;if(!o.id)if("string"===typeof s){o.id=i(s);try{s=await t.loader(s)}catch(c){return o.valid=!1,o.results.core.push({instancePath:"",message:c.message}),o}}else o.id=s.id;if(o.version=s.stac_version,o.type=s.type,t.customValidator&&(s=await t.customValidator.afterLoading(s,o,t)),"function"===typeof t.lintFn&&(o=await t.lintFn(e,o,t)),"string"!==typeof s.stac_version)return o.skipped=!0,o.messages.push("No STAC version found"),o;if(n.compare(s.stac_version,"1.0.0-rc.1","<"))return o.skipped=!0,o.messages.push("Can only validate STAC version >= 1.0.0-rc.1"),o;switch(s.type){case"FeatureCollection":return o.skipped=!0,o.messages.push("STAC ItemCollections not supported yet"),o;case"Catalog":case"Collection":case"Feature":break;default:return o.valid=!1,o.results.core.push({instancePath:"/type",message:"Can't detect type of the STAC object. Is the 'type' field missing or invalid?"}),o}await h("core",s.type,s,o,t);let a=[];Array.isArray(s.stac_extensions)&&(a=a.concat(s.stac_extensions),n.compare(s.stac_version,"1.0.0-rc.1","=")&&(a=a.map((e=>e.replace(/^(eo|projection|scientific|view)$/,"https://schemas.stacspec.org/v1.0.0-rc.1/extensions/$1/json-schema/schema.json")))));for(const r of a)await h("extensions",r,s,o,t);if(t.customValidator){const{default:e}=await r.e(5833).then(r.bind(r,75833)),n=e(s,!1,!1);try{const e=new l;await t.customValidator.afterValidation(n,e,o,t),o.results.custom=e.errors}catch(c){o.results.custom=[c]}finally{o.results.custom.length>0&&(o.valid=!1)}}return o}async function h(e,t,r,n,o){let a;switch(t){case"Feature":t="Item";case"Catalog":case"Collection":let e=t.toLowerCase();a=`https://schemas.stacspec.org/v${n.version}/${e}-spec/json-schema/${e}.json`;break;default:s(t)&&(a=t)}const i=(r=[])=>{!1!==n.valid&&(n.valid=0===r.length),"core"===e?n.results.core=r:n.results.extensions[t]=r};try{if("core"!==e&&!a)throw new Error("'stac_extensions' must contain a valid schema URL, not a shortcut.");const t=await y(o,a),n=t(r);n?i():i(t.errors)}catch(c){i([{message:c.message}])}}function m(e){return e.children.length>0&&(e.valid=Boolean(e.children.every((e=>e.valid)))),e}async function y(e,t){let r=e.ajv.getSchema(t);if(r)return r;try{json=await a(t,e)}catch(n){throw new Error(`Schema at '${t}' not found. Please ensure all entries in 'stac_extensions' are valid.`)}return json.$id||(json.$id=t),r=e.ajv.getSchema(json.$id),r||await e.ajv.compileAsync(json)}e.exports=d},86301:function(e,t,r){const{parse:n}=r(46579),o={iri:e=>{if("string"!==typeof e||0===e.length)return!1;const t=n(e);return!("absolute"!==t.reference&&"uri"!==t.reference||!t.scheme||!t.host&&!t.path)},"iri-reference":e=>{if("string"!==typeof e||0===e.length)return!1;const t=n(e);return!("absolute"!==t.reference&&"uri"!==t.reference||!t.scheme||!t.host&&!t.path)||t.path&&("relative"===t.reference||"uri"===t.reference)}};e.exports=o},25078:function(e,t,r){const n=r(86425);async function o(e){let t=await n.get(e);return t.data}e.exports=o},73383:function(e,t,r){const n=r(94148);class o{constructor(){this.errors=[]}truthy(...e){try{n(...e)}catch(t){this.errors.push(t)}}deepEqual(...e){try{n.deepEqual(...e)}catch(t){this.errors.push(t)}}deepStrictEqual(...e){try{n.deepStrictEqual(...e)}catch(t){this.errors.push(t)}}doesNotMatch(...e){try{n.doesNotMatch(...e)}catch(t){this.errors.push(t)}}async doesNotReject(...e){try{await n.doesNotReject(...e)}catch(t){this.errors.push(t)}}doesNotThrow(...e){try{n.doesNotThrow(...e)}catch(t){this.errors.push(t)}}equal(...e){try{n.equal(...e)}catch(t){this.errors.push(t)}}fail(...e){try{n.fail(...e)}catch(t){this.errors.push(t)}}ifError(...e){try{n.ifError(...e)}catch(t){this.errors.push(t)}}match(...e){try{n.match(...e)}catch(t){this.errors.push(t)}}notDeepEqual(...e){try{n.notDeepEqual(...e)}catch(t){this.errors.push(t)}}notDeepStrictEqual(...e){try{n.notDeepStrictEqual(...e)}catch(t){this.errors.push(t)}}notEqual(...e){try{n.notEqual(...e)}catch(t){this.errors.push(t)}}notStrictEqual(...e){try{n.notStrictEqual(...e)}catch(t){this.errors.push(t)}}ok(...e){try{n.ok(...e)}catch(t){this.errors.push(t)}}async rejects(...e){try{await n.rejects(...e)}catch(t){this.errors.push(t)}}strictEqual(...e){try{n.strictEqual(...e)}catch(t){this.errors.push(t)}}throws(...e){try{n.throws(...e)}catch(t){this.errors.push(t)}}}e.exports=o},3386:function(e,t,r){const n=r(63282),o=r(68182),s=r(86301),a=["http","https"];function i(e){return"object"===typeof e&&e===Object(e)&&!Array.isArray(e)}function c(e){if("string"===typeof e){let t=e.match(/^(\w+):\/\//i);if(t){if(!a.includes(t[1].toLowerCase()))throw new Error(`Given protocol "${t[1]}" is not supported.`);return!0}}return!1}function u(e){let t=new n({formats:s,allErrors:e.verbose,strict:!1,logger:!!e.verbose&&console,loadSchema:async t=>await l(t,e)});return o(t),e.strict&&(t.opts.strictSchema=!0,t.opts.strictNumbers=!0,t.opts.strictTuples=!0),t}async function l(e,t){return i(t.schemaMap)&&t.schemaMap[e]?e=t.schemaMap[e]:t.schemas&&(e=e.replace(/^https:\/\/schemas\.stacspec\.org\/v[^\/]+/,t.schemas)),await t.loader(e)}function f(e){return e.replace(/\\/g,"/").replace(/\/$/,"")}function d(e,t){let r={total:0,valid:0,invalid:0,malformed:null,skipped:0};return e.children.length>0?(r.total=e.children.length,r.valid=e.children.filter((e=>!0===e.valid)).length,r.invalid=e.children.filter((e=>!1===e.valid)).length,(t.lint||t.format)&&(r.malformed=e.children.filter((e=>e.lint&&!e.lint.valid)).length),r.skipped=e.children.filter((e=>e.skipped)).length):(r.total=1,r.valid=!0===e.valid?1:0,r.invalid=!1===e.valid?1:0,e.lint&&(r.malformed=e.lint.valid?0:1),r.skipped=e.skipped?1:0),r}function p(e){let t=e.message;if(i(e.params)&&Object.keys(e.params).length>0){let r=Object.entries(e.params).map((([e,t])=>{let r=e.replace(/([^A-Z]+)([A-Z])/g,"$1 $2").toLowerCase();return`${r}: ${t}`})).join(", ");t+=` (${r})`}return e.instancePath?`${e.instancePath} ${t}`:e.schemaPath?`${t}, for schema ${e.schemaPath}`:t||String(e)}e.exports={createAjv:u,getSummary:d,isObject:i,isUrl:c,loadSchemaFromUri:l,makeAjvErrorMessage:p,normalizePath:f}},46579:function(e,t){ /** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ -(function(e,r){r(t)})(0,(function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),r=0;r1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,o=1;o= 0x80 (not a basic code point)","invalid-input":"Invalid input"},j=p-h,O=Math.floor,P=String.fromCharCode;function N(e){throw new RangeError(S[e])}function x(e,t){var r=[],n=e.length;while(n--)r[n]=t(e[n]);return r}function k(e,t){var r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(E,".");var o=e.split("."),s=x(o,t).join(".");return n+s}function R(e){var t=[],r=0,n=e.length;while(r=55296&&o<=56319&&r>1,e+=O(e/t);e>j*m>>1;n+=p)e=O(e/j);return O(n+(j+1)*e/(e+y))},D=function(e){var t=[],r=e.length,n=0,o=b,s=v,a=e.lastIndexOf(w);a<0&&(a=0);for(var i=0;i=128&&N("not-basic"),t.push(e.charCodeAt(i));for(var c=a>0?a+1:0;c=r&&N("invalid-input");var y=C(e.charCodeAt(c++));(y>=p||y>O((d-n)/l))&&N("overflow"),n+=y*l;var g=f<=s?h:f>=s+m?m:f-s;if(yO(d/$)&&N("overflow"),l*=$}var _=t.length+1;s=I(n-u,_,0==u),O(n/_)>d-o&&N("overflow"),o+=O(n/_),n%=_,t.splice(n++,0,o)}return String.fromCodePoint.apply(String,t)},q=function(e){var t=[];e=R(e);var r=e.length,n=b,o=0,s=v,a=!0,i=!1,c=void 0;try{for(var u,l=e[Symbol.iterator]();!(a=(u=l.next()).done);a=!0){var f=u.value;f<128&&t.push(P(f))}}catch(H){i=!0,c=H}finally{try{!a&&l.return&&l.return()}finally{if(i)throw c}}var y=t.length,g=y;y&&t.push(w);while(g=n&&k<$&&($=k)}}catch(H){E=!0,S=H}finally{try{!_&&x.return&&x.return()}finally{if(E)throw S}}var T=g+1;$-n>O((d-o)/T)&&N("overflow"),o+=($-n)*T,n=$;var C=!0,D=!1,q=void 0;try{for(var F,M=e[Symbol.iterator]();!(C=(F=M.next()).done);C=!0){var z=F.value;if(zd&&N("overflow"),z==n){for(var U=o,L=p;;L+=p){var V=L<=s?h:L>=s+m?m:L-s;if(U>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase(),r}function V(e){var t="",r=0,n=e.length;while(r=194&&o<224){if(n-r>=6){var s=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&o)<<6|63&s)}else t+=e.substr(r,6);r+=6}else if(o>=224){if(n-r>=9){var a=parseInt(e.substr(r+4,2),16),i=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&o)<<12|(63&a)<<6|63&i)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function B(e,t){function r(e){var r=V(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,L).replace(t.PCT_ENCODED,o)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,L).replace(t.PCT_ENCODED,o)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,L).replace(t.PCT_ENCODED,o)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,L).replace(t.PCT_ENCODED,o)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,L).replace(t.PCT_ENCODED,o)),e}function K(e){return e.replace(/^0*(.*)/,"$1")||"0"}function H(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=l(r,2),o=n[1];return o?o.split(".").map(K).join("."):e}function G(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=l(r,3),o=n[1],s=n[2];if(o){for(var a=o.toLowerCase().split("::").reverse(),i=l(a,2),c=i[0],u=i[1],f=u?u.split(":").map(K):[],d=c.split(":").map(K),p=t.IPV4ADDRESS.test(d[d.length-1]),h=p?7:8,m=d.length-h,y=Array(h),g=0;g1){var $=y.slice(0,b.index),_=y.slice(b.index+b.length);w=$.join(":")+"::"+_.join(":")}else w=y.join(":");return s&&(w+="%"+s),w}return e}var J=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,W=void 0==="".match(/(){0}/)[1];function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?u:c;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var o=e.match(J);if(o){W?(r.scheme=o[1],r.userinfo=o[3],r.host=o[4],r.port=parseInt(o[5],10),r.path=o[6]||"",r.query=o[7],r.fragment=o[8],isNaN(r.port)&&(r.port=o[5])):(r.scheme=o[1]||void 0,r.userinfo=-1!==e.indexOf("@")?o[3]:void 0,r.host=-1!==e.indexOf("//")?o[4]:void 0,r.port=parseInt(o[5],10),r.path=o[6]||"",r.query=-1!==e.indexOf("?")?o[7]:void 0,r.fragment=-1!==e.indexOf("#")?o[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?o[4]:void 0)),r.host&&(r.host=G(H(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var s=U[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||s&&s.unicodeSupport)B(r,n);else{if(r.host&&(t.domainHost||s&&s.domainHost))try{r.host=z.toASCII(r.host.replace(n.PCT_ENCODED,V).toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+a}B(r,c)}s&&s.parse&&s.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function X(e,t){var r=!1!==t.iri?u:c,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(G(H(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"!==typeof e.port&&"string"!==typeof e.port||(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}var Y=/^\.\.?\//,Q=/^\/\.(\/|$)/,ee=/^\/\.\.(\/|$)/,te=/^\/?(?:.|\n)*?(?=\/|$)/;function re(e){var t=[];while(e.length)if(e.match(Y))e=e.replace(Y,"");else if(e.match(Q))e=e.replace(Q,"/");else if(e.match(ee))e=e.replace(ee,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(te);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?u:c,n=[],o=U[(t.scheme||e.scheme||"").toLowerCase()];if(o&&o.serialize&&o.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||o&&o.domainHost)try{e.host=t.iri?z.toUnicode(e.host):z.toASCII(e.host.replace(r.PCT_ENCODED,V).toLowerCase())}catch(i){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+i}B(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var s=X(e,t);if(void 0!==s&&("suffix"!==t.reference&&n.push("//"),n.push(s),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var a=e.path;t.absolutePath||o&&o.absolutePath||(a=re(a)),void 0===s&&(a=a.replace(/^\/\//,"/%2F")),n.push(a)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function oe(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3],o={};return n||(e=Z(ne(e,r),r),t=Z(ne(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=re(t.path||""),o.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=re(t.path||""),o.query=t.query):(t.path?("/"===t.path.charAt(0)?o.path=re(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path:o.path="/"+t.path,o.path=re(o.path)),o.query=t.query):(o.path=e.path,void 0!==t.query?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function se(e,t,r){var n=a({scheme:"null"},r);return ne(oe(Z(e,n),Z(t,n),n,!0),n)}function ae(e,t){return"string"===typeof e?e=ne(Z(e,t),t):"object"===n(e)&&(e=Z(ne(e,t),t)),e}function ie(e,t,r){return"string"===typeof e?e=ne(Z(e,r),r):"object"===n(e)&&(e=ne(e,r)),"string"===typeof t?t=ne(Z(t,r),r):"object"===n(t)&&(t=ne(t,r)),e===t}function ce(e,t){return e&&e.toString().replace(t&&t.iri?u.ESCAPE:c.ESCAPE,L)}function ue(e,t){return e&&e.toString().replace(t&&t.iri?u.PCT_ENCODED:c.PCT_ENCODED,V)}var le={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},fe={scheme:"https",domainHost:le.domainHost,parse:le.parse,serialize:le.serialize};function de(e){return"boolean"===typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var pe={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=de(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e,t){if(e.port!==(de(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"===typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var r=e.resourceName.split("?"),n=l(r,2),o=n[0],s=n[1];e.path=o&&"/"!==o?o:void 0,e.query=s,e.resourceName=void 0}return e.fragment=void 0,e}},he={scheme:"wss",domainHost:pe.domainHost,parse:pe.parse,serialize:pe.serialize},me={},ye=!0,ge="[A-Za-z0-9\\-\\.\\_\\~"+(ye?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",ve="[0-9A-Fa-f]",be=r(r("%[EFef]"+ve+"%"+ve+ve+"%"+ve+ve)+"|"+r("%[89A-Fa-f]"+ve+"%"+ve+ve)+"|"+r("%"+ve+ve)),we="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",$e="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",_e=t($e,'[\\"\\\\]'),Ee="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Se=new RegExp(ge,"g"),je=new RegExp(be,"g"),Oe=new RegExp(t("[^]",we,"[\\.]",'[\\"]',_e),"g"),Pe=new RegExp(t("[^]",ge,Ee),"g"),Ne=Pe;function xe(e){var t=V(e);return t.match(Se)?t:e}var ke={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var o=!1,s={},a=r.query.split("&"),i=0,c=a.length;it=>{const r=s.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),c=e=>(e=e.toLowerCase(),t=>i(t)===e),u=e=>t=>typeof t===e,{isArray:l}=Array,f=u("undefined");function d(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&y(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const p=c("ArrayBuffer");function h(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t}const m=u("string"),y=u("function"),g=u("number"),v=e=>null!==e&&"object"===typeof e,b=e=>!0===e||!1===e,w=e=>{if("object"!==i(e))return!1;const t=a(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},$=c("Date"),_=c("File"),E=c("Blob"),S=c("FileList"),j=e=>v(e)&&y(e.pipe),O=e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||y(e.append)&&("formdata"===(t=i(e))||"object"===t&&y(e.toString)&&"[object FormData]"===e.toString()))},P=c("URLSearchParams"),[N,x,k,R]=["ReadableStream","Request","Response","Headers"].map(c),T=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function C(e,t,{allOwnKeys:r=!1}={}){if(null===e||"undefined"===typeof e)return;let n,o;if("object"!==typeof e&&(e=[e]),l(e))for(n=0,o=e.length;n0)if(n=r[o],t===n.toLowerCase())return n;return null}const I=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:r.g)(),D=e=>!f(e)&&e!==I;function q(){const{caseless:e}=D(this)&&this||{},t={},r=(r,n)=>{const o=e&&A(t,n)||n;w(t[o])&&w(r)?t[o]=q(t[o],r):w(r)?t[o]=q({},r):l(r)?t[o]=r.slice():t[o]=r};for(let n=0,o=arguments.length;n(C(t,((t,n)=>{r&&y(t)?e[n]=o(t,r):e[n]=t}),{allOwnKeys:n}),e),M=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),z=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},U=(e,t,r,n)=>{let o,s,i;const c={};if(t=t||{},null==e)return t;do{o=Object.getOwnPropertyNames(e),s=o.length;while(s-- >0)i=o[s],n&&!n(i,e,t)||c[i]||(t[i]=e[i],c[i]=!0);e=!1!==r&&a(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},L=(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},V=e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!g(t))return null;const r=new Array(t);while(t-- >0)r[t]=e[t];return r},B=(e=>t=>e&&t instanceof e)("undefined"!==typeof Uint8Array&&a(Uint8Array)),K=(e,t)=>{const r=e&&e[Symbol.iterator],n=r.call(e);let o;while((o=n.next())&&!o.done){const r=o.value;t.call(e,r[0],r[1])}},H=(e,t)=>{let r;const n=[];while(null!==(r=e.exec(t)))n.push(r);return n},G=c("HTMLFormElement"),J=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),W=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),Z=c("RegExp"),X=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};C(r,((r,o)=>{let s;!1!==(s=t(r,o,e))&&(n[o]=s||r)})),Object.defineProperties(e,n)},Y=e=>{X(e,((t,r)=>{if(y(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];y(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},Q=(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return l(e)?n(e):n(String(e).split(t)),r},ee=()=>{},te=(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,re="abcdefghijklmnopqrstuvwxyz",ne="0123456789",oe={DIGIT:ne,ALPHA:re,ALPHA_DIGIT:re+re.toUpperCase()+ne},se=(e=16,t=oe.ALPHA_DIGIT)=>{let r="";const{length:n}=t;while(e--)r+=t[Math.random()*n|0];return r};function ae(e){return!!(e&&y(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])}const ie=e=>{const t=new Array(10),r=(e,n)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const o=l(e)?[]:{};return C(e,((e,t)=>{const s=r(e,n+1);!f(s)&&(o[t]=s)})),t[n]=void 0,o}}return e};return r(e,0)},ce=c("AsyncFunction"),ue=e=>e&&(v(e)||y(e))&&y(e.then)&&y(e.catch),le=((e,t)=>e?setImmediate:t?((e,t)=>(I.addEventListener("message",(({source:r,data:n})=>{r===I&&n===e&&t.length&&t.shift()()}),!1),r=>{t.push(r),I.postMessage(e,"*")}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))("function"===typeof setImmediate,y(I.postMessage)),fe="undefined"!==typeof queueMicrotask?queueMicrotask.bind(I):"undefined"!==typeof process&&process.nextTick||le;var de={isArray:l,isArrayBuffer:p,isBuffer:d,isFormData:O,isArrayBufferView:h,isString:m,isNumber:g,isBoolean:b,isObject:v,isPlainObject:w,isReadableStream:N,isRequest:x,isResponse:k,isHeaders:R,isUndefined:f,isDate:$,isFile:_,isBlob:E,isRegExp:Z,isFunction:y,isStream:j,isURLSearchParams:P,isTypedArray:B,isFileList:S,forEach:C,merge:q,extend:F,trim:T,stripBOM:M,inherits:z,toFlatObject:U,kindOf:i,kindOfTest:c,endsWith:L,toArray:V,forEachEntry:K,matchAll:H,isHTMLForm:G,hasOwnProperty:W,hasOwnProp:W,reduceDescriptors:X,freezeMethods:Y,toObjectSet:Q,toCamelCase:J,noop:ee,toFiniteNumber:te,findKey:A,global:I,isContextDefined:D,ALPHABET:oe,generateString:se,isSpecCompliantForm:ae,toJSONObject:ie,isAsyncFn:ce,isThenable:ue,setImmediate:le,asap:fe};function pe(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}de.inherits(pe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:de.toJSONObject(this.config),code:this.code,status:this.status}}});const he=pe.prototype,me={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{me[e]={value:e}})),Object.defineProperties(pe,me),Object.defineProperty(he,"isAxiosError",{value:!0}),pe.from=(e,t,r,n,o,s)=>{const a=Object.create(he);return de.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),pe.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,s&&Object.assign(a,s),a};var ye=null;function ge(e){return de.isPlainObject(e)||de.isArray(e)}function ve(e){return de.endsWith(e,"[]")?e.slice(0,-2):e}function be(e,t,r){return e?e.concat(t).map((function(e,t){return e=ve(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}function we(e){return de.isArray(e)&&!e.some(ge)}const $e=de.toFlatObject(de,{},null,(function(e){return/^is[A-Z]/.test(e)}));function _e(e,t,r){if(!de.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=de.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!de.isUndefined(t[e])}));const o=r.metaTokens,s=r.visitor||f,a=r.dots,i=r.indexes,c=r.Blob||"undefined"!==typeof Blob&&Blob,u=c&&de.isSpecCompliantForm(t);if(!de.isFunction(s))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(de.isDate(e))return e.toISOString();if(!u&&de.isBlob(e))throw new pe("Blob is not supported. Use a Buffer instead.");return de.isArrayBuffer(e)||de.isTypedArray(e)?u&&"function"===typeof Blob?new Blob([e]):n.from(e):e}function f(e,r,n){let s=e;if(e&&!n&&"object"===typeof e)if(de.endsWith(r,"{}"))r=o?r:r.slice(0,-2),e=JSON.stringify(e);else if(de.isArray(e)&&we(e)||(de.isFileList(e)||de.endsWith(r,"[]"))&&(s=de.toArray(e)))return r=ve(r),s.forEach((function(e,n){!de.isUndefined(e)&&null!==e&&t.append(!0===i?be([r],n,a):null===i?r:r+"[]",l(e))})),!1;return!!ge(e)||(t.append(be(n,r,a),l(e)),!1)}const d=[],p=Object.assign($e,{defaultVisitor:f,convertValue:l,isVisitable:ge});function h(e,r){if(!de.isUndefined(e)){if(-1!==d.indexOf(e))throw Error("Circular reference detected in "+r.join("."));d.push(e),de.forEach(e,(function(e,n){const o=!(de.isUndefined(e)||null===e)&&s.call(t,e,de.isString(n)?n.trim():n,r,p);!0===o&&h(e,r?r.concat(n):[n])})),d.pop()}}if(!de.isObject(e))throw new TypeError("data must be an object");return h(e),t}function Ee(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Se(e,t){this._pairs=[],e&&_e(e,this,t)}const je=Se.prototype;function Oe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pe(e,t,r){if(!t)return e;const n=r&&r.encode||Oe;de.isFunction(r)&&(r={serialize:r});const o=r&&r.serialize;let s;if(s=o?o(t,r):de.isURLSearchParams(t)?t.toString():new Se(t,r).toString(n),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}je.append=function(e,t){this._pairs.push([e,t])},je.toString=function(e){const t=e?function(t){return e.call(this,t,Ee)}:Ee;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class Ne{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){de.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var xe=Ne,ke={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Re="undefined"!==typeof URLSearchParams?URLSearchParams:Se,Te="undefined"!==typeof FormData?FormData:null,Ce="undefined"!==typeof Blob?Blob:null,Ae={isBrowser:!0,classes:{URLSearchParams:Re,FormData:Te,Blob:Ce},protocols:["http","https","file","blob","url","data"]};const Ie="undefined"!==typeof window&&"undefined"!==typeof document,De="object"===typeof navigator&&navigator||void 0,qe=Ie&&(!De||["ReactNative","NativeScript","NS"].indexOf(De.product)<0),Fe=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)(),Me=Ie&&window.location.href||"http://localhost";var ze=Object.freeze({__proto__:null,hasBrowserEnv:Ie,hasStandardBrowserWebWorkerEnv:Fe,hasStandardBrowserEnv:qe,navigator:De,origin:Me}),Ue={...ze,...Ae};function Le(e,t){return _e(e,new Ue.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return Ue.isNode&&de.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}function Ve(e){return de.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}function Be(e){const t={},r=Object.keys(e);let n;const o=r.length;let s;for(n=0;n=e.length;if(s=!s&&de.isArray(n)?n.length:s,i)return de.hasOwnProp(n,s)?n[s]=[n[s],r]:n[s]=r,!a;n[s]&&de.isObject(n[s])||(n[s]=[]);const c=t(e,r,n[s],o);return c&&de.isArray(n[s])&&(n[s]=Be(n[s])),!a}if(de.isFormData(e)&&de.isFunction(e.entries)){const r={};return de.forEachEntry(e,((e,n)=>{t(Ve(e),n,r,0)})),r}return null}function He(e,t,r){if(de.isString(e))try{return(t||JSON.parse)(e),de.trim(e)}catch(n){if("SyntaxError"!==n.name)throw n}return(r||JSON.stringify)(e)}const Ge={transitional:ke,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,o=de.isObject(e);o&&de.isHTMLForm(e)&&(e=new FormData(e));const s=de.isFormData(e);if(s)return n?JSON.stringify(Ke(e)):e;if(de.isArrayBuffer(e)||de.isBuffer(e)||de.isStream(e)||de.isFile(e)||de.isBlob(e)||de.isReadableStream(e))return e;if(de.isArrayBufferView(e))return e.buffer;if(de.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Le(e,this.formSerializer).toString();if((a=de.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return _e(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||n?(t.setContentType("application/json",!1),He(e)):e}],transformResponse:[function(e){const t=this.transitional||Ge.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(de.isResponse(e)||de.isReadableStream(e))return e;if(e&&de.isString(e)&&(r&&!this.responseType||n)){const r=t&&t.silentJSONParsing,s=!r&&n;try{return JSON.parse(e)}catch(o){if(s){if("SyntaxError"===o.name)throw pe.from(o,pe.ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ue.classes.FormData,Blob:Ue.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};de.forEach(["delete","get","head","post","put","patch"],(e=>{Ge.headers[e]={}}));var Je=Ge;const We=de.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Ze=e=>{const t={};let r,n,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),r=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!r||t[r]&&We[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t};const Xe=Symbol("internals");function Ye(e){return e&&String(e).trim().toLowerCase()}function Qe(e){return!1===e||null==e?e:de.isArray(e)?e.map(Qe):String(e)}function et(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;while(n=r.exec(e))t[n[1]]=n[2];return t}const tt=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function rt(e,t,r,n,o){return de.isFunction(n)?n.call(this,t,r):(o&&(t=r),de.isString(t)?de.isString(n)?-1!==t.indexOf(n):de.isRegExp(n)?n.test(t):void 0:void 0)}function nt(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}function ot(e,t){const r=de.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}class st{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function o(e,t,r){const o=Ye(t);if(!o)throw new Error("header name must be a non-empty string");const s=de.findKey(n,o);(!s||void 0===n[s]||!0===r||void 0===r&&!1!==n[s])&&(n[s||t]=Qe(e))}const s=(e,t)=>de.forEach(e,((e,r)=>o(e,r,t)));if(de.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(de.isString(e)&&(e=e.trim())&&!tt(e))s(Ze(e),t);else if(de.isHeaders(e))for(const[a,i]of e.entries())o(i,a,r);else null!=e&&o(t,e,r);return this}get(e,t){if(e=Ye(e),e){const r=de.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return et(e);if(de.isFunction(t))return t.call(this,e,r);if(de.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ye(e),e){const r=de.findKey(this,e);return!(!r||void 0===this[r]||t&&!rt(this,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function o(e){if(e=Ye(e),e){const o=de.findKey(r,e);!o||t&&!rt(r,r[o],o,t)||(delete r[o],n=!0)}}return de.isArray(e)?e.forEach(o):o(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;while(r--){const o=t[r];e&&!rt(this,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const t=this,r={};return de.forEach(this,((n,o)=>{const s=de.findKey(r,o);if(s)return t[s]=Qe(n),void delete t[o];const a=e?nt(o):String(o).trim();a!==o&&delete t[o],t[a]=Qe(n),r[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return de.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&de.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=this[Xe]=this[Xe]={accessors:{}},r=t.accessors,n=this.prototype;function o(e){const t=Ye(e);r[t]||(ot(n,e),r[t]=!0)}return de.isArray(e)?e.forEach(o):o(e),this}}st.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),de.reduceDescriptors(st.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),de.freezeMethods(st);var at=st;function it(e,t){const r=this||Je,n=t||r,o=at.from(n.headers);let s=n.data;return de.forEach(e,(function(e){s=e.call(r,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function ct(e){return!(!e||!e.__CANCEL__)}function ut(e,t,r){pe.call(this,null==e?"canceled":e,pe.ERR_CANCELED,t,r),this.name="CanceledError"}function lt(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new pe("Request failed with status code "+r.status,[pe.ERR_BAD_REQUEST,pe.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}function ft(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function dt(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o,s=0,a=0;return t=void 0!==t?t:1e3,function(i){const c=Date.now(),u=n[a];o||(o=c),r[s]=i,n[s]=c;let l=a,f=0;while(l!==s)f+=r[l++],l%=e;if(s=(s+1)%e,s===a&&(a=(a+1)%e),c-o{o=s,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)},i=(...e)=>{const t=Date.now(),i=t-o;i>=s?a(e,t):(r=e,n||(n=setTimeout((()=>{n=null,a(r)}),s-i)))},c=()=>r&&a(r);return[i,c]}de.inherits(ut,pe,{__CANCEL__:!0});const ht=(e,t,r=3)=>{let n=0;const o=dt(50,250);return pt((r=>{const s=r.loaded,a=r.lengthComputable?r.total:void 0,i=s-n,c=o(i),u=s<=a;n=s;const l={loaded:s,total:a,progress:a?s/a:void 0,bytes:i,rate:c||void 0,estimated:c&&a&&u?(a-s)/c:void 0,event:r,lengthComputable:null!=a,[t?"download":"upload"]:!0};e(l)}),r)},mt=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},yt=e=>(...t)=>de.asap((()=>e(...t)));var gt=Ue.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,Ue.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(Ue.origin),Ue.navigator&&/(msie|trident)/i.test(Ue.navigator.userAgent)):()=>!0,vt=Ue.hasStandardBrowserEnv?{write(e,t,r,n,o,s){const a=[e+"="+encodeURIComponent(t)];de.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),de.isString(n)&&a.push("path="+n),de.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function bt(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function wt(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function $t(e,t){return e&&!bt(t)?wt(e,t):t}const _t=e=>e instanceof at?{...e}:e;function Et(e,t){t=t||{};const r={};function n(e,t,r,n){return de.isPlainObject(e)&&de.isPlainObject(t)?de.merge.call({caseless:n},e,t):de.isPlainObject(t)?de.merge({},t):de.isArray(t)?t.slice():t}function o(e,t,r,o){return de.isUndefined(t)?de.isUndefined(e)?void 0:n(void 0,e,r,o):n(e,t,r,o)}function s(e,t){if(!de.isUndefined(t))return n(void 0,t)}function a(e,t){return de.isUndefined(t)?de.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function i(r,o,s){return s in t?n(r,o):s in e?n(void 0,r):void 0}const c={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:i,headers:(e,t,r)=>o(_t(e),_t(t),r,!0)};return de.forEach(Object.keys(Object.assign({},e,t)),(function(n){const s=c[n]||o,a=s(e[n],t[n],n);de.isUndefined(a)&&s!==i||(r[n]=a)})),r}var St=e=>{const t=Et({},e);let r,{data:n,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:a,headers:i,auth:c}=t;if(t.headers=i=at.from(i),t.url=Pe($t(t.baseURL,t.url),e.params,e.paramsSerializer),c&&i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),de.isFormData(n))if(Ue.hasStandardBrowserEnv||Ue.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(!1!==(r=i.getContentType())){const[e,...t]=r?r.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}if(Ue.hasStandardBrowserEnv&&(o&&de.isFunction(o)&&(o=o(t)),o||!1!==o&>(t.url))){const e=s&&a&&vt.read(a);e&&i.set(s,e)}return t};const jt="undefined"!==typeof XMLHttpRequest;var Ot=jt&&function(e){return new Promise((function(t,r){const n=St(e);let o=n.data;const s=at.from(n.headers).normalize();let a,i,c,u,l,{responseType:f,onUploadProgress:d,onDownloadProgress:p}=n;function h(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function y(){if(!m)return;const n=at.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),o=f&&"text"!==f&&"json"!==f?m.response:m.responseText,s={data:o,status:m.status,statusText:m.statusText,headers:n,config:e,request:m};lt((function(e){t(e),h()}),(function(e){r(e),h()}),s),m=null}m.open(n.method.toUpperCase(),n.url,!0),m.timeout=n.timeout,"onloadend"in m?m.onloadend=y:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(y)},m.onabort=function(){m&&(r(new pe("Request aborted",pe.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new pe("Network Error",pe.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const o=n.transitional||ke;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new pe(t,o.clarifyTimeoutError?pe.ETIMEDOUT:pe.ECONNABORTED,e,m)),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&de.forEach(s.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),de.isUndefined(n.withCredentials)||(m.withCredentials=!!n.withCredentials),f&&"json"!==f&&(m.responseType=n.responseType),p&&([c,l]=ht(p,!0),m.addEventListener("progress",c)),d&&m.upload&&([i,u]=ht(d),m.upload.addEventListener("progress",i),m.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(a=t=>{m&&(r(!t||t.type?new ut(null,e,m):t),m.abort(),m=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const g=ft(n.url);g&&-1===Ue.protocols.indexOf(g)?r(new pe("Unsupported protocol "+g+":",pe.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const Pt=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const o=function(e){if(!r){r=!0,a();const t=e instanceof Error?e:this.reason;n.abort(t instanceof pe?t:new ut(t instanceof Error?t.message:t))}};let s=t&&setTimeout((()=>{s=null,o(new pe(`timeout ${t} of ms exceeded`,pe.ETIMEDOUT))}),t);const a=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>e.addEventListener("abort",o)));const{signal:i}=n;return i.unsubscribe=()=>de.asap(a),i}};var Nt=Pt;const xt=function*(e,t){let r=e.byteLength;if(!t||r{const o=kt(e,t);let s,a=0,i=e=>{s||(s=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await o.next();if(t)return i(),void e.close();let s=n.byteLength;if(r){let e=a+=s;r(e)}e.enqueue(new Uint8Array(n))}catch(t){throw i(t),t}},cancel(e){return i(e),o.return()}},{highWaterMark:2})},Ct="function"===typeof fetch&&"function"===typeof Request&&"function"===typeof Response,At=Ct&&"function"===typeof ReadableStream,It=Ct&&("function"===typeof TextEncoder?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),Dt=(e,...t)=>{try{return!!e(...t)}catch(r){return!1}},qt=At&&Dt((()=>{let e=!1;const t=new Request(Ue.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Ft=65536,Mt=At&&Dt((()=>de.isReadableStream(new Response("").body))),zt={stream:Mt&&(e=>e.body)};Ct&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach((t=>{!zt[t]&&(zt[t]=de.isFunction(e[t])?e=>e[t]():(e,r)=>{throw new pe(`Response type '${t}' is not supported`,pe.ERR_NOT_SUPPORT,r)})}))})(new Response);const Ut=async e=>{if(null==e)return 0;if(de.isBlob(e))return e.size;if(de.isSpecCompliantForm(e)){const t=new Request(Ue.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return de.isArrayBufferView(e)||de.isArrayBuffer(e)?e.byteLength:(de.isURLSearchParams(e)&&(e+=""),de.isString(e)?(await It(e)).byteLength:void 0)},Lt=async(e,t)=>{const r=de.toFiniteNumber(e.getContentLength());return null==r?Ut(t):r};var Vt=Ct&&(async e=>{let{url:t,method:r,data:n,signal:o,cancelToken:s,timeout:a,onDownloadProgress:i,onUploadProgress:c,responseType:u,headers:l,withCredentials:f="same-origin",fetchOptions:d}=St(e);u=u?(u+"").toLowerCase():"text";let p,h=Nt([o,s&&s.toAbortSignal()],a);const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let y;try{if(c&&qt&&"get"!==r&&"head"!==r&&0!==(y=await Lt(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(de.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=mt(y,ht(yt(c)));n=Tt(r.body,Ft,e,t)}}de.isString(f)||(f=f?"include":"omit");const o="credentials"in Request.prototype;p=new Request(t,{...d,signal:h,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:o?f:void 0});let s=await fetch(p);const a=Mt&&("stream"===u||"response"===u);if(Mt&&(i||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=s[t]}));const t=de.toFiniteNumber(s.headers.get("content-length")),[r,n]=i&&mt(t,ht(yt(i),!0))||[];s=new Response(Tt(s.body,Ft,r,(()=>{n&&n(),m&&m()})),e)}u=u||"text";let g=await zt[de.findKey(zt,u)||"text"](s,e);return!a&&m&&m(),await new Promise(((t,r)=>{lt(t,r,{data:g,headers:at.from(s.headers),status:s.status,statusText:s.statusText,config:e,request:p})}))}catch(g){if(m&&m(),g&&"TypeError"===g.name&&/fetch/i.test(g.message))throw Object.assign(new pe("Network Error",pe.ERR_NETWORK,e,p),{cause:g.cause||g});throw pe.from(g,g&&g.code,e,p)}});const Bt={http:ye,xhr:Ot,fetch:Vt};de.forEach(Bt,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(r){}Object.defineProperty(e,"adapterName",{value:t})}}));const Kt=e=>`- ${e}`,Ht=e=>de.isFunction(e)||null===e||!1===e;var Gt={getAdapter:e=>{e=de.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let s=0;s`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let r=t?e.length>1?"since :\n"+e.map(Kt).join("\n"):" "+Kt(e[0]):"as no adapter specified";throw new pe("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return n},adapters:Bt};function Jt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ut(null,e)}function Wt(e){Jt(e),e.headers=at.from(e.headers),e.data=it.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);const t=Gt.getAdapter(e.adapter||Je.adapter);return t(e).then((function(t){return Jt(e),t.data=it.call(e,e.transformResponse,t),t.headers=at.from(t.headers),t}),(function(t){return ct(t)||(Jt(e),t&&t.response&&(t.response.data=it.call(e,e.transformResponse,t.response),t.response.headers=at.from(t.response.headers))),Promise.reject(t)}))}const Zt="1.7.9",Xt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Xt[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const Yt={};function Qt(e,t,r){if("object"!==typeof e)throw new pe("options must be an object",pe.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;while(o-- >0){const s=n[o],a=t[s];if(a){const t=e[s],r=void 0===t||a(t,s,e);if(!0!==r)throw new pe("option "+s+" must be "+r,pe.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new pe("Unknown option "+s,pe.ERR_BAD_OPTION)}}Xt.transitional=function(e,t,r){function n(e,t){return"[Axios v"+Zt+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,s)=>{if(!1===e)throw new pe(n(o," has been removed"+(t?" in "+t:"")),pe.ERR_DEPRECATED);return t&&!Yt[o]&&(Yt[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,s)}},Xt.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};var er={assertOptions:Qt,validators:Xt};const tr=er.validators;class rr{constructor(e){this.defaults=e,this.interceptors={request:new xe,response:new xe}}async request(e,t){try{return await this._request(e,t)}catch(r){if(r instanceof Error){let e={};Error.captureStackTrace?Error.captureStackTrace(e):e=new Error;const t=e.stack?e.stack.replace(/^.+\n/,""):"";try{r.stack?t&&!String(r.stack).endsWith(t.replace(/^.+\n.+\n/,""))&&(r.stack+="\n"+t):r.stack=t}catch(n){}}throw r}}_request(e,t){"string"===typeof e?(t=t||{},t.url=e):t=e||{},t=Et(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:o}=t;void 0!==r&&er.assertOptions(r,{silentJSONParsing:tr.transitional(tr.boolean),forcedJSONParsing:tr.transitional(tr.boolean),clarifyTimeoutError:tr.transitional(tr.boolean)},!1),null!=n&&(de.isFunction(n)?t.paramsSerializer={serialize:n}:er.assertOptions(n,{encode:tr.function,serialize:tr.function},!0)),er.assertOptions(t,{baseUrl:tr.spelling("baseURL"),withXsrfToken:tr.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&de.merge(o.common,o[t.method]);o&&de.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=at.concat(s,o);const a=[];let i=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,f=0;if(!i){const e=[Wt.bind(this),void 0];e.unshift.apply(e,a),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);while(f{if(!r._listeners)return;let t=r._listeners.length;while(t-- >0)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,o){r.reason||(r.reason=new ut(e,n,o),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;const t=new or((function(t){e=t}));return{token:t,cancel:e}}}var sr=or;function ar(e){return function(t){return e.apply(null,t)}}function ir(e){return de.isObject(e)&&!0===e.isAxiosError}const cr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(cr).forEach((([e,t])=>{cr[t]=e}));var ur=cr;function lr(e){const t=new nr(e),r=o(nr.prototype.request,t);return de.extend(r,nr.prototype,t,{allOwnKeys:!0}),de.extend(r,t,null,{allOwnKeys:!0}),r.create=function(t){return lr(Et(e,t))},r}const fr=lr(Je);fr.Axios=nr,fr.CanceledError=ut,fr.CancelToken=sr,fr.isCancel=ct,fr.VERSION=Zt,fr.toFormData=_e,fr.AxiosError=pe,fr.Cancel=fr.CanceledError,fr.all=function(e){return Promise.all(e)},fr.spread=ar,fr.isAxiosError=ir,fr.mergeConfig=Et,fr.AxiosHeaders=at,fr.formToJSON=e=>Ke(de.isHTMLForm(e)?new FormData(e):e),fr.getAdapter=Gt.getAdapter,fr.HttpStatusCode=ur,fr.default=fr,e.exports=fr},48343:function(e,t,r){"use strict";const{normalizeIPv6:n,normalizeIPv4:o,removeDotSegments:s,recomposeAuthority:a,normalizeComponentEncoding:i}=r(34834),c=r(343);function u(e,t){return"string"===typeof e?e=p(g(e,t),t):"object"===typeof e&&(e=g(p(e,t),t)),e}function l(e,t,r){const n=Object.assign({scheme:"null"},r),o=f(g(e,n),g(t,n),n,!0);return p(o,{...n,skipEscape:!0})}function f(e,t,r,n){const o={};return n||(e=g(p(e,r),r),t=g(p(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=s(t.path||""),o.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=s(t.path||""),o.query=t.query):(t.path?("/"===t.path.charAt(0)?o.path=s(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path:o.path="/"+t.path,o.path=s(o.path)),o.query=t.query):(o.path=e.path,void 0!==t.query?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function d(e,t,r){return"string"===typeof e?(e=unescape(e),e=p(i(g(e,r),!0),{...r,skipEscape:!0})):"object"===typeof e&&(e=p(i(e,!0),{...r,skipEscape:!0})),"string"===typeof t?(t=unescape(t),t=p(i(g(t,r),!0),{...r,skipEscape:!0})):"object"===typeof t&&(t=p(i(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function p(e,t){const r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),o=[],i=c[(n.scheme||r.scheme||"").toLowerCase()];i&&i.serialize&&i.serialize(r,n),void 0!==r.path&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),void 0!==r.scheme&&(r.path=r.path.split("%3A").join(":")))),"suffix"!==n.reference&&r.scheme&&o.push(r.scheme,":");const u=a(r);if(void 0!==u&&("suffix"!==n.reference&&o.push("//"),o.push(u),r.path&&"/"!==r.path.charAt(0)&&o.push("/")),void 0!==r.path){let e=r.path;n.absolutePath||i&&i.absolutePath||(e=s(e)),void 0===u&&(e=e.replace(/^\/\//u,"/%2F")),o.push(e)}return void 0!==r.query&&o.push("?",r.query),void 0!==r.fragment&&o.push("#",r.fragment),o.join("")}const h=Array.from({length:127},((e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t))));function m(e){let t=0;for(let r=0,n=e.length;r126||h[t])return!0;return!1}const y=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(e,t){const r=Object.assign({},t),s={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=-1!==e.indexOf("%");let i=!1;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);const u=e.match(y);if(u){if(s.scheme=u[1],s.userinfo=u[3],s.host=u[4],s.port=parseInt(u[5],10),s.path=u[6]||"",s.query=u[7],s.fragment=u[8],isNaN(s.port)&&(s.port=u[5]),s.host){const e=o(s.host);if(!1===e.isIPV4){const t=n(e.host);s.host=t.host.toLowerCase(),i=t.isIPV6}else s.host=e.host,i=!0}void 0!==s.scheme||void 0!==s.userinfo||void 0!==s.host||void 0!==s.port||s.path||void 0!==s.query?void 0===s.scheme?s.reference="relative":void 0===s.fragment?s.reference="absolute":s.reference="uri":s.reference="same-document",r.reference&&"suffix"!==r.reference&&r.reference!==s.reference&&(s.error=s.error||"URI is not a "+r.reference+" reference.");const e=c[(r.scheme||s.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!e||!e.unicodeSupport)&&s.host&&(r.domainHost||e&&e.domainHost)&&!1===i&&m(s.host))try{s.host=URL.domainToASCII(s.host.toLowerCase())}catch(l){s.error=s.error||"Host's domain name can not be converted to ASCII: "+l}(!e||e&&!e.skipNormalize)&&(a&&void 0!==s.scheme&&(s.scheme=unescape(s.scheme)),a&&void 0!==s.host&&(s.host=unescape(s.host)),s.path&&s.path.length&&(s.path=escape(unescape(s.path))),s.fragment&&s.fragment.length&&(s.fragment=encodeURI(decodeURIComponent(s.fragment)))),e&&e.parse&&e.parse(s,r)}else s.error=s.error||"URI can not be parsed.";return s}const v={SCHEMES:c,normalize:u,resolve:l,resolveComponents:f,equal:d,serialize:p,parse:g};e.exports=v,e.exports["default"]=v,e.exports.fastUri=v},343:function(e){"use strict";const t=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function n(e){return"boolean"===typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}function o(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function s(e){const t="https"===String(e.scheme).toLowerCase();return e.port!==(t?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}function a(e){return e.secure=n(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function i(e){if(e.port!==(n(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"===typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){const[t,r]=e.resourceName.split("?");e.path=t&&"/"!==t?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function c(e,t){if(!e.path)return e.error="URN can not be parsed",e;const n=e.path.match(r);if(n){const r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];const o=`${r}:${t.nid||e.nid}`,s=v[o];e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function u(e,t){const r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,s=v[o];s&&(e=s.serialize(e,t));const a=e,i=e.nss;return a.path=`${n||t.nid}:${i}`,t.skipEscape=!0,a}function l(e,r){const n=e;return n.uuid=n.nss,n.nss=void 0,r.tolerant||n.uuid&&t.test(n.uuid)||(n.error=n.error||"UUID is not valid."),n}function f(e){const t=e;return t.nss=(e.uuid||"").toLowerCase(),t}const d={scheme:"http",domainHost:!0,parse:o,serialize:s},p={scheme:"https",domainHost:d.domainHost,parse:o,serialize:s},h={scheme:"ws",domainHost:!0,parse:a,serialize:i},m={scheme:"wss",domainHost:h.domainHost,parse:h.parse,serialize:h.serialize},y={scheme:"urn",parse:c,serialize:u,skipNormalize:!0},g={scheme:"urn:uuid",parse:l,serialize:f,skipNormalize:!0},v={http:d,https:p,ws:h,wss:m,urn:y,"urn:uuid":g};e.exports=v},64914:function(e){"use strict";const t={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:t}},34834:function(e,t,r){"use strict";const{HEX:n}=r(64914),o=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function s(e){if(l(e,".")<3)return{host:e,isIPV4:!1};const t=e.match(o)||[],[r]=t;return r?{host:u(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function a(e,t=!1){let r="",o=!0;for(const s of e){if(void 0===n[s])return;"0"!==s&&!0===o&&(o=!1),o||(r+=s)}return t&&0===r.length&&(r="0"),r}function i(e){let t=0;const r={error:!1,address:"",zone:""},n=[],o=[];let s=!1,i=!1,c=!1;function u(){if(o.length){if(!1===s){const e=a(o);if(void 0===e)return r.error=!0,!1;n.push(e)}o.length=0}return!0}for(let a=0;a7){r.error=!0;break}a-1>=0&&":"===e[a-1]&&(i=!0)}}return o.length&&(s?r.zone=o.join(""):c?n.push(o.join("")):n.push(a(o))),r.address=n.join(""),r}function c(e){if(l(e,":")<2)return{host:e,isIPV6:!1};const t=i(e);if(t.error)return{host:e,isIPV6:!1};{let e=t.address,r=t.address;return t.zone&&(e+="%"+t.zone,r+="%25"+t.zone),{host:e,escapedHost:r,isIPV6:!0}}}function u(e,t){let r="",n=!0;const o=e.length;for(let s=0;s1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,o=1;o= 0x80 (not a basic code point)","invalid-input":"Invalid input"},j=p-h,O=Math.floor,P=String.fromCharCode;function N(e){throw new RangeError(S[e])}function x(e,t){var r=[],n=e.length;while(n--)r[n]=t(e[n]);return r}function k(e,t){var r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(E,".");var o=e.split("."),s=x(o,t).join(".");return n+s}function R(e){var t=[],r=0,n=e.length;while(r=55296&&o<=56319&&r>1,e+=O(e/t);e>j*m>>1;n+=p)e=O(e/j);return O(n+(j+1)*e/(e+y))},D=function(e){var t=[],r=e.length,n=0,o=b,s=v,a=e.lastIndexOf(w);a<0&&(a=0);for(var i=0;i=128&&N("not-basic"),t.push(e.charCodeAt(i));for(var c=a>0?a+1:0;c=r&&N("invalid-input");var y=C(e.charCodeAt(c++));(y>=p||y>O((d-n)/l))&&N("overflow"),n+=y*l;var g=f<=s?h:f>=s+m?m:f-s;if(yO(d/$)&&N("overflow"),l*=$}var _=t.length+1;s=I(n-u,_,0==u),O(n/_)>d-o&&N("overflow"),o+=O(n/_),n%=_,t.splice(n++,0,o)}return String.fromCodePoint.apply(String,t)},q=function(e){var t=[];e=R(e);var r=e.length,n=b,o=0,s=v,a=!0,i=!1,c=void 0;try{for(var u,l=e[Symbol.iterator]();!(a=(u=l.next()).done);a=!0){var f=u.value;f<128&&t.push(P(f))}}catch(H){i=!0,c=H}finally{try{!a&&l.return&&l.return()}finally{if(i)throw c}}var y=t.length,g=y;y&&t.push(w);while(g=n&&k<$&&($=k)}}catch(H){E=!0,S=H}finally{try{!_&&x.return&&x.return()}finally{if(E)throw S}}var T=g+1;$-n>O((d-o)/T)&&N("overflow"),o+=($-n)*T,n=$;var C=!0,D=!1,q=void 0;try{for(var F,M=e[Symbol.iterator]();!(C=(F=M.next()).done);C=!0){var z=F.value;if(zd&&N("overflow"),z==n){for(var U=o,L=p;;L+=p){var V=L<=s?h:L>=s+m?m:L-s;if(U>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase(),r}function V(e){var t="",r=0,n=e.length;while(r=194&&o<224){if(n-r>=6){var s=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&o)<<6|63&s)}else t+=e.substr(r,6);r+=6}else if(o>=224){if(n-r>=9){var a=parseInt(e.substr(r+4,2),16),i=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&o)<<12|(63&a)<<6|63&i)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function B(e,t){function r(e){var r=V(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,L).replace(t.PCT_ENCODED,o)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,L).replace(t.PCT_ENCODED,o)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,L).replace(t.PCT_ENCODED,o)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,L).replace(t.PCT_ENCODED,o)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,L).replace(t.PCT_ENCODED,o)),e}function K(e){return e.replace(/^0*(.*)/,"$1")||"0"}function H(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=l(r,2),o=n[1];return o?o.split(".").map(K).join("."):e}function G(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=l(r,3),o=n[1],s=n[2];if(o){for(var a=o.toLowerCase().split("::").reverse(),i=l(a,2),c=i[0],u=i[1],f=u?u.split(":").map(K):[],d=c.split(":").map(K),p=t.IPV4ADDRESS.test(d[d.length-1]),h=p?7:8,m=d.length-h,y=Array(h),g=0;g1){var $=y.slice(0,b.index),_=y.slice(b.index+b.length);w=$.join(":")+"::"+_.join(":")}else w=y.join(":");return s&&(w+="%"+s),w}return e}var J=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,W=void 0==="".match(/(){0}/)[1];function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?u:c;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var o=e.match(J);if(o){W?(r.scheme=o[1],r.userinfo=o[3],r.host=o[4],r.port=parseInt(o[5],10),r.path=o[6]||"",r.query=o[7],r.fragment=o[8],isNaN(r.port)&&(r.port=o[5])):(r.scheme=o[1]||void 0,r.userinfo=-1!==e.indexOf("@")?o[3]:void 0,r.host=-1!==e.indexOf("//")?o[4]:void 0,r.port=parseInt(o[5],10),r.path=o[6]||"",r.query=-1!==e.indexOf("?")?o[7]:void 0,r.fragment=-1!==e.indexOf("#")?o[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?o[4]:void 0)),r.host&&(r.host=G(H(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var s=U[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||s&&s.unicodeSupport)B(r,n);else{if(r.host&&(t.domainHost||s&&s.domainHost))try{r.host=z.toASCII(r.host.replace(n.PCT_ENCODED,V).toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+a}B(r,c)}s&&s.parse&&s.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function X(e,t){var r=!1!==t.iri?u:c,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(G(H(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"!==typeof e.port&&"string"!==typeof e.port||(n.push(":"),n.push(String(e.port))),n.length?n.join(""):void 0}var Y=/^\.\.?\//,Q=/^\/\.(\/|$)/,ee=/^\/\.\.(\/|$)/,te=/^\/?(?:.|\n)*?(?=\/|$)/;function re(e){var t=[];while(e.length)if(e.match(Y))e=e.replace(Y,"");else if(e.match(Q))e=e.replace(Q,"/");else if(e.match(ee))e=e.replace(ee,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(te);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?u:c,n=[],o=U[(t.scheme||e.scheme||"").toLowerCase()];if(o&&o.serialize&&o.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||o&&o.domainHost)try{e.host=t.iri?z.toUnicode(e.host):z.toASCII(e.host.replace(r.PCT_ENCODED,V).toLowerCase())}catch(i){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+i}B(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var s=X(e,t);if(void 0!==s&&("suffix"!==t.reference&&n.push("//"),n.push(s),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var a=e.path;t.absolutePath||o&&o.absolutePath||(a=re(a)),void 0===s&&(a=a.replace(/^\/\//,"/%2F")),n.push(a)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function oe(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3],o={};return n||(e=Z(ne(e,r),r),t=Z(ne(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=re(t.path||""),o.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=re(t.path||""),o.query=t.query):(t.path?("/"===t.path.charAt(0)?o.path=re(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path:o.path="/"+t.path,o.path=re(o.path)),o.query=t.query):(o.path=e.path,void 0!==t.query?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function se(e,t,r){var n=a({scheme:"null"},r);return ne(oe(Z(e,n),Z(t,n),n,!0),n)}function ae(e,t){return"string"===typeof e?e=ne(Z(e,t),t):"object"===n(e)&&(e=Z(ne(e,t),t)),e}function ie(e,t,r){return"string"===typeof e?e=ne(Z(e,r),r):"object"===n(e)&&(e=ne(e,r)),"string"===typeof t?t=ne(Z(t,r),r):"object"===n(t)&&(t=ne(t,r)),e===t}function ce(e,t){return e&&e.toString().replace(t&&t.iri?u.ESCAPE:c.ESCAPE,L)}function ue(e,t){return e&&e.toString().replace(t&&t.iri?u.PCT_ENCODED:c.PCT_ENCODED,V)}var le={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var r="https"===String(e.scheme).toLowerCase();return e.port!==(r?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},fe={scheme:"https",domainHost:le.domainHost,parse:le.parse,serialize:le.serialize};function de(e){return"boolean"===typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var pe={scheme:"ws",domainHost:!0,parse:function(e,t){var r=e;return r.secure=de(r),r.resourceName=(r.path||"/")+(r.query?"?"+r.query:""),r.path=void 0,r.query=void 0,r},serialize:function(e,t){if(e.port!==(de(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"===typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var r=e.resourceName.split("?"),n=l(r,2),o=n[0],s=n[1];e.path=o&&"/"!==o?o:void 0,e.query=s,e.resourceName=void 0}return e.fragment=void 0,e}},he={scheme:"wss",domainHost:pe.domainHost,parse:pe.parse,serialize:pe.serialize},me={},ye=!0,ge="[A-Za-z0-9\\-\\.\\_\\~"+(ye?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",ve="[0-9A-Fa-f]",be=r(r("%[EFef]"+ve+"%"+ve+ve+"%"+ve+ve)+"|"+r("%[89A-Fa-f]"+ve+"%"+ve+ve)+"|"+r("%"+ve+ve)),we="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",$e="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",_e=t($e,'[\\"\\\\]'),Ee="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Se=new RegExp(ge,"g"),je=new RegExp(be,"g"),Oe=new RegExp(t("[^]",we,"[\\.]",'[\\"]',_e),"g"),Pe=new RegExp(t("[^]",ge,Ee),"g"),Ne=Pe;function xe(e){var t=V(e);return t.match(Se)?t:e}var ke={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var o=!1,s={},a=r.query.split("&"),i=0,c=a.length;it=>{const r=s.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),c=e=>(e=e.toLowerCase(),t=>i(t)===e),u=e=>t=>typeof t===e,{isArray:l}=Array,f=u("undefined");function d(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&y(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const p=c("ArrayBuffer");function h(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t}const m=u("string"),y=u("function"),g=u("number"),v=e=>null!==e&&"object"===typeof e,b=e=>!0===e||!1===e,w=e=>{if("object"!==i(e))return!1;const t=a(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},$=c("Date"),_=c("File"),E=c("Blob"),S=c("FileList"),j=e=>v(e)&&y(e.pipe),O=e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||y(e.append)&&("formdata"===(t=i(e))||"object"===t&&y(e.toString)&&"[object FormData]"===e.toString()))},P=c("URLSearchParams"),[N,x,k,R]=["ReadableStream","Request","Response","Headers"].map(c),T=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function C(e,t,{allOwnKeys:r=!1}={}){if(null===e||"undefined"===typeof e)return;let n,o;if("object"!==typeof e&&(e=[e]),l(e))for(n=0,o=e.length;n0)if(n=r[o],t===n.toLowerCase())return n;return null}const I=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:r.g)(),D=e=>!f(e)&&e!==I;function q(){const{caseless:e}=D(this)&&this||{},t={},r=(r,n)=>{const o=e&&A(t,n)||n;w(t[o])&&w(r)?t[o]=q(t[o],r):w(r)?t[o]=q({},r):l(r)?t[o]=r.slice():t[o]=r};for(let n=0,o=arguments.length;n(C(t,((t,n)=>{r&&y(t)?e[n]=o(t,r):e[n]=t}),{allOwnKeys:n}),e),M=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),z=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},U=(e,t,r,n)=>{let o,s,i;const c={};if(t=t||{},null==e)return t;do{o=Object.getOwnPropertyNames(e),s=o.length;while(s-- >0)i=o[s],n&&!n(i,e,t)||c[i]||(t[i]=e[i],c[i]=!0);e=!1!==r&&a(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},L=(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},V=e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!g(t))return null;const r=new Array(t);while(t-- >0)r[t]=e[t];return r},B=(e=>t=>e&&t instanceof e)("undefined"!==typeof Uint8Array&&a(Uint8Array)),K=(e,t)=>{const r=e&&e[Symbol.iterator],n=r.call(e);let o;while((o=n.next())&&!o.done){const r=o.value;t.call(e,r[0],r[1])}},H=(e,t)=>{let r;const n=[];while(null!==(r=e.exec(t)))n.push(r);return n},G=c("HTMLFormElement"),J=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),W=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),Z=c("RegExp"),X=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};C(r,((r,o)=>{let s;!1!==(s=t(r,o,e))&&(n[o]=s||r)})),Object.defineProperties(e,n)},Y=e=>{X(e,((t,r)=>{if(y(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];y(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},Q=(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return l(e)?n(e):n(String(e).split(t)),r},ee=()=>{},te=(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,re="abcdefghijklmnopqrstuvwxyz",ne="0123456789",oe={DIGIT:ne,ALPHA:re,ALPHA_DIGIT:re+re.toUpperCase()+ne},se=(e=16,t=oe.ALPHA_DIGIT)=>{let r="";const{length:n}=t;while(e--)r+=t[Math.random()*n|0];return r};function ae(e){return!!(e&&y(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])}const ie=e=>{const t=new Array(10),r=(e,n)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const o=l(e)?[]:{};return C(e,((e,t)=>{const s=r(e,n+1);!f(s)&&(o[t]=s)})),t[n]=void 0,o}}return e};return r(e,0)},ce=c("AsyncFunction"),ue=e=>e&&(v(e)||y(e))&&y(e.then)&&y(e.catch),le=((e,t)=>e?setImmediate:t?((e,t)=>(I.addEventListener("message",(({source:r,data:n})=>{r===I&&n===e&&t.length&&t.shift()()}),!1),r=>{t.push(r),I.postMessage(e,"*")}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))("function"===typeof setImmediate,y(I.postMessage)),fe="undefined"!==typeof queueMicrotask?queueMicrotask.bind(I):"undefined"!==typeof process&&process.nextTick||le;var de={isArray:l,isArrayBuffer:p,isBuffer:d,isFormData:O,isArrayBufferView:h,isString:m,isNumber:g,isBoolean:b,isObject:v,isPlainObject:w,isReadableStream:N,isRequest:x,isResponse:k,isHeaders:R,isUndefined:f,isDate:$,isFile:_,isBlob:E,isRegExp:Z,isFunction:y,isStream:j,isURLSearchParams:P,isTypedArray:B,isFileList:S,forEach:C,merge:q,extend:F,trim:T,stripBOM:M,inherits:z,toFlatObject:U,kindOf:i,kindOfTest:c,endsWith:L,toArray:V,forEachEntry:K,matchAll:H,isHTMLForm:G,hasOwnProperty:W,hasOwnProp:W,reduceDescriptors:X,freezeMethods:Y,toObjectSet:Q,toCamelCase:J,noop:ee,toFiniteNumber:te,findKey:A,global:I,isContextDefined:D,ALPHABET:oe,generateString:se,isSpecCompliantForm:ae,toJSONObject:ie,isAsyncFn:ce,isThenable:ue,setImmediate:le,asap:fe};function pe(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}de.inherits(pe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:de.toJSONObject(this.config),code:this.code,status:this.status}}});const he=pe.prototype,me={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{me[e]={value:e}})),Object.defineProperties(pe,me),Object.defineProperty(he,"isAxiosError",{value:!0}),pe.from=(e,t,r,n,o,s)=>{const a=Object.create(he);return de.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),pe.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,s&&Object.assign(a,s),a};var ye=null;function ge(e){return de.isPlainObject(e)||de.isArray(e)}function ve(e){return de.endsWith(e,"[]")?e.slice(0,-2):e}function be(e,t,r){return e?e.concat(t).map((function(e,t){return e=ve(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}function we(e){return de.isArray(e)&&!e.some(ge)}const $e=de.toFlatObject(de,{},null,(function(e){return/^is[A-Z]/.test(e)}));function _e(e,t,r){if(!de.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=de.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!de.isUndefined(t[e])}));const o=r.metaTokens,s=r.visitor||f,a=r.dots,i=r.indexes,c=r.Blob||"undefined"!==typeof Blob&&Blob,u=c&&de.isSpecCompliantForm(t);if(!de.isFunction(s))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(de.isDate(e))return e.toISOString();if(!u&&de.isBlob(e))throw new pe("Blob is not supported. Use a Buffer instead.");return de.isArrayBuffer(e)||de.isTypedArray(e)?u&&"function"===typeof Blob?new Blob([e]):n.from(e):e}function f(e,r,n){let s=e;if(e&&!n&&"object"===typeof e)if(de.endsWith(r,"{}"))r=o?r:r.slice(0,-2),e=JSON.stringify(e);else if(de.isArray(e)&&we(e)||(de.isFileList(e)||de.endsWith(r,"[]"))&&(s=de.toArray(e)))return r=ve(r),s.forEach((function(e,n){!de.isUndefined(e)&&null!==e&&t.append(!0===i?be([r],n,a):null===i?r:r+"[]",l(e))})),!1;return!!ge(e)||(t.append(be(n,r,a),l(e)),!1)}const d=[],p=Object.assign($e,{defaultVisitor:f,convertValue:l,isVisitable:ge});function h(e,r){if(!de.isUndefined(e)){if(-1!==d.indexOf(e))throw Error("Circular reference detected in "+r.join("."));d.push(e),de.forEach(e,(function(e,n){const o=!(de.isUndefined(e)||null===e)&&s.call(t,e,de.isString(n)?n.trim():n,r,p);!0===o&&h(e,r?r.concat(n):[n])})),d.pop()}}if(!de.isObject(e))throw new TypeError("data must be an object");return h(e),t}function Ee(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Se(e,t){this._pairs=[],e&&_e(e,this,t)}const je=Se.prototype;function Oe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pe(e,t,r){if(!t)return e;const n=r&&r.encode||Oe;de.isFunction(r)&&(r={serialize:r});const o=r&&r.serialize;let s;if(s=o?o(t,r):de.isURLSearchParams(t)?t.toString():new Se(t,r).toString(n),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}je.append=function(e,t){this._pairs.push([e,t])},je.toString=function(e){const t=e?function(t){return e.call(this,t,Ee)}:Ee;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class Ne{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){de.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var xe=Ne,ke={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Re="undefined"!==typeof URLSearchParams?URLSearchParams:Se,Te="undefined"!==typeof FormData?FormData:null,Ce="undefined"!==typeof Blob?Blob:null,Ae={isBrowser:!0,classes:{URLSearchParams:Re,FormData:Te,Blob:Ce},protocols:["http","https","file","blob","url","data"]};const Ie="undefined"!==typeof window&&"undefined"!==typeof document,De="object"===typeof navigator&&navigator||void 0,qe=Ie&&(!De||["ReactNative","NativeScript","NS"].indexOf(De.product)<0),Fe=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)(),Me=Ie&&window.location.href||"http://localhost";var ze=Object.freeze({__proto__:null,hasBrowserEnv:Ie,hasStandardBrowserWebWorkerEnv:Fe,hasStandardBrowserEnv:qe,navigator:De,origin:Me}),Ue={...ze,...Ae};function Le(e,t){return _e(e,new Ue.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return Ue.isNode&&de.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}function Ve(e){return de.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}function Be(e){const t={},r=Object.keys(e);let n;const o=r.length;let s;for(n=0;n=e.length;if(s=!s&&de.isArray(n)?n.length:s,i)return de.hasOwnProp(n,s)?n[s]=[n[s],r]:n[s]=r,!a;n[s]&&de.isObject(n[s])||(n[s]=[]);const c=t(e,r,n[s],o);return c&&de.isArray(n[s])&&(n[s]=Be(n[s])),!a}if(de.isFormData(e)&&de.isFunction(e.entries)){const r={};return de.forEachEntry(e,((e,n)=>{t(Ve(e),n,r,0)})),r}return null}function He(e,t,r){if(de.isString(e))try{return(t||JSON.parse)(e),de.trim(e)}catch(n){if("SyntaxError"!==n.name)throw n}return(r||JSON.stringify)(e)}const Ge={transitional:ke,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,o=de.isObject(e);o&&de.isHTMLForm(e)&&(e=new FormData(e));const s=de.isFormData(e);if(s)return n?JSON.stringify(Ke(e)):e;if(de.isArrayBuffer(e)||de.isBuffer(e)||de.isStream(e)||de.isFile(e)||de.isBlob(e)||de.isReadableStream(e))return e;if(de.isArrayBufferView(e))return e.buffer;if(de.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Le(e,this.formSerializer).toString();if((a=de.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return _e(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||n?(t.setContentType("application/json",!1),He(e)):e}],transformResponse:[function(e){const t=this.transitional||Ge.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(de.isResponse(e)||de.isReadableStream(e))return e;if(e&&de.isString(e)&&(r&&!this.responseType||n)){const r=t&&t.silentJSONParsing,s=!r&&n;try{return JSON.parse(e)}catch(o){if(s){if("SyntaxError"===o.name)throw pe.from(o,pe.ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ue.classes.FormData,Blob:Ue.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};de.forEach(["delete","get","head","post","put","patch"],(e=>{Ge.headers[e]={}}));var Je=Ge;const We=de.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Ze=e=>{const t={};let r,n,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),r=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!r||t[r]&&We[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t};const Xe=Symbol("internals");function Ye(e){return e&&String(e).trim().toLowerCase()}function Qe(e){return!1===e||null==e?e:de.isArray(e)?e.map(Qe):String(e)}function et(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;while(n=r.exec(e))t[n[1]]=n[2];return t}const tt=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function rt(e,t,r,n,o){return de.isFunction(n)?n.call(this,t,r):(o&&(t=r),de.isString(t)?de.isString(n)?-1!==t.indexOf(n):de.isRegExp(n)?n.test(t):void 0:void 0)}function nt(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}function ot(e,t){const r=de.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}class st{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function o(e,t,r){const o=Ye(t);if(!o)throw new Error("header name must be a non-empty string");const s=de.findKey(n,o);(!s||void 0===n[s]||!0===r||void 0===r&&!1!==n[s])&&(n[s||t]=Qe(e))}const s=(e,t)=>de.forEach(e,((e,r)=>o(e,r,t)));if(de.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(de.isString(e)&&(e=e.trim())&&!tt(e))s(Ze(e),t);else if(de.isHeaders(e))for(const[a,i]of e.entries())o(i,a,r);else null!=e&&o(t,e,r);return this}get(e,t){if(e=Ye(e),e){const r=de.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return et(e);if(de.isFunction(t))return t.call(this,e,r);if(de.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ye(e),e){const r=de.findKey(this,e);return!(!r||void 0===this[r]||t&&!rt(this,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function o(e){if(e=Ye(e),e){const o=de.findKey(r,e);!o||t&&!rt(r,r[o],o,t)||(delete r[o],n=!0)}}return de.isArray(e)?e.forEach(o):o(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;while(r--){const o=t[r];e&&!rt(this,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const t=this,r={};return de.forEach(this,((n,o)=>{const s=de.findKey(r,o);if(s)return t[s]=Qe(n),void delete t[o];const a=e?nt(o):String(o).trim();a!==o&&delete t[o],t[a]=Qe(n),r[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return de.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&de.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=this[Xe]=this[Xe]={accessors:{}},r=t.accessors,n=this.prototype;function o(e){const t=Ye(e);r[t]||(ot(n,e),r[t]=!0)}return de.isArray(e)?e.forEach(o):o(e),this}}st.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),de.reduceDescriptors(st.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),de.freezeMethods(st);var at=st;function it(e,t){const r=this||Je,n=t||r,o=at.from(n.headers);let s=n.data;return de.forEach(e,(function(e){s=e.call(r,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function ct(e){return!(!e||!e.__CANCEL__)}function ut(e,t,r){pe.call(this,null==e?"canceled":e,pe.ERR_CANCELED,t,r),this.name="CanceledError"}function lt(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new pe("Request failed with status code "+r.status,[pe.ERR_BAD_REQUEST,pe.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}function ft(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function dt(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o,s=0,a=0;return t=void 0!==t?t:1e3,function(i){const c=Date.now(),u=n[a];o||(o=c),r[s]=i,n[s]=c;let l=a,f=0;while(l!==s)f+=r[l++],l%=e;if(s=(s+1)%e,s===a&&(a=(a+1)%e),c-o{o=s,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)},i=(...e)=>{const t=Date.now(),i=t-o;i>=s?a(e,t):(r=e,n||(n=setTimeout((()=>{n=null,a(r)}),s-i)))},c=()=>r&&a(r);return[i,c]}de.inherits(ut,pe,{__CANCEL__:!0});const ht=(e,t,r=3)=>{let n=0;const o=dt(50,250);return pt((r=>{const s=r.loaded,a=r.lengthComputable?r.total:void 0,i=s-n,c=o(i),u=s<=a;n=s;const l={loaded:s,total:a,progress:a?s/a:void 0,bytes:i,rate:c||void 0,estimated:c&&a&&u?(a-s)/c:void 0,event:r,lengthComputable:null!=a,[t?"download":"upload"]:!0};e(l)}),r)},mt=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},yt=e=>(...t)=>de.asap((()=>e(...t)));var gt=Ue.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,Ue.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(Ue.origin),Ue.navigator&&/(msie|trident)/i.test(Ue.navigator.userAgent)):()=>!0,vt=Ue.hasStandardBrowserEnv?{write(e,t,r,n,o,s){const a=[e+"="+encodeURIComponent(t)];de.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),de.isString(n)&&a.push("path="+n),de.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function bt(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function wt(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function $t(e,t){return e&&!bt(t)?wt(e,t):t}const _t=e=>e instanceof at?{...e}:e;function Et(e,t){t=t||{};const r={};function n(e,t,r,n){return de.isPlainObject(e)&&de.isPlainObject(t)?de.merge.call({caseless:n},e,t):de.isPlainObject(t)?de.merge({},t):de.isArray(t)?t.slice():t}function o(e,t,r,o){return de.isUndefined(t)?de.isUndefined(e)?void 0:n(void 0,e,r,o):n(e,t,r,o)}function s(e,t){if(!de.isUndefined(t))return n(void 0,t)}function a(e,t){return de.isUndefined(t)?de.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function i(r,o,s){return s in t?n(r,o):s in e?n(void 0,r):void 0}const c={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:i,headers:(e,t,r)=>o(_t(e),_t(t),r,!0)};return de.forEach(Object.keys(Object.assign({},e,t)),(function(n){const s=c[n]||o,a=s(e[n],t[n],n);de.isUndefined(a)&&s!==i||(r[n]=a)})),r}var St=e=>{const t=Et({},e);let r,{data:n,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:a,headers:i,auth:c}=t;if(t.headers=i=at.from(i),t.url=Pe($t(t.baseURL,t.url),e.params,e.paramsSerializer),c&&i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),de.isFormData(n))if(Ue.hasStandardBrowserEnv||Ue.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(!1!==(r=i.getContentType())){const[e,...t]=r?r.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}if(Ue.hasStandardBrowserEnv&&(o&&de.isFunction(o)&&(o=o(t)),o||!1!==o&>(t.url))){const e=s&&a&&vt.read(a);e&&i.set(s,e)}return t};const jt="undefined"!==typeof XMLHttpRequest;var Ot=jt&&function(e){return new Promise((function(t,r){const n=St(e);let o=n.data;const s=at.from(n.headers).normalize();let a,i,c,u,l,{responseType:f,onUploadProgress:d,onDownloadProgress:p}=n;function h(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function y(){if(!m)return;const n=at.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),o=f&&"text"!==f&&"json"!==f?m.response:m.responseText,s={data:o,status:m.status,statusText:m.statusText,headers:n,config:e,request:m};lt((function(e){t(e),h()}),(function(e){r(e),h()}),s),m=null}m.open(n.method.toUpperCase(),n.url,!0),m.timeout=n.timeout,"onloadend"in m?m.onloadend=y:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(y)},m.onabort=function(){m&&(r(new pe("Request aborted",pe.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new pe("Network Error",pe.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const o=n.transitional||ke;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new pe(t,o.clarifyTimeoutError?pe.ETIMEDOUT:pe.ECONNABORTED,e,m)),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&de.forEach(s.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),de.isUndefined(n.withCredentials)||(m.withCredentials=!!n.withCredentials),f&&"json"!==f&&(m.responseType=n.responseType),p&&([c,l]=ht(p,!0),m.addEventListener("progress",c)),d&&m.upload&&([i,u]=ht(d),m.upload.addEventListener("progress",i),m.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(a=t=>{m&&(r(!t||t.type?new ut(null,e,m):t),m.abort(),m=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const g=ft(n.url);g&&-1===Ue.protocols.indexOf(g)?r(new pe("Unsupported protocol "+g+":",pe.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const Pt=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const o=function(e){if(!r){r=!0,a();const t=e instanceof Error?e:this.reason;n.abort(t instanceof pe?t:new ut(t instanceof Error?t.message:t))}};let s=t&&setTimeout((()=>{s=null,o(new pe(`timeout ${t} of ms exceeded`,pe.ETIMEDOUT))}),t);const a=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>e.addEventListener("abort",o)));const{signal:i}=n;return i.unsubscribe=()=>de.asap(a),i}};var Nt=Pt;const xt=function*(e,t){let r=e.byteLength;if(!t||r{const o=kt(e,t);let s,a=0,i=e=>{s||(s=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await o.next();if(t)return i(),void e.close();let s=n.byteLength;if(r){let e=a+=s;r(e)}e.enqueue(new Uint8Array(n))}catch(t){throw i(t),t}},cancel(e){return i(e),o.return()}},{highWaterMark:2})},Ct="function"===typeof fetch&&"function"===typeof Request&&"function"===typeof Response,At=Ct&&"function"===typeof ReadableStream,It=Ct&&("function"===typeof TextEncoder?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),Dt=(e,...t)=>{try{return!!e(...t)}catch(r){return!1}},qt=At&&Dt((()=>{let e=!1;const t=new Request(Ue.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Ft=65536,Mt=At&&Dt((()=>de.isReadableStream(new Response("").body))),zt={stream:Mt&&(e=>e.body)};Ct&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach((t=>{!zt[t]&&(zt[t]=de.isFunction(e[t])?e=>e[t]():(e,r)=>{throw new pe(`Response type '${t}' is not supported`,pe.ERR_NOT_SUPPORT,r)})}))})(new Response);const Ut=async e=>{if(null==e)return 0;if(de.isBlob(e))return e.size;if(de.isSpecCompliantForm(e)){const t=new Request(Ue.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return de.isArrayBufferView(e)||de.isArrayBuffer(e)?e.byteLength:(de.isURLSearchParams(e)&&(e+=""),de.isString(e)?(await It(e)).byteLength:void 0)},Lt=async(e,t)=>{const r=de.toFiniteNumber(e.getContentLength());return null==r?Ut(t):r};var Vt=Ct&&(async e=>{let{url:t,method:r,data:n,signal:o,cancelToken:s,timeout:a,onDownloadProgress:i,onUploadProgress:c,responseType:u,headers:l,withCredentials:f="same-origin",fetchOptions:d}=St(e);u=u?(u+"").toLowerCase():"text";let p,h=Nt([o,s&&s.toAbortSignal()],a);const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let y;try{if(c&&qt&&"get"!==r&&"head"!==r&&0!==(y=await Lt(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(de.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=mt(y,ht(yt(c)));n=Tt(r.body,Ft,e,t)}}de.isString(f)||(f=f?"include":"omit");const o="credentials"in Request.prototype;p=new Request(t,{...d,signal:h,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:o?f:void 0});let s=await fetch(p);const a=Mt&&("stream"===u||"response"===u);if(Mt&&(i||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=s[t]}));const t=de.toFiniteNumber(s.headers.get("content-length")),[r,n]=i&&mt(t,ht(yt(i),!0))||[];s=new Response(Tt(s.body,Ft,r,(()=>{n&&n(),m&&m()})),e)}u=u||"text";let g=await zt[de.findKey(zt,u)||"text"](s,e);return!a&&m&&m(),await new Promise(((t,r)=>{lt(t,r,{data:g,headers:at.from(s.headers),status:s.status,statusText:s.statusText,config:e,request:p})}))}catch(g){if(m&&m(),g&&"TypeError"===g.name&&/fetch/i.test(g.message))throw Object.assign(new pe("Network Error",pe.ERR_NETWORK,e,p),{cause:g.cause||g});throw pe.from(g,g&&g.code,e,p)}});const Bt={http:ye,xhr:Ot,fetch:Vt};de.forEach(Bt,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(r){}Object.defineProperty(e,"adapterName",{value:t})}}));const Kt=e=>`- ${e}`,Ht=e=>de.isFunction(e)||null===e||!1===e;var Gt={getAdapter:e=>{e=de.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let s=0;s`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let r=t?e.length>1?"since :\n"+e.map(Kt).join("\n"):" "+Kt(e[0]):"as no adapter specified";throw new pe("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return n},adapters:Bt};function Jt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ut(null,e)}function Wt(e){Jt(e),e.headers=at.from(e.headers),e.data=it.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);const t=Gt.getAdapter(e.adapter||Je.adapter);return t(e).then((function(t){return Jt(e),t.data=it.call(e,e.transformResponse,t),t.headers=at.from(t.headers),t}),(function(t){return ct(t)||(Jt(e),t&&t.response&&(t.response.data=it.call(e,e.transformResponse,t.response),t.response.headers=at.from(t.response.headers))),Promise.reject(t)}))}const Zt="1.7.9",Xt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Xt[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const Yt={};function Qt(e,t,r){if("object"!==typeof e)throw new pe("options must be an object",pe.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;while(o-- >0){const s=n[o],a=t[s];if(a){const t=e[s],r=void 0===t||a(t,s,e);if(!0!==r)throw new pe("option "+s+" must be "+r,pe.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new pe("Unknown option "+s,pe.ERR_BAD_OPTION)}}Xt.transitional=function(e,t,r){function n(e,t){return"[Axios v"+Zt+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,s)=>{if(!1===e)throw new pe(n(o," has been removed"+(t?" in "+t:"")),pe.ERR_DEPRECATED);return t&&!Yt[o]&&(Yt[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,s)}},Xt.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};var er={assertOptions:Qt,validators:Xt};const tr=er.validators;class rr{constructor(e){this.defaults=e,this.interceptors={request:new xe,response:new xe}}async request(e,t){try{return await this._request(e,t)}catch(r){if(r instanceof Error){let e={};Error.captureStackTrace?Error.captureStackTrace(e):e=new Error;const t=e.stack?e.stack.replace(/^.+\n/,""):"";try{r.stack?t&&!String(r.stack).endsWith(t.replace(/^.+\n.+\n/,""))&&(r.stack+="\n"+t):r.stack=t}catch(n){}}throw r}}_request(e,t){"string"===typeof e?(t=t||{},t.url=e):t=e||{},t=Et(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:o}=t;void 0!==r&&er.assertOptions(r,{silentJSONParsing:tr.transitional(tr.boolean),forcedJSONParsing:tr.transitional(tr.boolean),clarifyTimeoutError:tr.transitional(tr.boolean)},!1),null!=n&&(de.isFunction(n)?t.paramsSerializer={serialize:n}:er.assertOptions(n,{encode:tr.function,serialize:tr.function},!0)),er.assertOptions(t,{baseUrl:tr.spelling("baseURL"),withXsrfToken:tr.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&de.merge(o.common,o[t.method]);o&&de.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=at.concat(s,o);const a=[];let i=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,f=0;if(!i){const e=[Wt.bind(this),void 0];e.unshift.apply(e,a),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);while(f{if(!r._listeners)return;let t=r._listeners.length;while(t-- >0)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,o){r.reason||(r.reason=new ut(e,n,o),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;const t=new or((function(t){e=t}));return{token:t,cancel:e}}}var sr=or;function ar(e){return function(t){return e.apply(null,t)}}function ir(e){return de.isObject(e)&&!0===e.isAxiosError}const cr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(cr).forEach((([e,t])=>{cr[t]=e}));var ur=cr;function lr(e){const t=new nr(e),r=o(nr.prototype.request,t);return de.extend(r,nr.prototype,t,{allOwnKeys:!0}),de.extend(r,t,null,{allOwnKeys:!0}),r.create=function(t){return lr(Et(e,t))},r}const fr=lr(Je);fr.Axios=nr,fr.CanceledError=ut,fr.CancelToken=sr,fr.isCancel=ct,fr.VERSION=Zt,fr.toFormData=_e,fr.AxiosError=pe,fr.Cancel=fr.CanceledError,fr.all=function(e){return Promise.all(e)},fr.spread=ar,fr.isAxiosError=ir,fr.mergeConfig=Et,fr.AxiosHeaders=at,fr.formToJSON=e=>Ke(de.isHTMLForm(e)?new FormData(e):e),fr.getAdapter=Gt.getAdapter,fr.HttpStatusCode=ur,fr.default=fr,e.exports=fr},48343:function(e,t,r){"use strict";const{normalizeIPv6:n,normalizeIPv4:o,removeDotSegments:s,recomposeAuthority:a,normalizeComponentEncoding:i}=r(34834),c=r(343);function u(e,t){return"string"===typeof e?e=p(g(e,t),t):"object"===typeof e&&(e=g(p(e,t),t)),e}function l(e,t,r){const n=Object.assign({scheme:"null"},r),o=f(g(e,n),g(t,n),n,!0);return p(o,{...n,skipEscape:!0})}function f(e,t,r,n){const o={};return n||(e=g(p(e,r),r),t=g(p(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=s(t.path||""),o.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=s(t.path||""),o.query=t.query):(t.path?("/"===t.path.charAt(0)?o.path=s(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path:o.path="/"+t.path,o.path=s(o.path)),o.query=t.query):(o.path=e.path,void 0!==t.query?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function d(e,t,r){return"string"===typeof e?(e=unescape(e),e=p(i(g(e,r),!0),{...r,skipEscape:!0})):"object"===typeof e&&(e=p(i(e,!0),{...r,skipEscape:!0})),"string"===typeof t?(t=unescape(t),t=p(i(g(t,r),!0),{...r,skipEscape:!0})):"object"===typeof t&&(t=p(i(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function p(e,t){const r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),o=[],i=c[(n.scheme||r.scheme||"").toLowerCase()];i&&i.serialize&&i.serialize(r,n),void 0!==r.path&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),void 0!==r.scheme&&(r.path=r.path.split("%3A").join(":")))),"suffix"!==n.reference&&r.scheme&&o.push(r.scheme,":");const u=a(r);if(void 0!==u&&("suffix"!==n.reference&&o.push("//"),o.push(u),r.path&&"/"!==r.path.charAt(0)&&o.push("/")),void 0!==r.path){let e=r.path;n.absolutePath||i&&i.absolutePath||(e=s(e)),void 0===u&&(e=e.replace(/^\/\//u,"/%2F")),o.push(e)}return void 0!==r.query&&o.push("?",r.query),void 0!==r.fragment&&o.push("#",r.fragment),o.join("")}const h=Array.from({length:127},((e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t))));function m(e){let t=0;for(let r=0,n=e.length;r126||h[t])return!0;return!1}const y=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(e,t){const r=Object.assign({},t),s={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=-1!==e.indexOf("%");let i=!1;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);const u=e.match(y);if(u){if(s.scheme=u[1],s.userinfo=u[3],s.host=u[4],s.port=parseInt(u[5],10),s.path=u[6]||"",s.query=u[7],s.fragment=u[8],isNaN(s.port)&&(s.port=u[5]),s.host){const e=o(s.host);if(!1===e.isIPV4){const t=n(e.host);s.host=t.host.toLowerCase(),i=t.isIPV6}else s.host=e.host,i=!0}void 0!==s.scheme||void 0!==s.userinfo||void 0!==s.host||void 0!==s.port||void 0!==s.query||s.path?void 0===s.scheme?s.reference="relative":void 0===s.fragment?s.reference="absolute":s.reference="uri":s.reference="same-document",r.reference&&"suffix"!==r.reference&&r.reference!==s.reference&&(s.error=s.error||"URI is not a "+r.reference+" reference.");const e=c[(r.scheme||s.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!e||!e.unicodeSupport)&&s.host&&(r.domainHost||e&&e.domainHost)&&!1===i&&m(s.host))try{s.host=URL.domainToASCII(s.host.toLowerCase())}catch(l){s.error=s.error||"Host's domain name can not be converted to ASCII: "+l}(!e||e&&!e.skipNormalize)&&(a&&void 0!==s.scheme&&(s.scheme=unescape(s.scheme)),a&&void 0!==s.host&&(s.host=unescape(s.host)),s.path&&(s.path=escape(unescape(s.path))),s.fragment&&(s.fragment=encodeURI(decodeURIComponent(s.fragment)))),e&&e.parse&&e.parse(s,r)}else s.error=s.error||"URI can not be parsed.";return s}const v={SCHEMES:c,normalize:u,resolve:l,resolveComponents:f,equal:d,serialize:p,parse:g};e.exports=v,e.exports["default"]=v,e.exports.fastUri=v},343:function(e){"use strict";const t=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function n(e){return"boolean"===typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}function o(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function s(e){const t="https"===String(e.scheme).toLowerCase();return e.port!==(t?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}function a(e){return e.secure=n(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function i(e){if(e.port!==(n(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"===typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){const[t,r]=e.resourceName.split("?");e.path=t&&"/"!==t?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function c(e,t){if(!e.path)return e.error="URN can not be parsed",e;const n=e.path.match(r);if(n){const r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];const o=`${r}:${t.nid||e.nid}`,s=v[o];e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function u(e,t){const r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,s=v[o];s&&(e=s.serialize(e,t));const a=e,i=e.nss;return a.path=`${n||t.nid}:${i}`,t.skipEscape=!0,a}function l(e,r){const n=e;return n.uuid=n.nss,n.nss=void 0,r.tolerant||n.uuid&&t.test(n.uuid)||(n.error=n.error||"UUID is not valid."),n}function f(e){const t=e;return t.nss=(e.uuid||"").toLowerCase(),t}const d={scheme:"http",domainHost:!0,parse:o,serialize:s},p={scheme:"https",domainHost:d.domainHost,parse:o,serialize:s},h={scheme:"ws",domainHost:!0,parse:a,serialize:i},m={scheme:"wss",domainHost:h.domainHost,parse:h.parse,serialize:h.serialize},y={scheme:"urn",parse:c,serialize:u,skipNormalize:!0},g={scheme:"urn:uuid",parse:l,serialize:f,skipNormalize:!0},v={http:d,https:p,ws:h,wss:m,urn:y,"urn:uuid":g};e.exports=v},64914:function(e){"use strict";const t={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:t}},34834:function(e,t,r){"use strict";const{HEX:n}=r(64914),o=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function s(e){if(l(e,".")<3)return{host:e,isIPV4:!1};const t=e.match(o)||[],[r]=t;return r?{host:u(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function a(e,t=!1){let r="",o=!0;for(const s of e){if(void 0===n[s])return;"0"!==s&&!0===o&&(o=!1),o||(r+=s)}return t&&0===r.length&&(r="0"),r}function i(e){let t=0;const r={error:!1,address:"",zone:""},n=[],o=[];let s=!1,i=!1,c=!1;function u(){if(o.length){if(!1===s){const e=a(o);if(void 0===e)return r.error=!0,!1;n.push(e)}o.length=0}return!0}for(let a=0;a7){r.error=!0;break}a-1>=0&&":"===e[a-1]&&(i=!0)}}return o.length&&(s?r.zone=o.join(""):c?n.push(o.join("")):n.push(a(o))),r.address=n.join(""),r}function c(e){if(l(e,":")<2)return{host:e,isIPV6:!1};const t=i(e);if(t.error)return{host:e,isIPV6:!1};{let e=t.address,r=t.address;return t.zone&&(e+="%"+t.zone,r+="%25"+t.zone),{host:e,escapedHost:r,isIPV6:!0}}}function u(e,t){let r="",n=!0;const o=e.length;for(let s=0;s%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nfunction time(str, withTimeZone) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hour = +matches[1];\n const minute = +matches[2];\n const second = +matches[3];\n const timeZone = matches[5];\n return (((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour === 23 && minute === 59 && second === 60)) &&\n (!withTimeZone || timeZone !== \"\"));\n}\nfunction compareTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3] + (a1[4] || \"\");\n t2 = a2[1] + a2[2] + a2[3] + (a2[4] || \"\");\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n limit_1.default(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = codegen_1._ `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", codegen_1._ `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data(codegen_1.or(codegen_1._ `typeof ${fmt} != \"object\"`, codegen_1._ `${fmt} instanceof RegExp`, codegen_1._ `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return codegen_1._ `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n]);\nfunction inlineRef(schema, limit = true) {\n if (typeof schema == \"boolean\")\n return true;\n if (limit === true)\n return !hasRef(schema);\n if (!limit)\n return false;\n return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key))\n return true;\n const sch = schema[key];\n if (Array.isArray(sch) && sch.some(hasRef))\n return true;\n if (typeof sch == \"object\" && hasRef(sch))\n return true;\n }\n return false;\n}\nfunction countKeys(schema) {\n let count = 0;\n for (const key in schema) {\n if (key === \"$ref\")\n return Infinity;\n count++;\n if (SIMPLE_INLINED.has(key))\n continue;\n if (typeof schema[key] == \"object\") {\n (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\nvar AssertionError = require('./internal/assert/assertion_error');\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\nvar objectAssign = require('object.assign/polyfill')();\nvar objectIs = require('object-is/polyfill')();\nvar RegExpPrototypeTest = require('call-bind/callBound')('RegExp.prototype.test');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\nvar warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n if (argsLen === 2) operator = '!=';\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== undefined) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n}\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\n\n// Pure assertion tests whether a value is truthy, as determined\n// by !!value.\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\nassert.ok = ok;\n\n// The equality assertion tests shallow, coercive equality with ==.\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n};\n\n// The non-equality assertion tests for whether two objects are not\n// equal with !=.\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n};\n\n// The equivalence assertion tests a deep equality relation.\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n};\n\n// The non-equivalence assertion tests for any deep inequality.\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\nvar Comparison = /*#__PURE__*/_createClass(function Comparison(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison);\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n});\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n // assert.doesNotThrow does not accept objects.\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n }\n\n // Handle primitives properly.\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n // Special handle errors to make sure the name and the message are compared\n // as well.\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n // Guard instanceof against arrow functions as they don't have a prototype.\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n}\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n}\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn();\n // Fail in case no promise is returned.\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n throw actual;\n}\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n });\n\n // Make sure we actually have a stack trace!\n var origStack = err.stack;\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift();\n // Filter all frames existing in err.stack.\n var tmp1 = newErr.stack.split('\\n');\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n throw newErr;\n }\n};\n\n// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a871df3dfb8ea663ef5e1f8f62701ec51384ecb\nfunction internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE('regexp', 'RegExp', regexp);\n }\n var match = fnName === 'match';\n if (typeof string !== 'string' || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n\n // 'The input was expected to not match the regular expression ' +\n message = message || (typeof string !== 'string' ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? 'The input did not match the regular expression ' : 'The input was expected to not match the regular expression ') + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message: message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\nassert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, 'match');\n};\nassert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, 'doesNotMatch');\n};\n\n// Expose a strict only variant of assert\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bound');\nvar $Object = require('es-object-atoms');\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? $Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = $Object(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = $Object(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && ($Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","import { compareVersions } from './compareVersions.js';\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=compare.js.map","import { compare } from './compare.js';\nimport { compareSegments, validateAndParse } from './utils.js';\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n // clean input\n range = range.replace(/([><=]+)\\s+/g, '$1');\n // handle multiple comparators\n if (range.includes('||')) {\n return range.split('||').some((r) => satisfies(version, r));\n }\n else if (range.includes(' - ')) {\n const [a, b] = range.split(' - ', 2);\n return satisfies(version, `>=${a} <=${b}`);\n }\n else if (range.includes(' ')) {\n return range\n .trim()\n .replace(/\\s{2,}/g, ' ')\n .split(' ')\n .every((r) => satisfies(version, r));\n }\n // if no range operator then \"=\"\n const m = range.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~')\n return compare(version, range, op);\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3, , vp] = validateAndParse(version);\n const [r1, r2, r3, , rp] = validateAndParse(range);\n const v = [v1, v2, v3];\n const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n // validate pre-release\n if (rp) {\n if (!vp)\n return false;\n if (compareSegments(v, r) !== 0)\n return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n return false;\n }\n // first non-zero number\n const nonZero = r.findIndex((v) => v !== '0') + 1;\n // pointer to where segments can be >=\n const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n // before pointer must be equal\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n return false;\n // after pointer must be >=\n if (compareSegments(v.slice(i), r.slice(i)) === -1)\n return false;\n return true;\n};\n//# sourceMappingURL=satisfies.js.map","import { semver } from './utils.js';\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Validate [semver](https://semver.org/) version strings strictly. Will not accept wildcards and version ranges.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number `false` otherwise\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validateStrict = (version) => typeof version === 'string' &&\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/.test(version);\n//# sourceMappingURL=validate.js.map","// const { STAC } = require('stac-js');\n\nclass BaseValidator {\n\n\t/**\n\t * \n\t */\n\tconstructor() {\n\t}\n\n\tasync createAjv(ajv) {\n\t\treturn ajv;\n\t}\n\n\t/**\n\t * Any preprocessing work you want to do on the data.\n\t * \n\t * @param {Object} data\n\t * @param {import('.').Report} report\n\t * @param {import('.').Config} config\n\t * @returns {Object}\n\t */\n\tasync afterLoading(data, report, config) {\n\t\treturn data;\n\t}\n\n\t/**\n\t * Any custom validation routines you want to run.\n\t * \n\t * You can either create a list of errors using the test interface\n\t * or just throw on the first error.\n\t * \n\t * @param {STAC} data\n\t * @param {Test} test\n\t * @param {import('.').Report} report\n\t * @param {import('.').Config} config\n\t * @throws {Error}\n\t */\n\tasync afterValidation(data, test, report, config) {\n\n\t}\n\n}\n\nmodule.exports = BaseValidator;\n","const versions = require('compare-versions');\n\nconst { createAjv, isUrl, loadSchemaFromUri, normalizePath, isObject } = require('./utils');\nconst defaultLoader = require('./loader/default');\nconst BaseValidator = require('./baseValidator');\nconst Test = require('./test');\n\n/**\n * @typedef Config\n * @type {Object}\n * @property {function|null} [loader=null] A function that loads the JSON from the given files.\n * @property {string|null} [schemas=null] Validate against schemas in a local or remote STAC folder.\n * @property {Object.} [schemaMap={}] Validate against a specific local schema (e.g. an external extension). Provide the schema URI as key and the local path as value.\n * @property {boolean} [strict=false] Enable strict mode in validation for schemas and numbers (as defined by ajv for options `strictSchema`, `strictNumbers` and `strictTuples\n * @property {BaseValidator} [customValidator=null] A validator with custom rules.\n */\n\n/**\n * @typedef Report\n * @type {Object}\n * @property {string} id\n * @property {string} type\n * @property {string} version\n * @property {boolean} valid\n * @property {Array.} messages\n * @property {Array.} children\n * @property {Results} results\n * @property {boolean} apiList\n */\n\n/**\n * @typedef Results\n * @type {Object}\n * @property {OArray.} core\n * @property {Object.>} extensions\n * @property {Array.} custom\n */\n\n/**\n * @returns {Report}\n */\nfunction createReport() {\n\tlet result = {\n\t\tid: null,\n\t\ttype: null,\n\t\tversion: null,\n\t\tvalid: null,\n\t\tskipped: false,\n\t\tmessages: [],\n\t\tchildren: [],\n\t\tresults: {\n\t\t\tcore: [],\n\t\t\textensions: {},\n\t\t\tcustom: []\n\t\t},\n\t\tapiList: false\n\t};\n\treturn result;\n}\n\n/**\n * @param {Array.|Array.|Object|string} data The data to validate\n * @param {Config} config The configuration object\n * @returns {Report|null}\n */\nasync function validate(data, config) {\n\tconst defaultConfig = {\n\t\tloader: defaultLoader,\n\t\tschemas: null,\n\t\tschemaMap: {},\n\t\tstrict: false\n\t};\n\tconfig = Object.assign({}, defaultConfig, config);\n\tconfig.ajv = createAjv(config);\n\tif (config.customValidator) {\n\t\tconfig.ajv = await config.customValidator.createAjv(config.ajv);\n\t}\n\n\tlet report = createReport();\n\tif (typeof data === 'string') {\n\t\treport.id = normalizePath(data);\n\t\tdata = await config.loader(data);\n\t}\n\n\tif (isObject(data)) {\n\t\treport.id = report.id || data.id;\n\t\treport.version = data.stac_version;\n\t\treport.type = data.type;\n\n\t\tif (Array.isArray(data.collections)) {\n\t\t\tdata = data.collections;\n\t\t\treport.apiList = true;\n\t\t\tif (config.verbose) {\n\t\t\t\treport.messages.push(`The file is a CollectionCollection. Validating all ${entries.length} collections, but ignoring the other parts of the response.`);\n\t\t\t}\n\t\t}\n\t\telse if (Array.isArray(data.features)) {\n\t\t\tdata = data.features;\n\t\t\treport.apiList = true;\n\t\t\tif (config.verbose) {\n\t\t\t\treport.messages.push(`The file is a ItemCollection. Validating all ${entries.length} items, but ignoring the other parts of the response.`);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn validateOne(data, config, report);\n\t\t}\n\t}\n\n\tif (Array.isArray(data) && data.length > 0) {\n\t\tfor(const obj of data) {\n\t\t\tconst subreport = await validateOne(obj, config);\n\t\t\treport.children.push(subreport);\n\t\t}\n\t\treturn summarizeResults(report);\n\t}\n\telse {\n\t\treturn null;\n\t}\n}\n\n\n/**\n * @param {Object|string} source The data to validate\n * @param {Config} config The configuration object\n * @param {Report} report Parent report\n * @returns {Report}\n */\nasync function validateOne(source, config, report = null) {\n\tif (!report) {\n\t\treport = createReport();\n\t}\n\n\tlet data = source;\n\tif (!report.id) {\n\t\tif (typeof data === 'string') {\n\t\t\treport.id = normalizePath(data);\n\t\t\ttry {\n\t\t\t\tdata = await config.loader(data);\n\t\t\t} catch (error) {\n\t\t\t\treport.valid = false;\n\t\t\t\treport.results.core.push({\n\t\t\t\t\tinstancePath: \"\",\n\t\t\t\t\tmessage: error.message\n\t\t\t\t});\n\t\t\t\treturn report;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treport.id = data.id;\n\t\t}\n\t}\n\treport.version = data.stac_version;\n\treport.type = data.type;\n\n\tif (config.customValidator) {\n\t\tdata = await config.customValidator.afterLoading(data, report, config);\n\t}\n\n\tif (typeof config.lintFn === 'function') {\n\t\treport = await config.lintFn(source, report, config);\n\t}\n\n\t// Check stac_version\n\tif (typeof data.stac_version !== 'string') {\n\t\treport.skipped = true;\n\t\treport.messages.push('No STAC version found');\n\t\treturn report;\n\t}\n\telse if (versions.compare(data.stac_version, '1.0.0-rc.1', '<')) {\n\t\treport.skipped = true;\n\t\treport.messages.push('Can only validate STAC version >= 1.0.0-rc.1');\n\t\treturn report;\n\t}\n\n\t// Check type field\n\tswitch(data.type) {\n\t\tcase 'FeatureCollection':\n\t\t\treport.skipped = true;\n\t\t\treport.messages.push('STAC ItemCollections not supported yet');\n\t\t\treturn report;\n\t\tcase 'Catalog':\n\t\tcase 'Collection':\n\t\tcase 'Feature':\n\t\t\t// pass\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treport.valid = false;\n\t\t\treport.results.core.push({\n\t\t\t\tinstancePath: \"/type\",\n\t\t\t\tmessage: \"Can't detect type of the STAC object. Is the 'type' field missing or invalid?\"\n\t\t\t});\n\t\t\treturn report;\n\t}\n\t\t\n\t// Validate against the core schemas\n\tawait validateSchema('core', data.type, data, report, config);\n\n\t// Get all extension schemas to validate against\n\tlet schemas = [];\n\tif (Array.isArray(data.stac_extensions)) {\n\t\tschemas = schemas.concat(data.stac_extensions);\n\t\t// Convert shortcuts supported in 1.0.0 RC1 into schema URLs\n\t\tif (versions.compare(data.stac_version, '1.0.0-rc.1', '=')) {\n\t\t\tschemas = schemas.map(ext => ext.replace(/^(eo|projection|scientific|view)$/, 'https://schemas.stacspec.org/v1.0.0-rc.1/extensions/$1/json-schema/schema.json'));\n\t\t}\n\t}\n\tfor(const schema of schemas) {\n\t\tawait validateSchema('extensions', schema, data, report, config);\n\t}\n\n\tif (config.customValidator) {\n\t\tconst { default: create } = await import('stac-js');\n\t\tconst stac = create(data, false, false);\n\t\ttry {\n\t\t\tconst test = new Test();\n\t\t\tawait config.customValidator.afterValidation(stac, test, report, config);\n\t\t\treport.results.custom = test.errors;\n\t\t} catch (error) {\n\t\t\treport.results.custom = [\n\t\t\t\terror\n\t\t\t];\n\t\t} finally {\n\t\t\tif (report.results.custom.length > 0) {\n\t\t\t\treport.valid = false;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn report;\n}\n\nasync function validateSchema(key, schema, data, report, config) {\n\t// Get schema identifier/uri\n\tlet schemaId;\n\tswitch(schema) {\n\t\tcase 'Feature':\n\t\t\tschema = 'Item';\n\t\tcase 'Catalog':\n\t\tcase 'Collection':\n\t\t\tlet type = schema.toLowerCase();\n\t\t\tschemaId = `https://schemas.stacspec.org/v${report.version}/${type}-spec/json-schema/${type}.json`;\n\t\t\tbreak;\n\t\tdefault: // extension\n\t\t\tif (isUrl(schema)) {\n\t\t\t\tschemaId = schema;\n\t\t\t}\n\t}\n\n\t// Validate\n\tconst setValidity = (errors = []) => {\n\t\tif (report.valid !== false) {\n\t\t\treport.valid = errors.length === 0;\n\t\t}\n\t\tif (key === 'core') {\n\t\t\treport.results.core = errors;\n\t\t}\n\t\telse {\n\t\t\treport.results.extensions[schema] = errors;\n\t\t}\n\t};\n\ttry {\n\t\tif (key !== 'core' && !schemaId) {\n\t\t\tthrow new Error(\"'stac_extensions' must contain a valid schema URL, not a shortcut.\");\n\t\t}\n\t\tconst validate = await loadSchema(config, schemaId);\n\t\tconst valid = validate(data);\n\t\tif (valid) {\n\t\t\tsetValidity();\n\t\t}\n\t\telse {\n\t\t\tsetValidity(validate.errors);\n\t\t}\n\t} catch (error) {\n\t\tsetValidity([{\n\t\t\tmessage: error.message\n\t\t}]);\n\t}\n}\n\nfunction summarizeResults(report) {\n\tif (report.children.length > 0) {\n\t\treport.valid = Boolean(report.children.every(result => result.valid));\n\t}\n\treturn report;\n}\n\nasync function loadSchema(config, schemaId) {\n\tlet schema = config.ajv.getSchema(schemaId);\n\tif (schema) {\n\t\treturn schema;\n\t}\n\n\ttry {\n\t\tjson = await loadSchemaFromUri(schemaId, config);\n\t} catch (error) {\n\t\tthrow new Error(`Schema at '${schemaId}' not found. Please ensure all entries in 'stac_extensions' are valid.`);\n\t}\n\tif (!json.$id) {\n\t\tjson.$id = schemaId;\n\t}\n\n\tschema = config.ajv.getSchema(json.$id);\n\tif (schema) {\n\t\treturn schema;\n\t}\n\n\treturn await config.ajv.compileAsync(json);\n}\n\nmodule.exports = validate;\n","const { parse } = require('uri-js');\n\n// We don't allow empty URIs, same-document and mailto here\nconst IRI = {\n\t'iri': value => {\n\t\tif (typeof value !== 'string' || value.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst iri = parse(value);\n\t\tif ((iri.reference === 'absolute' || iri.reference === 'uri') && iri.scheme && (iri.host || iri.path)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\t'iri-reference': value => {\n\t\tif (typeof value !== 'string' || value.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst iri = parse(value);\n\t\tif ((iri.reference === 'absolute' || iri.reference === 'uri') && iri.scheme && (iri.host || iri.path)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (iri.path && (iri.reference === 'relative' || iri.reference === 'uri'));\n\t}\n};\n\nmodule.exports = IRI;\n","const axios = require('axios');\n\nasync function loader(uri) {\n\tlet response = await axios.get(uri);\n\treturn response.data;\n}\n\nmodule.exports = loader;\n","const assert = require('assert');\n\nclass Test {\n\n\tconstructor() {\n\t\tthis.errors = [];\n\t}\n\n\ttruthy(...args) {\n\t\ttry {\n\t\t\tassert(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdeepEqual(...args) {\n\t\ttry {\n\t\t\tassert.deepEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdeepStrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.deepStrictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdoesNotMatch(...args) {\n\t\ttry {\n\t\t\tassert.doesNotMatch(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tasync doesNotReject(...args) {\n\t\ttry {\n\t\t\tawait assert.doesNotReject(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdoesNotThrow(...args) {\n\t\ttry {\n\t\t\tassert.doesNotThrow(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tequal(...args) {\n\t\ttry {\n\t\t\tassert.equal(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tfail(...args) {\n\t\ttry {\n\t\t\tassert.fail(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tifError(...args) {\n\t\ttry {\n\t\t\tassert.ifError(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tmatch(...args) {\n\t\ttry {\n\t\t\tassert.match(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotDeepEqual(...args) {\n\t\ttry {\n\t\t\tassert.notDeepEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotDeepStrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.notDeepStrictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotEqual(...args) {\n\t\ttry {\n\t\t\tassert.notEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotStrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.notStrictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tok(...args) {\n\t\ttry {\n\t\t\tassert.ok(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tasync rejects(...args) {\n\t\ttry {\n\t\t\tawait assert.rejects(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tstrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.strictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tthrows(...args) {\n\t\ttry {\n\t\t\tassert.throws(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n}\n\nmodule.exports = Test;\n","const Ajv = require('ajv');\nconst addFormats = require('ajv-formats');\nconst iriFormats = require('./iri');\n\nconst SUPPORTED_PROTOCOLS = ['http', 'https'];\n\nfunction isObject(obj) {\n\treturn (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n}\n\nfunction isUrl(uri) {\n\tif (typeof uri === 'string') {\n\t\tlet part = uri.match(/^(\\w+):\\/\\//i);\n\t\tif (part) {\n\t\t\tif (!SUPPORTED_PROTOCOLS.includes(part[1].toLowerCase())) {\n\t\t\t\tthrow new Error(`Given protocol \"${part[1]}\" is not supported.`);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction createAjv(config) {\n\tlet instance = new Ajv({\n\t\tformats: iriFormats,\n\t\tallErrors: config.verbose,\n\t\tstrict: false,\n\t\tlogger: config.verbose ? console : false,\n\t\tloadSchema: async (uri) => await loadSchemaFromUri(uri, config)\n\t});\n\taddFormats(instance);\n\tif (config.strict) {\n\t\tinstance.opts.strictSchema = true;\n\t\tinstance.opts.strictNumbers = true;\n\t\tinstance.opts.strictTuples = true;\n\t}\n\treturn instance;\n}\n\nasync function loadSchemaFromUri(uri, config) {\n\tif (isObject(config.schemaMap) && config.schemaMap[uri]) {\n\t\turi = config.schemaMap[uri];\n\t}\n\telse if (config.schemas) {\n\t\turi = uri.replace(/^https:\\/\\/schemas\\.stacspec\\.org\\/v[^\\/]+/, config.schemas);\n\t}\n\treturn await config.loader(uri);\n}\n\nfunction normalizePath(path) {\n\treturn path.replace(/\\\\/g, '/').replace(/\\/$/, \"\");\n}\n\nfunction getSummary(result, config) {\n\tlet summary = {\n\t\ttotal: 0,\n\t\tvalid: 0,\n\t\tinvalid: 0,\n\t\tmalformed: null,\n\t\tskipped: 0\n\t};\n\tif (result.children.length > 0) {\n\t\t// todo: speed this up by computing in one iteration\n\t\tsummary.total = result.children.length;\n\t\tsummary.valid = result.children.filter(c => c.valid === true).length;\n\t\tsummary.invalid = result.children.filter(c => c.valid === false).length;\n\t\tif (config.lint || config.format) {\n\t\t\tsummary.malformed = result.children.filter(c => c.lint && !c.lint.valid).length;\n\t\t}\n\t\tsummary.skipped = result.children.filter(c => c.skipped).length;\n\t}\n\telse {\n\t\tsummary.total = 1;\n\t\tsummary.valid = result.valid === true ? 1 : 0;\n\t\tsummary.invalid = result.valid === false ? 1 : 0;\n\t\tif (result.lint) {\n\t\t\tsummary.malformed = result.lint.valid ? 0 : 1;\n\t\t}\n\t\tsummary.skipped = result.skipped ? 1 : 0;\n\t}\n\treturn summary;\n}\n\nfunction makeAjvErrorMessage(error) {\n\tlet message = error.message;\n\tif (isObject(error.params) && Object.keys(error.params).length > 0) {\n\t\tlet params = Object.entries(error.params)\n\t\t\t.map(([key, value]) => {\n\t\t\t\tlet label = key.replace(/([^A-Z]+)([A-Z])/g, \"$1 $2\").toLowerCase();\n\t\t\t\treturn `${label}: ${value}`;\n\t\t\t})\n\t\t\t.join(', ')\n\t\tmessage += ` (${params})`;\n\t}\n\tif (error.instancePath) {\n\t\treturn `${error.instancePath} ${message}`;\n\t}\n\telse if (error.schemaPath) {\n\t\treturn `${message}, for schema ${error.schemaPath}`;\n\t}\n\telse if (message) {\n\t\treturn message;\n\t}\n\telse {\n\t\treturn String(error);\n\t}\n}\n\nmodule.exports = {\n\tcreateAjv,\n\tgetSummary,\n\tisObject,\n\tisUrl,\n\tloadSchemaFromUri,\n\tmakeAjvErrorMessage,\n\tnormalizePath\n};\n","/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1; x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join('');\n } else {\n return sets[0];\n }\n}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n}\nfunction assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n}\n\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\n PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n //expanded\n GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n //subset, excludes bidi control characters\n IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n //subset\n UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n //relaxed parsing rules\n IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n // 6( h16 \":\" ) ls32\n IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n // \"::\" 5( h16 \":\" ) ls32\n IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n //[ *5( h16 \":\" ) h16 ] \"::\" h16\n IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n //[ *6( h16 \":\" ) h16 ] \"::\"\n IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),\n //RFC 6874\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n };\n}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/** Highest positive signed 32-bit float value */\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn String.fromCodePoint.apply(String, toConsumableArray(array));\n};\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn String.fromCodePoint.apply(String, output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\nvar SCHEMES = {};\nfunction pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = void 0;\n if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n}\nfunction pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n}\nfunction _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n}\n\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n var _matches = slicedToArray(matches, 2),\n address = _matches[1];\n\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n}\nfunction _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n var _matches2 = slicedToArray(matches, 3),\n address = _matches2[1],\n zone = _matches2[2];\n\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n last = _address$toLowerCase$2[0],\n first = _address$toLowerCase$2[1];\n\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0; x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function (acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index: index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function (a, b) {\n return b.length - a.length;\n })[0];\n var newHost = void 0;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n //store each component\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n //fix port number\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n //IE FIX for improper RegExp matching\n //store each component\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n //fix port number\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n //normalize IP hosts\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n //determine reference type\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n //check for reference errors\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n //if host component is a domain name\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n //convert Unicode IDN -> ASCII IDN\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n //convert IRI -> URI\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n //normalize encodings\n _normalizeComponentEncoding(components, protocol);\n }\n //perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n}\n\nfunction _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n //normalize IP hosts, add brackets and escape zone separator for IPv6\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n}\n\nfunction serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n if (components.host) {\n //if host component is an IPv6 address\n if (protocol.IPV6ADDRESS.test(components.host)) {}\n //TODO: normalize IPv6 address as per RFC 5952\n\n //if host component is a domain name\n else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n //convert IDN via punycode\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n //normalize encoding\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\"); //merge tokens into a string\n}\n\nfunction resolveComponents(base, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n\n var target = {};\n if (!skipNormalization) {\n base = parse(serialize(base, options), options); //normalize base components\n relative = parse(serialize(relative, options), options); //normalize relative components\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = \"/\" + relative.path;\n } else if (!base.path) {\n target.path = relative.path;\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n //target.authority = base.authority;\n target.userinfo = base.userinfo;\n target.host = base.host;\n target.port = base.port;\n }\n target.scheme = base.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n}\n\nfunction resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: 'null' }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n}\n\nfunction normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n}\n\nfunction equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n}\n\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n //report missing host\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n components.port = undefined;\n }\n //normalize the empty path\n if (!components.path) {\n components.path = \"/\";\n }\n //NOTE: We do not parse query strings for HTTP URIs\n //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n //and not the HTTP spec.\n return components;\n }\n};\n\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length; x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders) mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n //convert Unicode IDN -> ASCII IDN\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length; x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n //convert IDN via punycode\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n};\n\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n};\n\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n //normalize UUID\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n};\n\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=uri.all.js.map\n","// Axios v1.7.9 Copyright (c) 2024 Matt Zabriskie and contributors\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils$1.isBlob(body)) {\n return body.size;\n }\n\n if(utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n};\n\nvar fetchAdapter = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.7.9\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","'use strict'\n\nconst { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require('./lib/utils')\nconst SCHEMES = require('./lib/schemes')\n\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = serialize(parse(uri, options), options)\n } else if (typeof uri === 'object') {\n uri = parse(serialize(uri, options), options)\n }\n return uri\n}\n\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = Object.assign({ scheme: 'null' }, options)\n const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n return serialize(resolved, { ...schemelessOptions, skipEscape: true })\n}\n\nfunction resolveComponents (base, relative, options, skipNormalization) {\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base components\n relative = parse(serialize(relative, options), options) // normalize relative components\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path.charAt(0) === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\nfunction serialize (cmpts, opts) {\n const components = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || components.scheme || '').toLowerCase()]\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options)\n\n if (components.path !== undefined) {\n if (!options.skipEscape) {\n components.path = escape(components.path)\n\n if (components.scheme !== undefined) {\n components.path = components.path.split('%3A').join(':')\n }\n } else {\n components.path = unescape(components.path)\n }\n }\n\n if (options.reference !== 'suffix' && components.scheme) {\n uriTokens.push(components.scheme, ':')\n }\n\n const authority = recomposeAuthority(components)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (components.path && components.path.charAt(0) !== '/') {\n uriTokens.push('/')\n }\n }\n if (components.path !== undefined) {\n let s = components.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (authority === undefined) {\n s = s.replace(/^\\/\\//u, '/%2F') // don't allow the path to start with \"//\"\n }\n\n uriTokens.push(s)\n }\n\n if (components.query !== undefined) {\n uriTokens.push('?', components.query)\n }\n\n if (components.fragment !== undefined) {\n uriTokens.push('#', components.fragment)\n }\n return uriTokens.join('')\n}\n\nconst hexLookUp = Array.from({ length: 127 }, (_v, k) => /[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)))\n\nfunction nonSimpleDomain (value) {\n let code = 0\n for (let i = 0, len = value.length; i < len; ++i) {\n code = value.charCodeAt(i)\n if (code > 126 || hexLookUp[code]) {\n return true\n }\n }\n return false\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n const gotEncoding = uri.indexOf('%') !== -1\n let isIP = false\n if (options.reference === 'suffix') uri = (options.scheme ? options.scheme + ':' : '') + '//' + uri\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = normalizeIPv4(parsed.host)\n if (ipv4result.isIPV4 === false) {\n const ipv6result = normalizeIPv6(ipv4result.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n parsed.host = ipv4result.host\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || '').toLowerCase()]\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (gotEncoding && parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (gotEncoding && parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponents,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nconst IPV4_REG = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(IPV4_REG) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n"],"names":["fmtDef","validate","compare","isLeapYear","year","Object","defineProperty","exports","value","formatNames","fastFormats","fullFormats","date","compareDate","time","compareTime","date_time","compareDateTime","duration","uri","url","email","hostname","ipv4","ipv6","regex","uuid","byte","int32","type","validateInt32","int64","validateInt64","float","validateNumber","double","password","binary","keys","DATE","DAYS","str","matches","exec","month","day","d1","d2","TIME","withTimeZone","hour","minute","second","timeZone","t1","t2","a1","a2","DATE_TIME_SEPARATOR","dateTime","split","length","dt1","dt2","res","undefined","NOT_URI_FRAGMENT","URI","test","BYTE","lastIndex","MIN_INT32","MAX_INT32","Number","isInteger","Z_ANCHOR","RegExp","e","formats_1","limit_1","codegen_1","fullName","Name","fastName","formatsPlugin","ajv","opts","keywords","Array","isArray","addFormats","formats","exportName","mode","list","default","fs","_a","_b","code","_","f","addFormat","get","name","Error","module","formatLimitDefinition","ajv_1","ops","operators","KWDs","formatMaximum","okStr","ok","LTE","fail","GT","formatMinimum","GTE","LT","formatExclusiveMaximum","formatExclusiveMinimum","error","message","keyword","schemaCode","params","schemaType","$data","cxt","gen","data","it","self","validateFormats","fCxt","KeywordCxt","RULES","all","format","definition","validate$DataFormat","fmts","scopeValue","ref","fmt","const","fail$data","or","compareCode","validateFormat","schema","key","getProperty","dependencies","formatLimitPlugin","addKeyword","MissingRefError","ValidationError","CodeGen","nil","stringify","Ajv","core_1","draft7_1","discriminator_1","draft7MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","_addVocabularies","super","forEach","v","this","addVocabulary","discriminator","_addDefaultMetaSchema","meta","metaSchema","$dataMetaSchema","addMetaSchema","refs","defaultMeta","getSchema","validate_1","enumerable","validation_error_1","ref_error_1","regexpCode","getEsmExportName","safeStringify","strConcat","addCodeArg","_Code","IDENTIFIER","_CodeOrName","constructor","s","toString","emptyStr","names","_items","item","_str","reduce","c","_names","strs","args","i","push","plus","expr","optimize","arg","interpolate","mergeExprItems","splice","a","b","slice","c1","c2","x","join","JSON","replace","rx","and","not","varKinds","ValueScopeName","ValueScope","Scope","code_1","scope_1","code_2","scope_2","EQ","NEQ","NOT","OR","AND","ADD","Node","optimizeNodes","optimizeNames","_constants","Def","varKind","rhs","render","es5","_n","var","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Label","label","Break","Throw","AnyCode","ParentNode","nodes","n","subtractNames","addNames","BlockNode","Root","Else","kind","If","condition","else","cond","ns","For","ForLoop","iteration","ForRange","from","to","ForIter","loop","iterable","Func","async","_async","Return","Try","catch","finally","Catch","Finally","extScope","_values","_blockStarts","lines","_extScope","_scope","parent","_nodes","_root","prefix","scopeName","prefixOrName","vs","Set","add","getScopeValue","keyOrRef","getValue","scopeRefs","scopeCode","_def","nameOrPrefix","constant","toName","_leafNode","_constant","let","assign","object","keyValues","thenBody","elseBody","_blockNode","endIf","elseIf","_elseNode","_endBlockNode","_for","node","forBody","endFor","forRange","forOf","arr","forIn","obj","ownProperties","tryBody","catchCode","finallyCode","_currNode","block","body","nodeCount","endBlock","len","pop","toClose","func","funcBody","endFunc","N1","N2","replaceName","canOptimize","items","some","par","andCode","mappend","orCode","y","UsedValueState","ValueError","prefixes","_prefixes","_parent","_newName","ng","_nameGroup","index","has","nameStr","setValue","property","itemIndex","scopePath","line","scope","valueKey","_name","Map","set","values","_reduceValues","usedValues","getCode","valueCode","nameSet","Started","def","Completed","extendErrors","resetErrorsCount","reportExtraError","reportError","keyword$DataError","keywordError","util_1","names_1","errorPaths","overrideAllErrors","compositeRule","allErrors","errObj","errorObjectCode","addError","returnErrors","vErrors","errsCount","errors","if","schemaValue","err","instancePath","errorPath","errSchemaPath","verbose","errs","validateName","schemaEnv","$async","throw","return","E","schemaPath","propertyName","parentSchema","createErrors","errorObject","errorInstancePath","errorSchemaPath","extraErrorProps","instPath","getErrorPath","Type","Str","schPath","topSchemaRef","messages","resolveSchema","getCompilingSchema","resolveRef","compileSchema","SchemaEnv","resolve_1","env","dynamicAnchors","schemaId","root","baseId","normalizeId","localRefs","sch","_sch","call","rootId","getFullPath","uriResolver","_ValidationError","schemaCxt","parentData","parentDataProperty","dataNames","dataPathArr","dataLevel","dataTypes","definedProperties","source","jtd","sourceCode","_compilations","validateFunctionCode","validateCode","process","makeValidate","Function","scopeValues","unevaluated","props","evaluated","dynamicProps","dynamicItems","logger","delete","resolveUrl","schOrFunc","resolve","inlineOrCompile","inlineRef","inlineRefs","schEnv","sameSchemaEnv","s1","s2","schemas","p","parse","refPath","_getFullPath","getJsonPointer","id","schOrRef","schId","PREVENT_SCOPE_CHANGE","parsedRef","fragment","part","partSchema","unescapeFragment","$ref","schemaHasRulesButRef","valCxt","rootData","json","jsonPos","jsonLen","jsonPart","resolver","msg","missingRef","missingSchema","getSchemaRefs","equal","traverse","SIMPLE_INLINED","limit","hasRef","countKeys","REF_KEYWORDS","count","Infinity","eachItem","normalize","serialized","serialize","TRAILING_SLASH_HASH","ANCHOR","baseIds","pathPrefix","schemaRefs","allKeys","jsonPtr","parentJsonPtr","fullPath","innerBaseId","addRef","_resolve","ambiguos","checkAmbiguosRef","addAnchor","anchor","$anchor","$dynamicAnchor","sch1","sch2","getRules","isJSONType","_jsonTypes","jsonTypes","groups","number","rules","string","array","types","integer","boolean","null","post","checkStrictMode","useFunc","setEvaluated","evaluatedPropsToName","mergeEvaluated","unescapeJsonPointer","escapeJsonPointer","escapeFragment","schemaRefOrVal","schemaHasRules","checkUnknownRules","alwaysValidSchema","toHash","hash","strictSchema","decodeURIComponent","encodeURIComponent","xs","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","ps","Math","max","snippets","dataProp","dataPropType","jsPropertySyntax","isNumber","Num","warn","schemaHasRulesForType","group","shouldUseGroup","rule","shouldUseRule","implements","kwd","boolOrEmptySchema","topBoolOrEmptySchema","errors_1","boolError","falseSchemaError","valid","reportTypeError","checkDataTypes","checkDataType","coerceAndCheckDataType","getJSONTypes","getSchemaTypes","DataType","rules_1","applicability_1","hasNull","includes","nullable","ts","every","coerceTo","coerceToTypes","coerceTypes","checkTypes","wrongType","strictNumbers","Wrong","coerceData","COERCIBLE","filter","t","dataType","coerced","coerceSpecificType","assignParentData","strictNums","correct","Correct","numCond","_cond","notObj","typeError","getTypeErrorContext","assignDefaults","ty","properties","assignDefault","prop","defaultValue","childData","useDefaults","getData","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","isSchemaObj","checkKeywords","schemaCxtHasRules","topSchemaObjCode","validateFunction","funcSourceUrl","destructureValCxtES5","destructureValCxt","dynamicRef","$comment","commentKeyword","checkNoDefault","resetEvaluated","typeAndKeywords","returnResults","subschemaCode","subSchemaObjCode","updateContext","checkAsyncSchema","checkRefsAndKeywords","schemaKeywords","checkedTypes","ignoreKeywordsWithRef","rootName","assignEvaluated","typeErrors","groupKeywords","iterateKeywords","checkStrictTypes","keywordCode","strictTypes","checkContextTypes","allowUnionTypes","checkMultipleTypes","checkKeywordTypes","includesType","strictTypesError","narrowSchemaTypes","hasApplicableType","schTs","kwdT","withTypes","validateKeywordUsage","validSchemaType","allowUndefined","trackErrors","result","successAction","failAction","failResult","pass","invalid$data","append","errorParams","setParams","_error","$dataError","reset","block$data","codeBlock","$dataValid","check$data","validateSchema","wrong$DataType","invalid$DataSchema","st","validateSchemaRef","subschema","appl","getSubschema","extendSubschemaData","extendSubschemaMode","nextContext","mergeValidEvaluated","ruleType","funcKeywordCode","macroKeywordCode","compile","JSON_POINTER","RELATIVE_JSON_POINTER","jsonPointer","up","errorMsg","segments","segment","pointerType","macroSchema","macro","schemaRef","useKeyword","checkAsyncKeyword","validateRef","validateKeyword","assignValid","modifying","modifyData","reportErrs","ruleErrs","validateAsync","validateSync","addErrs","try","validateErrs","_await","passCxt","passContext","passSchema","callValidateCode","deps","prototype","hasOwnProperty","errorsText","schemaProp","dpType","nextData","dataContextProps","_nextData","jtdDiscriminator","jtdMetadata","compile_1","codegen_2","$dataRefSchema","uri_1","defaultRegExp","flags","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","errorDataPath","jsonPointers","extendRefs","missingRefs","processCode","strictDefaults","strictKeywords","uniqueItems","unknownFormats","cache","ajvErrors","deprecatedOptions","unicode","MAX_EXPRESSION","requiredOptions","o","_c","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","strict","_optz","regExp","strictTuples","strictRequired","loopRequired","loopEnum","addUsedSchema","unicodeRegExp","int32range","_loading","_cache","getLogger","formatOpt","checkOptions","_metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","_dataRefSchema","$id","schemaKeyRef","_meta","_addSchema","_compileSchemaEnv","compileAsync","loadSchema","runCompileAsync","_schema","loadMetaSchema","$schema","_compileAsync","checkLoaded","loadMissingSchema","_loadSchema","addSchema","_validateSchema","_checkUnique","throwOrLogError","keyRef","getSchEnv","removeSchema","_removeAllSchemas","clear","cacheKey","definitions","kwdOrDef","checkKeyword","addRule","keywordMetaschema","k","getKeyword","removeKeyword","findIndex","separator","dataVar","map","text","keywordsJsonPointers","seg","schemaOrData","startsWith","_compileMetaSchema","currentOpts","checkOpts","options","log","opt","optsSchemas","defs","metaOpts","noLogs","console","KEYWORD_NAME","ruleGroup","find","before","addBeforeRule","_rule","$dataRef","anyOf","ucs2length","pos","charCodeAt","validation","validateAdditionalItems","validateItems","break","additionalProperty","removeAdditional","allSchemaProperties","patProps","patternProperties","checkAdditionalProperties","isAdditional","additionalPropertyCode","definedProp","propsSchema","isOwnProperty","usePattern","deleteAdditional","applyAdditionalSchema","schCxt","validateUnion","min","minContains","maxContains","next","validateItemsWithCount","schValid","checkLimits","_valid","validateSchemaDeps","validatePropertyDeps","depsCount","property_ies","missingProperty","propDeps","schDeps","splitDependencies","propertyDeps","schemaDeps","missing","hasProperty","propertyInData","depProp","checkReportMissingProp","checkMissingProp","reportMissingProp","ifClause","then","hasThen","hasSchema","hasElse","validateIf","validateClause","additionalItems_1","prefixItems_1","items_1","items2020_1","contains_1","dependencies_1","propertyNames_1","additionalProperties_1","properties_1","patternProperties_1","not_1","anyOf_1","oneOf_1","allOf_1","if_1","thenElse_1","getApplicator","draft2020","applicator","validateTuple","validateArray","extraItems","schArr","checkStrictTuple","l","fullTuple","minItems","maxItems","prefixItems","passing","validateOneOf","util_2","patterns","alwaysValidPatterns","checkProperties","allowMatchingProperties","validatePatternProperties","pat","checkMatchingProperties","validateProperties","alwaysValid","additionalProperties","allProps","hasDefault","applyPropertySchema","schemaProperties","noPropertyInData","hasPropFunc","schemaMap","context","dataAndSchema","newRegExp","pattern","u","validArr","notValid","merged","id_1","ref_1","core","callRef","getValidate","callRootRef","schOrEnv","callValidate","inlineRefSchema","schName","callAsyncRef","addEvaluatedFrom","addErrorsFrom","callSyncRef","schEvaluated","types_1","discrError","tagName","DiscrError","Tag","tag","oneOf","mapping","validateMapping","getMapping","tagValue","applyTagSchema","Mapping","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","required","addMapping","enum","validation_1","applicator_1","format_1","metadata_1","draft7Vocabularies","metadataVocabulary","contentVocabulary","fDef","fType","unknownFmt","invalidFmt","callFormat","validData","formatDef","unknownFormat","fmtType","fmtRef","getFormat","unknownMsg","validCondition","equal_1","useLoop","eql","getEql","vSchema","equalCode","limitNumber_1","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","comp","ucs2length_1","maximum","minimum","exclusiveMaximum","exclusiveMinimum","prec","multipleOfPrecision","invalid","allErrorsMode","exitOnErrorMode","requiredKey","loopAllRequired","loopUntilMissing","j","itemTypes","validateUniqueItems","loopN","loopN2","indices","for","outer","_typeof","Symbol","iterator","_defineProperties","target","descriptor","configurable","writable","_toPropertyKey","_createClass","Constructor","protoProps","staticProps","_toPrimitive","String","input","hint","prim","toPrimitive","TypeError","_classCallCheck","instance","isDeepEqual","isDeepStrictEqual","_require","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","_require2","inspect","_require$types","isPromise","isRegExp","objectAssign","objectIs","RegExpPrototypeTest","lazyLoadComparison","comparison","warned","assert","NO_EXCEPTION_SENTINEL","innerFail","actual","expected","operator","stackStartFn","internalMessage","argsLen","arguments","emitWarning","bind","errArgs","generatedMessage","innerOk","fn","argLen","_len","_key","apply","concat","notDeepStrictEqual","notEqual","deepEqual","notDeepEqual","deepStrictEqual","strictEqual","notStrictEqual","Comparison","_this","compareExceptionKey","expectedException","isPrototypeOf","getActual","checkIsPromise","waitForActual","promiseFn","Promise","resultPromise","expectsError","details","fnType","expectsNoError","internalMatch","regexp","fnName","match","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","shift","tmp1","indexOf","doesNotMatch","ownKeys","r","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_isNativeFunction","Wrapper","_construct","Parent","sham","Proxy","Boolean","valueOf","setPrototypeOf","__proto__","getPrototypeOf","endsWith","search","this_len","substring","repeat","floor","maxCount","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","kMaxShortLength","copyError","inspectValue","val","compact","customInspect","depth","maxArrayLength","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","other","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","maxLength","stderr","isTTY","columns","maxLines","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","_inspect$custom","_super","stackTraceLimit","getColorDepth","base","_res","knownOperators","captureStackTrace","recurseTimes","ctx","custom","util","createErrorType","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","thing","substr","start","determiner","reason","inspected","RangeError","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","done","regexFlagsSupported","arrayFromSet","arrayFromMap","is","objectGetOwnPropertySymbols","numberIsNaN","isNaN","uncurryThis","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","pow","getOwnNonIndexProperties","ONLY_ENUMERABLE","kStrict","kLoose","kNoIterator","kIsArray","kIsSet","kIsMap","areSimilarRegExps","areSimilarFloatArrays","byteLength","offset","areSimilarTypedArrays","Uint8Array","buffer","byteOffset","areEqualArrayBuffers","buf1","buf2","isEqualBoxedPrimitive","val1","val2","BigInt","innerDeepEqual","memos","val1Tag","val2Tag","keys1","keys2","keyCheck","Date","getTime","_keys","_keys2","size","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","objEquiv","setHasEqualElement","memo","setValues","findLooseMatchingPrimitives","setMightHaveLoosePrim","altValue","mapMightHaveLoosePrim","curB","setEquiv","aValues","bValues","_i","_val","mapHasEqualEntry","key1","item1","key2","mapEquiv","aEntries","_aEntries$i","item2","bEntries","_i2","_bEntries$_i","keysA","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","hasSymbols","toStr","defineDataProperty","isFunction","supportsDescriptors","predicate","predicates","define","implementation","getPolyfill","shim","polyfill","NaN","cb","pre","_traverse","rootSchema","parentKeyword","keyIndex","arrayKeywords","propsKeywords","escapeJsonPtr","skipKeywords","additionalItems","contains","propertyNames","allOf","$defs","multipleOf","minLength","maxProperties","minProperties","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","equalsConstructorPrototypeIfNotBuggy","isObject","isArguments","isString","theKeys","skipProto","skipConstructor","origKeys","originalKeys","keysWorksWithArguments","callee","objectKeys","callBound","$Object","$push","$propIsEnumerable","originalGetSymbols","source1","getSymbols","syms","nextKey","propValue","lacksProperEnumerationOrder","letters","assignHasPendingExceptions","preventExtensions","thrower","semver","validateAndParse","version","isWildcard","tryParse","parseInt","forceType","compareStrings","ap","bp","compareSegments","compareVersions","v1","v2","n1","n2","p1","p2","assertValidOperator","operatorResMap","allowedOperators","satisfies","range","trim","m","v3","vp","r1","r2","r3","rp","nonZero","validateStrict","BaseValidator","createAjv","afterLoading","report","config","afterValidation","versions","isUrl","loadSchemaFromUri","normalizePath","defaultLoader","Test","createReport","children","results","extensions","apiList","defaultConfig","loader","customValidator","stac_version","collections","entries","features","validateOne","subreport","summarizeResults","lintFn","stac_extensions","ext","stac","toLowerCase","setValidity","IRI","iri","reference","scheme","host","path","axios","response","truthy","iriFormats","SUPPORTED_PROTOCOLS","getSummary","summary","total","malformed","lint","makeAjvErrorMessage","global","factory","merge","sets","xl","subexp","typeOf","toUpperCase","toArray","setInterval","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","sliceIterator","_arr","toConsumableArray","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","fromCharCode","error$1","mapDomain","parts","labels","encoded","ucs2decode","output","counter","extra","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","bias","basic","lastIndexOf","oldi","w","baseMinusT","out","encode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_currentValue2","basicLength","handledCPCount","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","q","qMinusT","toUnicode","toASCII","punycode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","userinfo","query","_stripLeadingZeros","_normalizeIPv4","_matches","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","acc","field","lastLongest","longestZeroFields","sort","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","port","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","baseURI","relativeURI","schemelessOptions","uriA","uriB","escapeComponent","unescapeComponent","handler","secure","handler$1","isSecure","wsComponents","handler$2","resourceName","_wsComponents$resourc","_wsComponents$resourc2","handler$3","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_xl","subject","_x2","_xl2","addr","toAddr","atIdx","localPart","domain","URN_PARSE","handler$5","urnComponents","nid","nss","urnScheme","uriComponents","UUID","handler$6","uuidComponents","thisArg","kindOf","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","ArrayBuffer","isView","isBoolean","isPlainObject","toStringTag","isFile","isBlob","isFileList","isStream","pipe","isFormData","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","getOwnPropertyNames","findKey","_global","globalThis","g","isContextDefined","caseless","assignValue","targetKey","extend","stripBOM","content","inherits","superConstructor","descriptors","toFlatObject","sourceObj","destObj","propFilter","searchString","isTypedArray","TypedArray","forEachEntry","generator","pair","matchAll","isHTMLForm","toCamelCase","reduceDescriptors","reducer","reducedDescriptors","ret","freezeMethods","toObjectSet","arrayOrString","noop","toFiniteNumber","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","alphabet","random","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","callbacks","addEventListener","postMessage","setTimeout","asap","queueMicrotask","nextTick","utils$1","hasOwnProp","AxiosError","request","status","toJSON","description","fileName","lineNumber","columnNumber","prototype$1","customProps","axiosError","cause","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","toFormData","formData","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","useBlob","convertValue","toISOString","Buffer","el","exposedHelpers","build","encode$1","charMap","AxiosURLSearchParams","_pairs","buildURL","_encode","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","h","InterceptorManager$1","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams$1","URLSearchParams","FormData$1","Blob$1","platform$1","isBrowser","classes","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","utils","freeze","platform","toURLEncodedForm","helpers","isNode","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","normalized","targets","asStrings","computed","accessor","internals","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","reject","ERR_BAD_REQUEST","parseProtocol","speedometer","samplesCount","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","startedAt","bytesCount","passed","round","throttle","freq","lastArgs","timer","timestamp","threshold","invoke","clearTimeout","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","lengthComputable","progressBytes","rate","inRange","progress","estimated","event","progressEventDecorator","asyncDecorator","isURLSameOrigin","isMSIE","URL","userAgent","cookies","write","expires","cookie","toGMTString","read","remove","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","unescape","xsrfValue","isXHRAdapterSupported","XMLHttpRequest","xhrAdapter","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","send","composeSignals","signals","controller","AbortController","composeSignals$1","streamChunk","chunk","chunkSize","readBytes","readStream","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","getBodyLength","_request","resolveBodyLength","getContentLength","fetchAdapter","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","getAdapter","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators$1","deprecatedWarnings","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","validator","ERR_BAD_OPTION","formatMessage","desc","ERR_DEPRECATED","spelling","correctSpelling","validators","Axios","instanceConfig","interceptors","configOrUrl","dummy","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","_listeners","onfulfilled","CancelToken$1","spread","callback","isAxiosError","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$1","createInstance","Cancel","promises","formToJSON","normalizeIPv6","normalizeIPv4","recomposeAuthority","normalizeComponentEncoding","resolved","skipEscape","cmpts","escape","hexLookUp","nonSimpleDomain","gotEncoding","isIP","ipv4result","isIPV4","ipv6result","isIPV6","domainToASCII","skipNormalize","encodeURI","fastUri","UUID_REG","URN_REG","httpParse","httpSerialize","wsParse","wsSerialize","urnParse","urnSerialize","urnuuidParse","urnuuidSerialize","https","ws","wss","urn","urnuuid","HEX","A","B","C","d","D","F","IPV4_REG","findToken","stripLeadingZeros","stringArrayToHexStripped","keepZero","strip","getIPV6","tokenCount","isZone","endipv6Encountered","endIpv6","consume","hex","cursor","escapedHost","skip","ind","esc","ipV4res","ipV6res"],"sourceRoot":""} \ No newline at end of file diff --git a/js/287.fa584da8.js.map b/js/287.fa584da8.js.map deleted file mode 100644 index 626e05321..000000000 --- a/js/287.fa584da8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/287.fa584da8.js","mappings":"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","sources":["webpack://@radiantearth/stac-browser/./node_modules/ajv-formats/dist/formats.js","webpack://@radiantearth/stac-browser/./node_modules/ajv-formats/dist/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv-formats/dist/limit.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/ajv.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/codegen/code.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/codegen/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/codegen/scope.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/errors.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/names.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/ref_error.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/resolve.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/rules.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/util.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/validate/applicability.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/validate/boolSchema.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/validate/dataType.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/validate/defaults.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/validate/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/validate/keyword.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/compile/validate/subschema.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/core.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/runtime/equal.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/runtime/ucs2length.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/runtime/uri.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/runtime/validation_error.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/allOf.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/anyOf.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/contains.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/dependencies.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/if.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/items.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/items2020.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/not.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/oneOf.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/properties.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/applicator/thenElse.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/code.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/core/id.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/core/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/core/ref.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/discriminator/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/discriminator/types.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/draft7.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/format/format.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/format/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/metadata.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/const.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/enum.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/index.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/limitItems.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/limitLength.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/limitNumber.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/limitProperties.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/multipleOf.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/pattern.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/required.js","webpack://@radiantearth/stac-browser/./node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","webpack://@radiantearth/stac-browser/./node_modules/assert/build/assert.js","webpack://@radiantearth/stac-browser/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://@radiantearth/stac-browser/./node_modules/assert/build/internal/errors.js","webpack://@radiantearth/stac-browser/./node_modules/assert/build/internal/util/comparisons.js","webpack://@radiantearth/stac-browser/./node_modules/call-bind/callBound.js","webpack://@radiantearth/stac-browser/./node_modules/define-properties/index.js","webpack://@radiantearth/stac-browser/./node_modules/fast-deep-equal/index.js","webpack://@radiantearth/stac-browser/./node_modules/is-nan/implementation.js","webpack://@radiantearth/stac-browser/./node_modules/is-nan/index.js","webpack://@radiantearth/stac-browser/./node_modules/is-nan/polyfill.js","webpack://@radiantearth/stac-browser/./node_modules/is-nan/shim.js","webpack://@radiantearth/stac-browser/./node_modules/json-schema-traverse/index.js","webpack://@radiantearth/stac-browser/./node_modules/object-is/implementation.js","webpack://@radiantearth/stac-browser/./node_modules/object-is/index.js","webpack://@radiantearth/stac-browser/./node_modules/object-is/polyfill.js","webpack://@radiantearth/stac-browser/./node_modules/object-is/shim.js","webpack://@radiantearth/stac-browser/./node_modules/object-keys/implementation.js","webpack://@radiantearth/stac-browser/./node_modules/object-keys/index.js","webpack://@radiantearth/stac-browser/./node_modules/object-keys/isArguments.js","webpack://@radiantearth/stac-browser/./node_modules/object.assign/implementation.js","webpack://@radiantearth/stac-browser/./node_modules/object.assign/polyfill.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/node_modules/compare-versions/lib/esm/utils.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/node_modules/compare-versions/lib/esm/compareVersions.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/node_modules/compare-versions/lib/esm/compare.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/node_modules/compare-versions/lib/esm/satisfies.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/node_modules/compare-versions/lib/esm/validate.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/src/baseValidator.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/src/index.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/src/iri.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/src/loader/default.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/src/test.js","webpack://@radiantearth/stac-browser/./node_modules/stac-node-validator/src/utils.js","webpack://@radiantearth/stac-browser/./node_modules/uri-js/dist/es5/uri.all.js","webpack://@radiantearth/stac-browser/./node_modules/axios/dist/browser/axios.cjs","webpack://@radiantearth/stac-browser/./node_modules/fast-uri/index.js","webpack://@radiantearth/stac-browser/./node_modules/fast-uri/lib/schemes.js","webpack://@radiantearth/stac-browser/./node_modules/fast-uri/lib/scopedChars.js","webpack://@radiantearth/stac-browser/./node_modules/fast-uri/lib/utils.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n return { validate, compare };\n}\nexports.fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(time, compareTime),\n \"date-time\": fmtDef(date_time, compareDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nfunction time(str, withTimeZone) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hour = +matches[1];\n const minute = +matches[2];\n const second = +matches[3];\n const timeZone = matches[5];\n return (((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour === 23 && minute === 59 && second === 60)) &&\n (!withTimeZone || timeZone !== \"\"));\n}\nfunction compareTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3] + (a1[4] || \"\");\n t2 = a2[1] + a2[2] + a2[3] + (a2[4] || \"\");\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n limit_1.default(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = codegen_1._ `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", codegen_1._ `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data(codegen_1.or(codegen_1._ `typeof ${fmt} != \"object\"`, codegen_1._ `${fmt} instanceof RegExp`, codegen_1._ `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return codegen_1._ `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n]);\nfunction inlineRef(schema, limit = true) {\n if (typeof schema == \"boolean\")\n return true;\n if (limit === true)\n return !hasRef(schema);\n if (!limit)\n return false;\n return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key))\n return true;\n const sch = schema[key];\n if (Array.isArray(sch) && sch.some(hasRef))\n return true;\n if (typeof sch == \"object\" && hasRef(sch))\n return true;\n }\n return false;\n}\nfunction countKeys(schema) {\n let count = 0;\n for (const key in schema) {\n if (key === \"$ref\")\n return Infinity;\n count++;\n if (SIMPLE_INLINED.has(key))\n continue;\n if (typeof schema[key] == \"object\") {\n (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\nvar AssertionError = require('./internal/assert/assertion_error');\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\nvar objectAssign = require('object.assign/polyfill')();\nvar objectIs = require('object-is/polyfill')();\nvar RegExpPrototypeTest = require('call-bind/callBound')('RegExp.prototype.test');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\nvar warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n if (argsLen === 2) operator = '!=';\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== undefined) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n}\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\n\n// Pure assertion tests whether a value is truthy, as determined\n// by !!value.\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\nassert.ok = ok;\n\n// The equality assertion tests shallow, coercive equality with ==.\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n};\n\n// The non-equality assertion tests for whether two objects are not\n// equal with !=.\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n};\n\n// The equivalence assertion tests a deep equality relation.\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n};\n\n// The non-equivalence assertion tests for any deep inequality.\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\nvar Comparison = /*#__PURE__*/_createClass(function Comparison(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison);\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n});\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n // assert.doesNotThrow does not accept objects.\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n }\n\n // Handle primitives properly.\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n // Special handle errors to make sure the name and the message are compared\n // as well.\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n // Guard instanceof against arrow functions as they don't have a prototype.\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n}\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n}\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn();\n // Fail in case no promise is returned.\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n throw actual;\n}\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n });\n\n // Make sure we actually have a stack trace!\n var origStack = err.stack;\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift();\n // Filter all frames existing in err.stack.\n var tmp1 = newErr.stack.split('\\n');\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n throw newErr;\n }\n};\n\n// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a871df3dfb8ea663ef5e1f8f62701ec51384ecb\nfunction internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE('regexp', 'RegExp', regexp);\n }\n var match = fnName === 'match';\n if (typeof string !== 'string' || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n\n // 'The input was expected to not match the regular expression ' +\n message = message || (typeof string !== 'string' ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? 'The input did not match the regular expression ' : 'The input was expected to not match the regular expression ') + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message: message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\nassert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, 'match');\n};\nassert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, 'doesNotMatch');\n};\n\n// Expose a strict only variant of assert\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bound');\nvar $Object = require('es-object-atoms');\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? $Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = $Object(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = $Object(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && ($Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","import { compareVersions } from './compareVersions.js';\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=compare.js.map","import { compare } from './compare.js';\nimport { compareSegments, validateAndParse } from './utils.js';\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n // clean input\n range = range.replace(/([><=]+)\\s+/g, '$1');\n // handle multiple comparators\n if (range.includes('||')) {\n return range.split('||').some((r) => satisfies(version, r));\n }\n else if (range.includes(' - ')) {\n const [a, b] = range.split(' - ', 2);\n return satisfies(version, `>=${a} <=${b}`);\n }\n else if (range.includes(' ')) {\n return range\n .trim()\n .replace(/\\s{2,}/g, ' ')\n .split(' ')\n .every((r) => satisfies(version, r));\n }\n // if no range operator then \"=\"\n const m = range.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~')\n return compare(version, range, op);\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3, , vp] = validateAndParse(version);\n const [r1, r2, r3, , rp] = validateAndParse(range);\n const v = [v1, v2, v3];\n const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n // validate pre-release\n if (rp) {\n if (!vp)\n return false;\n if (compareSegments(v, r) !== 0)\n return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n return false;\n }\n // first non-zero number\n const nonZero = r.findIndex((v) => v !== '0') + 1;\n // pointer to where segments can be >=\n const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n // before pointer must be equal\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n return false;\n // after pointer must be >=\n if (compareSegments(v.slice(i), r.slice(i)) === -1)\n return false;\n return true;\n};\n//# sourceMappingURL=satisfies.js.map","import { semver } from './utils.js';\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Validate [semver](https://semver.org/) version strings strictly. Will not accept wildcards and version ranges.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number `false` otherwise\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validateStrict = (version) => typeof version === 'string' &&\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/.test(version);\n//# sourceMappingURL=validate.js.map","// const { STAC } = require('stac-js');\n\nclass BaseValidator {\n\n\t/**\n\t * \n\t */\n\tconstructor() {\n\t}\n\n\tasync createAjv(ajv) {\n\t\treturn ajv;\n\t}\n\n\t/**\n\t * Any preprocessing work you want to do on the data.\n\t * \n\t * @param {Object} data\n\t * @param {import('.').Report} report\n\t * @param {import('.').Config} config\n\t * @returns {Object}\n\t */\n\tasync afterLoading(data, report, config) {\n\t\treturn data;\n\t}\n\n\t/**\n\t * Any custom validation routines you want to run.\n\t * \n\t * You can either create a list of errors using the test interface\n\t * or just throw on the first error.\n\t * \n\t * @param {STAC} data\n\t * @param {Test} test\n\t * @param {import('.').Report} report\n\t * @param {import('.').Config} config\n\t * @throws {Error}\n\t */\n\tasync afterValidation(data, test, report, config) {\n\n\t}\n\n}\n\nmodule.exports = BaseValidator;\n","const versions = require('compare-versions');\n\nconst { createAjv, isUrl, loadSchemaFromUri, normalizePath, isObject } = require('./utils');\nconst defaultLoader = require('./loader/default');\nconst BaseValidator = require('./baseValidator');\nconst Test = require('./test');\n\n/**\n * @typedef Config\n * @type {Object}\n * @property {function|null} [loader=null] A function that loads the JSON from the given files.\n * @property {string|null} [schemas=null] Validate against schemas in a local or remote STAC folder.\n * @property {Object.} [schemaMap={}] Validate against a specific local schema (e.g. an external extension). Provide the schema URI as key and the local path as value.\n * @property {boolean} [strict=false] Enable strict mode in validation for schemas and numbers (as defined by ajv for options `strictSchema`, `strictNumbers` and `strictTuples\n * @property {BaseValidator} [customValidator=null] A validator with custom rules.\n */\n\n/**\n * @typedef Report\n * @type {Object}\n * @property {string} id\n * @property {string} type\n * @property {string} version\n * @property {boolean} valid\n * @property {Array.} messages\n * @property {Array.} children\n * @property {Results} results\n * @property {boolean} apiList\n */\n\n/**\n * @typedef Results\n * @type {Object}\n * @property {OArray.} core\n * @property {Object.>} extensions\n * @property {Array.} custom\n */\n\n/**\n * @returns {Report}\n */\nfunction createReport() {\n\tlet result = {\n\t\tid: null,\n\t\ttype: null,\n\t\tversion: null,\n\t\tvalid: null,\n\t\tskipped: false,\n\t\tmessages: [],\n\t\tchildren: [],\n\t\tresults: {\n\t\t\tcore: [],\n\t\t\textensions: {},\n\t\t\tcustom: []\n\t\t},\n\t\tapiList: false\n\t};\n\treturn result;\n}\n\n/**\n * @param {Array.|Array.|Object|string} data The data to validate\n * @param {Config} config The configuration object\n * @returns {Report|null}\n */\nasync function validate(data, config) {\n\tconst defaultConfig = {\n\t\tloader: defaultLoader,\n\t\tschemas: null,\n\t\tschemaMap: {},\n\t\tstrict: false\n\t};\n\tconfig = Object.assign({}, defaultConfig, config);\n\tconfig.ajv = createAjv(config);\n\tif (config.customValidator) {\n\t\tconfig.ajv = await config.customValidator.createAjv(config.ajv);\n\t}\n\n\tlet report = createReport();\n\tif (typeof data === 'string') {\n\t\treport.id = normalizePath(data);\n\t\tdata = await config.loader(data);\n\t}\n\n\tif (isObject(data)) {\n\t\treport.id = report.id || data.id;\n\t\treport.version = data.stac_version;\n\t\treport.type = data.type;\n\n\t\tif (Array.isArray(data.collections)) {\n\t\t\tdata = data.collections;\n\t\t\treport.apiList = true;\n\t\t\tif (config.verbose) {\n\t\t\t\treport.messages.push(`The file is a CollectionCollection. Validating all ${entries.length} collections, but ignoring the other parts of the response.`);\n\t\t\t}\n\t\t}\n\t\telse if (Array.isArray(data.features)) {\n\t\t\tdata = data.features;\n\t\t\treport.apiList = true;\n\t\t\tif (config.verbose) {\n\t\t\t\treport.messages.push(`The file is a ItemCollection. Validating all ${entries.length} items, but ignoring the other parts of the response.`);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn validateOne(data, config, report);\n\t\t}\n\t}\n\n\tif (Array.isArray(data) && data.length > 0) {\n\t\tfor(const obj of data) {\n\t\t\tconst subreport = await validateOne(obj, config);\n\t\t\treport.children.push(subreport);\n\t\t}\n\t\treturn summarizeResults(report);\n\t}\n\telse {\n\t\treturn null;\n\t}\n}\n\n\n/**\n * @param {Object|string} source The data to validate\n * @param {Config} config The configuration object\n * @param {Report} report Parent report\n * @returns {Report}\n */\nasync function validateOne(source, config, report = null) {\n\tif (!report) {\n\t\treport = createReport();\n\t}\n\n\tlet data = source;\n\tif (!report.id) {\n\t\tif (typeof data === 'string') {\n\t\t\treport.id = normalizePath(data);\n\t\t\ttry {\n\t\t\t\tdata = await config.loader(data);\n\t\t\t} catch (error) {\n\t\t\t\treport.valid = false;\n\t\t\t\treport.results.core.push({\n\t\t\t\t\tinstancePath: \"\",\n\t\t\t\t\tmessage: error.message\n\t\t\t\t});\n\t\t\t\treturn report;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treport.id = data.id;\n\t\t}\n\t}\n\treport.version = data.stac_version;\n\treport.type = data.type;\n\n\tif (config.customValidator) {\n\t\tdata = await config.customValidator.afterLoading(data, report, config);\n\t}\n\n\tif (typeof config.lintFn === 'function') {\n\t\treport = await config.lintFn(source, report, config);\n\t}\n\n\t// Check stac_version\n\tif (typeof data.stac_version !== 'string') {\n\t\treport.skipped = true;\n\t\treport.messages.push('No STAC version found');\n\t\treturn report;\n\t}\n\telse if (versions.compare(data.stac_version, '1.0.0-rc.1', '<')) {\n\t\treport.skipped = true;\n\t\treport.messages.push('Can only validate STAC version >= 1.0.0-rc.1');\n\t\treturn report;\n\t}\n\n\t// Check type field\n\tswitch(data.type) {\n\t\tcase 'FeatureCollection':\n\t\t\treport.skipped = true;\n\t\t\treport.messages.push('STAC ItemCollections not supported yet');\n\t\t\treturn report;\n\t\tcase 'Catalog':\n\t\tcase 'Collection':\n\t\tcase 'Feature':\n\t\t\t// pass\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treport.valid = false;\n\t\t\treport.results.core.push({\n\t\t\t\tinstancePath: \"/type\",\n\t\t\t\tmessage: \"Can't detect type of the STAC object. Is the 'type' field missing or invalid?\"\n\t\t\t});\n\t\t\treturn report;\n\t}\n\t\t\n\t// Validate against the core schemas\n\tawait validateSchema('core', data.type, data, report, config);\n\n\t// Get all extension schemas to validate against\n\tlet schemas = [];\n\tif (Array.isArray(data.stac_extensions)) {\n\t\tschemas = schemas.concat(data.stac_extensions);\n\t\t// Convert shortcuts supported in 1.0.0 RC1 into schema URLs\n\t\tif (versions.compare(data.stac_version, '1.0.0-rc.1', '=')) {\n\t\t\tschemas = schemas.map(ext => ext.replace(/^(eo|projection|scientific|view)$/, 'https://schemas.stacspec.org/v1.0.0-rc.1/extensions/$1/json-schema/schema.json'));\n\t\t}\n\t}\n\tfor(const schema of schemas) {\n\t\tawait validateSchema('extensions', schema, data, report, config);\n\t}\n\n\tif (config.customValidator) {\n\t\tconst { default: create } = await import('stac-js');\n\t\tconst stac = create(data, false, false);\n\t\ttry {\n\t\t\tconst test = new Test();\n\t\t\tawait config.customValidator.afterValidation(stac, test, report, config);\n\t\t\treport.results.custom = test.errors;\n\t\t} catch (error) {\n\t\t\treport.results.custom = [\n\t\t\t\terror\n\t\t\t];\n\t\t} finally {\n\t\t\tif (report.results.custom.length > 0) {\n\t\t\t\treport.valid = false;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn report;\n}\n\nasync function validateSchema(key, schema, data, report, config) {\n\t// Get schema identifier/uri\n\tlet schemaId;\n\tswitch(schema) {\n\t\tcase 'Feature':\n\t\t\tschema = 'Item';\n\t\tcase 'Catalog':\n\t\tcase 'Collection':\n\t\t\tlet type = schema.toLowerCase();\n\t\t\tschemaId = `https://schemas.stacspec.org/v${report.version}/${type}-spec/json-schema/${type}.json`;\n\t\t\tbreak;\n\t\tdefault: // extension\n\t\t\tif (isUrl(schema)) {\n\t\t\t\tschemaId = schema;\n\t\t\t}\n\t}\n\n\t// Validate\n\tconst setValidity = (errors = []) => {\n\t\tif (report.valid !== false) {\n\t\t\treport.valid = errors.length === 0;\n\t\t}\n\t\tif (key === 'core') {\n\t\t\treport.results.core = errors;\n\t\t}\n\t\telse {\n\t\t\treport.results.extensions[schema] = errors;\n\t\t}\n\t};\n\ttry {\n\t\tif (key !== 'core' && !schemaId) {\n\t\t\tthrow new Error(\"'stac_extensions' must contain a valid schema URL, not a shortcut.\");\n\t\t}\n\t\tconst validate = await loadSchema(config, schemaId);\n\t\tconst valid = validate(data);\n\t\tif (valid) {\n\t\t\tsetValidity();\n\t\t}\n\t\telse {\n\t\t\tsetValidity(validate.errors);\n\t\t}\n\t} catch (error) {\n\t\tsetValidity([{\n\t\t\tmessage: error.message\n\t\t}]);\n\t}\n}\n\nfunction summarizeResults(report) {\n\tif (report.children.length > 0) {\n\t\treport.valid = Boolean(report.children.every(result => result.valid));\n\t}\n\treturn report;\n}\n\nasync function loadSchema(config, schemaId) {\n\tlet schema = config.ajv.getSchema(schemaId);\n\tif (schema) {\n\t\treturn schema;\n\t}\n\n\ttry {\n\t\tjson = await loadSchemaFromUri(schemaId, config);\n\t} catch (error) {\n\t\tthrow new Error(`Schema at '${schemaId}' not found. Please ensure all entries in 'stac_extensions' are valid.`);\n\t}\n\tif (!json.$id) {\n\t\tjson.$id = schemaId;\n\t}\n\n\tschema = config.ajv.getSchema(json.$id);\n\tif (schema) {\n\t\treturn schema;\n\t}\n\n\treturn await config.ajv.compileAsync(json);\n}\n\nmodule.exports = validate;\n","const { parse } = require('uri-js');\n\n// We don't allow empty URIs, same-document and mailto here\nconst IRI = {\n\t'iri': value => {\n\t\tif (typeof value !== 'string' || value.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst iri = parse(value);\n\t\tif ((iri.reference === 'absolute' || iri.reference === 'uri') && iri.scheme && (iri.host || iri.path)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\t'iri-reference': value => {\n\t\tif (typeof value !== 'string' || value.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst iri = parse(value);\n\t\tif ((iri.reference === 'absolute' || iri.reference === 'uri') && iri.scheme && (iri.host || iri.path)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (iri.path && (iri.reference === 'relative' || iri.reference === 'uri'));\n\t}\n};\n\nmodule.exports = IRI;\n","const axios = require('axios');\n\nasync function loader(uri) {\n\tlet response = await axios.get(uri);\n\treturn response.data;\n}\n\nmodule.exports = loader;\n","const assert = require('assert');\n\nclass Test {\n\n\tconstructor() {\n\t\tthis.errors = [];\n\t}\n\n\ttruthy(...args) {\n\t\ttry {\n\t\t\tassert(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdeepEqual(...args) {\n\t\ttry {\n\t\t\tassert.deepEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdeepStrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.deepStrictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdoesNotMatch(...args) {\n\t\ttry {\n\t\t\tassert.doesNotMatch(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tasync doesNotReject(...args) {\n\t\ttry {\n\t\t\tawait assert.doesNotReject(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tdoesNotThrow(...args) {\n\t\ttry {\n\t\t\tassert.doesNotThrow(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tequal(...args) {\n\t\ttry {\n\t\t\tassert.equal(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tfail(...args) {\n\t\ttry {\n\t\t\tassert.fail(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tifError(...args) {\n\t\ttry {\n\t\t\tassert.ifError(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tmatch(...args) {\n\t\ttry {\n\t\t\tassert.match(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotDeepEqual(...args) {\n\t\ttry {\n\t\t\tassert.notDeepEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotDeepStrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.notDeepStrictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotEqual(...args) {\n\t\ttry {\n\t\t\tassert.notEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tnotStrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.notStrictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tok(...args) {\n\t\ttry {\n\t\t\tassert.ok(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tasync rejects(...args) {\n\t\ttry {\n\t\t\tawait assert.rejects(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tstrictEqual(...args) {\n\t\ttry {\n\t\t\tassert.strictEqual(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n\tthrows(...args) {\n\t\ttry {\n\t\t\tassert.throws(...args);\n\t\t} catch (error) {\n\t\t\tthis.errors.push(error);\n\t\t}\n\t}\n\n}\n\nmodule.exports = Test;\n","const Ajv = require('ajv');\nconst addFormats = require('ajv-formats');\nconst iriFormats = require('./iri');\n\nconst SUPPORTED_PROTOCOLS = ['http', 'https'];\n\nfunction isObject(obj) {\n\treturn (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n}\n\nfunction isUrl(uri) {\n\tif (typeof uri === 'string') {\n\t\tlet part = uri.match(/^(\\w+):\\/\\//i);\n\t\tif (part) {\n\t\t\tif (!SUPPORTED_PROTOCOLS.includes(part[1].toLowerCase())) {\n\t\t\t\tthrow new Error(`Given protocol \"${part[1]}\" is not supported.`);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction createAjv(config) {\n\tlet instance = new Ajv({\n\t\tformats: iriFormats,\n\t\tallErrors: config.verbose,\n\t\tstrict: false,\n\t\tlogger: config.verbose ? console : false,\n\t\tloadSchema: async (uri) => await loadSchemaFromUri(uri, config)\n\t});\n\taddFormats(instance);\n\tif (config.strict) {\n\t\tinstance.opts.strictSchema = true;\n\t\tinstance.opts.strictNumbers = true;\n\t\tinstance.opts.strictTuples = true;\n\t}\n\treturn instance;\n}\n\nasync function loadSchemaFromUri(uri, config) {\n\tif (isObject(config.schemaMap) && config.schemaMap[uri]) {\n\t\turi = config.schemaMap[uri];\n\t}\n\telse if (config.schemas) {\n\t\turi = uri.replace(/^https:\\/\\/schemas\\.stacspec\\.org\\/v[^\\/]+/, config.schemas);\n\t}\n\treturn await config.loader(uri);\n}\n\nfunction normalizePath(path) {\n\treturn path.replace(/\\\\/g, '/').replace(/\\/$/, \"\");\n}\n\nfunction getSummary(result, config) {\n\tlet summary = {\n\t\ttotal: 0,\n\t\tvalid: 0,\n\t\tinvalid: 0,\n\t\tmalformed: null,\n\t\tskipped: 0\n\t};\n\tif (result.children.length > 0) {\n\t\t// todo: speed this up by computing in one iteration\n\t\tsummary.total = result.children.length;\n\t\tsummary.valid = result.children.filter(c => c.valid === true).length;\n\t\tsummary.invalid = result.children.filter(c => c.valid === false).length;\n\t\tif (config.lint || config.format) {\n\t\t\tsummary.malformed = result.children.filter(c => c.lint && !c.lint.valid).length;\n\t\t}\n\t\tsummary.skipped = result.children.filter(c => c.skipped).length;\n\t}\n\telse {\n\t\tsummary.total = 1;\n\t\tsummary.valid = result.valid === true ? 1 : 0;\n\t\tsummary.invalid = result.valid === false ? 1 : 0;\n\t\tif (result.lint) {\n\t\t\tsummary.malformed = result.lint.valid ? 0 : 1;\n\t\t}\n\t\tsummary.skipped = result.skipped ? 1 : 0;\n\t}\n\treturn summary;\n}\n\nfunction makeAjvErrorMessage(error) {\n\tlet message = error.message;\n\tif (isObject(error.params) && Object.keys(error.params).length > 0) {\n\t\tlet params = Object.entries(error.params)\n\t\t\t.map(([key, value]) => {\n\t\t\t\tlet label = key.replace(/([^A-Z]+)([A-Z])/g, \"$1 $2\").toLowerCase();\n\t\t\t\treturn `${label}: ${value}`;\n\t\t\t})\n\t\t\t.join(', ')\n\t\tmessage += ` (${params})`;\n\t}\n\tif (error.instancePath) {\n\t\treturn `${error.instancePath} ${message}`;\n\t}\n\telse if (error.schemaPath) {\n\t\treturn `${message}, for schema ${error.schemaPath}`;\n\t}\n\telse if (message) {\n\t\treturn message;\n\t}\n\telse {\n\t\treturn String(error);\n\t}\n}\n\nmodule.exports = {\n\tcreateAjv,\n\tgetSummary,\n\tisObject,\n\tisUrl,\n\tloadSchemaFromUri,\n\tmakeAjvErrorMessage,\n\tnormalizePath\n};\n","/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1; x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join('');\n } else {\n return sets[0];\n }\n}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n}\nfunction assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n}\n\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\n PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n //expanded\n GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n //subset, excludes bidi control characters\n IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n //subset\n UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n //relaxed parsing rules\n IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n // 6( h16 \":\" ) ls32\n IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n // \"::\" 5( h16 \":\" ) ls32\n IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n //[ *5( h16 \":\" ) h16 ] \"::\" h16\n IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n //[ *6( h16 \":\" ) h16 ] \"::\"\n IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),\n //RFC 6874\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n };\n}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/** Highest positive signed 32-bit float value */\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn String.fromCodePoint.apply(String, toConsumableArray(array));\n};\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn String.fromCodePoint.apply(String, output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\nvar SCHEMES = {};\nfunction pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = void 0;\n if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n}\nfunction pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n}\nfunction _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n}\n\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n var _matches = slicedToArray(matches, 2),\n address = _matches[1];\n\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n}\nfunction _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n var _matches2 = slicedToArray(matches, 3),\n address = _matches2[1],\n zone = _matches2[2];\n\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n last = _address$toLowerCase$2[0],\n first = _address$toLowerCase$2[1];\n\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0; x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function (acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index: index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function (a, b) {\n return b.length - a.length;\n })[0];\n var newHost = void 0;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n //store each component\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n //fix port number\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n //IE FIX for improper RegExp matching\n //store each component\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n //fix port number\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n //normalize IP hosts\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n //determine reference type\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n //check for reference errors\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n //if host component is a domain name\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n //convert Unicode IDN -> ASCII IDN\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n //convert IRI -> URI\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n //normalize encodings\n _normalizeComponentEncoding(components, protocol);\n }\n //perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n}\n\nfunction _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n //normalize IP hosts, add brackets and escape zone separator for IPv6\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n}\n\nfunction serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n if (components.host) {\n //if host component is an IPv6 address\n if (protocol.IPV6ADDRESS.test(components.host)) {}\n //TODO: normalize IPv6 address as per RFC 5952\n\n //if host component is a domain name\n else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n //convert IDN via punycode\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n //normalize encoding\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\"); //merge tokens into a string\n}\n\nfunction resolveComponents(base, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n\n var target = {};\n if (!skipNormalization) {\n base = parse(serialize(base, options), options); //normalize base components\n relative = parse(serialize(relative, options), options); //normalize relative components\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = \"/\" + relative.path;\n } else if (!base.path) {\n target.path = relative.path;\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n //target.authority = base.authority;\n target.userinfo = base.userinfo;\n target.host = base.host;\n target.port = base.port;\n }\n target.scheme = base.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n}\n\nfunction resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: 'null' }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n}\n\nfunction normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n}\n\nfunction equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n}\n\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n //report missing host\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n components.port = undefined;\n }\n //normalize the empty path\n if (!components.path) {\n components.path = \"/\";\n }\n //NOTE: We do not parse query strings for HTTP URIs\n //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n //and not the HTTP spec.\n return components;\n }\n};\n\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length; x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders) mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n //convert Unicode IDN -> ASCII IDN\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length; x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n //convert IDN via punycode\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n};\n\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n};\n\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n //normalize UUID\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n};\n\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=uri.all.js.map\n","// Axios v1.7.9 Copyright (c) 2024 Matt Zabriskie and contributors\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils$1.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n navigator: _navigator,\n origin: origin\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data) ||\n utils$1.isReadableStream(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils$1.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders$1.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils$1.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils$1.asap(unsubscribe);\n\n return signal;\n }\n};\n\nvar composeSignals$1 = composeSignals;\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils$1.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils$1.isBlob(body)) {\n return body.size;\n }\n\n if(utils$1.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils$1.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils$1.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils$1.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n};\n\nvar fetchAdapter = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils$1.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders$1.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst VERSION = \"1.7.9\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators$1.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","'use strict'\n\nconst { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require('./lib/utils')\nconst SCHEMES = require('./lib/schemes')\n\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = serialize(parse(uri, options), options)\n } else if (typeof uri === 'object') {\n uri = parse(serialize(uri, options), options)\n }\n return uri\n}\n\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = Object.assign({ scheme: 'null' }, options)\n const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n return serialize(resolved, { ...schemelessOptions, skipEscape: true })\n}\n\nfunction resolveComponents (base, relative, options, skipNormalization) {\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base components\n relative = parse(serialize(relative, options), options) // normalize relative components\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path.charAt(0) === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\nfunction serialize (cmpts, opts) {\n const components = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || components.scheme || '').toLowerCase()]\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options)\n\n if (components.path !== undefined) {\n if (!options.skipEscape) {\n components.path = escape(components.path)\n\n if (components.scheme !== undefined) {\n components.path = components.path.split('%3A').join(':')\n }\n } else {\n components.path = unescape(components.path)\n }\n }\n\n if (options.reference !== 'suffix' && components.scheme) {\n uriTokens.push(components.scheme, ':')\n }\n\n const authority = recomposeAuthority(components)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (components.path && components.path.charAt(0) !== '/') {\n uriTokens.push('/')\n }\n }\n if (components.path !== undefined) {\n let s = components.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (authority === undefined) {\n s = s.replace(/^\\/\\//u, '/%2F') // don't allow the path to start with \"//\"\n }\n\n uriTokens.push(s)\n }\n\n if (components.query !== undefined) {\n uriTokens.push('?', components.query)\n }\n\n if (components.fragment !== undefined) {\n uriTokens.push('#', components.fragment)\n }\n return uriTokens.join('')\n}\n\nconst hexLookUp = Array.from({ length: 127 }, (_v, k) => /[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)))\n\nfunction nonSimpleDomain (value) {\n let code = 0\n for (let i = 0, len = value.length; i < len; ++i) {\n code = value.charCodeAt(i)\n if (code > 126 || hexLookUp[code]) {\n return true\n }\n }\n return false\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n const gotEncoding = uri.indexOf('%') !== -1\n let isIP = false\n if (options.reference === 'suffix') uri = (options.scheme ? options.scheme + ':' : '') + '//' + uri\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = normalizeIPv4(parsed.host)\n if (ipv4result.isIPV4 === false) {\n const ipv6result = normalizeIPv6(ipv4result.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n parsed.host = ipv4result.host\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && !parsed.path && parsed.query === undefined) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || '').toLowerCase()]\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (gotEncoding && parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (gotEncoding && parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n if (parsed.path && parsed.path.length) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment && parsed.fragment.length) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponents,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nconst IPV4_REG = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(IPV4_REG) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n"],"names":["fmtDef","validate","compare","isLeapYear","year","Object","defineProperty","exports","value","formatNames","fastFormats","fullFormats","date","compareDate","time","compareTime","date_time","compareDateTime","duration","uri","url","email","hostname","ipv4","ipv6","regex","uuid","byte","int32","type","validateInt32","int64","validateInt64","float","validateNumber","double","password","binary","keys","DATE","DAYS","str","matches","exec","month","day","d1","d2","TIME","withTimeZone","hour","minute","second","timeZone","t1","t2","a1","a2","DATE_TIME_SEPARATOR","dateTime","split","length","dt1","dt2","res","undefined","NOT_URI_FRAGMENT","URI","test","BYTE","lastIndex","MIN_INT32","MAX_INT32","Number","isInteger","Z_ANCHOR","RegExp","e","formats_1","limit_1","codegen_1","fullName","Name","fastName","formatsPlugin","ajv","opts","keywords","Array","isArray","addFormats","formats","exportName","mode","list","default","fs","_a","_b","code","_","f","addFormat","get","name","Error","module","formatLimitDefinition","ajv_1","ops","operators","KWDs","formatMaximum","okStr","ok","LTE","fail","GT","formatMinimum","GTE","LT","formatExclusiveMaximum","formatExclusiveMinimum","error","message","keyword","schemaCode","params","schemaType","$data","cxt","gen","data","it","self","validateFormats","fCxt","KeywordCxt","RULES","all","format","definition","validate$DataFormat","fmts","scopeValue","ref","fmt","const","fail$data","or","compareCode","validateFormat","schema","key","getProperty","dependencies","formatLimitPlugin","addKeyword","MissingRefError","ValidationError","CodeGen","nil","stringify","Ajv","core_1","draft7_1","discriminator_1","draft7MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","_addVocabularies","super","forEach","v","this","addVocabulary","discriminator","_addDefaultMetaSchema","meta","metaSchema","$dataMetaSchema","addMetaSchema","refs","defaultMeta","getSchema","validate_1","enumerable","validation_error_1","ref_error_1","regexpCode","getEsmExportName","safeStringify","strConcat","addCodeArg","_Code","IDENTIFIER","_CodeOrName","constructor","s","toString","emptyStr","names","_items","item","_str","reduce","c","_names","strs","args","i","push","plus","expr","optimize","arg","interpolate","mergeExprItems","splice","a","b","slice","c1","c2","x","join","JSON","replace","rx","and","not","varKinds","ValueScopeName","ValueScope","Scope","code_1","scope_1","code_2","scope_2","EQ","NEQ","NOT","OR","AND","ADD","Node","optimizeNodes","optimizeNames","_constants","Def","varKind","rhs","render","es5","_n","var","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Label","label","Break","Throw","AnyCode","ParentNode","nodes","n","subtractNames","addNames","BlockNode","Root","Else","kind","If","condition","else","cond","ns","For","ForLoop","iteration","ForRange","from","to","ForIter","loop","iterable","Func","async","_async","Return","Try","catch","finally","Catch","Finally","extScope","_values","_blockStarts","lines","_extScope","_scope","parent","_nodes","_root","prefix","scopeName","prefixOrName","vs","Set","add","getScopeValue","keyOrRef","getValue","scopeRefs","scopeCode","_def","nameOrPrefix","constant","toName","_leafNode","_constant","let","assign","object","keyValues","thenBody","elseBody","_blockNode","endIf","elseIf","_elseNode","_endBlockNode","_for","node","forBody","endFor","forRange","forOf","arr","forIn","obj","ownProperties","tryBody","catchCode","finallyCode","_currNode","block","body","nodeCount","endBlock","len","pop","toClose","func","funcBody","endFunc","N1","N2","replaceName","canOptimize","items","some","par","andCode","mappend","orCode","y","UsedValueState","ValueError","prefixes","_prefixes","_parent","_newName","ng","_nameGroup","index","has","nameStr","setValue","property","itemIndex","scopePath","line","scope","valueKey","_name","Map","set","values","_reduceValues","usedValues","getCode","valueCode","nameSet","Started","def","Completed","extendErrors","resetErrorsCount","reportExtraError","reportError","keyword$DataError","keywordError","util_1","names_1","errorPaths","overrideAllErrors","compositeRule","allErrors","errObj","errorObjectCode","addError","returnErrors","vErrors","errsCount","errors","if","schemaValue","err","instancePath","errorPath","errSchemaPath","verbose","errs","validateName","schemaEnv","$async","throw","return","E","schemaPath","propertyName","parentSchema","createErrors","errorObject","errorInstancePath","errorSchemaPath","extraErrorProps","instPath","getErrorPath","Type","Str","schPath","topSchemaRef","messages","resolveSchema","getCompilingSchema","resolveRef","compileSchema","SchemaEnv","resolve_1","env","dynamicAnchors","schemaId","root","baseId","normalizeId","localRefs","sch","_sch","call","rootId","getFullPath","uriResolver","_ValidationError","schemaCxt","parentData","parentDataProperty","dataNames","dataPathArr","dataLevel","dataTypes","definedProperties","source","jtd","sourceCode","_compilations","validateFunctionCode","validateCode","process","makeValidate","Function","scopeValues","unevaluated","props","evaluated","dynamicProps","dynamicItems","logger","delete","resolveUrl","schOrFunc","resolve","inlineOrCompile","inlineRef","inlineRefs","schEnv","sameSchemaEnv","s1","s2","schemas","p","parse","refPath","_getFullPath","getJsonPointer","id","schOrRef","schId","PREVENT_SCOPE_CHANGE","parsedRef","fragment","part","partSchema","unescapeFragment","$ref","schemaHasRulesButRef","valCxt","rootData","json","jsonPos","jsonLen","jsonPart","resolver","msg","missingRef","missingSchema","getSchemaRefs","equal","traverse","SIMPLE_INLINED","limit","hasRef","countKeys","REF_KEYWORDS","count","Infinity","eachItem","normalize","serialized","serialize","TRAILING_SLASH_HASH","ANCHOR","baseIds","pathPrefix","schemaRefs","allKeys","jsonPtr","parentJsonPtr","fullPath","innerBaseId","addRef","_resolve","ambiguos","checkAmbiguosRef","addAnchor","anchor","$anchor","$dynamicAnchor","sch1","sch2","getRules","isJSONType","_jsonTypes","jsonTypes","groups","number","rules","string","array","types","integer","boolean","null","post","checkStrictMode","useFunc","setEvaluated","evaluatedPropsToName","mergeEvaluated","unescapeJsonPointer","escapeJsonPointer","escapeFragment","schemaRefOrVal","schemaHasRules","checkUnknownRules","alwaysValidSchema","toHash","hash","strictSchema","decodeURIComponent","encodeURIComponent","xs","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","ps","Math","max","snippets","dataProp","dataPropType","jsPropertySyntax","isNumber","Num","warn","schemaHasRulesForType","group","shouldUseGroup","rule","shouldUseRule","implements","kwd","boolOrEmptySchema","topBoolOrEmptySchema","errors_1","boolError","falseSchemaError","valid","reportTypeError","checkDataTypes","checkDataType","coerceAndCheckDataType","getJSONTypes","getSchemaTypes","DataType","rules_1","applicability_1","hasNull","includes","nullable","ts","every","coerceTo","coerceToTypes","coerceTypes","checkTypes","wrongType","strictNumbers","Wrong","coerceData","COERCIBLE","filter","t","dataType","coerced","coerceSpecificType","assignParentData","strictNums","correct","Correct","numCond","_cond","notObj","typeError","getTypeErrorContext","assignDefaults","ty","properties","assignDefault","prop","defaultValue","childData","useDefaults","getData","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","isSchemaObj","checkKeywords","schemaCxtHasRules","topSchemaObjCode","validateFunction","funcSourceUrl","destructureValCxtES5","destructureValCxt","dynamicRef","$comment","commentKeyword","checkNoDefault","resetEvaluated","typeAndKeywords","returnResults","subschemaCode","subSchemaObjCode","updateContext","checkAsyncSchema","checkRefsAndKeywords","schemaKeywords","checkedTypes","ignoreKeywordsWithRef","rootName","assignEvaluated","typeErrors","groupKeywords","iterateKeywords","checkStrictTypes","keywordCode","strictTypes","checkContextTypes","allowUnionTypes","checkMultipleTypes","checkKeywordTypes","includesType","strictTypesError","narrowSchemaTypes","hasApplicableType","schTs","kwdT","withTypes","validateKeywordUsage","validSchemaType","allowUndefined","trackErrors","result","successAction","failAction","failResult","pass","invalid$data","append","errorParams","setParams","_error","$dataError","reset","block$data","codeBlock","$dataValid","check$data","validateSchema","wrong$DataType","invalid$DataSchema","st","validateSchemaRef","subschema","appl","getSubschema","extendSubschemaData","extendSubschemaMode","nextContext","mergeValidEvaluated","ruleType","funcKeywordCode","macroKeywordCode","compile","JSON_POINTER","RELATIVE_JSON_POINTER","jsonPointer","up","errorMsg","segments","segment","pointerType","macroSchema","macro","schemaRef","useKeyword","checkAsyncKeyword","validateRef","validateKeyword","assignValid","modifying","modifyData","reportErrs","ruleErrs","validateAsync","validateSync","addErrs","try","validateErrs","_await","passCxt","passContext","passSchema","callValidateCode","deps","prototype","hasOwnProperty","errorsText","schemaProp","dpType","nextData","dataContextProps","_nextData","jtdDiscriminator","jtdMetadata","compile_1","codegen_2","$dataRefSchema","uri_1","defaultRegExp","flags","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","errorDataPath","jsonPointers","extendRefs","missingRefs","processCode","strictDefaults","strictKeywords","uniqueItems","unknownFormats","cache","ajvErrors","deprecatedOptions","unicode","MAX_EXPRESSION","requiredOptions","o","_c","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","strict","_optz","regExp","strictTuples","strictRequired","loopRequired","loopEnum","addUsedSchema","unicodeRegExp","int32range","_loading","_cache","getLogger","formatOpt","checkOptions","_metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","_dataRefSchema","$id","schemaKeyRef","_meta","_addSchema","_compileSchemaEnv","compileAsync","loadSchema","runCompileAsync","_schema","loadMetaSchema","$schema","_compileAsync","checkLoaded","loadMissingSchema","_loadSchema","addSchema","_validateSchema","_checkUnique","throwOrLogError","keyRef","getSchEnv","removeSchema","_removeAllSchemas","clear","cacheKey","definitions","kwdOrDef","checkKeyword","addRule","keywordMetaschema","k","getKeyword","removeKeyword","findIndex","separator","dataVar","map","text","keywordsJsonPointers","seg","schemaOrData","startsWith","_compileMetaSchema","currentOpts","checkOpts","options","log","opt","optsSchemas","defs","metaOpts","noLogs","console","KEYWORD_NAME","ruleGroup","find","before","addBeforeRule","_rule","$dataRef","anyOf","ucs2length","pos","charCodeAt","validation","validateAdditionalItems","validateItems","break","additionalProperty","removeAdditional","allSchemaProperties","patProps","patternProperties","checkAdditionalProperties","isAdditional","additionalPropertyCode","definedProp","propsSchema","isOwnProperty","usePattern","deleteAdditional","applyAdditionalSchema","schCxt","validateUnion","min","minContains","maxContains","next","validateItemsWithCount","schValid","checkLimits","_valid","validateSchemaDeps","validatePropertyDeps","depsCount","property_ies","missingProperty","propDeps","schDeps","splitDependencies","propertyDeps","schemaDeps","missing","hasProperty","propertyInData","depProp","checkReportMissingProp","checkMissingProp","reportMissingProp","ifClause","then","hasThen","hasSchema","hasElse","validateIf","validateClause","additionalItems_1","prefixItems_1","items_1","items2020_1","contains_1","dependencies_1","propertyNames_1","additionalProperties_1","properties_1","patternProperties_1","not_1","anyOf_1","oneOf_1","allOf_1","if_1","thenElse_1","getApplicator","draft2020","applicator","validateTuple","validateArray","extraItems","schArr","checkStrictTuple","l","fullTuple","minItems","maxItems","prefixItems","passing","validateOneOf","util_2","patterns","alwaysValidPatterns","checkProperties","allowMatchingProperties","validatePatternProperties","pat","checkMatchingProperties","validateProperties","alwaysValid","additionalProperties","allProps","hasDefault","applyPropertySchema","schemaProperties","noPropertyInData","hasPropFunc","schemaMap","context","dataAndSchema","newRegExp","pattern","u","validArr","notValid","merged","id_1","ref_1","core","callRef","getValidate","callRootRef","schOrEnv","callValidate","inlineRefSchema","schName","callAsyncRef","addEvaluatedFrom","addErrorsFrom","callSyncRef","schEvaluated","types_1","discrError","tagName","DiscrError","Tag","tag","oneOf","mapping","validateMapping","getMapping","tagValue","applyTagSchema","Mapping","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","required","addMapping","enum","validation_1","applicator_1","format_1","metadata_1","draft7Vocabularies","metadataVocabulary","contentVocabulary","fDef","fType","unknownFmt","invalidFmt","callFormat","validData","formatDef","unknownFormat","fmtType","fmtRef","getFormat","unknownMsg","validCondition","equal_1","useLoop","eql","getEql","vSchema","equalCode","limitNumber_1","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","comp","ucs2length_1","maximum","minimum","exclusiveMaximum","exclusiveMinimum","prec","multipleOfPrecision","invalid","allErrorsMode","exitOnErrorMode","requiredKey","loopAllRequired","loopUntilMissing","j","itemTypes","validateUniqueItems","loopN","loopN2","indices","for","outer","_typeof","Symbol","iterator","_defineProperties","target","descriptor","configurable","writable","_toPropertyKey","_createClass","Constructor","protoProps","staticProps","_toPrimitive","String","input","hint","prim","toPrimitive","TypeError","_classCallCheck","instance","isDeepEqual","isDeepStrictEqual","_require","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","_require2","inspect","_require$types","isPromise","isRegExp","objectAssign","objectIs","RegExpPrototypeTest","lazyLoadComparison","comparison","warned","assert","NO_EXCEPTION_SENTINEL","innerFail","actual","expected","operator","stackStartFn","internalMessage","argsLen","arguments","emitWarning","bind","errArgs","generatedMessage","innerOk","fn","argLen","_len","_key","apply","concat","notDeepStrictEqual","notEqual","deepEqual","notDeepEqual","deepStrictEqual","strictEqual","notStrictEqual","Comparison","_this","compareExceptionKey","expectedException","isPrototypeOf","getActual","checkIsPromise","waitForActual","promiseFn","Promise","resultPromise","expectsError","details","fnType","expectsNoError","internalMatch","regexp","fnName","match","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","shift","tmp1","indexOf","doesNotMatch","ownKeys","r","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_isNativeFunction","Wrapper","_construct","Parent","sham","Proxy","Boolean","valueOf","setPrototypeOf","__proto__","getPrototypeOf","endsWith","search","this_len","substring","repeat","floor","maxCount","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","kMaxShortLength","copyError","inspectValue","val","compact","customInspect","depth","maxArrayLength","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","other","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","maxLength","stderr","isTTY","columns","maxLines","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","_inspect$custom","_super","stackTraceLimit","getColorDepth","base","_res","knownOperators","captureStackTrace","recurseTimes","ctx","custom","util","createErrorType","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","thing","substr","start","determiner","reason","inspected","RangeError","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","done","regexFlagsSupported","arrayFromSet","arrayFromMap","is","objectGetOwnPropertySymbols","numberIsNaN","isNaN","uncurryThis","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","pow","getOwnNonIndexProperties","ONLY_ENUMERABLE","kStrict","kLoose","kNoIterator","kIsArray","kIsSet","kIsMap","areSimilarRegExps","areSimilarFloatArrays","byteLength","offset","areSimilarTypedArrays","Uint8Array","buffer","byteOffset","areEqualArrayBuffers","buf1","buf2","isEqualBoxedPrimitive","val1","val2","BigInt","innerDeepEqual","memos","val1Tag","val2Tag","keys1","keys2","keyCheck","Date","getTime","_keys","_keys2","size","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","objEquiv","setHasEqualElement","memo","setValues","findLooseMatchingPrimitives","setMightHaveLoosePrim","altValue","mapMightHaveLoosePrim","curB","setEquiv","aValues","bValues","_i","_val","mapHasEqualEntry","key1","item1","key2","mapEquiv","aEntries","_aEntries$i","item2","bEntries","_i2","_bEntries$_i","keysA","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","hasSymbols","toStr","defineDataProperty","isFunction","supportsDescriptors","predicate","predicates","define","implementation","getPolyfill","shim","polyfill","NaN","cb","pre","_traverse","rootSchema","parentKeyword","keyIndex","arrayKeywords","propsKeywords","escapeJsonPtr","skipKeywords","additionalItems","contains","propertyNames","allOf","$defs","multipleOf","minLength","maxProperties","minProperties","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","equalsConstructorPrototypeIfNotBuggy","isObject","isArguments","isString","theKeys","skipProto","skipConstructor","origKeys","originalKeys","keysWorksWithArguments","callee","objectKeys","callBound","$Object","$push","$propIsEnumerable","originalGetSymbols","source1","getSymbols","syms","nextKey","propValue","lacksProperEnumerationOrder","letters","assignHasPendingExceptions","preventExtensions","thrower","semver","validateAndParse","version","isWildcard","tryParse","parseInt","forceType","compareStrings","ap","bp","compareSegments","compareVersions","v1","v2","n1","n2","p1","p2","assertValidOperator","operatorResMap","allowedOperators","satisfies","range","trim","m","v3","vp","r1","r2","r3","rp","nonZero","validateStrict","BaseValidator","createAjv","afterLoading","report","config","afterValidation","versions","isUrl","loadSchemaFromUri","normalizePath","defaultLoader","Test","createReport","children","results","extensions","apiList","defaultConfig","loader","customValidator","stac_version","collections","entries","features","validateOne","subreport","summarizeResults","lintFn","stac_extensions","ext","stac","toLowerCase","setValidity","IRI","iri","reference","scheme","host","path","axios","response","truthy","iriFormats","SUPPORTED_PROTOCOLS","getSummary","summary","total","malformed","lint","makeAjvErrorMessage","global","factory","merge","sets","xl","subexp","typeOf","toUpperCase","toArray","setInterval","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","sliceIterator","_arr","toConsumableArray","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","fromCharCode","error$1","mapDomain","parts","labels","encoded","ucs2decode","output","counter","extra","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","bias","basic","lastIndexOf","oldi","w","baseMinusT","out","encode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_currentValue2","basicLength","handledCPCount","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","q","qMinusT","toUnicode","toASCII","punycode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","userinfo","query","_stripLeadingZeros","_normalizeIPv4","_matches","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","acc","field","lastLongest","longestZeroFields","sort","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","port","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","baseURI","relativeURI","schemelessOptions","uriA","uriB","escapeComponent","unescapeComponent","handler","secure","handler$1","isSecure","wsComponents","handler$2","resourceName","_wsComponents$resourc","_wsComponents$resourc2","handler$3","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_xl","subject","_x2","_xl2","addr","toAddr","atIdx","localPart","domain","URN_PARSE","handler$5","urnComponents","nid","nss","urnScheme","uriComponents","UUID","handler$6","uuidComponents","thisArg","kindOf","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","ArrayBuffer","isView","isBoolean","isPlainObject","toStringTag","isFile","isBlob","isFileList","isStream","pipe","isFormData","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","getOwnPropertyNames","findKey","_global","globalThis","g","isContextDefined","caseless","assignValue","targetKey","extend","stripBOM","content","inherits","superConstructor","descriptors","toFlatObject","sourceObj","destObj","propFilter","searchString","isTypedArray","TypedArray","forEachEntry","generator","pair","matchAll","isHTMLForm","toCamelCase","reduceDescriptors","reducer","reducedDescriptors","ret","freezeMethods","toObjectSet","arrayOrString","noop","toFiniteNumber","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","alphabet","random","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","callbacks","addEventListener","postMessage","setTimeout","asap","queueMicrotask","nextTick","utils$1","hasOwnProp","AxiosError","request","status","toJSON","description","fileName","lineNumber","columnNumber","prototype$1","customProps","axiosError","cause","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","toFormData","formData","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","useBlob","convertValue","toISOString","Buffer","el","exposedHelpers","build","encode$1","charMap","AxiosURLSearchParams","_pairs","buildURL","_encode","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","h","InterceptorManager$1","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams$1","URLSearchParams","FormData$1","Blob$1","platform$1","isBrowser","classes","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","utils","freeze","platform","toURLEncodedForm","helpers","isNode","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","normalized","targets","asStrings","computed","accessor","internals","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","reject","ERR_BAD_REQUEST","parseProtocol","speedometer","samplesCount","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","startedAt","bytesCount","passed","round","throttle","freq","lastArgs","timer","timestamp","threshold","invoke","clearTimeout","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","lengthComputable","progressBytes","rate","inRange","progress","estimated","event","progressEventDecorator","asyncDecorator","isURLSameOrigin","isMSIE","URL","userAgent","cookies","write","expires","cookie","toGMTString","read","remove","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","unescape","xsrfValue","isXHRAdapterSupported","XMLHttpRequest","xhrAdapter","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","send","composeSignals","signals","controller","AbortController","composeSignals$1","streamChunk","chunk","chunkSize","readBytes","readStream","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","getBodyLength","_request","resolveBodyLength","getContentLength","fetchAdapter","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","getAdapter","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators$1","deprecatedWarnings","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","validator","ERR_BAD_OPTION","formatMessage","desc","ERR_DEPRECATED","spelling","correctSpelling","validators","Axios","instanceConfig","interceptors","configOrUrl","dummy","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","_listeners","onfulfilled","CancelToken$1","spread","callback","isAxiosError","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$1","createInstance","Cancel","promises","formToJSON","normalizeIPv6","normalizeIPv4","recomposeAuthority","normalizeComponentEncoding","resolved","skipEscape","cmpts","escape","hexLookUp","nonSimpleDomain","gotEncoding","isIP","ipv4result","isIPV4","ipv6result","isIPV6","domainToASCII","skipNormalize","encodeURI","fastUri","UUID_REG","URN_REG","httpParse","httpSerialize","wsParse","wsSerialize","urnParse","urnSerialize","urnuuidParse","urnuuidSerialize","https","ws","wss","urn","urnuuid","HEX","A","B","C","d","D","F","IPV4_REG","findToken","stripLeadingZeros","stringArrayToHexStripped","keepZero","strip","getIPV6","tokenCount","isZone","endipv6Encountered","endIpv6","consume","hex","cursor","escapedHost","skip","ind","esc","ipV4res","ipV6res"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.6fa6abd7.js b/js/app.5edca583.js similarity index 99% rename from js/app.6fa6abd7.js rename to js/app.5edca583.js index 3a3ee7abe..6ca80b3c4 100644 --- a/js/app.6fa6abd7.js +++ b/js/app.5edca583.js @@ -1,2 +1,2 @@ -(function(){var t={61629:function(t,e,a){"use strict";a.d(e,{A:function(){return m}});var s=function(){var t=this,e=t._self._c;return e("b-card",{directives:[{name:"b-visible",rawName:"v-b-visible.400",value:t.load,expression:"load",modifiers:{400:!0}}],class:t.classes,attrs:{"no-body":"","img-right":t.isList}},[t.hasImage?e("b-card-img-lazy",t._b({staticClass:"thumbnail",attrs:{offset:"200"}},"b-card-img-lazy",t.thumbnail,!1)):t._e(),e("b-card-body",[e("b-card-title",[e("StacLink",{staticClass:"stretched-link",attrs:{data:[t.data,t.catalog]}})],1),t.data&&(t.fileFormats.length>0||t.data.description||t.data.deprecated)?e("b-card-text",{staticClass:"intro"},[t.data.deprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t._v(" "+t._s(t._f("summarize")(t.data.description))+" ")],2):t._e(),t.showKeywordsInCatalogCards&&t.keywords.length>0?e("Keywords",{attrs:{keywords:t.keywords,variant:"primary",center:!t.isList}}):t._e(),t.temporalExtent?e("b-card-text",{staticClass:"datetime"},[e("small",{domProps:{innerHTML:t._s(t.temporalExtent)}})]):t._e()],1),e("b-card-footer",[t._t("footer",null,{data:t.data})],2)],1)},i=[],r=(a(44114),a(95353)),n=a(67467),o=a(97685),l=a(58581),c=a(31831),u=a(50735),d=a(2566),h={name:"Catalog",components:{StacLink:l["default"],Keywords:()=>a.e(8499).then(a.bind(a,28499))},filters:{summarize:t=>d.Ay.summarizeMd(t,300),formatMediaType:t=>(0,u.formatMediaType)(t,null,{shorten:!0})},mixins:[o.A,(0,n.A)({formatTemporalExtent:u.formatTemporalExtent})],props:{catalog:{type:Object,required:!0}},computed:{...(0,r.aH)(["showKeywordsInCatalogCards"]),...(0,r.L8)(["getStac"]),classes(){let t=["catalog-card"];return this.data||t.push("queued"),this.data&&this.data.deprecated&&t.push("deprecated"),this.hasImage&&t.push("has-thumbnail"),this.temporalExtent&&t.push("has-extent"),t},data(){return this.getStac(this.catalog)},temporalExtent(){var t,e,a;if(null!==(t=this.data)&&void 0!==t&&t.isCollection()&&(null===(e=this.data.extent)||void 0===e||null===(a=e.temporal)||void 0===a?void 0:a.interval.length)>0){let t=this.data.extent.temporal.interval[0];if(Array.isArray(t)&&("string"===typeof t[0]||"string"===typeof t[1]))return this.formatTemporalExtent(this.data.extent.temporal.interval[0],!0)}return null},fileFormats(){return this.data?this.data.getFileFormats():[]},keywords(){return this.data&&this.data.getMetadata("keywords")||[]}},methods:{load(t){this.catalog instanceof c.A||this.$store.commit(t?"queue":"unqueue",this.catalog.href)}}},p=h,f=a(81656),g=(0,f.A)(p,s,i,!1,null,null,null),m=g.exports},85811:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return C}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"catalogs mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.title))]),null!==t.catalogCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.catalogCount))]):t._e(),e("ViewButtons",{staticClass:"mr-2",model:{value:t.view,callback:function(e){t.view=e},expression:"view"}}),t.isComplete&&t.catalogs.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.isComplete&&t.catalogs.length>1?e("section",{staticClass:"catalog-filter mb-2"},[e("SearchBox",{attrs:{placeholder:t.filterPlaceholder},model:{value:t.searchTerm,callback:function(e){t.searchTerm=e},expression:"searchTerm"}}),t.allKeywords.length>0?e("multiselect",{attrs:{multiple:"",options:t.allKeywords,placeholder:t.$t("multiselect.keywordsPlaceholder"),selectLabel:t.$t("multiselect.selectLabel"),selectedLabel:t.$t("multiselect.selectedLabel"),deselectLabel:t.$t("multiselect.deselectLabel"),limitText:t.limitText},model:{value:t.selectedKeywords,callback:function(e){t.selectedKeywords=e},expression:"selectedKeywords"}}):t._e()],1):t._e(),t.showPagination?e("Pagination",{ref:"topPagination",staticClass:"mb-3",attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.hasSearchCritera&&0===t.catalogView.length?e("b-alert",{staticClass:"mt-2",attrs:{variant:"warning",show:""}},[t._v(t._s(t.$t("catalogs.noMatches")))]):t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),e(t.cardsComponent,t._b({tag:"component"},"component",t.cardsComponentProps,!1),t._l(t.catalogView,(function(a){return e("Catalog",{key:a.href,attrs:{catalog:a},scopedSlots:t._u([{key:"footer",fn:function({data:e}){return[t._t("catalogFooter",null,{data:e})]}}],null,!0)})})),1)],1),t.showPagination?e("Pagination",{staticClass:"mb-3",attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.loadMore,expression:"loadMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.loadMore}},[t._v(t._s(t.$t("catalogs.loadMore")))]):t._e()],1)},i=[],r=(a(44114),a(98992),a(23215),a(54520),a(81454),a(37550),a(95353)),n=a(61629),o=a(39773),l=a(31831),c=function(){var t=this,e=t._self._c;return e("b-button-group",{attrs:{title:t.$t("view.title"),size:"sm"}},[e("b-button",{attrs:{title:t.$t("view.tiles.title"),variant:"outline-primary",pressed:"cards"===t.value},on:{click:function(e){return t.toggle("cards")}}},[e("b-icon-bricks"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.tiles.label")))])],1),e("b-button",{attrs:{title:t.$t("view.list.title"),variant:"outline-primary",pressed:"list"===t.value},on:{click:function(e){return t.toggle("list")}}},[e("b-icon-list-task"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.list.label")))])],1)],1)},u=[],d=a(82948),h={id:"SortButtons",components:{BIconBricks:d.Muv,BIconListTask:d.Xjw},props:{value:{type:String,default:"cards"}},methods:{toggle(t){this.value!==t&&this.$emit("input",t)}}},p=h,f=a(81656),g=(0,f.A)(p,c,u,!1,null,null,null),m=g.exports,b={components:{ViewButtons:m},computed:{cardsComponent(){return"list"===this.view?"div":"b-card-group"},cardsComponentProps(){return"list"===this.view?{class:["card-list"]}:{columns:!0}},view:{get(){return this.$store.state.cardViewMode},async set(t){await this.$store.dispatch("config",{cardViewMode:t})}}}},y=a(2566),A={name:"Catalogs",components:{Catalog:n.A,Loading:o.A,Pagination:()=>Promise.resolve().then(a.bind(a,45787)),SearchBox:()=>a.e(4748).then(a.bind(a,74748)),SortButtons:()=>a.e(771).then(a.bind(a,40771)),Multiselect:()=>a.e(5262).then(a.t.bind(a,75262,23))},mixins:[b],props:{catalogs:{type:Array,required:!0},collectionsOnly:{type:Boolean,required:!1},loading:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},pagination:{type:Object,default:()=>({})},count:{type:Number,default:null}},data(){return{searchTerm:"",sort:0,selectedKeywords:[]}},computed:{...(0,r.aH)(["cardViewSort","uiLanguage"]),...(0,r.L8)(["getStac"]),catalogCount(){return this.catalogs.length!==this.catalogView.length?this.catalogView.length+"/"+this.catalogs.length:null!==this.count?this.count:this.isComplete?this.catalogs.length:null},title(){return this.collectionsOnly?this.$tc("stacCollection",this.catalogs.length):this.$tc("stacCatalog",this.catalogs.length)},isComplete(){return!this.hasMore&&!this.showPagination},filterPlaceholder(){return this.isComplete?this.$t("catalogs.filterByTitleAndMore"):this.$t("catalogs.filterByTitle")},showPagination(){return Object.values(this.pagination).some((t=>!!t))},allCatalogs(){return this.catalogs.map((t=>{let e=this.getStac(t);return e||t}))},hasSearchCritera(){return this.searchTerm||this.selectedKeywords.length>0},catalogView(){if(this.hasMore)return this.catalogs;let t=this.allCatalogs;if(this.hasSearchCritera&&(t=t.filter((t=>{if(this.selectedKeywords.length>0&&t instanceof l.A&&Array.isArray(t.keywords)){let e=this.selectedKeywords.every((e=>t.keywords.includes(e)));if(!e)return!1}if(this.searchTerm){let e=[t.title];return t instanceof l.A&&this.isComplete&&(e.push(t.id),Array.isArray(t.keywords)&&(e=e.concat(t.keywords))),y.Ay.search(this.searchTerm,e)}return!0}))),!this.hasMore&&0!==this.sort){const e=new Intl.Collator(this.uiLanguage);t=t.slice(0).sort(((t,a)=>e.compare(l.A.getDisplayTitle(t),l.A.getDisplayTitle(a)))),-1===this.sort&&(t=t.reverse())}return t},allKeywords(){if(!this.isComplete)return[];let t=[];for(let e of this.allCatalogs)if(e instanceof l.A&&Array.isArray(e.keywords))for(let a of e.keywords)t.includes(a)||t.push(a);return t.sort()}},created(){this.sort=this.cardViewSort},methods:{loadMore(t=!0){t&&(this.sort=0,this.$emit("loadMore"))},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&y.Ay.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)},limitText(t){return this.$t("multiselect.andMore",{count:t})}}},v=A,w=(0,f.A)(v,s,i,!1,null,"52ad2017",null),C=w.exports},99975:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return d}});var s=function(){var t=this,e=t._self._c;return e("b-button",t._b({staticClass:"copy-button",attrs:{variant:t.copyColor,title:t.$t("copy")},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.copy.apply(null,arguments)}}},"b-button",t.buttonProps,!1),[e(t.copyIcon,{tag:"component"}),t._t("default")],2)},i=[],r=a(82948),n=a(14405),o={name:"CopyButton",components:{BIconClipboard:r.ceV,BIconClipboardCheck:r.mD4,BIconClipboardX:r.A6N},props:{copyText:{type:String,required:!0},variant:{type:String,default:"primary"},buttonProps:{type:Object,default:()=>({})}},data(){return{status:null}},computed:{copyColor(){let t=this.variant;return!0===this.status?t="success":!1===this.status&&(t="danger"),this.variant.startsWith("outline-")&&(t="outline-"+t),t},copyIcon(){return!0===this.status?"b-icon-clipboard-check":!1===this.status?"b-icon-clipboard-x":"b-icon-clipboard"}},methods:{async copy(){try{let t=document.activeElement;await n.B.copy(this.copyText),t.focus(),this.status=!0}catch(t){console.error(t),this.status=!1}setTimeout((()=>this.status=null),2500)}}},l=o,c=a(81656),u=(0,c.A)(l,s,i,!1,null,null,null),d=u.exports},41526:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return u}});var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"styled-description",class:{compact:t.compact,inline:t.inline},domProps:{innerHTML:t._s(t.markup(t.description))}})},i=[],r=a(30855),n={name:"Description",props:{description:{type:String,default:""},compact:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},allowHTML:{type:Boolean,default:!1}},methods:{markup(t){if("string"!==typeof t)return"";var e=new r.iX,a=new r.j6({safe:!this.allowHTML,smart:!0}),s=e.parse(t);return a.render(s)}}},o=n,l=a(81656),c=(0,l.A)(o,s,i,!1,null,null,null),u=c.exports},85952:function(t,e,a){"use strict";a.d(e,{A:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("b-alert",{attrs:{variant:"danger",show:"",dismissible:t.dismissible},on:{dismissed:function(e){return t.$emit("close")}}},[e("p",{staticClass:"message"},[t._v(t._s(t.message||t.$t("errors.default")))]),t.error&&t.error.message?e("dl",{staticClass:"error"},[e("dt",[t._v(t._s(t.$t("errors.labels.cause")))]),e("dd",[t._v(t._s(t.error.message))])]):t._e(),t.description?e("dl",{staticClass:"description"},[e("dt",[t._v(t._s(t.$t("errors.labels.reason")))]),e("dd",[t._v(t._s(t.description))])]):t._e(),t.id?e("dl",{staticClass:"id"},[e("dt",[t._v(t._s(t.$t("errors.labels.code")))]),e("dd",[e("code",[t._v(t._s(t.id))])])]):t._e(),t.url?e("dl",{staticClass:"url"},[e("dt",[t._v(t._s(t.$t("errors.labels.requestURL")))]),e("dd",[e("code",[t._v(t._s(t.url))])])]):t._e()])},i=[],r={name:"ErrorAlert",props:{message:{type:String,default:null},description:{type:String,default:""},error:{type:[Object,Error],default:null},id:{type:[String,Number],default:null},url:{type:String,default:""},dismissible:{type:Boolean,default:!1}}},n=r,o=a(81656),l=(0,o.A)(n,s,i,!1,null,"7a9d646a",null),c=l.exports},77455:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("b-card",{directives:[{name:"b-visible",rawName:"v-b-visible.400",value:t.load,expression:"load",modifiers:{400:!0}}],staticClass:"item-card",class:{queued:!t.data,deprecated:t.isDeprecated,description:t.hasDescription},attrs:{"no-body":""}},[t.hasImage?e("b-card-img-lazy",t._b({staticClass:"thumbnail",attrs:{offset:"200"}},"b-card-img-lazy",t.thumbnail,!1)):t._e(),e("b-card-body",[e("b-card-title",[e("StacLink",{staticClass:"stretched-link",attrs:{data:[t.data,t.item]}})],1),t.fileFormats.length>0||t.hasDescription||t.isDeprecated?e("b-card-text",{staticClass:"intro"},[t.isDeprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t.hasDescription?[t._v(t._s(t._f("summarize")(t.data.properties.description)))]:t._e()],2):t._e(),t.showKeywordsInItemCards&&t.keywords.length>0?e("Keywords",{attrs:{keywords:t.keywords,variant:"primary",center:""}}):t._e(),e("b-card-text",[e("small",{staticClass:"text-muted"},[t.extent?[t._v(t._s(t._f("formatTemporalExtent")(t.extent)))]:t.data&&t.data.properties.datetime?[t._v(t._s(t._f("formatTimestamp")(t.data.properties.datetime)))]:[t._v(t._s(t.$t("items.noTime")))]],2)])],1)],1)},i=[],r=a(95353),n=a(97685),o=a(58581),l=a(31831),c=a(50735),u=a(19087),d=a.n(u),h=a(2566);d().addDependency("content-type",a(58597));var p={name:"Item",components:{StacLink:o["default"],Keywords:()=>a.e(8499).then(a.bind(a,28499))},filters:{summarize:t=>h.Ay.summarizeMd(t,150),formatMediaType:t=>(0,c.formatMediaType)(t,null,{shorten:!0}),formatTemporalExtent:c.formatTemporalExtent,formatTimestamp:c.formatTimestamp},mixins:[n.A],props:{item:{type:Object,required:!0}},computed:{...(0,r.aH)(["showKeywordsInItemCards"]),...(0,r.L8)(["getStac"]),data(){return this.getStac(this.item)},extent(){return this.data&&(this.data.properties.start_datetime||this.data.properties.end_datetime)?[this.data.properties.start_datetime,this.data.properties.end_datetime]:null},fileFormats(){return this.data?this.data.getFileFormats():[]},keywords(){return this.data&&this.data.getMetadata("keywords")||[]},isDeprecated(){return this.data instanceof l.A&&Boolean(this.data.properties.deprecated)},hasDescription(){return this.data instanceof l.A&&h.Ay.hasText(this.data.properties.description)}},methods:{load(t){this.item instanceof l.A||this.$store.commit(t?"queue":"unqueue",this.item.href)}}},f=p,g=a(81656),m=(0,g.A)(f,s,i,!1,null,null,null),b=m.exports},41201:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"items mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.$tc("stacItem",t.items.length)))]),null!==t.itemCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.itemCount))]):t._e(),!t.api&&t.items.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.showPagination?e("Pagination",{ref:"topPagination",staticClass:"mb-3",class:{"mr-3":t.allowFilter},attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.allowFilter?[t.api?e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.itemFilter",modifiers:{itemFilter:!0}}],staticClass:"mb-3",attrs:{variant:t.hasFilters&&!t.filtersOpen?"primary":"outline-primary"}},[e("b-icon-search"),t._v(" "+t._s(t.filtersOpen?t.$t("items.hideFilter"):t.$t("items.showFilter"))+" "),t.hasFilters&&!t.filtersOpen?e("b-badge",{attrs:{variant:"dark"}},[t._v(t._s(t.filterCount))]):t._e()],1):t._e(),e("b-collapse",{attrs:{id:"itemFilter"},model:{value:t.filtersOpen,callback:function(e){t.filtersOpen=e},expression:"filtersOpen"}},[e("SearchFilter",{attrs:{type:"Items",title:t.$t("items.filter"),parent:t.stac,value:t.apiFilters},on:{input:t.emitFilter}})],1)]:t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),t.chunkedItems.length>0?e("b-card-group",{attrs:{columns:""}},t._l(t.chunkedItems,(function(t){return e("Item",{key:t.href,attrs:{item:t}})})),1):e("b-alert",{attrs:{variant:t.hasFilters?"warning":"info",show:""}},[t.hasFilters?[t._v(t._s(t.$t("search.noItemsFound")))]:[t._v(t._s(t.$t("items.noneAvailableForCollection")))]],2)],1),t.showPagination?e("Pagination",{staticClass:"mb-3",attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.showMore,expression:"showMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.showMore}},[t._v(t._s(t.$t("showMore")))]):t._e()],2)},i=[],r=(a(98992),a(54520),a(37550),a(77455)),n=a(39773),o=a(45787),l=a(48883),c=a(82948),u=a(2566),d=a(31831),h=a(95353),p={name:"Items",components:{BCollapse:l.K,BIconSearch:c.S8S,Item:r["default"],SearchFilter:()=>Promise.all([a.e(537),a.e(5262),a.e(7616),a.e(3175)]).then(a.bind(a,7616)),Loading:n.A,Pagination:o["default"],SortButtons:()=>a.e(771).then(a.bind(a,40771))},props:{items:{type:Array,required:!0},loading:{type:Boolean,default:!1},stac:{type:Object,required:!0},api:{type:Boolean,default:!1},allowFilter:{type:Boolean,default:!0},showFilters:{type:Boolean,default:!1},apiFilters:{type:Object,default:()=>({})},pagination:{type:Object,default:()=>({})},chunkSize:{type:Number,default:90},count:{type:Number,default:null}},data(){return{shownItems:this.chunkSize,filtersOpen:this.showFilters,sort:0}},computed:{...(0,h.aH)(["cardViewSort","uiLanguage"]),itemCount(){return null!==this.count?this.count:!this.api&&this.items.length>0?this.items.length:null},hasMore(){return this.items.length>this.shownItems},filterCount(){return Object.values(this.apiFilters).filter((t=>!(null===t||0===u.Ay.size(t)))).length},hasFilters(){return this.filterCount>0},chunkedItems(){let t=this.items;if(!this.apiFilters.sortby&&0!==this.sort){const e=new Intl.Collator(this.uiLanguage);t=t.slice(0).sort(((t,a)=>e.compare(d.A.getDisplayTitle(t),d.A.getDisplayTitle(a)))),-1===this.sort&&(t=t.reverse())}return!this.api&&this.items.length>this.chunkSize?t.slice(0,this.shownItems):t},showPagination(){if(this.api){if(this.hasFilters)return!0;if(this.items.length>0)return Object.values(this.pagination).some((t=>!!t))}return!1}},watch:{showFilters(){this.filter=this.showFilters},filtersOpen(){this.$emit("filtersShown",this.filtersOpen)}},created(){this.sort=this.cardViewSort},mounted(){this.showFilters&&setTimeout((()=>u.Ay.scrollTo(this.$el)),250)},methods:{emitFilter(t,e){this.$emit("filterItems",t,e)},showMore(){this.shownItems+=this.chunkSize},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&u.Ay.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)}}},f=p,g=a(81656),m=(0,g.A)(f,s,i,!1,null,null,null),b=m.exports},39773:function(t,e,a){"use strict";a.d(e,{A:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("div",{class:t.classes},[e("b-spinner",{attrs:{label:t.$t("loading"),small:t.small}})],1)},i=[],r=(a(44114),{name:"Loading",props:{fill:{type:Boolean,default:!1},stretch:{type:Boolean,default:!1},small:{type:Boolean,default:!1},top:{type:Boolean,default:!1}},computed:{classes(){let t=["loading"];return this.fill?t.push("loading-fill"):this.stretch&&t.push("loading-stretch"),this.top&&t.push("top"),t}}}),n=r,o=a(81656),l=(0,o.A)(n,s,i,!1,null,"67931bb8",null),c=l.exports},45787:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("b-button-group",[e("b-button",{attrs:{disabled:!t.pagination.first,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.first)}}},[t._v(t._s(t.$t("pagination.first")))]),e("b-button",{attrs:{disabled:!t.pagination.prev,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.prev)}}},[t._v(t._s(t.$t("pagination.previous")))]),e("b-button",{attrs:{disabled:!t.pagination.next,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.next)}}},[t._v(t._s(t.$t("pagination.next")))]),t.pagination.last?e("b-button",{attrs:{variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.last)}}},[t._v(t._s(t.$t("pagination.last")))]):t._e()],1)},i=[],r={name:"Pagination",props:{pagination:{type:Object,default:()=>({})},placement:{type:String,default:"bottom"}},methods:{paginate(t){this.$emit("paginate",t,this.placement)}}},n=r,o=a(81656),l=(0,o.A)(n,s,i,!1,null,null,null),c=l.exports},58581:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return g}});var s=function(){var t=this,e=t._self._c;return e(t.component,t._b({tag:"component",staticClass:"stac-link",attrs:{title:t.tooltip}},"component",t.attributes,!1),[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.displayTitle))])],2)},i=[],r=(a(98992),a(72577),a(95353)),n=a(59203),o=a(2566),l=a(31831),c=a(84193),u=a.n(c),d={name:"StacLink",props:{data:{type:[Object,Array],default:null},title:{type:String,default:null},fallbackTitle:{type:[String,Function],default:null},tooltip:{type:String,default:null},button:{type:[Boolean,Object],default:!1},state:{type:Object,default:null}},computed:{...(0,r.aH)(["allowExternalAccess","privateQueryParameters"]),...(0,r.L8)(["toBrowserPath","getRequestUrl","isExternalUrl"]),icon(){if(this.stac){let t=this.stac.getIcons();if(t.length>0)return t[0]}return null},stac(){return this.data instanceof l.A?this.data:Array.isArray(this.data)?this.data.find((t=>t instanceof l.A)):null},link(){return this.isLink(this.data)?this.data:Array.isArray(this.data)&&this.data.find((t=>this.isLink(t)))||{}},isStacBrowserLink(){return!!this.stac||!!o.Ay.isStacMediaType(this.link.type,!0)&&(!(!this.allowExternalAccess&&this.isExternalUrl(this.link.href))&&n.Bv.includes(this.link.rel))},attributes(){if(this.isStacBrowserLink||this.button){let t={to:this.href,rel:this.rel};return o.Ay.isObject(this.button)&&Object.assign(t,this.button),t}return{href:this.href,target:"_blank",rel:this.rel}},component(){return this.button?"b-button":this.isStacBrowserLink?"router-link":"a"},href(){if(this.stac||this.isStacBrowserLink){let t;if(t=this.stac?this.stac.getBrowserPath():this.toBrowserPath(this.link.href),t.startsWith("/")||(t="/"+t),o.Ay.size(this.privateQueryParameters)>0||o.Ay.size(this.state)>0){let e=u()(t),a=(t,a)=>{for(let s in t){let i=`${a}${s}`;e.hasQuery(i)||e.addQuery(i,t[s])}};a(this.privateQueryParameters,"~"),a(this.state,"."),t=e.toString()}return t}return this.getRequestUrl(this.link.href)},displayTitle(){if(this.title)return this.title;let t="function"===typeof this.fallbackTitle?this.fallbackTitle():this.fallbackTitle;return l.A.getDisplayTitle(this.data,t)}},methods:{isLink(t){return o.Ay.isObject(t)&&!(t instanceof l.A)}}},h=d,p=a(81656),f=(0,p.A)(h,s,i,!1,null,null,null),g=f.exports},19306:function(t){t.exports={catalogUrl:null,catalogTitle:"STAC Browser",allowExternalAccess:!0,allowedDomains:[],detectLocaleFromBrowser:!0,storeLocale:!0,locale:"en",fallbackLocale:"en",supportedLocales:["de","es","en","fr","it","ro","ja","pt"],apiCatalogPriority:null,useTileLayerAsFallback:!0,displayGeoTiffByDefault:!1,buildTileUrlTemplate:({href:t,asset:e})=>"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url="+encodeURIComponent(e.href.startsWith("/vsi")?e.href:t),stacProxyUrl:null,pathPrefix:"/",historyMode:"history",cardViewMode:"cards",cardViewSort:"asc",showKeywordsInItemCards:!1,showKeywordsInCatalogCards:!1,showThumbnailsAsAssets:!1,geoTiffResolution:128,redirectLegacyUrls:!1,itemsPerPage:12,defaultThumbnailSize:null,maxPreviewsOnMap:50,crossOriginMedia:null,requestHeaders:{},requestQueryParameters:{},socialSharing:["email","bsky","mastodon","x"],preprocessSTAC:null,authConfig:null}},44426:function(t,e,a){"use strict";a.d(e,{A:function(){return r}});var s=a(48907),i=a(2566);class r{constructor(t={},e=null,a=null){this.options=t,this.changeListener=e,this.router=a}getButtonTitle(){return null}getLoginLabel(){return s.Ay.t("authentication.button.login")}getLogoutLabel(){return s.Ay.t("authentication.button.logout")}getComponent(){return null}getComponentProps(){return{}}async init(){}async login(){}async confirmLogin(t){this.changeListener&&await this.changeListener(!0,t)}async logout(){}async confirmLogout(){this.changeListener&&await this.changeListener(!1)}async close(){}updateStore(){return{}}_updateStore(t,e=null,a=null,s=null){const r=this.options.formatter||s,n=this.options.name||e,o=this.options.in||a;return t&&("Bearer"===r?t=`Bearer ${t}`:"function"===typeof r&&(t=r(t))),i.Ay.hasText(t)||(t=void 0),"query"===o?{query:{type:"private",key:n,value:t}}:"cookie"===o?{cookie:{key:n,value:t}}:"header"===o?{header:{key:n,value:t}}:{}}static async create(t,e,s){let n=new r;if(i.Ay.isObject(t))if("http"===t.type&&"basic"===t.scheme){const i=(await a.e(4648).then(a.bind(a,34648))).default;n=new i(t,e,s)}else if("apiKey"===t.type){const i=(await a.e(6935).then(a.bind(a,46935))).default;n=new i(t,e,s)}else if("openIdConnect"===t.type){const i=(await a.e(3621).then(a.bind(a,93621))).default;n=new i(t,e,s)}return await n.init(),n}static equals(t,e){return JSON.stringify(t.options)===JSON.stringify(e)}}},45311:function(t,e,a){"use strict";a.d(e,{A:function(){return r},W:function(){return n}});var s=a(42473),i=a(2566);class r{static enabled(t){if(!i.Ay.isObject(t))return!1;try{if(t.setItem("test","yes"),"yes"===t.getItem("test"))return t.removeItem("test"),!0}catch(e){console.error(e)}return!1}constructor(t=!1){t?r.enabled(window.sessionStorage)?this.engine=window.sessionStorage:navigator.cookieEnabled?this.engine=new n(!0):this.engine=new o:r.enabled(window.localStorage)?this.engine=window.localStorage:navigator.cookieEnabled?this.engine=new n:this.engine=new o}get(t){try{let e=this.engine.getItem(t);return"string"===typeof e&&e.startsWith(r.JSON_INDICATOR)&&(e=JSON.parse(e.slice(r.JSON_INDICATOR.length))),e}catch(e){return console.error(e),null}}set(t,e){try{"string"!==typeof e&&(e=r.JSON_INDICATOR+JSON.stringify(e)),this.engine.setItem(t,e)}catch(a){console.error(a)}}remove(t){try{this.engine.removeItem(t)}catch(e){console.error(e)}}clear(){this.engine.clear()}}(0,s.A)(r,"JSON_INDICATOR","\n\r");class n{constructor(t=!1){this.session=t}getExpiry(t=null){null===t&&(t=this.session?60:144e4);const e=new Date;e.setTime(e.getTime()+60*t*1e3),this.epires=e.toGMTString()}setItem(t,e,a=null){const s=this.getExpiry(a);e=encodeURIComponent(e),document.cookie=`${t}=${e}; expires=${s}; path=/`}getItem(t){const e=t+"=",a=document.cookie.split(";");for(let s of a)if(s=s.trim(),s.startsWith(e)){const t=s.substring(e.length,s.length);return decodeURIComponent(t)}return null}removeItem(t){this.set(t,"",-1)}clear(){document.cookie=""}}class o{constructor(t=!1){this.session=t}setItem(t){console.warn(`Browser storage disabled, can't store ${t}`)}getItem(){return null}removeItem(){}clear(){}}},78561:function(t,e,a){"use strict";a.d(e,{Q:function(){return o}});var s=a(95353);const i=["https://api.stacspec.org/v1.*/item-search#filter:cql-text","http://www.opengis.net/spec/cql2/1.*/conf/cql2-text"],r=["https://api.stacspec.org/v1.*/item-search#filter:cql-json","http://www.opengis.net/spec/cql2/1.*/conf/cql2-json"],n=["http://www.opengis.net/spec/cql2/1.*/conf/advanced-comparison-operators"],o={Items:{BasicFilters:["https://api.stacspec.org/v1.*/ogcapi-features","http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter"],Sort:["https://api.stacspec.org/v1.*/ogcapi-features#sort","http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting"],FreeText:["https://api.stacspec.org/v1.*/ogcapi-features#free-text"]},Global:{BasicFilters:["https://api.stacspec.org/v1.*/item-search"],CollectionIdFilter:!0,ItemIdFilter:!0,CqlFilters:["https://api.stacspec.org/v1.*/item-search#filter"],Sort:["https://api.stacspec.org/v1.*/item-search#sort"],FreeText:["https://api.stacspec.org/v1.*/item-search#free-text"]},Collections:{BasicFilters:["https://api.stacspec.org/v1.*/collection-search"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["https://api.stacspec.org/v1.*/collection-search#filter"],Sort:["https://api.stacspec.org/v1.*/collection-search#sort"],FreeText:["https://api.stacspec.org/v1.*/collection-search#free-text"]}};e.A={props:{type:{type:String,required:!0}},computed:{...(0,s.L8)(["supportsConformance"]),conformances(){return o[this.type]},canSort(){return this.supportsConformance(this.conformances.Sort)},canFilterExtents(){return this.supportsConformance(this.conformances.BasicFilters)},canFilterFreeText(){return this.supportsConformance(this.conformances.FreeText)},cql(){if(!this.supportsConformance(this.conformances.CqlFilters))return null;let t=this.supportsConformance(i),e=this.supportsConformance(r);return t||e?{textMode:t,jsonMode:e,advancedComparison:this.supportsConformance(n)}:null}}}},67467:function(t,e,a){"use strict";var s=a(95353);e.A=t=>{let e={computed:{...(0,s.aH)(["uiLanguage"])},methods:{}};for(let a in t){let s=t[a];e.methods[a]=function(){return this.uiLanguage,s(...arguments)}}return e}},97685:function(t,e,a){"use strict";var s=a(95353);e.A={props:{showThumbnail:{type:Boolean,default:!0}},computed:{...(0,s.aH)(["cardViewMode","crossOriginMedia","defaultThumbnailSize"]),isList(){return this.data&&!this.data.isItem()&&"list"===this.cardViewMode},hasImage(){return this.showThumbnail&&this.thumbnail},thumbnail(){if(this.data){let t=this.data.getThumbnails(!0,"thumbnail");if(t.length>0){let e,a,s=t[0];return Array.isArray(s["proj:shape"])&&2===s["proj:shape"].length?[a,e]=s["proj:shape"]:Array.isArray(this.defaultThumbnailSize)&&2===this.defaultThumbnailSize.length&&([a,e]=this.defaultThumbnailSize),{src:s.href,alt:s.title,crossorigin:this.crossOriginMedia,right:this.isList,blankColor:"rgba(0, 0, 0, 0.125)",width:e,height:a,"blank-width":e,"blank-height":a}}}return null}}}},24274:function(t,e,a){"use strict";a.d(e,{A:function(){return n}});a(98992),a(54520),a(81454);var s=a(2566),i=a(31831),r=a(44426);class n{static resolveAuth(t,e){if(e instanceof i.A&&s.Ay.size(t["auth:refs"])>0){const a=e.getMetadata("auth:schemes");if(s.Ay.size(a)>0)return t["auth:refs"].map((t=>a[t])).filter((t=>s.Ay.isObject(t)))}return[]}static isSupported(t,e){switch(t instanceof r.A&&(t=t.options),t.type){case"http":return"basic"===t.schema;case"apiKey":return"header"===t.in||"query"===t.in;case"openIdConnect":return"history"===e.historyMode;default:return!1}}static convertLegacyAuthConfig(t){return s.Ay.isObject(t)&&null!==t.type?"query"===t.type||"header"===t.type?{type:"apiKey",in:t.type,name:t.key,description:t.description,formatter:t.formatter}:t:null}}},50737:function(t,e,a){"use strict";let s;s=a(19306),e.A=Object.assign(s,{pathPrefix:"/stac-browser",historyMode:"hash"},window.STAC_BROWSER_CONFIG)},48907:function(t,e,a){"use strict";a.d(e,{Aj:function(){return c},Qm:function(){return p},SM:function(){return g},_:function(){return m},fH:function(){return f}});a(81454);var s=a(85471),i=a(64765),r=a(50737),n=a(14540),o=a.n(n),l=a(2566);s.Ay.use(i.A);const c=["https://api.stacspec.org/v1.*/language"],u={};function d(){for(let e of r.A.supportedLocales)u[e]=a(97991)(`./${e}/config.json`);const t={};for(let e in u)t[e]={languages:u};return t}const h=new i.A({locale:r.A.locale,fallbackLocale:r.A.fallbackLocale,messages:d(),postTranslation:(t,e)=>{if(""===t){const a=e.split(".");let s=h.messages[r.A.fallbackLocale];for(const e of a){if(!(e in s))return t;s=s[e]}return s}return t}});function p(){return Promise.all([f(r.A.locale),f(r.A.fallbackLocale)])}async function f(t){if(l.Ay.size(h.messages[t])>1)return;const e=(await a(33545)(`./${t}/default.js`)).default;h.mergeLocaleMessage(t,e)}async function g(t){const e=u[t].customize;if(0===l.Ay.size(u[t].customize))return;const s=e.map((async e=>{const s=(await a(93731)(`./${t}/${e}`)).default;return await s(t)}));return Promise.all(s)}function m(t,e=null){if("string"!==typeof t||0===t.length)return t;let a=`fields.${t}`;return h.te(a)?h.t(a,null,e):o().format(t,e)}e.Ay=h},39071:function(t,e,a){"use strict";a.d(e,{E0:function(){return i},f5:function(){return r}});a(44114),a(98992),a(3949);function s(t){if(!t)return;const e=String(t),a=e.indexOf("@"),s=-1!==a?e.substr(a+1):void 0,i=-1!==a?e.substr(0,a):e,r=String(i).replace(/-/g,"_").split("_");if(!r.length||r.length>4)return;const n=r.shift();if(!n)return;const o={keyword:s,language:n.toLowerCase()};if(!r.length)return o;if(3===r.length){const t=r.pop();t&&(o.variant=t.toUpperCase())}let l=r.pop();if(l.length>3&&(o.keyword=l,l=r.pop()),l&&(o.country=l.toUpperCase()),!r.length)return o;const c=r.pop();return"string"===typeof c&&c.length>=1&&(o.script=c[0].toUpperCase()+c.substring(1).toLowerCase()),o}function i(t){const e={};return t.forEach((t=>{const{language:a,country:i}=s(t);if(!a)throw new Error(`Locale ${t} is not parsable`);e[a]||(e[a]={countries:{},firstCountry:void 0,main:void 0});const r=e[a];i?(r.countries[i]=t,r.firstCountry||(r.firstCountry=t)):r.main=t})),e}function r(t,e,a,n){const o=Array.isArray(t)?i(t):t;if(!e&&a)return r(t,a,void 0,n);if(!e)return;const{language:l,country:c}=s(e);if(!l)return a;if(!o[l]){if(e===a)return;return r(t,a,null,n)}const{countries:u,main:d=a,firstCountry:h}=o[l];return u&&c?n&&h?u[c]?u[c]:h:u[c]?u[c]:d:n&&h?h:d}},4786:function(t,e,a){"use strict";var s=a(85471),i=function(){var t=this,e=t._self._c;return e("b-container",{attrs:{id:"stac-browser"}},[t.showLogin?e("Authentication"):t._e(),t.globalError?e("ErrorAlert",t._b({staticClass:"global-error",attrs:{dismissible:""},on:{close:t.hideError}},"ErrorAlert",t.globalError,!1)):t._e(),t.sidebar?e("Sidebar"):t._e(),e("header",[e("div",{staticClass:"logo"},[t._v(t._s(t.displayCatalogTitle))]),e("StacHeader",{on:{enableSidebar:function(e){t.sidebar=!0}}})],1),e("router-view"),e("footer",[e("i18n",{staticClass:"poweredby text-muted",attrs:{tag:"small",path:"poweredBy"},scopedSlots:t._u([{key:"link",fn:function(){return[e("a",{attrs:{href:"https://github.com/radiantearth/stac-browser",target:"_blank"}},[t._v("STAC Browser")]),t._v(" "+t._s(t.browserVersion)+" ")]},proxy:!0}])})],1)],1)},r=[],n=(a(44114),a(40173)),o=a(95353),l=a(50737),c=function(){var t=this,e=t._self._c;return e("main",{staticClass:"browse d-flex flex-column"},[!t.allowExternalAccess&&t.isExternal?e("b-alert",{attrs:{show:""}},[t._v(t._s(t.$t("errors.noExternalAccess")))]):t.error?e("ErrorAlert",{attrs:{url:t.url,description:t.errorDescription,id:t.errorId}}):t.loading?e("Loading",{attrs:{stretch:""}}):e(t.component,{tag:"component"})],1)},u=[],d=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,staticClass:"item"},[e("b-row",[e("b-col",{staticClass:"left"},[e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{card:"",pills:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.selectedAsset,scrollWheelZoom:""},on:{dataChanged:t.dataChanged}})],1),t.thumbnails.length>0?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.additionalLinks.length>0?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks,context:t.data}}):t._e()],1),e("b-col",{staticClass:"right"},[e("section",{staticClass:"intro"},[t.data.properties.description?e("h2",[t._v(t._s(t.$t("description")))]):t._e(),t.data.properties.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data.properties["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data.properties["anon:warning"]}}):t._e(),t.data.properties.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.properties.description}})],1):t._e(),Array.isArray(t.data.properties.keywords)&&t.data.properties.keywords.length>0?e("Keywords",{staticClass:"mb-3",attrs:{keywords:t.data.properties.keywords}}):t._e()],1),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),t.data.properties.providers?e("Providers",{attrs:{providers:t.data.properties.providers}}):t._e(),e("Metadata",{attrs:{data:t.data,type:"Item",ignoreFields:t.ignoredMetadataFields}})],1)],1)],1)},h=[],p=a(41526),f=a(6841),g=a.n(f),m=(a(81454),a(2566)),b={data(){return{shownAssetsOnMap:[],shownBandsOnMap:[],tab:null,selectedAsset:null,selectedAssetKey:null}},computed:{...(0,o.L8)(["thumbnails","hasAssets","assets"]),shownAssets(){if(0===this.tab)return this.shownAssetsOnMap;if(1===this.tab||null===this.tab&&this.thumbnails.length>0){let t=[],e=this.thumbnails.map((t=>t.href));for(let a in this.assets){let s=this.assets[a];e.includes(s.href)&&t.push(a)}return t}return[]}},methods:{showAsset(t,e,a){a?this.tab=1:(this.tab=0,this.selectedAsset=t,this.selectedAssetKey=e,this.shownAssetsOnMap=[this.selectedAssetKey]),this.$refs.tabs&&m.Ay.scrollTo(this.$refs.tabs.$el)},dataChanged(t){m.Ay.isObject(t)?t.assets||t.bands?(m.Ay.size(t.assets)>0&&(this.selectedAssetKey?this.shownAssetsOnMap=[this.selectedAssetKey]:this.shownAssetsOnMap=t.assets.map((t=>t.key))),m.Ay.size(t.bands)>0&&(this.shownBandsOnMap=t.bands)):this.selectedAssetKey&&(this.shownAssetsOnMap=[this.selectedAssetKey]):(this.shownBandsOnMap=[],this.shownAssetsOnMap=[])}}},y=a(95050),A=a(63405),v=(a(98992),a(54520),a(31831)),w=a(84193),C=a.n(w),k=a(48907);function _(t,e){let a=e.getters.toBrowserPath(t),s=C()(window.location.origin.toString());return"hash"===e.state.historyMode?(s.path(e.state.pathPrefix),s.fragment(a)):s.path(m.Ay.removeTrailingSlash(e.state.pathPrefix)+a),s.toString()}function L(t,e){Array.isArray(e)&&e.length>=4&&(t.spatialCoverage={"@type":"Place",geo:{"@type":"GeoShape",box:(e||[]).join(" ")}})}function j(t){return!Array.isArray(t)||2!==t.length||"string"!==typeof t[0]&&"string"!==typeof t[1]?null:t.map((t=>t||"..")).join("/")}function x(t){return m.Ay.size(t.assets)>0?Object.values(t.assets).map((e=>({"@type":"DataDownload",contentUrl:m.Ay.toAbsolute(e.href,t.getAbsoluteUrl()),encodingFormat:e.type,name:e.title}))):[]}function S(t,e,a,s="DataCatalog"){return t.map((t=>{let i,r;t instanceof v.A?(i=v.A.getDisplayTitle(t),r=t.getAbsoluteUrl()):(i=t.title,r=m.Ay.toAbsolute(t.href,e.getAbsoluteUrl()));let n={"@type":s,name:i,url:_(r,a),isBasedOn:r};return"Dataset"===s&&(n.description=I(t,a)),n}))}function T(t,e){return t.filter((t=>m.Ay.isObject(t)&&Array.isArray(t.roles)&&t.roles.includes(e))).map((t=>({"@type":"Organization",name:t.name,description:t.description,url:t.url,email:t.email||t.mail})))}function I(t,e){let a,s;if(t instanceof v.A?(a=t.isItem()?"Item":t.type,s=t.collection):m.Ay.isObject(t)&&"item"===t.rel&&(a="Item"),a){let i=k.Ay.tc(`stac${a}`),r=k.Ay.t("in",{catalog:s||e.catalogTitle});return`SpatioTemporal Asset Catalog (STAC)\n${i} - ${t.id} ${r}`}}function O(t,e,a){var s;let i,r=v.A.getDisplayTitle(t),n=t.getAbsoluteUrl(),o=_(n,a),l=null===(s=t.getMetadata("language"))||void 0===s?void 0:s.code,c=t.getThumbnails(!0);c.length>0&&(i=m.Ay.toAbsolute(c[0].href,t.getAbsoluteUrl()));let u=t.getMetadata("license");var d;u&&"proprietary"!==u&&"various"!==u&&"other"!==u?u=`https://spdx.org/licenses/${u}.html`:u=null===(d=t.getLinkWithRel("license"))||void 0===d?void 0:d.href;u&&(u=m.Ay.toAbsolute(u,t.getAbsoluteUrl()));let h,p,f,g,b=t.getMetadata("providers");return m.Ay.size(b)>0&&(h=T(b,"licensor"),p=T(b,"producer"),f=T(b,"host"),g=T(b,"processor")),{"@context":"https://schema.org/","@type":e,name:r,description:t.getMetadata("description")||I(t,a),citation:t.getMetadata("sci:citation"),identifier:t.getMetadata("sci:doi")||t.id,keywords:t.getMetadata("keywords"),license:u,url:o,isBasedOn:n,dateCreated:t.getMetadata("created"),dateModified:t.getMetadata("updated"),datePublished:t.getMetadata("published"),expires:t.getMetadata("expires"),inLanguage:l,thumbnailUrl:i,version:t.getMetadata("version"),image:i,copyrightHolder:h,producer:p,provider:f,creator:g}}function $(t,e,a){if(!(t instanceof v.A))return null;e=e.filter((t=>m.Ay.isObject(t))),e.length>1&&(e=e.filter(((t,a)=>e.findIndex((e=>e.isBasedOn===t.isBasedOn))!==a)));let s=O(t,"DataCatalog",a);var i,r,n,o;t.isCollection()&&((null===(i=t.extent)||void 0===i||null===(r=i.temporal)||void 0===r?void 0:r.interval.length)>0&&(s.temporalCoverage=j(t.extent.temporal.interval[0])),(null===(n=t.extent)||void 0===n||null===(o=n.spatial)||void 0===o?void 0:o.bbox.length)>0&&L(s,t.extent.spatial.bbox[0]),s.associatedMedia=x(t));return s.hasPart=S(a.getters.catalogs,t,a),s.dataset=S(a.getters.items,t,a,"Dataset"),s.isPartOf=S(e,t,a),s}function P(t,e,a){if(!(t instanceof v.A))return null;e=e.filter((t=>m.Ay.isObject(t)));let s=O(t,"Dataset",a);s.includedInDataCatalog=S(e,t,a);let i=t.getMetadata("start_datetime"),r=t.getMetadata("end_datetime");return s.temporalCoverage=i||r?j([i,r]):t.getMetadata("datetime"),L(s,t.bbox),s.distribution=x(t),s}function B(t,e){let a="schema-org",s=t.getElementById(a);s||(s=t.createElement("script"),s.type="application/ld+json",s.id=a,t.head.appendChild(s)),s.innerText=JSON.stringify(e)}var M={name:"Item",components:{AnonymizedNotice:()=>a.e(7457).then(a.bind(a,47457)),Assets:()=>Promise.all([a.e(8704),a.e(7674)]).then(a.bind(a,26801)),BTabs:y.r,BTab:A.a,CollectionLink:()=>a.e(9891).then(a.bind(a,89891)),Description:p["default"],DeprecationNotice:()=>a.e(7341).then(a.bind(a,57341)),Keywords:()=>a.e(8499).then(a.bind(a,28499)),Links:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(8704),a.e(4052)]).then(a.bind(a,73931)),Map:()=>a.e(401).then(a.bind(a,80401)),Metadata:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(3147)]).then(a.bind(a,73147)),Providers:()=>a.e(635).then(a.bind(a,80635)),ReadMore:g(),Thumbnails:()=>a.e(8648).then(a.bind(a,26267))},mixins:[b],data(){return{ignoredMetadataFields:["description","keywords","providers","title","deprecated","proj:bbox","proj:geometry","auth:schemes","anon:warning"]}},computed:{...(0,o.aH)(["data","url"]),...(0,o.L8)(["additionalLinks","collectionLink","parentLink"])},watch:{data:{immediate:!0,handler(t){try{let e=P(t,[this.collectionLink,this.parentLink],this.$store);B(document,e)}catch(e){console.error(e)}}}}},F=M,E=a(81656),U=(0,E.A)(F,d,h,!1,null,null,null),R=U.exports,q=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,class:{cc:!0,[t.cssStacType]:!0,mixed:t.hasCatalogs&&t.hasItems,empty:!t.hasCatalogs&&!t.hasItems}},[e("b-row",[e("b-col",{staticClass:"meta"},[e("section",{staticClass:"intro"},[e("h2",[t._v(t._s(t.$t("description")))]),t.data.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data["anon:warning"]}}):t._e(),t.data.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.description}})],1):t._e(),Array.isArray(t.data.keywords)&&t.data.keywords.length>0?e("Keywords",{staticClass:"mb-3",attrs:{keywords:t.data.keywords}}):t._e(),t.isCollection?e("section",{staticClass:"metadata mb-4"},[t.licenses?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.license")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.licenses)}})])],1):t._e(),t.temporalExtents?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.temporalExtent")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.temporalExtents)}})])],1):t._e()],1):t._e(),"left"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks,context:t.data}}):t._e()],1),t.isCollection||t.hasThumbnails?e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{pills:"",card:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[t.isCollection?e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.mapData,fitBoundsOnce:"",popover:""},on:{dataChanged:t.dataChanged}})],1):t._e(),t.hasThumbnails?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1):t._e(),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.hasItemAssets&&!t.hasItems?e("Assets",{attrs:{assets:t.data.item_assets,context:t.data,definition:!0}}):t._e(),t.providers?e("Providers",{attrs:{providers:t.providers}}):t._e(),e("Metadata",{staticClass:"mb-4",attrs:{type:t.data.type,data:t.data,ignoreFields:t.ignoredMetadataFields}}),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),"right"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks,context:t.data}}):t._e()],1),t.hasCatalogs?e("b-col",{staticClass:"catalogs-container"},[e("Catalogs",{attrs:{catalogs:t.catalogs,hasMore:!!t.nextCollectionsLink},on:{loadMore:t.loadMoreCollections}})],1):t._e(),t.hasItems?e("b-col",{staticClass:"items-container"},[e("Items",{attrs:{stac:t.data,items:t.items,api:t.isApi,showFilters:t.showFilters,apiFilters:t.filters,pagination:t.itemPages,loading:t.apiItemsLoading},on:{paginate:t.paginateItems,filterItems:t.filterItems,filtersShown:t.filtersShown}}),t.hasItemAssets?e("Assets",{attrs:{assets:t.data.item_assets,context:t.data,definition:!0}}):t._e()],1):t._e()],1)],1)},D=[],z=a(85811),H=a(41201),N=a(67467),W=a(50735),Q={name:"Catalog",components:{AnonymizedNotice:()=>a.e(7457).then(a.bind(a,47457)),Assets:()=>Promise.all([a.e(8704),a.e(7674)]).then(a.bind(a,26801)),BTabs:y.r,BTab:A.a,Catalogs:z["default"],CollectionLink:()=>a.e(9891).then(a.bind(a,89891)),DeprecationNotice:()=>a.e(7341).then(a.bind(a,57341)),Description:p["default"],Items:H["default"],Keywords:()=>a.e(8499).then(a.bind(a,28499)),Links:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(8704),a.e(4052)]).then(a.bind(a,73931)),Map:()=>a.e(401).then(a.bind(a,80401)),Metadata:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(3147)]).then(a.bind(a,73147)),Providers:()=>a.e(635).then(a.bind(a,80635)),ReadMore:g(),Thumbnails:()=>a.e(8648).then(a.bind(a,26267))},mixins:[b,(0,N.A)({formatLicense:W.formatLicense,formatTemporalExtents:W.formatTemporalExtents})],data(){return{filters:{},ignoredMetadataFields:["stac_version","stac_extensions","id","type","title","description","keywords","providers","license","extent","summaries","links","assets","item_assets","proj:bbox","proj:geometry","conformsTo","deprecated","anon:warning","stats:catalogs","stats:collections","stats:items","auth:schemes","stac_browser"]}},computed:{...(0,o.aH)(["data","url","apiItems","apiItemsLink","apiItemsPagination","nextCollectionsLink","stateQueryParameters"]),...(0,o.L8)(["additionalLinks","catalogs","collectionLink","isCollection","items","getApiItemsLoading","parentLink","rootLink"]),cssStacType(){var t,e;return m.Ay.hasText(null===(t=this.data)||void 0===t?void 0:t.type)?null===(e=this.data)||void 0===e?void 0:e.type.toLowerCase():null},showFilters(){return Boolean(this.stateQueryParameters["itemFilterOpen"])},hasThumbnails(){return this.thumbnails.length>0},linkPosition(){return 0===this.additionalLinks.length?null:this.isCollection||!this.hasThumbnails?"right":"left"},apiItemsLoading(){return this.getApiItemsLoading(this.data)},licenses(){return this.isCollection&&this.data.license?this.formatLicense(this.data.license,null,null,this.data):null},providers(){let t=[];return Array.isArray(this.data.providers)&&this.data.providers.length>0?t=this.data.providers:this.isCollection&&m.Ay.isObject(this.data.summaries)&&Array.isArray(this.data.summaries.providers)&&(t=this.data.summaries.providers),t.length>0?t:null},temporalExtents(){if(this.isCollection&&this.data.extent.temporal.interval.length>0){let t=this.data.extent.temporal.interval;return t.length>1&&(t=t.slice(1)),this.formatTemporalExtents(t)}return null},hasItemAssets(){var t;return m.Ay.size(null===(t=this.data)||void 0===t?void 0:t.item_assets)>0},itemPages(){let t=Object.assign({},this.apiItemsPagination);return!t.first&&this.data&&this.apiItemsLink&&"items"!==this.apiItemsLink.rel&&(t.first=m.Ay.addFiltersToLink(this.data.getApiItemsLink(),this.filters)),t},isApi(){return Boolean(this.apiItemsLink)},hasItems(){return this.items.length>0||this.isApi},hasCatalogs(){return this.catalogs.length>0},mapData(){return this.selectedAsset?this.selectedAsset:{type:"FeatureCollection",features:this.items}}},watch:{data:{immediate:!0,handler(t){try{let e=$(t,[this.parentLink,this.rootLink],this.$store);B(document,e)}catch(e){console.error(e)}}}},methods:{filtersShown(t){this.$store.commit("updateState",{type:"itemFilterOpen",value:t?1:null})},loadMoreCollections(){this.$store.dispatch("loadNextApiCollections",{show:!0})},async paginateItems(t){try{await this.$store.dispatch("loadApiItems",{link:t,show:!0,filters:this.filters})}catch(e){this.$root.$emit("error",e,this.$t("errors.loadItems"))}},async filterItems(t,e){this.filters=t,e&&this.$store.commit("resetApiItems",this.data.getApiItemsLink());try{await this.$store.dispatch("loadApiItems",{link:this.data.getApiItemsLink(),show:!0,filters:t})}catch(a){let t=e?this.$t("errors.loadItems"):this.$t("errors.loadFilteredItems");this.$root.$emit("error",a,t)}}}},V=Q,G=(0,E.A)(V,q,D,!1,null,null,null),K=G.exports,J=a(79873),X={name:"Browse",components:{Catalog:K,Item:R},mixins:[J.A],computed:{...(0,o.L8)(["isItem"]),component(){return this.isItem?"Item":"Catalog"}}},Y=X,Z=(0,E.A)(Y,c,u,!1,null,null,null),tt=Z.exports;function et(t,e){let a=t.params.pathMatch;return e.allowExternalAccess&&a.startsWith("external/")&&(a="/"+a),{path:a}}function at(t){let e=[];return t.catalogUrl?e.push({path:"/search",name:"search",component:()=>Promise.all([a.e(537),a.e(5262),a.e(7616),a.e(6171)]).then(a.bind(a,28189))}):(e.push({path:"/",name:"select",component:()=>a.e(967).then(a.bind(a,60967))}),e.push({path:"/search/external/(.*)",name:"search",component:()=>Promise.all([a.e(537),a.e(5262),a.e(7616),a.e(6171)]).then(a.bind(a,28189)),props:t=>({loadParent:`/external/${t.params.pathMatch}`})})),e.push({path:"/auth/logout",name:"logout",component:()=>a.e(7130).then(a.bind(a,77130))}),e.push({path:"/auth",component:()=>a.e(7659).then(a.bind(a,17659))}),e.push({path:"/validation/(.*)",name:"validation",component:()=>Promise.all([a.e(537),a.e(287),a.e(3545)]).then(a.bind(a,93545)),props:e=>et(e,t)}),e.push({path:"/(.*)",name:"browse",component:tt,props:e=>et(e,t)}),e}var st=at,it=(a(72577),a(3949),a(59203)),rt=a(44426),nt=a(24274),ot=a(45311);const lt=async(t,e)=>{t.commit("showGlobalError",{error:e,message:k.Ay.t("errors.authFailed")},{root:!0}),await t.dispatch("updateCredentials")};function ct(t){return{namespaced:!0,state:{method:()=>new rt.A,actions:[],credentials:null,inProgress:!1},getters:{method(t){return t.method()},canAuthenticate(t,e,a){return nt.A.isSupported(e.method,a)},isLoggedIn(t){return null!==t.credentials},showLogin(t,e){return!e.isLoggedIn&&t.inProgress}},mutations:{setCredentials(t,e){t.credentials=e},setMethod(t,e){t.method=()=>e},addAction(t,e){t.actions.push(e)},resetActions(t){t.actions=[]},setInProgress(t,e=!0){t.inProgress=e}},actions:{async waitForAuth(t){rt.A.equals(t.getters.method,t.rootState.authConfig)||await t.dispatch("updateMethod",t.rootState.authConfig)},async updateMethod(e,a){a=nt.A.convertLegacyAuthConfig(a),rt.A.equals(e.getters.method,a)||await e.getters.method.close();const s=async(t,a)=>{t||(a=null),await e.dispatch("updateCredentials",a),t?await e.dispatch("executeActions"):e.commit("resetActions")},i=new ot.A(!0);i.set("authConfig",a);const r=await rt.A.create(a,s,t);e.commit("setMethod",r)},async requestLogin(t){if(!t.getters.isLoggedIn){t.commit("setInProgress");try{await t.getters.method.login()}catch(e){lt(t,e)}}},async finalizeLogin(t,e=null){t.commit("setInProgress",!1);try{await t.getters.method.confirmLogin(e)}catch(a){lt(t,a)}},async abortLogin(t){t.commit("setInProgress",!1)},async requestLogout(t){t.getters.isLoggedIn&&(t.commit("setInProgress"),await t.getters.method.logout())},async finalizeLogout(t){t.commit("setInProgress",!1);try{await t.getters.method.confirmLogout()}catch(e){lt(t,e)}},async updateCredentials(t,e=null){t.commit("setCredentials",e);const a=t.getters.method.updateStore(e);if(a.query)t.commit("setQueryParameter",a.query,{root:!0});else if(a.header)t.commit("setRequestHeader",a.header,{root:!0});else if(a.cookie){const t=new ot.W(!0);t.setItem(a.cookie.key,a.cookie.value)}},async executeActions(t){for(let a of t.state.actions)try{const e=a();e instanceof Promise&&e.catch((e=>lt(t,e)))}catch(e){lt(t,e)}t.commit("resetActions")}}}}var ut=a(33484),dt=a(39071),ht=a(14540),pt=a.n(ht),ft=a(78561);function gt(t,e){const a=()=>({url:"",title:t.catalogTitle,description:null,data:null,parents:null,globalError:null,localRequestQueryParameters:{},stateQueryParameters:{language:null,asset:[],itemdef:[]},apiItems:[],apiItemsLink:null,apiItemsPagination:{}}),i=()=>({queue:[],privateQueryParameters:{},authActions:[],conformsTo:[],dataLanguage:null,dataLanguages:[],apiCollections:[],apiItemsLoading:{},nextCollectionsLink:null});return new o.Ay.Store({strict:!1,modules:{auth:ct(e)},state:Object.assign({},t,a(),i(),{database:{},allowSelectCatalog:!t.catalogUrl,globalRequestQueryParameters:t.requestQueryParameters,uiLanguage:t.locale}),getters:{loading:t=>!t.url||!t.data||t.database[t.url]instanceof ut.Rh,getApiItemsLoading:t=>e=>{let a="";return e instanceof ut.Rh||(e instanceof v.A?a=e.id:"string"===typeof e&&(a=e),t.apiItemsLoading[a]||!1)},error:t=>t.database[t.url]instanceof Error?t.database[t.url]:null,getStac:t=>(e,a=!1)=>{if(e instanceof v.A)return e;if(m.Ay.isObject(e)&&m.Ay.hasText(e.href)&&(e=e.href),!m.Ay.hasText(e))return null;let s=m.Ay.toAbsolute(e,t.url),i=t.database[s];return i instanceof v.A||a&&i instanceof Error?i:null},displayCatalogTitle:(t,e)=>v.A.getDisplayTitle(e.root,t.catalogTitle),isCollection:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCollection())||!1},isCatalog:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalog())||!1},isCatalogLike:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalogLike())||!1},isItem:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isItem())||!1},root:(t,e)=>e.getStac(e.rootLink),rootLink:t=>{var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("root");if(a)return a;if(t.catalogUrl)return m.Ay.createLink(t.catalogUrl,"root");if(t.url&&t.data instanceof v.A&&t.data.getLinksWithRels(["conformance","service-desc","service-doc","data","search"]).length>0)return m.Ay.createLink(t.url,"root");if(t.url){let e=C()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),"items"===a&&(e.segment(-1,""),e.segment(-1,"")),m.Ay.createLink(e.toString(),"root")}return null},parentLink:t=>{if(t.data instanceof v.A){let e=t.data.getStacLinkWithRel("parent");if(e)return e}if(t.url){let e=C()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),m.Ay.createLink(e.toString(),"parent")}return null},collectionLink:t=>{if(t.data instanceof v.A){var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("collection");if(a)return a}if(t.url){let e=C()(t.url),a=e.segment(-2);if("items"==a)return e.segment(-1,""),e.segment(-1,""),m.Ay.createLink(e.toString(),"collection")}return null},supportsConformance:t=>e=>{if(!Array.isArray(e))return e;let a=e.map((t=>t.replaceAll("*","[^/]+").replace(/\/?#/,"/?#"))).join("|"),s=new RegExp("^("+a+")$");return Boolean(t.conformsTo.find((t=>t.match(s))))},supportsExtension:t=>e=>m.Ay.supportsExtension(t.data,e),canSearch:(t,e)=>e.canSearchCollections||e.canSearchItems,canSearchItems:(t,e)=>e.supportsConformance(ft.Q.Global.BasicFilters),canSearchCollections:(t,e)=>e.supportsConformance(ft.Q.Collections.BasicFilters),items:t=>t.apiItems.length>0?t.apiItems:t.data?t.data.getStacLinksWithRel("item"):[],catalogs:t=>{let e=Boolean(t.data instanceof v.A&&t.data.getApiCollectionsLink()&&t.apiCollections.length>0),a=Boolean(t.data instanceof v.A),s=!t.apiCatalogPriority||"collections"===t.apiCatalogPriority,i=!t.apiCatalogPriority||"childs"===t.apiCatalogPriority,r=[];return e&&s&&(r=r.concat(t.apiCollections)),a&&i&&(r=v.A.addMissingChildren(r,t.data)),r},hasAssets:(t,e)=>Boolean(Object.values(e.assets).find((t=>m.Ay.isObject(t)&&"string"===typeof t.href))),assets:(t,e)=>{var a;if(m.Ay.isObject(null===(a=t.data)||void 0===a?void 0:a.assets)){if(t.showThumbnailsAsAssets)return t.data.assets;{let a={},s=e.thumbnails;for(let e in t.data.assets){let i=t.data.assets[e];s.includes(i)||(a[e]=i)}return a}}return{}},thumbnails:t=>t.data?t.data.getThumbnails(!0):[],additionalLinks:t=>t.data?t.data.getLinksWithOtherRels(it.ol).filter((t=>"preview"!==t.rel||!m.Ay.canBrowserDisplayImage(t))):[],toBrowserPath:(t,e)=>a=>{m.Ay.hasText(a)||(a="/");let s,i=m.Ay.toAbsolute((0,ut.rM)(a,t.stacProxyUrl),t.url,!1);if(!t.allowSelectCatalog&&t.catalogUrl&&(s=i.relativeTo(t.catalogUrl)),"undefined"===typeof s||e.isExternalUrl(i,!1)){if(!t.allowExternalAccess)return i.toString();let e=["/external"],a=i.protocol();"https"!==a&&e.push(a+":"),e.push(i.authority()),e.push(i.path().replace(/^\//,""));let s=e.join("/"),r=i.query();return r&&(s+=`?${r}`),s}return"/"+s.toString()},fromBrowserPath:(t,e)=>a=>{const s=/^\/(search\/)?external\//;if(m.Ay.hasText(a)&&"/"!==a)if(a.match(s)){let t,e=a.replace(s,"").split("/");t=e[0].endsWith(":")?e.shift():"https:",a=`${t}//${e.join("/")}`}else!t.allowSelectCatalog&&t.catalogUrl&&(a=m.Ay.toAbsolute(a,t.catalogUrl,!1));else a=t.catalogUrl;return e.getRequestUrl(a,null,!0)},isExternalUrl:t=>(e,a=!0)=>{if(!t.catalogUrl)return!1;if(e instanceof C()||(e=C()(e)),a&&Array.isArray(t.allowedDomains)&&t.allowedDomains.includes(e.domain()))return!1;let s;if(e.is("relative"))s=e;else if(s=e.relativeTo(t.catalogUrl),s.equals(e))return!0;let i=s.toString();return i.startsWith("//")||i.startsWith("../")},getRequestUrl:(t,e)=>(a,s=null,i=!1)=>{let r=m.Ay.toAbsolute((0,ut.sd)(a,t.stacProxyUrl),s||t.url,!1);return e.isExternalUrl(r)||((0,ut.mA)(r,t.privateQueryParameters),(0,ut.mA)(r,t.globalRequestQueryParameters),i&&(0,ut.mA)(r,t.localRequestQueryParameters)),r.toString()},acceptedLanguages:t=>{const e={en:.1};return Array.isArray(t.supportedLocales)&&t.supportedLocales.forEach((t=>e[t]=.2)),m.Ay.hasText(t.fallbackLocale)&&(e[t.fallbackLocale]=.5),Array.isArray(navigator.languages)&&navigator.languages.forEach((t=>e[t]=.7)),m.Ay.hasText(t.locale)&&(e[t.locale]=1),Object.entries(e).sort(((t,e)=>t[1]>e[1]?-1:t[1]e>=1?t:`${t};q=${e}`)).join(",")}},mutations:{config(t,e){for(let a in e){let s=e[a];switch(a){case"catalogTitle":t.catalogTitle=s;break;case"catalogUrl":"function"===typeof s?t.catalogUrl=s():"string"===typeof s&&(t.catalogUrl=s);break;case"crossOriginMedia":t.crossOriginMedia=["anonymous","use-credentials"].includes(s)?s:null;break;case"cardViewSort":switch(s){case"asc":t.cardViewSort=1;break;case"desc":t.cardViewSort=-1;break;default:t.cardViewSort=0}break;default:t[a]=s}}},languages(t,{uiLanguage:e,dataLanguage:a}){t.dataLanguage=a||null,t.uiLanguage=e||null},setQueryParameter(t,{type:e,key:a,value:i}){e=`${e}QueryParameters`,"undefined"===typeof i?s.Ay.delete(t[e],a):s.Ay.set(t[e],a,i)},setRequestHeader(t,{key:e,value:a}){"undefined"===typeof a?s.Ay.delete(t.requestHeaders,e):s.Ay.set(t.requestHeaders,e,a)},requestAuth(t,e){"function"===typeof e?t.doAuth.push(e):t.doAuth=[]},setAuthData(t,e){t.authData=e},state(t,e){t.stateQueryParameters=e},updateState(t,{type:e,value:a}){null===a||"undefined"===typeof a?s.Ay.delete(t.stateQueryParameters,e):s.Ay.set(t.stateQueryParameters,e,a)},openCollapsible(t,{type:e,uid:a}){const s=t.stateQueryParameters[e].indexOf(a);-1===s&&t.stateQueryParameters[e].push(a)},closeCollapsible(t,{type:e,uid:a}){const i=t.stateQueryParameters[e].indexOf(a);i>-1&&s.Ay.delete(t.stateQueryParameters[e],i)},updateLoading(t,{url:e,show:a}){let i=t.database[e];s.Ay.set(i,"show",a||i.show)},loading(t,{url:e,loading:a}){s.Ay.set(t.database,e,a),a.show&&(t.url=e)},loaded(t,{url:e,data:a}){s.Ay.set(t.database,e,(0,ut.Pj)(t,a))},clear(t,e){s.Ay.delete(t.database,e)},resetCatalog(e,s){Object.assign(e,i()),Object.assign(e,a()),e.supportedLocales.includes(e.locale)||(e.locale=t.locale),s&&(e.catalogUrl=t.catalogUrl,e.catalogTitle=t.catalogTitle,e.database={})},resetPage(t){Object.assign(t,a())},setPageMetadata(t,{title:e,description:a}){t.title=e,"undefined"!==typeof a&&(t.description=a)},showPage(t,{url:e,title:a,description:s,stac:i}){if(i||(i=t.database[e]||null),t.url=e||null,t.data=i instanceof v.A?i:null,t.description=s,a)t.title=a;else if(t.title=v.A.getDisplayTitle(t.data,t.catalogTitle),t.data){let e=t.data.getMetadata("description");m.Ay.hasText(e)&&(t.description=e)}if(t.data){let e=t.data.isItem()?t.data.properties:t.data,a=Array.isArray(e.languages)?e.languages.slice():[];m.Ay.isObject(e.language)&&a.unshift(e.language),t.dataLanguages=a.filter((t=>m.Ay.isObject(t)&&"string"===typeof t.code))}},errored(t,{url:e,error:a}){a instanceof Error||(a=new Error(a)),s.Ay.set(t.database,e,a)},queue(t,e){t.queue.push(e)},unqueue(t,e){let a=t.queue.indexOf(e);-1!==a&&t.queue.splice(a,1)},removeFromQueue(t,e){t.queue.splice(0,e)},setConformanceClasses(t,e){Array.isArray(e)&&(t.conformsTo=e)},setApiItemsLink(t,e){t.apiItemsLink=e},toggleApiItemsLoading(t,e=""){t.apiItemsLoading[e]?s.Ay.delete(t.apiItemsLoading,e):s.Ay.set(t.apiItemsLoading,e,!0)},setApiItems(t,{data:e,stac:a,show:s}){if(!m.Ay.isObject(e)||!Array.isArray(e.features))return;let i=e.features.map((e=>(0,ut.Pj)(t,e)));s&&(t.apiItems=i);let r=m.Ay.getPaginationLinks(e);s&&(t.apiItemsPagination=r),a instanceof v.A&&a.setApiData(i,r.next,r.prev)},addApiCollections(t,{data:e,stac:a,show:s}){if(!m.Ay.isObject(e)||!Array.isArray(e.collections))return;let i=e.collections.map((e=>(0,ut.Pj)(t,e))),r=m.Ay.getLinkWithRel(e.links,"next");s&&(t.nextCollectionsLink=r,t.apiCollections=t.apiCollections.concat(i)),a instanceof v.A&&a.setApiData(i,r)},resetApiItems(t,e){t.apiItems=[],t.apiItemsLink=e,t.apiItemsPagination={}},parents(t,e){t.parents=e},showGlobalError(t,e){e&&console.trace(e),t.globalError=e}},actions:{async config(t,e){const a=Object.assign({},t.state);t.commit("config",e);for(let s in e){let e=t.state[s];if(e===a[s])switch(s){case"authConfig":await t.dispatch("auth/updateMethod",e);break}}},async switchLocale(t,{locale:e,userSelected:a}){if(await t.dispatch("config",{locale:e}),t.state.storeLocale&&a){const t=new ot.A;t.set("locale",e)}let s=(0,dt.f5)(t.state.supportedLocales,e,t.state.fallbackLocale),i=t.state.dataLanguages.map((t=>t.code)),r=t.state.dataLanguages.length>0?t.state.dataLanguages[0].code:s,n=(0,dt.f5)(i,e,r);await(0,k.fH)(s),pt().setLocales([s,t.state.fallbackLocale]),pt().setTranslator(k._),await(0,k.SM)(s),t.commit("languages",{dataLanguage:n,uiLanguage:s}),t.commit("setQueryParameter",{type:"state",key:"language",value:e})},async loadBackground(t,e){let a=t.state.queue.slice(0,e);if(a.length>0){let s=[];for(let e of a)s.push(t.dispatch("load",{url:e}));return t.commit("removeFromQueue",e),await Promise.all(s)}},async loadParents(t){if(!(t.state.data instanceof v.A))return void t.commit("parents",[]);let e=[],a=t.state.data;while(a){let s=a.getLinkWithRel("parent")||a.getLinkWithRel("root");if(!s)break;let i=m.Ay.toAbsolute(s.href,a.getAbsoluteUrl());await t.dispatch("load",{url:i});let r=t.getters.getStac(i,!0);if(r instanceof Error)return void t.commit("parents",r);if(r===a)break;e.push(r),a=r}t.commit("parents",e)},async tryLogin(t,{url:e,action:a}){t.commit("clear",e),t.commit("errored",{url:e,error:new m.fe(k.Ay.t("authentication.unauthorized"))}),a&&t.commit("auth/addAction",a),await t.dispatch("auth/requestLogin")},async load(t,a){let{url:s,show:i,force:r,noRetry:n}=a;const o=t.getters.toBrowserPath(s);s=m.Ay.toAbsolute(s,t.state.url),await t.dispatch("auth/waitForAuth"),r&&t.commit("clear",s);let l=new ut.Rh(i),c=t.state.database[s];if(c instanceof ut.Rh)return void t.commit("updateLoading",{url:s,show:i});const u=c instanceof v.A&&!c.isPotentiallyIncomplete();if(!u){t.commit("loading",{url:s,loading:l});try{const a=await(0,ut.FF)(t,s);if(!m.Ay.isObject(a.data))throw new m.fe(k.Ay.t("errors.invalidJsonObject"));if(c=new v.A(a.data,s,o),t.commit("loaded",{url:s,data:c}),i){let a=c.getLocaleLink(t.state.dataLanguage);if(a)return void e.replace(t.getters.toBrowserPath(a.href))}let r=c.getStacLinkWithRel("conformance");Array.isArray(c.conformsTo)&&c.conformsTo.length>0?t.commit("setConformanceClasses",c.conformsTo):r&&await t.dispatch("loadOgcApiConformance",r)}catch(d){return!n&&t.state.authConfig&&(0,ut.HD)(d)?void await t.dispatch("tryLogin",{url:s,action:()=>t.dispatch("load",Object.assign({noRetry:!0,force:!0,show:!0},a))}):(console.error(d),void t.commit("errored",{url:s,error:d}))}}if(c.getApiCollectionsLink()){let e={stac:c,show:l.show};try{await t.dispatch("loadNextApiCollections",e)}catch(d){t.commit("showGlobalError",{message:k.Ay.t("errors.loadApiCollectionsFailed"),error:d})}}else if(c.getApiItemsLink()){let e={stac:c,show:l.show};try{await t.dispatch("loadApiItems",e)}catch(d){t.commit("showGlobalError",{message:k.Ay.t("errors.loadApiItemsFailed"),error:d})}}if(!t.getters.root){let e=t.state.catalogUrl;if(!e){const a=c.getLinkWithRel("root");a&&(e=m.Ay.toAbsolute(a.href,s),await t.dispatch("config",{catalogUrl:e}))}e&&await t.dispatch("load",{url:e})}l.show&&t.commit("showPage",{url:s})},async loadApiItems(t,e){let{link:a,stac:s,show:i,filters:r,noRetry:n}=e,o=s instanceof v.A?s.id:"";t.commit("toggleApiItemsLoading",o);try{let e=t.state.url;s instanceof v.A&&(a=s.getApiItemsLink(),e=s.getAbsoluteUrl()),a=m.Ay.addFiltersToLink(a,r,t.state.itemsPerPage);let n=await(0,ut.FF)(t,a);if(m.Ay.isObject(n.data)&&Array.isArray(n.data.features))return n.data.features=n.data.features.map((a=>{try{if(!m.Ay.isObject(a)||"Feature"!==a.type)return null;let i,r=m.Ay.getLinkWithRel(a.links,"self");if(null!==r&&void 0!==r&&r.href)i=m.Ay.toAbsolute(r.href,e);else{if("undefined"===typeof a.id)return null;{var s;let r=null===(s=t.getters.root)||void 0===s?void 0:s.getApiCollectionsLink();if(e)i=m.Ay.toAbsolute(`items/${a.id}`,e);else if(r)i=m.Ay.toAbsolute(`${o}/items/${a.id}`,r.href);else{if(!t.state.catalogUrl)return null;i=m.Ay.toAbsolute(`collections/${o}/items/${a.id}`,t.state.catalogUrl)}}}let n=t.getters.getStac(i);return n||(n=new v.A(a,i,t.getters.toBrowserPath(i)),n.markPotentiallyIncomplete(),t.commit("loaded",{data:n,url:i}),n)}catch(i){return console.error(i),null}})).filter((t=>t instanceof v.A)),i&&t.commit("setApiItemsLink",a),t.commit("setApiItems",{data:n.data,stac:s,show:i}),t.commit("toggleApiItemsLoading",o),n;throw new m.fe(k.Ay.t("errors.invalidStacItems"))}catch(l){if(t.commit("toggleApiItemsLoading",o),!n&&t.state.authConfig&&(0,ut.HD)(l))return void await t.dispatch("tryLogin",{url:a.href,action:()=>t.dispatch("loadApiItems",Object.assign({noRetry:!0,force:!0},e))});throw l}},async loadNextApiCollections(t,e){let a,{stac:s,show:i,noRetry:r}=e;if(s){if(t.state.apiCollections.length>0)return;a=s.getLinkWithRel("data")}else s=t.state.data,a=t.state.nextCollectionsLink;if(a)try{let e=await(0,ut.FF)(t,a);if(!m.Ay.isObject(e.data)||!Array.isArray(e.data.collections))throw new m.fe(k.Ay.t("errors.invalidStacCollections"));e.data.collections=e.data.collections.map((e=>{let a,i=m.Ay.getLinkWithRel(e.links,"self");a=null!==i&&void 0!==i&&i.href?m.Ay.toAbsolute(i.href,t.state.url||s.getAbsoluteUrl()):m.Ay.toAbsolute(`collections/${e.id}`,t.state.catalogUrl||s.getAbsoluteUrl());let r=t.getters.getStac(a);return r||(r=new v.A(e,a,t.getters.toBrowserPath(a)),r.markPotentiallyIncomplete(),t.commit("loaded",{data:r,url:a}),r)})),t.commit("addApiCollections",{data:e.data,stac:s,show:i})}catch(n){if(!r&&t.state.authConfig&&(0,ut.HD)(n))return void await t.dispatch("tryLogin",{url:a.href,action:()=>t.dispatch("loadNextApiCollections",Object.assign({noRetry:!0,force:!0},e))});throw n}},async loadOgcApiConformance(t,e){let a=await(0,ut.FF)(t,e);m.Ay.isObject(a.data)&&Array.isArray(a.data.conformsTo)&&t.commit("setConformanceClasses",a.data.conformsTo)},async loadGeoJson(t,e){try{let a=await(0,ut.FF)(t,e);return a.data}catch(a){return null}},async retryAfterAuth(t){let e=e=>t.commit("showGlobalError",{error:e,message:k.Ay.t("errors.authFailed")});for(let s of t.state.doAuth)try{let t=s();t instanceof Promise&&t.catch(e)}catch(a){e(a)}}}})}var mt=gt,bt=a(78933),yt=a(92999),At=a(12670),vt=a(1169),wt=a(19680),Ct=a(35915),kt=a(56967),_t=a(80262),Lt=a(93444),jt=(a(59313),a(85952)),xt=function(){var t=this,e=t._self._c;return e("b-row",[e("b-col",{attrs:{md:"12"}},[e("Source",{staticClass:"float-right",attrs:{title:t.title,stacUrl:t.url,stac:t.data}}),e("h1",[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.title))])],2),t.isStacChooser()?t._e():e("p",{staticClass:"lead"},[t.containerLink?e("i18n",{staticClass:"in mr-3",attrs:{tag:"span",path:"in"},scopedSlots:t._u([{key:"catalog",fn:function(){return[e("StacLink",{attrs:{data:t.containerLink}})]},proxy:!0}],null,!1,1458487365)}):t._e(),e("b-button-group",[t.back?e("b-button",{attrs:{to:t.selfBrowserLink,title:t.$t("goBack.description",{type:t.type}),variant:"outline-primary",size:"sm"}},[e("b-icon-arrow-left"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goBack.label")))])],1):t._e(),t.parentLink?e("b-button",{attrs:{to:t.toBrowserPath(t.parentLink.href),title:t.parentLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-arrow-90deg-up"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToParent.label")))])],1):t._e(),t.collectionLink?e("b-button",{attrs:{to:t.toBrowserPath(t.collectionLink.href),title:t.collectionLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-folder-symlink"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToCollection.label")))])],1):t._e(),e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.sidebar",modifiers:{sidebar:!0}}],attrs:{variant:"outline-primary",size:"sm",title:t.$t("browse")},on:{click:function(e){return t.$emit("enableSidebar")}}},[e("b-icon-book"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("browse")))])],1),t.canSearch?e("b-button",{attrs:{variant:"outline-primary",size:"sm",to:t.searchBrowserLink,title:t.$t("search.title"),pressed:t.isSearchPage()}},[e("b-icon-search"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("search.title")))])],1):t._e(),t.canAuthenticate?e("b-button",{attrs:{variant:"outline-primary",size:"sm",title:t.authTitle},on:{click:t.logInOut}},[e(t.authIcon,{tag:"component"}),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.authLabel))])],1):t._e()],1)],1)],1)],1)},St=[],Tt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"share mt-1"},[e("b-button-group",[t.showRoot?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-root-btn"}},[e("b-icon-box"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.rootTitle))])],1):t._e(),t.stacUrl?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-link-btn",title:t.$t("source.detailsAboutSource")}},[e("b-icon-link"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.label")))])],1):t._e(),e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-share-btn",title:t.$t("source.share.withOthers")}},[e("b-icon-share"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.share.label")))])],1),e("b-dropdown",{attrs:{size:"sm",variant:"outline-primary",right:"",title:t.$t("source.language.switch")},scopedSlots:t._u([{key:"button-content",fn:function(){return[e("b-icon-flag"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.language.label",{currentLanguage:t.currentLanguage})))])]},proxy:!0}])},t._l(t.languages,(function(a){return e("b-dropdown-item",{key:a.code,staticClass:"lang-item",on:{click:function(e){return t.switchLocale({locale:a.code,userSelected:!0})}}},[t.locale===a.code?e("b-icon-check"):e("b-icon-blank"),e("span",{staticClass:"title"},[e("span",{attrs:{lang:a.code}},[t._v(t._s(a.native))]),a.global&&a.global!==a.native?[t._v(" / "),e("span",{attrs:{lang:"en"}},[t._v(t._s(a.global))])]:t._e()],2),!t.supportsLanguageExt||a.ui&&a.data?t._e():e("b-icon-exclamation-triangle",{staticClass:"ml-2",attrs:{title:a.ui?t.$t("source.language.onlyUI"):t.$t("source.language.onlyData")}})],1)})),1)],1),t.showRoot?e("b-popover",{attrs:{id:"popover-root",target:"popover-root-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.rootTitle}},[e("RootStats")],1):t._e(),t.stacUrl?e("b-popover",{attrs:{id:"popover-link",target:"popover-link-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.$t("source.title")}},[t.stac?[t.stacId?e("b-row",{staticClass:"stac-id"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.id")))]),e("b-col",[e("code",[t._v(t._s(t.stacId))]),e("CopyButton",{staticClass:"ml-2",attrs:{copyText:t.stacId,"button-props":{size:"sm"},variant:"primary"}})],1)],1):t._e(),t.stacVersion?e("b-row",{staticClass:"stac-version"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.stacVersion")))]),e("b-col",[t._v(t._s(t.stacVersion))])],1):t._e(),e("b-row",{staticClass:"stac-valid"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.valid")))]),e("b-col",[e("Validation",{attrs:{data:t.stac}})],1)],1),e("hr")]:t._e(),e("Url",{attrs:{id:"stacUrl",url:t.stacUrl,label:t.$t("source.locatedAt")}})],2):t._e(),e("b-popover",{attrs:{id:"popover-share",target:"popover-share-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.$t("source.share.title")}},[e("Url",{attrs:{id:"browserUrl",url:t.browserUrl(),label:t.$t("source.share.sharePageWithOthers"),open:!1}}),t.enableSocialSharing?[e("hr"),e("SocialSharing",{attrs:{text:t.sharingMessage,title:t.title,url:t.browserUrl()}})]:t._e()],2)],1)},It=[],Ot=a(15378),$t=a(9656),Pt=a(82948),Bt=a(30278),Mt=function(){var t=this,e=t._self._c;return e("b-form-group",{attrs:{label:t.label,"label-for":t.id}},[e("b-input-group",{attrs:{size:"sm"}},[e("b-form-input",{ref:"input",attrs:{id:t.id,value:t.url,readonly:""}}),e("b-input-group-append",[e("CopyButton",{attrs:{copyText:t.url,variant:"primary"}}),t.open?e("b-button",{attrs:{href:t.url,target:"_blank",variant:"primary",title:t.$t("open")}},[e("b-icon-arrow-up-right-square")],1):t._e()],1)],1)],1)},Ft=[],Et=a(69771),Ut=a(19115),Rt=a(89576),qt=a(16167),Dt={name:"Share",components:{BFormGroup:Et.a,BFormInput:Ut.b,BIconArrowUpRightSquare:Pt.xur,BInputGroup:Rt.Y,BInputGroupAppend:qt.G,CopyButton:()=>Promise.resolve().then(a.bind(a,99975))},props:{id:{type:String,required:!0},url:{type:String,required:!0},label:{type:String,required:!0},open:{type:Boolean,default:!0}}},zt=Dt,Ht=(0,E.A)(zt,Mt,Ft,!1,null,"74684ede",null),Nt=Ht.exports,Wt=a(99975),Qt=function(){var t=this,e=t._self._c;return e("section",t._l(t.urls,(function(a,s){return e("b-button",{key:s,staticClass:"service mr-1",class:s,attrs:{href:a,target:"_blank"}},[e("i",{staticClass:"svg",class:s}),t._v(" "+t._s(t.$t(`source.share.${s}`))+" ")])})),1)},Vt=[],Gt={name:"Source",props:{text:{type:String,required:!0},title:{type:String,required:!0},url:{type:String,required:!0}},data(){return{urlTemplates:{email:"mailto:?subject={title}&body={text}",bsky:"https://bsky.app/intent/compose?text={text}",mastodon:"https://mastodon.social/share?text={text}",x:"https://x.com/intent/tweet?text={text}"}}},computed:{...(0,o.aH)(["socialSharing"]),urls(){const t=encodeURIComponent(this.text),e=encodeURIComponent(this.title),a=encodeURIComponent(this.url),s={};for(const i of this.socialSharing){if(!this.urlTemplates[i])continue;const r=this.urlTemplates[i];s[i]=r.replace("{text}",t).replace("{title}",e).replace("{url}",a)}return s}}},Kt=Gt,Jt=(0,E.A)(Kt,Qt,Vt,!1,null,"8e71bab0",null),Xt=Jt.exports;const Yt="https://stac-extensions.github.io/language/v1.*/schema.json";var Zt={name:"Source",components:{BDropdown:Ot.U,BDropdownItem:$t.H,BIconBlank:Pt.ufk,BIconBox:Pt.H$j,BIconCheck:Pt.GSz,BIconExclamationTriangle:Pt.T12,BIconFlag:Pt.c_U,BIconLink:Pt.IfX,BIconShare:Pt.v6r,BPopover:Bt.u,RootStats:()=>a.e(143).then(a.bind(a,40143)),Url:Nt,CopyButton:Wt["default"],SocialSharing:Xt,Validation:()=>Promise.all([a.e(537),a.e(287),a.e(9099)]).then(a.bind(a,49099))},props:{title:{type:String,required:!0},stacUrl:{type:String,default:null},stac:{type:Object,default:null}},computed:{...(0,o.aH)(["conformsTo","dataLanguages","locale","socialSharing","supportedLocales","uiLanguage","valid"]),...(0,o.L8)(["supportsExtension","root"]),stacVersion(){var t;return null===(t=this.stac)||void 0===t?void 0:t.stac_version},stacId(){var t;return null===(t=this.stac)||void 0===t?void 0:t.id},showRoot(){return!!this.root&&(Array.isArray(this.conformsTo)&&this.conformsTo.length>0||m.Ay.isObject(this.root["stats:collections"])||m.Ay.isObject(this.root["stats:catalogs"])||m.Ay.isObject(this.root["stats:items"]))},rootTitle(){return Array.isArray(this.conformsTo)&&this.conformsTo.length>0?this.$t("index.api"):this.$t("index.catalog")},currentLanguage(){let t=this.languages.find((t=>t.code===this.locale));return t?t.native:"-"},enableSocialSharing(){return Array.isArray(this.socialSharing)&&this.socialSharing.length>0},sharingMessage(){const t=window.location.toString();return this.$t("source.share.message",{title:this.title,url:t})},supportsLanguageExt(){return this.supportsExtension(Yt)},languages(){let t=[];for(let a of this.supportedLocales)t.push({code:a,native:this.$t(`languages.${a}.native`),global:this.$t(`languages.${a}.global`),ui:!0});for(let a of this.dataLanguages){if(!m.Ay.isObject(a)||!a.code||this.supportedLocales.includes(a.code))continue;let e={code:a.code};e.native=a.name||a.alternate||a.code,e.global=a.alternate||a.name||a.code,e.data=!0,t.push(e)}if(this.supportsExtension(Yt)){const e=(0,dt.E0)(this.supportedLocales),a=(0,dt.E0)(this.dataLanguages.map((t=>t.code)));for(let s of t)s.ui||(s.ui=Boolean((0,dt.f5)(e,s.code,null))),s.data||(s.data=Boolean((0,dt.f5)(a,s.code,null)))}const e=new Intl.Collator(this.uiLanguage);return t.sort(((t,a)=>e.compare(t.global,a.global)))}},methods:{...(0,o.i0)(["switchLocale"]),browserUrl(){return window.location.toString()}}},te=Zt,ee=(0,E.A)(te,Tt,It,!1,null,"0aa087bf",null),ae=ee.exports,se=a(58581),ie={name:"StacHeader",components:{BIconArrow90degUp:Pt.JK4,BIconArrowLeft:Pt.sV1,BIconBook:Pt.VOl,BIconFolderSymlink:Pt.P_X,BIconSearch:Pt.S8S,BIconLock:Pt.D8r,BIconUnlock:Pt.a_V,StacLink:se["default"],Source:ae},computed:{...(0,o.aH)(["allowSelectCatalog","catalogUrl","data","url","title"]),...(0,o.L8)(["canSearch","root","parentLink","collectionLink","toBrowserPath"]),...(0,o.L8)("auth",{authMethod:"method"}),...(0,o.L8)("auth",["canAuthenticate","isLoggedIn"]),authIcon(){return this.isLoggedIn?"b-icon-unlock":"b-icon-lock"},authTitle(){return this.authMethod.getButtonTitle()},authLabel(){return this.isLoggedIn?this.authMethod.getLogoutLabel():this.authMethod.getLoginLabel()},back(){return"validation"===this.$route.name},selfBrowserLink(){return this.toBrowserPath(this.url)},type(){if(this.data instanceof v.A){if(this.data.isItem())return this.$tc("stacItem");if(this.data.isCollection())return this.$tc("stacCollection");if(this.data.isCatalog())return this.$tc("stacCatalog");if(m.Ay.hasText(this.data.type))return this.data.type}return null},collectionLinkTitle(){return this.collectionLink&&m.Ay.hasText(this.collectionLink.title)?this.$t("goToCollection.descriptionWithTitle",this.collectionLink):this.$t("goToCollection.description")},parentLinkTitle(){return this.parentLink&&m.Ay.hasText(this.parentLink.title)?this.$t("goToParent.descriptionWithTitle",this.parentLink):this.$t("goToParent.description")},icon(){if(this.data instanceof v.A){let t=this.data.getIcons();if(t.length>0)return t[0]}return null},searchBrowserLink(){if(!this.canSearch)return null;let t;return this.data instanceof v.A&&!this.data.equals(this.root)&&(t=this.data.getSearchLink()),t?`/search${this.data.getBrowserPath()}`:this.root&&this.allowSelectCatalog?`/search${this.root.getBrowserPath()}`:"/search"},containerLink(){return this.catalogUrl&&this.url===this.catalogUrl?null:this.root?m.Ay.equalUrl(this.root.getAbsoluteUrl(),this.url)?null:{href:this.root.getAbsoluteUrl(),rel:"root",title:v.A.getDisplayTitle(this.root)}:this.collectionLink||this.parentLink}},methods:{...(0,o.PY)("auth",["addAction"]),...(0,o.i0)("auth",["requestLogin","requestLogout"]),isSearchPage(){return"search"===this.$router.currentRoute.name},isStacChooser(){return"choose"===this.$router.currentRoute.name},async logInOut(){this.url&&this.addAction((()=>this.$store.dispatch("load",{url:this.url,show:!0,force:!0,noRetry:!0}))),this.isLoggedIn?await this.requestLogout():await this.requestLogin()}}},re=ie,ne=(0,E.A)(re,xt,St,!1,null,"5da16391",null),oe=ne.exports,le=function(){var t=this,e=t._self._c;return e(t.authComponent,{tag:"component",on:{submit:t.submit,reset:t.reset}})},ce=[],ue={name:"Authentication",components:{ApiKey:()=>a.e(7197).then(a.bind(a,87197)),Basic:()=>a.e(7820).then(a.bind(a,47820))},computed:{...(0,o.L8)("auth",["method","isLoggedIn"]),authComponent(){return this.method.getComponent()},authComponentProps(){return this.method.getComponentProps()}},beforeCreate(){this.isLoggedIn&&this.$store.dispatch("auth/finalizeLogout")},methods:{async reset(){await this.$store.dispatch("auth/abortLogin")},async submit(t){await this.$store.dispatch("auth/finalizeLogin",t)}}},de=ue,he=(0,E.A)(de,le,ce,!1,null,null,null),pe=he.exports;s.Ay.use(bt.q),s.Ay.use(yt.p),s.Ay.use(At.sG),s.Ay.use(vt.z),s.Ay.use(wt.qc),s.Ay.use(Ct.CG),s.Ay.use(kt.z),s.Ay.directive("b-toggle",_t.z),s.Ay.directive("b-visible",Lt.p),s.Ay.use(n.Ay);const fe=new n.Ay({mode:l.A.historyMode,base:l.A.pathPrefix,routes:st(l.A),scrollBehavior:()=>({x:0,y:0})});s.Ay.use(o.Ay);const ge=mt(l.A,fe);let me={},be={};for(let ke in l.A)me[ke]={default:["object","function"].includes(typeof l.A[ke])?()=>l.A[ke]:l.A[ke]},be[ke]={immediate:!0,handler:async function(t){await this.$store.dispatch("config",{[ke]:t})}};var ye={name:"StacBrowser",router:fe,store:ge,components:{Authentication:pe,ErrorAlert:jt.A,Sidebar:()=>a.e(7957).then(a.bind(a,57957)),StacHeader:oe},props:{...me},data(){return{sidebar:!1,error:null,onDataLoaded:null}},computed:{...(0,o.aH)(["allowSelectCatalog","data","dataLanguage","description","globalError","stateQueryParameters","title","uiLanguage","url"]),...(0,o.aH)({detectLocaleFromBrowserFromVueX:"detectLocaleFromBrowser",supportedLocalesFromVueX:"supportedLocales",storeLocaleFromVueX:"storeLocale"}),...(0,o.L8)(["displayCatalogTitle","fromBrowserPath","isExternalUrl","root","supportsConformance","toBrowserPath"]),...(0,o.L8)("auth",["showLogin"]),browserVersion(){return"3.3.0"}},watch:{...be,title(t){document.title=t,document.getElementById("og-title").setAttribute("content",t)},description(t){const e=m.Ay.summarizeMd(t,200);document.getElementById("meta-description").setAttribute("content",e),document.getElementById("og-description").setAttribute("content",e)},uiLanguage:{immediate:!0,async handler(t){t&&(this.$root.$i18n.locale=t,document.documentElement.setAttribute("lang",t),document.getElementById("og-locale").setAttribute("content",t),this.$root.$emit("uiLanguageChanged",t))}},dataLanguage:{immediate:!0,async handler(t){if(t&&this.data instanceof v.A){let e=this.data.getLocaleLink(t);if(e){let t=Object.assign({},this.stateQueryParameters);this.$router.push(this.toBrowserPath(e.href)),this.$store.commit("state",t)}else if(this.supportsConformance(k.Aj)){let t=this.url;this.$store.commit("resetCatalog",!0),await this.$store.dispatch("load",{url:t,show:!0})}}}},stateQueryParameters:{deep:!0,handler(){let t={};for(const[e,a]of Object.entries(this.$route.query))e.startsWith(".")||(t[e]=a);for(const[e,a]of Object.entries(this.stateQueryParameters)){let s=`.${e}`;Array.isArray(a)?a.length>0&&(t[s]=a.join(",")):null!==a&&(t[s]=a)}this.$router.replace({query:t}).catch((t=>{if(!n.Ay.isNavigationFailure(t,n.Ay.NavigationFailureType.duplicated))throw Error(t)}))}},root(t,e){const a=["apiCatalogPriority","authConfig","cardViewMode","cardViewSort","crossOriginMedia","defaultThumbnailSize","displayGeoTiffByDefault","showThumbnailsAsAssets"];let s=!t||e&&m.Ay.isObject(e["stac_browser"]),i=t&&m.Ay.isObject(t["stac_browser"]);for(let r of a){let e;s&&(e=l.A[r]),i&&"undefined"!==typeof t["stac_browser"][r]&&(e=t["stac_browser"][r]),"undefined"!==typeof e&&this.$store.dispatch("config",{[r]:e}).catch((t=>console.error(t)))}},data(t){this.onDataLoaded&&t instanceof v.A&&this.onDataLoaded()}},async created(){this.$router.onReady((()=>{this.detectLocale(),this.parseQuery(this.$route)})),this.$router.afterEach(((t,e)=>{if(t.path===e.path)return;let a="resetPage";if(this.allowSelectCatalog&&t.path){let e=this.fromBrowserPath(t.path);this.isExternalUrl(e)&&(a="resetCatalog")}this.$store.commit(a),this.parseQuery(t),document.getElementById("og-url").setAttribute("content",window.location.href)}));const t=new ot.A(!0),e=t.get("authConfig");e&&(t.remove("authConfig"),await this.$store.dispatch("config",{authConfig:e}))},mounted(){this.$root.$on("error",this.showError),setInterval((()=>this.$store.dispatch("loadBackground",3)),200)},methods:{...(0,o.i0)(["switchLocale"]),detectLocale(){let t;if(this.storeLocaleFromVueX){const e=new ot.A;t=e.get("locale")}if(!t&&this.detectLocaleFromBrowserFromVueX&&Array.isArray(navigator.languages)){const e=(0,dt.E0)(this.supportedLocalesFromVueX);for(let a of navigator.languages){const s=(0,dt.f5)(e,a,null);if(s){t=s;break}}}t&&this.supportedLocalesFromVueX.includes(t)&&(this.switchLocale({locale:t}),this.data||(this.onDataLoaded=()=>{this.switchLocale({locale:t}),this.onDataLoaded=null}))},parseQuery(t){var e;let a={};if("history"===this.historyMode){let e=C()(t.hash.replace(/^#/,""));a=e.query(!0)}let s=Object.assign({},t.query,a),i={};for(let r in s){let t=s[r];if(r.startsWith("~"))i.private=m.Ay.isObject(i.private)?i.private:{},i.private[r.substr(1)]=t,delete s[r];else if(r.startsWith(".")){let e=r.substr(1);i.state=m.Ay.isObject(i.state)?i.state:{},Array.isArray(this.stateQueryParameters[e])&&!Array.isArray(t)&&(t=t.split(",")),i.state[e]=t}else m.Ay.isObject(i.localRequest)||(i.localRequest={}),i.localRequest[r]=t}if(m.Ay.size(i)>0)for(let r in i)for(let t in i[r])this.$store.commit("setQueryParameter",{type:r,key:t,value:i[r][t]});null!==i&&void 0!==i&&null!==(e=i.state)&&void 0!==e&&e.language&&this.switchLocale({locale:i.state.language}),m.Ay.size(i.private)>0&&this.$router.replace({query:s})},showError(t,e){this.$store.commit("showGlobalError",{error:t,message:e})},hideError(){this.$store.commit("showGlobalError",null)}}},Ae=ye,ve=(0,E.A)(Ae,i,r,!1,null,null,null),we=ve.exports;function Ce(){return(0,k.Qm)().then((()=>new s.Ay({i18n:k.Ay,render:t=>t(we)}).$mount("#stac-browser")))}s.Ay.config.productionTip=!1,Ce()},31831:function(t,e,a){"use strict";a(44114),a(98992),a(54520),a(72577),a(81454);var s=a(2566),i=a(71321),r=a.n(i),n=a(39071);let o=0;class l{constructor(t,e,a,i=!0){this._id=o++,this._url=e,this._path=a,this._apiChildrenListeners={},this._incomplete=!1,this._apiChildren={list:[],prev:!1,next:!1},i&&("FeatureCollection"===t.type?t.features=t.features.map((t=>r().item(t,!1))):t=r().stac(t,!1));for(let s in t)"undefined"===typeof this[s]&&(this[s]=t[s]);if(!s.Ay.hasText(this.type))throw new Error("Not a valid STAC data source (no `type` present)")}isPotentiallyIncomplete(){return this._incomplete}markPotentiallyIncomplete(){this._incomplete=!0}isItem(){return"Feature"===this.type}isCatalog(){return"Catalog"===this.type}isCatalogLike(){return this.isCatalog()||this.isCollection()}isCollection(){return"Collection"===this.type}isItemCollection(){return"FeatureCollection"===this.type}hasApiData(){return this._apiChildren.list.length>0}setApiDataListener(t,e=null){"function"===typeof e?this._apiChildrenListeners[t]=e:delete this._apiChildrenListeners[t]}setApiData(t,e=null,a=null){a&&(this._apiChildren.prev=a),e&&(this._apiChildren.next=e),this._apiChildren.list=t;for(let i in this._apiChildrenListeners)try{this._apiChildrenListeners[i](this._apiChildren)}catch(s){console.error(s)}}getFileFormats(){let t=[];return(this.isItem()||this.isCollection())&&s.Ay.isObject(this.assets)&&(t=t.concat(Object.values(this.assets))),this.isCollection()&&s.Ay.isObject(this.item_assets)&&(t=t.concat(Object.values(this.item_assets))),t.filter((t=>Array.isArray(t.roles)&&t.roles.includes("data")&&"string"===typeof t.type)).map((t=>t.type)).filter(((t,e,a)=>a.indexOf(t)===e))}getChildren(t=null){if(!this.isCatalogLike())return[];let e=!t||"collections"===t,a=!t||"childs"===t,s=[];return e&&this._apiChildren.prev&&s.push(this._apiChildren.prev),e&&this._apiChildren.list.length>0&&(s=this._apiChildren.list.slice(0)),a&&(s=l.addMissingChildren(s,this).concat(this.getLinksWithRels(["item"]))),e&&this._apiChildren.next&&s.push(this._apiChildren.next),s}static addMissingChildren(t,e){let a=e.getStacLinksWithRel("child").filter((a=>{let i=s.Ay.toAbsolute(a.href,e.getAbsoluteUrl());return!t.find((t=>t.getAbsoluteUrl()===i))}));return a.concat(t)}getSearchLink(){let t=s.Ay.getLinksWithRels(this.links,["search"]).filter((t=>s.Ay.isMediaType(t.type,s.oV))).map((t=>Object.assign({},t,{href:s.Ay.toAbsolute(t.href,this._url)}))),e=t.find((t=>s.Ay.hasText(t.method)&&"POST"===t.method.toUpperCase()));return e||t[0]||null}getApiCollectionsLink(){return this.getStacLinkWithRel("data")}getApiItemsLink(){return this.getStacLinkWithRel("items")}getMetadata(t){return this.isItem()?this.properties[t]:this.isCatalogLike()?this[t]:null}getBrowserPath(){return this._path}getAbsoluteUrl(){return this._url}getLocaleLink(t,e=null){let a,i=this.getStacLinksWithRel("alternate").filter((t=>s.Ay.hasText(t.hreflang)));a=Array.isArray(this.languages)?this.languages.map((t=>t.code)):i.map((t=>t.hreflang));let r=(0,n.f5)(a,t,e);return i.find((t=>t.hreflang===r))||null}getStacLinksWithRel(t,e=!0){return s.Ay.getLinksWithRels(this.links,[t]).filter((t=>s.Ay.isStacMediaType(t.type,e)))}getStacLinkWithRel(t,e=!0){const a=this.getStacLinksWithRel(t,e);return a.length>0?a[0]:null}getLinkWithRel(t){return s.Ay.getLinkWithRel(this.links,t)}getLinksWithRels(t){return s.Ay.getLinksWithRels(this.links,t)}getLinksWithOtherRels(t){return s.Ay.getLinksWithOtherRels(this.links,t)}getAssetsWithRoles(t){let e=[];if(s.Ay.isObject(this.assets))for(let a in this.assets){let i=this.assets[a];s.Ay.isObject(i)&&"string"===typeof i.href&&Array.isArray(i.roles)&&i.roles.find((e=>t.includes(e)))&&e.push(i)}return e}static getDisplayTitle(t,e=null){Array.isArray(t)||(t=[t]);let a=t.find((t=>t instanceof l)),i=t.find((t=>s.Ay.isObject(t)&&!(t instanceof l)));return a&&s.Ay.hasText(a.getTitle())?a.getTitle():i&&s.Ay.hasText(i.title)?i.title:a&&s.Ay.hasText(a.id)?a.id:s.Ay.hasText(e)?e:a?s.Ay.titleForHref(a.getAbsoluteUrl(),!0):i&&s.Ay.hasText(i.href)?s.Ay.titleForHref(i.href,!0):"Untitled"}getTitle(){return this.getMetadata("title")}_linkToAbsolute(t){return Object.assign({},t,{href:s.Ay.toAbsolute(t.href,this.getAbsoluteUrl())})}getIcons(){return this.getLinksWithRels(["icon"]).filter((t=>s.Ay.canBrowserDisplayImage(t))).map((t=>this._linkToAbsolute(t)))}getThumbnails(t=!1,e=null){let a=this.getAssetsWithRoles(["thumbnail","overview"]);if(0===a.length&&(a=this.getLinksWithRels(["preview"])),0===a.length&&s.Ay.isObject(this.assets)&&s.Ay.isObject(this.assets.thumbnail)&&(a=[this.assets.thumbnail]),t&&(a=a.filter((t=>s.Ay.canBrowserDisplayImage(t)))),e&&a.length>1){let t=t=>t.roles.includes(e);a=a.filter(t).concat(a.filter((e=>!t(e))))}return a.map((t=>this._linkToAbsolute(t)))}equals(t){return!!s.Ay.isObject(t)&&(this===t||this.id===t.id&&this.type==t.type)}}e.A=l},59203:function(t,e,a){"use strict";a.d(e,{Bv:function(){return n},Eg:function(){return i},ZQ:function(){return r},dL:function(){return l},ol:function(){return o}});const s=["child","collection","item","parent","root","self"],i=["first","last","next","prev","previous"],r=["queryables","http://www.opengis.net/def/rel/ogc/1.0/queryables","ogc-rel:queryables"],n=["canonical","related","derived_from","latest-version","predecessor-version","successor-version","source","alternate"].concat(s).concat(i),o=["conformance","data","items","search","icon","license"].concat(s).concat(i).concat(r),l="http://www.opengis.net/def/rel/ogc/1.0/"},33484:function(t,e,a){"use strict";a.d(e,{FF:function(){return c},HD:function(){return p},Pj:function(){return h},Rh:function(){return o},lx:function(){return l},mA:function(){return f},rM:function(){return u},sd:function(){return d}});var s=a(94335),i=a(84193),r=a.n(i),n=a(2566);class o{constructor(t=!1){this.show=Boolean(t)}}function l(t,e){if("string"===typeof e&&(e={href:e}),!n.Ay.isObject(e)||"string"!==typeof e.href)return{};const a=t.getters.getRequestUrl(e.href);let s={"Accept-Language":t.getters.acceptedLanguages};return n.Ay.hasText(e.type)&&(s.Accept=e.type),t.getters.isExternalUrl(a)||Object.assign(s,t.state.requestHeaders),n.Ay.isObject(e.headers)&&Object.assign(s,e.headers),{method:"string"===typeof e.method?e.method.toLowerCase():"get",url:a,headers:s,data:e.body}}async function c(t,e,a={}){const i=l(t,e);return await(0,s.A)(Object.assign(i,a))}function u(t,e){return t instanceof r()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[1],e[0]):t}function d(t,e){return t instanceof r()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[0],e[1]):t}function h(t,e){return"function"===typeof t.preprocessSTAC&&(e=t.preprocessSTAC(e,t)),Object.freeze(e)}function p(t){var e;return[401,403].includes(null===t||void 0===t||null===(e=t.response)||void 0===e?void 0:e.status)}function f(t,e){if(0==n.Ay.size(e))return t;for(let a in e)t.hasQuery(a)||t.addQuery(a,e[a]);return t}},2566:function(t,e,a){"use strict";a.d(e,{Ay:function(){return A},C8:function(){return b},I5:function(){return g},Yq:function(){return u},df:function(){return m},fe:function(){return y},oV:function(){return c}});a(98992),a(54520),a(72577),a(81454);var s=a(84193),i=a.n(s),r=a(58481),n=a.n(r),o=a(59203);const l=["catalog","collection","item"],c="application/geo+json",u="application/schema+json",d=["application/json",c,"text/json"],h=["image/gif","image/jpg","image/jpeg","image/apng","image/png","image/webp"],p=["image/tiff; application=geotiff; profile=cloud-optimized","image/vnd.stac.geotiff; cloud-optimized=true"],f=["application/geotiff","image/tiff; application=geotiff","image/vnd.stac.geotiff"].concat(p),g=["http","https"],m=h.concat(f),b=m.concat([c]);class y extends Error{constructor(t){super(t)}}class A{static isObject(t){return"object"===typeof t&&t===Object(t)&&!Array.isArray(t)}static size(t){return"object"===typeof t&&null!==t?Array.isArray(t)?t.length:Object.keys(t).length:0}static isStacMediaType(t,e=!1){return A.isMediaType(t,d,e)}static isMediaType(t,e,a=!1){return Array.isArray(e)||(e=[e]),!(!a||t)||"string"===typeof t&&e.includes(t.toLowerCase())}static hasText(t){return"string"===typeof t&&t.length>0}static shortenTitle(t,e,a="…"){if(t.length<=e)return t;let s=a.length,i=e-s,r=Math.ceil(i/2),n=Math.floor(i/2);return t.substr(0,r)+a+t.substr(t.length-n)}static isGdalVfsUri(t){return"string"===typeof t&&t.startsWith("/vsi")&&!t.startsWith("/vsicurl/")}static toAbsolute(t,e,a=!0){return A.normalizeUri(t,e,!1,a)}static normalizeUri(t,e=null,a=!1,s=!0){"string"===typeof t&&t.startsWith("/vsicurl/")&&(t=t.replace(/^\/vsicurl\//,""));let r=i()(t);return e&&r.is("relative")&&!A.isGdalVfsUri(t)&&(r=r.absoluteTo(e)),r.normalize(),a&&(r.query(""),r.fragment("")),s?r.toString():r}static getLinkWithRel(t,e){return Array.isArray(t)?t.find((t=>A.isObject(t)&&A.hasText(t.href)&&t.rel===e)):null}static getLinksWithRels(t,e){return Array.isArray(t)?t.filter((t=>A.isObject(t)&&A.hasText(t.href)&&e.includes(t.rel))):[]}static getLinksWithOtherRels(t,e){return Array.isArray(t)?t.filter((t=>A.isObject(t)&&A.hasText(t.href)&&!e.includes(t.rel))):[]}static removeTrailingSlash(t){return t.replace(/\/$/,"")}static equalUrl(t,e){try{let a=i()(t),s=i()(e);return a.path(A.removeTrailingSlash(a.path())),s.path(A.removeTrailingSlash(s.path())),a.equals(s)}catch(a){return!1}}static summarizeMd(t,e=null){return A.hasText(t)?(t=n()(t).replaceAll(/[\r\n]+/g," "),e>0&&t.length>e&&(t=t.substr(0,e)+"…"),t):""}static scrollTo(t){if(t){var e=t.getBoundingClientRect(),a=e.top=0;a||t.scrollIntoView({behavior:"smooth",block:"start"})}}static dateFromUTC(t){if(t){const e=new Date(t);t=new Date(e.getTime()+60*e.getTimezoneOffset()*1e3)}return t}static dateToUTC(t){return t instanceof Date&&(t=new Date(t.getTime()-60*t.getTimezoneOffset()*1e3)),t}static formatDatetimeQuery(t){return t.map((t=>t instanceof Date?t.toISOString():t||"..")).join("/")}static formatSortbyForPOST(t){const e={field:"",direction:"asc"};return t.startsWith("-")?(e.field=t.substring(1),e.direction="desc"):e.field=t,[e]}static getPaginationLinks(t){let e={};if(A.isObject(t)){let a=A.getLinksWithRels(t.links,o.Eg);for(let t of a){let a="previous"===t.rel?"prev":t.rel;e[a]=t}}return e}static addFiltersToLink(t,e={},a=null){let s=t=>null===t||"number"===typeof t&&!Number.isFinite(t)||"string"===typeof t&&0===t.length||"object"===typeof t&&0===A.size(t);if(e=A.isObject(e)?Object.assign({},e):{},"number"!==typeof e.limit&&"number"===typeof a&&(e.limit=a),A.hasText(t.method)&&"POST"===t.method.toUpperCase()){let a=Object.assign({},t.body);for(let t in e){let i=e[t];if(s(i))delete a[t];else{if("sortby"===t)i=A.formatSortbyForPOST(i);else if("datetime"===t)i=A.formatDatetimeQuery(i);else if("filters"===t){Object.assign(a,i.toJSON());continue}a[t]=i}}return Object.assign({},t,{body:a})}{let a=i()(t.href);for(let t in e){let i=e[t];if(s(i))a.removeQuery(t);else{if("datetime"===t)i=A.formatDatetimeQuery(i);else if("bbox"===t)i=i.join(",");else if("collections"===t||"ids"===t||"q"===t)i=i.join(",");else if("filters"===t){let t=i.toText();a.setQuery(t);continue}a.setQuery(t,i)}}return Object.assign({},t,{href:a.toString()})}}static titleForHref(t,e=!1){let a=i()(t),s=a.authority(),r=a.filename().replace(/^(.{1,})\.\w+$/,"$1"),n=a.directory().replace(/^\//,"");if(s&&r&&!e){let t=a.path().replace(/^\//,"");return"doi.org"===s&&t.startsWith("10.")?`DOI ${t}`:`${r} (${s})`}return r&&!l.includes(r)?r:s||(n||t)}static canBrowserDisplayImage(t){if("string"!==typeof t.href)return!1;let e=i()(t.href),a=e.protocol().toLowerCase();return!(a&&!g.includes(a))&&(!!h.includes(t.type)||(!!h.includes("image/"+e.suffix().toLowerCase())||!t.type))}static getValueFromObjectUsingPath(t,e){if(null!==t&&"object"===typeof t)return t=t[e[0]],"undefined"!==typeof t&&e.length>1?this.getValueFromObjectUsingPath(t,e.slice(1)):t}static search(t,e,a=!0){if("string"!==typeof t||0===t.length)return!1;if(A.isObject(e)?e=Object.values(e):"string"===typeof e&&(e=[e]),!Array.isArray(e))return!1;let s=/[\s.,;!&({[)}]]+/g;t=t.toLowerCase().split(s),e=e.filter((t=>"string"===typeof t)).join(" ").replace(s," ").toLowerCase();let i=a?"every":"some";return t[i]((t=>e.includes(t)))}static createLink(t,e){return{href:t,rel:e}}static supportsExtension(t,e){if(!A.isObject(t)||!Array.isArray(t["stac_extensions"]))return!1;let a=new RegExp("^"+e.replaceAll("*","[^/]+")+"$");return Boolean(t["stac_extensions"].find((t=>a.test(t))))}static mergeDeep(t,...e){if(!e.length)return t;const a=e.shift();if(A.isObject(t)&&A.isObject(a))for(const s in a)A.isObject(a[s])?(t[s]||Object.assign(t,{[s]:{}}),A.mergeDeep(t[s],a[s])):Object.assign(t,{[s]:a[s]});return A.mergeDeep(t,...e)}}},79873:function(t,e,a){"use strict";a(98992),a(23215),a(54520);var s=a(85952),i=a(39773),r=a(2566),n=a(84193),o=a.n(n),l=a(95353);e.A={components:{ErrorAlert:s.A,Loading:i.A},props:{path:{type:String,required:!0}},computed:{...(0,l.aH)(["allowExternalAccess","catalogUrl","url","redirectLegacyUrls"]),...(0,l.L8)(["fromBrowserPath","error","loading"]),errorId(){if(this.error instanceof Error&&this.error.isAxiosError&&r.Ay.isObject(this.error.response)){let t=this.error.response;return r.Ay.isObject(t.data)&&t.data.code?t.data.code:t.status}return null},errorDescription(){if(this.error instanceof Error&&this.error.isAxiosError&&r.Ay.isObject(this.error.response)){let t=this.error.response;if(r.Ay.isObject(t.data)&&"string"===typeof t.data.description)return t.data.description;if(401===t.status)return this.$t("errors.unauthorized");if(403===t.status)return this.$t("errors.forbidden");if(404===t.status)return this.$t("errors.notFound");if(t.status>500)return this.$t("errors.serverError");if(t.status>400)return this.$t("errors.badRequest")}else if(this.error instanceof r.fe)return this.error.message;return this.$t("errors.networkError")},isExternal(){return o()(this.path).is("absolute")}},watch:{path:{immediate:!0,async handler(t,e){if(t===e)return;if(!this.allowExternalAccess&&this.isExternal)return;if(this.redirectLegacyUrls&&await this.redirectLegacyUrl(t))return;let a=this.fromBrowserPath(t||"/");this.$store.dispatch("load",{url:a,show:!0})}}},methods:{async redirectLegacyUrl(t){if(!t||"/"===t)return!1;let e=t.split("/").filter((t=>t.length>0&&"item"!==t&&"collection"!==t));if(e.length>0&&e.every((t=>t.match(/^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]+$/)))){const{decode:t}=await a.e(6763).then(a.t.bind(a,16763,23));let s=t(e[e.length-1]).toString();if(s){let t=o()(s);return this.$router.replace({path:"/"+t.path().replace(/(collections|items)\/?$/,""),query:t.query(!0)}),!0}}return!1}}}},93731:function(t,e,a){var s={"./de-CH/config":[79933,3],"./de-CH/config.json":[79933,3],"./de-CH/datepicker":[40895,9,895],"./de-CH/datepicker.js":[40895,9,895],"./de-CH/default":[968,9,4490,968],"./de-CH/default.js":[968,9,4490,968],"./de-CH/duration":[49637,9,9710,9637],"./de-CH/duration.js":[49637,9,9710,9637],"./de-CH/validation":[75270,9,5270],"./de-CH/validation.js":[75270,9,5270],"./de/config":[28417,3],"./de/config.json":[28417,3],"./de/custom":[45692,3,5692],"./de/custom.json":[45692,3,5692],"./de/datepicker":[74801,9,4801],"./de/datepicker.js":[74801,9,4801],"./de/default":[62862,9,4490,2862],"./de/default.js":[62862,9,4490,2862],"./de/duration":[54511,9,9710,4511],"./de/duration.js":[54511,9,9710,4511],"./de/fields":[14490,3,4490],"./de/fields.json":[14490,3,4490],"./de/texts":[99581,3,9581],"./de/texts.json":[99581,3,9581],"./de/validation":[62816,9,2816],"./de/validation.js":[62816,9,2816],"./en-GB/config":[23667,3],"./en-GB/config.json":[23667,3],"./en-GB/custom":[78798,3,8798],"./en-GB/custom.json":[78798,3,8798],"./en-GB/datepicker":[22605,9,2605],"./en-GB/datepicker.js":[22605,9,2605],"./en-GB/default":[63170,9,3170],"./en-GB/default.js":[63170,9,3170],"./en-GB/duration":[47843,9,9710,7843],"./en-GB/duration.js":[47843,9,9710,7843],"./en-GB/fields":[87400,3,7400],"./en-GB/fields.json":[87400,3,7400],"./en-GB/texts":[62963,3,2963],"./en-GB/texts.json":[62963,3,2963],"./en-GB/validation":[6492,9,6492],"./en-GB/validation.js":[6492,9,6492],"./en-US/config":[92444,3],"./en-US/config.json":[92444,3],"./en-US/datepicker":[95558,9,5558],"./en-US/datepicker.js":[95558,9,5558],"./en-US/default":[15691,9,5691],"./en-US/default.js":[15691,9,5691],"./en-US/duration":[49684,9,9710,9684],"./en-US/duration.js":[49684,9,9710,9684],"./en-US/validation":[3155,9,3155],"./en-US/validation.js":[3155,9,3155],"./en/config":[11401,3],"./en/config.json":[11401,3],"./en/custom":[85300,3,5300],"./en/custom.json":[85300,3,5300],"./en/datepicker":[71865,9,1865],"./en/datepicker.js":[71865,9,1865],"./en/default":[56886,9,6886],"./en/default.js":[56886,9,6886],"./en/duration":[86855,9,9710,6855],"./en/duration.js":[86855,9,9710,6855],"./en/fields":[87090,3,7090],"./en/fields.json":[87090,3,7090],"./en/stac-fields":[98236,9,8236],"./en/stac-fields.js":[98236,9,8236],"./en/texts":[33301,3,3301],"./en/texts.json":[33301,3,3301],"./en/validation":[98552,9,8552],"./en/validation.js":[98552,9,8552],"./es/config":[17212,3],"./es/config.json":[17212,3],"./es/custom":[14581,3,4581],"./es/custom.json":[14581,3,4581],"./es/datepicker":[54312,9,4312],"./es/datepicker.js":[54312,9,4312],"./es/default":[89113,9,9113],"./es/default.js":[89113,9,9113],"./es/duration":[46046,9,9710,6046],"./es/duration.js":[46046,9,9710,6046],"./es/fields":[11295,3,1295],"./es/fields.json":[11295,3,1295],"./es/texts":[90674,3,674],"./es/texts.json":[90674,3,674],"./es/validation":[35893,9,5893],"./es/validation.js":[35893,9,5893],"./fr-CA/config":[20995,3],"./fr-CA/config.json":[20995,3],"./fr-CA/datepicker":[6997,9,6997],"./fr-CA/datepicker.js":[6997,9,6997],"./fr-CA/default":[71082,9,5767,1082],"./fr-CA/default.js":[71082,9,5767,1082],"./fr-CA/duration":[27003,9,9710,7003],"./fr-CA/duration.js":[27003,9,9710,7003],"./fr-CA/validation":[38228,9,8228],"./fr-CA/validation.js":[38228,9,8228],"./fr-CH/config":[1738,3],"./fr-CH/config.json":[1738,3],"./fr-CH/datepicker":[81456,9,1456],"./fr-CH/datepicker.js":[81456,9,1456],"./fr-CH/default":[44545,9,5767,4545],"./fr-CH/default.js":[44545,9,5767,4545],"./fr-CH/duration":[67286,9,9710,7286],"./fr-CH/duration.js":[67286,9,9710,7286],"./fr-CH/validation":[82605,9,4986],"./fr-CH/validation.js":[82605,9,4986],"./fr/config":[37748,3],"./fr/config.json":[37748,3],"./fr/custom":[75197,3,5197],"./fr/custom.json":[75197,3,5197],"./fr/datepicker":[37036,9,7036],"./fr/datepicker.js":[37036,9,7036],"./fr/default":[1589,9,5767,1589],"./fr/default.js":[1589,9,5767,1589],"./fr/duration":[93658,9,9710,3658],"./fr/duration.js":[93658,9,9710,3658],"./fr/fields":[48148,3,5767],"./fr/fields.json":[48148,3,5767],"./fr/texts":[23418,3,3418],"./fr/texts.json":[23418,3,3418],"./fr/validation":[33129,9,3129],"./fr/validation.js":[33129,9,3129],"./it-CH/config":[16835,3],"./it-CH/config.json":[16835,3],"./it-CH/datepicker":[75862,9,3481],"./it-CH/datepicker.js":[75862,9,3481],"./it-CH/default":[77638,9,9476,7638],"./it-CH/default.js":[77638,9,9476,7638],"./it-CH/duration":[44567,9,9710,4567],"./it-CH/duration.js":[44567,9,9710,4567],"./it-CH/validation":[63048,9,3048],"./it-CH/validation.js":[63048,9,3048],"./it/config":[37295,3],"./it/config.json":[37295,3],"./it/custom":[5290,3,5290],"./it/custom.json":[5290,3,5290],"./it/datepicker":[36147,9,6147],"./it/datepicker.js":[36147,9,6147],"./it/default":[23108,9,9476,3108],"./it/default.js":[23108,9,9476,3108],"./it/duration":[67905,9,9710,7905],"./it/duration.js":[67905,9,9710,7905],"./it/fields":[39476,3,9476],"./it/fields.json":[39476,3,9476],"./it/texts":[27519,3,7519],"./it/texts.json":[27519,3,7519],"./it/validation":[66346,9,6346],"./it/validation.js":[66346,9,6346],"./ja/config":[15203,3],"./ja/config.json":[15203,3],"./ja/custom":[79870,3,9870],"./ja/custom.json":[79870,3,9870],"./ja/datepicker":[70675,9,675],"./ja/datepicker.js":[70675,9,675],"./ja/default":[4964,9,4964],"./ja/default.js":[4964,9,4964],"./ja/duration":[87905,9,9710,2667],"./ja/duration.js":[87905,9,9710,2667],"./ja/fields":[68376,3,8376],"./ja/fields.json":[68376,3,8376],"./ja/texts":[30883,3,883],"./ja/texts.json":[30883,3,883],"./ja/validation":[14826,9,4826],"./ja/validation.js":[14826,9,4826],"./pt-BR/config":[87503,3],"./pt-BR/config.json":[87503,3],"./pt-BR/custom":[54794,3,4794],"./pt-BR/custom.json":[54794,3,4794],"./pt-BR/datepicker":[20105,9,105],"./pt-BR/datepicker.js":[20105,9,105],"./pt-BR/default":[92294,9,2294],"./pt-BR/default.js":[92294,9,2294],"./pt-BR/duration":[44631,9,9710,4631],"./pt-BR/duration.js":[44631,9,9710,4631],"./pt-BR/fields":[1524,3,1524],"./pt-BR/fields.json":[1524,3,1524],"./pt-BR/texts":[69311,3,9311],"./pt-BR/texts.json":[69311,3,9311],"./pt-BR/validation":[70536,9,536],"./pt-BR/validation.js":[70536,9,536],"./pt/config":[22356,3],"./pt/config.json":[22356,3],"./pt/custom":[2653,3,2653],"./pt/custom.json":[2653,3,2653],"./pt/datepicker":[59856,9,9856],"./pt/datepicker.js":[59856,9,9856],"./pt/default":[56513,9,6513],"./pt/default.js":[56513,9,6513],"./pt/duration":[32438,9,9710,2438],"./pt/duration.js":[32438,9,9710,2438],"./pt/fields":[44455,3,4455],"./pt/fields.json":[44455,3,4455],"./pt/texts":[29946,3,9946],"./pt/texts.json":[29946,3,9946],"./pt/validation":[12685,9,2685],"./pt/validation.js":[12685,9,2685],"./ro/config":[99069,3],"./ro/config.json":[99069,3],"./ro/custom":[5160,3,5160],"./ro/custom.json":[5160,3,5160],"./ro/datepicker":[2929,9,2929],"./ro/datepicker.js":[2929,9,2929],"./ro/default":[63022,9,3022],"./ro/default.js":[63022,9,3022],"./ro/duration":[65583,9,9710,5583],"./ro/duration.js":[65583,9,9710,5583],"./ro/fields":[14758,3,4758],"./ro/fields.json":[14758,3,4758],"./ro/texts":[55577,3,5577],"./ro/texts.json":[55577,3,5577],"./ro/validation":[90944,9,944],"./ro/validation.js":[90944,9,944]};function i(t){if(!a.o(s,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=s[t],i=e[0];return Promise.all(e.slice(2).map(a.e)).then((function(){return a.t(i,16|e[1])}))}i.keys=function(){return Object.keys(s)},i.id=93731,t.exports=i},33545:function(t,e,a){var s={"./de-CH/default.js":[968,4490,968],"./de/default.js":[62862,4490,2862],"./en-GB/default.js":[63170,3170],"./en-US/default.js":[15691,5691],"./en/default.js":[56886,6886],"./es/default.js":[89113,9113],"./fr-CA/default.js":[71082,5767,1082],"./fr-CH/default.js":[44545,5767,4545],"./fr/default.js":[1589,5767,1589],"./it-CH/default.js":[77638,9476,7638],"./it/default.js":[23108,9476,3108],"./ja/default.js":[4964,4964],"./pt-BR/default.js":[92294,2294],"./pt/default.js":[56513,6513],"./ro/default.js":[63022,3022]};function i(t){if(!a.o(s,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=s[t],i=e[0];return Promise.all(e.slice(1).map(a.e)).then((function(){return a(i)}))}i.keys=function(){return Object.keys(s)},i.id=33545,t.exports=i},97991:function(t,e,a){var s={"./de-CH/config.json":79933,"./de/config.json":28417,"./en-GB/config.json":23667,"./en-US/config.json":92444,"./en/config.json":11401,"./es/config.json":17212,"./fr-CA/config.json":20995,"./fr-CH/config.json":1738,"./fr/config.json":37748,"./it-CH/config.json":16835,"./it/config.json":37295,"./ja/config.json":15203,"./pt-BR/config.json":87503,"./pt/config.json":22356,"./ro/config.json":99069};function i(t){var e=r(t);return a(e)}function r(t){if(!a.o(s,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return s[t]}i.keys=function(){return Object.keys(s)},i.resolve=r,t.exports=i,i.id=97991},79933:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch (Schweiz)","global":"German (Switzerland)"}')},28417:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch","global":"German"}')},23667:function(t){"use strict";t.exports=JSON.parse('{"native":"English (UK)","global":"English (UK)"}')},92444:function(t){"use strict";t.exports=JSON.parse('{"native":"English (US)","global":"English (US)"}')},11401:function(t){"use strict";t.exports=JSON.parse('{"native":"English","global":"English","customize":["stac-fields.js"]}')},17212:function(t){"use strict";t.exports=JSON.parse('{"native":"Español","global":"Spanish"}')},20995:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Canada)","global":"French (Canada)"}')},1738:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Suisse)","global":"French (Switzerland)"}')},37748:function(t){"use strict";t.exports=JSON.parse('{"native":"Français","global":"French"}')},16835:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano (Svizzera)","global":"Italian (Switzerland)"}')},37295:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano","global":"Italian"}')},15203:function(t){"use strict";t.exports=JSON.parse('{"native":"日本語","global":"Japanese"}')},87503:function(t){"use strict";t.exports=JSON.parse('{"native":"Português (Brasil)","global":"Portuguese (Brazil)"}')},22356:function(t){"use strict";t.exports=JSON.parse('{"native":"Português","global":"Portuguese"}')},99069:function(t){"use strict";t.exports=JSON.parse('{"native":"Română","global":"Romanian"}')}},e={};function a(s){var i=e[s];if(void 0!==i)return i.exports;var r=e[s]={id:s,loaded:!1,exports:{}};return t[s].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=t,function(){var t="function"===typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",e="function"===typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",s="function"===typeof Symbol?Symbol("webpack error"):"__webpack_error__",i=function(t){t&&t.d<1&&(t.d=1,t.forEach((function(t){t.r--})),t.forEach((function(t){t.r--?t.r++:t()})))},r=function(a){return a.map((function(a){if(null!==a&&"object"===typeof a){if(a[t])return a;if(a.then){var r=[];r.d=0,a.then((function(t){n[e]=t,i(r)}),(function(t){n[s]=t,i(r)}));var n={};return n[t]=function(t){t(r)},n}}var o={};return o[t]=function(){},o[e]=a,o}))};a.a=function(a,n,o){var l;o&&((l=[]).d=-1);var c,u,d,h=new Set,p=a.exports,f=new Promise((function(t,e){d=e,u=t}));f[e]=p,f[t]=function(t){l&&t(l),h.forEach(t),f["catch"]((function(){}))},a.exports=f,n((function(a){var i;c=r(a);var n=function(){return c.map((function(t){if(t[s])throw t[s];return t[e]}))},o=new Promise((function(e){i=function(){e(n)},i.r=0;var a=function(t){t!==l&&!h.has(t)&&(h.add(t),t&&!t.d&&(i.r++,t.push(i)))};c.map((function(e){e[t](a)}))}));return i.r?o:n()}),(function(t){t?d(f[s]=t):u(p),i(l)})),l&&l.d<0&&(l.d=0)}}(),function(){var t=[];a.O=function(e,s,i,r){if(!s){var n=1/0;for(u=0;u=r)&&Object.keys(a.O).every((function(t){return a.O[t](s[l])}))?s.splice(l--,1):(o=!1,r0&&t[u-1][2]>r;u--)t[u]=t[u-1];t[u]=[s,i,r]}}(),function(){a.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return a.d(e,{a:e}),e}}(),function(){var t,e=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__};a.t=function(s,i){if(1&i&&(s=this(s)),8&i)return s;if("object"===typeof s&&s){if(4&i&&s.__esModule)return s;if(16&i&&"function"===typeof s.then)return s}var r=Object.create(null);a.r(r);var n={};t=t||[null,e({}),e([]),e(e)];for(var o=2&i&&s;"object"==typeof o&&!~t.indexOf(o);o=e(o))Object.getOwnPropertyNames(o).forEach((function(t){n[t]=function(){return s[t]}}));return n["default"]=function(){return s},a.d(r,n),r}}(),function(){a.d=function(t,e){for(var s in e)a.o(e,s)&&!a.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})}}(),function(){a.f={},a.e=function(t){return Promise.all(Object.keys(a.f).reduce((function(e,s){return a.f[s](t,e),e}),[]))}}(),function(){a.u=function(t){return"js/"+t+"."+{57:"41f5038f",105:"11f3ef3f",143:"8a3d2c9a",224:"4fba229c",259:"c47d895a",286:"63cf0a30",287:"fa584da8",401:"2c4f1f50",536:"394026a4",537:"16fe35b9",572:"2c70a609",635:"8dfb32bc",674:"cd3424a3",675:"6343e128",771:"c1d908d6",883:"022b6cfd",895:"61df85f7",944:"93c5eccd",967:"2187a41c",968:"63b0be5d",1082:"9524bfb4",1277:"30f7efae",1295:"75b0120e",1456:"c7df2c55",1524:"ed9cc7de",1589:"5695c617",1802:"1b2a76e1",1865:"236dede4",1935:"7e3ae466",2018:"d8337473",2294:"8e59dd49",2438:"9d08758b",2568:"229e5dd0",2605:"61657992",2653:"ead5227f",2667:"e2075e28",2685:"ae149e1e",2816:"fadc65e3",2862:"9f715c09",2929:"8f5863d5",2963:"588da4a4",2986:"b845ef0e",3022:"bfbf5e76",3048:"037427d0",3108:"342c1bac",3129:"5ea9e162",3147:"234d0b46",3155:"9a5e35a5",3170:"24cdcd45",3301:"9629eab8",3418:"791d39ac",3481:"b68e7796",3545:"9312a5b8",3621:"c03d14b0",3627:"c74dd113",3658:"005b6342",3665:"60e41131",4052:"4207ba02",4312:"1dfee9ef",4455:"7ec12bc9",4490:"2d1bfd9d",4511:"ffe2e0e6",4527:"0577cbe4",4545:"0e0c6c60",4567:"9c165ed1",4581:"09d75b82",4631:"185ad2fe",4648:"27991b24",4748:"4d28f3f9",4758:"7bd6ca2d",4794:"cbe91ede",4801:"3798c5b3",4826:"9ec0fb3b",4870:"dd62072e",4905:"fa8f82fd",4964:"c30511c6",4986:"fb82306e",5048:"4de90b52",5160:"5049d33b",5197:"1c0284fb",5262:"894c88c3",5270:"a61c79e3",5290:"4e66b59f",5300:"5a758b2d",5500:"68abc7ee",5528:"f4b345f1",5558:"92284de2",5577:"88da2b76",5583:"4ad93d3c",5691:"b4332e7d",5692:"53888e89",5767:"dcd3e8f6",5833:"4f6613e9",5876:"53412eac",5893:"1f30f06a",6046:"7234cf3f",6147:"c1651835",6171:"36d9697a",6247:"0d27f607",6340:"5204c7f2",6346:"ac9f2233",6492:"2b9980a8",6513:"40146f96",6750:"4dcdb154",6763:"d5e36df2",6780:"204a1480",6855:"e1724cd1",6866:"9fb21d11",6886:"ca913e92",6892:"00f44640",6935:"1e8283d8",6948:"f672b487",6997:"9ad3d2eb",7003:"b064e28e",7012:"1f22b1ae",7036:"be852fcd",7090:"15e869ce",7130:"7b24d234",7197:"925f5a53",7286:"cbd78cd1",7303:"add8a1d9",7312:"ebf1e1ac",7341:"5a9a881d",7400:"bb1bffcb",7457:"05737046",7519:"43de9d9a",7616:"1a9527fa",7638:"147e123d",7659:"003bcc2a",7674:"71f8f69d",7820:"76e052c6",7843:"fe60856c",7905:"28030aa8",7957:"e0eb325d",7964:"666a9c76",8228:"7777ffe3",8236:"973dee5b",8376:"ec3800d9",8499:"23d303cb",8552:"8d732287",8648:"3df871aa",8704:"40f77f92",8775:"c4d351a5",8798:"ae050e23",9099:"f0bed4dd",9113:"8c127b65",9236:"e05a32a6",9311:"d9f0acbc",9384:"dbed806a",9476:"5a051b83",9581:"dcdb60a1",9637:"96af2b91",9684:"722fad2b",9710:"6bb10454",9738:"17d17a36",9856:"51f2956c",9870:"1e0dbc7f",9891:"f756d7a2",9946:"5e885642"}[t]+".js"}}(),function(){a.miniCssF=function(t){return"css/"+t+"."+{143:"ac728857",401:"4149415b",635:"f849b3f1",967:"72c8c98f",1802:"32ec082e",2568:"6fac7cd8",3147:"45781634",3175:"4794afa8",3545:"2412eeb4",4052:"63e96376",4748:"fc757a13",5528:"45781634",6171:"7090fc57",6780:"0780c10b",6866:"081b4583",7130:"c4ced7cf",7312:"81053aa2",7341:"c9b64985",7674:"1c24940f",7957:"e76d18ce",8648:"4b50bc38",8775:"bbca74ef"}[t]+".css"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){a.hmd=function(t){return t=Object.create(t),t.children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t}}(),function(){a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={},e="@radiantearth/stac-browser:";a.l=function(s,i,r,n){if(t[s])t[s].push(i);else{var o,l;if(void 0!==r)for(var c=document.getElementsByTagName("script"),u=0;u0||t.data.description||t.data.deprecated)?e("b-card-text",{staticClass:"intro"},[t.data.deprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t._v(" "+t._s(t._f("summarize")(t.data.description))+" ")],2):t._e(),t.showKeywordsInCatalogCards&&t.keywords.length>0?e("Keywords",{attrs:{keywords:t.keywords,variant:"primary",center:!t.isList}}):t._e(),t.temporalExtent?e("b-card-text",{staticClass:"datetime"},[e("small",{domProps:{innerHTML:t._s(t.temporalExtent)}})]):t._e()],1),e("b-card-footer",[t._t("footer",null,{data:t.data})],2)],1)},i=[],r=(a(44114),a(95353)),n=a(67467),o=a(97685),l=a(58581),c=a(31831),u=a(50735),d=a(2566),h={name:"Catalog",components:{StacLink:l["default"],Keywords:()=>a.e(8499).then(a.bind(a,28499))},filters:{summarize:t=>d.Ay.summarizeMd(t,300),formatMediaType:t=>(0,u.formatMediaType)(t,null,{shorten:!0})},mixins:[o.A,(0,n.A)({formatTemporalExtent:u.formatTemporalExtent})],props:{catalog:{type:Object,required:!0}},computed:{...(0,r.aH)(["showKeywordsInCatalogCards"]),...(0,r.L8)(["getStac"]),classes(){let t=["catalog-card"];return this.data||t.push("queued"),this.data&&this.data.deprecated&&t.push("deprecated"),this.hasImage&&t.push("has-thumbnail"),this.temporalExtent&&t.push("has-extent"),t},data(){return this.getStac(this.catalog)},temporalExtent(){var t,e,a;if(null!==(t=this.data)&&void 0!==t&&t.isCollection()&&(null===(e=this.data.extent)||void 0===e||null===(a=e.temporal)||void 0===a?void 0:a.interval.length)>0){let t=this.data.extent.temporal.interval[0];if(Array.isArray(t)&&("string"===typeof t[0]||"string"===typeof t[1]))return this.formatTemporalExtent(this.data.extent.temporal.interval[0],!0)}return null},fileFormats(){return this.data?this.data.getFileFormats():[]},keywords(){return this.data&&this.data.getMetadata("keywords")||[]}},methods:{load(t){this.catalog instanceof c.A||this.$store.commit(t?"queue":"unqueue",this.catalog.href)}}},p=h,f=a(81656),g=(0,f.A)(p,s,i,!1,null,null,null),m=g.exports},85811:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return C}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"catalogs mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.title))]),null!==t.catalogCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.catalogCount))]):t._e(),e("ViewButtons",{staticClass:"mr-2",model:{value:t.view,callback:function(e){t.view=e},expression:"view"}}),t.isComplete&&t.catalogs.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.isComplete&&t.catalogs.length>1?e("section",{staticClass:"catalog-filter mb-2"},[e("SearchBox",{attrs:{placeholder:t.filterPlaceholder},model:{value:t.searchTerm,callback:function(e){t.searchTerm=e},expression:"searchTerm"}}),t.allKeywords.length>0?e("multiselect",{attrs:{multiple:"",options:t.allKeywords,placeholder:t.$t("multiselect.keywordsPlaceholder"),selectLabel:t.$t("multiselect.selectLabel"),selectedLabel:t.$t("multiselect.selectedLabel"),deselectLabel:t.$t("multiselect.deselectLabel"),limitText:t.limitText},model:{value:t.selectedKeywords,callback:function(e){t.selectedKeywords=e},expression:"selectedKeywords"}}):t._e()],1):t._e(),t.showPagination?e("Pagination",{ref:"topPagination",staticClass:"mb-3",attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.hasSearchCritera&&0===t.catalogView.length?e("b-alert",{staticClass:"mt-2",attrs:{variant:"warning",show:""}},[t._v(t._s(t.$t("catalogs.noMatches")))]):t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),e(t.cardsComponent,t._b({tag:"component"},"component",t.cardsComponentProps,!1),t._l(t.catalogView,(function(a){return e("Catalog",{key:a.href,attrs:{catalog:a},scopedSlots:t._u([{key:"footer",fn:function({data:e}){return[t._t("catalogFooter",null,{data:e})]}}],null,!0)})})),1)],1),t.showPagination?e("Pagination",{staticClass:"mb-3",attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.loadMore,expression:"loadMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.loadMore}},[t._v(t._s(t.$t("catalogs.loadMore")))]):t._e()],1)},i=[],r=(a(44114),a(98992),a(23215),a(54520),a(81454),a(37550),a(95353)),n=a(61629),o=a(39773),l=a(31831),c=function(){var t=this,e=t._self._c;return e("b-button-group",{attrs:{title:t.$t("view.title"),size:"sm"}},[e("b-button",{attrs:{title:t.$t("view.tiles.title"),variant:"outline-primary",pressed:"cards"===t.value},on:{click:function(e){return t.toggle("cards")}}},[e("b-icon-bricks"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.tiles.label")))])],1),e("b-button",{attrs:{title:t.$t("view.list.title"),variant:"outline-primary",pressed:"list"===t.value},on:{click:function(e){return t.toggle("list")}}},[e("b-icon-list-task"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("view.list.label")))])],1)],1)},u=[],d=a(82948),h={id:"SortButtons",components:{BIconBricks:d.Muv,BIconListTask:d.Xjw},props:{value:{type:String,default:"cards"}},methods:{toggle(t){this.value!==t&&this.$emit("input",t)}}},p=h,f=a(81656),g=(0,f.A)(p,c,u,!1,null,null,null),m=g.exports,b={components:{ViewButtons:m},computed:{cardsComponent(){return"list"===this.view?"div":"b-card-group"},cardsComponentProps(){return"list"===this.view?{class:["card-list"]}:{columns:!0}},view:{get(){return this.$store.state.cardViewMode},async set(t){await this.$store.dispatch("config",{cardViewMode:t})}}}},y=a(2566),A={name:"Catalogs",components:{Catalog:n.A,Loading:o.A,Pagination:()=>Promise.resolve().then(a.bind(a,45787)),SearchBox:()=>a.e(4748).then(a.bind(a,74748)),SortButtons:()=>a.e(771).then(a.bind(a,40771)),Multiselect:()=>a.e(5262).then(a.t.bind(a,75262,23))},mixins:[b],props:{catalogs:{type:Array,required:!0},collectionsOnly:{type:Boolean,required:!1},loading:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},pagination:{type:Object,default:()=>({})},count:{type:Number,default:null}},data(){return{searchTerm:"",sort:0,selectedKeywords:[]}},computed:{...(0,r.aH)(["cardViewSort","uiLanguage"]),...(0,r.L8)(["getStac"]),catalogCount(){return this.catalogs.length!==this.catalogView.length?this.catalogView.length+"/"+this.catalogs.length:null!==this.count?this.count:this.isComplete?this.catalogs.length:null},title(){return this.collectionsOnly?this.$tc("stacCollection",this.catalogs.length):this.$tc("stacCatalog",this.catalogs.length)},isComplete(){return!this.hasMore&&!this.showPagination},filterPlaceholder(){return this.isComplete?this.$t("catalogs.filterByTitleAndMore"):this.$t("catalogs.filterByTitle")},showPagination(){return Object.values(this.pagination).some((t=>!!t))},allCatalogs(){return this.catalogs.map((t=>{let e=this.getStac(t);return e||t}))},hasSearchCritera(){return this.searchTerm||this.selectedKeywords.length>0},catalogView(){if(this.hasMore)return this.catalogs;let t=this.allCatalogs;if(this.hasSearchCritera&&(t=t.filter((t=>{if(this.selectedKeywords.length>0&&t instanceof l.A&&Array.isArray(t.keywords)){let e=this.selectedKeywords.every((e=>t.keywords.includes(e)));if(!e)return!1}if(this.searchTerm){let e=[t.title];return t instanceof l.A&&this.isComplete&&(e.push(t.id),Array.isArray(t.keywords)&&(e=e.concat(t.keywords))),y.Ay.search(this.searchTerm,e)}return!0}))),!this.hasMore&&0!==this.sort){const e=new Intl.Collator(this.uiLanguage);t=t.slice(0).sort(((t,a)=>e.compare(l.A.getDisplayTitle(t),l.A.getDisplayTitle(a)))),-1===this.sort&&(t=t.reverse())}return t},allKeywords(){if(!this.isComplete)return[];let t=[];for(let e of this.allCatalogs)if(e instanceof l.A&&Array.isArray(e.keywords))for(let a of e.keywords)t.includes(a)||t.push(a);return t.sort()}},created(){this.sort=this.cardViewSort},methods:{loadMore(t=!0){t&&(this.sort=0,this.$emit("loadMore"))},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&y.Ay.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)},limitText(t){return this.$t("multiselect.andMore",{count:t})}}},v=A,w=(0,f.A)(v,s,i,!1,null,"52ad2017",null),C=w.exports},99975:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return d}});var s=function(){var t=this,e=t._self._c;return e("b-button",t._b({staticClass:"copy-button",attrs:{variant:t.copyColor,title:t.$t("copy")},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.copy.apply(null,arguments)}}},"b-button",t.buttonProps,!1),[e(t.copyIcon,{tag:"component"}),t._t("default")],2)},i=[],r=a(82948),n=a(14405),o={name:"CopyButton",components:{BIconClipboard:r.ceV,BIconClipboardCheck:r.mD4,BIconClipboardX:r.A6N},props:{copyText:{type:String,required:!0},variant:{type:String,default:"primary"},buttonProps:{type:Object,default:()=>({})}},data(){return{status:null}},computed:{copyColor(){let t=this.variant;return!0===this.status?t="success":!1===this.status&&(t="danger"),this.variant.startsWith("outline-")&&(t="outline-"+t),t},copyIcon(){return!0===this.status?"b-icon-clipboard-check":!1===this.status?"b-icon-clipboard-x":"b-icon-clipboard"}},methods:{async copy(){try{let t=document.activeElement;await n.B.copy(this.copyText),t.focus(),this.status=!0}catch(t){console.error(t),this.status=!1}setTimeout((()=>this.status=null),2500)}}},l=o,c=a(81656),u=(0,c.A)(l,s,i,!1,null,null,null),d=u.exports},41526:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return u}});var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"styled-description",class:{compact:t.compact,inline:t.inline},domProps:{innerHTML:t._s(t.markup(t.description))}})},i=[],r=a(30855),n={name:"Description",props:{description:{type:String,default:""},compact:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},allowHTML:{type:Boolean,default:!1}},methods:{markup(t){if("string"!==typeof t)return"";var e=new r.iX,a=new r.j6({safe:!this.allowHTML,smart:!0}),s=e.parse(t);return a.render(s)}}},o=n,l=a(81656),c=(0,l.A)(o,s,i,!1,null,null,null),u=c.exports},85952:function(t,e,a){"use strict";a.d(e,{A:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("b-alert",{attrs:{variant:"danger",show:"",dismissible:t.dismissible},on:{dismissed:function(e){return t.$emit("close")}}},[e("p",{staticClass:"message"},[t._v(t._s(t.message||t.$t("errors.default")))]),t.error&&t.error.message?e("dl",{staticClass:"error"},[e("dt",[t._v(t._s(t.$t("errors.labels.cause")))]),e("dd",[t._v(t._s(t.error.message))])]):t._e(),t.description?e("dl",{staticClass:"description"},[e("dt",[t._v(t._s(t.$t("errors.labels.reason")))]),e("dd",[t._v(t._s(t.description))])]):t._e(),t.id?e("dl",{staticClass:"id"},[e("dt",[t._v(t._s(t.$t("errors.labels.code")))]),e("dd",[e("code",[t._v(t._s(t.id))])])]):t._e(),t.url?e("dl",{staticClass:"url"},[e("dt",[t._v(t._s(t.$t("errors.labels.requestURL")))]),e("dd",[e("code",[t._v(t._s(t.url))])])]):t._e()])},i=[],r={name:"ErrorAlert",props:{message:{type:String,default:null},description:{type:String,default:""},error:{type:[Object,Error],default:null},id:{type:[String,Number],default:null},url:{type:String,default:""},dismissible:{type:Boolean,default:!1}}},n=r,o=a(81656),l=(0,o.A)(n,s,i,!1,null,"7a9d646a",null),c=l.exports},77455:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("b-card",{directives:[{name:"b-visible",rawName:"v-b-visible.400",value:t.load,expression:"load",modifiers:{400:!0}}],staticClass:"item-card",class:{queued:!t.data,deprecated:t.isDeprecated,description:t.hasDescription},attrs:{"no-body":""}},[t.hasImage?e("b-card-img-lazy",t._b({staticClass:"thumbnail",attrs:{offset:"200"}},"b-card-img-lazy",t.thumbnail,!1)):t._e(),e("b-card-body",[e("b-card-title",[e("StacLink",{staticClass:"stretched-link",attrs:{data:[t.data,t.item]}})],1),t.fileFormats.length>0||t.hasDescription||t.isDeprecated?e("b-card-text",{staticClass:"intro"},[t.isDeprecated?e("b-badge",{staticClass:"mr-1 mt-1 deprecated",attrs:{variant:"warning"}},[t._v(t._s(t.$t("deprecated")))]):t._e(),t._l(t.fileFormats,(function(a){return e("b-badge",{key:a,staticClass:"mr-1 mt-1 fileformat",attrs:{variant:"secondary"}},[t._v(t._s(t._f("formatMediaType")(a)))])})),t.hasDescription?[t._v(t._s(t._f("summarize")(t.data.properties.description)))]:t._e()],2):t._e(),t.showKeywordsInItemCards&&t.keywords.length>0?e("Keywords",{attrs:{keywords:t.keywords,variant:"primary",center:""}}):t._e(),e("b-card-text",[e("small",{staticClass:"text-muted"},[t.extent?[t._v(t._s(t._f("formatTemporalExtent")(t.extent)))]:t.data&&t.data.properties.datetime?[t._v(t._s(t._f("formatTimestamp")(t.data.properties.datetime)))]:[t._v(t._s(t.$t("items.noTime")))]],2)])],1)],1)},i=[],r=a(95353),n=a(97685),o=a(58581),l=a(31831),c=a(50735),u=a(19087),d=a.n(u),h=a(2566);d().addDependency("content-type",a(58597));var p={name:"Item",components:{StacLink:o["default"],Keywords:()=>a.e(8499).then(a.bind(a,28499))},filters:{summarize:t=>h.Ay.summarizeMd(t,150),formatMediaType:t=>(0,c.formatMediaType)(t,null,{shorten:!0}),formatTemporalExtent:c.formatTemporalExtent,formatTimestamp:c.formatTimestamp},mixins:[n.A],props:{item:{type:Object,required:!0}},computed:{...(0,r.aH)(["showKeywordsInItemCards"]),...(0,r.L8)(["getStac"]),data(){return this.getStac(this.item)},extent(){return this.data&&(this.data.properties.start_datetime||this.data.properties.end_datetime)?[this.data.properties.start_datetime,this.data.properties.end_datetime]:null},fileFormats(){return this.data?this.data.getFileFormats():[]},keywords(){return this.data&&this.data.getMetadata("keywords")||[]},isDeprecated(){return this.data instanceof l.A&&Boolean(this.data.properties.deprecated)},hasDescription(){return this.data instanceof l.A&&h.Ay.hasText(this.data.properties.description)}},methods:{load(t){this.item instanceof l.A||this.$store.commit(t?"queue":"unqueue",this.item.href)}}},f=p,g=a(81656),m=(0,g.A)(f,s,i,!1,null,null,null),b=m.exports},41201:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return b}});var s=function(){var t=this,e=t._self._c;return e("section",{staticClass:"items mb-4"},[e("header",[e("h2",{staticClass:"title mr-2"},[t._v(t._s(t.$tc("stacItem",t.items.length)))]),null!==t.itemCount?e("b-badge",{staticClass:"mr-4",attrs:{pill:"",variant:"secondary"}},[t._v(t._s(t.itemCount))]):t._e(),!t.api&&t.items.length>1?e("SortButtons",{model:{value:t.sort,callback:function(e){t.sort=e},expression:"sort"}}):t._e()],1),t.showPagination?e("Pagination",{ref:"topPagination",staticClass:"mb-3",class:{"mr-3":t.allowFilter},attrs:{pagination:t.pagination,placement:"top"},on:{paginate:t.paginate}}):t._e(),t.allowFilter?[t.api?e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.itemFilter",modifiers:{itemFilter:!0}}],staticClass:"mb-3",attrs:{variant:t.hasFilters&&!t.filtersOpen?"primary":"outline-primary"}},[e("b-icon-search"),t._v(" "+t._s(t.filtersOpen?t.$t("items.hideFilter"):t.$t("items.showFilter"))+" "),t.hasFilters&&!t.filtersOpen?e("b-badge",{attrs:{variant:"dark"}},[t._v(t._s(t.filterCount))]):t._e()],1):t._e(),e("b-collapse",{attrs:{id:"itemFilter"},model:{value:t.filtersOpen,callback:function(e){t.filtersOpen=e},expression:"filtersOpen"}},[e("SearchFilter",{attrs:{type:"Items",title:t.$t("items.filter"),parent:t.stac,value:t.apiFilters},on:{input:t.emitFilter}})],1)]:t._e(),e("section",{staticClass:"list"},[t.loading?e("Loading",{attrs:{fill:"",top:""}}):t._e(),t.chunkedItems.length>0?e("b-card-group",{attrs:{columns:""}},t._l(t.chunkedItems,(function(t){return e("Item",{key:t.href,attrs:{item:t}})})),1):e("b-alert",{attrs:{variant:t.hasFilters?"warning":"info",show:""}},[t.hasFilters?[t._v(t._s(t.$t("search.noItemsFound")))]:[t._v(t._s(t.$t("items.noneAvailableForCollection")))]],2)],1),t.showPagination?e("Pagination",{staticClass:"mb-3",attrs:{pagination:t.pagination},on:{paginate:t.paginate}}):t.hasMore?e("b-button",{directives:[{name:"b-visible",rawName:"v-b-visible.300",value:t.showMore,expression:"showMore",modifiers:{300:!0}}],attrs:{variant:"primary"},on:{click:t.showMore}},[t._v(t._s(t.$t("showMore")))]):t._e()],2)},i=[],r=(a(98992),a(54520),a(37550),a(77455)),n=a(39773),o=a(45787),l=a(48883),c=a(82948),u=a(2566),d=a(31831),h=a(95353),p={name:"Items",components:{BCollapse:l.K,BIconSearch:c.S8S,Item:r["default"],SearchFilter:()=>Promise.all([a.e(537),a.e(5262),a.e(7616),a.e(3175)]).then(a.bind(a,7616)),Loading:n.A,Pagination:o["default"],SortButtons:()=>a.e(771).then(a.bind(a,40771))},props:{items:{type:Array,required:!0},loading:{type:Boolean,default:!1},stac:{type:Object,required:!0},api:{type:Boolean,default:!1},allowFilter:{type:Boolean,default:!0},showFilters:{type:Boolean,default:!1},apiFilters:{type:Object,default:()=>({})},pagination:{type:Object,default:()=>({})},chunkSize:{type:Number,default:90},count:{type:Number,default:null}},data(){return{shownItems:this.chunkSize,filtersOpen:this.showFilters,sort:0}},computed:{...(0,h.aH)(["cardViewSort","uiLanguage"]),itemCount(){return null!==this.count?this.count:!this.api&&this.items.length>0?this.items.length:null},hasMore(){return this.items.length>this.shownItems},filterCount(){return Object.values(this.apiFilters).filter((t=>!(null===t||0===u.Ay.size(t)))).length},hasFilters(){return this.filterCount>0},chunkedItems(){let t=this.items;if(!this.apiFilters.sortby&&0!==this.sort){const e=new Intl.Collator(this.uiLanguage);t=t.slice(0).sort(((t,a)=>e.compare(d.A.getDisplayTitle(t),d.A.getDisplayTitle(a)))),-1===this.sort&&(t=t.reverse())}return!this.api&&this.items.length>this.chunkSize?t.slice(0,this.shownItems):t},showPagination(){if(this.api){if(this.hasFilters)return!0;if(this.items.length>0)return Object.values(this.pagination).some((t=>!!t))}return!1}},watch:{showFilters(){this.filter=this.showFilters},filtersOpen(){this.$emit("filtersShown",this.filtersOpen)}},created(){this.sort=this.cardViewSort},mounted(){this.showFilters&&setTimeout((()=>u.Ay.scrollTo(this.$el)),250)},methods:{emitFilter(t,e){this.$emit("filterItems",t,e)},showMore(){this.shownItems+=this.chunkSize},paginate(t,e){"bottom"===e&&this.$refs.topPagination&&u.Ay.scrollTo(this.$refs.topPagination.$el),this.$emit("paginate",t)}}},f=p,g=a(81656),m=(0,g.A)(f,s,i,!1,null,null,null),b=m.exports},39773:function(t,e,a){"use strict";a.d(e,{A:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("div",{class:t.classes},[e("b-spinner",{attrs:{label:t.$t("loading"),small:t.small}})],1)},i=[],r=(a(44114),{name:"Loading",props:{fill:{type:Boolean,default:!1},stretch:{type:Boolean,default:!1},small:{type:Boolean,default:!1},top:{type:Boolean,default:!1}},computed:{classes(){let t=["loading"];return this.fill?t.push("loading-fill"):this.stretch&&t.push("loading-stretch"),this.top&&t.push("top"),t}}}),n=r,o=a(81656),l=(0,o.A)(n,s,i,!1,null,"67931bb8",null),c=l.exports},45787:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return c}});var s=function(){var t=this,e=t._self._c;return e("b-button-group",[e("b-button",{attrs:{disabled:!t.pagination.first,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.first)}}},[t._v(t._s(t.$t("pagination.first")))]),e("b-button",{attrs:{disabled:!t.pagination.prev,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.prev)}}},[t._v(t._s(t.$t("pagination.previous")))]),e("b-button",{attrs:{disabled:!t.pagination.next,variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.next)}}},[t._v(t._s(t.$t("pagination.next")))]),t.pagination.last?e("b-button",{attrs:{variant:"primary"},on:{click:function(e){return t.paginate(t.pagination.last)}}},[t._v(t._s(t.$t("pagination.last")))]):t._e()],1)},i=[],r={name:"Pagination",props:{pagination:{type:Object,default:()=>({})},placement:{type:String,default:"bottom"}},methods:{paginate(t){this.$emit("paginate",t,this.placement)}}},n=r,o=a(81656),l=(0,o.A)(n,s,i,!1,null,null,null),c=l.exports},58581:function(t,e,a){"use strict";a.r(e),a.d(e,{default:function(){return g}});var s=function(){var t=this,e=t._self._c;return e(t.component,t._b({tag:"component",staticClass:"stac-link",attrs:{title:t.tooltip}},"component",t.attributes,!1),[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.displayTitle))])],2)},i=[],r=(a(98992),a(72577),a(95353)),n=a(59203),o=a(2566),l=a(31831),c=a(84193),u=a.n(c),d={name:"StacLink",props:{data:{type:[Object,Array],default:null},title:{type:String,default:null},fallbackTitle:{type:[String,Function],default:null},tooltip:{type:String,default:null},button:{type:[Boolean,Object],default:!1},state:{type:Object,default:null}},computed:{...(0,r.aH)(["allowExternalAccess","privateQueryParameters"]),...(0,r.L8)(["toBrowserPath","getRequestUrl","isExternalUrl"]),icon(){if(this.stac){let t=this.stac.getIcons();if(t.length>0)return t[0]}return null},stac(){return this.data instanceof l.A?this.data:Array.isArray(this.data)?this.data.find((t=>t instanceof l.A)):null},link(){return this.isLink(this.data)?this.data:Array.isArray(this.data)&&this.data.find((t=>this.isLink(t)))||{}},isStacBrowserLink(){return!!this.stac||!!o.Ay.isStacMediaType(this.link.type,!0)&&(!(!this.allowExternalAccess&&this.isExternalUrl(this.link.href))&&n.Bv.includes(this.link.rel))},attributes(){if(this.isStacBrowserLink||this.button){let t={to:this.href,rel:this.rel};return o.Ay.isObject(this.button)&&Object.assign(t,this.button),t}return{href:this.href,target:"_blank",rel:this.rel}},component(){return this.button?"b-button":this.isStacBrowserLink?"router-link":"a"},href(){if(this.stac||this.isStacBrowserLink){let t;if(t=this.stac?this.stac.getBrowserPath():this.toBrowserPath(this.link.href),t.startsWith("/")||(t="/"+t),o.Ay.size(this.privateQueryParameters)>0||o.Ay.size(this.state)>0){let e=u()(t),a=(t,a)=>{for(let s in t){let i=`${a}${s}`;e.hasQuery(i)||e.addQuery(i,t[s])}};a(this.privateQueryParameters,"~"),a(this.state,"."),t=e.toString()}return t}return this.getRequestUrl(this.link.href)},displayTitle(){if(this.title)return this.title;let t="function"===typeof this.fallbackTitle?this.fallbackTitle():this.fallbackTitle;return l.A.getDisplayTitle(this.data,t)}},methods:{isLink(t){return o.Ay.isObject(t)&&!(t instanceof l.A)}}},h=d,p=a(81656),f=(0,p.A)(h,s,i,!1,null,null,null),g=f.exports},19306:function(t){t.exports={catalogUrl:null,catalogTitle:"STAC Browser",allowExternalAccess:!0,allowedDomains:[],detectLocaleFromBrowser:!0,storeLocale:!0,locale:"en",fallbackLocale:"en",supportedLocales:["de","es","en","fr","it","ro","ja","pt"],apiCatalogPriority:null,useTileLayerAsFallback:!0,displayGeoTiffByDefault:!1,buildTileUrlTemplate:({href:t,asset:e})=>"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url="+encodeURIComponent(e.href.startsWith("/vsi")?e.href:t),stacProxyUrl:null,pathPrefix:"/",historyMode:"history",cardViewMode:"cards",cardViewSort:"asc",showKeywordsInItemCards:!1,showKeywordsInCatalogCards:!1,showThumbnailsAsAssets:!1,geoTiffResolution:128,redirectLegacyUrls:!1,itemsPerPage:12,defaultThumbnailSize:null,maxPreviewsOnMap:50,crossOriginMedia:null,requestHeaders:{},requestQueryParameters:{},socialSharing:["email","bsky","mastodon","x"],preprocessSTAC:null,authConfig:null}},44426:function(t,e,a){"use strict";a.d(e,{A:function(){return r}});var s=a(48907),i=a(2566);class r{constructor(t={},e=null,a=null){this.options=t,this.changeListener=e,this.router=a}getButtonTitle(){return null}getLoginLabel(){return s.Ay.t("authentication.button.login")}getLogoutLabel(){return s.Ay.t("authentication.button.logout")}getComponent(){return null}getComponentProps(){return{}}async init(){}async login(){}async confirmLogin(t){this.changeListener&&await this.changeListener(!0,t)}async logout(){}async confirmLogout(){this.changeListener&&await this.changeListener(!1)}async close(){}updateStore(){return{}}_updateStore(t,e=null,a=null,s=null){const r=this.options.formatter||s,n=this.options.name||e,o=this.options.in||a;return t&&("Bearer"===r?t=`Bearer ${t}`:"function"===typeof r&&(t=r(t))),i.Ay.hasText(t)||(t=void 0),"query"===o?{query:{type:"private",key:n,value:t}}:"cookie"===o?{cookie:{key:n,value:t}}:"header"===o?{header:{key:n,value:t}}:{}}static async create(t,e,s){let n=new r;if(i.Ay.isObject(t))if("http"===t.type&&"basic"===t.scheme){const i=(await a.e(4648).then(a.bind(a,34648))).default;n=new i(t,e,s)}else if("apiKey"===t.type){const i=(await a.e(6935).then(a.bind(a,46935))).default;n=new i(t,e,s)}else if("openIdConnect"===t.type){const i=(await a.e(3621).then(a.bind(a,93621))).default;n=new i(t,e,s)}return await n.init(),n}static equals(t,e){return JSON.stringify(t.options)===JSON.stringify(e)}}},45311:function(t,e,a){"use strict";a.d(e,{A:function(){return r},W:function(){return n}});var s=a(42473),i=a(2566);class r{static enabled(t){if(!i.Ay.isObject(t))return!1;try{if(t.setItem("test","yes"),"yes"===t.getItem("test"))return t.removeItem("test"),!0}catch(e){console.error(e)}return!1}constructor(t=!1){t?r.enabled(window.sessionStorage)?this.engine=window.sessionStorage:navigator.cookieEnabled?this.engine=new n(!0):this.engine=new o:r.enabled(window.localStorage)?this.engine=window.localStorage:navigator.cookieEnabled?this.engine=new n:this.engine=new o}get(t){try{let e=this.engine.getItem(t);return"string"===typeof e&&e.startsWith(r.JSON_INDICATOR)&&(e=JSON.parse(e.slice(r.JSON_INDICATOR.length))),e}catch(e){return console.error(e),null}}set(t,e){try{"string"!==typeof e&&(e=r.JSON_INDICATOR+JSON.stringify(e)),this.engine.setItem(t,e)}catch(a){console.error(a)}}remove(t){try{this.engine.removeItem(t)}catch(e){console.error(e)}}clear(){this.engine.clear()}}(0,s.A)(r,"JSON_INDICATOR","\n\r");class n{constructor(t=!1){this.session=t}getExpiry(t=null){null===t&&(t=this.session?60:144e4);const e=new Date;e.setTime(e.getTime()+60*t*1e3),this.epires=e.toGMTString()}setItem(t,e,a=null){const s=this.getExpiry(a);e=encodeURIComponent(e),document.cookie=`${t}=${e}; expires=${s}; path=/`}getItem(t){const e=t+"=",a=document.cookie.split(";");for(let s of a)if(s=s.trim(),s.startsWith(e)){const t=s.substring(e.length,s.length);return decodeURIComponent(t)}return null}removeItem(t){this.set(t,"",-1)}clear(){document.cookie=""}}class o{constructor(t=!1){this.session=t}setItem(t){console.warn(`Browser storage disabled, can't store ${t}`)}getItem(){return null}removeItem(){}clear(){}}},78561:function(t,e,a){"use strict";a.d(e,{Q:function(){return o}});var s=a(95353);const i=["https://api.stacspec.org/v1.*/item-search#filter:cql-text","http://www.opengis.net/spec/cql2/1.*/conf/cql2-text"],r=["https://api.stacspec.org/v1.*/item-search#filter:cql-json","http://www.opengis.net/spec/cql2/1.*/conf/cql2-json"],n=["http://www.opengis.net/spec/cql2/1.*/conf/advanced-comparison-operators"],o={Items:{BasicFilters:["https://api.stacspec.org/v1.*/ogcapi-features","http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter"],Sort:["https://api.stacspec.org/v1.*/ogcapi-features#sort","http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting"],FreeText:["https://api.stacspec.org/v1.*/ogcapi-features#free-text"]},Global:{BasicFilters:["https://api.stacspec.org/v1.*/item-search"],CollectionIdFilter:!0,ItemIdFilter:!0,CqlFilters:["https://api.stacspec.org/v1.*/item-search#filter"],Sort:["https://api.stacspec.org/v1.*/item-search#sort"],FreeText:["https://api.stacspec.org/v1.*/item-search#free-text"]},Collections:{BasicFilters:["https://api.stacspec.org/v1.*/collection-search"],CollectionIdFilter:!1,ItemIdFilter:!1,CqlFilters:["https://api.stacspec.org/v1.*/collection-search#filter"],Sort:["https://api.stacspec.org/v1.*/collection-search#sort"],FreeText:["https://api.stacspec.org/v1.*/collection-search#free-text"]}};e.A={props:{type:{type:String,required:!0}},computed:{...(0,s.L8)(["supportsConformance"]),conformances(){return o[this.type]},canSort(){return this.supportsConformance(this.conformances.Sort)},canFilterExtents(){return this.supportsConformance(this.conformances.BasicFilters)},canFilterFreeText(){return this.supportsConformance(this.conformances.FreeText)},cql(){if(!this.supportsConformance(this.conformances.CqlFilters))return null;let t=this.supportsConformance(i),e=this.supportsConformance(r);return t||e?{textMode:t,jsonMode:e,advancedComparison:this.supportsConformance(n)}:null}}}},67467:function(t,e,a){"use strict";var s=a(95353);e.A=t=>{let e={computed:{...(0,s.aH)(["uiLanguage"])},methods:{}};for(let a in t){let s=t[a];e.methods[a]=function(){return this.uiLanguage,s(...arguments)}}return e}},97685:function(t,e,a){"use strict";var s=a(95353);e.A={props:{showThumbnail:{type:Boolean,default:!0}},computed:{...(0,s.aH)(["cardViewMode","crossOriginMedia","defaultThumbnailSize"]),isList(){return this.data&&!this.data.isItem()&&"list"===this.cardViewMode},hasImage(){return this.showThumbnail&&this.thumbnail},thumbnail(){if(this.data){let t=this.data.getThumbnails(!0,"thumbnail");if(t.length>0){let e,a,s=t[0];return Array.isArray(s["proj:shape"])&&2===s["proj:shape"].length?[a,e]=s["proj:shape"]:Array.isArray(this.defaultThumbnailSize)&&2===this.defaultThumbnailSize.length&&([a,e]=this.defaultThumbnailSize),{src:s.href,alt:s.title,crossorigin:this.crossOriginMedia,right:this.isList,blankColor:"rgba(0, 0, 0, 0.125)",width:e,height:a,"blank-width":e,"blank-height":a}}}return null}}}},24274:function(t,e,a){"use strict";a.d(e,{A:function(){return n}});a(98992),a(54520),a(81454);var s=a(2566),i=a(31831),r=a(44426);class n{static resolveAuth(t,e){if(e instanceof i.A&&s.Ay.size(t["auth:refs"])>0){const a=e.getMetadata("auth:schemes");if(s.Ay.size(a)>0)return t["auth:refs"].map((t=>a[t])).filter((t=>s.Ay.isObject(t)))}return[]}static isSupported(t,e){switch(t instanceof r.A&&(t=t.options),t.type){case"http":return"basic"===t.schema;case"apiKey":return"header"===t.in||"query"===t.in;case"openIdConnect":return"history"===e.historyMode;default:return!1}}static convertLegacyAuthConfig(t){return s.Ay.isObject(t)&&null!==t.type?"query"===t.type||"header"===t.type?{type:"apiKey",in:t.type,name:t.key,description:t.description,formatter:t.formatter}:t:null}}},50737:function(t,e,a){"use strict";let s;s=a(19306),e.A=Object.assign(s,{pathPrefix:"/stac-browser",historyMode:"hash"},window.STAC_BROWSER_CONFIG)},48907:function(t,e,a){"use strict";a.d(e,{Aj:function(){return c},Qm:function(){return p},SM:function(){return g},_:function(){return m},fH:function(){return f}});a(81454);var s=a(85471),i=a(64765),r=a(50737),n=a(14540),o=a.n(n),l=a(2566);s.Ay.use(i.A);const c=["https://api.stacspec.org/v1.*/language"],u={};function d(){for(let e of r.A.supportedLocales)u[e]=a(97991)(`./${e}/config.json`);const t={};for(let e in u)t[e]={languages:u};return t}const h=new i.A({locale:r.A.locale,fallbackLocale:r.A.fallbackLocale,messages:d(),postTranslation:(t,e)=>{if(""===t){const a=e.split(".");let s=h.messages[r.A.fallbackLocale];for(const e of a){if(!(e in s))return t;s=s[e]}return s}return t}});function p(){return Promise.all([f(r.A.locale),f(r.A.fallbackLocale)])}async function f(t){if(l.Ay.size(h.messages[t])>1)return;const e=(await a(33545)(`./${t}/default.js`)).default;h.mergeLocaleMessage(t,e)}async function g(t){const e=u[t].customize;if(0===l.Ay.size(u[t].customize))return;const s=e.map((async e=>{const s=(await a(93731)(`./${t}/${e}`)).default;return await s(t)}));return Promise.all(s)}function m(t,e=null){if("string"!==typeof t||0===t.length)return t;let a=`fields.${t}`;return h.te(a)?h.t(a,null,e):o().format(t,e)}e.Ay=h},39071:function(t,e,a){"use strict";a.d(e,{E0:function(){return i},f5:function(){return r}});a(44114),a(98992),a(3949);function s(t){if(!t)return;const e=String(t),a=e.indexOf("@"),s=-1!==a?e.substr(a+1):void 0,i=-1!==a?e.substr(0,a):e,r=String(i).replace(/-/g,"_").split("_");if(!r.length||r.length>4)return;const n=r.shift();if(!n)return;const o={keyword:s,language:n.toLowerCase()};if(!r.length)return o;if(3===r.length){const t=r.pop();t&&(o.variant=t.toUpperCase())}let l=r.pop();if(l.length>3&&(o.keyword=l,l=r.pop()),l&&(o.country=l.toUpperCase()),!r.length)return o;const c=r.pop();return"string"===typeof c&&c.length>=1&&(o.script=c[0].toUpperCase()+c.substring(1).toLowerCase()),o}function i(t){const e={};return t.forEach((t=>{const{language:a,country:i}=s(t);if(!a)throw new Error(`Locale ${t} is not parsable`);e[a]||(e[a]={countries:{},firstCountry:void 0,main:void 0});const r=e[a];i?(r.countries[i]=t,r.firstCountry||(r.firstCountry=t)):r.main=t})),e}function r(t,e,a,n){const o=Array.isArray(t)?i(t):t;if(!e&&a)return r(t,a,void 0,n);if(!e)return;const{language:l,country:c}=s(e);if(!l)return a;if(!o[l]){if(e===a)return;return r(t,a,null,n)}const{countries:u,main:d=a,firstCountry:h}=o[l];return u&&c?n&&h?u[c]?u[c]:h:u[c]?u[c]:d:n&&h?h:d}},4786:function(t,e,a){"use strict";var s=a(85471),i=function(){var t=this,e=t._self._c;return e("b-container",{attrs:{id:"stac-browser"}},[t.showLogin?e("Authentication"):t._e(),t.globalError?e("ErrorAlert",t._b({staticClass:"global-error",attrs:{dismissible:""},on:{close:t.hideError}},"ErrorAlert",t.globalError,!1)):t._e(),t.sidebar?e("Sidebar"):t._e(),e("header",[e("div",{staticClass:"logo"},[t._v(t._s(t.displayCatalogTitle))]),e("StacHeader",{on:{enableSidebar:function(e){t.sidebar=!0}}})],1),e("router-view"),e("footer",[e("i18n",{staticClass:"poweredby text-muted",attrs:{tag:"small",path:"poweredBy"},scopedSlots:t._u([{key:"link",fn:function(){return[e("a",{attrs:{href:"https://github.com/radiantearth/stac-browser",target:"_blank"}},[t._v("STAC Browser")]),t._v(" "+t._s(t.browserVersion)+" ")]},proxy:!0}])})],1)],1)},r=[],n=(a(44114),a(40173)),o=a(95353),l=a(50737),c=function(){var t=this,e=t._self._c;return e("main",{staticClass:"browse d-flex flex-column"},[!t.allowExternalAccess&&t.isExternal?e("b-alert",{attrs:{show:""}},[t._v(t._s(t.$t("errors.noExternalAccess")))]):t.error?e("ErrorAlert",{attrs:{url:t.url,description:t.errorDescription,id:t.errorId}}):t.loading?e("Loading",{attrs:{stretch:""}}):e(t.component,{tag:"component"})],1)},u=[],d=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,staticClass:"item"},[e("b-row",[e("b-col",{staticClass:"left"},[e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{card:"",pills:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.selectedAsset,scrollWheelZoom:""},on:{dataChanged:t.dataChanged}})],1),t.thumbnails.length>0?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.additionalLinks.length>0?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks,context:t.data}}):t._e()],1),e("b-col",{staticClass:"right"},[e("section",{staticClass:"intro"},[t.data.properties.description?e("h2",[t._v(t._s(t.$t("description")))]):t._e(),t.data.properties.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data.properties["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data.properties["anon:warning"]}}):t._e(),t.data.properties.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.properties.description}})],1):t._e(),Array.isArray(t.data.properties.keywords)&&t.data.properties.keywords.length>0?e("Keywords",{staticClass:"mb-3",attrs:{keywords:t.data.properties.keywords}}):t._e()],1),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),t.data.properties.providers?e("Providers",{attrs:{providers:t.data.properties.providers}}):t._e(),e("Metadata",{attrs:{data:t.data,type:"Item",ignoreFields:t.ignoredMetadataFields}})],1)],1)],1)},h=[],p=a(41526),f=a(6841),g=a.n(f),m=(a(81454),a(2566)),b={data(){return{shownAssetsOnMap:[],shownBandsOnMap:[],tab:null,selectedAsset:null,selectedAssetKey:null}},computed:{...(0,o.L8)(["thumbnails","hasAssets","assets"]),shownAssets(){if(0===this.tab)return this.shownAssetsOnMap;if(1===this.tab||null===this.tab&&this.thumbnails.length>0){let t=[],e=this.thumbnails.map((t=>t.href));for(let a in this.assets){let s=this.assets[a];e.includes(s.href)&&t.push(a)}return t}return[]}},methods:{showAsset(t,e,a){a?this.tab=1:(this.tab=0,this.selectedAsset=t,this.selectedAssetKey=e,this.shownAssetsOnMap=[this.selectedAssetKey]),this.$refs.tabs&&m.Ay.scrollTo(this.$refs.tabs.$el)},dataChanged(t){m.Ay.isObject(t)?t.assets||t.bands?(m.Ay.size(t.assets)>0&&(this.selectedAssetKey?this.shownAssetsOnMap=[this.selectedAssetKey]:this.shownAssetsOnMap=t.assets.map((t=>t.key))),m.Ay.size(t.bands)>0&&(this.shownBandsOnMap=t.bands)):this.selectedAssetKey&&(this.shownAssetsOnMap=[this.selectedAssetKey]):(this.shownBandsOnMap=[],this.shownAssetsOnMap=[])}}},y=a(95050),A=a(63405),v=(a(98992),a(54520),a(31831)),w=a(84193),C=a.n(w),k=a(48907);function _(t,e){let a=e.getters.toBrowserPath(t),s=C()(window.location.origin.toString());return"hash"===e.state.historyMode?(s.path(e.state.pathPrefix),s.fragment(a)):s.path(m.Ay.removeTrailingSlash(e.state.pathPrefix)+a),s.toString()}function L(t,e){Array.isArray(e)&&e.length>=4&&(t.spatialCoverage={"@type":"Place",geo:{"@type":"GeoShape",box:(e||[]).join(" ")}})}function j(t){return!Array.isArray(t)||2!==t.length||"string"!==typeof t[0]&&"string"!==typeof t[1]?null:t.map((t=>t||"..")).join("/")}function x(t){return m.Ay.size(t.assets)>0?Object.values(t.assets).map((e=>({"@type":"DataDownload",contentUrl:m.Ay.toAbsolute(e.href,t.getAbsoluteUrl()),encodingFormat:e.type,name:e.title}))):[]}function S(t,e,a,s="DataCatalog"){return t.map((t=>{let i,r;t instanceof v.A?(i=v.A.getDisplayTitle(t),r=t.getAbsoluteUrl()):(i=t.title,r=m.Ay.toAbsolute(t.href,e.getAbsoluteUrl()));let n={"@type":s,name:i,url:_(r,a),isBasedOn:r};return"Dataset"===s&&(n.description=I(t,a)),n}))}function T(t,e){return t.filter((t=>m.Ay.isObject(t)&&Array.isArray(t.roles)&&t.roles.includes(e))).map((t=>({"@type":"Organization",name:t.name,description:t.description,url:t.url,email:t.email||t.mail})))}function I(t,e){let a,s;if(t instanceof v.A?(a=t.isItem()?"Item":t.type,s=t.collection):m.Ay.isObject(t)&&"item"===t.rel&&(a="Item"),a){let i=k.Ay.tc(`stac${a}`),r=k.Ay.t("in",{catalog:s||e.catalogTitle});return`SpatioTemporal Asset Catalog (STAC)\n${i} - ${t.id} ${r}`}}function O(t,e,a){var s;let i,r=v.A.getDisplayTitle(t),n=t.getAbsoluteUrl(),o=_(n,a),l=null===(s=t.getMetadata("language"))||void 0===s?void 0:s.code,c=t.getThumbnails(!0);c.length>0&&(i=m.Ay.toAbsolute(c[0].href,t.getAbsoluteUrl()));let u=t.getMetadata("license");var d;u&&"proprietary"!==u&&"various"!==u&&"other"!==u?u=`https://spdx.org/licenses/${u}.html`:u=null===(d=t.getLinkWithRel("license"))||void 0===d?void 0:d.href;u&&(u=m.Ay.toAbsolute(u,t.getAbsoluteUrl()));let h,p,f,g,b=t.getMetadata("providers");return m.Ay.size(b)>0&&(h=T(b,"licensor"),p=T(b,"producer"),f=T(b,"host"),g=T(b,"processor")),{"@context":"https://schema.org/","@type":e,name:r,description:t.getMetadata("description")||I(t,a),citation:t.getMetadata("sci:citation"),identifier:t.getMetadata("sci:doi")||t.id,keywords:t.getMetadata("keywords"),license:u,url:o,isBasedOn:n,dateCreated:t.getMetadata("created"),dateModified:t.getMetadata("updated"),datePublished:t.getMetadata("published"),expires:t.getMetadata("expires"),inLanguage:l,thumbnailUrl:i,version:t.getMetadata("version"),image:i,copyrightHolder:h,producer:p,provider:f,creator:g}}function $(t,e,a){if(!(t instanceof v.A))return null;e=e.filter((t=>m.Ay.isObject(t))),e.length>1&&(e=e.filter(((t,a)=>e.findIndex((e=>e.isBasedOn===t.isBasedOn))!==a)));let s=O(t,"DataCatalog",a);var i,r,n,o;t.isCollection()&&((null===(i=t.extent)||void 0===i||null===(r=i.temporal)||void 0===r?void 0:r.interval.length)>0&&(s.temporalCoverage=j(t.extent.temporal.interval[0])),(null===(n=t.extent)||void 0===n||null===(o=n.spatial)||void 0===o?void 0:o.bbox.length)>0&&L(s,t.extent.spatial.bbox[0]),s.associatedMedia=x(t));return s.hasPart=S(a.getters.catalogs,t,a),s.dataset=S(a.getters.items,t,a,"Dataset"),s.isPartOf=S(e,t,a),s}function P(t,e,a){if(!(t instanceof v.A))return null;e=e.filter((t=>m.Ay.isObject(t)));let s=O(t,"Dataset",a);s.includedInDataCatalog=S(e,t,a);let i=t.getMetadata("start_datetime"),r=t.getMetadata("end_datetime");return s.temporalCoverage=i||r?j([i,r]):t.getMetadata("datetime"),L(s,t.bbox),s.distribution=x(t),s}function B(t,e){let a="schema-org",s=t.getElementById(a);s||(s=t.createElement("script"),s.type="application/ld+json",s.id=a,t.head.appendChild(s)),s.innerText=JSON.stringify(e)}var M={name:"Item",components:{AnonymizedNotice:()=>a.e(7457).then(a.bind(a,47457)),Assets:()=>Promise.all([a.e(8704),a.e(7674)]).then(a.bind(a,26801)),BTabs:y.r,BTab:A.a,CollectionLink:()=>a.e(9891).then(a.bind(a,89891)),Description:p["default"],DeprecationNotice:()=>a.e(7341).then(a.bind(a,57341)),Keywords:()=>a.e(8499).then(a.bind(a,28499)),Links:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(8704),a.e(4052)]).then(a.bind(a,73931)),Map:()=>a.e(401).then(a.bind(a,80401)),Metadata:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(3147)]).then(a.bind(a,73147)),Providers:()=>a.e(635).then(a.bind(a,80635)),ReadMore:g(),Thumbnails:()=>a.e(8648).then(a.bind(a,26267))},mixins:[b],data(){return{ignoredMetadataFields:["description","keywords","providers","title","deprecated","proj:bbox","proj:geometry","auth:schemes","anon:warning"]}},computed:{...(0,o.aH)(["data","url"]),...(0,o.L8)(["additionalLinks","collectionLink","parentLink"])},watch:{data:{immediate:!0,handler(t){try{let e=P(t,[this.collectionLink,this.parentLink],this.$store);B(document,e)}catch(e){console.error(e)}}}}},F=M,E=a(81656),U=(0,E.A)(F,d,h,!1,null,null,null),R=U.exports,q=function(){var t=this,e=t._self._c;return e("div",{key:t.data.id,class:{cc:!0,[t.cssStacType]:!0,mixed:t.hasCatalogs&&t.hasItems,empty:!t.hasCatalogs&&!t.hasItems}},[e("b-row",[e("b-col",{staticClass:"meta"},[e("section",{staticClass:"intro"},[e("h2",[t._v(t._s(t.$t("description")))]),t.data.deprecated?e("DeprecationNotice",{attrs:{data:t.data}}):t._e(),t.data["anon:warning"]?e("AnonymizedNotice",{attrs:{warning:t.data["anon:warning"]}}):t._e(),t.data.description?e("ReadMore",{attrs:{lines:10,text:t.$t("read.more"),"text-less":t.$t("read.less")}},[e("Description",{attrs:{description:t.data.description}})],1):t._e(),Array.isArray(t.data.keywords)&&t.data.keywords.length>0?e("Keywords",{staticClass:"mb-3",attrs:{keywords:t.data.keywords}}):t._e(),t.isCollection?e("section",{staticClass:"metadata mb-4"},[t.licenses?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.license")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.licenses)}})])],1):t._e(),t.temporalExtents?e("b-row",[e("b-col",{staticClass:"label",attrs:{md:"4"}},[t._v(t._s(t.$t("catalog.temporalExtent")))]),e("b-col",{staticClass:"value",attrs:{md:"8"}},[e("span",{domProps:{innerHTML:t._s(t.temporalExtents)}})])],1):t._e()],1):t._e(),"left"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks,context:t.data}}):t._e()],1),t.isCollection||t.hasThumbnails?e("section",{staticClass:"mb-4"},[e("b-card",{staticClass:"maps-preview",attrs:{"no-body":""}},[e("b-tabs",{ref:"tabs",attrs:{pills:"",card:"",vertical:"",end:""},model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[t.isCollection?e("b-tab",{attrs:{title:t.$t("map"),"no-body":""}},[e("Map",{attrs:{stac:t.data,stacLayerData:t.mapData,fitBoundsOnce:"",popover:""},on:{dataChanged:t.dataChanged}})],1):t._e(),t.hasThumbnails?e("b-tab",{attrs:{title:t.$t("thumbnails"),"no-body":""}},[e("Thumbnails",{attrs:{thumbnails:t.thumbnails}})],1):t._e()],1)],1)],1):t._e(),t.hasAssets?e("Assets",{attrs:{assets:t.assets,context:t.data,shown:t.shownAssets},on:{showAsset:t.showAsset}}):t._e(),t.hasItemAssets&&!t.hasItems?e("Assets",{attrs:{assets:t.data.item_assets,context:t.data,definition:!0}}):t._e(),t.providers?e("Providers",{attrs:{providers:t.providers}}):t._e(),e("Metadata",{staticClass:"mb-4",attrs:{type:t.data.type,data:t.data,ignoreFields:t.ignoredMetadataFields}}),t.collectionLink?e("CollectionLink",{attrs:{link:t.collectionLink}}):t._e(),"right"===t.linkPosition?e("Links",{attrs:{title:t.$t("additionalResources"),links:t.additionalLinks,context:t.data}}):t._e()],1),t.hasCatalogs?e("b-col",{staticClass:"catalogs-container"},[e("Catalogs",{attrs:{catalogs:t.catalogs,hasMore:!!t.nextCollectionsLink},on:{loadMore:t.loadMoreCollections}})],1):t._e(),t.hasItems?e("b-col",{staticClass:"items-container"},[e("Items",{attrs:{stac:t.data,items:t.items,api:t.isApi,showFilters:t.showFilters,apiFilters:t.filters,pagination:t.itemPages,loading:t.apiItemsLoading},on:{paginate:t.paginateItems,filterItems:t.filterItems,filtersShown:t.filtersShown}}),t.hasItemAssets?e("Assets",{attrs:{assets:t.data.item_assets,context:t.data,definition:!0}}):t._e()],1):t._e()],1)],1)},D=[],z=a(85811),H=a(41201),N=a(67467),W=a(50735),Q={name:"Catalog",components:{AnonymizedNotice:()=>a.e(7457).then(a.bind(a,47457)),Assets:()=>Promise.all([a.e(8704),a.e(7674)]).then(a.bind(a,26801)),BTabs:y.r,BTab:A.a,Catalogs:z["default"],CollectionLink:()=>a.e(9891).then(a.bind(a,89891)),DeprecationNotice:()=>a.e(7341).then(a.bind(a,57341)),Description:p["default"],Items:H["default"],Keywords:()=>a.e(8499).then(a.bind(a,28499)),Links:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(8704),a.e(4052)]).then(a.bind(a,73931)),Map:()=>a.e(401).then(a.bind(a,80401)),Metadata:()=>Promise.all([a.e(9710),a.e(537),a.e(4870),a.e(3147)]).then(a.bind(a,73147)),Providers:()=>a.e(635).then(a.bind(a,80635)),ReadMore:g(),Thumbnails:()=>a.e(8648).then(a.bind(a,26267))},mixins:[b,(0,N.A)({formatLicense:W.formatLicense,formatTemporalExtents:W.formatTemporalExtents})],data(){return{filters:{},ignoredMetadataFields:["stac_version","stac_extensions","id","type","title","description","keywords","providers","license","extent","summaries","links","assets","item_assets","proj:bbox","proj:geometry","conformsTo","deprecated","anon:warning","stats:catalogs","stats:collections","stats:items","auth:schemes","stac_browser"]}},computed:{...(0,o.aH)(["data","url","apiItems","apiItemsLink","apiItemsPagination","nextCollectionsLink","stateQueryParameters"]),...(0,o.L8)(["additionalLinks","catalogs","collectionLink","isCollection","items","getApiItemsLoading","parentLink","rootLink"]),cssStacType(){var t,e;return m.Ay.hasText(null===(t=this.data)||void 0===t?void 0:t.type)?null===(e=this.data)||void 0===e?void 0:e.type.toLowerCase():null},showFilters(){return Boolean(this.stateQueryParameters["itemFilterOpen"])},hasThumbnails(){return this.thumbnails.length>0},linkPosition(){return 0===this.additionalLinks.length?null:this.isCollection||!this.hasThumbnails?"right":"left"},apiItemsLoading(){return this.getApiItemsLoading(this.data)},licenses(){return this.isCollection&&this.data.license?this.formatLicense(this.data.license,null,null,this.data):null},providers(){let t=[];return Array.isArray(this.data.providers)&&this.data.providers.length>0?t=this.data.providers:this.isCollection&&m.Ay.isObject(this.data.summaries)&&Array.isArray(this.data.summaries.providers)&&(t=this.data.summaries.providers),t.length>0?t:null},temporalExtents(){if(this.isCollection&&this.data.extent.temporal.interval.length>0){let t=this.data.extent.temporal.interval;return t.length>1&&(t=t.slice(1)),this.formatTemporalExtents(t)}return null},hasItemAssets(){var t;return m.Ay.size(null===(t=this.data)||void 0===t?void 0:t.item_assets)>0},itemPages(){let t=Object.assign({},this.apiItemsPagination);return!t.first&&this.data&&this.apiItemsLink&&"items"!==this.apiItemsLink.rel&&(t.first=m.Ay.addFiltersToLink(this.data.getApiItemsLink(),this.filters)),t},isApi(){return Boolean(this.apiItemsLink)},hasItems(){return this.items.length>0||this.isApi},hasCatalogs(){return this.catalogs.length>0},mapData(){return this.selectedAsset?this.selectedAsset:{type:"FeatureCollection",features:this.items}}},watch:{data:{immediate:!0,handler(t){try{let e=$(t,[this.parentLink,this.rootLink],this.$store);B(document,e)}catch(e){console.error(e)}}}},methods:{filtersShown(t){this.$store.commit("updateState",{type:"itemFilterOpen",value:t?1:null})},loadMoreCollections(){this.$store.dispatch("loadNextApiCollections",{show:!0})},async paginateItems(t){try{await this.$store.dispatch("loadApiItems",{link:t,show:!0,filters:this.filters})}catch(e){this.$root.$emit("error",e,this.$t("errors.loadItems"))}},async filterItems(t,e){this.filters=t,e&&this.$store.commit("resetApiItems",this.data.getApiItemsLink());try{await this.$store.dispatch("loadApiItems",{link:this.data.getApiItemsLink(),show:!0,filters:t})}catch(a){let t=e?this.$t("errors.loadItems"):this.$t("errors.loadFilteredItems");this.$root.$emit("error",a,t)}}}},V=Q,G=(0,E.A)(V,q,D,!1,null,null,null),K=G.exports,J=a(79873),X={name:"Browse",components:{Catalog:K,Item:R},mixins:[J.A],computed:{...(0,o.L8)(["isItem"]),component(){return this.isItem?"Item":"Catalog"}}},Y=X,Z=(0,E.A)(Y,c,u,!1,null,null,null),tt=Z.exports;function et(t,e){let a=t.params.pathMatch;return e.allowExternalAccess&&a.startsWith("external/")&&(a="/"+a),{path:a}}function at(t){let e=[];return t.catalogUrl?e.push({path:"/search",name:"search",component:()=>Promise.all([a.e(537),a.e(5262),a.e(7616),a.e(6171)]).then(a.bind(a,28189))}):(e.push({path:"/",name:"select",component:()=>a.e(967).then(a.bind(a,60967))}),e.push({path:"/search/external/(.*)",name:"search",component:()=>Promise.all([a.e(537),a.e(5262),a.e(7616),a.e(6171)]).then(a.bind(a,28189)),props:t=>({loadParent:`/external/${t.params.pathMatch}`})})),e.push({path:"/auth/logout",name:"logout",component:()=>a.e(7130).then(a.bind(a,77130))}),e.push({path:"/auth",component:()=>a.e(7659).then(a.bind(a,17659))}),e.push({path:"/validation/(.*)",name:"validation",component:()=>Promise.all([a.e(537),a.e(287),a.e(3545)]).then(a.bind(a,93545)),props:e=>et(e,t)}),e.push({path:"/(.*)",name:"browse",component:tt,props:e=>et(e,t)}),e}var st=at,it=(a(72577),a(3949),a(59203)),rt=a(44426),nt=a(24274),ot=a(45311);const lt=async(t,e)=>{t.commit("showGlobalError",{error:e,message:k.Ay.t("errors.authFailed")},{root:!0}),await t.dispatch("updateCredentials")};function ct(t){return{namespaced:!0,state:{method:()=>new rt.A,actions:[],credentials:null,inProgress:!1},getters:{method(t){return t.method()},canAuthenticate(t,e,a){return nt.A.isSupported(e.method,a)},isLoggedIn(t){return null!==t.credentials},showLogin(t,e){return!e.isLoggedIn&&t.inProgress}},mutations:{setCredentials(t,e){t.credentials=e},setMethod(t,e){t.method=()=>e},addAction(t,e){t.actions.push(e)},resetActions(t){t.actions=[]},setInProgress(t,e=!0){t.inProgress=e}},actions:{async waitForAuth(t){rt.A.equals(t.getters.method,t.rootState.authConfig)||await t.dispatch("updateMethod",t.rootState.authConfig)},async updateMethod(e,a){a=nt.A.convertLegacyAuthConfig(a),rt.A.equals(e.getters.method,a)||await e.getters.method.close();const s=async(t,a)=>{t||(a=null),await e.dispatch("updateCredentials",a),t?await e.dispatch("executeActions"):e.commit("resetActions")},i=new ot.A(!0);i.set("authConfig",a);const r=await rt.A.create(a,s,t);e.commit("setMethod",r)},async requestLogin(t){if(!t.getters.isLoggedIn){t.commit("setInProgress");try{await t.getters.method.login()}catch(e){lt(t,e)}}},async finalizeLogin(t,e=null){t.commit("setInProgress",!1);try{await t.getters.method.confirmLogin(e)}catch(a){lt(t,a)}},async abortLogin(t){t.commit("setInProgress",!1)},async requestLogout(t){t.getters.isLoggedIn&&(t.commit("setInProgress"),await t.getters.method.logout())},async finalizeLogout(t){t.commit("setInProgress",!1);try{await t.getters.method.confirmLogout()}catch(e){lt(t,e)}},async updateCredentials(t,e=null){t.commit("setCredentials",e);const a=t.getters.method.updateStore(e);if(a.query)t.commit("setQueryParameter",a.query,{root:!0});else if(a.header)t.commit("setRequestHeader",a.header,{root:!0});else if(a.cookie){const t=new ot.W(!0);t.setItem(a.cookie.key,a.cookie.value)}},async executeActions(t){for(let a of t.state.actions)try{const e=a();e instanceof Promise&&e.catch((e=>lt(t,e)))}catch(e){lt(t,e)}t.commit("resetActions")}}}}var ut=a(33484),dt=a(39071),ht=a(14540),pt=a.n(ht),ft=a(78561);function gt(t,e){const a=()=>({url:"",title:t.catalogTitle,description:null,data:null,parents:null,globalError:null,localRequestQueryParameters:{},stateQueryParameters:{language:null,asset:[],itemdef:[]},apiItems:[],apiItemsLink:null,apiItemsPagination:{}}),i=()=>({queue:[],privateQueryParameters:{},authActions:[],conformsTo:[],dataLanguage:null,dataLanguages:[],apiCollections:[],apiItemsLoading:{},nextCollectionsLink:null});return new o.Ay.Store({strict:!1,modules:{auth:ct(e)},state:Object.assign({},t,a(),i(),{database:{},allowSelectCatalog:!t.catalogUrl,globalRequestQueryParameters:t.requestQueryParameters,uiLanguage:t.locale}),getters:{loading:t=>!t.url||!t.data||t.database[t.url]instanceof ut.Rh,getApiItemsLoading:t=>e=>{let a="";return e instanceof ut.Rh||(e instanceof v.A?a=e.id:"string"===typeof e&&(a=e),t.apiItemsLoading[a]||!1)},error:t=>t.database[t.url]instanceof Error?t.database[t.url]:null,getStac:t=>(e,a=!1)=>{if(e instanceof v.A)return e;if(m.Ay.isObject(e)&&m.Ay.hasText(e.href)&&(e=e.href),!m.Ay.hasText(e))return null;let s=m.Ay.toAbsolute(e,t.url),i=t.database[s];return i instanceof v.A||a&&i instanceof Error?i:null},displayCatalogTitle:(t,e)=>v.A.getDisplayTitle(e.root,t.catalogTitle),isCollection:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCollection())||!1},isCatalog:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalog())||!1},isCatalogLike:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isCatalogLike())||!1},isItem:t=>{var e;return(null===(e=t.data)||void 0===e?void 0:e.isItem())||!1},root:(t,e)=>e.getStac(e.rootLink),rootLink:t=>{var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("root");if(a)return a;if(t.catalogUrl)return m.Ay.createLink(t.catalogUrl,"root");if(t.url&&t.data instanceof v.A&&t.data.getLinksWithRels(["conformance","service-desc","service-doc","data","search"]).length>0)return m.Ay.createLink(t.url,"root");if(t.url){let e=C()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),"items"===a&&(e.segment(-1,""),e.segment(-1,"")),m.Ay.createLink(e.toString(),"root")}return null},parentLink:t=>{if(t.data instanceof v.A){let e=t.data.getStacLinkWithRel("parent");if(e)return e}if(t.url){let e=C()(t.url),a=e.segment(-2);if(["collections","items"].includes(a))return e.segment(-1,""),e.segment(-1,""),m.Ay.createLink(e.toString(),"parent")}return null},collectionLink:t=>{if(t.data instanceof v.A){var e;let a=null===(e=t.data)||void 0===e?void 0:e.getStacLinkWithRel("collection");if(a)return a}if(t.url){let e=C()(t.url),a=e.segment(-2);if("items"==a)return e.segment(-1,""),e.segment(-1,""),m.Ay.createLink(e.toString(),"collection")}return null},supportsConformance:t=>e=>{if(!Array.isArray(e))return e;let a=e.map((t=>t.replaceAll("*","[^/]+").replace(/\/?#/,"/?#"))).join("|"),s=new RegExp("^("+a+")$");return Boolean(t.conformsTo.find((t=>t.match(s))))},supportsExtension:t=>e=>m.Ay.supportsExtension(t.data,e),canSearch:(t,e)=>e.canSearchCollections||e.canSearchItems,canSearchItems:(t,e)=>e.supportsConformance(ft.Q.Global.BasicFilters),canSearchCollections:(t,e)=>e.supportsConformance(ft.Q.Collections.BasicFilters),items:t=>t.apiItems.length>0?t.apiItems:t.data?t.data.getStacLinksWithRel("item"):[],catalogs:t=>{let e=Boolean(t.data instanceof v.A&&t.data.getApiCollectionsLink()&&t.apiCollections.length>0),a=Boolean(t.data instanceof v.A),s=!t.apiCatalogPriority||"collections"===t.apiCatalogPriority,i=!t.apiCatalogPriority||"childs"===t.apiCatalogPriority,r=[];return e&&s&&(r=r.concat(t.apiCollections)),a&&i&&(r=v.A.addMissingChildren(r,t.data)),r},hasAssets:(t,e)=>Boolean(Object.values(e.assets).find((t=>m.Ay.isObject(t)&&"string"===typeof t.href))),assets:(t,e)=>{var a;if(m.Ay.isObject(null===(a=t.data)||void 0===a?void 0:a.assets)){if(t.showThumbnailsAsAssets)return t.data.assets;{let a={},s=e.thumbnails;for(let e in t.data.assets){let i=t.data.assets[e];s.includes(i)||(a[e]=i)}return a}}return{}},thumbnails:t=>t.data?t.data.getThumbnails(!0):[],additionalLinks:t=>t.data?t.data.getLinksWithOtherRels(it.ol).filter((t=>"preview"!==t.rel||!m.Ay.canBrowserDisplayImage(t))):[],toBrowserPath:(t,e)=>a=>{m.Ay.hasText(a)||(a="/");let s,i=m.Ay.toAbsolute((0,ut.rM)(a,t.stacProxyUrl),t.url,!1);if(!t.allowSelectCatalog&&t.catalogUrl&&(s=i.relativeTo(t.catalogUrl)),"undefined"===typeof s||e.isExternalUrl(i,!1)){if(!t.allowExternalAccess)return i.toString();let e=["/external"],a=i.protocol();"https"!==a&&e.push(a+":"),e.push(i.authority()),e.push(i.path().replace(/^\//,""));let s=e.join("/"),r=i.query();return r&&(s+=`?${r}`),s}return"/"+s.toString()},fromBrowserPath:(t,e)=>a=>{const s=/^\/(search\/)?external\//;if(m.Ay.hasText(a)&&"/"!==a)if(a.match(s)){let t,e=a.replace(s,"").split("/");t=e[0].endsWith(":")?e.shift():"https:",a=`${t}//${e.join("/")}`}else!t.allowSelectCatalog&&t.catalogUrl&&(a=m.Ay.toAbsolute(a,t.catalogUrl,!1));else a=t.catalogUrl;return e.getRequestUrl(a,null,!0)},isExternalUrl:t=>(e,a=!0)=>{if(!t.catalogUrl)return!1;if(e instanceof C()||(e=C()(e)),a&&Array.isArray(t.allowedDomains)&&t.allowedDomains.includes(e.domain()))return!1;let s;if(e.is("relative"))s=e;else if(s=e.relativeTo(t.catalogUrl),s.equals(e))return!0;let i=s.toString();return i.startsWith("//")||i.startsWith("../")},getRequestUrl:(t,e)=>(a,s=null,i=!1)=>{let r=m.Ay.toAbsolute((0,ut.sd)(a,t.stacProxyUrl),s||t.url,!1);return e.isExternalUrl(r)||((0,ut.mA)(r,t.privateQueryParameters),(0,ut.mA)(r,t.globalRequestQueryParameters),i&&(0,ut.mA)(r,t.localRequestQueryParameters)),r.toString()},acceptedLanguages:t=>{const e={en:.1};return Array.isArray(t.supportedLocales)&&t.supportedLocales.forEach((t=>e[t]=.2)),m.Ay.hasText(t.fallbackLocale)&&(e[t.fallbackLocale]=.5),Array.isArray(navigator.languages)&&navigator.languages.forEach((t=>e[t]=.7)),m.Ay.hasText(t.locale)&&(e[t.locale]=1),Object.entries(e).sort(((t,e)=>t[1]>e[1]?-1:t[1]e>=1?t:`${t};q=${e}`)).join(",")}},mutations:{config(t,e){for(let a in e){let s=e[a];switch(a){case"catalogTitle":t.catalogTitle=s;break;case"catalogUrl":"function"===typeof s?t.catalogUrl=s():"string"===typeof s&&(t.catalogUrl=s);break;case"crossOriginMedia":t.crossOriginMedia=["anonymous","use-credentials"].includes(s)?s:null;break;case"cardViewSort":switch(s){case"asc":t.cardViewSort=1;break;case"desc":t.cardViewSort=-1;break;default:t.cardViewSort=0}break;default:t[a]=s}}},languages(t,{uiLanguage:e,dataLanguage:a}){t.dataLanguage=a||null,t.uiLanguage=e||null},setQueryParameter(t,{type:e,key:a,value:i}){e=`${e}QueryParameters`,"undefined"===typeof i?s.Ay.delete(t[e],a):s.Ay.set(t[e],a,i)},setRequestHeader(t,{key:e,value:a}){"undefined"===typeof a?s.Ay.delete(t.requestHeaders,e):s.Ay.set(t.requestHeaders,e,a)},requestAuth(t,e){"function"===typeof e?t.doAuth.push(e):t.doAuth=[]},setAuthData(t,e){t.authData=e},state(t,e){t.stateQueryParameters=e},updateState(t,{type:e,value:a}){null===a||"undefined"===typeof a?s.Ay.delete(t.stateQueryParameters,e):s.Ay.set(t.stateQueryParameters,e,a)},openCollapsible(t,{type:e,uid:a}){const s=t.stateQueryParameters[e].indexOf(a);-1===s&&t.stateQueryParameters[e].push(a)},closeCollapsible(t,{type:e,uid:a}){const i=t.stateQueryParameters[e].indexOf(a);i>-1&&s.Ay.delete(t.stateQueryParameters[e],i)},updateLoading(t,{url:e,show:a}){let i=t.database[e];s.Ay.set(i,"show",a||i.show)},loading(t,{url:e,loading:a}){s.Ay.set(t.database,e,a),a.show&&(t.url=e)},loaded(t,{url:e,data:a}){s.Ay.set(t.database,e,(0,ut.Pj)(t,a))},clear(t,e){s.Ay.delete(t.database,e)},resetCatalog(e,s){Object.assign(e,i()),Object.assign(e,a()),e.supportedLocales.includes(e.locale)||(e.locale=t.locale),s&&(e.catalogUrl=t.catalogUrl,e.catalogTitle=t.catalogTitle,e.database={})},resetPage(t){Object.assign(t,a())},setPageMetadata(t,{title:e,description:a}){t.title=e,"undefined"!==typeof a&&(t.description=a)},showPage(t,{url:e,title:a,description:s,stac:i}){if(i||(i=t.database[e]||null),t.url=e||null,t.data=i instanceof v.A?i:null,t.description=s,a)t.title=a;else if(t.title=v.A.getDisplayTitle(t.data,t.catalogTitle),t.data){let e=t.data.getMetadata("description");m.Ay.hasText(e)&&(t.description=e)}if(t.data){let e=t.data.isItem()?t.data.properties:t.data,a=Array.isArray(e.languages)?e.languages.slice():[];m.Ay.isObject(e.language)&&a.unshift(e.language),t.dataLanguages=a.filter((t=>m.Ay.isObject(t)&&"string"===typeof t.code))}},errored(t,{url:e,error:a}){a instanceof Error||(a=new Error(a)),s.Ay.set(t.database,e,a)},queue(t,e){t.queue.push(e)},unqueue(t,e){let a=t.queue.indexOf(e);-1!==a&&t.queue.splice(a,1)},removeFromQueue(t,e){t.queue.splice(0,e)},setConformanceClasses(t,e){Array.isArray(e)&&(t.conformsTo=e)},setApiItemsLink(t,e){t.apiItemsLink=e},toggleApiItemsLoading(t,e=""){t.apiItemsLoading[e]?s.Ay.delete(t.apiItemsLoading,e):s.Ay.set(t.apiItemsLoading,e,!0)},setApiItems(t,{data:e,stac:a,show:s}){if(!m.Ay.isObject(e)||!Array.isArray(e.features))return;let i=e.features.map((e=>(0,ut.Pj)(t,e)));s&&(t.apiItems=i);let r=m.Ay.getPaginationLinks(e);s&&(t.apiItemsPagination=r),a instanceof v.A&&a.setApiData(i,r.next,r.prev)},addApiCollections(t,{data:e,stac:a,show:s}){if(!m.Ay.isObject(e)||!Array.isArray(e.collections))return;let i=e.collections.map((e=>(0,ut.Pj)(t,e))),r=m.Ay.getLinkWithRel(e.links,"next");s&&(t.nextCollectionsLink=r,t.apiCollections=t.apiCollections.concat(i)),a instanceof v.A&&a.setApiData(i,r)},resetApiItems(t,e){t.apiItems=[],t.apiItemsLink=e,t.apiItemsPagination={}},parents(t,e){t.parents=e},showGlobalError(t,e){e&&console.trace(e),t.globalError=e}},actions:{async config(t,e){const a=Object.assign({},t.state);t.commit("config",e);for(let s in e){let e=t.state[s];if(e===a[s])switch(s){case"authConfig":await t.dispatch("auth/updateMethod",e);break}}},async switchLocale(t,{locale:e,userSelected:a}){if(await t.dispatch("config",{locale:e}),t.state.storeLocale&&a){const t=new ot.A;t.set("locale",e)}let s=(0,dt.f5)(t.state.supportedLocales,e,t.state.fallbackLocale),i=t.state.dataLanguages.map((t=>t.code)),r=t.state.dataLanguages.length>0?t.state.dataLanguages[0].code:s,n=(0,dt.f5)(i,e,r);await(0,k.fH)(s),pt().setLocales([s,t.state.fallbackLocale]),pt().setTranslator(k._),await(0,k.SM)(s),t.commit("languages",{dataLanguage:n,uiLanguage:s}),t.commit("setQueryParameter",{type:"state",key:"language",value:e})},async loadBackground(t,e){let a=t.state.queue.slice(0,e);if(a.length>0){let s=[];for(let e of a)s.push(t.dispatch("load",{url:e}));return t.commit("removeFromQueue",e),await Promise.all(s)}},async loadParents(t){if(!(t.state.data instanceof v.A))return void t.commit("parents",[]);let e=[],a=t.state.data;while(a){let s=a.getLinkWithRel("parent")||a.getLinkWithRel("root");if(!s)break;let i=m.Ay.toAbsolute(s.href,a.getAbsoluteUrl());await t.dispatch("load",{url:i});let r=t.getters.getStac(i,!0);if(r instanceof Error)return void t.commit("parents",r);if(r===a)break;e.push(r),a=r}t.commit("parents",e)},async tryLogin(t,{url:e,action:a}){t.commit("clear",e),t.commit("errored",{url:e,error:new m.fe(k.Ay.t("authentication.unauthorized"))}),a&&t.commit("auth/addAction",a),await t.dispatch("auth/requestLogin")},async load(t,a){let{url:s,show:i,force:r,noRetry:n}=a;const o=t.getters.toBrowserPath(s);s=m.Ay.toAbsolute(s,t.state.url),await t.dispatch("auth/waitForAuth"),r&&t.commit("clear",s);let l=new ut.Rh(i),c=t.state.database[s];if(c instanceof ut.Rh)return void t.commit("updateLoading",{url:s,show:i});const u=c instanceof v.A&&!c.isPotentiallyIncomplete();if(!u){t.commit("loading",{url:s,loading:l});try{const a=await(0,ut.FF)(t,s);if(!m.Ay.isObject(a.data))throw new m.fe(k.Ay.t("errors.invalidJsonObject"));if(c=new v.A(a.data,s,o),t.commit("loaded",{url:s,data:c}),i){let a=c.getLocaleLink(t.state.dataLanguage);if(a)return void e.replace(t.getters.toBrowserPath(a.href))}let r=c.getStacLinkWithRel("conformance");Array.isArray(c.conformsTo)&&c.conformsTo.length>0?t.commit("setConformanceClasses",c.conformsTo):r&&await t.dispatch("loadOgcApiConformance",r)}catch(d){return!n&&t.state.authConfig&&(0,ut.HD)(d)?void await t.dispatch("tryLogin",{url:s,action:()=>t.dispatch("load",Object.assign({noRetry:!0,force:!0,show:!0},a))}):(console.error(d),void t.commit("errored",{url:s,error:d}))}}if(c.getApiCollectionsLink()){let e={stac:c,show:l.show};try{await t.dispatch("loadNextApiCollections",e)}catch(d){t.commit("showGlobalError",{message:k.Ay.t("errors.loadApiCollectionsFailed"),error:d})}}else if(c.getApiItemsLink()){let e={stac:c,show:l.show};try{await t.dispatch("loadApiItems",e)}catch(d){t.commit("showGlobalError",{message:k.Ay.t("errors.loadApiItemsFailed"),error:d})}}if(!t.getters.root){let e=t.state.catalogUrl;if(!e){const a=c.getLinkWithRel("root");a&&(e=m.Ay.toAbsolute(a.href,s),await t.dispatch("config",{catalogUrl:e}))}e&&await t.dispatch("load",{url:e})}l.show&&t.commit("showPage",{url:s})},async loadApiItems(t,e){let{link:a,stac:s,show:i,filters:r,noRetry:n}=e,o=s instanceof v.A?s.id:"";t.commit("toggleApiItemsLoading",o);try{let e=t.state.url;s instanceof v.A&&(a=s.getApiItemsLink(),e=s.getAbsoluteUrl()),a=m.Ay.addFiltersToLink(a,r,t.state.itemsPerPage);let n=await(0,ut.FF)(t,a);if(m.Ay.isObject(n.data)&&Array.isArray(n.data.features))return n.data.features=n.data.features.map((a=>{try{if(!m.Ay.isObject(a)||"Feature"!==a.type)return null;let i,r=m.Ay.getLinkWithRel(a.links,"self");if(null!==r&&void 0!==r&&r.href)i=m.Ay.toAbsolute(r.href,e);else{if("undefined"===typeof a.id)return null;{var s;let r=null===(s=t.getters.root)||void 0===s?void 0:s.getApiCollectionsLink();if(e)i=m.Ay.toAbsolute(`items/${a.id}`,e);else if(r)i=m.Ay.toAbsolute(`${o}/items/${a.id}`,r.href);else{if(!t.state.catalogUrl)return null;i=m.Ay.toAbsolute(`collections/${o}/items/${a.id}`,t.state.catalogUrl)}}}let n=t.getters.getStac(i);return n||(n=new v.A(a,i,t.getters.toBrowserPath(i)),n.markPotentiallyIncomplete(),t.commit("loaded",{data:n,url:i}),n)}catch(i){return console.error(i),null}})).filter((t=>t instanceof v.A)),i&&t.commit("setApiItemsLink",a),t.commit("setApiItems",{data:n.data,stac:s,show:i}),t.commit("toggleApiItemsLoading",o),n;throw new m.fe(k.Ay.t("errors.invalidStacItems"))}catch(l){if(t.commit("toggleApiItemsLoading",o),!n&&t.state.authConfig&&(0,ut.HD)(l))return void await t.dispatch("tryLogin",{url:a.href,action:()=>t.dispatch("loadApiItems",Object.assign({noRetry:!0,force:!0},e))});throw l}},async loadNextApiCollections(t,e){let a,{stac:s,show:i,noRetry:r}=e;if(s){if(t.state.apiCollections.length>0)return;a=s.getLinkWithRel("data")}else s=t.state.data,a=t.state.nextCollectionsLink;if(a)try{let e=await(0,ut.FF)(t,a);if(!m.Ay.isObject(e.data)||!Array.isArray(e.data.collections))throw new m.fe(k.Ay.t("errors.invalidStacCollections"));e.data.collections=e.data.collections.map((e=>{let a,i=m.Ay.getLinkWithRel(e.links,"self");a=null!==i&&void 0!==i&&i.href?m.Ay.toAbsolute(i.href,t.state.url||s.getAbsoluteUrl()):m.Ay.toAbsolute(`collections/${e.id}`,t.state.catalogUrl||s.getAbsoluteUrl());let r=t.getters.getStac(a);return r||(r=new v.A(e,a,t.getters.toBrowserPath(a)),r.markPotentiallyIncomplete(),t.commit("loaded",{data:r,url:a}),r)})),t.commit("addApiCollections",{data:e.data,stac:s,show:i})}catch(n){if(!r&&t.state.authConfig&&(0,ut.HD)(n))return void await t.dispatch("tryLogin",{url:a.href,action:()=>t.dispatch("loadNextApiCollections",Object.assign({noRetry:!0,force:!0},e))});throw n}},async loadOgcApiConformance(t,e){let a=await(0,ut.FF)(t,e);m.Ay.isObject(a.data)&&Array.isArray(a.data.conformsTo)&&t.commit("setConformanceClasses",a.data.conformsTo)},async loadGeoJson(t,e){try{let a=await(0,ut.FF)(t,e);return a.data}catch(a){return null}},async retryAfterAuth(t){let e=e=>t.commit("showGlobalError",{error:e,message:k.Ay.t("errors.authFailed")});for(let s of t.state.doAuth)try{let t=s();t instanceof Promise&&t.catch(e)}catch(a){e(a)}}}})}var mt=gt,bt=a(78933),yt=a(92999),At=a(12670),vt=a(1169),wt=a(19680),Ct=a(35915),kt=a(56967),_t=a(80262),Lt=a(93444),jt=(a(59313),a(85952)),xt=function(){var t=this,e=t._self._c;return e("b-row",[e("b-col",{attrs:{md:"12"}},[e("Source",{staticClass:"float-right",attrs:{title:t.title,stacUrl:t.url,stac:t.data}}),e("h1",[t.icon?[e("img",{staticClass:"icon mr-2",attrs:{src:t.icon.href,alt:t.icon.title,title:t.icon.title}})]:t._e(),e("span",{staticClass:"title"},[t._v(t._s(t.title))])],2),t.isStacChooser()?t._e():e("p",{staticClass:"lead"},[t.containerLink?e("i18n",{staticClass:"in mr-3",attrs:{tag:"span",path:"in"},scopedSlots:t._u([{key:"catalog",fn:function(){return[e("StacLink",{attrs:{data:t.containerLink}})]},proxy:!0}],null,!1,1458487365)}):t._e(),e("b-button-group",[t.back?e("b-button",{attrs:{to:t.selfBrowserLink,title:t.$t("goBack.description",{type:t.type}),variant:"outline-primary",size:"sm"}},[e("b-icon-arrow-left"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goBack.label")))])],1):t._e(),t.parentLink?e("b-button",{attrs:{to:t.toBrowserPath(t.parentLink.href),title:t.parentLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-arrow-90deg-up"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToParent.label")))])],1):t._e(),t.collectionLink?e("b-button",{attrs:{to:t.toBrowserPath(t.collectionLink.href),title:t.collectionLinkTitle,variant:"outline-primary",size:"sm"}},[e("b-icon-folder-symlink"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("goToCollection.label")))])],1):t._e(),e("b-button",{directives:[{name:"b-toggle",rawName:"v-b-toggle.sidebar",modifiers:{sidebar:!0}}],attrs:{variant:"outline-primary",size:"sm",title:t.$t("browse")},on:{click:function(e){return t.$emit("enableSidebar")}}},[e("b-icon-book"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("browse")))])],1),t.canSearch?e("b-button",{attrs:{variant:"outline-primary",size:"sm",to:t.searchBrowserLink,title:t.$t("search.title"),pressed:t.isSearchPage()}},[e("b-icon-search"),t._v(" "),e("span",{staticClass:"button-label prio"},[t._v(t._s(t.$t("search.title")))])],1):t._e(),t.canAuthenticate?e("b-button",{attrs:{variant:"outline-primary",size:"sm",title:t.authTitle},on:{click:t.logInOut}},[e(t.authIcon,{tag:"component"}),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.authLabel))])],1):t._e()],1)],1)],1)],1)},St=[],Tt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"share mt-1"},[e("b-button-group",[t.showRoot?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-root-btn"}},[e("b-icon-box"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.rootTitle))])],1):t._e(),t.stacUrl?e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-link-btn",title:t.$t("source.detailsAboutSource")}},[e("b-icon-link"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.label")))])],1):t._e(),e("b-button",{attrs:{size:"sm",variant:"outline-primary",id:"popover-share-btn",title:t.$t("source.share.withOthers")}},[e("b-icon-share"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.share.label")))])],1),e("b-dropdown",{attrs:{size:"sm",variant:"outline-primary",right:"",title:t.$t("source.language.switch")},scopedSlots:t._u([{key:"button-content",fn:function(){return[e("b-icon-flag"),t._v(" "),e("span",{staticClass:"button-label"},[t._v(t._s(t.$t("source.language.label",{currentLanguage:t.currentLanguage})))])]},proxy:!0}])},t._l(t.languages,(function(a){return e("b-dropdown-item",{key:a.code,staticClass:"lang-item",on:{click:function(e){return t.switchLocale({locale:a.code,userSelected:!0})}}},[t.locale===a.code?e("b-icon-check"):e("b-icon-blank"),e("span",{staticClass:"title"},[e("span",{attrs:{lang:a.code}},[t._v(t._s(a.native))]),a.global&&a.global!==a.native?[t._v(" / "),e("span",{attrs:{lang:"en"}},[t._v(t._s(a.global))])]:t._e()],2),!t.supportsLanguageExt||a.ui&&a.data?t._e():e("b-icon-exclamation-triangle",{staticClass:"ml-2",attrs:{title:a.ui?t.$t("source.language.onlyUI"):t.$t("source.language.onlyData")}})],1)})),1)],1),t.showRoot?e("b-popover",{attrs:{id:"popover-root",target:"popover-root-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.rootTitle}},[e("RootStats")],1):t._e(),t.stacUrl?e("b-popover",{attrs:{id:"popover-link",target:"popover-link-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.$t("source.title")}},[t.stac?[t.stacId?e("b-row",{staticClass:"stac-id"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.id")))]),e("b-col",[e("code",[t._v(t._s(t.stacId))]),e("CopyButton",{staticClass:"ml-2",attrs:{copyText:t.stacId,"button-props":{size:"sm"},variant:"primary"}})],1)],1):t._e(),t.stacVersion?e("b-row",{staticClass:"stac-version"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.stacVersion")))]),e("b-col",[t._v(t._s(t.stacVersion))])],1):t._e(),e("b-row",{staticClass:"stac-valid"},[e("b-col",{attrs:{cols:"4"}},[t._v(t._s(t.$t("source.valid")))]),e("b-col",[e("Validation",{attrs:{data:t.stac}})],1)],1),e("hr")]:t._e(),e("Url",{attrs:{id:"stacUrl",url:t.stacUrl,label:t.$t("source.locatedAt")}})],2):t._e(),e("b-popover",{attrs:{id:"popover-share",target:"popover-share-btn",triggers:"focus",placement:"bottom",container:"stac-browser",title:t.$t("source.share.title")}},[e("Url",{attrs:{id:"browserUrl",url:t.browserUrl(),label:t.$t("source.share.sharePageWithOthers"),open:!1}}),t.enableSocialSharing?[e("hr"),e("SocialSharing",{attrs:{text:t.sharingMessage,title:t.title,url:t.browserUrl()}})]:t._e()],2)],1)},It=[],Ot=a(15378),$t=a(9656),Pt=a(82948),Bt=a(30278),Mt=function(){var t=this,e=t._self._c;return e("b-form-group",{attrs:{label:t.label,"label-for":t.id}},[e("b-input-group",{attrs:{size:"sm"}},[e("b-form-input",{ref:"input",attrs:{id:t.id,value:t.url,readonly:""}}),e("b-input-group-append",[e("CopyButton",{attrs:{copyText:t.url,variant:"primary"}}),t.open?e("b-button",{attrs:{href:t.url,target:"_blank",variant:"primary",title:t.$t("open")}},[e("b-icon-arrow-up-right-square")],1):t._e()],1)],1)],1)},Ft=[],Et=a(69771),Ut=a(19115),Rt=a(89576),qt=a(16167),Dt={name:"Share",components:{BFormGroup:Et.a,BFormInput:Ut.b,BIconArrowUpRightSquare:Pt.xur,BInputGroup:Rt.Y,BInputGroupAppend:qt.G,CopyButton:()=>Promise.resolve().then(a.bind(a,99975))},props:{id:{type:String,required:!0},url:{type:String,required:!0},label:{type:String,required:!0},open:{type:Boolean,default:!0}}},zt=Dt,Ht=(0,E.A)(zt,Mt,Ft,!1,null,"74684ede",null),Nt=Ht.exports,Wt=a(99975),Qt=function(){var t=this,e=t._self._c;return e("section",t._l(t.urls,(function(a,s){return e("b-button",{key:s,staticClass:"service mr-1",class:s,attrs:{href:a,target:"_blank"}},[e("i",{staticClass:"svg",class:s}),t._v(" "+t._s(t.$t(`source.share.${s}`))+" ")])})),1)},Vt=[],Gt={name:"Source",props:{text:{type:String,required:!0},title:{type:String,required:!0},url:{type:String,required:!0}},data(){return{urlTemplates:{email:"mailto:?subject={title}&body={text}",bsky:"https://bsky.app/intent/compose?text={text}",mastodon:"https://mastodon.social/share?text={text}",x:"https://x.com/intent/tweet?text={text}"}}},computed:{...(0,o.aH)(["socialSharing"]),urls(){const t=encodeURIComponent(this.text),e=encodeURIComponent(this.title),a=encodeURIComponent(this.url),s={};for(const i of this.socialSharing){if(!this.urlTemplates[i])continue;const r=this.urlTemplates[i];s[i]=r.replace("{text}",t).replace("{title}",e).replace("{url}",a)}return s}}},Kt=Gt,Jt=(0,E.A)(Kt,Qt,Vt,!1,null,"8e71bab0",null),Xt=Jt.exports;const Yt="https://stac-extensions.github.io/language/v1.*/schema.json";var Zt={name:"Source",components:{BDropdown:Ot.U,BDropdownItem:$t.H,BIconBlank:Pt.ufk,BIconBox:Pt.H$j,BIconCheck:Pt.GSz,BIconExclamationTriangle:Pt.T12,BIconFlag:Pt.c_U,BIconLink:Pt.IfX,BIconShare:Pt.v6r,BPopover:Bt.u,RootStats:()=>a.e(143).then(a.bind(a,40143)),Url:Nt,CopyButton:Wt["default"],SocialSharing:Xt,Validation:()=>Promise.all([a.e(537),a.e(287),a.e(9099)]).then(a.bind(a,49099))},props:{title:{type:String,required:!0},stacUrl:{type:String,default:null},stac:{type:Object,default:null}},computed:{...(0,o.aH)(["conformsTo","dataLanguages","locale","socialSharing","supportedLocales","uiLanguage","valid"]),...(0,o.L8)(["supportsExtension","root"]),stacVersion(){var t;return null===(t=this.stac)||void 0===t?void 0:t.stac_version},stacId(){var t;return null===(t=this.stac)||void 0===t?void 0:t.id},showRoot(){return!!this.root&&(Array.isArray(this.conformsTo)&&this.conformsTo.length>0||m.Ay.isObject(this.root["stats:collections"])||m.Ay.isObject(this.root["stats:catalogs"])||m.Ay.isObject(this.root["stats:items"]))},rootTitle(){return Array.isArray(this.conformsTo)&&this.conformsTo.length>0?this.$t("index.api"):this.$t("index.catalog")},currentLanguage(){let t=this.languages.find((t=>t.code===this.locale));return t?t.native:"-"},enableSocialSharing(){return Array.isArray(this.socialSharing)&&this.socialSharing.length>0},sharingMessage(){const t=window.location.toString();return this.$t("source.share.message",{title:this.title,url:t})},supportsLanguageExt(){return this.supportsExtension(Yt)},languages(){let t=[];for(let a of this.supportedLocales)t.push({code:a,native:this.$t(`languages.${a}.native`),global:this.$t(`languages.${a}.global`),ui:!0});for(let a of this.dataLanguages){if(!m.Ay.isObject(a)||!a.code||this.supportedLocales.includes(a.code))continue;let e={code:a.code};e.native=a.name||a.alternate||a.code,e.global=a.alternate||a.name||a.code,e.data=!0,t.push(e)}if(this.supportsExtension(Yt)){const e=(0,dt.E0)(this.supportedLocales),a=(0,dt.E0)(this.dataLanguages.map((t=>t.code)));for(let s of t)s.ui||(s.ui=Boolean((0,dt.f5)(e,s.code,null))),s.data||(s.data=Boolean((0,dt.f5)(a,s.code,null)))}const e=new Intl.Collator(this.uiLanguage);return t.sort(((t,a)=>e.compare(t.global,a.global)))}},methods:{...(0,o.i0)(["switchLocale"]),browserUrl(){return window.location.toString()}}},te=Zt,ee=(0,E.A)(te,Tt,It,!1,null,"0aa087bf",null),ae=ee.exports,se=a(58581),ie={name:"StacHeader",components:{BIconArrow90degUp:Pt.JK4,BIconArrowLeft:Pt.sV1,BIconBook:Pt.VOl,BIconFolderSymlink:Pt.P_X,BIconSearch:Pt.S8S,BIconLock:Pt.D8r,BIconUnlock:Pt.a_V,StacLink:se["default"],Source:ae},computed:{...(0,o.aH)(["allowSelectCatalog","catalogUrl","data","url","title"]),...(0,o.L8)(["canSearch","root","parentLink","collectionLink","toBrowserPath"]),...(0,o.L8)("auth",{authMethod:"method"}),...(0,o.L8)("auth",["canAuthenticate","isLoggedIn"]),authIcon(){return this.isLoggedIn?"b-icon-unlock":"b-icon-lock"},authTitle(){return this.authMethod.getButtonTitle()},authLabel(){return this.isLoggedIn?this.authMethod.getLogoutLabel():this.authMethod.getLoginLabel()},back(){return"validation"===this.$route.name},selfBrowserLink(){return this.toBrowserPath(this.url)},type(){if(this.data instanceof v.A){if(this.data.isItem())return this.$tc("stacItem");if(this.data.isCollection())return this.$tc("stacCollection");if(this.data.isCatalog())return this.$tc("stacCatalog");if(m.Ay.hasText(this.data.type))return this.data.type}return null},collectionLinkTitle(){return this.collectionLink&&m.Ay.hasText(this.collectionLink.title)?this.$t("goToCollection.descriptionWithTitle",this.collectionLink):this.$t("goToCollection.description")},parentLinkTitle(){return this.parentLink&&m.Ay.hasText(this.parentLink.title)?this.$t("goToParent.descriptionWithTitle",this.parentLink):this.$t("goToParent.description")},icon(){if(this.data instanceof v.A){let t=this.data.getIcons();if(t.length>0)return t[0]}return null},searchBrowserLink(){if(!this.canSearch)return null;let t;return this.data instanceof v.A&&!this.data.equals(this.root)&&(t=this.data.getSearchLink()),t?`/search${this.data.getBrowserPath()}`:this.root&&this.allowSelectCatalog?`/search${this.root.getBrowserPath()}`:"/search"},containerLink(){return this.catalogUrl&&this.url===this.catalogUrl?null:this.root?m.Ay.equalUrl(this.root.getAbsoluteUrl(),this.url)?null:{href:this.root.getAbsoluteUrl(),rel:"root",title:v.A.getDisplayTitle(this.root)}:this.collectionLink||this.parentLink}},methods:{...(0,o.PY)("auth",["addAction"]),...(0,o.i0)("auth",["requestLogin","requestLogout"]),isSearchPage(){return"search"===this.$router.currentRoute.name},isStacChooser(){return"choose"===this.$router.currentRoute.name},async logInOut(){this.url&&this.addAction((()=>this.$store.dispatch("load",{url:this.url,show:!0,force:!0,noRetry:!0}))),this.isLoggedIn?await this.requestLogout():await this.requestLogin()}}},re=ie,ne=(0,E.A)(re,xt,St,!1,null,"5da16391",null),oe=ne.exports,le=function(){var t=this,e=t._self._c;return e(t.authComponent,{tag:"component",on:{submit:t.submit,reset:t.reset}})},ce=[],ue={name:"Authentication",components:{ApiKey:()=>a.e(7197).then(a.bind(a,87197)),Basic:()=>a.e(7820).then(a.bind(a,47820))},computed:{...(0,o.L8)("auth",["method","isLoggedIn"]),authComponent(){return this.method.getComponent()},authComponentProps(){return this.method.getComponentProps()}},beforeCreate(){this.isLoggedIn&&this.$store.dispatch("auth/finalizeLogout")},methods:{async reset(){await this.$store.dispatch("auth/abortLogin")},async submit(t){await this.$store.dispatch("auth/finalizeLogin",t)}}},de=ue,he=(0,E.A)(de,le,ce,!1,null,null,null),pe=he.exports;s.Ay.use(bt.q),s.Ay.use(yt.p),s.Ay.use(At.sG),s.Ay.use(vt.z),s.Ay.use(wt.qc),s.Ay.use(Ct.CG),s.Ay.use(kt.z),s.Ay.directive("b-toggle",_t.z),s.Ay.directive("b-visible",Lt.p),s.Ay.use(n.Ay);const fe=new n.Ay({mode:l.A.historyMode,base:l.A.pathPrefix,routes:st(l.A),scrollBehavior:()=>({x:0,y:0})});s.Ay.use(o.Ay);const ge=mt(l.A,fe);let me={},be={};for(let ke in l.A)me[ke]={default:["object","function"].includes(typeof l.A[ke])?()=>l.A[ke]:l.A[ke]},be[ke]={immediate:!0,handler:async function(t){await this.$store.dispatch("config",{[ke]:t})}};var ye={name:"StacBrowser",router:fe,store:ge,components:{Authentication:pe,ErrorAlert:jt.A,Sidebar:()=>a.e(7957).then(a.bind(a,57957)),StacHeader:oe},props:{...me},data(){return{sidebar:!1,error:null,onDataLoaded:null}},computed:{...(0,o.aH)(["allowSelectCatalog","data","dataLanguage","description","globalError","stateQueryParameters","title","uiLanguage","url"]),...(0,o.aH)({detectLocaleFromBrowserFromVueX:"detectLocaleFromBrowser",supportedLocalesFromVueX:"supportedLocales",storeLocaleFromVueX:"storeLocale"}),...(0,o.L8)(["displayCatalogTitle","fromBrowserPath","isExternalUrl","root","supportsConformance","toBrowserPath"]),...(0,o.L8)("auth",["showLogin"]),browserVersion(){return"3.3.1"}},watch:{...be,title(t){document.title=t,document.getElementById("og-title").setAttribute("content",t)},description(t){const e=m.Ay.summarizeMd(t,200);document.getElementById("meta-description").setAttribute("content",e),document.getElementById("og-description").setAttribute("content",e)},uiLanguage:{immediate:!0,async handler(t){t&&(this.$root.$i18n.locale=t,document.documentElement.setAttribute("lang",t),document.getElementById("og-locale").setAttribute("content",t),this.$root.$emit("uiLanguageChanged",t))}},dataLanguage:{immediate:!0,async handler(t){if(t&&this.data instanceof v.A){let e=this.data.getLocaleLink(t);if(e){let t=Object.assign({},this.stateQueryParameters);this.$router.push(this.toBrowserPath(e.href)),this.$store.commit("state",t)}else if(this.supportsConformance(k.Aj)){let t=this.url;this.$store.commit("resetCatalog",!0),await this.$store.dispatch("load",{url:t,show:!0})}}}},stateQueryParameters:{deep:!0,handler(){let t={};for(const[e,a]of Object.entries(this.$route.query))e.startsWith(".")||(t[e]=a);for(const[e,a]of Object.entries(this.stateQueryParameters)){let s=`.${e}`;Array.isArray(a)?a.length>0&&(t[s]=a.join(",")):null!==a&&(t[s]=a)}this.$router.replace({query:t}).catch((t=>{if(!n.Ay.isNavigationFailure(t,n.Ay.NavigationFailureType.duplicated))throw Error(t)}))}},root(t,e){const a=["apiCatalogPriority","authConfig","cardViewMode","cardViewSort","crossOriginMedia","defaultThumbnailSize","displayGeoTiffByDefault","showThumbnailsAsAssets"];let s=!t||e&&m.Ay.isObject(e["stac_browser"]),i=t&&m.Ay.isObject(t["stac_browser"]);for(let r of a){let e;s&&(e=l.A[r]),i&&"undefined"!==typeof t["stac_browser"][r]&&(e=t["stac_browser"][r]),"undefined"!==typeof e&&this.$store.dispatch("config",{[r]:e}).catch((t=>console.error(t)))}},data(t){this.onDataLoaded&&t instanceof v.A&&this.onDataLoaded()}},async created(){this.$router.onReady((()=>{this.detectLocale(),this.parseQuery(this.$route)})),this.$router.afterEach(((t,e)=>{if(t.path===e.path)return;let a="resetPage";if(this.allowSelectCatalog&&t.path){let e=this.fromBrowserPath(t.path);this.isExternalUrl(e)&&(a="resetCatalog")}this.$store.commit(a),this.parseQuery(t),document.getElementById("og-url").setAttribute("content",window.location.href)}));const t=new ot.A(!0),e=t.get("authConfig");e&&(t.remove("authConfig"),await this.$store.dispatch("config",{authConfig:e}))},mounted(){this.$root.$on("error",this.showError),setInterval((()=>this.$store.dispatch("loadBackground",3)),200)},methods:{...(0,o.i0)(["switchLocale"]),detectLocale(){let t;if(this.storeLocaleFromVueX){const e=new ot.A;t=e.get("locale")}if(!t&&this.detectLocaleFromBrowserFromVueX&&Array.isArray(navigator.languages)){const e=(0,dt.E0)(this.supportedLocalesFromVueX);for(let a of navigator.languages){const s=(0,dt.f5)(e,a,null);if(s){t=s;break}}}t&&this.supportedLocalesFromVueX.includes(t)&&(this.switchLocale({locale:t}),this.data||(this.onDataLoaded=()=>{this.switchLocale({locale:t}),this.onDataLoaded=null}))},parseQuery(t){var e;let a={};if("history"===this.historyMode){let e=C()(t.hash.replace(/^#/,""));a=e.query(!0)}let s=Object.assign({},t.query,a),i={};for(let r in s){let t=s[r];if(r.startsWith("~"))i.private=m.Ay.isObject(i.private)?i.private:{},i.private[r.substr(1)]=t,delete s[r];else if(r.startsWith(".")){let e=r.substr(1);i.state=m.Ay.isObject(i.state)?i.state:{},Array.isArray(this.stateQueryParameters[e])&&!Array.isArray(t)&&(t=t.split(",")),i.state[e]=t}else m.Ay.isObject(i.localRequest)||(i.localRequest={}),i.localRequest[r]=t}if(m.Ay.size(i)>0)for(let r in i)for(let t in i[r])this.$store.commit("setQueryParameter",{type:r,key:t,value:i[r][t]});null!==i&&void 0!==i&&null!==(e=i.state)&&void 0!==e&&e.language&&this.switchLocale({locale:i.state.language}),m.Ay.size(i.private)>0&&this.$router.replace({query:s})},showError(t,e){this.$store.commit("showGlobalError",{error:t,message:e})},hideError(){this.$store.commit("showGlobalError",null)}}},Ae=ye,ve=(0,E.A)(Ae,i,r,!1,null,null,null),we=ve.exports;function Ce(){return(0,k.Qm)().then((()=>new s.Ay({i18n:k.Ay,render:t=>t(we)}).$mount("#stac-browser")))}s.Ay.config.productionTip=!1,Ce()},31831:function(t,e,a){"use strict";a(44114),a(98992),a(54520),a(72577),a(81454);var s=a(2566),i=a(71321),r=a.n(i),n=a(39071);let o=0;class l{constructor(t,e,a,i=!0){this._id=o++,this._url=e,this._path=a,this._apiChildrenListeners={},this._incomplete=!1,this._apiChildren={list:[],prev:!1,next:!1},i&&("FeatureCollection"===t.type?t.features=t.features.map((t=>r().item(t,!1))):t=r().stac(t,!1));for(let s in t)"undefined"===typeof this[s]&&(this[s]=t[s]);if(!s.Ay.hasText(this.type))throw new Error("Not a valid STAC data source (no `type` present)")}isPotentiallyIncomplete(){return this._incomplete}markPotentiallyIncomplete(){this._incomplete=!0}isItem(){return"Feature"===this.type}isCatalog(){return"Catalog"===this.type}isCatalogLike(){return this.isCatalog()||this.isCollection()}isCollection(){return"Collection"===this.type}isItemCollection(){return"FeatureCollection"===this.type}hasApiData(){return this._apiChildren.list.length>0}setApiDataListener(t,e=null){"function"===typeof e?this._apiChildrenListeners[t]=e:delete this._apiChildrenListeners[t]}setApiData(t,e=null,a=null){a&&(this._apiChildren.prev=a),e&&(this._apiChildren.next=e),this._apiChildren.list=t;for(let i in this._apiChildrenListeners)try{this._apiChildrenListeners[i](this._apiChildren)}catch(s){console.error(s)}}getFileFormats(){let t=[];return(this.isItem()||this.isCollection())&&s.Ay.isObject(this.assets)&&(t=t.concat(Object.values(this.assets))),this.isCollection()&&s.Ay.isObject(this.item_assets)&&(t=t.concat(Object.values(this.item_assets))),t.filter((t=>Array.isArray(t.roles)&&t.roles.includes("data")&&"string"===typeof t.type)).map((t=>t.type)).filter(((t,e,a)=>a.indexOf(t)===e))}getChildren(t=null){if(!this.isCatalogLike())return[];let e=!t||"collections"===t,a=!t||"childs"===t,s=[];return e&&this._apiChildren.prev&&s.push(this._apiChildren.prev),e&&this._apiChildren.list.length>0&&(s=this._apiChildren.list.slice(0)),a&&(s=l.addMissingChildren(s,this).concat(this.getLinksWithRels(["item"]))),e&&this._apiChildren.next&&s.push(this._apiChildren.next),s}static addMissingChildren(t,e){let a=e.getStacLinksWithRel("child").filter((a=>{let i=s.Ay.toAbsolute(a.href,e.getAbsoluteUrl());return!t.find((t=>t.getAbsoluteUrl()===i))}));return a.concat(t)}getSearchLink(){let t=s.Ay.getLinksWithRels(this.links,["search"]).filter((t=>s.Ay.isMediaType(t.type,s.oV))).map((t=>Object.assign({},t,{href:s.Ay.toAbsolute(t.href,this._url)}))),e=t.find((t=>s.Ay.hasText(t.method)&&"POST"===t.method.toUpperCase()));return e||t[0]||null}getApiCollectionsLink(){return this.getStacLinkWithRel("data")}getApiItemsLink(){return this.getStacLinkWithRel("items")}getMetadata(t){return this.isItem()?this.properties[t]:this.isCatalogLike()?this[t]:null}getBrowserPath(){return this._path}getAbsoluteUrl(){return this._url}getLocaleLink(t,e=null){let a,i=this.getStacLinksWithRel("alternate").filter((t=>s.Ay.hasText(t.hreflang)));a=Array.isArray(this.languages)?this.languages.map((t=>t.code)):i.map((t=>t.hreflang));let r=(0,n.f5)(a,t,e);return i.find((t=>t.hreflang===r))||null}getStacLinksWithRel(t,e=!0){return s.Ay.getLinksWithRels(this.links,[t]).filter((t=>s.Ay.isStacMediaType(t.type,e)))}getStacLinkWithRel(t,e=!0){const a=this.getStacLinksWithRel(t,e);return a.length>0?a[0]:null}getLinkWithRel(t){return s.Ay.getLinkWithRel(this.links,t)}getLinksWithRels(t){return s.Ay.getLinksWithRels(this.links,t)}getLinksWithOtherRels(t){return s.Ay.getLinksWithOtherRels(this.links,t)}getAssetsWithRoles(t){let e=[];if(s.Ay.isObject(this.assets))for(let a in this.assets){let i=this.assets[a];s.Ay.isObject(i)&&"string"===typeof i.href&&Array.isArray(i.roles)&&i.roles.find((e=>t.includes(e)))&&e.push(i)}return e}static getDisplayTitle(t,e=null){Array.isArray(t)||(t=[t]);let a=t.find((t=>t instanceof l)),i=t.find((t=>s.Ay.isObject(t)&&!(t instanceof l)));return a&&s.Ay.hasText(a.getTitle())?a.getTitle():i&&s.Ay.hasText(i.title)?i.title:a&&s.Ay.hasText(a.id)?a.id:s.Ay.hasText(e)?e:a?s.Ay.titleForHref(a.getAbsoluteUrl(),!0):i&&s.Ay.hasText(i.href)?s.Ay.titleForHref(i.href,!0):"Untitled"}getTitle(){return this.getMetadata("title")}_linkToAbsolute(t){return Object.assign({},t,{href:s.Ay.toAbsolute(t.href,this.getAbsoluteUrl())})}getIcons(){return this.getLinksWithRels(["icon"]).filter((t=>s.Ay.canBrowserDisplayImage(t))).map((t=>this._linkToAbsolute(t)))}getThumbnails(t=!1,e=null){let a=this.getAssetsWithRoles(["thumbnail","overview"]);if(0===a.length&&(a=this.getLinksWithRels(["preview"])),0===a.length&&s.Ay.isObject(this.assets)&&s.Ay.isObject(this.assets.thumbnail)&&(a=[this.assets.thumbnail]),t&&(a=a.filter((t=>s.Ay.canBrowserDisplayImage(t)))),e&&a.length>1){let t=t=>t.roles.includes(e);a=a.filter(t).concat(a.filter((e=>!t(e))))}return a.map((t=>this._linkToAbsolute(t)))}equals(t){return!!s.Ay.isObject(t)&&(this===t||this.id===t.id&&this.type==t.type)}}e.A=l},59203:function(t,e,a){"use strict";a.d(e,{Bv:function(){return n},Eg:function(){return i},ZQ:function(){return r},dL:function(){return l},ol:function(){return o}});const s=["child","collection","item","parent","root","self"],i=["first","last","next","prev","previous"],r=["queryables","http://www.opengis.net/def/rel/ogc/1.0/queryables","ogc-rel:queryables"],n=["canonical","related","derived_from","latest-version","predecessor-version","successor-version","source","alternate"].concat(s).concat(i),o=["conformance","data","items","search","icon","license"].concat(s).concat(i).concat(r),l="http://www.opengis.net/def/rel/ogc/1.0/"},33484:function(t,e,a){"use strict";a.d(e,{FF:function(){return c},HD:function(){return p},Pj:function(){return h},Rh:function(){return o},lx:function(){return l},mA:function(){return f},rM:function(){return u},sd:function(){return d}});var s=a(94335),i=a(84193),r=a.n(i),n=a(2566);class o{constructor(t=!1){this.show=Boolean(t)}}function l(t,e){if("string"===typeof e&&(e={href:e}),!n.Ay.isObject(e)||"string"!==typeof e.href)return{};const a=t.getters.getRequestUrl(e.href);let s={"Accept-Language":t.getters.acceptedLanguages};return n.Ay.hasText(e.type)&&(s.Accept=e.type),t.getters.isExternalUrl(a)||Object.assign(s,t.state.requestHeaders),n.Ay.isObject(e.headers)&&Object.assign(s,e.headers),{method:"string"===typeof e.method?e.method.toLowerCase():"get",url:a,headers:s,data:e.body}}async function c(t,e,a={}){const i=l(t,e);return await(0,s.A)(Object.assign(i,a))}function u(t,e){return t instanceof r()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[1],e[0]):t}function d(t,e){return t instanceof r()&&(t=t.toString()),"string"===typeof t&&Array.isArray(e)?t.replace(e[0],e[1]):t}function h(t,e){return"function"===typeof t.preprocessSTAC&&(e=t.preprocessSTAC(e,t)),Object.freeze(e)}function p(t){var e;return[401,403].includes(null===t||void 0===t||null===(e=t.response)||void 0===e?void 0:e.status)}function f(t,e){if(0==n.Ay.size(e))return t;for(let a in e)t.hasQuery(a)||t.addQuery(a,e[a]);return t}},2566:function(t,e,a){"use strict";a.d(e,{Ay:function(){return A},C8:function(){return b},I5:function(){return g},Yq:function(){return u},df:function(){return m},fe:function(){return y},oV:function(){return c}});a(98992),a(54520),a(72577),a(81454);var s=a(84193),i=a.n(s),r=a(58481),n=a.n(r),o=a(59203);const l=["catalog","collection","item"],c="application/geo+json",u="application/schema+json",d=["application/json",c,"text/json"],h=["image/gif","image/jpg","image/jpeg","image/apng","image/png","image/webp"],p=["image/tiff; application=geotiff; profile=cloud-optimized","image/vnd.stac.geotiff; cloud-optimized=true"],f=["application/geotiff","image/tiff; application=geotiff","image/vnd.stac.geotiff"].concat(p),g=["http","https"],m=h.concat(f),b=m.concat([c]);class y extends Error{constructor(t){super(t)}}class A{static isObject(t){return"object"===typeof t&&t===Object(t)&&!Array.isArray(t)}static size(t){return"object"===typeof t&&null!==t?Array.isArray(t)?t.length:Object.keys(t).length:0}static isStacMediaType(t,e=!1){return A.isMediaType(t,d,e)}static isMediaType(t,e,a=!1){return Array.isArray(e)||(e=[e]),!(!a||t)||"string"===typeof t&&e.includes(t.toLowerCase())}static hasText(t){return"string"===typeof t&&t.length>0}static shortenTitle(t,e,a="…"){if(t.length<=e)return t;let s=a.length,i=e-s,r=Math.ceil(i/2),n=Math.floor(i/2);return t.substr(0,r)+a+t.substr(t.length-n)}static isGdalVfsUri(t){return"string"===typeof t&&t.startsWith("/vsi")&&!t.startsWith("/vsicurl/")}static toAbsolute(t,e,a=!0){return A.normalizeUri(t,e,!1,a)}static normalizeUri(t,e=null,a=!1,s=!0){"string"===typeof t&&t.startsWith("/vsicurl/")&&(t=t.replace(/^\/vsicurl\//,""));let r=i()(t);return e&&r.is("relative")&&!A.isGdalVfsUri(t)&&(r=r.absoluteTo(e)),r.normalize(),a&&(r.query(""),r.fragment("")),s?r.toString():r}static getLinkWithRel(t,e){return Array.isArray(t)?t.find((t=>A.isObject(t)&&A.hasText(t.href)&&t.rel===e)):null}static getLinksWithRels(t,e){return Array.isArray(t)?t.filter((t=>A.isObject(t)&&A.hasText(t.href)&&e.includes(t.rel))):[]}static getLinksWithOtherRels(t,e){return Array.isArray(t)?t.filter((t=>A.isObject(t)&&A.hasText(t.href)&&!e.includes(t.rel))):[]}static removeTrailingSlash(t){return t.replace(/\/$/,"")}static equalUrl(t,e){try{let a=i()(t),s=i()(e);return a.path(A.removeTrailingSlash(a.path())),s.path(A.removeTrailingSlash(s.path())),a.equals(s)}catch(a){return!1}}static summarizeMd(t,e=null){return A.hasText(t)?(t=n()(t).replaceAll(/[\r\n]+/g," "),e>0&&t.length>e&&(t=t.substr(0,e)+"…"),t):""}static scrollTo(t){if(t){var e=t.getBoundingClientRect(),a=e.top=0;a||t.scrollIntoView({behavior:"smooth",block:"start"})}}static dateFromUTC(t){if(t){const e=new Date(t);t=new Date(e.getTime()+60*e.getTimezoneOffset()*1e3)}return t}static dateToUTC(t){return t instanceof Date&&(t=new Date(t.getTime()-60*t.getTimezoneOffset()*1e3)),t}static formatDatetimeQuery(t){return t.map((t=>t instanceof Date?t.toISOString():t||"..")).join("/")}static formatSortbyForPOST(t){const e={field:"",direction:"asc"};return t.startsWith("-")?(e.field=t.substring(1),e.direction="desc"):e.field=t,[e]}static getPaginationLinks(t){let e={};if(A.isObject(t)){let a=A.getLinksWithRels(t.links,o.Eg);for(let t of a){let a="previous"===t.rel?"prev":t.rel;e[a]=t}}return e}static addFiltersToLink(t,e={},a=null){let s=t=>null===t||"number"===typeof t&&!Number.isFinite(t)||"string"===typeof t&&0===t.length||"object"===typeof t&&0===A.size(t);if(e=A.isObject(e)?Object.assign({},e):{},"number"!==typeof e.limit&&"number"===typeof a&&(e.limit=a),A.hasText(t.method)&&"POST"===t.method.toUpperCase()){let a=Object.assign({},t.body);for(let t in e){let i=e[t];if(s(i))delete a[t];else{if("sortby"===t)i=A.formatSortbyForPOST(i);else if("datetime"===t)i=A.formatDatetimeQuery(i);else if("filters"===t){Object.assign(a,i.toJSON());continue}a[t]=i}}return Object.assign({},t,{body:a})}{let a=i()(t.href);for(let t in e){let i=e[t];if(s(i))a.removeQuery(t);else{if("datetime"===t)i=A.formatDatetimeQuery(i);else if("bbox"===t)i=i.join(",");else if("collections"===t||"ids"===t||"q"===t)i=i.join(",");else if("filters"===t){let t=i.toText();a.setQuery(t);continue}a.setQuery(t,i)}}return Object.assign({},t,{href:a.toString()})}}static titleForHref(t,e=!1){let a=i()(t),s=a.authority(),r=a.filename().replace(/^(.{1,})\.\w+$/,"$1"),n=a.directory().replace(/^\//,"");if(s&&r&&!e){let t=a.path().replace(/^\//,"");return"doi.org"===s&&t.startsWith("10.")?`DOI ${t}`:`${r} (${s})`}return r&&!l.includes(r)?r:s||(n||t)}static canBrowserDisplayImage(t){if("string"!==typeof t.href)return!1;let e=i()(t.href),a=e.protocol().toLowerCase();return!(a&&!g.includes(a))&&(!!h.includes(t.type)||(!!h.includes("image/"+e.suffix().toLowerCase())||!t.type))}static getValueFromObjectUsingPath(t,e){if(null!==t&&"object"===typeof t)return t=t[e[0]],"undefined"!==typeof t&&e.length>1?this.getValueFromObjectUsingPath(t,e.slice(1)):t}static search(t,e,a=!0){if("string"!==typeof t||0===t.length)return!1;if(A.isObject(e)?e=Object.values(e):"string"===typeof e&&(e=[e]),!Array.isArray(e))return!1;let s=/[\s.,;!&({[)}]]+/g;t=t.toLowerCase().split(s),e=e.filter((t=>"string"===typeof t)).join(" ").replace(s," ").toLowerCase();let i=a?"every":"some";return t[i]((t=>e.includes(t)))}static createLink(t,e){return{href:t,rel:e}}static supportsExtension(t,e){if(!A.isObject(t)||!Array.isArray(t["stac_extensions"]))return!1;let a=new RegExp("^"+e.replaceAll("*","[^/]+")+"$");return Boolean(t["stac_extensions"].find((t=>a.test(t))))}static mergeDeep(t,...e){if(!e.length)return t;const a=e.shift();if(A.isObject(t)&&A.isObject(a))for(const s in a)A.isObject(a[s])?(t[s]||Object.assign(t,{[s]:{}}),A.mergeDeep(t[s],a[s])):Object.assign(t,{[s]:a[s]});return A.mergeDeep(t,...e)}}},79873:function(t,e,a){"use strict";a(98992),a(23215),a(54520);var s=a(85952),i=a(39773),r=a(2566),n=a(84193),o=a.n(n),l=a(95353);e.A={components:{ErrorAlert:s.A,Loading:i.A},props:{path:{type:String,required:!0}},computed:{...(0,l.aH)(["allowExternalAccess","catalogUrl","url","redirectLegacyUrls"]),...(0,l.L8)(["fromBrowserPath","error","loading"]),errorId(){if(this.error instanceof Error&&this.error.isAxiosError&&r.Ay.isObject(this.error.response)){let t=this.error.response;return r.Ay.isObject(t.data)&&t.data.code?t.data.code:t.status}return null},errorDescription(){if(this.error instanceof Error&&this.error.isAxiosError&&r.Ay.isObject(this.error.response)){let t=this.error.response;if(r.Ay.isObject(t.data)&&"string"===typeof t.data.description)return t.data.description;if(401===t.status)return this.$t("errors.unauthorized");if(403===t.status)return this.$t("errors.forbidden");if(404===t.status)return this.$t("errors.notFound");if(t.status>500)return this.$t("errors.serverError");if(t.status>400)return this.$t("errors.badRequest")}else if(this.error instanceof r.fe)return this.error.message;return this.$t("errors.networkError")},isExternal(){return o()(this.path).is("absolute")}},watch:{path:{immediate:!0,async handler(t,e){if(t===e)return;if(!this.allowExternalAccess&&this.isExternal)return;if(this.redirectLegacyUrls&&await this.redirectLegacyUrl(t))return;let a=this.fromBrowserPath(t||"/");this.$store.dispatch("load",{url:a,show:!0})}}},methods:{async redirectLegacyUrl(t){if(!t||"/"===t)return!1;let e=t.split("/").filter((t=>t.length>0&&"item"!==t&&"collection"!==t));if(e.length>0&&e.every((t=>t.match(/^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]+$/)))){const{decode:t}=await a.e(6763).then(a.t.bind(a,16763,23));let s=t(e[e.length-1]).toString();if(s){let t=o()(s);return this.$router.replace({path:"/"+t.path().replace(/(collections|items)\/?$/,""),query:t.query(!0)}),!0}}return!1}}}},93731:function(t,e,a){var s={"./de-CH/config":[79933,3],"./de-CH/config.json":[79933,3],"./de-CH/datepicker":[40895,9,895],"./de-CH/datepicker.js":[40895,9,895],"./de-CH/default":[968,9,4490,968],"./de-CH/default.js":[968,9,4490,968],"./de-CH/duration":[49637,9,9710,9637],"./de-CH/duration.js":[49637,9,9710,9637],"./de-CH/validation":[75270,9,5270],"./de-CH/validation.js":[75270,9,5270],"./de/config":[28417,3],"./de/config.json":[28417,3],"./de/custom":[45692,3,5692],"./de/custom.json":[45692,3,5692],"./de/datepicker":[74801,9,4801],"./de/datepicker.js":[74801,9,4801],"./de/default":[62862,9,4490,2862],"./de/default.js":[62862,9,4490,2862],"./de/duration":[54511,9,9710,4511],"./de/duration.js":[54511,9,9710,4511],"./de/fields":[14490,3,4490],"./de/fields.json":[14490,3,4490],"./de/texts":[99581,3,9581],"./de/texts.json":[99581,3,9581],"./de/validation":[62816,9,2816],"./de/validation.js":[62816,9,2816],"./en-GB/config":[23667,3],"./en-GB/config.json":[23667,3],"./en-GB/custom":[78798,3,8798],"./en-GB/custom.json":[78798,3,8798],"./en-GB/datepicker":[22605,9,2605],"./en-GB/datepicker.js":[22605,9,2605],"./en-GB/default":[63170,9,3170],"./en-GB/default.js":[63170,9,3170],"./en-GB/duration":[47843,9,9710,7843],"./en-GB/duration.js":[47843,9,9710,7843],"./en-GB/fields":[87400,3,7400],"./en-GB/fields.json":[87400,3,7400],"./en-GB/texts":[62963,3,2963],"./en-GB/texts.json":[62963,3,2963],"./en-GB/validation":[6492,9,6492],"./en-GB/validation.js":[6492,9,6492],"./en-US/config":[92444,3],"./en-US/config.json":[92444,3],"./en-US/datepicker":[95558,9,5558],"./en-US/datepicker.js":[95558,9,5558],"./en-US/default":[15691,9,5691],"./en-US/default.js":[15691,9,5691],"./en-US/duration":[49684,9,9710,9684],"./en-US/duration.js":[49684,9,9710,9684],"./en-US/validation":[3155,9,3155],"./en-US/validation.js":[3155,9,3155],"./en/config":[11401,3],"./en/config.json":[11401,3],"./en/custom":[85300,3,5300],"./en/custom.json":[85300,3,5300],"./en/datepicker":[71865,9,1865],"./en/datepicker.js":[71865,9,1865],"./en/default":[56886,9,6886],"./en/default.js":[56886,9,6886],"./en/duration":[86855,9,9710,6855],"./en/duration.js":[86855,9,9710,6855],"./en/fields":[87090,3,7090],"./en/fields.json":[87090,3,7090],"./en/stac-fields":[98236,9,8236],"./en/stac-fields.js":[98236,9,8236],"./en/texts":[33301,3,3301],"./en/texts.json":[33301,3,3301],"./en/validation":[98552,9,8552],"./en/validation.js":[98552,9,8552],"./es/config":[17212,3],"./es/config.json":[17212,3],"./es/custom":[14581,3,4581],"./es/custom.json":[14581,3,4581],"./es/datepicker":[54312,9,4312],"./es/datepicker.js":[54312,9,4312],"./es/default":[89113,9,9113],"./es/default.js":[89113,9,9113],"./es/duration":[46046,9,9710,6046],"./es/duration.js":[46046,9,9710,6046],"./es/fields":[11295,3,1295],"./es/fields.json":[11295,3,1295],"./es/texts":[90674,3,674],"./es/texts.json":[90674,3,674],"./es/validation":[35893,9,5893],"./es/validation.js":[35893,9,5893],"./fr-CA/config":[20995,3],"./fr-CA/config.json":[20995,3],"./fr-CA/datepicker":[6997,9,6997],"./fr-CA/datepicker.js":[6997,9,6997],"./fr-CA/default":[71082,9,5767,1082],"./fr-CA/default.js":[71082,9,5767,1082],"./fr-CA/duration":[27003,9,9710,7003],"./fr-CA/duration.js":[27003,9,9710,7003],"./fr-CA/validation":[38228,9,8228],"./fr-CA/validation.js":[38228,9,8228],"./fr-CH/config":[1738,3],"./fr-CH/config.json":[1738,3],"./fr-CH/datepicker":[81456,9,1456],"./fr-CH/datepicker.js":[81456,9,1456],"./fr-CH/default":[44545,9,5767,4545],"./fr-CH/default.js":[44545,9,5767,4545],"./fr-CH/duration":[67286,9,9710,7286],"./fr-CH/duration.js":[67286,9,9710,7286],"./fr-CH/validation":[82605,9,4986],"./fr-CH/validation.js":[82605,9,4986],"./fr/config":[37748,3],"./fr/config.json":[37748,3],"./fr/custom":[75197,3,5197],"./fr/custom.json":[75197,3,5197],"./fr/datepicker":[37036,9,7036],"./fr/datepicker.js":[37036,9,7036],"./fr/default":[1589,9,5767,1589],"./fr/default.js":[1589,9,5767,1589],"./fr/duration":[93658,9,9710,3658],"./fr/duration.js":[93658,9,9710,3658],"./fr/fields":[48148,3,5767],"./fr/fields.json":[48148,3,5767],"./fr/texts":[23418,3,3418],"./fr/texts.json":[23418,3,3418],"./fr/validation":[33129,9,3129],"./fr/validation.js":[33129,9,3129],"./it-CH/config":[16835,3],"./it-CH/config.json":[16835,3],"./it-CH/datepicker":[75862,9,3481],"./it-CH/datepicker.js":[75862,9,3481],"./it-CH/default":[77638,9,9476,7638],"./it-CH/default.js":[77638,9,9476,7638],"./it-CH/duration":[44567,9,9710,4567],"./it-CH/duration.js":[44567,9,9710,4567],"./it-CH/validation":[63048,9,3048],"./it-CH/validation.js":[63048,9,3048],"./it/config":[37295,3],"./it/config.json":[37295,3],"./it/custom":[5290,3,5290],"./it/custom.json":[5290,3,5290],"./it/datepicker":[36147,9,6147],"./it/datepicker.js":[36147,9,6147],"./it/default":[23108,9,9476,3108],"./it/default.js":[23108,9,9476,3108],"./it/duration":[67905,9,9710,7905],"./it/duration.js":[67905,9,9710,7905],"./it/fields":[39476,3,9476],"./it/fields.json":[39476,3,9476],"./it/texts":[27519,3,7519],"./it/texts.json":[27519,3,7519],"./it/validation":[66346,9,6346],"./it/validation.js":[66346,9,6346],"./ja/config":[15203,3],"./ja/config.json":[15203,3],"./ja/custom":[79870,3,9870],"./ja/custom.json":[79870,3,9870],"./ja/datepicker":[70675,9,675],"./ja/datepicker.js":[70675,9,675],"./ja/default":[4964,9,4964],"./ja/default.js":[4964,9,4964],"./ja/duration":[87905,9,9710,2667],"./ja/duration.js":[87905,9,9710,2667],"./ja/fields":[68376,3,8376],"./ja/fields.json":[68376,3,8376],"./ja/texts":[30883,3,883],"./ja/texts.json":[30883,3,883],"./ja/validation":[14826,9,4826],"./ja/validation.js":[14826,9,4826],"./pt-BR/config":[87503,3],"./pt-BR/config.json":[87503,3],"./pt-BR/custom":[54794,3,4794],"./pt-BR/custom.json":[54794,3,4794],"./pt-BR/datepicker":[20105,9,105],"./pt-BR/datepicker.js":[20105,9,105],"./pt-BR/default":[92294,9,2294],"./pt-BR/default.js":[92294,9,2294],"./pt-BR/duration":[44631,9,9710,4631],"./pt-BR/duration.js":[44631,9,9710,4631],"./pt-BR/fields":[1524,3,1524],"./pt-BR/fields.json":[1524,3,1524],"./pt-BR/texts":[69311,3,9311],"./pt-BR/texts.json":[69311,3,9311],"./pt-BR/validation":[70536,9,536],"./pt-BR/validation.js":[70536,9,536],"./pt/config":[22356,3],"./pt/config.json":[22356,3],"./pt/custom":[2653,3,2653],"./pt/custom.json":[2653,3,2653],"./pt/datepicker":[59856,9,9856],"./pt/datepicker.js":[59856,9,9856],"./pt/default":[56513,9,6513],"./pt/default.js":[56513,9,6513],"./pt/duration":[32438,9,9710,2438],"./pt/duration.js":[32438,9,9710,2438],"./pt/fields":[44455,3,4455],"./pt/fields.json":[44455,3,4455],"./pt/texts":[29946,3,9946],"./pt/texts.json":[29946,3,9946],"./pt/validation":[12685,9,2685],"./pt/validation.js":[12685,9,2685],"./ro/config":[99069,3],"./ro/config.json":[99069,3],"./ro/custom":[5160,3,5160],"./ro/custom.json":[5160,3,5160],"./ro/datepicker":[2929,9,2929],"./ro/datepicker.js":[2929,9,2929],"./ro/default":[63022,9,3022],"./ro/default.js":[63022,9,3022],"./ro/duration":[65583,9,9710,5583],"./ro/duration.js":[65583,9,9710,5583],"./ro/fields":[14758,3,4758],"./ro/fields.json":[14758,3,4758],"./ro/texts":[55577,3,5577],"./ro/texts.json":[55577,3,5577],"./ro/validation":[90944,9,944],"./ro/validation.js":[90944,9,944]};function i(t){if(!a.o(s,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=s[t],i=e[0];return Promise.all(e.slice(2).map(a.e)).then((function(){return a.t(i,16|e[1])}))}i.keys=function(){return Object.keys(s)},i.id=93731,t.exports=i},33545:function(t,e,a){var s={"./de-CH/default.js":[968,4490,968],"./de/default.js":[62862,4490,2862],"./en-GB/default.js":[63170,3170],"./en-US/default.js":[15691,5691],"./en/default.js":[56886,6886],"./es/default.js":[89113,9113],"./fr-CA/default.js":[71082,5767,1082],"./fr-CH/default.js":[44545,5767,4545],"./fr/default.js":[1589,5767,1589],"./it-CH/default.js":[77638,9476,7638],"./it/default.js":[23108,9476,3108],"./ja/default.js":[4964,4964],"./pt-BR/default.js":[92294,2294],"./pt/default.js":[56513,6513],"./ro/default.js":[63022,3022]};function i(t){if(!a.o(s,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=s[t],i=e[0];return Promise.all(e.slice(1).map(a.e)).then((function(){return a(i)}))}i.keys=function(){return Object.keys(s)},i.id=33545,t.exports=i},97991:function(t,e,a){var s={"./de-CH/config.json":79933,"./de/config.json":28417,"./en-GB/config.json":23667,"./en-US/config.json":92444,"./en/config.json":11401,"./es/config.json":17212,"./fr-CA/config.json":20995,"./fr-CH/config.json":1738,"./fr/config.json":37748,"./it-CH/config.json":16835,"./it/config.json":37295,"./ja/config.json":15203,"./pt-BR/config.json":87503,"./pt/config.json":22356,"./ro/config.json":99069};function i(t){var e=r(t);return a(e)}function r(t){if(!a.o(s,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return s[t]}i.keys=function(){return Object.keys(s)},i.resolve=r,t.exports=i,i.id=97991},79933:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch (Schweiz)","global":"German (Switzerland)"}')},28417:function(t){"use strict";t.exports=JSON.parse('{"native":"Deutsch","global":"German"}')},23667:function(t){"use strict";t.exports=JSON.parse('{"native":"English (UK)","global":"English (UK)"}')},92444:function(t){"use strict";t.exports=JSON.parse('{"native":"English (US)","global":"English (US)"}')},11401:function(t){"use strict";t.exports=JSON.parse('{"native":"English","global":"English","customize":["stac-fields.js"]}')},17212:function(t){"use strict";t.exports=JSON.parse('{"native":"Español","global":"Spanish"}')},20995:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Canada)","global":"French (Canada)"}')},1738:function(t){"use strict";t.exports=JSON.parse('{"native":"Français (Suisse)","global":"French (Switzerland)"}')},37748:function(t){"use strict";t.exports=JSON.parse('{"native":"Français","global":"French"}')},16835:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano (Svizzera)","global":"Italian (Switzerland)"}')},37295:function(t){"use strict";t.exports=JSON.parse('{"native":"Italiano","global":"Italian"}')},15203:function(t){"use strict";t.exports=JSON.parse('{"native":"日本語","global":"Japanese"}')},87503:function(t){"use strict";t.exports=JSON.parse('{"native":"Português (Brasil)","global":"Portuguese (Brazil)"}')},22356:function(t){"use strict";t.exports=JSON.parse('{"native":"Português","global":"Portuguese"}')},99069:function(t){"use strict";t.exports=JSON.parse('{"native":"Română","global":"Romanian"}')}},e={};function a(s){var i=e[s];if(void 0!==i)return i.exports;var r=e[s]={id:s,loaded:!1,exports:{}};return t[s].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}a.m=t,function(){var t="function"===typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",e="function"===typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",s="function"===typeof Symbol?Symbol("webpack error"):"__webpack_error__",i=function(t){t&&t.d<1&&(t.d=1,t.forEach((function(t){t.r--})),t.forEach((function(t){t.r--?t.r++:t()})))},r=function(a){return a.map((function(a){if(null!==a&&"object"===typeof a){if(a[t])return a;if(a.then){var r=[];r.d=0,a.then((function(t){n[e]=t,i(r)}),(function(t){n[s]=t,i(r)}));var n={};return n[t]=function(t){t(r)},n}}var o={};return o[t]=function(){},o[e]=a,o}))};a.a=function(a,n,o){var l;o&&((l=[]).d=-1);var c,u,d,h=new Set,p=a.exports,f=new Promise((function(t,e){d=e,u=t}));f[e]=p,f[t]=function(t){l&&t(l),h.forEach(t),f["catch"]((function(){}))},a.exports=f,n((function(a){var i;c=r(a);var n=function(){return c.map((function(t){if(t[s])throw t[s];return t[e]}))},o=new Promise((function(e){i=function(){e(n)},i.r=0;var a=function(t){t!==l&&!h.has(t)&&(h.add(t),t&&!t.d&&(i.r++,t.push(i)))};c.map((function(e){e[t](a)}))}));return i.r?o:n()}),(function(t){t?d(f[s]=t):u(p),i(l)})),l&&l.d<0&&(l.d=0)}}(),function(){var t=[];a.O=function(e,s,i,r){if(!s){var n=1/0;for(u=0;u=r)&&Object.keys(a.O).every((function(t){return a.O[t](s[l])}))?s.splice(l--,1):(o=!1,r0&&t[u-1][2]>r;u--)t[u]=t[u-1];t[u]=[s,i,r]}}(),function(){a.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return a.d(e,{a:e}),e}}(),function(){var t,e=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__};a.t=function(s,i){if(1&i&&(s=this(s)),8&i)return s;if("object"===typeof s&&s){if(4&i&&s.__esModule)return s;if(16&i&&"function"===typeof s.then)return s}var r=Object.create(null);a.r(r);var n={};t=t||[null,e({}),e([]),e(e)];for(var o=2&i&&s;"object"==typeof o&&!~t.indexOf(o);o=e(o))Object.getOwnPropertyNames(o).forEach((function(t){n[t]=function(){return s[t]}}));return n["default"]=function(){return s},a.d(r,n),r}}(),function(){a.d=function(t,e){for(var s in e)a.o(e,s)&&!a.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})}}(),function(){a.f={},a.e=function(t){return Promise.all(Object.keys(a.f).reduce((function(e,s){return a.f[s](t,e),e}),[]))}}(),function(){a.u=function(t){return"js/"+t+"."+{57:"41f5038f",105:"11f3ef3f",143:"8a3d2c9a",224:"4fba229c",259:"c47d895a",286:"63cf0a30",287:"d53cc4de",401:"2c4f1f50",536:"394026a4",537:"16fe35b9",572:"2c70a609",635:"8dfb32bc",674:"cd3424a3",675:"6343e128",771:"c1d908d6",883:"022b6cfd",895:"61df85f7",944:"93c5eccd",967:"2187a41c",968:"63b0be5d",1082:"9524bfb4",1277:"30f7efae",1295:"75b0120e",1456:"c7df2c55",1524:"ed9cc7de",1589:"5695c617",1802:"1b2a76e1",1865:"236dede4",1935:"7e3ae466",2018:"d8337473",2294:"8e59dd49",2438:"9d08758b",2568:"229e5dd0",2605:"61657992",2653:"ead5227f",2667:"e2075e28",2685:"ae149e1e",2816:"fadc65e3",2862:"9f715c09",2929:"8f5863d5",2963:"588da4a4",2986:"b845ef0e",3022:"bfbf5e76",3048:"037427d0",3108:"342c1bac",3129:"5ea9e162",3147:"234d0b46",3155:"9a5e35a5",3170:"24cdcd45",3301:"9629eab8",3418:"791d39ac",3481:"b68e7796",3545:"9312a5b8",3621:"c03d14b0",3627:"c74dd113",3658:"005b6342",3665:"60e41131",4052:"4207ba02",4312:"1dfee9ef",4455:"7ec12bc9",4490:"2d1bfd9d",4511:"ffe2e0e6",4527:"0577cbe4",4545:"0e0c6c60",4567:"9c165ed1",4581:"09d75b82",4631:"185ad2fe",4648:"27991b24",4748:"4d28f3f9",4758:"7bd6ca2d",4794:"cbe91ede",4801:"3798c5b3",4826:"9ec0fb3b",4870:"dd62072e",4905:"fa8f82fd",4964:"c30511c6",4986:"fb82306e",5048:"4de90b52",5160:"5049d33b",5197:"1c0284fb",5262:"894c88c3",5270:"a61c79e3",5290:"4e66b59f",5300:"5a758b2d",5500:"68abc7ee",5528:"f4b345f1",5558:"92284de2",5577:"88da2b76",5583:"4ad93d3c",5691:"b4332e7d",5692:"53888e89",5767:"dcd3e8f6",5833:"4f6613e9",5876:"53412eac",5893:"1f30f06a",6046:"7234cf3f",6147:"c1651835",6171:"36d9697a",6247:"0d27f607",6340:"5204c7f2",6346:"ac9f2233",6492:"2b9980a8",6513:"40146f96",6750:"4dcdb154",6763:"d5e36df2",6780:"204a1480",6855:"e1724cd1",6866:"9fb21d11",6886:"ca913e92",6892:"00f44640",6935:"1e8283d8",6948:"f672b487",6997:"9ad3d2eb",7003:"b064e28e",7012:"1f22b1ae",7036:"be852fcd",7090:"15e869ce",7130:"7b24d234",7197:"925f5a53",7286:"cbd78cd1",7303:"add8a1d9",7312:"ebf1e1ac",7341:"5a9a881d",7400:"bb1bffcb",7457:"05737046",7519:"43de9d9a",7616:"1a9527fa",7638:"147e123d",7659:"003bcc2a",7674:"71f8f69d",7820:"76e052c6",7843:"fe60856c",7905:"28030aa8",7957:"e0eb325d",7964:"666a9c76",8228:"7777ffe3",8236:"973dee5b",8376:"ec3800d9",8499:"23d303cb",8552:"8d732287",8648:"3df871aa",8704:"40f77f92",8775:"c4d351a5",8798:"ae050e23",9099:"f0bed4dd",9113:"8c127b65",9236:"e05a32a6",9311:"d9f0acbc",9384:"dbed806a",9476:"5a051b83",9581:"dcdb60a1",9637:"96af2b91",9684:"722fad2b",9710:"6bb10454",9738:"17d17a36",9856:"51f2956c",9870:"1e0dbc7f",9891:"f756d7a2",9946:"5e885642"}[t]+".js"}}(),function(){a.miniCssF=function(t){return"css/"+t+"."+{143:"ac728857",401:"4149415b",635:"f849b3f1",967:"72c8c98f",1802:"32ec082e",2568:"6fac7cd8",3147:"45781634",3175:"4794afa8",3545:"2412eeb4",4052:"63e96376",4748:"fc757a13",5528:"45781634",6171:"7090fc57",6780:"0780c10b",6866:"081b4583",7130:"c4ced7cf",7312:"81053aa2",7341:"c9b64985",7674:"1c24940f",7957:"e76d18ce",8648:"4b50bc38",8775:"bbca74ef"}[t]+".css"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){a.hmd=function(t){return t=Object.create(t),t.children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t}}(),function(){a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={},e="@radiantearth/stac-browser:";a.l=function(s,i,r,n){if(t[s])t[s].push(i);else{var o,l;if(void 0!==r)for(var c=document.getElementsByTagName("script"),u=0;u 0 || _vm.data.description || _vm.data.deprecated))?_c('b-card-text',{staticClass:\"intro\"},[(_vm.data.deprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),_vm._v(\" \"+_vm._s(_vm._f(\"summarize\")(_vm.data.description))+\" \")],2):_vm._e(),(_vm.showKeywordsInCatalogCards && _vm.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.keywords,\"variant\":\"primary\",\"center\":!_vm.isList}}):_vm._e(),(_vm.temporalExtent)?_c('b-card-text',{staticClass:\"datetime\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtent)}})]):_vm._e()],1),_c('b-card-footer',[_vm._t(\"footer\",null,{\"data\":_vm.data})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=50eb59b2\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=50eb59b2&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"catalogs mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.title))]),(_vm.catalogCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.catalogCount))]):_vm._e(),_c('ViewButtons',{staticClass:\"mr-2\",model:{value:(_vm.view),callback:function ($$v) {_vm.view=$$v},expression:\"view\"}}),(_vm.isComplete && _vm.catalogs.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.isComplete && _vm.catalogs.length > 1)?_c('section',{staticClass:\"catalog-filter mb-2\"},[_c('SearchBox',{attrs:{\"placeholder\":_vm.filterPlaceholder},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),(_vm.allKeywords.length > 0)?_c('multiselect',{attrs:{\"multiple\":\"\",\"options\":_vm.allKeywords,\"placeholder\":_vm.$t('multiselect.keywordsPlaceholder'),\"selectLabel\":_vm.$t('multiselect.selectLabel'),\"selectedLabel\":_vm.$t('multiselect.selectedLabel'),\"deselectLabel\":_vm.$t('multiselect.deselectLabel'),\"limitText\":_vm.limitText},model:{value:(_vm.selectedKeywords),callback:function ($$v) {_vm.selectedKeywords=$$v},expression:\"selectedKeywords\"}}):_vm._e()],1):_vm._e(),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",staticClass:\"mb-3\",attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.hasSearchCritera && _vm.catalogView.length === 0)?_c('b-alert',{staticClass:\"mt-2\",attrs:{\"variant\":\"warning\",\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('catalogs.noMatches')))]):_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),_c(_vm.cardsComponent,_vm._b({tag:\"component\"},'component',_vm.cardsComponentProps,false),_vm._l((_vm.catalogView),function(catalog){return _c('Catalog',{key:catalog.href,attrs:{\"catalog\":catalog},scopedSlots:_vm._u([{key:\"footer\",fn:function({data}){return [_vm._t(\"catalogFooter\",null,{\"data\":data})]}}],null,true)})}),1)],1),(_vm.showPagination)?_c('Pagination',{staticClass:\"mb-3\",attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.loadMore),expression:\"loadMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.loadMore}},[_vm._v(_vm._s(_vm.$t('catalogs.loadMore')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',{attrs:{\"title\":_vm.$t('view.title'),\"size\":\"sm\"}},[_c('b-button',{attrs:{\"title\":_vm.$t('view.tiles.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'cards'},on:{\"click\":function($event){return _vm.toggle('cards')}}},[_c('b-icon-bricks'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.tiles.label')))])],1),_c('b-button',{attrs:{\"title\":_vm.$t('view.list.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'list'},on:{\"click\":function($event){return _vm.toggle('list')}}},[_c('b-icon-list-task'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.list.label')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ViewButtons.vue?vue&type=template&id=6a51668d\"\nimport script from \"./ViewButtons.vue?vue&type=script&lang=js\"\nexport * from \"./ViewButtons.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import ViewButtons from './ViewButtons.vue';\n\nexport default {\n components: {\n ViewButtons\n },\n computed: {\n cardsComponent() {\n return (this.view === 'list') ? 'div' : 'b-card-group';\n },\n cardsComponentProps() {\n if (this.view === 'list') {\n return {\n class: [\n 'card-list'\n ]\n };\n }\n else {\n return {\n columns: true\n };\n }\n },\n view: {\n get() {\n return this.$store.state.cardViewMode;\n },\n async set(cardViewMode) {\n await this.$store.dispatch('config', { cardViewMode });\n }\n }\n }\n};\n","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Catalogs.vue?vue&type=template&id=52ad2017&scoped=true\"\nimport script from \"./Catalogs.vue?vue&type=script&lang=js\"\nexport * from \"./Catalogs.vue?vue&type=script&lang=js\"\nimport style0 from \"./Catalogs.vue?vue&type=style&index=0&id=52ad2017&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52ad2017\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button',_vm._b({staticClass:\"copy-button\",attrs:{\"variant\":_vm.copyColor,\"title\":_vm.$t('copy')},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copy.apply(null, arguments)}}},'b-button',_vm.buttonProps,false),[_c(_vm.copyIcon,{tag:\"component\"}),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CopyButton.vue?vue&type=template&id=033681c8\"\nimport script from \"./CopyButton.vue?vue&type=script&lang=js\"\nexport * from \"./CopyButton.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"styled-description\",class:{compact: _vm.compact, inline: _vm.inline},domProps:{\"innerHTML\":_vm._s(_vm.markup(_vm.description))}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Description.vue?vue&type=template&id=77c4c56a\"\nimport script from \"./Description.vue?vue&type=script&lang=js\"\nexport * from \"./Description.vue?vue&type=script&lang=js\"\nimport style0 from \"./Description.vue?vue&type=style&index=0&id=77c4c56a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":\"\",\"dismissible\":_vm.dismissible},on:{\"dismissed\":function($event){return _vm.$emit('close')}}},[_c('p',{staticClass:\"message\"},[_vm._v(_vm._s(_vm.message || _vm.$t('errors.default')))]),(_vm.error && _vm.error.message)?_c('dl',{staticClass:\"error\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.cause')))]),_c('dd',[_vm._v(_vm._s(_vm.error.message))])]):_vm._e(),(_vm.description)?_c('dl',{staticClass:\"description\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.reason')))]),_c('dd',[_vm._v(_vm._s(_vm.description))])]):_vm._e(),(_vm.id)?_c('dl',{staticClass:\"id\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.code')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.id))])])]):_vm._e(),(_vm.url)?_c('dl',{staticClass:\"url\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.requestURL')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.url))])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ErrorAlert.vue?vue&type=template&id=7a9d646a&scoped=true\"\nimport script from \"./ErrorAlert.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorAlert.vue?vue&type=script&lang=js\"\nimport style0 from \"./ErrorAlert.vue?vue&type=style&index=0&id=7a9d646a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a9d646a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.400\",value:(_vm.load),expression:\"load\",modifiers:{\"400\":true}}],staticClass:\"item-card\",class:{queued: !_vm.data, deprecated: _vm.isDeprecated, description: _vm.hasDescription},attrs:{\"no-body\":\"\"}},[(_vm.hasImage)?_c('b-card-img-lazy',_vm._b({staticClass:\"thumbnail\",attrs:{\"offset\":\"200\"}},'b-card-img-lazy',_vm.thumbnail,false)):_vm._e(),_c('b-card-body',[_c('b-card-title',[_c('StacLink',{staticClass:\"stretched-link\",attrs:{\"data\":[_vm.data, _vm.item]}})],1),(_vm.fileFormats.length > 0 || _vm.hasDescription || _vm.isDeprecated)?_c('b-card-text',{staticClass:\"intro\"},[(_vm.isDeprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),(_vm.hasDescription)?[_vm._v(_vm._s(_vm._f(\"summarize\")(_vm.data.properties.description)))]:_vm._e()],2):_vm._e(),(_vm.showKeywordsInItemCards && _vm.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.keywords,\"variant\":\"primary\",\"center\":\"\"}}):_vm._e(),_c('b-card-text',[_c('small',{staticClass:\"text-muted\"},[(_vm.extent)?[_vm._v(_vm._s(_vm._f(\"formatTemporalExtent\")(_vm.extent)))]:(_vm.data && _vm.data.properties.datetime)?[_vm._v(_vm._s(_vm._f(\"formatTimestamp\")(_vm.data.properties.datetime)))]:[_vm._v(_vm._s(_vm.$t('items.noTime')))]],2)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=7144a4b0\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=7144a4b0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"items mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.$tc('stacItem', _vm.items.length )))]),(_vm.itemCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.itemCount))]):_vm._e(),(!_vm.api && _vm.items.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",staticClass:\"mb-3\",class:{'mr-3': _vm.allowFilter},attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.allowFilter)?[(_vm.api)?_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.itemFilter\",modifiers:{\"itemFilter\":true}}],staticClass:\"mb-3\",attrs:{\"variant\":_vm.hasFilters && !_vm.filtersOpen ? 'primary' : 'outline-primary'}},[_c('b-icon-search'),_vm._v(\" \"+_vm._s(_vm.filtersOpen ? _vm.$t('items.hideFilter') : _vm.$t('items.showFilter'))+\" \"),(_vm.hasFilters && !_vm.filtersOpen)?_c('b-badge',{attrs:{\"variant\":\"dark\"}},[_vm._v(_vm._s(_vm.filterCount))]):_vm._e()],1):_vm._e(),_c('b-collapse',{attrs:{\"id\":\"itemFilter\"},model:{value:(_vm.filtersOpen),callback:function ($$v) {_vm.filtersOpen=$$v},expression:\"filtersOpen\"}},[_c('SearchFilter',{attrs:{\"type\":\"Items\",\"title\":_vm.$t('items.filter'),\"parent\":_vm.stac,\"value\":_vm.apiFilters},on:{\"input\":_vm.emitFilter}})],1)]:_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),(_vm.chunkedItems.length > 0)?_c('b-card-group',{attrs:{\"columns\":\"\"}},_vm._l((_vm.chunkedItems),function(item){return _c('Item',{key:item.href,attrs:{\"item\":item}})}),1):_c('b-alert',{attrs:{\"variant\":_vm.hasFilters ? 'warning' : 'info',\"show\":\"\"}},[(_vm.hasFilters)?[_vm._v(_vm._s(_vm.$t('search.noItemsFound')))]:[_vm._v(_vm._s(_vm.$t('items.noneAvailableForCollection')))]],2)],1),(_vm.showPagination)?_c('Pagination',{staticClass:\"mb-3\",attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.showMore),expression:\"showMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.showMore}},[_vm._v(_vm._s(_vm.$t('showMore')))]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Items.vue?vue&type=template&id=6fc0f1d4\"\nimport script from \"./Items.vue?vue&type=script&lang=js\"\nexport * from \"./Items.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.classes},[_c('b-spinner',{attrs:{\"label\":_vm.$t('loading'),\"small\":_vm.small}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=67931bb8&scoped=true\"\nimport script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=67931bb8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67931bb8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',[_c('b-button',{attrs:{\"disabled\":!_vm.pagination.first,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.first)}}},[_vm._v(_vm._s(_vm.$t('pagination.first')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.prev,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.prev)}}},[_vm._v(_vm._s(_vm.$t('pagination.previous')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.next,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.next)}}},[_vm._v(_vm._s(_vm.$t('pagination.next')))]),(_vm.pagination.last)?_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.last)}}},[_vm._v(_vm._s(_vm.$t('pagination.last')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=96ce1978\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.component,_vm._b({tag:\"component\",staticClass:\"stac-link\",attrs:{\"title\":_vm.tooltip}},'component',_vm.attributes,false),[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.displayTitle))])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacLink.vue?vue&type=template&id=935ce1da\"\nimport script from \"./StacLink.vue?vue&type=script&lang=js\"\nexport * from \"./StacLink.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = {\n catalogUrl: null,\n catalogTitle: \"STAC Browser\",\n allowExternalAccess: true, // Must be true if catalogUrl is not given\n allowedDomains: [],\n detectLocaleFromBrowser: true,\n storeLocale: true,\n locale: \"en\",\n fallbackLocale: \"en\",\n supportedLocales: [\n \"de\",\n// \"de-CH\",\n \"es\",\n \"en\",\n// \"en-GB\",\n// \"en-US\",\n \"fr\",\n// \"fr-CA\",\n// \"fr-CH\",\n \"it\",\n// \"it-CH\",\n \"ro\",\n \"ja\",\n \"pt\",\n// \"pt-BR\"\n ],\n apiCatalogPriority: null,\n useTileLayerAsFallback: true,\n displayGeoTiffByDefault: false,\n buildTileUrlTemplate: ({href, asset}) => \"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url=\" + encodeURIComponent(asset.href.startsWith(\"/vsi\") ? asset.href : href),\n stacProxyUrl: null,\n pathPrefix: \"/\",\n historyMode: \"history\",\n cardViewMode: \"cards\",\n cardViewSort: \"asc\",\n showKeywordsInItemCards: false,\n showKeywordsInCatalogCards: false,\n showThumbnailsAsAssets: false,\n geoTiffResolution: 128,\n redirectLegacyUrls: false,\n itemsPerPage: 12,\n defaultThumbnailSize: null,\n maxPreviewsOnMap: 50,\n crossOriginMedia: null,\n requestHeaders: {},\n requestQueryParameters: {},\n socialSharing: ['email', 'bsky', 'mastodon', 'x'],\n preprocessSTAC: null,\n authConfig: null\n};\n","import i18n from '../i18n';\nimport Utils from '../utils';\n\nexport default class Auth {\n\n /**\n * Constructs the authentication method.\n * \n * @param {Object.} options Any potential options the authentication method needs\n * @param {Function} changeListener A change listener with two parameters: loggedIn (boolean) and credentials (string|null)\n * @param {Router} router The Vue router instance\n */\n constructor(options = {}, changeListener = null, router = null) {\n this.options = options;\n this.changeListener = changeListener;\n this.router = router;\n }\n\n /**\n * A tooltip title for the authentication button.\n * \n * @returns {string}\n */\n getButtonTitle() {\n return null;\n }\n\n /**\n * A label for the button that is shown when unauthorized (logged out).\n * \n * @returns {string}\n */\n getLoginLabel() {\n return i18n.t('authentication.button.login');\n }\n\n /**\n * A label for the button that is shown when authorized (logged in).\n * \n * @returns {string}\n */\n getLogoutLabel() {\n return i18n.t('authentication.button.logout');\n }\n\n getComponent() {\n return null;\n }\n\n getComponentProps() {\n return {};\n }\n\n async init() {\n return;\n }\n\n async login() {\n }\n\n async confirmLogin(credentials) {\n if (this.changeListener) {\n await this.changeListener(true, credentials);\n }\n }\n\n async logout(/*credentials*/) {\n }\n\n async confirmLogout() {\n if (this.changeListener) {\n await this.changeListener(false);\n }\n }\n\n async close() {\n return;\n }\n\n updateStore(/*value*/) {\n return {};\n }\n\n _updateStore(value, defaultName = null, defaultIn = null, defaultFormatter = null) {\n const formatter = this.options.formatter || defaultFormatter;\n const key = this.options.name || defaultName;\n const in_ = this.options.in || defaultIn;\n\n // Format the credentials\n if (value) {\n if (formatter === 'Bearer') {\n value = `Bearer ${value}`;\n }\n else if (typeof formatter === 'function') {\n value = formatter(value);\n }\n }\n if (!Utils.hasText(value)) {\n value = undefined;\n }\n\n // Set cookie, query or request parameters\n if (in_ === 'query') {\n return { query: { type: 'private', key, value } };\n }\n else if (in_ === 'cookie') {\n return { cookie: { key, value } };\n }\n else if (in_ === 'header') {\n return { header: { key, value } };\n }\n else {\n return {};\n }\n }\n\n static async create(config, changeListener, router) {\n let method = new Auth();\n if (Utils.isObject(config)) {\n if (config.type === 'http' && config.scheme === 'basic') {\n const BasicAuth = (await import('./basic')).default;\n method = new BasicAuth(config, changeListener, router);\n }\n else if (config.type === 'apiKey') {\n const ApIKey = (await import('./apiKey')).default;\n method = new ApIKey(config, changeListener, router);\n }\n else if (config.type === 'openIdConnect') {\n const OIDC = (await import('./oidc')).default;\n method = new OIDC(config, changeListener, router);\n }\n }\n await method.init();\n return method;\n }\n\n static equals(method, config) {\n return JSON.stringify(method.options) === JSON.stringify(config);\n }\n\n}\n","import Utils from \"./utils\";\n\nexport default class BrowserStorage {\n\n static JSON_INDICATOR = \"\\n\\r\";\n\n static enabled(engine) {\n if (!Utils.isObject(engine)) {\n return false;\n }\n try {\n engine.setItem('test', 'yes');\n if (engine.getItem('test') === 'yes') {\n engine.removeItem('test');\n return true;\n }\n } catch(error) {\n console.error(error);\n }\n return false;\n }\n\n constructor(session = false) {\n if (session) {\n if (BrowserStorage.enabled(window.sessionStorage)) {\n this.engine = window.sessionStorage;\n }\n else if (navigator.cookieEnabled) {\n this.engine = new Cookies(true);\n }\n else {\n this.engine = new NoOp();\n }\n }\n else {\n if (BrowserStorage.enabled(window.localStorage)) {\n this.engine = window.localStorage;\n }\n else if (navigator.cookieEnabled) {\n this.engine = new Cookies();\n }\n else {\n this.engine = new NoOp();\n }\n }\n }\n\n get(name) {\n try {\n let data = this.engine.getItem(name);\n if (typeof data === 'string' && data.startsWith(BrowserStorage.JSON_INDICATOR)) {\n data = JSON.parse(data.slice(BrowserStorage.JSON_INDICATOR.length));\n }\n return data;\n } catch(error) {\n console.error(error);\n return null;\n }\n }\n\n set(name, value) {\n try {\n if (typeof value !== 'string') {\n value = BrowserStorage.JSON_INDICATOR + JSON.stringify(value);\n }\n this.engine.setItem(name, value);\n } catch(error) {\n console.error(error);\n }\n }\n\n remove(name) {\n try {\n this.engine.removeItem(name);\n } catch(error) {\n console.error(error);\n }\n }\n\n clear() {\n this.engine.clear();\n }\n\n}\n\nexport class Cookies {\n\n constructor(session = false) {\n this.session = session;\n }\n\n getExpiry(minutes = null) {\n if (minutes === null) {\n if (this.session) {\n minutes = 60; // 60 minutes\n }\n else {\n minutes = 1000 * 24 * 60; // 1000 days\n }\n }\n const date = new Date();\n date.setTime(date.getTime() + minutes * 60 * 1000);\n this.epires = date.toGMTString();\n }\n\n setItem(name, value, minutes = null) {\n const expires = this.getExpiry(minutes);\n value = encodeURIComponent(value);\n document.cookie = `${name}=${value}; expires=${expires}; path=/`;\n }\n\n getItem(name) {\n const prefix = name + \"=\";\n const parts = document.cookie.split(';');\n for (let c of parts) {\n c = c.trim();\n if (c.startsWith(prefix)) {\n const data = c.substring(prefix.length, c.length);\n return decodeURIComponent(data);\n }\n }\n return null;\n }\n\n removeItem(name) {\n this.set(name, \"\", -1);\n }\n\n clear() {\n document.cookie = '';\n }\n\n}\n\n\nclass NoOp {\n\n constructor(session = false) {\n this.session = session;\n }\n\n setItem(name/*, value*/) {\n console.warn(`Browser storage disabled, can't store ${name}`);\n }\n\n getItem(/*name*/) {\n return null;\n }\n\n removeItem(/*name*/) {\n }\n\n clear() {\n }\n\n}\n","// Add deprecated CQL conformance classes for stac-fastapi:\n// https://github.com/stac-utils/stac-fastapi/issues/539\nconst CQL_TEXT = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-text', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-text'\n];\nconst CQL_JSON = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-json', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-json'\n];\n\nconst CQL_ADV_COMPARISON = ['http://www.opengis.net/spec/cql2/1.*/conf/advanced-comparison-operators'];\n\nimport { mapGetters } from \"vuex\";\n\nexport const TYPES = {\n // OGC / STAC API - Features\n Items: {\n BasicFilters: [\n 'https://api.stacspec.org/v1.*/ogcapi-features',\n 'http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core'\n ],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n // It seems some conformance classes use conf (correct) and some req (deprecated?) after the version number\n CqlFilters: ['http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter'],\n Sort: [\n 'https://api.stacspec.org/v1.*/ogcapi-features#sort',\n 'http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting'\n ],\n FreeText: ['https://api.stacspec.org/v1.*/ogcapi-features#free-text']\n },\n // STAC API - Item Search\n Global: {\n BasicFilters: ['https://api.stacspec.org/v1.*/item-search'],\n CollectionIdFilter: true,\n ItemIdFilter: true,\n CqlFilters: ['https://api.stacspec.org/v1.*/item-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/item-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/item-search#free-text']\n },\n // OGC / STAC API - Collections\n Collections: {\n BasicFilters: ['https://api.stacspec.org/v1.*/collection-search'],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n CqlFilters: ['https://api.stacspec.org/v1.*/collection-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/collection-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/collection-search#free-text']\n }\n};\n\nexport default {\n props: {\n type: {\n type: String,\n required: true\n }\n },\n computed: {\n ...mapGetters(['supportsConformance']),\n\n conformances() {\n return TYPES[this.type];\n },\n\n canSort() {\n return this.supportsConformance(this.conformances.Sort);\n },\n canFilterExtents() {\n return this.supportsConformance(this.conformances.BasicFilters);\n },\n canFilterFreeText() {\n return this.supportsConformance(this.conformances.FreeText);\n },\n cql() {\n if (!this.supportsConformance(this.conformances.CqlFilters)) {\n return null;\n }\n let textMode = this.supportsConformance(CQL_TEXT);\n let jsonMode = this.supportsConformance(CQL_JSON);\n if (!textMode && !jsonMode) {\n return null;\n }\n\n return {\n textMode,\n jsonMode,\n advancedComparison: this.supportsConformance(CQL_ADV_COMPARISON)\n };\n }\n }\n};\n","import { mapState } from 'vuex';\n\nexport default functions => {\n let mixin = {\n computed: {\n ...mapState(['uiLanguage'])\n },\n methods: {}\n };\n for(let name in functions) {\n let fn = functions[name];\n mixin.methods[name] = function() {\n // We call uiLanguage once so that it's a dependency for the computed property\n // which makes the computed property to re-render when uiLanguage changes.\n this.uiLanguage;\n return fn(...arguments);\n };\n }\n return mixin;\n};\n","import { mapState } from 'vuex';\n\nexport default {\n props: {\n showThumbnail: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n ...mapState(['cardViewMode', 'crossOriginMedia', 'defaultThumbnailSize']),\n isList() {\n return this.data && !this.data.isItem() && this.cardViewMode === 'list';\n },\n hasImage() {\n return this.showThumbnail && this.thumbnail;\n },\n thumbnail() {\n if (this.data) {\n let thumbnails = this.data.getThumbnails(true, 'thumbnail');\n if (thumbnails.length > 0) {\n let t = thumbnails[0];\n let width, height;\n if (Array.isArray(t['proj:shape']) && t['proj:shape'].length === 2) {\n [height, width] = t['proj:shape'];\n }\n else if (Array.isArray(this.defaultThumbnailSize) && this.defaultThumbnailSize.length === 2) {\n [height, width] = this.defaultThumbnailSize;\n }\n return {\n src: t.href,\n alt: t.title,\n crossorigin: this.crossOriginMedia,\n right: this.isList,\n blankColor: \"rgba(0, 0, 0, 0.125)\",\n width,\n height,\n // for b-card-img-lazy\n \"blank-width\": width,\n \"blank-height\": height\n };\n }\n }\n return null;\n }\n }\n};","import Utils from '../../utils.js';\nimport STAC from '../../models/stac.js';\nimport Auth from '../../auth/index.js';\n\nexport default class AuthUtils {\n\n static resolveAuth(obj, context) {\n if (context instanceof STAC && Utils.size(obj['auth:refs']) > 0) {\n const scheme = context.getMetadata('auth:schemes');\n if (Utils.size(scheme) > 0) {\n return obj['auth:refs']\n .map(ref => scheme[ref])\n .filter(ref => Utils.isObject(ref));\n }\n }\n return [];\n }\n\n static isSupported(method, config) {\n if (method instanceof Auth) {\n method = method.options;\n }\n switch(method.type) {\n case 'http':\n return (method.schema === 'basic');\n case 'apiKey':\n return (method.in === 'header' || method.in === 'query');\n case 'openIdConnect':\n return (config.historyMode === 'history');\n default:\n return false;\n }\n }\n\n static convertLegacyAuthConfig(config) {\n if (!Utils.isObject(config) || config.type === null) {\n return null;\n }\n else if (config.type === 'query' || config.type === 'header') {\n // It is the old format\n return {\n type: 'apiKey',\n in: config.type,\n name: config.key,\n description: config.description,\n formatter: config.formatter\n };\n }\n else {\n // Is the new format from the authentication extension\n return config;\n }\n }\n\n}\n","let config;\nif (typeof CONFIG_PATH === 'undefined') {\n config = require('../config');\n}\nelse {\n config = require(CONFIG_PATH);\n}\n\nexport default Object.assign(config, CONFIG_CLI, window.STAC_BROWSER_CONFIG);","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport CONFIG from './config';\nimport { default as Fields } from '@radiantearth/stac-fields/I18N';\nimport Utils from './utils';\n\nVue.use(VueI18n);\n\nexport const API_LANGUAGE_CONFORMANCE = ['https://api.stacspec.org/v1.*/language'];\n\nconst LOCALE_CONFIG = {};\n\nfunction loadLocaleConfig() {\n // Load locale config\n for (let locale of CONFIG.supportedLocales) {\n LOCALE_CONFIG[locale] = require(`./locales/${locale}/config.json`);\n }\n const messages = {};\n // Add language names all other languages\n for (let locale in LOCALE_CONFIG) {\n messages[locale] = {\n languages: LOCALE_CONFIG\n };\n }\n return messages;\n}\n\nconst i18n = new VueI18n({\n locale: CONFIG.locale,\n fallbackLocale: CONFIG.fallbackLocale,\n messages: loadLocaleConfig(),\n // Todo: Workaround for https://github.com/kazupon/vue-i18n/issues/563\n postTranslation: (value, path) => {\n if (value === \"\") {\n const parts = path.split('.');\n let message = i18n.messages[CONFIG.fallbackLocale];\n for (const key of parts) {\n if (key in message) {\n message = message[key];\n }\n else {\n return value;\n }\n }\n return message;\n }\n return value;\n }\n});\nexport default i18n;\n\nexport function loadDefaultMessages() {\n return Promise.all([\n loadMessages(CONFIG.locale),\n loadMessages(CONFIG.fallbackLocale)\n ]);\n}\n\nexport async function loadMessages(locale) {\n // Check whether the language has already been loaded\n // Note that a languages key is already present thus check >1 and not >0\n if (Utils.size(i18n.messages[locale]) > 1) {\n return;\n }\n const messages = (await import(`./locales/${locale}/default.js`)).default;\n i18n.mergeLocaleMessage(locale, messages);\n}\n\nexport async function executeCustomFunctions(locale) {\n const customizeFiles = LOCALE_CONFIG[locale].customize;\n if (Utils.size(LOCALE_CONFIG[locale].customize) === 0) {\n return;\n }\n const p = customizeFiles.map(async (file) => {\n const fn = (await import(`./locales/${locale}/${file}`)).default;\n return await fn(locale);\n });\n return Promise.all(p);\n}\n\nexport function translateFields(value, vars = null) {\n if (typeof value !== 'string' || value.length === 0) {\n return value;\n }\n let key = `fields.${value}`;\n if (i18n.te(key)) {\n return i18n.t(key, null, vars);\n }\n return Fields.format(value, vars);\n}\n","// This code is based on https://github.com/cherry-projects/locale-id\n// Due to the \"heavy\" dependencies, it has been slimmed down\n\n// http://userguide.icu-project.org/locale\nexport default function parse(locale) {\n if (!locale) {\n return undefined;\n }\n\n // extract keyword\n const stringLocale = String(locale);\n const keywordPos = stringLocale.indexOf('@');\n\n const keyword = keywordPos !== -1\n ? stringLocale.substr(keywordPos + 1)\n : undefined;\n\n const localeWithoutKeyword = keywordPos !== -1\n ? stringLocale.substr(0, keywordPos)\n : stringLocale;\n\n // en-us => en_us\n const parts = String(localeWithoutKeyword)\n .replace(/-/g, '_')\n .split('_');\n\n if (!parts.length || parts.length > 4) {\n return undefined;\n }\n\n const language = parts.shift();\n if (!language) {\n return undefined;\n }\n\n const retVar = {\n keyword,\n language: language.toLowerCase(),\n };\n\n if (!parts.length) {\n return retVar;\n }\n\n if (parts.length === 3) {\n const variant = parts.pop();\n if (variant) {\n retVar.variant = variant.toUpperCase();\n }\n }\n\n let country = parts.pop();\n if (country.length > 3) {\n retVar.keyword = country;\n\n country = parts.pop();\n }\n\n if (country) {\n retVar.country = country.toUpperCase();\n }\n\n if (!parts.length) {\n return retVar;\n }\n\n const script = parts.pop();\n if (typeof script === 'string' && script.length >= 1) {\n retVar.script = script[0].toUpperCase() + script.substring(1).toLowerCase();\n }\n\n return retVar;\n}\n\nexport function normalize(locale, delimeter = '_') {\n const obj = parse(locale);\n if (!obj) {\n return obj;\n }\n\n let result = obj.language;\n\n if (obj.script) {\n result += `${delimeter}${obj.script}`;\n }\n\n if (obj.country) {\n result += `${delimeter}${obj.country}`;\n }\n\n return result;\n}\n\nconst splitAcceptLanguageRegEx = /([a-z]{1,8}(-[a-z]{1,8})?)\\s*(;\\s*q\\s*=\\s*(1|0\\.[0-9]+))?/ig;\nconst acceptLanguageItemRegEx = /^([a-z]{1,8}(-[a-z]{1,8})?)/i;\n\nexport function normalizeAcceptLanguage(acceptLanguage) {\n const returnItems = [];\n if (!acceptLanguage) {\n return returnItems;\n }\n\n const items = acceptLanguage.match(splitAcceptLanguageRegEx) || [];\n items.forEach(acceptLanguageItem => {\n const matches = acceptLanguageItem.match(acceptLanguageItemRegEx) || [];\n const locale = normalize(matches[0]);\n if (locale) {\n returnItems.push(locale);\n }\n });\n\n return returnItems;\n}\n\nexport function prepareSupported(supported) {\n const lgs = {};\n\n supported.forEach(supportedLocale => {\n const { language, country } = parse(supportedLocale);\n if (!language) {\n throw new Error(`Locale ${supportedLocale} is not parsable`);\n }\n\n if (!lgs[language]) {\n lgs[language] = {\n countries: {},\n firstCountry: undefined,\n main: undefined,\n };\n }\n\n const lg = lgs[language];\n if (country) {\n lg.countries[country] = supportedLocale;\n\n if (!lg.firstCountry) {\n lg.firstCountry = supportedLocale;\n }\n } else {\n lg.main = supportedLocale;\n }\n });\n\n return lgs;\n}\n\nexport function getBest(supported, locale, defaultLocale, getAnyCountry) {\n const lgs = Array.isArray(supported) ? prepareSupported(supported) : supported;\n\n // return defaultLocale if current locale is undefined\n if (!locale && defaultLocale) {\n return getBest(supported, defaultLocale, undefined, getAnyCountry);\n }\n\n if (!locale) {\n return undefined;\n }\n\n const { language, country } = parse(locale);\n if (!language) {\n return defaultLocale;\n }\n\n // selected locale is not supported\n if (!lgs[language]) {\n if (locale === defaultLocale) {\n return undefined;\n }\n\n return getBest(supported, defaultLocale, null, getAnyCountry);\n }\n\n const { countries, main = defaultLocale, firstCountry } = lgs[language];\n if (!countries || !country) {\n if (getAnyCountry && firstCountry) {\n return firstCountry;\n }\n\n return main;\n }\n\n if (getAnyCountry && firstCountry) {\n return countries[country] ? countries[country] : firstCountry;\n }\n\n return countries[country] ? countries[country] : main;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{attrs:{\"id\":\"stac-browser\"}},[(_vm.showLogin)?_c('Authentication'):_vm._e(),(_vm.globalError)?_c('ErrorAlert',_vm._b({staticClass:\"global-error\",attrs:{\"dismissible\":\"\"},on:{\"close\":_vm.hideError}},'ErrorAlert',_vm.globalError,false)):_vm._e(),(_vm.sidebar)?_c('Sidebar'):_vm._e(),_c('header',[_c('div',{staticClass:\"logo\"},[_vm._v(_vm._s(_vm.displayCatalogTitle))]),_c('StacHeader',{on:{\"enableSidebar\":function($event){_vm.sidebar = true}}})],1),_c('router-view'),_c('footer',[_c('i18n',{staticClass:\"poweredby text-muted\",attrs:{\"tag\":\"small\",\"path\":\"poweredBy\"},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('a',{attrs:{\"href\":\"https://github.com/radiantearth/stac-browser\",\"target\":\"_blank\"}},[_vm._v(\"STAC Browser\")]),_vm._v(\" \"+_vm._s(_vm.browserVersion)+\" \")]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('main',{staticClass:\"browse d-flex flex-column\"},[(!_vm.allowExternalAccess && _vm.isExternal)?_c('b-alert',{attrs:{\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('errors.noExternalAccess')))]):(_vm.error)?_c('ErrorAlert',{attrs:{\"url\":_vm.url,\"description\":_vm.errorDescription,\"id\":_vm.errorId}}):(_vm.loading)?_c('Loading',{attrs:{\"stretch\":\"\"}}):_c(_vm.component,{tag:\"component\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,staticClass:\"item\"},[_c('b-row',[_c('b-col',{staticClass:\"left\"},[_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"card\":\"\",\"pills\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.selectedAsset,\"scrollWheelZoom\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1),(_vm.thumbnails.length > 0)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.additionalLinks.length > 0)?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks,\"context\":_vm.data}}):_vm._e()],1),_c('b-col',{staticClass:\"right\"},[_c('section',{staticClass:\"intro\"},[(_vm.data.properties.description)?_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]):_vm._e(),(_vm.data.properties.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data.properties['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data.properties['anon:warning']}}):_vm._e(),(_vm.data.properties.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.properties.description}})],1):_vm._e(),(Array.isArray(_vm.data.properties.keywords) && _vm.data.properties.keywords.length > 0)?_c('Keywords',{staticClass:\"mb-3\",attrs:{\"keywords\":_vm.data.properties.keywords}}):_vm._e()],1),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.data.properties.providers)?_c('Providers',{attrs:{\"providers\":_vm.data.properties.providers}}):_vm._e(),_c('Metadata',{attrs:{\"data\":_vm.data,\"type\":\"Item\",\"ignoreFields\":_vm.ignoredMetadataFields}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Utils from '../utils';\nimport { mapGetters } from 'vuex';\n\nexport default {\n data() {\n return {\n shownAssetsOnMap: [],\n shownBandsOnMap: [],\n tab: null,\n selectedAsset: null,\n selectedAssetKey: null\n };\n },\n computed: {\n ...mapGetters(['thumbnails', 'hasAssets', 'assets']),\n shownAssets() {\n if (this.tab === 0) {\n return this.shownAssetsOnMap;\n }\n else if (this.tab === 1 || (this.tab === null && this.thumbnails.length > 0)) {\n let keys = [];\n let thumbnailRefs = this.thumbnails.map(t => t.href);\n for(let key in this.assets) {\n let asset = this.assets[key];\n if (thumbnailRefs.includes(asset.href)) {\n keys.push(key);\n }\n }\n return keys;\n }\n return [];\n }\n },\n methods: {\n showAsset(asset, id, isThumbnail) {\n if (isThumbnail) {\n this.tab = 1;\n }\n else {\n this.tab = 0;\n this.selectedAsset = asset;\n this.selectedAssetKey = id;\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n if (this.$refs.tabs) {\n Utils.scrollTo(this.$refs.tabs.$el);\n }\n },\n dataChanged(data) {\n if (!Utils.isObject(data)) {\n this.shownBandsOnMap = [];\n this.shownAssetsOnMap = [];\n }\n else if (data.assets || data.bands) {\n if (Utils.size(data.assets) > 0) {\n if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n else {\n this.shownAssetsOnMap = data.assets.map(meta => meta.key);\n }\n }\n if (Utils.size(data.bands) > 0) {\n this.shownBandsOnMap = data.bands;\n }\n }\n else if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n }\n }\n};\n","import Utils from './utils';\nimport STAC from './models/stac';\nimport URI from 'urijs';\nimport i18n from './i18n';\n\nfunction toBrowserUrl(url, store) {\n let path = store.getters.toBrowserPath(url);\n let uri = URI(window.location.origin.toString());\n if (store.state.historyMode === 'hash') {\n uri.path(store.state.pathPrefix);\n uri.fragment(path);\n }\n else {\n uri.path(Utils.removeTrailingSlash(store.state.pathPrefix) + path);\n }\n return uri.toString();\n}\n\nfunction addSpatialCoverage(schema, bbox) {\n if (Array.isArray(bbox) && bbox.length >= 4) {\n schema.spatialCoverage = {\n \"@type\": \"Place\",\n geo: {\n \"@type\": \"GeoShape\",\n box: (bbox || []).join(\" \")\n }\n };\n }\n}\n\nfunction formatTemporalCoverage(dates) {\n if (Array.isArray(dates) && dates.length === 2 && (typeof dates[0] === 'string' || typeof dates[1] === 'string')) {\n return dates.map(dt => dt ? dt : '..').join('/');\n }\n return null;\n}\n\nfunction makeAssets(data) {\n if (Utils.size(data.assets) > 0) {\n return Object.values(data.assets).map(a => ({\n \"@type\": \"DataDownload\",\n contentUrl: Utils.toAbsolute(a.href, data.getAbsoluteUrl()),\n encodingFormat: a.type,\n name: a.title\n }));\n }\n return [];\n}\n\nfunction makeLinks(links, data, store, type = \"DataCatalog\") {\n return links.map(link => {\n let name, isBasedOn;\n if (link instanceof STAC) {\n name = STAC.getDisplayTitle(link);\n isBasedOn = link.getAbsoluteUrl();\n }\n else {\n name = link.title;\n isBasedOn = Utils.toAbsolute(link.href, data.getAbsoluteUrl());\n }\n let obj = {\n \"@type\": type,\n name,\n url: toBrowserUrl(isBasedOn, store),\n isBasedOn\n };\n if (type === 'Dataset') {\n obj.description = fallbackDescription(link, store);\n }\n return obj;\n });\n}\n\nfunction makeProvider(providers, role) {\n return providers\n .filter(p => Utils.isObject(p) && Array.isArray(p.roles) && p.roles.includes(role))\n .map(p => ({\n \"@type\": \"Organization\",\n \"name\": p.name,\n \"description\": p.description,\n \"url\": p.url,\n \"email\": p.email || p.mail,\n }));\n}\n\nfunction fallbackDescription(data, store) {\n let stacType, container;\n if (data instanceof STAC) {\n stacType = data.isItem() ? \"Item\" : data.type;\n container = data.collection;\n }\n else if (Utils.isObject(data) && data.rel === 'item') {\n stacType = \"Item\";\n }\n if (stacType) {\n let type = i18n.tc(`stac${stacType}`);\n let inX = i18n.t('in', {catalog: container || store.catalogTitle});\n return `SpatioTemporal Asset Catalog (STAC)\\n${type} - ${data.id} ${inX}`;\n }\n}\n\nfunction createBaseSchema(data, type, store) {\n let name = STAC.getDisplayTitle(data);\n let stacUrl = data.getAbsoluteUrl();\n let url = toBrowserUrl(stacUrl, store);\n let inLanguage = data.getMetadata('language')?.code;\n let thumbnails = data.getThumbnails(true);\n let thumbnailUrl;\n if (thumbnails.length > 0) {\n thumbnailUrl = Utils.toAbsolute(thumbnails[0].href, data.getAbsoluteUrl());\n }\n let license = data.getMetadata('license');\n if (license && license !== 'proprietary' && license !== 'various' && license !== 'other') {\n license = `https://spdx.org/licenses/${license}.html`;\n }\n else {\n license = data.getLinkWithRel('license')?.href;\n }\n if (license) {\n license = Utils.toAbsolute(license, data.getAbsoluteUrl());\n }\n\n let providers = data.getMetadata('providers');\n let copyrightHolder; // licensor\n let producer; // producer\n let provider; // host\n let creator; // processor\n if (Utils.size(providers) > 0) {\n copyrightHolder = makeProvider(providers, \"licensor\");\n producer = makeProvider(providers, \"producer\");\n provider = makeProvider(providers, \"host\");\n creator = makeProvider(providers, \"processor\");\n }\n\n return {\n \"@context\": \"https://schema.org/\",\n \"@type\": type,\n name,\n description: data.getMetadata(\"description\") || fallbackDescription(data, store),\n citation: data.getMetadata(\"sci:citation\"),\n identifier: data.getMetadata(\"sci:doi\") || data.id,\n keywords: data.getMetadata(\"keywords\"),\n license,\n url,\n isBasedOn: stacUrl,\n dateCreated: data.getMetadata('created'),\n dateModified: data.getMetadata('updated'),\n datePublished: data.getMetadata('published'),\n expires: data.getMetadata('expires'),\n inLanguage,\n thumbnailUrl,\n version: data.getMetadata('version'),\n image: thumbnailUrl,\n copyrightHolder,\n producer,\n provider,\n creator\n };\n}\n\nexport function createCatalogSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n // Remove invalid links\n parents = parents.filter(link => Utils.isObject(link));\n if (parents.length > 1) {\n // Remove duplicates\n parents = parents.filter((link, i) => parents.findIndex(p => p.isBasedOn === link.isBasedOn) !== i);\n }\n\n let schema = createBaseSchema(data, 'DataCatalog', store);\n\n if (data.isCollection()) {\n if (data.extent?.temporal?.interval.length > 0) {\n schema.temporalCoverage = formatTemporalCoverage(data.extent.temporal.interval[0]);\n }\n\n if (data.extent?.spatial?.bbox.length > 0) {\n addSpatialCoverage(schema, data.extent.spatial.bbox[0]);\n }\n schema.associatedMedia = makeAssets(data);\n }\n\n schema.hasPart = makeLinks(store.getters.catalogs, data, store);\n schema.dataset = makeLinks(store.getters.items, data, store, \"Dataset\");\n schema.isPartOf = makeLinks(parents, data, store);\n\n return schema;\n}\n\nexport function createItemSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n parents = parents.filter(link => Utils.isObject(link));\n\n let schema = createBaseSchema(data, 'Dataset', store);\n\n schema.includedInDataCatalog = makeLinks(parents, data, store);\n\n let start = data.getMetadata('start_datetime');\n let end = data.getMetadata('end_datetime');\n if (start || end) {\n schema.temporalCoverage = formatTemporalCoverage([start, end]);\n }\n else {\n schema.temporalCoverage = data.getMetadata('datetime');\n }\n\n addSpatialCoverage(schema, data.bbox);\n schema.distribution = makeAssets(data);\n\n return schema;\n}\n\nexport function addSchemaToDocument(doc, schema) {\n let id = 'schema-org';\n let element = doc.getElementById(id);\n if (!element) {\n element = doc.createElement('script');\n element.type = 'application/ld+json';\n element.id = id;\n doc.head.appendChild(element);\n }\n element.innerText = JSON.stringify(schema);\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=5a87283c\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=5a87283c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,class:{cc: true, [_vm.cssStacType]: true, mixed: _vm.hasCatalogs && _vm.hasItems, empty: !_vm.hasCatalogs && !_vm.hasItems}},[_c('b-row',[_c('b-col',{staticClass:\"meta\"},[_c('section',{staticClass:\"intro\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]),(_vm.data.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data['anon:warning']}}):_vm._e(),(_vm.data.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.description}})],1):_vm._e(),(Array.isArray(_vm.data.keywords) && _vm.data.keywords.length > 0)?_c('Keywords',{staticClass:\"mb-3\",attrs:{\"keywords\":_vm.data.keywords}}):_vm._e(),(_vm.isCollection)?_c('section',{staticClass:\"metadata mb-4\"},[(_vm.licenses)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.license')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.licenses)}})])],1):_vm._e(),(_vm.temporalExtents)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.temporalExtent')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtents)}})])],1):_vm._e()],1):_vm._e(),(_vm.linkPosition === 'left')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks,\"context\":_vm.data}}):_vm._e()],1),(_vm.isCollection || _vm.hasThumbnails)?_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"pills\":\"\",\"card\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(_vm.isCollection)?_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.mapData,\"fitBoundsOnce\":\"\",\"popover\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1):_vm._e(),(_vm.hasThumbnails)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1):_vm._e(),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.hasItemAssets && !_vm.hasItems)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"context\":_vm.data,\"definition\":true}}):_vm._e(),(_vm.providers)?_c('Providers',{attrs:{\"providers\":_vm.providers}}):_vm._e(),_c('Metadata',{staticClass:\"mb-4\",attrs:{\"type\":_vm.data.type,\"data\":_vm.data,\"ignoreFields\":_vm.ignoredMetadataFields}}),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.linkPosition === 'right')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks,\"context\":_vm.data}}):_vm._e()],1),(_vm.hasCatalogs)?_c('b-col',{staticClass:\"catalogs-container\"},[_c('Catalogs',{attrs:{\"catalogs\":_vm.catalogs,\"hasMore\":!!_vm.nextCollectionsLink},on:{\"loadMore\":_vm.loadMoreCollections}})],1):_vm._e(),(_vm.hasItems)?_c('b-col',{staticClass:\"items-container\"},[_c('Items',{attrs:{\"stac\":_vm.data,\"items\":_vm.items,\"api\":_vm.isApi,\"showFilters\":_vm.showFilters,\"apiFilters\":_vm.filters,\"pagination\":_vm.itemPages,\"loading\":_vm.apiItemsLoading},on:{\"paginate\":_vm.paginateItems,\"filterItems\":_vm.filterItems,\"filtersShown\":_vm.filtersShown}}),(_vm.hasItemAssets)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"context\":_vm.data,\"definition\":true}}):_vm._e()],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=41cf114e\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=41cf114e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Browse.vue?vue&type=template&id=21cc23bf\"\nimport script from \"./Browse.vue?vue&type=script&lang=js\"\nexport * from \"./Browse.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Browse from '../views/Browse.vue';\n\nfunction getPath(route, config) {\n let path = route.params.pathMatch;\n if (config.allowExternalAccess && path.startsWith(\"external/\")) {\n path = '/' + path;\n }\n return {path};\n}\n\nfunction getRoutes(config) {\n let routes = [];\n\n if (!config.catalogUrl) {\n routes.push({\n path: \"/\",\n name: \"select\",\n component: () => import(\"../views/SelectDataSource.vue\")\n });\n routes.push({\n path: \"/search/external/(.*)\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\"),\n props: route => {\n return {\n loadParent: `/external/${route.params.pathMatch}`\n };\n }\n });\n }\n else {\n routes.push({\n path: \"/search\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\")\n });\n }\n\n routes.push({\n path: '/auth/logout',\n name: \"logout\",\n component: () => import(\"../views/Logout.vue\")\n });\n routes.push({\n path: '/auth',\n component: () => import(\"../views/LoginCallback.vue\")\n });\n\n routes.push({\n path: \"/validation/(.*)\",\n name: \"validation\",\n component: () => import(\"../views/Validation.vue\"),\n props: route => getPath(route, config)\n });\n\n routes.push({\n path: \"/(.*)\",\n name: \"browse\",\n component: Browse,\n props: route => getPath(route, config)\n });\n\n return routes;\n}\n\nexport default getRoutes;\n","import Auth from '../auth';\nimport i18n from '../i18n';\nimport AuthUtils from '../components/auth/utils';\nimport BrowserStorage, { Cookies } from '../browser-store';\n\nconst handleAuthError = async (cx, error) => {\n cx.commit('showGlobalError', {\n error,\n message: i18n.t('errors.authFailed')\n }, { root: true });\n await cx.dispatch('updateCredentials');\n};\n\nexport default function getStore(router) {\n return {\n namespaced: true,\n state: {\n // Wrap in a function and use the getter instead of the state\n // Unfortunately, some auth libraries have internal state, which vuex doesn't like\n // and thus reports: \"do not mutate vuex store state outside mutation handlers.\"\n method: () => new Auth(),\n actions: [],\n credentials: null,\n inProgress: false\n },\n getters: {\n method(state) {\n return state.method();\n },\n canAuthenticate(state, getters, rootState) {\n return AuthUtils.isSupported(getters.method, rootState);\n },\n isLoggedIn(state) {\n return state.credentials !== null;\n },\n showLogin(state, getters) {\n return !getters.isLoggedIn && state.inProgress;\n }\n },\n mutations: {\n setCredentials(state, credentials) {\n state.credentials = credentials; // e.g. Username + Password or a Bearer Token\n },\n setMethod(state, method) {\n state.method = () => method;\n },\n addAction(state, callback) {\n state.actions.push(callback);\n },\n resetActions(state) {\n state.actions = [];\n },\n setInProgress(state, inProgress = true) {\n state.inProgress = inProgress;\n }\n },\n actions: {\n async waitForAuth(cx) {\n if (Auth.equals(cx.getters.method, cx.rootState.authConfig)) {\n return;\n }\n await cx.dispatch('updateMethod', cx.rootState.authConfig);\n },\n async updateMethod(cx, config) {\n config = AuthUtils.convertLegacyAuthConfig(config);\n if (!Auth.equals(cx.getters.method, config)) {\n await cx.getters.method.close();\n }\n\n const changeListener = async (isLoggedIn, credentials) => {\n if (!isLoggedIn) {\n credentials = null;\n }\n await cx.dispatch('updateCredentials', credentials);\n if (isLoggedIn) {\n await cx.dispatch('executeActions');\n }\n else {\n cx.commit('resetActions');\n }\n };\n \n const storage = new BrowserStorage(true);\n storage.set('authConfig', config);\n\n const newAuth = await Auth.create(config, changeListener, router);\n cx.commit('setMethod', newAuth);\n },\n async requestLogin(cx) {\n if (cx.getters.isLoggedIn) {\n return;\n }\n cx.commit('setInProgress');\n try {\n await cx.getters.method.login();\n } catch(error) {\n handleAuthError(cx, error);\n }\n },\n async finalizeLogin(cx, credentials = null) {\n cx.commit('setInProgress', false);\n try {\n await cx.getters.method.confirmLogin(credentials);\n } catch(error) {\n handleAuthError(cx, error);\n }\n },\n async abortLogin(cx) {\n cx.commit('setInProgress', false);\n },\n async requestLogout(cx) {\n if (!cx.getters.isLoggedIn) {\n return;\n }\n cx.commit('setInProgress');\n await cx.getters.method.logout();\n },\n async finalizeLogout(cx) {\n cx.commit('setInProgress', false);\n try {\n await cx.getters.method.confirmLogout();\n } catch(error) {\n handleAuthError(cx, error);\n }\n },\n // Format the value and add it to query parameters or headers\n async updateCredentials(cx, value = null) {\n cx.commit('setCredentials', value);\n const intent = cx.getters.method.updateStore(value);\n if (intent.query) {\n cx.commit('setQueryParameter', intent.query, { root: true });\n }\n else if (intent.header) {\n cx.commit('setRequestHeader', intent.header, { root: true });\n }\n else if (intent.cookie) {\n const cookie = new Cookies(true);\n cookie.setItem(intent.cookie.key, intent.cookie.value);\n }\n },\n async executeActions(cx) {\n for (let callback of cx.state.actions) {\n try {\n const p = callback();\n if (p instanceof Promise) {\n p.catch(error => handleAuthError(cx, error));\n }\n } catch (error) {\n handleAuthError(cx, error);\n }\n }\n cx.commit('resetActions');\n }\n }\n };\n}\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\n\nimport URI from \"urijs\";\n\nimport i18n from '../i18n';\nimport { stacBrowserSpecialHandling } from \"../rels\";\nimport Utils, { BrowserError } from '../utils';\nimport STAC from '../models/stac';\n\nimport auth from './auth.js';\nimport { addQueryIfNotExists, isAuthenticationError, Loading, processSTAC, proxyUrl, unproxyUrl, stacRequest } from './utils';\nimport { getBest } from '../locale-id';\nimport I18N from '@radiantearth/stac-fields/I18N';\nimport { translateFields, executeCustomFunctions, loadMessages } from '../i18n';\nimport { TYPES } from \"../components/ApiCapabilitiesMixin\";\nimport BrowserStorage from \"../browser-store.js\";\n\nfunction getStore(config, router) {\n // Local settings (e.g. for currently loaded STAC entity)\n const localDefaults = () => ({\n url: '',\n title: config.catalogTitle,\n description: null,\n data: null,\n parents: null,\n globalError: null,\n\n localRequestQueryParameters: {},\n stateQueryParameters: {\n language: null,\n asset: [],\n itemdef: []\n },\n\n apiItems: [],\n apiItemsLink: null,\n apiItemsPagination: {}\n });\n\n const catalogDefaults = () => ({\n queue: [],\n privateQueryParameters: {},\n authActions: [],\n conformsTo: [],\n dataLanguage: null,\n dataLanguages: [],\n\n apiCollections: [],\n apiItemsLoading: {},\n nextCollectionsLink: null\n });\n\n return new Vuex.Store({\n strict: process.env.NODE_ENV !== 'production',\n modules: {\n auth: auth(router)\n },\n state: Object.assign({}, config, localDefaults(), catalogDefaults(), {\n // Global settings\n database: {}, // STAC object, Error object or Loading object or Promise (when loading)\n allowSelectCatalog: !config.catalogUrl,\n globalRequestQueryParameters: config.requestQueryParameters,\n uiLanguage: config.locale\n }),\n getters: {\n loading: state => !state.url || !state.data || state.database[state.url] instanceof Loading,\n getApiItemsLoading: state => data => {\n let id = '';\n if (data instanceof Loading) {\n return true;\n }\n else if (data instanceof STAC) {\n id = data.id;\n }\n else if (typeof data === 'string') {\n id = data;\n }\n return state.apiItemsLoading[id] || false;\n },\n error: state => state.database[state.url] instanceof Error ? state.database[state.url] : null,\n getStac: state => (source, returnErrorObject = false) => {\n if (source instanceof STAC) {\n return source;\n }\n if (Utils.isObject(source) && Utils.hasText(source.href)) {\n source = source.href;\n }\n if (!Utils.hasText(source)) {\n return null;\n }\n let absoluteUrl = Utils.toAbsolute(source, state.url);\n let data = state.database[absoluteUrl];\n if (data instanceof STAC || (returnErrorObject && data instanceof Error)) {\n return data;\n }\n else {\n return null;\n }\n },\n\n displayCatalogTitle: (state, getters) => STAC.getDisplayTitle(getters.root, state.catalogTitle),\n\n isCollection: state => state.data?.isCollection() || false,\n isCatalog: state => state.data?.isCatalog() || false,\n isCatalogLike: state => state.data?.isCatalogLike() || false,\n isItem: state => state.data?.isItem() || false,\n\n root: (_, getters) => getters.getStac(getters.rootLink),\n\n rootLink: state => {\n let link = state.data?.getStacLinkWithRel('root');\n if (link) {\n return link;\n }\n else if (state.catalogUrl) {\n return Utils.createLink(state.catalogUrl, 'root');\n }\n else if (state.url && state.data instanceof STAC && state.data.getLinksWithRels(['conformance', 'service-desc', 'service-doc', 'data', 'search']).length > 0) {\n return Utils.createLink(state.url, 'root');\n }\n else if (state.url) {\n // Fallback: If we detect OGC API like paths, try to guess the paths\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n if (path === 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n }\n return Utils.createLink(uri.toString(), 'root');\n }\n }\n return null;\n },\n parentLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data.getStacLinkWithRel('parent');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'parent');\n }\n }\n\n return null;\n },\n collectionLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data?.getStacLinkWithRel('collection');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (path == 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'collection');\n }\n }\n\n return null;\n },\n supportsConformance: state => classes => {\n if(!Array.isArray(classes)) {\n return classes;\n }\n let classRegexp = classes\n .map(c => c.replaceAll('*', '[^/]+').replace(/\\/?#/, '/?#'))\n .join('|');\n let regexp = new RegExp('^(' + classRegexp + ')$');\n return Boolean(state.conformsTo.find(uri => uri.match(regexp)));\n },\n supportsExtension: state => schemaUri => {\n return Utils.supportsExtension(state.data, schemaUri);\n },\n\n canSearch: (state, getters) => {\n return getters.canSearchCollections || getters.canSearchItems;\n },\n canSearchItems: (state, getters) => {\n return getters.supportsConformance(TYPES.Global.BasicFilters);\n },\n canSearchCollections: (state, getters) => {\n return getters.supportsConformance(TYPES.Collections.BasicFilters);\n },\n\n items: state => {\n if (state.apiItems.length > 0) {\n return state.apiItems;\n }\n else if (state.data) {\n return state.data.getStacLinksWithRel('item');\n }\n return [];\n },\n catalogs: state => {\n let hasCollections = Boolean(state.data instanceof STAC && state.data.getApiCollectionsLink() && state.apiCollections.length > 0);\n let hasChilds = Boolean(state.data instanceof STAC);\n let showCollections = !state.apiCatalogPriority || state.apiCatalogPriority === 'collections';\n let showChilds = !state.apiCatalogPriority || state.apiCatalogPriority === 'childs';\n let catalogs = [];\n if (hasCollections && showCollections) {\n catalogs = catalogs.concat(state.apiCollections);\n }\n if (hasChilds && showChilds) {\n catalogs = STAC.addMissingChildren(catalogs, state.data);\n }\n return catalogs;\n },\n\n // hasAsset also checks whether the assets have a href and thus are not item asset definitions\n hasAssets: (state, getters) => Boolean(Object.values(getters.assets).find(asset => Utils.isObject(asset) && typeof asset.href === 'string')),\n assets: (state, getters) => {\n if (!Utils.isObject(state.data?.assets)) {\n return {};\n }\n else if (state.showThumbnailsAsAssets) {\n return state.data.assets;\n }\n else {\n let assets = {};\n let thumbnails = getters.thumbnails;\n for (let key in state.data.assets) {\n let asset = state.data.assets[key];\n if (!thumbnails.includes(asset)) {\n assets[key] = asset;\n }\n }\n return assets;\n }\n },\n thumbnails: state => state.data ? state.data.getThumbnails(true) : [],\n additionalLinks: state => state.data ? state.data.getLinksWithOtherRels(stacBrowserSpecialHandling).filter(link => link.rel !== 'preview' || !Utils.canBrowserDisplayImage(link)) : [],\n\n toBrowserPath: (state, getters) => url => {\n if (!Utils.hasText(url)) {\n url = '/';\n }\n\n let absolute = Utils.toAbsolute(unproxyUrl(url, state.stacProxyUrl), state.url, false);\n let relative;\n if (!state.allowSelectCatalog && state.catalogUrl) {\n relative = absolute.relativeTo(state.catalogUrl);\n }\n\n if (typeof relative === 'undefined' || getters.isExternalUrl(absolute, false)) {\n if (!state.allowExternalAccess) {\n return absolute.toString();\n }\n let parts = ['/external'];\n let protocol = absolute.protocol();\n if (protocol !== 'https') {\n parts.push(protocol + ':');\n }\n parts.push(absolute.authority());\n parts.push(absolute.path().replace(/^\\//, ''));\n let path = parts.join('/');\n let q = absolute.query();\n if (q) {\n path += `?${q}`;\n }\n return path;\n }\n else {\n return '/' + relative.toString();\n }\n },\n fromBrowserPath: (state, getters) => url => {\n const externalRE = /^\\/(search\\/)?external\\//;\n if (!Utils.hasText(url) || url === '/') {\n url = state.catalogUrl;\n }\n else if (url.match(externalRE)) {\n let parts = url.replace(externalRE, '').split('/');\n let protocol;\n if (!parts[0].endsWith(':')) {\n protocol = 'https:';\n }\n else {\n protocol = parts.shift();\n }\n url = `${protocol}//${parts.join('/')}`;\n }\n else if (!state.allowSelectCatalog && state.catalogUrl) {\n url = Utils.toAbsolute(url, state.catalogUrl, false);\n }\n return getters.getRequestUrl(url, null, true);\n },\n isExternalUrl: state => (absoluteUrl, whitelist = true) => {\n if (!state.catalogUrl) {\n return false;\n }\n if (!(absoluteUrl instanceof URI)) {\n absoluteUrl = URI(absoluteUrl);\n }\n if (whitelist && Array.isArray(state.allowedDomains) && state.allowedDomains.includes(absoluteUrl.domain())) {\n return false;\n }\n let relative;\n if (absoluteUrl.is(\"relative\")) {\n relative = absoluteUrl;\n }\n else {\n relative = absoluteUrl.relativeTo(state.catalogUrl);\n if (relative.equals(absoluteUrl)) {\n return true;\n }\n }\n let relativeStr = relative.toString();\n return relativeStr.startsWith('//') || relativeStr.startsWith('../');\n },\n getRequestUrl: (state, getters) => (url, baseUrl = null, addLocalQueryParams = false) => {\n let absoluteUrl = Utils.toAbsolute(proxyUrl(url, state.stacProxyUrl), baseUrl ? baseUrl : state.url, false);\n if (!getters.isExternalUrl(absoluteUrl)) {\n // Check whether private params are present and add them if the URL is part of the catalog\n addQueryIfNotExists(absoluteUrl, state.privateQueryParameters);\n // Check if we need to add global request params\n addQueryIfNotExists(absoluteUrl, state.globalRequestQueryParameters);\n if (addLocalQueryParams) {\n // Check if we need to add local request params\n addQueryIfNotExists(absoluteUrl, state.localRequestQueryParameters);\n }\n }\n // If we are proxying a STAC Catalog, replace any URI with the proxied address.\n return absoluteUrl.toString();\n },\n\n acceptedLanguages: state => {\n const languages = {};\n // Implement in ascending order:\n languages['en'] = 0.1;\n if (Array.isArray(state.supportedLocales)) {\n state.supportedLocales.forEach(locale => languages[locale] = 0.2);\n }\n if (Utils.hasText(state.fallbackLocale)) {\n languages[state.fallbackLocale] = 0.5;\n }\n if (Array.isArray(navigator.languages)) {\n navigator.languages.forEach(locale => languages[locale] = 0.7);\n }\n if (Utils.hasText(state.locale)) {\n languages[state.locale] = 1;\n }\n return Object.entries(languages)\n .sort((a,b) => {\n if (a[1] > b[1]) {\n return -1;\n }\n else if (a[1] < b[1]) {\n return 1;\n }\n return 0;\n })\n .map(([l, q]) => q >= 1 ? l : `${l};q=${q}`)\n .join(',');\n }\n },\n mutations: {\n config(state, config) {\n // This should only be called from the config action\n for (let key in config) {\n let value = config[key];\n switch (key) {\n case 'catalogTitle':\n state.catalogTitle = value;\n break;\n case 'catalogUrl':\n if (typeof value === 'function') {\n state.catalogUrl = value();\n }\n else if (typeof value === 'string') {\n state.catalogUrl = value;\n }\n break;\n case 'crossOriginMedia':\n state.crossOriginMedia = ['anonymous', 'use-credentials'].includes(value) ? value : null;\n break;\n case 'cardViewSort':\n switch(value) {\n case 'asc':\n state.cardViewSort = 1;\n break;\n case 'desc':\n state.cardViewSort = -1;\n break;\n default:\n state.cardViewSort = 0;\n }\n break;\n default:\n state[key] = value;\n }\n }\n },\n languages(state, {uiLanguage, dataLanguage}) {\n state.dataLanguage = dataLanguage || null;\n state.uiLanguage = uiLanguage || null;\n },\n setQueryParameter(state, { type, key, value }) {\n type = `${type}QueryParameters`;\n if (typeof value === 'undefined') {\n Vue.delete(state[type], key);\n }\n else {\n Vue.set(state[type], key, value);\n }\n },\n setRequestHeader(state, { key, value }) {\n if (typeof value === 'undefined') {\n Vue.delete(state.requestHeaders, key);\n }\n else {\n Vue.set(state.requestHeaders, key, value);\n }\n },\n requestAuth(state, callback) {\n if (typeof callback === 'function') {\n state.doAuth.push(callback);\n }\n else {\n state.doAuth = [];\n }\n },\n setAuthData(state, value) {\n state.authData = value;\n },\n state(state, newState) {\n state.stateQueryParameters = newState;\n },\n updateState(state, {type, value}) {\n if (value === null || typeof value === 'undefined') {\n Vue.delete(state.stateQueryParameters, type);\n }\n else {\n Vue.set(state.stateQueryParameters, type, value);\n }\n },\n openCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n // need to prevent duplicates because of the way the collapse v-model works\n if (idx === -1) {\n state.stateQueryParameters[type].push(uid);\n }\n },\n closeCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n if (idx > -1) {\n Vue.delete(state.stateQueryParameters[type], idx);\n }\n },\n updateLoading(state, { url, show }) {\n let data = state.database[url];\n Vue.set(data, 'show', show || data.show);\n },\n loading(state, { url, loading }) {\n Vue.set(state.database, url, loading);\n if (loading.show) {\n state.url = url;\n }\n },\n loaded(state, { url, data }) {\n Vue.set(state.database, url, processSTAC(state, data));\n },\n clear(state, url) {\n Vue.delete(state.database, url);\n },\n resetCatalog(state, clearAll) {\n Object.assign(state, catalogDefaults());\n Object.assign(state, localDefaults());\n if (!state.supportedLocales.includes(state.locale)) {\n state.locale = config.locale;\n }\n if (clearAll) {\n state.catalogUrl = config.catalogUrl;\n state.catalogTitle = config.catalogTitle;\n state.database = {};\n }\n },\n resetPage(state) {\n Object.assign(state, localDefaults());\n },\n setPageMetadata(state, { title, description }) {\n state.title = title;\n if (typeof description !== 'undefined') {\n state.description = description;\n }\n },\n showPage(state, { url, title, description, stac }) {\n if (!stac) {\n stac = state.database[url] || null;\n }\n state.url = url || null;\n state.data = stac instanceof STAC ? stac : null;\n state.description = description;\n\n // Set title\n if (title) {\n state.title = title;\n }\n else {\n state.title = STAC.getDisplayTitle(state.data, state.catalogTitle);\n if (state.data) {\n let description = state.data.getMetadata('description');\n if (Utils.hasText(description)) {\n state.description = description;\n }\n }\n }\n\n if (state.data) {\n let source = state.data.isItem() ? state.data.properties : state.data;\n let languages = Array.isArray(source.languages) ? source.languages.slice() : [];\n if (Utils.isObject(source.language)) {\n languages.unshift(source.language);\n }\n state.dataLanguages = languages.filter(lang => Utils.isObject(lang) && typeof lang.code === 'string');\n }\n },\n errored(state, { url, error }) {\n if (!(error instanceof Error)) {\n error = new Error(error);\n }\n Vue.set(state.database, url, error);\n },\n queue(state, url) {\n state.queue.push(url);\n },\n unqueue(state, url) {\n let i = state.queue.indexOf(url);\n if (i !== -1) {\n state.queue.splice(i, 1);\n }\n },\n removeFromQueue(state, num) {\n state.queue.splice(0, num);\n },\n setConformanceClasses(state, classes) {\n if (Array.isArray(classes)) {\n state.conformsTo = classes;\n }\n },\n setApiItemsLink(state, link) {\n state.apiItemsLink = link;\n },\n toggleApiItemsLoading(state, collectionId = '') {\n if (state.apiItemsLoading[collectionId]) {\n Vue.delete(state.apiItemsLoading, collectionId);\n }\n else {\n Vue.set(state.apiItemsLoading, collectionId, true);\n }\n },\n setApiItems(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.features)) {\n return;\n }\n let apiItems = data.features.map(feature => processSTAC(state, feature));\n\n if (show) {\n state.apiItems = apiItems;\n }\n\n // Handle pagination links\n let pages = Utils.getPaginationLinks(data);\n\n if (show) {\n state.apiItemsPagination = pages;\n }\n\n if (stac instanceof STAC) {\n // ToDo: Prev link only required when state.apiItems is not cached(?) -> cache apiItems?\n stac.setApiData(apiItems, pages.next, pages.prev);\n }\n },\n addApiCollections(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.collections)) {\n return;\n }\n\n let collections = data.collections.map(collection => processSTAC(state, collection));\n let nextLink = Utils.getLinkWithRel(data.links, 'next');\n if (show) {\n state.nextCollectionsLink = nextLink;\n state.apiCollections = state.apiCollections.concat(collections);\n }\n if (stac instanceof STAC) {\n stac.setApiData(collections, nextLink);\n }\n },\n resetApiItems(state, link) {\n state.apiItems = [];\n state.apiItemsLink = link;\n state.apiItemsPagination = {};\n },\n parents(state, parents) {\n state.parents = parents;\n },\n showGlobalError(state, error) {\n if(error) {\n console.trace(error);\n }\n state.globalError = error;\n }\n },\n actions: {\n async config(cx, config) {\n const oldConfig = Object.assign({}, cx.state);\n cx.commit('config', config);\n // React on config changes\n for (let key in config) {\n let value = cx.state[key];\n if (value !== oldConfig[key]) {\n continue;\n }\n switch (key) {\n case 'authConfig':\n await cx.dispatch('auth/updateMethod', value);\n break;\n }\n }\n },\n async switchLocale(cx, {locale, userSelected}) {\n await cx.dispatch('config', {locale});\n\n if (cx.state.storeLocale && userSelected) {\n const storage = new BrowserStorage();\n storage.set('locale', locale);\n }\n\n // Locale for UI\n let uiLanguage = getBest(cx.state.supportedLocales, locale, cx.state.fallbackLocale);\n // Locale for data\n let dataLanguageCodes = cx.state.dataLanguages.map(l => l.code);\n let dataLanguageFallback = cx.state.dataLanguages.length > 0 ? cx.state.dataLanguages[0].code : uiLanguage;\n let dataLanguage = getBest(dataLanguageCodes, locale, dataLanguageFallback);\n\n // Load messages\n await loadMessages(uiLanguage);\n\n // Update stac-fields\n I18N.setLocales([uiLanguage, cx.state.fallbackLocale]);\n I18N.setTranslator(translateFields);\n\n // Execute other custom functions required to localize\n await executeCustomFunctions(uiLanguage);\n\n cx.commit('languages', {dataLanguage, uiLanguage});\n cx.commit('setQueryParameter', { type: 'state', key: 'language', value: locale });\n },\n async loadBackground(cx, count) {\n let urls = cx.state.queue.slice(0, count);\n if (urls.length > 0) {\n let promises = [];\n for (let url of urls) {\n promises.push(cx.dispatch('load', { url }));\n }\n cx.commit('removeFromQueue', count);\n return await Promise.all(promises);\n }\n },\n async loadParents(cx) {\n if (!(cx.state.data instanceof STAC)) {\n cx.commit('parents', []);\n return;\n }\n\n let parents = [];\n let stac = cx.state.data;\n while (stac) {\n let parentLink = stac.getLinkWithRel('parent') || stac.getLinkWithRel('root');\n if (!parentLink) {\n break;\n }\n let url = Utils.toAbsolute(parentLink.href, stac.getAbsoluteUrl());\n await cx.dispatch('load', { url });\n let parentStac = cx.getters.getStac(url, true);\n if (parentStac instanceof Error) {\n cx.commit('parents', parentStac);\n return;\n }\n if (parentStac === stac) {\n break;\n }\n parents.push(parentStac);\n stac = parentStac;\n }\n cx.commit('parents', parents);\n },\n async tryLogin(cx, {url, action}) {\n cx.commit('clear', url);\n cx.commit('errored', { url, error: new BrowserError(i18n.t('authentication.unauthorized')) });\n if (action) {\n cx.commit('auth/addAction', action);\n }\n await cx.dispatch('auth/requestLogin');\n },\n async load(cx, args) {\n let { url, show, force, noRetry } = args;\n\n const path = cx.getters.toBrowserPath(url);\n url = Utils.toAbsolute(url, cx.state.url);\n\n // Make sure we have all authentication details\n await cx.dispatch(\"auth/waitForAuth\");\n\n if (force) {\n cx.commit('clear', url);\n }\n\n let loading = new Loading(show);\n let data = cx.state.database[url];\n if (data instanceof Loading) {\n cx.commit('updateLoading', { url, show });\n return;\n }\n\n const hasData = data instanceof STAC && !data.isPotentiallyIncomplete();\n if (!hasData) {\n cx.commit('loading', { url, loading });\n try {\n const response = await stacRequest(cx, url);\n if (!Utils.isObject(response.data)) {\n throw new BrowserError(i18n.t('errors.invalidJsonObject'));\n }\n data = new STAC(response.data, url, path);\n cx.commit('loaded', { url, data });\n\n if (show) {\n // If we prefer another language abort redirect to the new language\n let localeLink = data.getLocaleLink(cx.state.dataLanguage);\n if (localeLink) {\n router.replace(cx.getters.toBrowserPath(localeLink.href));\n return;\n }\n }\n\n // Handle conformance classes\n let conformanceLink = data.getStacLinkWithRel('conformance');\n if (Array.isArray(data.conformsTo) && data.conformsTo.length > 0) {\n cx.commit('setConformanceClasses', data.conformsTo);\n }\n else if (conformanceLink) {\n await cx.dispatch('loadOgcApiConformance', conformanceLink);\n }\n } catch (error) {\n if (!noRetry && cx.state.authConfig && isAuthenticationError(error)) {\n await cx.dispatch('tryLogin', {\n url,\n action: () => cx.dispatch('load', Object.assign({noRetry: true, force: true, show: true}, args))\n });\n return;\n }\n console.error(error);\n cx.commit('errored', { url, error });\n return;\n }\n }\n\n // Load API Collections\n if (data.getApiCollectionsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadNextApiCollections', args);\n } catch (error) {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiCollectionsFailed'),\n error\n });\n }\n }\n // Load API Items\n else if (data.getApiItemsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadApiItems', args);\n } catch (error) {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiItemsFailed'),\n error\n });\n }\n }\n\n // Load the root catalog data if not available (e.g. after page refresh or external access)\n if (!cx.getters.root) {\n let catalogUrl = cx.state.catalogUrl;\n if (!catalogUrl) {\n const root = data.getLinkWithRel('root');\n if (root) {\n catalogUrl = Utils.toAbsolute(root.href, url);\n await cx.dispatch('config', { catalogUrl });\n }\n }\n if (catalogUrl) {\n await cx.dispatch(\"load\", { url: catalogUrl });\n }\n }\n\n // All tasks finished, show the page if requested\n if (loading.show) {\n cx.commit('showPage', { url });\n }\n },\n async loadApiItems(cx, args) {\n let { link, stac, show, filters, noRetry } = args;\n let collectionId = stac instanceof STAC ? stac.id : '';\n cx.commit('toggleApiItemsLoading', collectionId);\n\n try {\n let baseUrl = cx.state.url;\n if (stac instanceof STAC) {\n link = stac.getApiItemsLink();\n baseUrl = stac.getAbsoluteUrl();\n }\n\n link = Utils.addFiltersToLink(link, filters, cx.state.itemsPerPage);\n\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.features)) {\n throw new BrowserError(i18n.t('errors.invalidStacItems'));\n }\n else {\n response.data.features = response.data.features.map(item => {\n try {\n if (!Utils.isObject(item) || item.type !== 'Feature') {\n return null;\n }\n let selfLink = Utils.getLinkWithRel(item.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, baseUrl);\n }\n else if (typeof item.id !== 'undefined') {\n let apiCollectionsLink = cx.getters.root?.getApiCollectionsLink();\n if (baseUrl) {\n url = Utils.toAbsolute(`items/${item.id}`, baseUrl);\n }\n else if (apiCollectionsLink) {\n url = Utils.toAbsolute(`${collectionId}/items/${item.id}`, apiCollectionsLink.href);\n }\n else if (cx.state.catalogUrl) {\n url = Utils.toAbsolute(`collections/${collectionId}/items/${item.id}`, cx.state.catalogUrl);\n }\n else {\n return null;\n }\n }\n else {\n return null;\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(item, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n } catch (error) {\n console.error(error);\n return null;\n }\n }).filter(item => item instanceof STAC);\n if (show) {\n cx.commit('setApiItemsLink', link);\n }\n cx.commit('setApiItems', { data: response.data, stac, show });\n cx.commit('toggleApiItemsLoading', collectionId);\n return response;\n }\n } catch (error) {\n cx.commit('toggleApiItemsLoading', collectionId);\n if (!noRetry && cx.state.authConfig && isAuthenticationError(error)) {\n await cx.dispatch('tryLogin', {\n url: link.href,\n action: () => cx.dispatch('loadApiItems', Object.assign({noRetry: true, force: true}, args))\n });\n return;\n }\n throw error;\n }\n },\n async loadNextApiCollections(cx, args) {\n let { stac, show, noRetry } = args;\n let link;\n if (stac) {\n // First page\n if (cx.state.apiCollections.length > 0) {\n // If we have already loaded collections, skip loading the first page\n return;\n }\n link = stac.getLinkWithRel('data');\n }\n else {\n // Second page and after\n stac = cx.state.data;\n link = cx.state.nextCollectionsLink;\n }\n if (!link) {\n return;\n }\n try {\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.collections)) {\n throw new BrowserError(i18n.t('errors.invalidStacCollections'));\n }\n else {\n response.data.collections = response.data.collections.map(collection => {\n let selfLink = Utils.getLinkWithRel(collection.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, cx.state.url || stac.getAbsoluteUrl());\n }\n else {\n url = Utils.toAbsolute(`collections/${collection.id}`, cx.state.catalogUrl || stac.getAbsoluteUrl());\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(collection, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n });\n cx.commit('addApiCollections', { data: response.data, stac, show });\n }\n } catch (error) {\n if (!noRetry && cx.state.authConfig && isAuthenticationError(error)) {\n await cx.dispatch('tryLogin', {\n url: link.href,\n action: () => cx.dispatch('loadNextApiCollections', Object.assign({noRetry: true, force: true}, args))\n });\n return;\n }\n throw error;\n }\n },\n async loadOgcApiConformance(cx, link) {\n let response = await stacRequest(cx, link);\n if (Utils.isObject(response.data) && Array.isArray(response.data.conformsTo)) {\n cx.commit('setConformanceClasses', response.data.conformsTo);\n }\n },\n async loadGeoJson(cx, link) {\n try {\n let response = await stacRequest(cx, link);\n return response.data; // Use data with $refs included as fallback anyway\n } catch (error) {\n return null;\n }\n },\n async retryAfterAuth(cx) {\n let errorFn = error => cx.commit('showGlobalError', {\n error,\n message: i18n.t('errors.authFailed')\n });\n\n for (let callback of cx.state.doAuth) {\n try {\n let p = callback();\n if (p instanceof Promise) {\n p.catch(errorFn);\n }\n } catch (error) {\n errorFn(error);\n }\n }\n }\n },\n });\n}\n\nexport default getStore;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('Source',{staticClass:\"float-right\",attrs:{\"title\":_vm.title,\"stacUrl\":_vm.url,\"stac\":_vm.data}}),_c('h1',[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))])],2),(!_vm.isStacChooser())?_c('p',{staticClass:\"lead\"},[(_vm.containerLink)?_c('i18n',{staticClass:\"in mr-3\",attrs:{\"tag\":\"span\",\"path\":\"in\"},scopedSlots:_vm._u([{key:\"catalog\",fn:function(){return [_c('StacLink',{attrs:{\"data\":_vm.containerLink}})]},proxy:true}],null,false,1458487365)}):_vm._e(),_c('b-button-group',[(_vm.back)?_c('b-button',{attrs:{\"to\":_vm.selfBrowserLink,\"title\":_vm.$t('goBack.description', {type: _vm.type}),\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-arrow-left'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goBack.label')))])],1):_vm._e(),(_vm.parentLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.parentLink.href),\"title\":_vm.parentLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-arrow-90deg-up'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToParent.label')))])],1):_vm._e(),(_vm.collectionLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.collectionLink.href),\"title\":_vm.collectionLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-folder-symlink'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToCollection.label')))])],1):_vm._e(),_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.sidebar\",modifiers:{\"sidebar\":true}}],attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.$t('browse')},on:{\"click\":function($event){return _vm.$emit('enableSidebar')}}},[_c('b-icon-book'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('browse')))])],1),(_vm.canSearch)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"to\":_vm.searchBrowserLink,\"title\":_vm.$t('search.title'),\"pressed\":_vm.isSearchPage()}},[_c('b-icon-search'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('search.title')))])],1):_vm._e(),(_vm.canAuthenticate)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.authTitle},on:{\"click\":_vm.logInOut}},[_c(_vm.authIcon,{tag:\"component\"}),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.authLabel))])],1):_vm._e()],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share mt-1\"},[_c('b-button-group',[(_vm.showRoot)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-root-btn\"}},[_c('b-icon-box'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.rootTitle))])],1):_vm._e(),(_vm.stacUrl)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-link-btn\",\"title\":_vm.$t('source.detailsAboutSource')}},[_c('b-icon-link'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.label')))])],1):_vm._e(),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-share-btn\",\"title\":_vm.$t('source.share.withOthers')}},[_c('b-icon-share'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.share.label')))])],1),_c('b-dropdown',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"right\":\"\",\"title\":_vm.$t('source.language.switch')},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('b-icon-flag'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.language.label', {currentLanguage: _vm.currentLanguage})))])]},proxy:true}])},_vm._l((_vm.languages),function(l){return _c('b-dropdown-item',{key:l.code,staticClass:\"lang-item\",on:{\"click\":function($event){return _vm.switchLocale({locale: l.code, userSelected: true})}}},[(_vm.locale === l.code)?_c('b-icon-check'):_c('b-icon-blank'),_c('span',{staticClass:\"title\"},[_c('span',{attrs:{\"lang\":l.code}},[_vm._v(_vm._s(l.native))]),(l.global && l.global !== l.native)?[_vm._v(\" / \"),_c('span',{attrs:{\"lang\":\"en\"}},[_vm._v(_vm._s(l.global))])]:_vm._e()],2),(_vm.supportsLanguageExt && (!l.ui || !l.data))?_c('b-icon-exclamation-triangle',{staticClass:\"ml-2\",attrs:{\"title\":l.ui ? _vm.$t('source.language.onlyUI') : _vm.$t('source.language.onlyData')}}):_vm._e()],1)}),1)],1),(_vm.showRoot)?_c('b-popover',{attrs:{\"id\":\"popover-root\",\"target\":\"popover-root-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.rootTitle}},[_c('RootStats')],1):_vm._e(),(_vm.stacUrl)?_c('b-popover',{attrs:{\"id\":\"popover-link\",\"target\":\"popover-link-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.title')}},[(_vm.stac)?[(_vm.stacId)?_c('b-row',{staticClass:\"stac-id\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.id')))]),_c('b-col',[_c('code',[_vm._v(_vm._s(_vm.stacId))]),_c('CopyButton',{staticClass:\"ml-2\",attrs:{\"copyText\":_vm.stacId,\"button-props\":{size: 'sm'},\"variant\":\"primary\"}})],1)],1):_vm._e(),(_vm.stacVersion)?_c('b-row',{staticClass:\"stac-version\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.stacVersion')))]),_c('b-col',[_vm._v(_vm._s(_vm.stacVersion))])],1):_vm._e(),_c('b-row',{staticClass:\"stac-valid\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.valid')))]),_c('b-col',[_c('Validation',{attrs:{\"data\":_vm.stac}})],1)],1),_c('hr')]:_vm._e(),_c('Url',{attrs:{\"id\":\"stacUrl\",\"url\":_vm.stacUrl,\"label\":_vm.$t('source.locatedAt')}})],2):_vm._e(),_c('b-popover',{attrs:{\"id\":\"popover-share\",\"target\":\"popover-share-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.share.title')}},[_c('Url',{attrs:{\"id\":\"browserUrl\",\"url\":_vm.browserUrl(),\"label\":_vm.$t('source.share.sharePageWithOthers'),\"open\":false}}),(_vm.enableSocialSharing)?[_c('hr'),_c('SocialSharing',{attrs:{\"text\":_vm.sharingMessage,\"title\":_vm.title,\"url\":_vm.browserUrl()}})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-form-group',{attrs:{\"label\":_vm.label,\"label-for\":_vm.id}},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{ref:\"input\",attrs:{\"id\":_vm.id,\"value\":_vm.url,\"readonly\":\"\"}}),_c('b-input-group-append',[_c('CopyButton',{attrs:{\"copyText\":_vm.url,\"variant\":\"primary\"}}),(_vm.open)?_c('b-button',{attrs:{\"href\":_vm.url,\"target\":\"_blank\",\"variant\":\"primary\",\"title\":_vm.$t('open')}},[_c('b-icon-arrow-up-right-square')],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Url.vue?vue&type=template&id=74684ede&scoped=true\"\nimport script from \"./Url.vue?vue&type=script&lang=js\"\nexport * from \"./Url.vue?vue&type=script&lang=js\"\nimport style0 from \"./Url.vue?vue&type=style&index=0&id=74684ede&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74684ede\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',_vm._l((_vm.urls),function(href,service){return _c('b-button',{key:service,staticClass:\"service mr-1\",class:service,attrs:{\"href\":href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"svg\",class:service}),_vm._v(\" \"+_vm._s(_vm.$t(`source.share.${service}`))+\" \")])}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SocialSharing.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SocialSharing.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SocialSharing.vue?vue&type=template&id=8e71bab0&scoped=true\"\nimport script from \"./SocialSharing.vue?vue&type=script&lang=js\"\nexport * from \"./SocialSharing.vue?vue&type=script&lang=js\"\nimport style0 from \"./SocialSharing.vue?vue&type=style&index=0&id=8e71bab0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e71bab0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Source.vue?vue&type=template&id=0aa087bf&scoped=true\"\nimport script from \"./Source.vue?vue&type=script&lang=js\"\nexport * from \"./Source.vue?vue&type=script&lang=js\"\nimport style0 from \"./Source.vue?vue&type=style&index=0&id=0aa087bf&prod&lang=scss\"\nimport style1 from \"./Source.vue?vue&type=style&index=1&id=0aa087bf&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0aa087bf\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacHeader.vue?vue&type=template&id=5da16391&scoped=true\"\nimport script from \"./StacHeader.vue?vue&type=script&lang=js\"\nexport * from \"./StacHeader.vue?vue&type=script&lang=js\"\nimport style0 from \"./StacHeader.vue?vue&type=style&index=0&id=5da16391&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5da16391\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.authComponent,{tag:\"component\",on:{\"submit\":_vm.submit,\"reset\":_vm.reset}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Authentication.vue?vue&type=template&id=5dbcd191\"\nimport script from \"./Authentication.vue?vue&type=script&lang=js\"\nexport * from \"./Authentication.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacBrowser.vue?vue&type=template&id=762bcbaa\"\nimport script from \"./StacBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./StacBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./StacBrowser.vue?vue&type=style&index=0&id=762bcbaa&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport StacBrowser from \"./StacBrowser.vue\";\nimport i18n, { loadDefaultMessages } from './i18n';\n\nexport default function init() {\n return loadDefaultMessages().then(() => {\n return new Vue({\n i18n,\n render: h => h(StacBrowser)\n }).$mount(\"#stac-browser\");\n });\n}\n","import Vue from \"vue\";\nimport init from \"./init\";\n\nVue.config.productionTip = false;\n\ninit();\n","import Utils, { geojsonMediaType } from \"../utils\";\nimport Migrate from '@radiantearth/stac-migrate';\nimport { getBest } from '../locale-id';\n\nlet stacObjCounter = 0;\n\n// STAC Entity\nclass STAC {\n\n constructor(data, url, path, migrate = true) {\n this._id = stacObjCounter++;\n this._url = url;\n this._path = path;\n this._apiChildrenListeners = {};\n this._incomplete = false;\n this._apiChildren = {\n list: [],\n prev: false,\n next: false\n };\n\n if (migrate) {\n // Uncomment this line if the old checksum: fields should be converted\n // This is usually not needed so it's not enabled by default to shrink the bundle size\n // Migrate.enableMultihash(require('multihashes'));\n if (data.type === 'FeatureCollection') {\n data.features = data.features.map(item => Migrate.item(item, false));\n }\n else {\n data = Migrate.stac(data, false);\n }\n }\n for (let key in data) {\n if (typeof this[key] === 'undefined') {\n this[key] = data[key];\n }\n }\n if (!Utils.hasText(this.type)) {\n throw new Error('Not a valid STAC data source (no `type` present)');\n }\n }\n\n isPotentiallyIncomplete() {\n return this._incomplete;\n }\n\n markPotentiallyIncomplete() {\n this._incomplete = true;\n }\n\n isItem() {\n return this.type === 'Feature';\n }\n\n isCatalog() {\n return this.type === 'Catalog';\n }\n\n isCatalogLike() {\n return this.isCatalog() || this.isCollection();\n }\n\n isCollection() {\n return this.type === 'Collection';\n }\n\n isItemCollection() {\n return this.type === 'FeatureCollection';\n }\n\n hasApiData() {\n return this._apiChildren.list.length > 0;\n }\n\n setApiDataListener(id, listener = null) {\n if (typeof listener === 'function') {\n this._apiChildrenListeners[id] = listener;\n }\n else {\n delete this._apiChildrenListeners[id];\n }\n }\n\n setApiData(list, next = null, prev = null) {\n if (prev) {\n this._apiChildren.prev = prev;\n }\n if (next) {\n this._apiChildren.next = next;\n }\n this._apiChildren.list = list;\n\n for (let id in this._apiChildrenListeners) {\n try {\n this._apiChildrenListeners[id](this._apiChildren);\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n getFileFormats() {\n let assets = [];\n if ((this.isItem() || this.isCollection()) && Utils.isObject(this.assets)) {\n assets = assets.concat(Object.values(this.assets));\n }\n if (this.isCollection() && Utils.isObject(this.item_assets)) {\n assets = assets.concat(Object.values(this.item_assets));\n }\n return assets\n .filter(asset => Array.isArray(asset.roles) && asset.roles.includes('data') && typeof asset.type === 'string') // Look for data files\n .map(asset => asset.type) // Array shall only contain media types\n .filter((v, i, a) => a.indexOf(v) === i); // Unique values\n }\n\n getChildren(priority = null) {\n if (!this.isCatalogLike()) {\n return [];\n }\n\n let showCollections = !priority || priority === 'collections';\n let showChilds = !priority || priority === 'childs';\n\n let children = [];\n if (showCollections && this._apiChildren.prev) {\n children.push(this._apiChildren.prev);\n }\n if (showCollections && this._apiChildren.list.length > 0) {\n children = this._apiChildren.list.slice(0);\n }\n if (showChilds) {\n children = STAC.addMissingChildren(children, this).concat(this.getLinksWithRels(['item']));\n }\n if (showCollections && this._apiChildren.next) {\n children.push(this._apiChildren.next);\n }\n return children;\n }\n\n static addMissingChildren(catalogs, stac) {\n let links = stac.getStacLinksWithRel('child').filter(link => {\n // Don't add links that are already in collections: https://github.com/radiantearth/stac-browser/issues/103\n // ToDo: The runtime of this can probably be improved\n let absoluteUrl = Utils.toAbsolute(link.href, stac.getAbsoluteUrl());\n return !catalogs.find(collection => collection.getAbsoluteUrl() === absoluteUrl);\n });\n // place the children first to avoid conflicts with the paginated collections\n // where the children are always at the end and can never be reached due to infinite scrolling\n return links.concat(catalogs);\n }\n\n getSearchLink() {\n // The search link MUST be 'application/geo+json' as otherwise it's likely not STAC\n // See https://github.com/opengeospatial/ogcapi-features/issues/832\n let links = Utils.getLinksWithRels(this.links, ['search'])\n .filter(link => Utils.isMediaType(link.type, geojsonMediaType))\n .map(link => Object.assign({}, link, {href: Utils.toAbsolute(link.href, this._url)}));\n // Prefer POST if present\n let post = links.find(link => Utils.hasText(link.method) && link.method.toUpperCase() === 'POST');\n return post || links[0] || null;\n }\n\n getApiCollectionsLink() {\n return this.getStacLinkWithRel('data');\n }\n\n getApiItemsLink() {\n return this.getStacLinkWithRel('items');\n }\n\n getMetadata(field) {\n if (this.isItem()) {\n return this.properties[field];\n }\n else if (this.isCatalogLike()) {\n return this[field];\n }\n return null;\n }\n\n getBrowserPath() {\n return this._path;\n }\n\n getAbsoluteUrl() {\n return this._url;\n }\n\n getLocaleLink(locale, fallbackLocale = null) {\n let links = this.getStacLinksWithRel('alternate')\n .filter(link => Utils.hasText(link.hreflang));\n \n let available;\n if (Array.isArray(this.languages)) {\n available = this.languages.map(l => l.code);\n }\n else {\n available = links.map(link => link.hreflang);\n }\n \n let best = getBest(available, locale, fallbackLocale);\n return links.find(link => link.hreflang === best) || null;\n }\n\n getStacLinksWithRel(rel, allowEmpty = true) {\n return Utils.getLinksWithRels(this.links, [rel])\n .filter(link => Utils.isStacMediaType(link.type, allowEmpty));\n }\n\n getStacLinkWithRel(rel, allowEmpty = true) {\n const links = this.getStacLinksWithRel(rel, allowEmpty);\n if (links.length > 0) {\n return links[0];\n }\n else {\n return null;\n }\n }\n\n getLinkWithRel(rel) {\n return Utils.getLinkWithRel(this.links, rel);\n }\n\n getLinksWithRels(rels) {\n return Utils.getLinksWithRels(this.links, rels);\n }\n\n getLinksWithOtherRels(rels) {\n return Utils.getLinksWithOtherRels(this.links, rels);\n }\n\n getAssetsWithRoles(roles) {\n let matches = [];\n if (Utils.isObject(this.assets)) {\n for (let key in this.assets) {\n let asset = this.assets[key];\n if (Utils.isObject(asset) && typeof asset.href === 'string' && Array.isArray(asset.roles) && asset.roles.find(role => roles.includes(role))) {\n matches.push(asset);\n }\n }\n }\n return matches;\n }\n\n static getDisplayTitle(sources, fallbackTitle = null) {\n if (!Array.isArray(sources)) {\n sources = [sources];\n }\n let stac = sources.find(o => o instanceof STAC);\n let link = sources.find(o => Utils.isObject(o) && !(o instanceof STAC));\n // Get title from STAC item/catalog/collection\n if (stac && Utils.hasText(stac.getTitle())) {\n return stac.getTitle();\n }\n // Get title from link\n else if (link && Utils.hasText(link.title)) {\n return link.title;\n }\n // Use id from STAC item/catalog/collection instead of titles\n else if (stac && Utils.hasText(stac.id)) {\n return stac.id;\n }\n // Use fallback title\n else if (Utils.hasText(fallbackTitle)) {\n return fallbackTitle;\n }\n // Use file or directory name from STAC as title\n else if (stac) {\n return Utils.titleForHref(stac.getAbsoluteUrl(), true);\n }\n // Use file or directory name from link as title\n else if (link && Utils.hasText(link.href)) {\n return Utils.titleForHref(link.href, true);\n }\n // Nothing available, return \"untitled\"\n else {\n return \"Untitled\";\n }\n }\n\n getTitle() {\n return this.getMetadata(\"title\");\n }\n\n _linkToAbsolute(link) {\n return Object.assign({}, link, { href: Utils.toAbsolute(link.href, this.getAbsoluteUrl()) });\n }\n\n getIcons() {\n return this.getLinksWithRels(['icon'])\n .filter(img => Utils.canBrowserDisplayImage(img))\n .map(img => this._linkToAbsolute(img));\n }\n\n /**\n * Get the thumbnails from the assets and links in a STAC entity.\n * \n * @param {boolean} browserOnly - Return only images that can be shown in a browser natively (PNG/JPG/GIF/WEBP).\n * @param {?string} prefer - If not `null` (default), prefers a role over the other. Either `thumbnail` or `overview`.\n * @returns \n */\n getThumbnails(browserOnly = false, prefer = null) { // prefer can be either \n let thumbnails = this.getAssetsWithRoles(['thumbnail', 'overview']);\n // Get from links only if no assets are available as they should usually be the same as in assets\n if (thumbnails.length === 0) {\n thumbnails = this.getLinksWithRels(['preview']);\n }\n // Some old catalogs use just a asset key\n if (thumbnails.length === 0 && Utils.isObject(this.assets) && Utils.isObject(this.assets.thumbnail)) {\n thumbnails = [this.assets.thumbnail];\n }\n if (browserOnly) {\n // Remove all images that can't be displayed in a browser\n thumbnails = thumbnails.filter(img => Utils.canBrowserDisplayImage(img));\n }\n if (prefer && thumbnails.length > 1) {\n // Prefer one role over the other.\n // The two step approach with two filters ensures the same sort bevahiour across all browsers:\n // see https://github.com/radiantearth/stac-browser/issues/370\n let filter = img => img.roles.includes(prefer);\n thumbnails = thumbnails\n .filter(filter)\n .concat(thumbnails.filter(img => !filter(img)));\n }\n return thumbnails.map(img => this._linkToAbsolute(img));\n }\n\n equals(other) {\n if (!Utils.isObject(other)) {\n return false;\n }\n if (this === other) {\n return true;\n }\n if (this.id === other.id && this.type == other.type) {\n return true;\n }\n return false;\n }\n\n}\n\nexport default STAC;\n","// STAC relation types\n\n// STAC hierarchical\nexport const stacHierarchy = [\n 'child',\n 'collection',\n 'item',\n 'parent',\n 'root',\n 'self',\n];\n\n// STAC API Pagination\nexport const stacPagination = [\n 'first',\n 'last',\n 'next',\n 'prev',\n 'previous',\n];\n\n// Queryables\nexport const ogcQueryables = [\n 'queryables', // Old way in STAC (deprecated)\n 'http://www.opengis.net/def/rel/ogc/1.0/queryables', // STAC and OGC APIs\n 'ogc-rel:queryables' // Alternative in OGC APIs\n];\n\n// Rels that STAC Browser can navigate to and display natively (i.e. Collections, Catalogs and Items)\nexport const stacBrowserNavigatesTo = [\n 'canonical', // Links to other catalogs or items v\n 'related',\n 'derived_from',\n 'latest-version', // version extension v\n 'predecessor-version',\n 'successor-version',\n 'source', // label extension,\n 'alternate' // language extension\n].concat(stacHierarchy).concat(stacPagination);\n\n// Rels that are handled in a special way and should not be shown in the link list\nexport const stacBrowserSpecialHandling = [\n 'conformance', // API related v\n 'data',\n 'items',\n 'search',\n 'icon', // Other v\n 'license',\n].concat(stacHierarchy).concat(stacPagination).concat(ogcQueryables);\n\n// OGC APIs\nexport const ogcRelPrefix = 'http://www.opengis.net/def/rel/ogc/1.0/';\n","import axios from \"axios\";\nimport URI from \"urijs\";\nimport Utils from \"../utils\";\n\nexport class Loading {\n\n constructor(show = false) {\n this.show = Boolean(show);\n }\n\n}\n\nexport function stacRequestOptions(cx, link) {\n // Convert a URL string to a Link Object\n if (typeof link === 'string') {\n link = {\n href: link\n };\n }\n // Return if the link is not an object or doesn't contain an href\n if (!Utils.isObject(link) || typeof link.href !== 'string') {\n return {};\n }\n\n // Generate URL including query strings\n const url = cx.getters.getRequestUrl(link.href);\n\n // Combine headers\n let headers = {\n 'Accept-Language': cx.getters.acceptedLanguages\n };\n if (Utils.hasText(link.type)) {\n headers.Accept = link.type;\n }\n if (!cx.getters.isExternalUrl(url)) {\n Object.assign(headers, cx.state.requestHeaders);\n }\n if (Utils.isObject(link.headers)) {\n Object.assign(headers, link.headers);\n }\n\n // Combine all options for axios request\n return {\n method: typeof link.method === 'string' ? link.method.toLowerCase() : 'get',\n url,\n headers,\n data: link.body\n // ToDo: Support for merge property from STAC API\n };\n}\n\nexport async function stacRequest(cx, link, axiosOptions = {}) {\n // Get options\n const options = stacRequestOptions(cx, link);\n // Execute the request\n return await axios(Object.assign(options, axiosOptions));\n}\n\n\nexport function unproxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[1], proxy[0]);\n }\n return absoluteUrl;\n}\n\nexport function proxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[0], proxy[1]);\n }\n return absoluteUrl;\n}\n\nexport function processSTAC(state, stac) {\n if (typeof state.preprocessSTAC === 'function') {\n stac = state.preprocessSTAC(stac, state);\n }\n return Object.freeze(stac);\n}\n\nexport function isAuthenticationError(error) {\n return [401, 403].includes(error?.response?.status);\n}\n\nexport function addQueryIfNotExists(uri, query) {\n if (Utils.size(query) == 0) {\n return uri;\n }\n for (let key in query) {\n if (!uri.hasQuery(key)) {\n uri.addQuery(key, query[key]);\n }\n }\n return uri;\n}\n","import URI from 'urijs';\nimport removeMd from 'remove-markdown';\nimport { stacPagination } from \"./rels\";\n\nexport const commonFileNames = ['catalog', 'collection', 'item'];\n\nexport const geojsonMediaType = \"application/geo+json\";\n\nexport const schemaMediaType = \"application/schema+json\";\n\nexport const stacMediaTypes = [\n 'application/json',\n geojsonMediaType,\n 'text/json'\n];\n\nexport const browserImageTypes = [\n 'image/gif',\n 'image/jpg',\n 'image/jpeg',\n 'image/apng',\n 'image/png',\n 'image/webp'\n];\n\nexport const cogMediaTypes = [\n \"image/tiff; application=geotiff; profile=cloud-optimized\",\n \"image/vnd.stac.geotiff; cloud-optimized=true\"\n];\n\nexport const geotiffMediaTypes = [\n \"application/geotiff\",\n \"image/tiff; application=geotiff\",\n \"image/vnd.stac.geotiff\",\n].concat(cogMediaTypes);\n\nexport const browserProtocols = [\n 'http',\n 'https'\n];\n\nexport const imageMediaTypes = browserImageTypes.concat(geotiffMediaTypes);\nexport const mapMediaTypes = imageMediaTypes.concat([geojsonMediaType]);\n\nexport class BrowserError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\n/**\n * General utilities\n * \n * @class\n */\nexport default class Utils {\n\n /**\n * Checks whether a variable is a real object or not.\n * \n * This is a more strict version of `typeof x === 'object'` as this example would also succeeds for arrays and `null`.\n * This function only returns `true` for real objects and not for arrays, `null` or any other data types.\n * \n * @param {*} obj - A variable to check.\n * @returns {boolean} - `true` is the given variable is an object, `false` otherwise.\n */\n static isObject(obj) {\n return (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n }\n\n /**\n * Computes the size of an array (number of array elements) or object (number of key-value-pairs).\n * \n * Returns 0 for all other data types.\n * \n * @param {*} obj \n * @returns {integer}\n */\n static size(obj) {\n if (typeof obj === 'object' && obj !== null) {\n if (Array.isArray(obj)) {\n return obj.length;\n }\n else {\n return Object.keys(obj).length;\n }\n }\n return 0;\n }\n\n static isStacMediaType(type, allowEmpty = false) {\n return Utils.isMediaType(type, stacMediaTypes, allowEmpty);\n }\n\n static isMediaType(type, types, allowEmpty = false) {\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (allowEmpty && !type) {\n return true;\n }\n else if (typeof type !== 'string') {\n return false;\n }\n else {\n return types.includes(type.toLowerCase());\n }\n }\n\n /**\n * Checks whether a variable is a string and contains at least one character.\n * \n * @param {*} string - A variable to check.\n * @returns {boolean} - `true` is the given variable is an string with length > 0, `false` otherwise.\n */\n static hasText(string) {\n return (typeof string === 'string' && string.length > 0);\n }\n\n static shortenTitle(fullStr, strLen, separator = '…') {\n if (fullStr.length <= strLen) {\n return fullStr;\n }\n\n let sepLen = separator.length;\n let charsToShow = strLen - sepLen;\n let frontChars = Math.ceil(charsToShow/2);\n let backChars = Math.floor(charsToShow/2);\n return fullStr.substr(0, frontChars) + \n separator + \n fullStr.substr(fullStr.length - backChars);\n }\n\n static isGdalVfsUri(url) {\n return typeof url === 'string' && url.startsWith('/vsi') && !url.startsWith('/vsicurl/');\n }\n\n static toAbsolute(href, baseUrl, stringify = true) {\n return Utils.normalizeUri(href, baseUrl, false, stringify);\n }\n\n static normalizeUri(href, baseUrl = null, noParams = false, stringify = true) {\n // Convert vsicurl URLs to normal URLs\n if (typeof href === 'string' && href.startsWith('/vsicurl/')) {\n href = href.replace(/^\\/vsicurl\\//, '');\n }\n // Parse URL and make absolute, if required\n let uri = URI(href);\n // Don't convert GDAL VFS URIs: https://github.com/radiantearth/stac-browser/issues/116\n if (baseUrl && uri.is(\"relative\") && !Utils.isGdalVfsUri(href)) {\n uri = uri.absoluteTo(baseUrl);\n }\n uri.normalize();\n if (noParams) {\n uri.query(\"\");\n uri.fragment(\"\");\n }\n return stringify ? uri.toString() : uri;\n }\n\n static getLinkWithRel(links, rel) {\n return Array.isArray(links) ? links.find(link => Utils.isObject(link) && Utils.hasText(link.href) && link.rel === rel) : null;\n }\n\n static getLinksWithRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && rels.includes(link.rel)) : [];\n }\n\n static getLinksWithOtherRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && !rels.includes(link.rel)) : [];\n }\n\n static removeTrailingSlash(str) {\n return str.replace(/\\/$/, '');\n }\n\n static equalUrl(a, b) {\n try {\n let uri1 = URI(a);\n let uri2 = URI(b);\n // Ignore trailing slash in URL paths\n uri1.path(Utils.removeTrailingSlash(uri1.path()));\n uri2.path(Utils.removeTrailingSlash(uri2.path()));\n return uri1.equals(uri2);\n } catch (error) {\n return false;\n }\n }\n\n static summarizeMd(text, maxLength = null) {\n if (!Utils.hasText(text)) {\n return '';\n }\n // Best-effort approach to remove some CommonMark (Markdown).\n // Likely not perfect, but seems good enough for most cases.\n text = removeMd(text).replaceAll(/[\\r\\n]+/g, ' ');\n if (maxLength > 0 && text.length > maxLength) {\n text = text.substr(0, maxLength) + '…';\n }\n return text;\n }\n\n static scrollTo(el) {\n if (!el) {\n return;\n }\n var rect = el.getBoundingClientRect();\n var isVisible = rect.top < window.innerHeight && rect.bottom >= 0;\n if (!isVisible) {\n el.scrollIntoView({\n behavior: \"smooth\",\n block: \"start\"\n });\n }\n }\n\n // Convert from UTC to locale time (needed for vue2-datetimepicker)\n // see https://github.com/mengxiong10/vue2-datepicker/issues/388\n static dateFromUTC(dt) {\n if (dt) {\n const value = new Date(dt);\n dt = new Date(value.getTime() + value.getTimezoneOffset() * 60 * 1000);\n }\n return dt;\n }\n\n static dateToUTC(dt) {\n if (dt instanceof Date) {\n dt = new Date(dt.getTime() - dt.getTimezoneOffset() * 60 * 1000);\n }\n return dt;\n }\n\n static formatDatetimeQuery(value) {\n return value.map(dt => {\n if (dt instanceof Date) {\n return dt.toISOString();\n }\n else if (dt) {\n return dt;\n }\n else {\n return '..';\n }\n }).join('/');\n }\n\n static formatSortbyForPOST(value) {\n // POST search requires sortby to be an array of objects containing a property name and sort direction.\n // See spec here: https://api.stacspec.org/v1.0.0-rc.1/item-search/#tag/Item-Search/operation/postItemSearch\n // This function converts the property name to the desired format.\n const sortby = {\n field: '',\n direction: 'asc'\n };\n \n // Check if the value starts with a minus sign (\"-\")\n if (value.startsWith('-')) {\n // sort by descending order\n sortby.field = value.substring(1);\n sortby.direction = 'desc';\n } else {\n //sort by ascending order\n sortby.field = value;\n }\n \n // Put the object in an array\n return [sortby];\n }\n\n static getPaginationLinks(data) {\n let pages = {};\n if (Utils.isObject(data)) {\n let pageLinks = Utils.getLinksWithRels(data.links, stacPagination);\n for (let pageLink of pageLinks) {\n let rel = pageLink.rel === 'previous' ? 'prev' : pageLink.rel;\n pages[rel] = pageLink;\n }\n }\n return pages;\n }\n\n static addFiltersToLink(link, filters = {}, itemsPerPage = null) {\n let isEmpty = value => {\n return (value === null\n || (typeof value === 'number' && !Number.isFinite(value))\n || (typeof value === 'string' && value.length === 0)\n || (typeof value === 'object' && Utils.size(value) === 0));\n };\n\n if (!Utils.isObject(filters)) {\n filters = {};\n }\n else {\n filters = Object.assign({}, filters);\n }\n\n if (typeof filters.limit !== 'number' && typeof itemsPerPage === 'number') {\n filters.limit = itemsPerPage;\n }\n\n if (Utils.hasText(link.method) && link.method.toUpperCase() === 'POST') {\n let body = Object.assign({}, link.body);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n delete body[key];\n continue;\n }\n\n if (key === 'sortby') {\n value = Utils.formatSortbyForPOST(value);\n }\n else if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'filters') {\n Object.assign(body, value.toJSON());\n continue;\n }\n\n body[key] = value;\n }\n return Object.assign({}, link, { body });\n }\n else { // GET\n // Construct new link with search params\n let url = URI(link.href);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n url.removeQuery(key);\n continue;\n }\n\n if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'bbox') {\n value = value.join(',');\n }\n else if ((key === 'collections' || key === 'ids' || key === 'q')) {\n value = value.join(',');\n }\n else if (key === 'filters') {\n let params = value.toText();\n url.setQuery(params);\n continue;\n }\n\n url.setQuery(key, value);\n }\n\n return Object.assign({}, link, { href: url.toString() });\n }\n }\n\n static titleForHref(href, preferFileName = false) {\n let uri = URI(href);\n let auth = uri.authority();\n let file = uri.filename().replace(/^(.{1,})\\.\\w+$/, '$1');\n let dir = uri.directory().replace(/^\\//, '');\n if (auth && file && !preferFileName) {\n let path = uri.path().replace(/^\\//, '');\n if (auth === 'doi.org' && path.startsWith('10.')) {\n return `DOI ${path}`;\n }\n else {\n return `${file} (${auth})`;\n }\n }\n else if (file && !commonFileNames.includes(file)) {\n return file;\n }\n else if (auth) {\n return auth;\n }\n else if (dir) {\n return dir;\n }\n else {\n return href;\n }\n }\n\n static canBrowserDisplayImage(img) {\n if (typeof img.href !== 'string') {\n return false;\n }\n let uri = URI(img.href);\n let protocol = uri.protocol().toLowerCase();\n if (protocol && !browserProtocols.includes(protocol)) {\n return false;\n }\n else if (browserImageTypes.includes(img.type)) {\n return true;\n }\n else if (browserImageTypes.includes('image/' + uri.suffix().toLowerCase())) {\n return true;\n }\n else if (img.type) {\n return false;\n }\n else {\n return true; // If no img.type is given, try to load it anyway: https://github.com/radiantearth/stac-browser/issues/147\n }\n }\n\n // Gets the value at path of object.\n // Drop in replacement for lodash.get\n static getValueFromObjectUsingPath(object, path) {\n if (object === null || typeof object !== 'object') {\n return;\n }\n object = object[path[0]];\n if (typeof object !== 'undefined' && path.length > 1) {\n return this.getValueFromObjectUsingPath(object, path.slice(1));\n }\n return object;\n }\n\n static search(searchterm, target, and = true) {\n if (typeof searchterm !== 'string' || searchterm.length === 0) {\n return false;\n }\n if (Utils.isObject(target)) {\n target = Object.values(target);\n }\n else if (typeof target === 'string') {\n target = [target];\n }\n\n if (!Array.isArray(target)) {\n return false;\n }\n\n let splitChars = /[\\s.,;!&({[)}]]+/g;\n\n // Prepare search terms\n searchterm = searchterm.toLowerCase().split(splitChars);\n\n // Prepare text to search in\n target = target\n .filter(s => typeof s === 'string') // Remove non-strings\n .join(' ') // Merge into a single string\n .replace(splitChars, ' ') // replace split chars with white spaces\n .toLowerCase(); // Lowercase\n\n // Search with \"and\" or \"or\"\n let fn = and ? 'every' : 'some';\n return searchterm[fn](term => target.includes(term));\n }\n\n static createLink(href, rel) {\n return { href, rel };\n }\n\n static supportsExtension(data, pattern) {\n if (!Utils.isObject(data) || !Array.isArray(data['stac_extensions'])) {\n return false;\n }\n let regexp = new RegExp('^' + pattern.replaceAll('*', '[^/]+') + '$');\n return Boolean(data['stac_extensions'].find(uri => regexp.test(uri)));\n }\n\n /**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\n static mergeDeep(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n\n if (Utils.isObject(target) && Utils.isObject(source)) {\n for (const key in source) {\n if (Utils.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n Utils.mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return Utils.mergeDeep(target, ...sources);\n }\n\n}\n","import ErrorAlert from '../components/ErrorAlert.vue';\nimport Loading from '../components/Loading.vue';\nimport Utils, { BrowserError } from '../utils';\nimport URI from 'urijs';\nimport { mapState, mapGetters } from 'vuex';\n\nexport default {\n components: {\n ErrorAlert,\n Loading\n },\n props: {\n path: {\n type: String,\n required: true\n }\n },\n computed: {\n ...mapState([\"allowExternalAccess\", \"catalogUrl\", \"url\", \"redirectLegacyUrls\"]),\n ...mapGetters([\"fromBrowserPath\", \"error\", \"loading\"]),\n errorId() {\n if (this.error instanceof Error && this.error.isAxiosError && Utils.isObject(this.error.response)) {\n let res = this.error.response;\n if (Utils.isObject(res.data) && res.data.code) {\n return res.data.code;\n }\n else {\n return res.status;\n }\n }\n return null;\n },\n errorDescription() { \n if (this.error instanceof Error && this.error.isAxiosError && Utils.isObject(this.error.response)) {\n let res = this.error.response;\n if (Utils.isObject(res.data) && typeof res.data.description === 'string') { // STAC API compliant error response\n return res.data.description;\n }\n if (res.status === 401) {\n return this.$t('errors.unauthorized');\n }\n else if (res.status === 403) {\n return this.$t('errors.forbidden');\n }\n else if (res.status === 404) {\n return this.$t('errors.notFound');\n }\n else if (res.status > 500) {\n return this.$t('errors.serverError');\n }\n else if (res.status > 400) {\n return this.$t('errors.badRequest');\n }\n }\n else if (this.error instanceof BrowserError) {\n return this.error.message;\n }\n\n return this.$t('errors.networkError');\n },\n isExternal() {\n return URI(this.path).is(\"absolute\");\n }\n },\n watch: {\n path: {\n immediate: true,\n async handler(path, oldPath) {\n if (path === oldPath) {\n return;\n }\n else if (!this.allowExternalAccess && this.isExternal) {\n return;\n }\n else if (this.redirectLegacyUrls && await this.redirectLegacyUrl(path)) {\n return;\n }\n\n let url = this.fromBrowserPath(path || '/');\n this.$store.dispatch(\"load\", { url, show: true });\n }\n }\n },\n methods: {\n async redirectLegacyUrl(path) {\n if (!path || path === '/') {\n return false;\n }\n // Split all subpaths and remove the leading item or collection prefixes from the old STAC Browser routes\n let parts = path.split('/').filter(part => part.length > 0 && part !== 'item' && part !== 'collection');\n // Make sure all remaining parts are valid base58, otherwise they likely no legacy URLs\n if (parts.length > 0 && parts.every(part => part.match(/^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]+$/))) {\n // Lazy load base58 so that it's only in the loaded when really needed\n const { decode } = await import('bs58');\n // Decode last path element from base58, the others parts are not relevant for us\n let newPath = decode(parts[parts.length - 1]).toString();\n if (newPath) {\n let uri = URI(newPath);\n // Navigate to new URL\n this.$router.replace({\n // Remove trailing collections or items paths from APIs\n path: '/' + uri.path().replace(/(collections|items)\\/?$/, ''),\n query: uri.query(true)\n });\n return true;\n }\n }\n return false;\n }\n }\n};\n","var map = {\n\t\"./de-CH/config\": [\n\t\t79933,\n\t\t3\n\t],\n\t\"./de-CH/config.json\": [\n\t\t79933,\n\t\t3\n\t],\n\t\"./de-CH/datepicker\": [\n\t\t40895,\n\t\t9,\n\t\t895\n\t],\n\t\"./de-CH/datepicker.js\": [\n\t\t40895,\n\t\t9,\n\t\t895\n\t],\n\t\"./de-CH/default\": [\n\t\t968,\n\t\t9,\n\t\t4490,\n\t\t968\n\t],\n\t\"./de-CH/default.js\": [\n\t\t968,\n\t\t9,\n\t\t4490,\n\t\t968\n\t],\n\t\"./de-CH/duration\": [\n\t\t49637,\n\t\t9,\n\t\t9710,\n\t\t9637\n\t],\n\t\"./de-CH/duration.js\": [\n\t\t49637,\n\t\t9,\n\t\t9710,\n\t\t9637\n\t],\n\t\"./de-CH/validation\": [\n\t\t75270,\n\t\t9,\n\t\t5270\n\t],\n\t\"./de-CH/validation.js\": [\n\t\t75270,\n\t\t9,\n\t\t5270\n\t],\n\t\"./de/config\": [\n\t\t28417,\n\t\t3\n\t],\n\t\"./de/config.json\": [\n\t\t28417,\n\t\t3\n\t],\n\t\"./de/custom\": [\n\t\t45692,\n\t\t3,\n\t\t5692\n\t],\n\t\"./de/custom.json\": [\n\t\t45692,\n\t\t3,\n\t\t5692\n\t],\n\t\"./de/datepicker\": [\n\t\t74801,\n\t\t9,\n\t\t4801\n\t],\n\t\"./de/datepicker.js\": [\n\t\t74801,\n\t\t9,\n\t\t4801\n\t],\n\t\"./de/default\": [\n\t\t62862,\n\t\t9,\n\t\t4490,\n\t\t2862\n\t],\n\t\"./de/default.js\": [\n\t\t62862,\n\t\t9,\n\t\t4490,\n\t\t2862\n\t],\n\t\"./de/duration\": [\n\t\t54511,\n\t\t9,\n\t\t9710,\n\t\t4511\n\t],\n\t\"./de/duration.js\": [\n\t\t54511,\n\t\t9,\n\t\t9710,\n\t\t4511\n\t],\n\t\"./de/fields\": [\n\t\t14490,\n\t\t3,\n\t\t4490\n\t],\n\t\"./de/fields.json\": [\n\t\t14490,\n\t\t3,\n\t\t4490\n\t],\n\t\"./de/texts\": [\n\t\t99581,\n\t\t3,\n\t\t9581\n\t],\n\t\"./de/texts.json\": [\n\t\t99581,\n\t\t3,\n\t\t9581\n\t],\n\t\"./de/validation\": [\n\t\t62816,\n\t\t9,\n\t\t2816\n\t],\n\t\"./de/validation.js\": [\n\t\t62816,\n\t\t9,\n\t\t2816\n\t],\n\t\"./en-GB/config\": [\n\t\t23667,\n\t\t3\n\t],\n\t\"./en-GB/config.json\": [\n\t\t23667,\n\t\t3\n\t],\n\t\"./en-GB/custom\": [\n\t\t78798,\n\t\t3,\n\t\t8798\n\t],\n\t\"./en-GB/custom.json\": [\n\t\t78798,\n\t\t3,\n\t\t8798\n\t],\n\t\"./en-GB/datepicker\": [\n\t\t22605,\n\t\t9,\n\t\t2605\n\t],\n\t\"./en-GB/datepicker.js\": [\n\t\t22605,\n\t\t9,\n\t\t2605\n\t],\n\t\"./en-GB/default\": [\n\t\t63170,\n\t\t9,\n\t\t3170\n\t],\n\t\"./en-GB/default.js\": [\n\t\t63170,\n\t\t9,\n\t\t3170\n\t],\n\t\"./en-GB/duration\": [\n\t\t47843,\n\t\t9,\n\t\t9710,\n\t\t7843\n\t],\n\t\"./en-GB/duration.js\": [\n\t\t47843,\n\t\t9,\n\t\t9710,\n\t\t7843\n\t],\n\t\"./en-GB/fields\": [\n\t\t87400,\n\t\t3,\n\t\t7400\n\t],\n\t\"./en-GB/fields.json\": [\n\t\t87400,\n\t\t3,\n\t\t7400\n\t],\n\t\"./en-GB/texts\": [\n\t\t62963,\n\t\t3,\n\t\t2963\n\t],\n\t\"./en-GB/texts.json\": [\n\t\t62963,\n\t\t3,\n\t\t2963\n\t],\n\t\"./en-GB/validation\": [\n\t\t6492,\n\t\t9,\n\t\t6492\n\t],\n\t\"./en-GB/validation.js\": [\n\t\t6492,\n\t\t9,\n\t\t6492\n\t],\n\t\"./en-US/config\": [\n\t\t92444,\n\t\t3\n\t],\n\t\"./en-US/config.json\": [\n\t\t92444,\n\t\t3\n\t],\n\t\"./en-US/datepicker\": [\n\t\t95558,\n\t\t9,\n\t\t5558\n\t],\n\t\"./en-US/datepicker.js\": [\n\t\t95558,\n\t\t9,\n\t\t5558\n\t],\n\t\"./en-US/default\": [\n\t\t15691,\n\t\t9,\n\t\t5691\n\t],\n\t\"./en-US/default.js\": [\n\t\t15691,\n\t\t9,\n\t\t5691\n\t],\n\t\"./en-US/duration\": [\n\t\t49684,\n\t\t9,\n\t\t9710,\n\t\t9684\n\t],\n\t\"./en-US/duration.js\": [\n\t\t49684,\n\t\t9,\n\t\t9710,\n\t\t9684\n\t],\n\t\"./en-US/validation\": [\n\t\t3155,\n\t\t9,\n\t\t3155\n\t],\n\t\"./en-US/validation.js\": [\n\t\t3155,\n\t\t9,\n\t\t3155\n\t],\n\t\"./en/config\": [\n\t\t11401,\n\t\t3\n\t],\n\t\"./en/config.json\": [\n\t\t11401,\n\t\t3\n\t],\n\t\"./en/custom\": [\n\t\t85300,\n\t\t3,\n\t\t5300\n\t],\n\t\"./en/custom.json\": [\n\t\t85300,\n\t\t3,\n\t\t5300\n\t],\n\t\"./en/datepicker\": [\n\t\t71865,\n\t\t9,\n\t\t1865\n\t],\n\t\"./en/datepicker.js\": [\n\t\t71865,\n\t\t9,\n\t\t1865\n\t],\n\t\"./en/default\": [\n\t\t56886,\n\t\t9,\n\t\t6886\n\t],\n\t\"./en/default.js\": [\n\t\t56886,\n\t\t9,\n\t\t6886\n\t],\n\t\"./en/duration\": [\n\t\t86855,\n\t\t9,\n\t\t9710,\n\t\t6855\n\t],\n\t\"./en/duration.js\": [\n\t\t86855,\n\t\t9,\n\t\t9710,\n\t\t6855\n\t],\n\t\"./en/fields\": [\n\t\t87090,\n\t\t3,\n\t\t7090\n\t],\n\t\"./en/fields.json\": [\n\t\t87090,\n\t\t3,\n\t\t7090\n\t],\n\t\"./en/stac-fields\": [\n\t\t98236,\n\t\t9,\n\t\t8236\n\t],\n\t\"./en/stac-fields.js\": [\n\t\t98236,\n\t\t9,\n\t\t8236\n\t],\n\t\"./en/texts\": [\n\t\t33301,\n\t\t3,\n\t\t3301\n\t],\n\t\"./en/texts.json\": [\n\t\t33301,\n\t\t3,\n\t\t3301\n\t],\n\t\"./en/validation\": [\n\t\t98552,\n\t\t9,\n\t\t8552\n\t],\n\t\"./en/validation.js\": [\n\t\t98552,\n\t\t9,\n\t\t8552\n\t],\n\t\"./es/config\": [\n\t\t17212,\n\t\t3\n\t],\n\t\"./es/config.json\": [\n\t\t17212,\n\t\t3\n\t],\n\t\"./es/custom\": [\n\t\t14581,\n\t\t3,\n\t\t4581\n\t],\n\t\"./es/custom.json\": [\n\t\t14581,\n\t\t3,\n\t\t4581\n\t],\n\t\"./es/datepicker\": [\n\t\t54312,\n\t\t9,\n\t\t4312\n\t],\n\t\"./es/datepicker.js\": [\n\t\t54312,\n\t\t9,\n\t\t4312\n\t],\n\t\"./es/default\": [\n\t\t89113,\n\t\t9,\n\t\t9113\n\t],\n\t\"./es/default.js\": [\n\t\t89113,\n\t\t9,\n\t\t9113\n\t],\n\t\"./es/duration\": [\n\t\t46046,\n\t\t9,\n\t\t9710,\n\t\t6046\n\t],\n\t\"./es/duration.js\": [\n\t\t46046,\n\t\t9,\n\t\t9710,\n\t\t6046\n\t],\n\t\"./es/fields\": [\n\t\t11295,\n\t\t3,\n\t\t1295\n\t],\n\t\"./es/fields.json\": [\n\t\t11295,\n\t\t3,\n\t\t1295\n\t],\n\t\"./es/texts\": [\n\t\t90674,\n\t\t3,\n\t\t674\n\t],\n\t\"./es/texts.json\": [\n\t\t90674,\n\t\t3,\n\t\t674\n\t],\n\t\"./es/validation\": [\n\t\t35893,\n\t\t9,\n\t\t5893\n\t],\n\t\"./es/validation.js\": [\n\t\t35893,\n\t\t9,\n\t\t5893\n\t],\n\t\"./fr-CA/config\": [\n\t\t20995,\n\t\t3\n\t],\n\t\"./fr-CA/config.json\": [\n\t\t20995,\n\t\t3\n\t],\n\t\"./fr-CA/datepicker\": [\n\t\t6997,\n\t\t9,\n\t\t6997\n\t],\n\t\"./fr-CA/datepicker.js\": [\n\t\t6997,\n\t\t9,\n\t\t6997\n\t],\n\t\"./fr-CA/default\": [\n\t\t71082,\n\t\t9,\n\t\t5767,\n\t\t1082\n\t],\n\t\"./fr-CA/default.js\": [\n\t\t71082,\n\t\t9,\n\t\t5767,\n\t\t1082\n\t],\n\t\"./fr-CA/duration\": [\n\t\t27003,\n\t\t9,\n\t\t9710,\n\t\t7003\n\t],\n\t\"./fr-CA/duration.js\": [\n\t\t27003,\n\t\t9,\n\t\t9710,\n\t\t7003\n\t],\n\t\"./fr-CA/validation\": [\n\t\t38228,\n\t\t9,\n\t\t8228\n\t],\n\t\"./fr-CA/validation.js\": [\n\t\t38228,\n\t\t9,\n\t\t8228\n\t],\n\t\"./fr-CH/config\": [\n\t\t1738,\n\t\t3\n\t],\n\t\"./fr-CH/config.json\": [\n\t\t1738,\n\t\t3\n\t],\n\t\"./fr-CH/datepicker\": [\n\t\t81456,\n\t\t9,\n\t\t1456\n\t],\n\t\"./fr-CH/datepicker.js\": [\n\t\t81456,\n\t\t9,\n\t\t1456\n\t],\n\t\"./fr-CH/default\": [\n\t\t44545,\n\t\t9,\n\t\t5767,\n\t\t4545\n\t],\n\t\"./fr-CH/default.js\": [\n\t\t44545,\n\t\t9,\n\t\t5767,\n\t\t4545\n\t],\n\t\"./fr-CH/duration\": [\n\t\t67286,\n\t\t9,\n\t\t9710,\n\t\t7286\n\t],\n\t\"./fr-CH/duration.js\": [\n\t\t67286,\n\t\t9,\n\t\t9710,\n\t\t7286\n\t],\n\t\"./fr-CH/validation\": [\n\t\t82605,\n\t\t9,\n\t\t4986\n\t],\n\t\"./fr-CH/validation.js\": [\n\t\t82605,\n\t\t9,\n\t\t4986\n\t],\n\t\"./fr/config\": [\n\t\t37748,\n\t\t3\n\t],\n\t\"./fr/config.json\": [\n\t\t37748,\n\t\t3\n\t],\n\t\"./fr/custom\": [\n\t\t75197,\n\t\t3,\n\t\t5197\n\t],\n\t\"./fr/custom.json\": [\n\t\t75197,\n\t\t3,\n\t\t5197\n\t],\n\t\"./fr/datepicker\": [\n\t\t37036,\n\t\t9,\n\t\t7036\n\t],\n\t\"./fr/datepicker.js\": [\n\t\t37036,\n\t\t9,\n\t\t7036\n\t],\n\t\"./fr/default\": [\n\t\t1589,\n\t\t9,\n\t\t5767,\n\t\t1589\n\t],\n\t\"./fr/default.js\": [\n\t\t1589,\n\t\t9,\n\t\t5767,\n\t\t1589\n\t],\n\t\"./fr/duration\": [\n\t\t93658,\n\t\t9,\n\t\t9710,\n\t\t3658\n\t],\n\t\"./fr/duration.js\": [\n\t\t93658,\n\t\t9,\n\t\t9710,\n\t\t3658\n\t],\n\t\"./fr/fields\": [\n\t\t48148,\n\t\t3,\n\t\t5767\n\t],\n\t\"./fr/fields.json\": [\n\t\t48148,\n\t\t3,\n\t\t5767\n\t],\n\t\"./fr/texts\": [\n\t\t23418,\n\t\t3,\n\t\t3418\n\t],\n\t\"./fr/texts.json\": [\n\t\t23418,\n\t\t3,\n\t\t3418\n\t],\n\t\"./fr/validation\": [\n\t\t33129,\n\t\t9,\n\t\t3129\n\t],\n\t\"./fr/validation.js\": [\n\t\t33129,\n\t\t9,\n\t\t3129\n\t],\n\t\"./it-CH/config\": [\n\t\t16835,\n\t\t3\n\t],\n\t\"./it-CH/config.json\": [\n\t\t16835,\n\t\t3\n\t],\n\t\"./it-CH/datepicker\": [\n\t\t75862,\n\t\t9,\n\t\t3481\n\t],\n\t\"./it-CH/datepicker.js\": [\n\t\t75862,\n\t\t9,\n\t\t3481\n\t],\n\t\"./it-CH/default\": [\n\t\t77638,\n\t\t9,\n\t\t9476,\n\t\t7638\n\t],\n\t\"./it-CH/default.js\": [\n\t\t77638,\n\t\t9,\n\t\t9476,\n\t\t7638\n\t],\n\t\"./it-CH/duration\": [\n\t\t44567,\n\t\t9,\n\t\t9710,\n\t\t4567\n\t],\n\t\"./it-CH/duration.js\": [\n\t\t44567,\n\t\t9,\n\t\t9710,\n\t\t4567\n\t],\n\t\"./it-CH/validation\": [\n\t\t63048,\n\t\t9,\n\t\t3048\n\t],\n\t\"./it-CH/validation.js\": [\n\t\t63048,\n\t\t9,\n\t\t3048\n\t],\n\t\"./it/config\": [\n\t\t37295,\n\t\t3\n\t],\n\t\"./it/config.json\": [\n\t\t37295,\n\t\t3\n\t],\n\t\"./it/custom\": [\n\t\t5290,\n\t\t3,\n\t\t5290\n\t],\n\t\"./it/custom.json\": [\n\t\t5290,\n\t\t3,\n\t\t5290\n\t],\n\t\"./it/datepicker\": [\n\t\t36147,\n\t\t9,\n\t\t6147\n\t],\n\t\"./it/datepicker.js\": [\n\t\t36147,\n\t\t9,\n\t\t6147\n\t],\n\t\"./it/default\": [\n\t\t23108,\n\t\t9,\n\t\t9476,\n\t\t3108\n\t],\n\t\"./it/default.js\": [\n\t\t23108,\n\t\t9,\n\t\t9476,\n\t\t3108\n\t],\n\t\"./it/duration\": [\n\t\t67905,\n\t\t9,\n\t\t9710,\n\t\t7905\n\t],\n\t\"./it/duration.js\": [\n\t\t67905,\n\t\t9,\n\t\t9710,\n\t\t7905\n\t],\n\t\"./it/fields\": [\n\t\t39476,\n\t\t3,\n\t\t9476\n\t],\n\t\"./it/fields.json\": [\n\t\t39476,\n\t\t3,\n\t\t9476\n\t],\n\t\"./it/texts\": [\n\t\t27519,\n\t\t3,\n\t\t7519\n\t],\n\t\"./it/texts.json\": [\n\t\t27519,\n\t\t3,\n\t\t7519\n\t],\n\t\"./it/validation\": [\n\t\t66346,\n\t\t9,\n\t\t6346\n\t],\n\t\"./it/validation.js\": [\n\t\t66346,\n\t\t9,\n\t\t6346\n\t],\n\t\"./ja/config\": [\n\t\t15203,\n\t\t3\n\t],\n\t\"./ja/config.json\": [\n\t\t15203,\n\t\t3\n\t],\n\t\"./ja/custom\": [\n\t\t79870,\n\t\t3,\n\t\t9870\n\t],\n\t\"./ja/custom.json\": [\n\t\t79870,\n\t\t3,\n\t\t9870\n\t],\n\t\"./ja/datepicker\": [\n\t\t70675,\n\t\t9,\n\t\t675\n\t],\n\t\"./ja/datepicker.js\": [\n\t\t70675,\n\t\t9,\n\t\t675\n\t],\n\t\"./ja/default\": [\n\t\t4964,\n\t\t9,\n\t\t4964\n\t],\n\t\"./ja/default.js\": [\n\t\t4964,\n\t\t9,\n\t\t4964\n\t],\n\t\"./ja/duration\": [\n\t\t87905,\n\t\t9,\n\t\t9710,\n\t\t2667\n\t],\n\t\"./ja/duration.js\": [\n\t\t87905,\n\t\t9,\n\t\t9710,\n\t\t2667\n\t],\n\t\"./ja/fields\": [\n\t\t68376,\n\t\t3,\n\t\t8376\n\t],\n\t\"./ja/fields.json\": [\n\t\t68376,\n\t\t3,\n\t\t8376\n\t],\n\t\"./ja/texts\": [\n\t\t30883,\n\t\t3,\n\t\t883\n\t],\n\t\"./ja/texts.json\": [\n\t\t30883,\n\t\t3,\n\t\t883\n\t],\n\t\"./ja/validation\": [\n\t\t14826,\n\t\t9,\n\t\t4826\n\t],\n\t\"./ja/validation.js\": [\n\t\t14826,\n\t\t9,\n\t\t4826\n\t],\n\t\"./pt-BR/config\": [\n\t\t87503,\n\t\t3\n\t],\n\t\"./pt-BR/config.json\": [\n\t\t87503,\n\t\t3\n\t],\n\t\"./pt-BR/custom\": [\n\t\t54794,\n\t\t3,\n\t\t4794\n\t],\n\t\"./pt-BR/custom.json\": [\n\t\t54794,\n\t\t3,\n\t\t4794\n\t],\n\t\"./pt-BR/datepicker\": [\n\t\t20105,\n\t\t9,\n\t\t105\n\t],\n\t\"./pt-BR/datepicker.js\": [\n\t\t20105,\n\t\t9,\n\t\t105\n\t],\n\t\"./pt-BR/default\": [\n\t\t92294,\n\t\t9,\n\t\t2294\n\t],\n\t\"./pt-BR/default.js\": [\n\t\t92294,\n\t\t9,\n\t\t2294\n\t],\n\t\"./pt-BR/duration\": [\n\t\t44631,\n\t\t9,\n\t\t9710,\n\t\t4631\n\t],\n\t\"./pt-BR/duration.js\": [\n\t\t44631,\n\t\t9,\n\t\t9710,\n\t\t4631\n\t],\n\t\"./pt-BR/fields\": [\n\t\t1524,\n\t\t3,\n\t\t1524\n\t],\n\t\"./pt-BR/fields.json\": [\n\t\t1524,\n\t\t3,\n\t\t1524\n\t],\n\t\"./pt-BR/texts\": [\n\t\t69311,\n\t\t3,\n\t\t9311\n\t],\n\t\"./pt-BR/texts.json\": [\n\t\t69311,\n\t\t3,\n\t\t9311\n\t],\n\t\"./pt-BR/validation\": [\n\t\t70536,\n\t\t9,\n\t\t536\n\t],\n\t\"./pt-BR/validation.js\": [\n\t\t70536,\n\t\t9,\n\t\t536\n\t],\n\t\"./pt/config\": [\n\t\t22356,\n\t\t3\n\t],\n\t\"./pt/config.json\": [\n\t\t22356,\n\t\t3\n\t],\n\t\"./pt/custom\": [\n\t\t2653,\n\t\t3,\n\t\t2653\n\t],\n\t\"./pt/custom.json\": [\n\t\t2653,\n\t\t3,\n\t\t2653\n\t],\n\t\"./pt/datepicker\": [\n\t\t59856,\n\t\t9,\n\t\t9856\n\t],\n\t\"./pt/datepicker.js\": [\n\t\t59856,\n\t\t9,\n\t\t9856\n\t],\n\t\"./pt/default\": [\n\t\t56513,\n\t\t9,\n\t\t6513\n\t],\n\t\"./pt/default.js\": [\n\t\t56513,\n\t\t9,\n\t\t6513\n\t],\n\t\"./pt/duration\": [\n\t\t32438,\n\t\t9,\n\t\t9710,\n\t\t2438\n\t],\n\t\"./pt/duration.js\": [\n\t\t32438,\n\t\t9,\n\t\t9710,\n\t\t2438\n\t],\n\t\"./pt/fields\": [\n\t\t44455,\n\t\t3,\n\t\t4455\n\t],\n\t\"./pt/fields.json\": [\n\t\t44455,\n\t\t3,\n\t\t4455\n\t],\n\t\"./pt/texts\": [\n\t\t29946,\n\t\t3,\n\t\t9946\n\t],\n\t\"./pt/texts.json\": [\n\t\t29946,\n\t\t3,\n\t\t9946\n\t],\n\t\"./pt/validation\": [\n\t\t12685,\n\t\t9,\n\t\t2685\n\t],\n\t\"./pt/validation.js\": [\n\t\t12685,\n\t\t9,\n\t\t2685\n\t],\n\t\"./ro/config\": [\n\t\t99069,\n\t\t3\n\t],\n\t\"./ro/config.json\": [\n\t\t99069,\n\t\t3\n\t],\n\t\"./ro/custom\": [\n\t\t5160,\n\t\t3,\n\t\t5160\n\t],\n\t\"./ro/custom.json\": [\n\t\t5160,\n\t\t3,\n\t\t5160\n\t],\n\t\"./ro/datepicker\": [\n\t\t2929,\n\t\t9,\n\t\t2929\n\t],\n\t\"./ro/datepicker.js\": [\n\t\t2929,\n\t\t9,\n\t\t2929\n\t],\n\t\"./ro/default\": [\n\t\t63022,\n\t\t9,\n\t\t3022\n\t],\n\t\"./ro/default.js\": [\n\t\t63022,\n\t\t9,\n\t\t3022\n\t],\n\t\"./ro/duration\": [\n\t\t65583,\n\t\t9,\n\t\t9710,\n\t\t5583\n\t],\n\t\"./ro/duration.js\": [\n\t\t65583,\n\t\t9,\n\t\t9710,\n\t\t5583\n\t],\n\t\"./ro/fields\": [\n\t\t14758,\n\t\t3,\n\t\t4758\n\t],\n\t\"./ro/fields.json\": [\n\t\t14758,\n\t\t3,\n\t\t4758\n\t],\n\t\"./ro/texts\": [\n\t\t55577,\n\t\t3,\n\t\t5577\n\t],\n\t\"./ro/texts.json\": [\n\t\t55577,\n\t\t3,\n\t\t5577\n\t],\n\t\"./ro/validation\": [\n\t\t90944,\n\t\t9,\n\t\t944\n\t],\n\t\"./ro/validation.js\": [\n\t\t90944,\n\t\t9,\n\t\t944\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 93731;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de-CH/default.js\": [\n\t\t968,\n\t\t4490,\n\t\t968\n\t],\n\t\"./de/default.js\": [\n\t\t62862,\n\t\t4490,\n\t\t2862\n\t],\n\t\"./en-GB/default.js\": [\n\t\t63170,\n\t\t3170\n\t],\n\t\"./en-US/default.js\": [\n\t\t15691,\n\t\t5691\n\t],\n\t\"./en/default.js\": [\n\t\t56886,\n\t\t6886\n\t],\n\t\"./es/default.js\": [\n\t\t89113,\n\t\t9113\n\t],\n\t\"./fr-CA/default.js\": [\n\t\t71082,\n\t\t5767,\n\t\t1082\n\t],\n\t\"./fr-CH/default.js\": [\n\t\t44545,\n\t\t5767,\n\t\t4545\n\t],\n\t\"./fr/default.js\": [\n\t\t1589,\n\t\t5767,\n\t\t1589\n\t],\n\t\"./it-CH/default.js\": [\n\t\t77638,\n\t\t9476,\n\t\t7638\n\t],\n\t\"./it/default.js\": [\n\t\t23108,\n\t\t9476,\n\t\t3108\n\t],\n\t\"./ja/default.js\": [\n\t\t4964,\n\t\t4964\n\t],\n\t\"./pt-BR/default.js\": [\n\t\t92294,\n\t\t2294\n\t],\n\t\"./pt/default.js\": [\n\t\t56513,\n\t\t6513\n\t],\n\t\"./ro/default.js\": [\n\t\t63022,\n\t\t3022\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 33545;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de-CH/config.json\": 79933,\n\t\"./de/config.json\": 28417,\n\t\"./en-GB/config.json\": 23667,\n\t\"./en-US/config.json\": 92444,\n\t\"./en/config.json\": 11401,\n\t\"./es/config.json\": 17212,\n\t\"./fr-CA/config.json\": 20995,\n\t\"./fr-CH/config.json\": 1738,\n\t\"./fr/config.json\": 37748,\n\t\"./it-CH/config.json\": 16835,\n\t\"./it/config.json\": 37295,\n\t\"./ja/config.json\": 15203,\n\t\"./pt-BR/config.json\": 87503,\n\t\"./pt/config.json\": 22356,\n\t\"./ro/config.json\": 99069\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 97991;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = function(queue) {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach(function(fn) { fn.r--; });\n\t\tqueue.forEach(function(fn) { fn.r-- ? fn.r++ : fn(); });\n\t}\n}\nvar wrapDeps = function(deps) { return deps.map(function(dep) {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then(function(r) {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, function(e) {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = function(fn) { fn(queue); };\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = function() {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}); };\n__webpack_require__.a = function(module, body, hasAwait) {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise(function(resolve, rej) {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = function(fn) { queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](function() {}); };\n\tmodule.exports = promise;\n\tbody(function(deps) {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = function() { return currentDeps.map(function(d) {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}); }\n\t\tvar promise = new Promise(function(resolve) {\n\t\t\tfn = function() { resolve(getResult); };\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = function(q) { q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))); };\n\t\t\tcurrentDeps.map(function(dep) { dep[webpackQueues](fnQueue); });\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, function(err) { (err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue); });\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"57\":\"41f5038f\",\"105\":\"11f3ef3f\",\"143\":\"8a3d2c9a\",\"224\":\"4fba229c\",\"259\":\"c47d895a\",\"286\":\"63cf0a30\",\"287\":\"fa584da8\",\"401\":\"2c4f1f50\",\"536\":\"394026a4\",\"537\":\"16fe35b9\",\"572\":\"2c70a609\",\"635\":\"8dfb32bc\",\"674\":\"cd3424a3\",\"675\":\"6343e128\",\"771\":\"c1d908d6\",\"883\":\"022b6cfd\",\"895\":\"61df85f7\",\"944\":\"93c5eccd\",\"967\":\"2187a41c\",\"968\":\"63b0be5d\",\"1082\":\"9524bfb4\",\"1277\":\"30f7efae\",\"1295\":\"75b0120e\",\"1456\":\"c7df2c55\",\"1524\":\"ed9cc7de\",\"1589\":\"5695c617\",\"1802\":\"1b2a76e1\",\"1865\":\"236dede4\",\"1935\":\"7e3ae466\",\"2018\":\"d8337473\",\"2294\":\"8e59dd49\",\"2438\":\"9d08758b\",\"2568\":\"229e5dd0\",\"2605\":\"61657992\",\"2653\":\"ead5227f\",\"2667\":\"e2075e28\",\"2685\":\"ae149e1e\",\"2816\":\"fadc65e3\",\"2862\":\"9f715c09\",\"2929\":\"8f5863d5\",\"2963\":\"588da4a4\",\"2986\":\"b845ef0e\",\"3022\":\"bfbf5e76\",\"3048\":\"037427d0\",\"3108\":\"342c1bac\",\"3129\":\"5ea9e162\",\"3147\":\"234d0b46\",\"3155\":\"9a5e35a5\",\"3170\":\"24cdcd45\",\"3301\":\"9629eab8\",\"3418\":\"791d39ac\",\"3481\":\"b68e7796\",\"3545\":\"9312a5b8\",\"3621\":\"c03d14b0\",\"3627\":\"c74dd113\",\"3658\":\"005b6342\",\"3665\":\"60e41131\",\"4052\":\"4207ba02\",\"4312\":\"1dfee9ef\",\"4455\":\"7ec12bc9\",\"4490\":\"2d1bfd9d\",\"4511\":\"ffe2e0e6\",\"4527\":\"0577cbe4\",\"4545\":\"0e0c6c60\",\"4567\":\"9c165ed1\",\"4581\":\"09d75b82\",\"4631\":\"185ad2fe\",\"4648\":\"27991b24\",\"4748\":\"4d28f3f9\",\"4758\":\"7bd6ca2d\",\"4794\":\"cbe91ede\",\"4801\":\"3798c5b3\",\"4826\":\"9ec0fb3b\",\"4870\":\"dd62072e\",\"4905\":\"fa8f82fd\",\"4964\":\"c30511c6\",\"4986\":\"fb82306e\",\"5048\":\"4de90b52\",\"5160\":\"5049d33b\",\"5197\":\"1c0284fb\",\"5262\":\"894c88c3\",\"5270\":\"a61c79e3\",\"5290\":\"4e66b59f\",\"5300\":\"5a758b2d\",\"5500\":\"68abc7ee\",\"5528\":\"f4b345f1\",\"5558\":\"92284de2\",\"5577\":\"88da2b76\",\"5583\":\"4ad93d3c\",\"5691\":\"b4332e7d\",\"5692\":\"53888e89\",\"5767\":\"dcd3e8f6\",\"5833\":\"4f6613e9\",\"5876\":\"53412eac\",\"5893\":\"1f30f06a\",\"6046\":\"7234cf3f\",\"6147\":\"c1651835\",\"6171\":\"36d9697a\",\"6247\":\"0d27f607\",\"6340\":\"5204c7f2\",\"6346\":\"ac9f2233\",\"6492\":\"2b9980a8\",\"6513\":\"40146f96\",\"6750\":\"4dcdb154\",\"6763\":\"d5e36df2\",\"6780\":\"204a1480\",\"6855\":\"e1724cd1\",\"6866\":\"9fb21d11\",\"6886\":\"ca913e92\",\"6892\":\"00f44640\",\"6935\":\"1e8283d8\",\"6948\":\"f672b487\",\"6997\":\"9ad3d2eb\",\"7003\":\"b064e28e\",\"7012\":\"1f22b1ae\",\"7036\":\"be852fcd\",\"7090\":\"15e869ce\",\"7130\":\"7b24d234\",\"7197\":\"925f5a53\",\"7286\":\"cbd78cd1\",\"7303\":\"add8a1d9\",\"7312\":\"ebf1e1ac\",\"7341\":\"5a9a881d\",\"7400\":\"bb1bffcb\",\"7457\":\"05737046\",\"7519\":\"43de9d9a\",\"7616\":\"1a9527fa\",\"7638\":\"147e123d\",\"7659\":\"003bcc2a\",\"7674\":\"71f8f69d\",\"7820\":\"76e052c6\",\"7843\":\"fe60856c\",\"7905\":\"28030aa8\",\"7957\":\"e0eb325d\",\"7964\":\"666a9c76\",\"8228\":\"7777ffe3\",\"8236\":\"973dee5b\",\"8376\":\"ec3800d9\",\"8499\":\"23d303cb\",\"8552\":\"8d732287\",\"8648\":\"3df871aa\",\"8704\":\"40f77f92\",\"8775\":\"c4d351a5\",\"8798\":\"ae050e23\",\"9099\":\"f0bed4dd\",\"9113\":\"8c127b65\",\"9236\":\"e05a32a6\",\"9311\":\"d9f0acbc\",\"9384\":\"dbed806a\",\"9476\":\"5a051b83\",\"9581\":\"dcdb60a1\",\"9637\":\"96af2b91\",\"9684\":\"722fad2b\",\"9710\":\"6bb10454\",\"9738\":\"17d17a36\",\"9856\":\"51f2956c\",\"9870\":\"1e0dbc7f\",\"9891\":\"f756d7a2\",\"9946\":\"5e885642\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"143\":\"ac728857\",\"401\":\"4149415b\",\"635\":\"f849b3f1\",\"967\":\"72c8c98f\",\"1802\":\"32ec082e\",\"2568\":\"6fac7cd8\",\"3147\":\"45781634\",\"3175\":\"4794afa8\",\"3545\":\"2412eeb4\",\"4052\":\"63e96376\",\"4748\":\"fc757a13\",\"5528\":\"45781634\",\"6171\":\"7090fc57\",\"6780\":\"0780c10b\",\"6866\":\"081b4583\",\"7130\":\"c4ced7cf\",\"7312\":\"81053aa2\",\"7341\":\"c9b64985\",\"7674\":\"1c24940f\",\"7957\":\"e76d18ce\",\"8648\":\"4b50bc38\",\"8775\":\"bbca74ef\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"@radiantearth/stac-browser:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/stac-browser/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"143\":1,\"401\":1,\"635\":1,\"967\":1,\"1802\":1,\"2568\":1,\"3147\":1,\"3175\":1,\"3545\":1,\"4052\":1,\"4748\":1,\"5528\":1,\"6171\":1,\"6780\":1,\"6866\":1,\"7130\":1,\"7312\":1,\"7341\":1,\"7674\":1,\"7957\":1,\"8648\":1,\"8775\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(3175 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_radiantearth_stac_browser\"] = self[\"webpackChunk_radiantearth_stac_browser\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(4786); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","directives","name","rawName","value","load","expression","modifiers","class","classes","attrs","isList","hasImage","_b","staticClass","thumbnail","_e","data","catalog","fileFormats","length","description","deprecated","_v","_s","$t","_l","format","key","_f","showKeywordsInCatalogCards","keywords","temporalExtent","domProps","_t","staticRenderFns","components","StacLink","Keywords","filters","summarize","text","Utils","summarizeMd","formatMediaType","shorten","mixins","ThumbnailCardMixin","StacFieldsMixin","formatTemporalExtent","props","type","Object","required","computed","mapState","mapGetters","push","getStac","_this$data","_this$data$extent","_this$data$extent$tem","isCollection","extent","temporal","interval","Array","isArray","getFileFormats","getMetadata","methods","visible","STAC","$store","commit","href","component","title","catalogCount","model","view","callback","$$v","isComplete","catalogs","sort","filterPlaceholder","searchTerm","allKeywords","limitText","selectedKeywords","showPagination","ref","pagination","on","paginate","hasSearchCritera","catalogView","loading","cardsComponent","tag","cardsComponentProps","scopedSlots","_u","fn","hasMore","loadMore","$event","toggle","id","BIconBricks","BIconListTask","String","default","selectedValue","$emit","ViewButtons","columns","get","state","cardViewMode","set","dispatch","Catalog","Loading","Pagination","SearchBox","SortButtons","Multiselect","ViewMixin","collectionsOnly","Boolean","count","Number","$tc","values","some","link","allCatalogs","map","stac","filter","hasKeywords","every","keyword","includes","haystack","concat","search","collator","Intl","Collator","uiLanguage","slice","a","b","compare","getDisplayTitle","reverse","created","cardViewSort","placement","$refs","topPagination","scrollTo","$el","copyColor","preventDefault","stopPropagation","copy","apply","arguments","buttonProps","copyIcon","BIconClipboard","BIconClipboardCheck","BIconClipboardX","copyText","variant","status","startsWith","focus","document","activeElement","Clipboard","error","console","setTimeout","compact","inline","markup","allowHTML","reader","commonmark","writer","safe","smart","parsed","parse","dismissible","message","url","Error","queued","isDeprecated","hasDescription","item","properties","showKeywordsInItemCards","datetime","Registry","require","formatTimestamp","start_datetime","end_datetime","hasText","items","itemCount","api","allowFilter","hasFilters","filtersOpen","filterCount","apiFilters","emitFilter","chunkedItems","showMore","BCollapse","BIconSearch","Item","SearchFilter","showFilters","chunkSize","shownItems","size","sortby","watch","mounted","reset","small","fill","stretch","top","first","prev","next","last","tooltip","attributes","icon","displayTitle","fallbackTitle","Function","button","icons","getIcons","find","o","isLink","isStacBrowserLink","isStacMediaType","allowExternalAccess","isExternalUrl","stacBrowserNavigatesTo","rel","obj","to","isObject","assign","target","getBrowserPath","toBrowserPath","privateQueryParameters","uri","URI","addParameters","prefix","queryKey","hasQuery","addQuery","toString","getRequestUrl","fallback","module","exports","catalogUrl","catalogTitle","allowedDomains","detectLocaleFromBrowser","storeLocale","locale","fallbackLocale","supportedLocales","apiCatalogPriority","useTileLayerAsFallback","displayGeoTiffByDefault","buildTileUrlTemplate","asset","encodeURIComponent","stacProxyUrl","pathPrefix","historyMode","showThumbnailsAsAssets","geoTiffResolution","redirectLegacyUrls","itemsPerPage","defaultThumbnailSize","maxPreviewsOnMap","crossOriginMedia","requestHeaders","requestQueryParameters","socialSharing","preprocessSTAC","authConfig","Auth","constructor","options","changeListener","router","getButtonTitle","getLoginLabel","i18n","t","getLogoutLabel","getComponent","getComponentProps","init","login","confirmLogin","credentials","logout","confirmLogout","close","updateStore","_updateStore","defaultName","defaultIn","defaultFormatter","formatter","in_","in","undefined","query","cookie","header","create","config","method","scheme","BasicAuth","ApIKey","OIDC","equals","JSON","stringify","BrowserStorage","enabled","engine","setItem","getItem","removeItem","session","window","sessionStorage","navigator","cookieEnabled","Cookies","NoOp","localStorage","JSON_INDICATOR","remove","clear","_defineProperty","getExpiry","minutes","date","Date","setTime","getTime","epires","toGMTString","expires","parts","split","c","trim","substring","decodeURIComponent","warn","CQL_TEXT","CQL_JSON","CQL_ADV_COMPARISON","TYPES","Items","BasicFilters","CollectionIdFilter","ItemIdFilter","CqlFilters","Sort","FreeText","Global","Collections","conformances","canSort","supportsConformance","canFilterExtents","canFilterFreeText","cql","textMode","jsonMode","advancedComparison","functions","mixin","showThumbnail","isItem","thumbnails","getThumbnails","width","height","src","alt","crossorigin","right","blankColor","AuthUtils","resolveAuth","context","isSupported","schema","convertLegacyAuthConfig","CONFIG_PATH","CONFIG_CLI","STAC_BROWSER_CONFIG","Vue","use","VueI18n","API_LANGUAGE_CONFORMANCE","LOCALE_CONFIG","loadLocaleConfig","CONFIG","messages","languages","postTranslation","path","loadDefaultMessages","Promise","all","loadMessages","async","mergeLocaleMessage","executeCustomFunctions","customizeFiles","customize","p","file","translateFields","vars","te","Fields","stringLocale","keywordPos","indexOf","substr","localeWithoutKeyword","replace","language","shift","retVar","toLowerCase","pop","toUpperCase","country","script","prepareSupported","supported","lgs","forEach","supportedLocale","countries","firstCountry","main","lg","getBest","defaultLocale","getAnyCountry","showLogin","globalError","hideError","sidebar","displayCatalogTitle","browserVersion","proxy","isExternal","errorDescription","errorId","tab","selectedAsset","dataChanged","hasAssets","assets","shownAssets","showAsset","additionalLinks","collectionLink","providers","ignoredMetadataFields","shownAssetsOnMap","shownBandsOnMap","selectedAssetKey","keys","thumbnailRefs","isThumbnail","tabs","bands","meta","toBrowserUrl","store","getters","location","origin","fragment","removeTrailingSlash","addSpatialCoverage","bbox","spatialCoverage","geo","box","join","formatTemporalCoverage","dates","dt","makeAssets","contentUrl","toAbsolute","getAbsoluteUrl","encodingFormat","makeLinks","links","isBasedOn","fallbackDescription","makeProvider","role","roles","email","mail","stacType","container","collection","tc","inX","createBaseSchema","_data$getMetadata","thumbnailUrl","stacUrl","inLanguage","code","license","_data$getLinkWithRel","getLinkWithRel","copyrightHolder","producer","provider","creator","citation","identifier","dateCreated","dateModified","datePublished","version","image","createCatalogSchema","parents","i","findIndex","_data$extent","_data$extent$temporal","_data$extent2","_data$extent2$spatial","temporalCoverage","spatial","associatedMedia","hasPart","dataset","isPartOf","createItemSchema","includedInDataCatalog","start","end","distribution","addSchemaToDocument","doc","element","getElementById","createElement","head","appendChild","innerText","AnonymizedNotice","Assets","BTabs","BTab","CollectionLink","Description","DeprecationNotice","Links","Map","Metadata","Providers","ReadMore","Thumbnails","ShowAssetMixin","immediate","handler","parentLink","cc","cssStacType","mixed","hasCatalogs","hasItems","empty","licenses","temporalExtents","linkPosition","hasThumbnails","mapData","hasItemAssets","item_assets","nextCollectionsLink","loadMoreCollections","isApi","itemPages","apiItemsLoading","paginateItems","filterItems","filtersShown","Catalogs","formatLicense","formatTemporalExtents","_this$data2","stateQueryParameters","getApiItemsLoading","summaries","extents","_this$data3","pages","apiItemsPagination","apiItemsLink","addFiltersToLink","getApiItemsLink","features","rootLink","show","$root","msg","BrowseMixin","getPath","route","params","pathMatch","getRoutes","routes","loadParent","Browse","handleAuthError","cx","root","getStore","namespaced","actions","inProgress","canAuthenticate","rootState","isLoggedIn","mutations","setCredentials","setMethod","addAction","resetActions","setInProgress","waitForAuth","updateMethod","storage","newAuth","requestLogin","finalizeLogin","abortLogin","requestLogout","finalizeLogout","updateCredentials","intent","executeActions","catch","localDefaults","localRequestQueryParameters","itemdef","apiItems","catalogDefaults","queue","authActions","conformsTo","dataLanguage","dataLanguages","apiCollections","Vuex","strict","process","modules","auth","database","allowSelectCatalog","globalRequestQueryParameters","source","returnErrorObject","absoluteUrl","_state$data","isCatalog","_state$data2","isCatalogLike","_state$data3","_state$data4","_","_state$data5","getStacLinkWithRel","createLink","getLinksWithRels","segment","_state$data6","classRegexp","replaceAll","regexp","RegExp","match","supportsExtension","schemaUri","canSearch","canSearchCollections","canSearchItems","getStacLinksWithRel","hasCollections","getApiCollectionsLink","hasChilds","showCollections","showChilds","addMissingChildren","_state$data7","getLinksWithOtherRels","stacBrowserSpecialHandling","canBrowserDisplayImage","relative","absolute","unproxyUrl","relativeTo","protocol","authority","q","fromBrowserPath","externalRE","endsWith","whitelist","domain","is","relativeStr","baseUrl","addLocalQueryParams","proxyUrl","addQueryIfNotExists","acceptedLanguages","entries","l","setQueryParameter","delete","setRequestHeader","requestAuth","doAuth","setAuthData","authData","newState","updateState","openCollapsible","uid","idx","closeCollapsible","updateLoading","loaded","processSTAC","resetCatalog","clearAll","resetPage","setPageMetadata","showPage","unshift","lang","errored","unqueue","splice","removeFromQueue","num","setConformanceClasses","setApiItemsLink","toggleApiItemsLoading","collectionId","setApiItems","feature","getPaginationLinks","setApiData","addApiCollections","collections","nextLink","resetApiItems","showGlobalError","trace","oldConfig","switchLocale","userSelected","dataLanguageCodes","dataLanguageFallback","I18N","loadBackground","urls","promises","loadParents","parentStac","tryLogin","action","BrowserError","args","force","noRetry","hasData","isPotentiallyIncomplete","response","stacRequest","localeLink","getLocaleLink","conformanceLink","isAuthenticationError","loadApiItems","selfLink","_cx$getters$root","apiCollectionsLink","markPotentiallyIncomplete","loadNextApiCollections","loadOgcApiConformance","loadGeoJson","retryAfterAuth","errorFn","isStacChooser","containerLink","back","selfBrowserLink","parentLinkTitle","collectionLinkTitle","searchBrowserLink","isSearchPage","authTitle","logInOut","authIcon","authLabel","showRoot","rootTitle","currentLanguage","native","global","supportsLanguageExt","ui","stacId","stacVersion","browserUrl","enableSocialSharing","sharingMessage","label","open","BFormGroup","BFormInput","BIconArrowUpRightSquare","BInputGroup","BInputGroupAppend","CopyButton","service","urlTemplates","bsky","mastodon","x","uriText","uriTitle","uriUrl","LANGUAGE_EXT","BDropdown","BDropdownItem","BIconBlank","BIconBox","BIconCheck","BIconExclamationTriangle","BIconFlag","BIconLink","BIconShare","BPopover","RootStats","Url","SocialSharing","Validation","_this$stac","stac_version","_this$stac2","newLang","alternate","uiSupported","dataSupported","mapActions","BIconArrow90degUp","BIconArrowLeft","BIconBook","BIconFolderSymlink","BIconLock","BIconUnlock","Source","authMethod","$route","searchLink","getSearchLink","equalUrl","mapMutations","$router","currentRoute","authComponent","submit","ApiKey","Basic","authComponentProps","beforeCreate","AlertPlugin","ButtonGroupPlugin","ButtonPlugin","BadgePlugin","CardPlugin","LayoutPlugin","SpinnerPlugin","directive","VBToggle","VBVisible","VueRouter","mode","base","scrollBehavior","y","Props","Watchers","newValue","Authentication","ErrorAlert","Sidebar","StacHeader","onDataLoaded","detectLocaleFromBrowserFromVueX","supportedLocalesFromVueX","storeLocaleFromVueX","STAC_BROWSER_VERSION","setAttribute","summary","$i18n","documentElement","deep","duplicated","oldRoot","canChange","doReset","doSet","onReady","detectLocale","parseQuery","afterEach","from","resetOp","$on","showError","setInterval","best","_params$state","privateFromHash","hash","private","realKey","localRequest","then","h","StacBrowser","$mount","productionTip","stacObjCounter","migrate","_id","_url","_path","_apiChildrenListeners","_incomplete","_apiChildren","list","Migrate","isItemCollection","hasApiData","setApiDataListener","listener","v","getChildren","priority","children","isMediaType","geojsonMediaType","post","field","available","hreflang","allowEmpty","rels","getAssetsWithRoles","matches","sources","getTitle","titleForHref","_linkToAbsolute","img","browserOnly","prefer","other","stacHierarchy","stacPagination","ogcQueryables","ogcRelPrefix","stacRequestOptions","headers","Accept","body","axiosOptions","axios","freeze","_error$response","commonFileNames","schemaMediaType","stacMediaTypes","browserImageTypes","cogMediaTypes","geotiffMediaTypes","browserProtocols","imageMediaTypes","mapMediaTypes","super","types","string","shortenTitle","fullStr","strLen","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","isGdalVfsUri","normalizeUri","noParams","absoluteTo","normalize","str","uri1","uri2","maxLength","removeMd","el","rect","getBoundingClientRect","isVisible","innerHeight","bottom","scrollIntoView","behavior","block","dateFromUTC","getTimezoneOffset","dateToUTC","formatDatetimeQuery","toISOString","formatSortbyForPOST","direction","pageLinks","pageLink","isEmpty","isFinite","limit","toJSON","removeQuery","toText","setQuery","preferFileName","filename","dir","directory","suffix","getValueFromObjectUsingPath","object","searchterm","and","splitChars","s","term","pattern","test","mergeDeep","isAxiosError","res","oldPath","redirectLegacyUrl","part","decode","newPath","webpackAsyncContext","req","__webpack_require__","resolve","e","ids","webpackContext","webpackContextResolve","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","m","webpackQueues","Symbol","webpackExports","webpackError","resolveQueue","d","r","wrapDeps","deps","dep","ret","hasAwait","currentDeps","outerResolve","reject","depQueues","Set","promise","rej","getResult","fnQueue","has","add","err","deferred","O","result","chunkIds","notFulfilled","Infinity","fulfilled","j","n","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","reduce","u","miniCssF","g","globalThis","hmd","prop","prototype","hasOwnProperty","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","nonce","onLinkComplete","errorType","realHref","request","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/app.5edca583.js","mappings":"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kB7pB,GACtB,IAAKA,GAAiB,MAATA,EACX,OAAO,EAGT,IAAI7D,EAAQ6D,EAAK5D,MAAM,KAAKlP,QAAO48B,GAAQA,EAAKrkC,OAAS,GAAc,SAATqkC,GAA4B,eAATA,IAEjF,GAAI3tB,EAAM1W,OAAS,GAAK0W,EAAM/O,OAAM08B,GAAQA,EAAK9X,MAAM,qEAAqE,CAE1H,MAAM,OAAE+X,SAAiB,qCAEzB,IAAIC,EAAUD,EAAO5tB,EAAMA,EAAM1W,OAAS,IAAIoQ,WAC9C,GAAIm0B,EAAS,CACX,IAAI10B,EAAMC,IAAIy0B,GAOd,OALA7lC,KAAK45B,QAAQ1c,QAAQ,CAEnBrB,KAAM,IAAM1K,EAAI0K,OAAOqB,QAAQ,0BAA2B,IAC1D1H,MAAOrE,EAAIqE,OAAM,MAEZ,CACT,CACF,CACA,OAAO,CACT,G,wBC5GJ,IAAI3M,EAAM,CACT,iBAAkB,CACjB,MACA,GAED,sBAAuB,CACtB,MACA,GAED,qBAAsB,CACrB,MACA,EACA,KAED,wBAAyB,CACxB,MACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KACA,KAED,qBAAsB,CACrB,IACA,EACA,KACA,KAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,sBAAuB,CACtB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,eAAgB,CACf,MACA,EACA,KACA,MAED,kBAAmB,CAClB,MACA,EACA,KACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,iBAAkB,CACjB,MACA,GAED,sBAAuB,CACtB,MACA,GAED,iBAAkB,CACjB,MACA,EACA,MAED,sBAAuB,CACtB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,sBAAuB,CACtB,MACA,EACA,KACA,MAED,iBAAkB,CACjB,MACA,EACA,MAED,sBAAuB,CACtB,MACA,EACA,MAED,gBAAiB,CAChB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,qBAAsB,CACrB,KACA,EACA,MAED,wBAAyB,CACxB,KACA,EACA,MAED,iBAAkB,CACjB,MACA,GAED,sBAAuB,CACtB,MACA,GAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,sBAAuB,CACtB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,KACA,EACA,MAED,wBAAyB,CACxB,KACA,EACA,MAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,eAAgB,CACf,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,sBAAuB,CACtB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,eAAgB,CACf,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,KAED,kBAAmB,CAClB,MACA,EACA,KAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,iBAAkB,CACjB,MACA,GAED,sBAAuB,CACtB,MACA,GAED,qBAAsB,CACrB,KACA,EACA,MAED,wBAAyB,CACxB,KACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,sBAAuB,CACtB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,iBAAkB,CACjB,KACA,GAED,sBAAuB,CACtB,KACA,GAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,sBAAuB,CACtB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,eAAgB,CACf,KACA,EACA,KACA,MAED,kBAAmB,CAClB,KACA,EACA,KACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,iBAAkB,CACjB,MACA,GAED,sBAAuB,CACtB,MACA,GAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,sBAAuB,CACtB,MACA,EACA,KACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,wBAAyB,CACxB,MACA,EACA,MAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,KACA,EACA,MAED,mBAAoB,CACnB,KACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,eAAgB,CACf,MACA,EACA,KACA,MAED,kBAAmB,CAClB,MACA,EACA,KACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,KAED,qBAAsB,CACrB,MACA,EACA,KAED,eAAgB,CACf,KACA,EACA,MAED,kBAAmB,CAClB,KACA,EACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,KAED,kBAAmB,CAClB,MACA,EACA,KAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,iBAAkB,CACjB,MACA,GAED,sBAAuB,CACtB,MACA,GAED,iBAAkB,CACjB,MACA,EACA,MAED,sBAAuB,CACtB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,KAED,wBAAyB,CACxB,MACA,EACA,KAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,sBAAuB,CACtB,MACA,EACA,KACA,MAED,iBAAkB,CACjB,KACA,EACA,MAED,sBAAuB,CACtB,KACA,EACA,MAED,gBAAiB,CAChB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,KAED,wBAAyB,CACxB,MACA,EACA,KAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,KACA,EACA,MAED,mBAAoB,CACnB,KACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,eAAgB,CACf,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,qBAAsB,CACrB,MACA,EACA,MAED,cAAe,CACd,MACA,GAED,mBAAoB,CACnB,MACA,GAED,cAAe,CACd,KACA,EACA,MAED,mBAAoB,CACnB,KACA,EACA,MAED,kBAAmB,CAClB,KACA,EACA,MAED,qBAAsB,CACrB,KACA,EACA,MAED,eAAgB,CACf,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,gBAAiB,CAChB,MACA,EACA,KACA,MAED,mBAAoB,CACnB,MACA,EACA,KACA,MAED,cAAe,CACd,MACA,EACA,MAED,mBAAoB,CACnB,MACA,EACA,MAED,aAAc,CACb,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,MAED,kBAAmB,CAClB,MACA,EACA,KAED,qBAAsB,CACrB,MACA,EACA,MAGF,SAASi9B,EAAoBC,GAC5B,IAAIC,EAAoB71B,EAAEtH,EAAKk9B,GAC9B,OAAOhqB,QAAQkqB,UAAUxI,MAAK,WAC7B,IAAIyI,EAAI,IAAIt5B,MAAM,uBAAyBm5B,EAAM,KAEjD,MADAG,EAAErjB,KAAO,mBACHqjB,CACP,IAGD,IAAIC,EAAMt9B,EAAIk9B,GAAMh/B,EAAKo/B,EAAI,GAC7B,OAAOpqB,QAAQC,IAAImqB,EAAIx8B,MAAM,GAAGd,IAAIm9B,EAAoBE,IAAIzI,MAAK,WAChE,OAAOuI,EAAoB5xB,EAAErN,EAAa,GAATo/B,EAAI,GACtC,GACD,CACAL,EAAoB/lB,KAAO,WAAa,OAAOzc,OAAOyc,KAAKlX,EAAM,EACjEi9B,EAAoB/+B,GAAK,MACzB8K,EAAOC,QAAUg0B,C,wBCpkCjB,IAAIj9B,EAAM,CACT,qBAAsB,CACrB,IACA,KACA,KAED,kBAAmB,CAClB,MACA,KACA,MAED,qBAAsB,CACrB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,qBAAsB,CACrB,MACA,KACA,MAED,qBAAsB,CACrB,MACA,KACA,MAED,kBAAmB,CAClB,KACA,KACA,MAED,qBAAsB,CACrB,MACA,KACA,MAED,kBAAmB,CAClB,MACA,KACA,MAED,kBAAmB,CAClB,KACA,MAED,qBAAsB,CACrB,MACA,MAED,kBAAmB,CAC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","sources":["webpack://@radiantearth/stac-browser/./src/components/Catalog.vue","webpack://@radiantearth/stac-browser/src/components/Catalog.vue","webpack://@radiantearth/stac-browser/./src/components/Catalog.vue?b77d","webpack://@radiantearth/stac-browser/./src/components/Catalog.vue?462e","webpack://@radiantearth/stac-browser/./src/components/Catalogs.vue","webpack://@radiantearth/stac-browser/./src/components/ViewButtons.vue","webpack://@radiantearth/stac-browser/src/components/ViewButtons.vue","webpack://@radiantearth/stac-browser/./src/components/ViewButtons.vue?7d7e","webpack://@radiantearth/stac-browser/./src/components/ViewButtons.vue?e0ba","webpack://@radiantearth/stac-browser/./src/components/ViewMixin.js","webpack://@radiantearth/stac-browser/src/components/Catalogs.vue","webpack://@radiantearth/stac-browser/./src/components/Catalogs.vue?bd7f","webpack://@radiantearth/stac-browser/./src/components/Catalogs.vue?cc1b","webpack://@radiantearth/stac-browser/./src/components/CopyButton.vue","webpack://@radiantearth/stac-browser/src/components/CopyButton.vue","webpack://@radiantearth/stac-browser/./src/components/CopyButton.vue?ba0b","webpack://@radiantearth/stac-browser/./src/components/CopyButton.vue?5144","webpack://@radiantearth/stac-browser/./src/components/Description.vue","webpack://@radiantearth/stac-browser/src/components/Description.vue","webpack://@radiantearth/stac-browser/./src/components/Description.vue?2c0f","webpack://@radiantearth/stac-browser/./src/components/Description.vue?234b","webpack://@radiantearth/stac-browser/./src/components/ErrorAlert.vue","webpack://@radiantearth/stac-browser/src/components/ErrorAlert.vue","webpack://@radiantearth/stac-browser/./src/components/ErrorAlert.vue?0e59","webpack://@radiantearth/stac-browser/./src/components/ErrorAlert.vue?a728","webpack://@radiantearth/stac-browser/./src/components/Item.vue","webpack://@radiantearth/stac-browser/src/components/Item.vue","webpack://@radiantearth/stac-browser/./src/components/Item.vue?8cc2","webpack://@radiantearth/stac-browser/./src/components/Item.vue?9ab6","webpack://@radiantearth/stac-browser/./src/components/Items.vue","webpack://@radiantearth/stac-browser/src/components/Items.vue","webpack://@radiantearth/stac-browser/./src/components/Items.vue?10d9","webpack://@radiantearth/stac-browser/./src/components/Items.vue?2880","webpack://@radiantearth/stac-browser/./src/components/Loading.vue","webpack://@radiantearth/stac-browser/src/components/Loading.vue","webpack://@radiantearth/stac-browser/./src/components/Loading.vue?5767","webpack://@radiantearth/stac-browser/./src/components/Loading.vue?7ea9","webpack://@radiantearth/stac-browser/./src/components/Pagination.vue","webpack://@radiantearth/stac-browser/src/components/Pagination.vue","webpack://@radiantearth/stac-browser/./src/components/Pagination.vue?6519","webpack://@radiantearth/stac-browser/./src/components/Pagination.vue?c5cd","webpack://@radiantearth/stac-browser/./src/components/StacLink.vue","webpack://@radiantearth/stac-browser/src/components/StacLink.vue","webpack://@radiantearth/stac-browser/./src/components/StacLink.vue?f32a","webpack://@radiantearth/stac-browser/./src/components/StacLink.vue?a103","webpack://@radiantearth/stac-browser/./config.js","webpack://@radiantearth/stac-browser/./src/auth/index.js","webpack://@radiantearth/stac-browser/./src/browser-store.js","webpack://@radiantearth/stac-browser/./src/components/ApiCapabilitiesMixin.js","webpack://@radiantearth/stac-browser/./src/components/StacFieldsMixin.js","webpack://@radiantearth/stac-browser/./src/components/ThumbnailCardMixin.js","webpack://@radiantearth/stac-browser/./src/components/auth/utils.js","webpack://@radiantearth/stac-browser/./src/config.js","webpack://@radiantearth/stac-browser/./src/i18n.js","webpack://@radiantearth/stac-browser/./src/locale-id.js","webpack://@radiantearth/stac-browser/./src/StacBrowser.vue","webpack://@radiantearth/stac-browser/./src/views/Browse.vue","webpack://@radiantearth/stac-browser/./src/views/Item.vue","webpack://@radiantearth/stac-browser/./src/components/ShowAssetMixin.js","webpack://@radiantearth/stac-browser/./src/schema-org.js","webpack://@radiantearth/stac-browser/src/views/Item.vue","webpack://@radiantearth/stac-browser/./src/views/Item.vue?a34c","webpack://@radiantearth/stac-browser/./src/views/Item.vue?8b34","webpack://@radiantearth/stac-browser/./src/views/Catalog.vue","webpack://@radiantearth/stac-browser/src/views/Catalog.vue","webpack://@radiantearth/stac-browser/./src/views/Catalog.vue?75d2","webpack://@radiantearth/stac-browser/./src/views/Catalog.vue?ddb4","webpack://@radiantearth/stac-browser/src/views/Browse.vue","webpack://@radiantearth/stac-browser/./src/views/Browse.vue?fa85","webpack://@radiantearth/stac-browser/./src/views/Browse.vue?dda6","webpack://@radiantearth/stac-browser/./src/router/index.js","webpack://@radiantearth/stac-browser/./src/store/auth.js","webpack://@radiantearth/stac-browser/./src/store/index.js","webpack://@radiantearth/stac-browser/./src/components/StacHeader.vue","webpack://@radiantearth/stac-browser/./src/components/Source.vue","webpack://@radiantearth/stac-browser/./src/components/Url.vue","webpack://@radiantearth/stac-browser/src/components/Url.vue","webpack://@radiantearth/stac-browser/./src/components/Url.vue?dc88","webpack://@radiantearth/stac-browser/./src/components/Url.vue?ab5e","webpack://@radiantearth/stac-browser/./src/components/SocialSharing.vue","webpack://@radiantearth/stac-browser/src/components/SocialSharing.vue","webpack://@radiantearth/stac-browser/./src/components/SocialSharing.vue?c8fb","webpack://@radiantearth/stac-browser/./src/components/SocialSharing.vue?ad0a","webpack://@radiantearth/stac-browser/src/components/Source.vue","webpack://@radiantearth/stac-browser/./src/components/Source.vue?1cfb","webpack://@radiantearth/stac-browser/./src/components/Source.vue?90bb","webpack://@radiantearth/stac-browser/src/components/StacHeader.vue","webpack://@radiantearth/stac-browser/./src/components/StacHeader.vue?4fac","webpack://@radiantearth/stac-browser/./src/components/StacHeader.vue?4265","webpack://@radiantearth/stac-browser/./src/components/Authentication.vue","webpack://@radiantearth/stac-browser/src/components/Authentication.vue","webpack://@radiantearth/stac-browser/./src/components/Authentication.vue?6c8f","webpack://@radiantearth/stac-browser/./src/components/Authentication.vue?3302","webpack://@radiantearth/stac-browser/src/StacBrowser.vue","webpack://@radiantearth/stac-browser/./src/StacBrowser.vue?675d","webpack://@radiantearth/stac-browser/./src/StacBrowser.vue?36e0","webpack://@radiantearth/stac-browser/./src/init.js","webpack://@radiantearth/stac-browser/./src/main.js","webpack://@radiantearth/stac-browser/./src/models/stac.js","webpack://@radiantearth/stac-browser/./src/rels.js","webpack://@radiantearth/stac-browser/./src/store/utils.js","webpack://@radiantearth/stac-browser/./src/utils.js","webpack://@radiantearth/stac-browser/./src/views/BrowseMixin.js","webpack://@radiantearth/stac-browser/./src/locales/ lazy ^\\.\\/.*\\/.*$ namespace object","webpack://@radiantearth/stac-browser/./src/locales/ lazy ^\\.\\/.*\\/default\\.js$ namespace object","webpack://@radiantearth/stac-browser/./src/locales/ sync ^\\.\\/.*\\/config\\.json$","webpack://@radiantearth/stac-browser/webpack/bootstrap","webpack://@radiantearth/stac-browser/webpack/runtime/async module","webpack://@radiantearth/stac-browser/webpack/runtime/chunk loaded","webpack://@radiantearth/stac-browser/webpack/runtime/compat get default export","webpack://@radiantearth/stac-browser/webpack/runtime/create fake namespace object","webpack://@radiantearth/stac-browser/webpack/runtime/define property getters","webpack://@radiantearth/stac-browser/webpack/runtime/ensure chunk","webpack://@radiantearth/stac-browser/webpack/runtime/get javascript chunk filename","webpack://@radiantearth/stac-browser/webpack/runtime/get mini-css chunk filename","webpack://@radiantearth/stac-browser/webpack/runtime/global","webpack://@radiantearth/stac-browser/webpack/runtime/harmony module decorator","webpack://@radiantearth/stac-browser/webpack/runtime/hasOwnProperty shorthand","webpack://@radiantearth/stac-browser/webpack/runtime/load script","webpack://@radiantearth/stac-browser/webpack/runtime/make namespace object","webpack://@radiantearth/stac-browser/webpack/runtime/node module decorator","webpack://@radiantearth/stac-browser/webpack/runtime/publicPath","webpack://@radiantearth/stac-browser/webpack/runtime/css loading","webpack://@radiantearth/stac-browser/webpack/runtime/jsonp chunk loading","webpack://@radiantearth/stac-browser/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.400\",value:(_vm.load),expression:\"load\",modifiers:{\"400\":true}}],class:_vm.classes,attrs:{\"no-body\":\"\",\"img-right\":_vm.isList}},[(_vm.hasImage)?_c('b-card-img-lazy',_vm._b({staticClass:\"thumbnail\",attrs:{\"offset\":\"200\"}},'b-card-img-lazy',_vm.thumbnail,false)):_vm._e(),_c('b-card-body',[_c('b-card-title',[_c('StacLink',{staticClass:\"stretched-link\",attrs:{\"data\":[_vm.data, _vm.catalog]}})],1),(_vm.data && (_vm.fileFormats.length > 0 || _vm.data.description || _vm.data.deprecated))?_c('b-card-text',{staticClass:\"intro\"},[(_vm.data.deprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),_vm._v(\" \"+_vm._s(_vm._f(\"summarize\")(_vm.data.description))+\" \")],2):_vm._e(),(_vm.showKeywordsInCatalogCards && _vm.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.keywords,\"variant\":\"primary\",\"center\":!_vm.isList}}):_vm._e(),(_vm.temporalExtent)?_c('b-card-text',{staticClass:\"datetime\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtent)}})]):_vm._e()],1),_c('b-card-footer',[_vm._t(\"footer\",null,{\"data\":_vm.data})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=50eb59b2\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=50eb59b2&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"catalogs mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.title))]),(_vm.catalogCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.catalogCount))]):_vm._e(),_c('ViewButtons',{staticClass:\"mr-2\",model:{value:(_vm.view),callback:function ($$v) {_vm.view=$$v},expression:\"view\"}}),(_vm.isComplete && _vm.catalogs.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.isComplete && _vm.catalogs.length > 1)?_c('section',{staticClass:\"catalog-filter mb-2\"},[_c('SearchBox',{attrs:{\"placeholder\":_vm.filterPlaceholder},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),(_vm.allKeywords.length > 0)?_c('multiselect',{attrs:{\"multiple\":\"\",\"options\":_vm.allKeywords,\"placeholder\":_vm.$t('multiselect.keywordsPlaceholder'),\"selectLabel\":_vm.$t('multiselect.selectLabel'),\"selectedLabel\":_vm.$t('multiselect.selectedLabel'),\"deselectLabel\":_vm.$t('multiselect.deselectLabel'),\"limitText\":_vm.limitText},model:{value:(_vm.selectedKeywords),callback:function ($$v) {_vm.selectedKeywords=$$v},expression:\"selectedKeywords\"}}):_vm._e()],1):_vm._e(),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",staticClass:\"mb-3\",attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.hasSearchCritera && _vm.catalogView.length === 0)?_c('b-alert',{staticClass:\"mt-2\",attrs:{\"variant\":\"warning\",\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('catalogs.noMatches')))]):_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),_c(_vm.cardsComponent,_vm._b({tag:\"component\"},'component',_vm.cardsComponentProps,false),_vm._l((_vm.catalogView),function(catalog){return _c('Catalog',{key:catalog.href,attrs:{\"catalog\":catalog},scopedSlots:_vm._u([{key:\"footer\",fn:function({data}){return [_vm._t(\"catalogFooter\",null,{\"data\":data})]}}],null,true)})}),1)],1),(_vm.showPagination)?_c('Pagination',{staticClass:\"mb-3\",attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.loadMore),expression:\"loadMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.loadMore}},[_vm._v(_vm._s(_vm.$t('catalogs.loadMore')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',{attrs:{\"title\":_vm.$t('view.title'),\"size\":\"sm\"}},[_c('b-button',{attrs:{\"title\":_vm.$t('view.tiles.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'cards'},on:{\"click\":function($event){return _vm.toggle('cards')}}},[_c('b-icon-bricks'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.tiles.label')))])],1),_c('b-button',{attrs:{\"title\":_vm.$t('view.list.title'),\"variant\":\"outline-primary\",\"pressed\":_vm.value === 'list'},on:{\"click\":function($event){return _vm.toggle('list')}}},[_c('b-icon-list-task'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('view.list.label')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewButtons.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ViewButtons.vue?vue&type=template&id=6a51668d\"\nimport script from \"./ViewButtons.vue?vue&type=script&lang=js\"\nexport * from \"./ViewButtons.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import ViewButtons from './ViewButtons.vue';\n\nexport default {\n components: {\n ViewButtons\n },\n computed: {\n cardsComponent() {\n return (this.view === 'list') ? 'div' : 'b-card-group';\n },\n cardsComponentProps() {\n if (this.view === 'list') {\n return {\n class: [\n 'card-list'\n ]\n };\n }\n else {\n return {\n columns: true\n };\n }\n },\n view: {\n get() {\n return this.$store.state.cardViewMode;\n },\n async set(cardViewMode) {\n await this.$store.dispatch('config', { cardViewMode });\n }\n }\n }\n};\n","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalogs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Catalogs.vue?vue&type=template&id=52ad2017&scoped=true\"\nimport script from \"./Catalogs.vue?vue&type=script&lang=js\"\nexport * from \"./Catalogs.vue?vue&type=script&lang=js\"\nimport style0 from \"./Catalogs.vue?vue&type=style&index=0&id=52ad2017&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52ad2017\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button',_vm._b({staticClass:\"copy-button\",attrs:{\"variant\":_vm.copyColor,\"title\":_vm.$t('copy')},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.copy.apply(null, arguments)}}},'b-button',_vm.buttonProps,false),[_c(_vm.copyIcon,{tag:\"component\"}),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CopyButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CopyButton.vue?vue&type=template&id=033681c8\"\nimport script from \"./CopyButton.vue?vue&type=script&lang=js\"\nexport * from \"./CopyButton.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"styled-description\",class:{compact: _vm.compact, inline: _vm.inline},domProps:{\"innerHTML\":_vm._s(_vm.markup(_vm.description))}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Description.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Description.vue?vue&type=template&id=77c4c56a\"\nimport script from \"./Description.vue?vue&type=script&lang=js\"\nexport * from \"./Description.vue?vue&type=script&lang=js\"\nimport style0 from \"./Description.vue?vue&type=style&index=0&id=77c4c56a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":\"\",\"dismissible\":_vm.dismissible},on:{\"dismissed\":function($event){return _vm.$emit('close')}}},[_c('p',{staticClass:\"message\"},[_vm._v(_vm._s(_vm.message || _vm.$t('errors.default')))]),(_vm.error && _vm.error.message)?_c('dl',{staticClass:\"error\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.cause')))]),_c('dd',[_vm._v(_vm._s(_vm.error.message))])]):_vm._e(),(_vm.description)?_c('dl',{staticClass:\"description\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.reason')))]),_c('dd',[_vm._v(_vm._s(_vm.description))])]):_vm._e(),(_vm.id)?_c('dl',{staticClass:\"id\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.code')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.id))])])]):_vm._e(),(_vm.url)?_c('dl',{staticClass:\"url\"},[_c('dt',[_vm._v(_vm._s(_vm.$t('errors.labels.requestURL')))]),_c('dd',[_c('code',[_vm._v(_vm._s(_vm.url))])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ErrorAlert.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ErrorAlert.vue?vue&type=template&id=7a9d646a&scoped=true\"\nimport script from \"./ErrorAlert.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorAlert.vue?vue&type=script&lang=js\"\nimport style0 from \"./ErrorAlert.vue?vue&type=style&index=0&id=7a9d646a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a9d646a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.400\",value:(_vm.load),expression:\"load\",modifiers:{\"400\":true}}],staticClass:\"item-card\",class:{queued: !_vm.data, deprecated: _vm.isDeprecated, description: _vm.hasDescription},attrs:{\"no-body\":\"\"}},[(_vm.hasImage)?_c('b-card-img-lazy',_vm._b({staticClass:\"thumbnail\",attrs:{\"offset\":\"200\"}},'b-card-img-lazy',_vm.thumbnail,false)):_vm._e(),_c('b-card-body',[_c('b-card-title',[_c('StacLink',{staticClass:\"stretched-link\",attrs:{\"data\":[_vm.data, _vm.item]}})],1),(_vm.fileFormats.length > 0 || _vm.hasDescription || _vm.isDeprecated)?_c('b-card-text',{staticClass:\"intro\"},[(_vm.isDeprecated)?_c('b-badge',{staticClass:\"mr-1 mt-1 deprecated\",attrs:{\"variant\":\"warning\"}},[_vm._v(_vm._s(_vm.$t('deprecated')))]):_vm._e(),_vm._l((_vm.fileFormats),function(format){return _c('b-badge',{key:format,staticClass:\"mr-1 mt-1 fileformat\",attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm._f(\"formatMediaType\")(format)))])}),(_vm.hasDescription)?[_vm._v(_vm._s(_vm._f(\"summarize\")(_vm.data.properties.description)))]:_vm._e()],2):_vm._e(),(_vm.showKeywordsInItemCards && _vm.keywords.length > 0)?_c('Keywords',{attrs:{\"keywords\":_vm.keywords,\"variant\":\"primary\",\"center\":\"\"}}):_vm._e(),_c('b-card-text',[_c('small',{staticClass:\"text-muted\"},[(_vm.extent)?[_vm._v(_vm._s(_vm._f(\"formatTemporalExtent\")(_vm.extent)))]:(_vm.data && _vm.data.properties.datetime)?[_vm._v(_vm._s(_vm._f(\"formatTimestamp\")(_vm.data.properties.datetime)))]:[_vm._v(_vm._s(_vm.$t('items.noTime')))]],2)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=7144a4b0\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=7144a4b0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"items mb-4\"},[_c('header',[_c('h2',{staticClass:\"title mr-2\"},[_vm._v(_vm._s(_vm.$tc('stacItem', _vm.items.length )))]),(_vm.itemCount !== null)?_c('b-badge',{staticClass:\"mr-4\",attrs:{\"pill\":\"\",\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.itemCount))]):_vm._e(),(!_vm.api && _vm.items.length > 1)?_c('SortButtons',{model:{value:(_vm.sort),callback:function ($$v) {_vm.sort=$$v},expression:\"sort\"}}):_vm._e()],1),(_vm.showPagination)?_c('Pagination',{ref:\"topPagination\",staticClass:\"mb-3\",class:{'mr-3': _vm.allowFilter},attrs:{\"pagination\":_vm.pagination,\"placement\":\"top\"},on:{\"paginate\":_vm.paginate}}):_vm._e(),(_vm.allowFilter)?[(_vm.api)?_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.itemFilter\",modifiers:{\"itemFilter\":true}}],staticClass:\"mb-3\",attrs:{\"variant\":_vm.hasFilters && !_vm.filtersOpen ? 'primary' : 'outline-primary'}},[_c('b-icon-search'),_vm._v(\" \"+_vm._s(_vm.filtersOpen ? _vm.$t('items.hideFilter') : _vm.$t('items.showFilter'))+\" \"),(_vm.hasFilters && !_vm.filtersOpen)?_c('b-badge',{attrs:{\"variant\":\"dark\"}},[_vm._v(_vm._s(_vm.filterCount))]):_vm._e()],1):_vm._e(),_c('b-collapse',{attrs:{\"id\":\"itemFilter\"},model:{value:(_vm.filtersOpen),callback:function ($$v) {_vm.filtersOpen=$$v},expression:\"filtersOpen\"}},[_c('SearchFilter',{attrs:{\"type\":\"Items\",\"title\":_vm.$t('items.filter'),\"parent\":_vm.stac,\"value\":_vm.apiFilters},on:{\"input\":_vm.emitFilter}})],1)]:_vm._e(),_c('section',{staticClass:\"list\"},[(_vm.loading)?_c('Loading',{attrs:{\"fill\":\"\",\"top\":\"\"}}):_vm._e(),(_vm.chunkedItems.length > 0)?_c('b-card-group',{attrs:{\"columns\":\"\"}},_vm._l((_vm.chunkedItems),function(item){return _c('Item',{key:item.href,attrs:{\"item\":item}})}),1):_c('b-alert',{attrs:{\"variant\":_vm.hasFilters ? 'warning' : 'info',\"show\":\"\"}},[(_vm.hasFilters)?[_vm._v(_vm._s(_vm.$t('search.noItemsFound')))]:[_vm._v(_vm._s(_vm.$t('items.noneAvailableForCollection')))]],2)],1),(_vm.showPagination)?_c('Pagination',{staticClass:\"mb-3\",attrs:{\"pagination\":_vm.pagination},on:{\"paginate\":_vm.paginate}}):(_vm.hasMore)?_c('b-button',{directives:[{name:\"b-visible\",rawName:\"v-b-visible.300\",value:(_vm.showMore),expression:\"showMore\",modifiers:{\"300\":true}}],attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.showMore}},[_vm._v(_vm._s(_vm.$t('showMore')))]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Items.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Items.vue?vue&type=template&id=6fc0f1d4\"\nimport script from \"./Items.vue?vue&type=script&lang=js\"\nexport * from \"./Items.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.classes},[_c('b-spinner',{attrs:{\"label\":_vm.$t('loading'),\"small\":_vm.small}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=67931bb8&scoped=true\"\nimport script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=67931bb8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67931bb8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-button-group',[_c('b-button',{attrs:{\"disabled\":!_vm.pagination.first,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.first)}}},[_vm._v(_vm._s(_vm.$t('pagination.first')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.prev,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.prev)}}},[_vm._v(_vm._s(_vm.$t('pagination.previous')))]),_c('b-button',{attrs:{\"disabled\":!_vm.pagination.next,\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.next)}}},[_vm._v(_vm._s(_vm.$t('pagination.next')))]),(_vm.pagination.last)?_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.paginate(_vm.pagination.last)}}},[_vm._v(_vm._s(_vm.$t('pagination.last')))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=96ce1978\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.component,_vm._b({tag:\"component\",staticClass:\"stac-link\",attrs:{\"title\":_vm.tooltip}},'component',_vm.attributes,false),[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.displayTitle))])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacLink.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacLink.vue?vue&type=template&id=935ce1da\"\nimport script from \"./StacLink.vue?vue&type=script&lang=js\"\nexport * from \"./StacLink.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = {\n catalogUrl: null,\n catalogTitle: \"STAC Browser\",\n allowExternalAccess: true, // Must be true if catalogUrl is not given\n allowedDomains: [],\n detectLocaleFromBrowser: true,\n storeLocale: true,\n locale: \"en\",\n fallbackLocale: \"en\",\n supportedLocales: [\n \"de\",\n// \"de-CH\",\n \"es\",\n \"en\",\n// \"en-GB\",\n// \"en-US\",\n \"fr\",\n// \"fr-CA\",\n// \"fr-CH\",\n \"it\",\n// \"it-CH\",\n \"ro\",\n \"ja\",\n \"pt\",\n// \"pt-BR\"\n ],\n apiCatalogPriority: null,\n useTileLayerAsFallback: true,\n displayGeoTiffByDefault: false,\n buildTileUrlTemplate: ({href, asset}) => \"https://tiles.rdnt.io/tiles/{z}/{x}/{y}@2x?url=\" + encodeURIComponent(asset.href.startsWith(\"/vsi\") ? asset.href : href),\n stacProxyUrl: null,\n pathPrefix: \"/\",\n historyMode: \"history\",\n cardViewMode: \"cards\",\n cardViewSort: \"asc\",\n showKeywordsInItemCards: false,\n showKeywordsInCatalogCards: false,\n showThumbnailsAsAssets: false,\n geoTiffResolution: 128,\n redirectLegacyUrls: false,\n itemsPerPage: 12,\n defaultThumbnailSize: null,\n maxPreviewsOnMap: 50,\n crossOriginMedia: null,\n requestHeaders: {},\n requestQueryParameters: {},\n socialSharing: ['email', 'bsky', 'mastodon', 'x'],\n preprocessSTAC: null,\n authConfig: null\n};\n","import i18n from '../i18n';\nimport Utils from '../utils';\n\nexport default class Auth {\n\n /**\n * Constructs the authentication method.\n * \n * @param {Object.} options Any potential options the authentication method needs\n * @param {Function} changeListener A change listener with two parameters: loggedIn (boolean) and credentials (string|null)\n * @param {Router} router The Vue router instance\n */\n constructor(options = {}, changeListener = null, router = null) {\n this.options = options;\n this.changeListener = changeListener;\n this.router = router;\n }\n\n /**\n * A tooltip title for the authentication button.\n * \n * @returns {string}\n */\n getButtonTitle() {\n return null;\n }\n\n /**\n * A label for the button that is shown when unauthorized (logged out).\n * \n * @returns {string}\n */\n getLoginLabel() {\n return i18n.t('authentication.button.login');\n }\n\n /**\n * A label for the button that is shown when authorized (logged in).\n * \n * @returns {string}\n */\n getLogoutLabel() {\n return i18n.t('authentication.button.logout');\n }\n\n getComponent() {\n return null;\n }\n\n getComponentProps() {\n return {};\n }\n\n async init() {\n return;\n }\n\n async login() {\n }\n\n async confirmLogin(credentials) {\n if (this.changeListener) {\n await this.changeListener(true, credentials);\n }\n }\n\n async logout(/*credentials*/) {\n }\n\n async confirmLogout() {\n if (this.changeListener) {\n await this.changeListener(false);\n }\n }\n\n async close() {\n return;\n }\n\n updateStore(/*value*/) {\n return {};\n }\n\n _updateStore(value, defaultName = null, defaultIn = null, defaultFormatter = null) {\n const formatter = this.options.formatter || defaultFormatter;\n const key = this.options.name || defaultName;\n const in_ = this.options.in || defaultIn;\n\n // Format the credentials\n if (value) {\n if (formatter === 'Bearer') {\n value = `Bearer ${value}`;\n }\n else if (typeof formatter === 'function') {\n value = formatter(value);\n }\n }\n if (!Utils.hasText(value)) {\n value = undefined;\n }\n\n // Set cookie, query or request parameters\n if (in_ === 'query') {\n return { query: { type: 'private', key, value } };\n }\n else if (in_ === 'cookie') {\n return { cookie: { key, value } };\n }\n else if (in_ === 'header') {\n return { header: { key, value } };\n }\n else {\n return {};\n }\n }\n\n static async create(config, changeListener, router) {\n let method = new Auth();\n if (Utils.isObject(config)) {\n if (config.type === 'http' && config.scheme === 'basic') {\n const BasicAuth = (await import('./basic')).default;\n method = new BasicAuth(config, changeListener, router);\n }\n else if (config.type === 'apiKey') {\n const ApIKey = (await import('./apiKey')).default;\n method = new ApIKey(config, changeListener, router);\n }\n else if (config.type === 'openIdConnect') {\n const OIDC = (await import('./oidc')).default;\n method = new OIDC(config, changeListener, router);\n }\n }\n await method.init();\n return method;\n }\n\n static equals(method, config) {\n return JSON.stringify(method.options) === JSON.stringify(config);\n }\n\n}\n","import Utils from \"./utils\";\n\nexport default class BrowserStorage {\n\n static JSON_INDICATOR = \"\\n\\r\";\n\n static enabled(engine) {\n if (!Utils.isObject(engine)) {\n return false;\n }\n try {\n engine.setItem('test', 'yes');\n if (engine.getItem('test') === 'yes') {\n engine.removeItem('test');\n return true;\n }\n } catch(error) {\n console.error(error);\n }\n return false;\n }\n\n constructor(session = false) {\n if (session) {\n if (BrowserStorage.enabled(window.sessionStorage)) {\n this.engine = window.sessionStorage;\n }\n else if (navigator.cookieEnabled) {\n this.engine = new Cookies(true);\n }\n else {\n this.engine = new NoOp();\n }\n }\n else {\n if (BrowserStorage.enabled(window.localStorage)) {\n this.engine = window.localStorage;\n }\n else if (navigator.cookieEnabled) {\n this.engine = new Cookies();\n }\n else {\n this.engine = new NoOp();\n }\n }\n }\n\n get(name) {\n try {\n let data = this.engine.getItem(name);\n if (typeof data === 'string' && data.startsWith(BrowserStorage.JSON_INDICATOR)) {\n data = JSON.parse(data.slice(BrowserStorage.JSON_INDICATOR.length));\n }\n return data;\n } catch(error) {\n console.error(error);\n return null;\n }\n }\n\n set(name, value) {\n try {\n if (typeof value !== 'string') {\n value = BrowserStorage.JSON_INDICATOR + JSON.stringify(value);\n }\n this.engine.setItem(name, value);\n } catch(error) {\n console.error(error);\n }\n }\n\n remove(name) {\n try {\n this.engine.removeItem(name);\n } catch(error) {\n console.error(error);\n }\n }\n\n clear() {\n this.engine.clear();\n }\n\n}\n\nexport class Cookies {\n\n constructor(session = false) {\n this.session = session;\n }\n\n getExpiry(minutes = null) {\n if (minutes === null) {\n if (this.session) {\n minutes = 60; // 60 minutes\n }\n else {\n minutes = 1000 * 24 * 60; // 1000 days\n }\n }\n const date = new Date();\n date.setTime(date.getTime() + minutes * 60 * 1000);\n this.epires = date.toGMTString();\n }\n\n setItem(name, value, minutes = null) {\n const expires = this.getExpiry(minutes);\n value = encodeURIComponent(value);\n document.cookie = `${name}=${value}; expires=${expires}; path=/`;\n }\n\n getItem(name) {\n const prefix = name + \"=\";\n const parts = document.cookie.split(';');\n for (let c of parts) {\n c = c.trim();\n if (c.startsWith(prefix)) {\n const data = c.substring(prefix.length, c.length);\n return decodeURIComponent(data);\n }\n }\n return null;\n }\n\n removeItem(name) {\n this.set(name, \"\", -1);\n }\n\n clear() {\n document.cookie = '';\n }\n\n}\n\n\nclass NoOp {\n\n constructor(session = false) {\n this.session = session;\n }\n\n setItem(name/*, value*/) {\n console.warn(`Browser storage disabled, can't store ${name}`);\n }\n\n getItem(/*name*/) {\n return null;\n }\n\n removeItem(/*name*/) {\n }\n\n clear() {\n }\n\n}\n","// Add deprecated CQL conformance classes for stac-fastapi:\n// https://github.com/stac-utils/stac-fastapi/issues/539\nconst CQL_TEXT = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-text', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-text'\n];\nconst CQL_JSON = [\n 'https://api.stacspec.org/v1.*/item-search#filter:cql-json', // deprecated\n 'http://www.opengis.net/spec/cql2/1.*/conf/cql2-json'\n];\n\nconst CQL_ADV_COMPARISON = ['http://www.opengis.net/spec/cql2/1.*/conf/advanced-comparison-operators'];\n\nimport { mapGetters } from \"vuex\";\n\nexport const TYPES = {\n // OGC / STAC API - Features\n Items: {\n BasicFilters: [\n 'https://api.stacspec.org/v1.*/ogcapi-features',\n 'http://www.opengis.net/spec/ogcapi-features-1/1.*/conf/core'\n ],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n // It seems some conformance classes use conf (correct) and some req (deprecated?) after the version number\n CqlFilters: ['http://www.opengis.net/spec/ogcapi-features-3/1.*/*/features-filter'],\n Sort: [\n 'https://api.stacspec.org/v1.*/ogcapi-features#sort',\n 'http://www.opengis.net/spec/ogcapi-records-1/1.*/conf/sorting'\n ],\n FreeText: ['https://api.stacspec.org/v1.*/ogcapi-features#free-text']\n },\n // STAC API - Item Search\n Global: {\n BasicFilters: ['https://api.stacspec.org/v1.*/item-search'],\n CollectionIdFilter: true,\n ItemIdFilter: true,\n CqlFilters: ['https://api.stacspec.org/v1.*/item-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/item-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/item-search#free-text']\n },\n // OGC / STAC API - Collections\n Collections: {\n BasicFilters: ['https://api.stacspec.org/v1.*/collection-search'],\n CollectionIdFilter: false,\n ItemIdFilter: false,\n CqlFilters: ['https://api.stacspec.org/v1.*/collection-search#filter'],\n Sort: ['https://api.stacspec.org/v1.*/collection-search#sort'],\n FreeText: ['https://api.stacspec.org/v1.*/collection-search#free-text']\n }\n};\n\nexport default {\n props: {\n type: {\n type: String,\n required: true\n }\n },\n computed: {\n ...mapGetters(['supportsConformance']),\n\n conformances() {\n return TYPES[this.type];\n },\n\n canSort() {\n return this.supportsConformance(this.conformances.Sort);\n },\n canFilterExtents() {\n return this.supportsConformance(this.conformances.BasicFilters);\n },\n canFilterFreeText() {\n return this.supportsConformance(this.conformances.FreeText);\n },\n cql() {\n if (!this.supportsConformance(this.conformances.CqlFilters)) {\n return null;\n }\n let textMode = this.supportsConformance(CQL_TEXT);\n let jsonMode = this.supportsConformance(CQL_JSON);\n if (!textMode && !jsonMode) {\n return null;\n }\n\n return {\n textMode,\n jsonMode,\n advancedComparison: this.supportsConformance(CQL_ADV_COMPARISON)\n };\n }\n }\n};\n","import { mapState } from 'vuex';\n\nexport default functions => {\n let mixin = {\n computed: {\n ...mapState(['uiLanguage'])\n },\n methods: {}\n };\n for(let name in functions) {\n let fn = functions[name];\n mixin.methods[name] = function() {\n // We call uiLanguage once so that it's a dependency for the computed property\n // which makes the computed property to re-render when uiLanguage changes.\n this.uiLanguage;\n return fn(...arguments);\n };\n }\n return mixin;\n};\n","import { mapState } from 'vuex';\n\nexport default {\n props: {\n showThumbnail: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n ...mapState(['cardViewMode', 'crossOriginMedia', 'defaultThumbnailSize']),\n isList() {\n return this.data && !this.data.isItem() && this.cardViewMode === 'list';\n },\n hasImage() {\n return this.showThumbnail && this.thumbnail;\n },\n thumbnail() {\n if (this.data) {\n let thumbnails = this.data.getThumbnails(true, 'thumbnail');\n if (thumbnails.length > 0) {\n let t = thumbnails[0];\n let width, height;\n if (Array.isArray(t['proj:shape']) && t['proj:shape'].length === 2) {\n [height, width] = t['proj:shape'];\n }\n else if (Array.isArray(this.defaultThumbnailSize) && this.defaultThumbnailSize.length === 2) {\n [height, width] = this.defaultThumbnailSize;\n }\n return {\n src: t.href,\n alt: t.title,\n crossorigin: this.crossOriginMedia,\n right: this.isList,\n blankColor: \"rgba(0, 0, 0, 0.125)\",\n width,\n height,\n // for b-card-img-lazy\n \"blank-width\": width,\n \"blank-height\": height\n };\n }\n }\n return null;\n }\n }\n};","import Utils from '../../utils.js';\nimport STAC from '../../models/stac.js';\nimport Auth from '../../auth/index.js';\n\nexport default class AuthUtils {\n\n static resolveAuth(obj, context) {\n if (context instanceof STAC && Utils.size(obj['auth:refs']) > 0) {\n const scheme = context.getMetadata('auth:schemes');\n if (Utils.size(scheme) > 0) {\n return obj['auth:refs']\n .map(ref => scheme[ref])\n .filter(ref => Utils.isObject(ref));\n }\n }\n return [];\n }\n\n static isSupported(method, config) {\n if (method instanceof Auth) {\n method = method.options;\n }\n switch(method.type) {\n case 'http':\n return (method.schema === 'basic');\n case 'apiKey':\n return (method.in === 'header' || method.in === 'query');\n case 'openIdConnect':\n return (config.historyMode === 'history');\n default:\n return false;\n }\n }\n\n static convertLegacyAuthConfig(config) {\n if (!Utils.isObject(config) || config.type === null) {\n return null;\n }\n else if (config.type === 'query' || config.type === 'header') {\n // It is the old format\n return {\n type: 'apiKey',\n in: config.type,\n name: config.key,\n description: config.description,\n formatter: config.formatter\n };\n }\n else {\n // Is the new format from the authentication extension\n return config;\n }\n }\n\n}\n","let config;\nif (typeof CONFIG_PATH === 'undefined') {\n config = require('../config');\n}\nelse {\n config = require(CONFIG_PATH);\n}\n\nexport default Object.assign(config, CONFIG_CLI, window.STAC_BROWSER_CONFIG);","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport CONFIG from './config';\nimport { default as Fields } from '@radiantearth/stac-fields/I18N';\nimport Utils from './utils';\n\nVue.use(VueI18n);\n\nexport const API_LANGUAGE_CONFORMANCE = ['https://api.stacspec.org/v1.*/language'];\n\nconst LOCALE_CONFIG = {};\n\nfunction loadLocaleConfig() {\n // Load locale config\n for (let locale of CONFIG.supportedLocales) {\n LOCALE_CONFIG[locale] = require(`./locales/${locale}/config.json`);\n }\n const messages = {};\n // Add language names all other languages\n for (let locale in LOCALE_CONFIG) {\n messages[locale] = {\n languages: LOCALE_CONFIG\n };\n }\n return messages;\n}\n\nconst i18n = new VueI18n({\n locale: CONFIG.locale,\n fallbackLocale: CONFIG.fallbackLocale,\n messages: loadLocaleConfig(),\n // Todo: Workaround for https://github.com/kazupon/vue-i18n/issues/563\n postTranslation: (value, path) => {\n if (value === \"\") {\n const parts = path.split('.');\n let message = i18n.messages[CONFIG.fallbackLocale];\n for (const key of parts) {\n if (key in message) {\n message = message[key];\n }\n else {\n return value;\n }\n }\n return message;\n }\n return value;\n }\n});\nexport default i18n;\n\nexport function loadDefaultMessages() {\n return Promise.all([\n loadMessages(CONFIG.locale),\n loadMessages(CONFIG.fallbackLocale)\n ]);\n}\n\nexport async function loadMessages(locale) {\n // Check whether the language has already been loaded\n // Note that a languages key is already present thus check >1 and not >0\n if (Utils.size(i18n.messages[locale]) > 1) {\n return;\n }\n const messages = (await import(`./locales/${locale}/default.js`)).default;\n i18n.mergeLocaleMessage(locale, messages);\n}\n\nexport async function executeCustomFunctions(locale) {\n const customizeFiles = LOCALE_CONFIG[locale].customize;\n if (Utils.size(LOCALE_CONFIG[locale].customize) === 0) {\n return;\n }\n const p = customizeFiles.map(async (file) => {\n const fn = (await import(`./locales/${locale}/${file}`)).default;\n return await fn(locale);\n });\n return Promise.all(p);\n}\n\nexport function translateFields(value, vars = null) {\n if (typeof value !== 'string' || value.length === 0) {\n return value;\n }\n let key = `fields.${value}`;\n if (i18n.te(key)) {\n return i18n.t(key, null, vars);\n }\n return Fields.format(value, vars);\n}\n","// This code is based on https://github.com/cherry-projects/locale-id\n// Due to the \"heavy\" dependencies, it has been slimmed down\n\n// http://userguide.icu-project.org/locale\nexport default function parse(locale) {\n if (!locale) {\n return undefined;\n }\n\n // extract keyword\n const stringLocale = String(locale);\n const keywordPos = stringLocale.indexOf('@');\n\n const keyword = keywordPos !== -1\n ? stringLocale.substr(keywordPos + 1)\n : undefined;\n\n const localeWithoutKeyword = keywordPos !== -1\n ? stringLocale.substr(0, keywordPos)\n : stringLocale;\n\n // en-us => en_us\n const parts = String(localeWithoutKeyword)\n .replace(/-/g, '_')\n .split('_');\n\n if (!parts.length || parts.length > 4) {\n return undefined;\n }\n\n const language = parts.shift();\n if (!language) {\n return undefined;\n }\n\n const retVar = {\n keyword,\n language: language.toLowerCase(),\n };\n\n if (!parts.length) {\n return retVar;\n }\n\n if (parts.length === 3) {\n const variant = parts.pop();\n if (variant) {\n retVar.variant = variant.toUpperCase();\n }\n }\n\n let country = parts.pop();\n if (country.length > 3) {\n retVar.keyword = country;\n\n country = parts.pop();\n }\n\n if (country) {\n retVar.country = country.toUpperCase();\n }\n\n if (!parts.length) {\n return retVar;\n }\n\n const script = parts.pop();\n if (typeof script === 'string' && script.length >= 1) {\n retVar.script = script[0].toUpperCase() + script.substring(1).toLowerCase();\n }\n\n return retVar;\n}\n\nexport function normalize(locale, delimeter = '_') {\n const obj = parse(locale);\n if (!obj) {\n return obj;\n }\n\n let result = obj.language;\n\n if (obj.script) {\n result += `${delimeter}${obj.script}`;\n }\n\n if (obj.country) {\n result += `${delimeter}${obj.country}`;\n }\n\n return result;\n}\n\nconst splitAcceptLanguageRegEx = /([a-z]{1,8}(-[a-z]{1,8})?)\\s*(;\\s*q\\s*=\\s*(1|0\\.[0-9]+))?/ig;\nconst acceptLanguageItemRegEx = /^([a-z]{1,8}(-[a-z]{1,8})?)/i;\n\nexport function normalizeAcceptLanguage(acceptLanguage) {\n const returnItems = [];\n if (!acceptLanguage) {\n return returnItems;\n }\n\n const items = acceptLanguage.match(splitAcceptLanguageRegEx) || [];\n items.forEach(acceptLanguageItem => {\n const matches = acceptLanguageItem.match(acceptLanguageItemRegEx) || [];\n const locale = normalize(matches[0]);\n if (locale) {\n returnItems.push(locale);\n }\n });\n\n return returnItems;\n}\n\nexport function prepareSupported(supported) {\n const lgs = {};\n\n supported.forEach(supportedLocale => {\n const { language, country } = parse(supportedLocale);\n if (!language) {\n throw new Error(`Locale ${supportedLocale} is not parsable`);\n }\n\n if (!lgs[language]) {\n lgs[language] = {\n countries: {},\n firstCountry: undefined,\n main: undefined,\n };\n }\n\n const lg = lgs[language];\n if (country) {\n lg.countries[country] = supportedLocale;\n\n if (!lg.firstCountry) {\n lg.firstCountry = supportedLocale;\n }\n } else {\n lg.main = supportedLocale;\n }\n });\n\n return lgs;\n}\n\nexport function getBest(supported, locale, defaultLocale, getAnyCountry) {\n const lgs = Array.isArray(supported) ? prepareSupported(supported) : supported;\n\n // return defaultLocale if current locale is undefined\n if (!locale && defaultLocale) {\n return getBest(supported, defaultLocale, undefined, getAnyCountry);\n }\n\n if (!locale) {\n return undefined;\n }\n\n const { language, country } = parse(locale);\n if (!language) {\n return defaultLocale;\n }\n\n // selected locale is not supported\n if (!lgs[language]) {\n if (locale === defaultLocale) {\n return undefined;\n }\n\n return getBest(supported, defaultLocale, null, getAnyCountry);\n }\n\n const { countries, main = defaultLocale, firstCountry } = lgs[language];\n if (!countries || !country) {\n if (getAnyCountry && firstCountry) {\n return firstCountry;\n }\n\n return main;\n }\n\n if (getAnyCountry && firstCountry) {\n return countries[country] ? countries[country] : firstCountry;\n }\n\n return countries[country] ? countries[country] : main;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{attrs:{\"id\":\"stac-browser\"}},[(_vm.showLogin)?_c('Authentication'):_vm._e(),(_vm.globalError)?_c('ErrorAlert',_vm._b({staticClass:\"global-error\",attrs:{\"dismissible\":\"\"},on:{\"close\":_vm.hideError}},'ErrorAlert',_vm.globalError,false)):_vm._e(),(_vm.sidebar)?_c('Sidebar'):_vm._e(),_c('header',[_c('div',{staticClass:\"logo\"},[_vm._v(_vm._s(_vm.displayCatalogTitle))]),_c('StacHeader',{on:{\"enableSidebar\":function($event){_vm.sidebar = true}}})],1),_c('router-view'),_c('footer',[_c('i18n',{staticClass:\"poweredby text-muted\",attrs:{\"tag\":\"small\",\"path\":\"poweredBy\"},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('a',{attrs:{\"href\":\"https://github.com/radiantearth/stac-browser\",\"target\":\"_blank\"}},[_vm._v(\"STAC Browser\")]),_vm._v(\" \"+_vm._s(_vm.browserVersion)+\" \")]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('main',{staticClass:\"browse d-flex flex-column\"},[(!_vm.allowExternalAccess && _vm.isExternal)?_c('b-alert',{attrs:{\"show\":\"\"}},[_vm._v(_vm._s(_vm.$t('errors.noExternalAccess')))]):(_vm.error)?_c('ErrorAlert',{attrs:{\"url\":_vm.url,\"description\":_vm.errorDescription,\"id\":_vm.errorId}}):(_vm.loading)?_c('Loading',{attrs:{\"stretch\":\"\"}}):_c(_vm.component,{tag:\"component\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,staticClass:\"item\"},[_c('b-row',[_c('b-col',{staticClass:\"left\"},[_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"card\":\"\",\"pills\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.selectedAsset,\"scrollWheelZoom\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1),(_vm.thumbnails.length > 0)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.additionalLinks.length > 0)?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks,\"context\":_vm.data}}):_vm._e()],1),_c('b-col',{staticClass:\"right\"},[_c('section',{staticClass:\"intro\"},[(_vm.data.properties.description)?_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]):_vm._e(),(_vm.data.properties.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data.properties['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data.properties['anon:warning']}}):_vm._e(),(_vm.data.properties.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.properties.description}})],1):_vm._e(),(Array.isArray(_vm.data.properties.keywords) && _vm.data.properties.keywords.length > 0)?_c('Keywords',{staticClass:\"mb-3\",attrs:{\"keywords\":_vm.data.properties.keywords}}):_vm._e()],1),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.data.properties.providers)?_c('Providers',{attrs:{\"providers\":_vm.data.properties.providers}}):_vm._e(),_c('Metadata',{attrs:{\"data\":_vm.data,\"type\":\"Item\",\"ignoreFields\":_vm.ignoredMetadataFields}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Utils from '../utils';\nimport { mapGetters } from 'vuex';\n\nexport default {\n data() {\n return {\n shownAssetsOnMap: [],\n shownBandsOnMap: [],\n tab: null,\n selectedAsset: null,\n selectedAssetKey: null\n };\n },\n computed: {\n ...mapGetters(['thumbnails', 'hasAssets', 'assets']),\n shownAssets() {\n if (this.tab === 0) {\n return this.shownAssetsOnMap;\n }\n else if (this.tab === 1 || (this.tab === null && this.thumbnails.length > 0)) {\n let keys = [];\n let thumbnailRefs = this.thumbnails.map(t => t.href);\n for(let key in this.assets) {\n let asset = this.assets[key];\n if (thumbnailRefs.includes(asset.href)) {\n keys.push(key);\n }\n }\n return keys;\n }\n return [];\n }\n },\n methods: {\n showAsset(asset, id, isThumbnail) {\n if (isThumbnail) {\n this.tab = 1;\n }\n else {\n this.tab = 0;\n this.selectedAsset = asset;\n this.selectedAssetKey = id;\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n if (this.$refs.tabs) {\n Utils.scrollTo(this.$refs.tabs.$el);\n }\n },\n dataChanged(data) {\n if (!Utils.isObject(data)) {\n this.shownBandsOnMap = [];\n this.shownAssetsOnMap = [];\n }\n else if (data.assets || data.bands) {\n if (Utils.size(data.assets) > 0) {\n if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n else {\n this.shownAssetsOnMap = data.assets.map(meta => meta.key);\n }\n }\n if (Utils.size(data.bands) > 0) {\n this.shownBandsOnMap = data.bands;\n }\n }\n else if (this.selectedAssetKey) {\n this.shownAssetsOnMap = [this.selectedAssetKey];\n }\n }\n }\n};\n","import Utils from './utils';\nimport STAC from './models/stac';\nimport URI from 'urijs';\nimport i18n from './i18n';\n\nfunction toBrowserUrl(url, store) {\n let path = store.getters.toBrowserPath(url);\n let uri = URI(window.location.origin.toString());\n if (store.state.historyMode === 'hash') {\n uri.path(store.state.pathPrefix);\n uri.fragment(path);\n }\n else {\n uri.path(Utils.removeTrailingSlash(store.state.pathPrefix) + path);\n }\n return uri.toString();\n}\n\nfunction addSpatialCoverage(schema, bbox) {\n if (Array.isArray(bbox) && bbox.length >= 4) {\n schema.spatialCoverage = {\n \"@type\": \"Place\",\n geo: {\n \"@type\": \"GeoShape\",\n box: (bbox || []).join(\" \")\n }\n };\n }\n}\n\nfunction formatTemporalCoverage(dates) {\n if (Array.isArray(dates) && dates.length === 2 && (typeof dates[0] === 'string' || typeof dates[1] === 'string')) {\n return dates.map(dt => dt ? dt : '..').join('/');\n }\n return null;\n}\n\nfunction makeAssets(data) {\n if (Utils.size(data.assets) > 0) {\n return Object.values(data.assets).map(a => ({\n \"@type\": \"DataDownload\",\n contentUrl: Utils.toAbsolute(a.href, data.getAbsoluteUrl()),\n encodingFormat: a.type,\n name: a.title\n }));\n }\n return [];\n}\n\nfunction makeLinks(links, data, store, type = \"DataCatalog\") {\n return links.map(link => {\n let name, isBasedOn;\n if (link instanceof STAC) {\n name = STAC.getDisplayTitle(link);\n isBasedOn = link.getAbsoluteUrl();\n }\n else {\n name = link.title;\n isBasedOn = Utils.toAbsolute(link.href, data.getAbsoluteUrl());\n }\n let obj = {\n \"@type\": type,\n name,\n url: toBrowserUrl(isBasedOn, store),\n isBasedOn\n };\n if (type === 'Dataset') {\n obj.description = fallbackDescription(link, store);\n }\n return obj;\n });\n}\n\nfunction makeProvider(providers, role) {\n return providers\n .filter(p => Utils.isObject(p) && Array.isArray(p.roles) && p.roles.includes(role))\n .map(p => ({\n \"@type\": \"Organization\",\n \"name\": p.name,\n \"description\": p.description,\n \"url\": p.url,\n \"email\": p.email || p.mail,\n }));\n}\n\nfunction fallbackDescription(data, store) {\n let stacType, container;\n if (data instanceof STAC) {\n stacType = data.isItem() ? \"Item\" : data.type;\n container = data.collection;\n }\n else if (Utils.isObject(data) && data.rel === 'item') {\n stacType = \"Item\";\n }\n if (stacType) {\n let type = i18n.tc(`stac${stacType}`);\n let inX = i18n.t('in', {catalog: container || store.catalogTitle});\n return `SpatioTemporal Asset Catalog (STAC)\\n${type} - ${data.id} ${inX}`;\n }\n}\n\nfunction createBaseSchema(data, type, store) {\n let name = STAC.getDisplayTitle(data);\n let stacUrl = data.getAbsoluteUrl();\n let url = toBrowserUrl(stacUrl, store);\n let inLanguage = data.getMetadata('language')?.code;\n let thumbnails = data.getThumbnails(true);\n let thumbnailUrl;\n if (thumbnails.length > 0) {\n thumbnailUrl = Utils.toAbsolute(thumbnails[0].href, data.getAbsoluteUrl());\n }\n let license = data.getMetadata('license');\n if (license && license !== 'proprietary' && license !== 'various' && license !== 'other') {\n license = `https://spdx.org/licenses/${license}.html`;\n }\n else {\n license = data.getLinkWithRel('license')?.href;\n }\n if (license) {\n license = Utils.toAbsolute(license, data.getAbsoluteUrl());\n }\n\n let providers = data.getMetadata('providers');\n let copyrightHolder; // licensor\n let producer; // producer\n let provider; // host\n let creator; // processor\n if (Utils.size(providers) > 0) {\n copyrightHolder = makeProvider(providers, \"licensor\");\n producer = makeProvider(providers, \"producer\");\n provider = makeProvider(providers, \"host\");\n creator = makeProvider(providers, \"processor\");\n }\n\n return {\n \"@context\": \"https://schema.org/\",\n \"@type\": type,\n name,\n description: data.getMetadata(\"description\") || fallbackDescription(data, store),\n citation: data.getMetadata(\"sci:citation\"),\n identifier: data.getMetadata(\"sci:doi\") || data.id,\n keywords: data.getMetadata(\"keywords\"),\n license,\n url,\n isBasedOn: stacUrl,\n dateCreated: data.getMetadata('created'),\n dateModified: data.getMetadata('updated'),\n datePublished: data.getMetadata('published'),\n expires: data.getMetadata('expires'),\n inLanguage,\n thumbnailUrl,\n version: data.getMetadata('version'),\n image: thumbnailUrl,\n copyrightHolder,\n producer,\n provider,\n creator\n };\n}\n\nexport function createCatalogSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n // Remove invalid links\n parents = parents.filter(link => Utils.isObject(link));\n if (parents.length > 1) {\n // Remove duplicates\n parents = parents.filter((link, i) => parents.findIndex(p => p.isBasedOn === link.isBasedOn) !== i);\n }\n\n let schema = createBaseSchema(data, 'DataCatalog', store);\n\n if (data.isCollection()) {\n if (data.extent?.temporal?.interval.length > 0) {\n schema.temporalCoverage = formatTemporalCoverage(data.extent.temporal.interval[0]);\n }\n\n if (data.extent?.spatial?.bbox.length > 0) {\n addSpatialCoverage(schema, data.extent.spatial.bbox[0]);\n }\n schema.associatedMedia = makeAssets(data);\n }\n\n schema.hasPart = makeLinks(store.getters.catalogs, data, store);\n schema.dataset = makeLinks(store.getters.items, data, store, \"Dataset\");\n schema.isPartOf = makeLinks(parents, data, store);\n\n return schema;\n}\n\nexport function createItemSchema(data, parents, store) {\n if (!(data instanceof STAC)) {\n return null;\n }\n parents = parents.filter(link => Utils.isObject(link));\n\n let schema = createBaseSchema(data, 'Dataset', store);\n\n schema.includedInDataCatalog = makeLinks(parents, data, store);\n\n let start = data.getMetadata('start_datetime');\n let end = data.getMetadata('end_datetime');\n if (start || end) {\n schema.temporalCoverage = formatTemporalCoverage([start, end]);\n }\n else {\n schema.temporalCoverage = data.getMetadata('datetime');\n }\n\n addSpatialCoverage(schema, data.bbox);\n schema.distribution = makeAssets(data);\n\n return schema;\n}\n\nexport function addSchemaToDocument(doc, schema) {\n let id = 'schema-org';\n let element = doc.getElementById(id);\n if (!element) {\n element = doc.createElement('script');\n element.type = 'application/ld+json';\n element.id = id;\n doc.head.appendChild(element);\n }\n element.innerText = JSON.stringify(schema);\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=5a87283c\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\nimport style0 from \"./Item.vue?vue&type=style&index=0&id=5a87283c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{key:_vm.data.id,class:{cc: true, [_vm.cssStacType]: true, mixed: _vm.hasCatalogs && _vm.hasItems, empty: !_vm.hasCatalogs && !_vm.hasItems}},[_c('b-row',[_c('b-col',{staticClass:\"meta\"},[_c('section',{staticClass:\"intro\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('description')))]),(_vm.data.deprecated)?_c('DeprecationNotice',{attrs:{\"data\":_vm.data}}):_vm._e(),(_vm.data['anon:warning'])?_c('AnonymizedNotice',{attrs:{\"warning\":_vm.data['anon:warning']}}):_vm._e(),(_vm.data.description)?_c('ReadMore',{attrs:{\"lines\":10,\"text\":_vm.$t('read.more'),\"text-less\":_vm.$t('read.less')}},[_c('Description',{attrs:{\"description\":_vm.data.description}})],1):_vm._e(),(Array.isArray(_vm.data.keywords) && _vm.data.keywords.length > 0)?_c('Keywords',{staticClass:\"mb-3\",attrs:{\"keywords\":_vm.data.keywords}}):_vm._e(),(_vm.isCollection)?_c('section',{staticClass:\"metadata mb-4\"},[(_vm.licenses)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.license')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.licenses)}})])],1):_vm._e(),(_vm.temporalExtents)?_c('b-row',[_c('b-col',{staticClass:\"label\",attrs:{\"md\":\"4\"}},[_vm._v(_vm._s(_vm.$t('catalog.temporalExtent')))]),_c('b-col',{staticClass:\"value\",attrs:{\"md\":\"8\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.temporalExtents)}})])],1):_vm._e()],1):_vm._e(),(_vm.linkPosition === 'left')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks,\"context\":_vm.data}}):_vm._e()],1),(_vm.isCollection || _vm.hasThumbnails)?_c('section',{staticClass:\"mb-4\"},[_c('b-card',{staticClass:\"maps-preview\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{ref:\"tabs\",attrs:{\"pills\":\"\",\"card\":\"\",\"vertical\":\"\",\"end\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(_vm.isCollection)?_c('b-tab',{attrs:{\"title\":_vm.$t('map'),\"no-body\":\"\"}},[_c('Map',{attrs:{\"stac\":_vm.data,\"stacLayerData\":_vm.mapData,\"fitBoundsOnce\":\"\",\"popover\":\"\"},on:{\"dataChanged\":_vm.dataChanged}})],1):_vm._e(),(_vm.hasThumbnails)?_c('b-tab',{attrs:{\"title\":_vm.$t('thumbnails'),\"no-body\":\"\"}},[_c('Thumbnails',{attrs:{\"thumbnails\":_vm.thumbnails}})],1):_vm._e()],1)],1)],1):_vm._e(),(_vm.hasAssets)?_c('Assets',{attrs:{\"assets\":_vm.assets,\"context\":_vm.data,\"shown\":_vm.shownAssets},on:{\"showAsset\":_vm.showAsset}}):_vm._e(),(_vm.hasItemAssets && !_vm.hasItems)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"context\":_vm.data,\"definition\":true}}):_vm._e(),(_vm.providers)?_c('Providers',{attrs:{\"providers\":_vm.providers}}):_vm._e(),_c('Metadata',{staticClass:\"mb-4\",attrs:{\"type\":_vm.data.type,\"data\":_vm.data,\"ignoreFields\":_vm.ignoredMetadataFields}}),(_vm.collectionLink)?_c('CollectionLink',{attrs:{\"link\":_vm.collectionLink}}):_vm._e(),(_vm.linkPosition === 'right')?_c('Links',{attrs:{\"title\":_vm.$t('additionalResources'),\"links\":_vm.additionalLinks,\"context\":_vm.data}}):_vm._e()],1),(_vm.hasCatalogs)?_c('b-col',{staticClass:\"catalogs-container\"},[_c('Catalogs',{attrs:{\"catalogs\":_vm.catalogs,\"hasMore\":!!_vm.nextCollectionsLink},on:{\"loadMore\":_vm.loadMoreCollections}})],1):_vm._e(),(_vm.hasItems)?_c('b-col',{staticClass:\"items-container\"},[_c('Items',{attrs:{\"stac\":_vm.data,\"items\":_vm.items,\"api\":_vm.isApi,\"showFilters\":_vm.showFilters,\"apiFilters\":_vm.filters,\"pagination\":_vm.itemPages,\"loading\":_vm.apiItemsLoading},on:{\"paginate\":_vm.paginateItems,\"filterItems\":_vm.filterItems,\"filtersShown\":_vm.filtersShown}}),(_vm.hasItemAssets)?_c('Assets',{attrs:{\"assets\":_vm.data.item_assets,\"context\":_vm.data,\"definition\":true}}):_vm._e()],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Catalog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Catalog.vue?vue&type=template&id=41cf114e\"\nimport script from \"./Catalog.vue?vue&type=script&lang=js\"\nexport * from \"./Catalog.vue?vue&type=script&lang=js\"\nimport style0 from \"./Catalog.vue?vue&type=style&index=0&id=41cf114e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Browse.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Browse.vue?vue&type=template&id=21cc23bf\"\nimport script from \"./Browse.vue?vue&type=script&lang=js\"\nexport * from \"./Browse.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Browse from '../views/Browse.vue';\n\nfunction getPath(route, config) {\n let path = route.params.pathMatch;\n if (config.allowExternalAccess && path.startsWith(\"external/\")) {\n path = '/' + path;\n }\n return {path};\n}\n\nfunction getRoutes(config) {\n let routes = [];\n\n if (!config.catalogUrl) {\n routes.push({\n path: \"/\",\n name: \"select\",\n component: () => import(\"../views/SelectDataSource.vue\")\n });\n routes.push({\n path: \"/search/external/(.*)\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\"),\n props: route => {\n return {\n loadParent: `/external/${route.params.pathMatch}`\n };\n }\n });\n }\n else {\n routes.push({\n path: \"/search\",\n name: \"search\",\n component: () => import(\"../views/Search.vue\")\n });\n }\n\n routes.push({\n path: '/auth/logout',\n name: \"logout\",\n component: () => import(\"../views/Logout.vue\")\n });\n routes.push({\n path: '/auth',\n component: () => import(\"../views/LoginCallback.vue\")\n });\n\n routes.push({\n path: \"/validation/(.*)\",\n name: \"validation\",\n component: () => import(\"../views/Validation.vue\"),\n props: route => getPath(route, config)\n });\n\n routes.push({\n path: \"/(.*)\",\n name: \"browse\",\n component: Browse,\n props: route => getPath(route, config)\n });\n\n return routes;\n}\n\nexport default getRoutes;\n","import Auth from '../auth';\nimport i18n from '../i18n';\nimport AuthUtils from '../components/auth/utils';\nimport BrowserStorage, { Cookies } from '../browser-store';\n\nconst handleAuthError = async (cx, error) => {\n cx.commit('showGlobalError', {\n error,\n message: i18n.t('errors.authFailed')\n }, { root: true });\n await cx.dispatch('updateCredentials');\n};\n\nexport default function getStore(router) {\n return {\n namespaced: true,\n state: {\n // Wrap in a function and use the getter instead of the state\n // Unfortunately, some auth libraries have internal state, which vuex doesn't like\n // and thus reports: \"do not mutate vuex store state outside mutation handlers.\"\n method: () => new Auth(),\n actions: [],\n credentials: null,\n inProgress: false\n },\n getters: {\n method(state) {\n return state.method();\n },\n canAuthenticate(state, getters, rootState) {\n return AuthUtils.isSupported(getters.method, rootState);\n },\n isLoggedIn(state) {\n return state.credentials !== null;\n },\n showLogin(state, getters) {\n return !getters.isLoggedIn && state.inProgress;\n }\n },\n mutations: {\n setCredentials(state, credentials) {\n state.credentials = credentials; // e.g. Username + Password or a Bearer Token\n },\n setMethod(state, method) {\n state.method = () => method;\n },\n addAction(state, callback) {\n state.actions.push(callback);\n },\n resetActions(state) {\n state.actions = [];\n },\n setInProgress(state, inProgress = true) {\n state.inProgress = inProgress;\n }\n },\n actions: {\n async waitForAuth(cx) {\n if (Auth.equals(cx.getters.method, cx.rootState.authConfig)) {\n return;\n }\n await cx.dispatch('updateMethod', cx.rootState.authConfig);\n },\n async updateMethod(cx, config) {\n config = AuthUtils.convertLegacyAuthConfig(config);\n if (!Auth.equals(cx.getters.method, config)) {\n await cx.getters.method.close();\n }\n\n const changeListener = async (isLoggedIn, credentials) => {\n if (!isLoggedIn) {\n credentials = null;\n }\n await cx.dispatch('updateCredentials', credentials);\n if (isLoggedIn) {\n await cx.dispatch('executeActions');\n }\n else {\n cx.commit('resetActions');\n }\n };\n \n const storage = new BrowserStorage(true);\n storage.set('authConfig', config);\n\n const newAuth = await Auth.create(config, changeListener, router);\n cx.commit('setMethod', newAuth);\n },\n async requestLogin(cx) {\n if (cx.getters.isLoggedIn) {\n return;\n }\n cx.commit('setInProgress');\n try {\n await cx.getters.method.login();\n } catch(error) {\n handleAuthError(cx, error);\n }\n },\n async finalizeLogin(cx, credentials = null) {\n cx.commit('setInProgress', false);\n try {\n await cx.getters.method.confirmLogin(credentials);\n } catch(error) {\n handleAuthError(cx, error);\n }\n },\n async abortLogin(cx) {\n cx.commit('setInProgress', false);\n },\n async requestLogout(cx) {\n if (!cx.getters.isLoggedIn) {\n return;\n }\n cx.commit('setInProgress');\n await cx.getters.method.logout();\n },\n async finalizeLogout(cx) {\n cx.commit('setInProgress', false);\n try {\n await cx.getters.method.confirmLogout();\n } catch(error) {\n handleAuthError(cx, error);\n }\n },\n // Format the value and add it to query parameters or headers\n async updateCredentials(cx, value = null) {\n cx.commit('setCredentials', value);\n const intent = cx.getters.method.updateStore(value);\n if (intent.query) {\n cx.commit('setQueryParameter', intent.query, { root: true });\n }\n else if (intent.header) {\n cx.commit('setRequestHeader', intent.header, { root: true });\n }\n else if (intent.cookie) {\n const cookie = new Cookies(true);\n cookie.setItem(intent.cookie.key, intent.cookie.value);\n }\n },\n async executeActions(cx) {\n for (let callback of cx.state.actions) {\n try {\n const p = callback();\n if (p instanceof Promise) {\n p.catch(error => handleAuthError(cx, error));\n }\n } catch (error) {\n handleAuthError(cx, error);\n }\n }\n cx.commit('resetActions');\n }\n }\n };\n}\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\n\nimport URI from \"urijs\";\n\nimport i18n from '../i18n';\nimport { stacBrowserSpecialHandling } from \"../rels\";\nimport Utils, { BrowserError } from '../utils';\nimport STAC from '../models/stac';\n\nimport auth from './auth.js';\nimport { addQueryIfNotExists, isAuthenticationError, Loading, processSTAC, proxyUrl, unproxyUrl, stacRequest } from './utils';\nimport { getBest } from '../locale-id';\nimport I18N from '@radiantearth/stac-fields/I18N';\nimport { translateFields, executeCustomFunctions, loadMessages } from '../i18n';\nimport { TYPES } from \"../components/ApiCapabilitiesMixin\";\nimport BrowserStorage from \"../browser-store.js\";\n\nfunction getStore(config, router) {\n // Local settings (e.g. for currently loaded STAC entity)\n const localDefaults = () => ({\n url: '',\n title: config.catalogTitle,\n description: null,\n data: null,\n parents: null,\n globalError: null,\n\n localRequestQueryParameters: {},\n stateQueryParameters: {\n language: null,\n asset: [],\n itemdef: []\n },\n\n apiItems: [],\n apiItemsLink: null,\n apiItemsPagination: {}\n });\n\n const catalogDefaults = () => ({\n queue: [],\n privateQueryParameters: {},\n authActions: [],\n conformsTo: [],\n dataLanguage: null,\n dataLanguages: [],\n\n apiCollections: [],\n apiItemsLoading: {},\n nextCollectionsLink: null\n });\n\n return new Vuex.Store({\n strict: process.env.NODE_ENV !== 'production',\n modules: {\n auth: auth(router)\n },\n state: Object.assign({}, config, localDefaults(), catalogDefaults(), {\n // Global settings\n database: {}, // STAC object, Error object or Loading object or Promise (when loading)\n allowSelectCatalog: !config.catalogUrl,\n globalRequestQueryParameters: config.requestQueryParameters,\n uiLanguage: config.locale\n }),\n getters: {\n loading: state => !state.url || !state.data || state.database[state.url] instanceof Loading,\n getApiItemsLoading: state => data => {\n let id = '';\n if (data instanceof Loading) {\n return true;\n }\n else if (data instanceof STAC) {\n id = data.id;\n }\n else if (typeof data === 'string') {\n id = data;\n }\n return state.apiItemsLoading[id] || false;\n },\n error: state => state.database[state.url] instanceof Error ? state.database[state.url] : null,\n getStac: state => (source, returnErrorObject = false) => {\n if (source instanceof STAC) {\n return source;\n }\n if (Utils.isObject(source) && Utils.hasText(source.href)) {\n source = source.href;\n }\n if (!Utils.hasText(source)) {\n return null;\n }\n let absoluteUrl = Utils.toAbsolute(source, state.url);\n let data = state.database[absoluteUrl];\n if (data instanceof STAC || (returnErrorObject && data instanceof Error)) {\n return data;\n }\n else {\n return null;\n }\n },\n\n displayCatalogTitle: (state, getters) => STAC.getDisplayTitle(getters.root, state.catalogTitle),\n\n isCollection: state => state.data?.isCollection() || false,\n isCatalog: state => state.data?.isCatalog() || false,\n isCatalogLike: state => state.data?.isCatalogLike() || false,\n isItem: state => state.data?.isItem() || false,\n\n root: (_, getters) => getters.getStac(getters.rootLink),\n\n rootLink: state => {\n let link = state.data?.getStacLinkWithRel('root');\n if (link) {\n return link;\n }\n else if (state.catalogUrl) {\n return Utils.createLink(state.catalogUrl, 'root');\n }\n else if (state.url && state.data instanceof STAC && state.data.getLinksWithRels(['conformance', 'service-desc', 'service-doc', 'data', 'search']).length > 0) {\n return Utils.createLink(state.url, 'root');\n }\n else if (state.url) {\n // Fallback: If we detect OGC API like paths, try to guess the paths\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n if (path === 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n }\n return Utils.createLink(uri.toString(), 'root');\n }\n }\n return null;\n },\n parentLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data.getStacLinkWithRel('parent');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (['collections', 'items'].includes(path)) {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'parent');\n }\n }\n\n return null;\n },\n collectionLink: state => {\n if (state.data instanceof STAC) {\n let link = state.data?.getStacLinkWithRel('collection');\n if (link) {\n return link;\n }\n }\n\n // Fallback: If we detect OGC API like paths, try to guess the paths\n if (state.url) {\n let uri = URI(state.url);\n let path = uri.segment(-2);\n if (path == 'items') {\n uri.segment(-1, \"\");\n uri.segment(-1, \"\");\n return Utils.createLink(uri.toString(), 'collection');\n }\n }\n\n return null;\n },\n supportsConformance: state => classes => {\n if(!Array.isArray(classes)) {\n return classes;\n }\n let classRegexp = classes\n .map(c => c.replaceAll('*', '[^/]+').replace(/\\/?#/, '/?#'))\n .join('|');\n let regexp = new RegExp('^(' + classRegexp + ')$');\n return Boolean(state.conformsTo.find(uri => uri.match(regexp)));\n },\n supportsExtension: state => schemaUri => {\n return Utils.supportsExtension(state.data, schemaUri);\n },\n\n canSearch: (state, getters) => {\n return getters.canSearchCollections || getters.canSearchItems;\n },\n canSearchItems: (state, getters) => {\n return getters.supportsConformance(TYPES.Global.BasicFilters);\n },\n canSearchCollections: (state, getters) => {\n return getters.supportsConformance(TYPES.Collections.BasicFilters);\n },\n\n items: state => {\n if (state.apiItems.length > 0) {\n return state.apiItems;\n }\n else if (state.data) {\n return state.data.getStacLinksWithRel('item');\n }\n return [];\n },\n catalogs: state => {\n let hasCollections = Boolean(state.data instanceof STAC && state.data.getApiCollectionsLink() && state.apiCollections.length > 0);\n let hasChilds = Boolean(state.data instanceof STAC);\n let showCollections = !state.apiCatalogPriority || state.apiCatalogPriority === 'collections';\n let showChilds = !state.apiCatalogPriority || state.apiCatalogPriority === 'childs';\n let catalogs = [];\n if (hasCollections && showCollections) {\n catalogs = catalogs.concat(state.apiCollections);\n }\n if (hasChilds && showChilds) {\n catalogs = STAC.addMissingChildren(catalogs, state.data);\n }\n return catalogs;\n },\n\n // hasAsset also checks whether the assets have a href and thus are not item asset definitions\n hasAssets: (state, getters) => Boolean(Object.values(getters.assets).find(asset => Utils.isObject(asset) && typeof asset.href === 'string')),\n assets: (state, getters) => {\n if (!Utils.isObject(state.data?.assets)) {\n return {};\n }\n else if (state.showThumbnailsAsAssets) {\n return state.data.assets;\n }\n else {\n let assets = {};\n let thumbnails = getters.thumbnails;\n for (let key in state.data.assets) {\n let asset = state.data.assets[key];\n if (!thumbnails.includes(asset)) {\n assets[key] = asset;\n }\n }\n return assets;\n }\n },\n thumbnails: state => state.data ? state.data.getThumbnails(true) : [],\n additionalLinks: state => state.data ? state.data.getLinksWithOtherRels(stacBrowserSpecialHandling).filter(link => link.rel !== 'preview' || !Utils.canBrowserDisplayImage(link)) : [],\n\n toBrowserPath: (state, getters) => url => {\n if (!Utils.hasText(url)) {\n url = '/';\n }\n\n let absolute = Utils.toAbsolute(unproxyUrl(url, state.stacProxyUrl), state.url, false);\n let relative;\n if (!state.allowSelectCatalog && state.catalogUrl) {\n relative = absolute.relativeTo(state.catalogUrl);\n }\n\n if (typeof relative === 'undefined' || getters.isExternalUrl(absolute, false)) {\n if (!state.allowExternalAccess) {\n return absolute.toString();\n }\n let parts = ['/external'];\n let protocol = absolute.protocol();\n if (protocol !== 'https') {\n parts.push(protocol + ':');\n }\n parts.push(absolute.authority());\n parts.push(absolute.path().replace(/^\\//, ''));\n let path = parts.join('/');\n let q = absolute.query();\n if (q) {\n path += `?${q}`;\n }\n return path;\n }\n else {\n return '/' + relative.toString();\n }\n },\n fromBrowserPath: (state, getters) => url => {\n const externalRE = /^\\/(search\\/)?external\\//;\n if (!Utils.hasText(url) || url === '/') {\n url = state.catalogUrl;\n }\n else if (url.match(externalRE)) {\n let parts = url.replace(externalRE, '').split('/');\n let protocol;\n if (!parts[0].endsWith(':')) {\n protocol = 'https:';\n }\n else {\n protocol = parts.shift();\n }\n url = `${protocol}//${parts.join('/')}`;\n }\n else if (!state.allowSelectCatalog && state.catalogUrl) {\n url = Utils.toAbsolute(url, state.catalogUrl, false);\n }\n return getters.getRequestUrl(url, null, true);\n },\n isExternalUrl: state => (absoluteUrl, whitelist = true) => {\n if (!state.catalogUrl) {\n return false;\n }\n if (!(absoluteUrl instanceof URI)) {\n absoluteUrl = URI(absoluteUrl);\n }\n if (whitelist && Array.isArray(state.allowedDomains) && state.allowedDomains.includes(absoluteUrl.domain())) {\n return false;\n }\n let relative;\n if (absoluteUrl.is(\"relative\")) {\n relative = absoluteUrl;\n }\n else {\n relative = absoluteUrl.relativeTo(state.catalogUrl);\n if (relative.equals(absoluteUrl)) {\n return true;\n }\n }\n let relativeStr = relative.toString();\n return relativeStr.startsWith('//') || relativeStr.startsWith('../');\n },\n getRequestUrl: (state, getters) => (url, baseUrl = null, addLocalQueryParams = false) => {\n let absoluteUrl = Utils.toAbsolute(proxyUrl(url, state.stacProxyUrl), baseUrl ? baseUrl : state.url, false);\n if (!getters.isExternalUrl(absoluteUrl)) {\n // Check whether private params are present and add them if the URL is part of the catalog\n addQueryIfNotExists(absoluteUrl, state.privateQueryParameters);\n // Check if we need to add global request params\n addQueryIfNotExists(absoluteUrl, state.globalRequestQueryParameters);\n if (addLocalQueryParams) {\n // Check if we need to add local request params\n addQueryIfNotExists(absoluteUrl, state.localRequestQueryParameters);\n }\n }\n // If we are proxying a STAC Catalog, replace any URI with the proxied address.\n return absoluteUrl.toString();\n },\n\n acceptedLanguages: state => {\n const languages = {};\n // Implement in ascending order:\n languages['en'] = 0.1;\n if (Array.isArray(state.supportedLocales)) {\n state.supportedLocales.forEach(locale => languages[locale] = 0.2);\n }\n if (Utils.hasText(state.fallbackLocale)) {\n languages[state.fallbackLocale] = 0.5;\n }\n if (Array.isArray(navigator.languages)) {\n navigator.languages.forEach(locale => languages[locale] = 0.7);\n }\n if (Utils.hasText(state.locale)) {\n languages[state.locale] = 1;\n }\n return Object.entries(languages)\n .sort((a,b) => {\n if (a[1] > b[1]) {\n return -1;\n }\n else if (a[1] < b[1]) {\n return 1;\n }\n return 0;\n })\n .map(([l, q]) => q >= 1 ? l : `${l};q=${q}`)\n .join(',');\n }\n },\n mutations: {\n config(state, config) {\n // This should only be called from the config action\n for (let key in config) {\n let value = config[key];\n switch (key) {\n case 'catalogTitle':\n state.catalogTitle = value;\n break;\n case 'catalogUrl':\n if (typeof value === 'function') {\n state.catalogUrl = value();\n }\n else if (typeof value === 'string') {\n state.catalogUrl = value;\n }\n break;\n case 'crossOriginMedia':\n state.crossOriginMedia = ['anonymous', 'use-credentials'].includes(value) ? value : null;\n break;\n case 'cardViewSort':\n switch(value) {\n case 'asc':\n state.cardViewSort = 1;\n break;\n case 'desc':\n state.cardViewSort = -1;\n break;\n default:\n state.cardViewSort = 0;\n }\n break;\n default:\n state[key] = value;\n }\n }\n },\n languages(state, {uiLanguage, dataLanguage}) {\n state.dataLanguage = dataLanguage || null;\n state.uiLanguage = uiLanguage || null;\n },\n setQueryParameter(state, { type, key, value }) {\n type = `${type}QueryParameters`;\n if (typeof value === 'undefined') {\n Vue.delete(state[type], key);\n }\n else {\n Vue.set(state[type], key, value);\n }\n },\n setRequestHeader(state, { key, value }) {\n if (typeof value === 'undefined') {\n Vue.delete(state.requestHeaders, key);\n }\n else {\n Vue.set(state.requestHeaders, key, value);\n }\n },\n requestAuth(state, callback) {\n if (typeof callback === 'function') {\n state.doAuth.push(callback);\n }\n else {\n state.doAuth = [];\n }\n },\n setAuthData(state, value) {\n state.authData = value;\n },\n state(state, newState) {\n state.stateQueryParameters = newState;\n },\n updateState(state, {type, value}) {\n if (value === null || typeof value === 'undefined') {\n Vue.delete(state.stateQueryParameters, type);\n }\n else {\n Vue.set(state.stateQueryParameters, type, value);\n }\n },\n openCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n // need to prevent duplicates because of the way the collapse v-model works\n if (idx === -1) {\n state.stateQueryParameters[type].push(uid);\n }\n },\n closeCollapsible(state, { type, uid }) {\n const idx = state.stateQueryParameters[type].indexOf(uid);\n if (idx > -1) {\n Vue.delete(state.stateQueryParameters[type], idx);\n }\n },\n updateLoading(state, { url, show }) {\n let data = state.database[url];\n Vue.set(data, 'show', show || data.show);\n },\n loading(state, { url, loading }) {\n Vue.set(state.database, url, loading);\n if (loading.show) {\n state.url = url;\n }\n },\n loaded(state, { url, data }) {\n Vue.set(state.database, url, processSTAC(state, data));\n },\n clear(state, url) {\n Vue.delete(state.database, url);\n },\n resetCatalog(state, clearAll) {\n Object.assign(state, catalogDefaults());\n Object.assign(state, localDefaults());\n if (!state.supportedLocales.includes(state.locale)) {\n state.locale = config.locale;\n }\n if (clearAll) {\n state.catalogUrl = config.catalogUrl;\n state.catalogTitle = config.catalogTitle;\n state.database = {};\n }\n },\n resetPage(state) {\n Object.assign(state, localDefaults());\n },\n setPageMetadata(state, { title, description }) {\n state.title = title;\n if (typeof description !== 'undefined') {\n state.description = description;\n }\n },\n showPage(state, { url, title, description, stac }) {\n if (!stac) {\n stac = state.database[url] || null;\n }\n state.url = url || null;\n state.data = stac instanceof STAC ? stac : null;\n state.description = description;\n\n // Set title\n if (title) {\n state.title = title;\n }\n else {\n state.title = STAC.getDisplayTitle(state.data, state.catalogTitle);\n if (state.data) {\n let description = state.data.getMetadata('description');\n if (Utils.hasText(description)) {\n state.description = description;\n }\n }\n }\n\n if (state.data) {\n let source = state.data.isItem() ? state.data.properties : state.data;\n let languages = Array.isArray(source.languages) ? source.languages.slice() : [];\n if (Utils.isObject(source.language)) {\n languages.unshift(source.language);\n }\n state.dataLanguages = languages.filter(lang => Utils.isObject(lang) && typeof lang.code === 'string');\n }\n },\n errored(state, { url, error }) {\n if (!(error instanceof Error)) {\n error = new Error(error);\n }\n Vue.set(state.database, url, error);\n },\n queue(state, url) {\n state.queue.push(url);\n },\n unqueue(state, url) {\n let i = state.queue.indexOf(url);\n if (i !== -1) {\n state.queue.splice(i, 1);\n }\n },\n removeFromQueue(state, num) {\n state.queue.splice(0, num);\n },\n setConformanceClasses(state, classes) {\n if (Array.isArray(classes)) {\n state.conformsTo = classes;\n }\n },\n setApiItemsLink(state, link) {\n state.apiItemsLink = link;\n },\n toggleApiItemsLoading(state, collectionId = '') {\n if (state.apiItemsLoading[collectionId]) {\n Vue.delete(state.apiItemsLoading, collectionId);\n }\n else {\n Vue.set(state.apiItemsLoading, collectionId, true);\n }\n },\n setApiItems(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.features)) {\n return;\n }\n let apiItems = data.features.map(feature => processSTAC(state, feature));\n\n if (show) {\n state.apiItems = apiItems;\n }\n\n // Handle pagination links\n let pages = Utils.getPaginationLinks(data);\n\n if (show) {\n state.apiItemsPagination = pages;\n }\n\n if (stac instanceof STAC) {\n // ToDo: Prev link only required when state.apiItems is not cached(?) -> cache apiItems?\n stac.setApiData(apiItems, pages.next, pages.prev);\n }\n },\n addApiCollections(state, { data, stac, show }) {\n if (!Utils.isObject(data) || !Array.isArray(data.collections)) {\n return;\n }\n\n let collections = data.collections.map(collection => processSTAC(state, collection));\n let nextLink = Utils.getLinkWithRel(data.links, 'next');\n if (show) {\n state.nextCollectionsLink = nextLink;\n state.apiCollections = state.apiCollections.concat(collections);\n }\n if (stac instanceof STAC) {\n stac.setApiData(collections, nextLink);\n }\n },\n resetApiItems(state, link) {\n state.apiItems = [];\n state.apiItemsLink = link;\n state.apiItemsPagination = {};\n },\n parents(state, parents) {\n state.parents = parents;\n },\n showGlobalError(state, error) {\n if(error) {\n console.trace(error);\n }\n state.globalError = error;\n }\n },\n actions: {\n async config(cx, config) {\n const oldConfig = Object.assign({}, cx.state);\n cx.commit('config', config);\n // React on config changes\n for (let key in config) {\n let value = cx.state[key];\n if (value !== oldConfig[key]) {\n continue;\n }\n switch (key) {\n case 'authConfig':\n await cx.dispatch('auth/updateMethod', value);\n break;\n }\n }\n },\n async switchLocale(cx, {locale, userSelected}) {\n await cx.dispatch('config', {locale});\n\n if (cx.state.storeLocale && userSelected) {\n const storage = new BrowserStorage();\n storage.set('locale', locale);\n }\n\n // Locale for UI\n let uiLanguage = getBest(cx.state.supportedLocales, locale, cx.state.fallbackLocale);\n // Locale for data\n let dataLanguageCodes = cx.state.dataLanguages.map(l => l.code);\n let dataLanguageFallback = cx.state.dataLanguages.length > 0 ? cx.state.dataLanguages[0].code : uiLanguage;\n let dataLanguage = getBest(dataLanguageCodes, locale, dataLanguageFallback);\n\n // Load messages\n await loadMessages(uiLanguage);\n\n // Update stac-fields\n I18N.setLocales([uiLanguage, cx.state.fallbackLocale]);\n I18N.setTranslator(translateFields);\n\n // Execute other custom functions required to localize\n await executeCustomFunctions(uiLanguage);\n\n cx.commit('languages', {dataLanguage, uiLanguage});\n cx.commit('setQueryParameter', { type: 'state', key: 'language', value: locale });\n },\n async loadBackground(cx, count) {\n let urls = cx.state.queue.slice(0, count);\n if (urls.length > 0) {\n let promises = [];\n for (let url of urls) {\n promises.push(cx.dispatch('load', { url }));\n }\n cx.commit('removeFromQueue', count);\n return await Promise.all(promises);\n }\n },\n async loadParents(cx) {\n if (!(cx.state.data instanceof STAC)) {\n cx.commit('parents', []);\n return;\n }\n\n let parents = [];\n let stac = cx.state.data;\n while (stac) {\n let parentLink = stac.getLinkWithRel('parent') || stac.getLinkWithRel('root');\n if (!parentLink) {\n break;\n }\n let url = Utils.toAbsolute(parentLink.href, stac.getAbsoluteUrl());\n await cx.dispatch('load', { url });\n let parentStac = cx.getters.getStac(url, true);\n if (parentStac instanceof Error) {\n cx.commit('parents', parentStac);\n return;\n }\n if (parentStac === stac) {\n break;\n }\n parents.push(parentStac);\n stac = parentStac;\n }\n cx.commit('parents', parents);\n },\n async tryLogin(cx, {url, action}) {\n cx.commit('clear', url);\n cx.commit('errored', { url, error: new BrowserError(i18n.t('authentication.unauthorized')) });\n if (action) {\n cx.commit('auth/addAction', action);\n }\n await cx.dispatch('auth/requestLogin');\n },\n async load(cx, args) {\n let { url, show, force, noRetry } = args;\n\n const path = cx.getters.toBrowserPath(url);\n url = Utils.toAbsolute(url, cx.state.url);\n\n // Make sure we have all authentication details\n await cx.dispatch(\"auth/waitForAuth\");\n\n if (force) {\n cx.commit('clear', url);\n }\n\n let loading = new Loading(show);\n let data = cx.state.database[url];\n if (data instanceof Loading) {\n cx.commit('updateLoading', { url, show });\n return;\n }\n\n const hasData = data instanceof STAC && !data.isPotentiallyIncomplete();\n if (!hasData) {\n cx.commit('loading', { url, loading });\n try {\n const response = await stacRequest(cx, url);\n if (!Utils.isObject(response.data)) {\n throw new BrowserError(i18n.t('errors.invalidJsonObject'));\n }\n data = new STAC(response.data, url, path);\n cx.commit('loaded', { url, data });\n\n if (show) {\n // If we prefer another language abort redirect to the new language\n let localeLink = data.getLocaleLink(cx.state.dataLanguage);\n if (localeLink) {\n router.replace(cx.getters.toBrowserPath(localeLink.href));\n return;\n }\n }\n\n // Handle conformance classes\n let conformanceLink = data.getStacLinkWithRel('conformance');\n if (Array.isArray(data.conformsTo) && data.conformsTo.length > 0) {\n cx.commit('setConformanceClasses', data.conformsTo);\n }\n else if (conformanceLink) {\n await cx.dispatch('loadOgcApiConformance', conformanceLink);\n }\n } catch (error) {\n if (!noRetry && cx.state.authConfig && isAuthenticationError(error)) {\n await cx.dispatch('tryLogin', {\n url,\n action: () => cx.dispatch('load', Object.assign({noRetry: true, force: true, show: true}, args))\n });\n return;\n }\n console.error(error);\n cx.commit('errored', { url, error });\n return;\n }\n }\n\n // Load API Collections\n if (data.getApiCollectionsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadNextApiCollections', args);\n } catch (error) {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiCollectionsFailed'),\n error\n });\n }\n }\n // Load API Items\n else if (data.getApiItemsLink()) {\n let args = { stac: data, show: loading.show };\n try {\n await cx.dispatch('loadApiItems', args);\n } catch (error) {\n cx.commit('showGlobalError', {\n message: i18n.t('errors.loadApiItemsFailed'),\n error\n });\n }\n }\n\n // Load the root catalog data if not available (e.g. after page refresh or external access)\n if (!cx.getters.root) {\n let catalogUrl = cx.state.catalogUrl;\n if (!catalogUrl) {\n const root = data.getLinkWithRel('root');\n if (root) {\n catalogUrl = Utils.toAbsolute(root.href, url);\n await cx.dispatch('config', { catalogUrl });\n }\n }\n if (catalogUrl) {\n await cx.dispatch(\"load\", { url: catalogUrl });\n }\n }\n\n // All tasks finished, show the page if requested\n if (loading.show) {\n cx.commit('showPage', { url });\n }\n },\n async loadApiItems(cx, args) {\n let { link, stac, show, filters, noRetry } = args;\n let collectionId = stac instanceof STAC ? stac.id : '';\n cx.commit('toggleApiItemsLoading', collectionId);\n\n try {\n let baseUrl = cx.state.url;\n if (stac instanceof STAC) {\n link = stac.getApiItemsLink();\n baseUrl = stac.getAbsoluteUrl();\n }\n\n link = Utils.addFiltersToLink(link, filters, cx.state.itemsPerPage);\n\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.features)) {\n throw new BrowserError(i18n.t('errors.invalidStacItems'));\n }\n else {\n response.data.features = response.data.features.map(item => {\n try {\n if (!Utils.isObject(item) || item.type !== 'Feature') {\n return null;\n }\n let selfLink = Utils.getLinkWithRel(item.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, baseUrl);\n }\n else if (typeof item.id !== 'undefined') {\n let apiCollectionsLink = cx.getters.root?.getApiCollectionsLink();\n if (baseUrl) {\n url = Utils.toAbsolute(`items/${item.id}`, baseUrl);\n }\n else if (apiCollectionsLink) {\n url = Utils.toAbsolute(`${collectionId}/items/${item.id}`, apiCollectionsLink.href);\n }\n else if (cx.state.catalogUrl) {\n url = Utils.toAbsolute(`collections/${collectionId}/items/${item.id}`, cx.state.catalogUrl);\n }\n else {\n return null;\n }\n }\n else {\n return null;\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(item, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n } catch (error) {\n console.error(error);\n return null;\n }\n }).filter(item => item instanceof STAC);\n if (show) {\n cx.commit('setApiItemsLink', link);\n }\n cx.commit('setApiItems', { data: response.data, stac, show });\n cx.commit('toggleApiItemsLoading', collectionId);\n return response;\n }\n } catch (error) {\n cx.commit('toggleApiItemsLoading', collectionId);\n if (!noRetry && cx.state.authConfig && isAuthenticationError(error)) {\n await cx.dispatch('tryLogin', {\n url: link.href,\n action: () => cx.dispatch('loadApiItems', Object.assign({noRetry: true, force: true}, args))\n });\n return;\n }\n throw error;\n }\n },\n async loadNextApiCollections(cx, args) {\n let { stac, show, noRetry } = args;\n let link;\n if (stac) {\n // First page\n if (cx.state.apiCollections.length > 0) {\n // If we have already loaded collections, skip loading the first page\n return;\n }\n link = stac.getLinkWithRel('data');\n }\n else {\n // Second page and after\n stac = cx.state.data;\n link = cx.state.nextCollectionsLink;\n }\n if (!link) {\n return;\n }\n try {\n let response = await stacRequest(cx, link);\n if (!Utils.isObject(response.data) || !Array.isArray(response.data.collections)) {\n throw new BrowserError(i18n.t('errors.invalidStacCollections'));\n }\n else {\n response.data.collections = response.data.collections.map(collection => {\n let selfLink = Utils.getLinkWithRel(collection.links, 'self');\n let url;\n if (selfLink?.href) {\n url = Utils.toAbsolute(selfLink.href, cx.state.url || stac.getAbsoluteUrl());\n }\n else {\n url = Utils.toAbsolute(`collections/${collection.id}`, cx.state.catalogUrl || stac.getAbsoluteUrl());\n }\n let data = cx.getters.getStac(url);\n if (data) {\n return data;\n }\n else {\n data = new STAC(collection, url, cx.getters.toBrowserPath(url));\n data.markPotentiallyIncomplete();\n cx.commit('loaded', { data, url });\n return data;\n }\n });\n cx.commit('addApiCollections', { data: response.data, stac, show });\n }\n } catch (error) {\n if (!noRetry && cx.state.authConfig && isAuthenticationError(error)) {\n await cx.dispatch('tryLogin', {\n url: link.href,\n action: () => cx.dispatch('loadNextApiCollections', Object.assign({noRetry: true, force: true}, args))\n });\n return;\n }\n throw error;\n }\n },\n async loadOgcApiConformance(cx, link) {\n let response = await stacRequest(cx, link);\n if (Utils.isObject(response.data) && Array.isArray(response.data.conformsTo)) {\n cx.commit('setConformanceClasses', response.data.conformsTo);\n }\n },\n async loadGeoJson(cx, link) {\n try {\n let response = await stacRequest(cx, link);\n return response.data; // Use data with $refs included as fallback anyway\n } catch (error) {\n return null;\n }\n },\n async retryAfterAuth(cx) {\n let errorFn = error => cx.commit('showGlobalError', {\n error,\n message: i18n.t('errors.authFailed')\n });\n\n for (let callback of cx.state.doAuth) {\n try {\n let p = callback();\n if (p instanceof Promise) {\n p.catch(errorFn);\n }\n } catch (error) {\n errorFn(error);\n }\n }\n }\n },\n });\n}\n\nexport default getStore;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('Source',{staticClass:\"float-right\",attrs:{\"title\":_vm.title,\"stacUrl\":_vm.url,\"stac\":_vm.data}}),_c('h1',[(_vm.icon)?[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.icon.href,\"alt\":_vm.icon.title,\"title\":_vm.icon.title}})]:_vm._e(),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))])],2),(!_vm.isStacChooser())?_c('p',{staticClass:\"lead\"},[(_vm.containerLink)?_c('i18n',{staticClass:\"in mr-3\",attrs:{\"tag\":\"span\",\"path\":\"in\"},scopedSlots:_vm._u([{key:\"catalog\",fn:function(){return [_c('StacLink',{attrs:{\"data\":_vm.containerLink}})]},proxy:true}],null,false,1458487365)}):_vm._e(),_c('b-button-group',[(_vm.back)?_c('b-button',{attrs:{\"to\":_vm.selfBrowserLink,\"title\":_vm.$t('goBack.description', {type: _vm.type}),\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-arrow-left'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goBack.label')))])],1):_vm._e(),(_vm.parentLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.parentLink.href),\"title\":_vm.parentLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-arrow-90deg-up'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToParent.label')))])],1):_vm._e(),(_vm.collectionLink)?_c('b-button',{attrs:{\"to\":_vm.toBrowserPath(_vm.collectionLink.href),\"title\":_vm.collectionLinkTitle,\"variant\":\"outline-primary\",\"size\":\"sm\"}},[_c('b-icon-folder-symlink'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('goToCollection.label')))])],1):_vm._e(),_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.sidebar\",modifiers:{\"sidebar\":true}}],attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.$t('browse')},on:{\"click\":function($event){return _vm.$emit('enableSidebar')}}},[_c('b-icon-book'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('browse')))])],1),(_vm.canSearch)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"to\":_vm.searchBrowserLink,\"title\":_vm.$t('search.title'),\"pressed\":_vm.isSearchPage()}},[_c('b-icon-search'),_vm._v(\" \"),_c('span',{staticClass:\"button-label prio\"},[_vm._v(_vm._s(_vm.$t('search.title')))])],1):_vm._e(),(_vm.canAuthenticate)?_c('b-button',{attrs:{\"variant\":\"outline-primary\",\"size\":\"sm\",\"title\":_vm.authTitle},on:{\"click\":_vm.logInOut}},[_c(_vm.authIcon,{tag:\"component\"}),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.authLabel))])],1):_vm._e()],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share mt-1\"},[_c('b-button-group',[(_vm.showRoot)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-root-btn\"}},[_c('b-icon-box'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.rootTitle))])],1):_vm._e(),(_vm.stacUrl)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-link-btn\",\"title\":_vm.$t('source.detailsAboutSource')}},[_c('b-icon-link'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.label')))])],1):_vm._e(),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"id\":\"popover-share-btn\",\"title\":_vm.$t('source.share.withOthers')}},[_c('b-icon-share'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.share.label')))])],1),_c('b-dropdown',{attrs:{\"size\":\"sm\",\"variant\":\"outline-primary\",\"right\":\"\",\"title\":_vm.$t('source.language.switch')},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('b-icon-flag'),_vm._v(\" \"),_c('span',{staticClass:\"button-label\"},[_vm._v(_vm._s(_vm.$t('source.language.label', {currentLanguage: _vm.currentLanguage})))])]},proxy:true}])},_vm._l((_vm.languages),function(l){return _c('b-dropdown-item',{key:l.code,staticClass:\"lang-item\",on:{\"click\":function($event){return _vm.switchLocale({locale: l.code, userSelected: true})}}},[(_vm.locale === l.code)?_c('b-icon-check'):_c('b-icon-blank'),_c('span',{staticClass:\"title\"},[_c('span',{attrs:{\"lang\":l.code}},[_vm._v(_vm._s(l.native))]),(l.global && l.global !== l.native)?[_vm._v(\" / \"),_c('span',{attrs:{\"lang\":\"en\"}},[_vm._v(_vm._s(l.global))])]:_vm._e()],2),(_vm.supportsLanguageExt && (!l.ui || !l.data))?_c('b-icon-exclamation-triangle',{staticClass:\"ml-2\",attrs:{\"title\":l.ui ? _vm.$t('source.language.onlyUI') : _vm.$t('source.language.onlyData')}}):_vm._e()],1)}),1)],1),(_vm.showRoot)?_c('b-popover',{attrs:{\"id\":\"popover-root\",\"target\":\"popover-root-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.rootTitle}},[_c('RootStats')],1):_vm._e(),(_vm.stacUrl)?_c('b-popover',{attrs:{\"id\":\"popover-link\",\"target\":\"popover-link-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.title')}},[(_vm.stac)?[(_vm.stacId)?_c('b-row',{staticClass:\"stac-id\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.id')))]),_c('b-col',[_c('code',[_vm._v(_vm._s(_vm.stacId))]),_c('CopyButton',{staticClass:\"ml-2\",attrs:{\"copyText\":_vm.stacId,\"button-props\":{size: 'sm'},\"variant\":\"primary\"}})],1)],1):_vm._e(),(_vm.stacVersion)?_c('b-row',{staticClass:\"stac-version\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.stacVersion')))]),_c('b-col',[_vm._v(_vm._s(_vm.stacVersion))])],1):_vm._e(),_c('b-row',{staticClass:\"stac-valid\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('source.valid')))]),_c('b-col',[_c('Validation',{attrs:{\"data\":_vm.stac}})],1)],1),_c('hr')]:_vm._e(),_c('Url',{attrs:{\"id\":\"stacUrl\",\"url\":_vm.stacUrl,\"label\":_vm.$t('source.locatedAt')}})],2):_vm._e(),_c('b-popover',{attrs:{\"id\":\"popover-share\",\"target\":\"popover-share-btn\",\"triggers\":\"focus\",\"placement\":\"bottom\",\"container\":\"stac-browser\",\"title\":_vm.$t('source.share.title')}},[_c('Url',{attrs:{\"id\":\"browserUrl\",\"url\":_vm.browserUrl(),\"label\":_vm.$t('source.share.sharePageWithOthers'),\"open\":false}}),(_vm.enableSocialSharing)?[_c('hr'),_c('SocialSharing',{attrs:{\"text\":_vm.sharingMessage,\"title\":_vm.title,\"url\":_vm.browserUrl()}})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-form-group',{attrs:{\"label\":_vm.label,\"label-for\":_vm.id}},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{ref:\"input\",attrs:{\"id\":_vm.id,\"value\":_vm.url,\"readonly\":\"\"}}),_c('b-input-group-append',[_c('CopyButton',{attrs:{\"copyText\":_vm.url,\"variant\":\"primary\"}}),(_vm.open)?_c('b-button',{attrs:{\"href\":_vm.url,\"target\":\"_blank\",\"variant\":\"primary\",\"title\":_vm.$t('open')}},[_c('b-icon-arrow-up-right-square')],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Url.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Url.vue?vue&type=template&id=74684ede&scoped=true\"\nimport script from \"./Url.vue?vue&type=script&lang=js\"\nexport * from \"./Url.vue?vue&type=script&lang=js\"\nimport style0 from \"./Url.vue?vue&type=style&index=0&id=74684ede&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74684ede\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',_vm._l((_vm.urls),function(href,service){return _c('b-button',{key:service,staticClass:\"service mr-1\",class:service,attrs:{\"href\":href,\"target\":\"_blank\"}},[_c('i',{staticClass:\"svg\",class:service}),_vm._v(\" \"+_vm._s(_vm.$t(`source.share.${service}`))+\" \")])}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SocialSharing.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SocialSharing.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SocialSharing.vue?vue&type=template&id=8e71bab0&scoped=true\"\nimport script from \"./SocialSharing.vue?vue&type=script&lang=js\"\nexport * from \"./SocialSharing.vue?vue&type=script&lang=js\"\nimport style0 from \"./SocialSharing.vue?vue&type=style&index=0&id=8e71bab0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e71bab0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Source.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Source.vue?vue&type=template&id=0aa087bf&scoped=true\"\nimport script from \"./Source.vue?vue&type=script&lang=js\"\nexport * from \"./Source.vue?vue&type=script&lang=js\"\nimport style0 from \"./Source.vue?vue&type=style&index=0&id=0aa087bf&prod&lang=scss\"\nimport style1 from \"./Source.vue?vue&type=style&index=1&id=0aa087bf&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0aa087bf\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacHeader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacHeader.vue?vue&type=template&id=5da16391&scoped=true\"\nimport script from \"./StacHeader.vue?vue&type=script&lang=js\"\nexport * from \"./StacHeader.vue?vue&type=script&lang=js\"\nimport style0 from \"./StacHeader.vue?vue&type=style&index=0&id=5da16391&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5da16391\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.authComponent,{tag:\"component\",on:{\"submit\":_vm.submit,\"reset\":_vm.reset}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Authentication.vue?vue&type=template&id=5dbcd191\"\nimport script from \"./Authentication.vue?vue&type=script&lang=js\"\nexport * from \"./Authentication.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StacBrowser.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StacBrowser.vue?vue&type=template&id=762bcbaa\"\nimport script from \"./StacBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./StacBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./StacBrowser.vue?vue&type=style&index=0&id=762bcbaa&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport StacBrowser from \"./StacBrowser.vue\";\nimport i18n, { loadDefaultMessages } from './i18n';\n\nexport default function init() {\n return loadDefaultMessages().then(() => {\n return new Vue({\n i18n,\n render: h => h(StacBrowser)\n }).$mount(\"#stac-browser\");\n });\n}\n","import Vue from \"vue\";\nimport init from \"./init\";\n\nVue.config.productionTip = false;\n\ninit();\n","import Utils, { geojsonMediaType } from \"../utils\";\nimport Migrate from '@radiantearth/stac-migrate';\nimport { getBest } from '../locale-id';\n\nlet stacObjCounter = 0;\n\n// STAC Entity\nclass STAC {\n\n constructor(data, url, path, migrate = true) {\n this._id = stacObjCounter++;\n this._url = url;\n this._path = path;\n this._apiChildrenListeners = {};\n this._incomplete = false;\n this._apiChildren = {\n list: [],\n prev: false,\n next: false\n };\n\n if (migrate) {\n // Uncomment this line if the old checksum: fields should be converted\n // This is usually not needed so it's not enabled by default to shrink the bundle size\n // Migrate.enableMultihash(require('multihashes'));\n if (data.type === 'FeatureCollection') {\n data.features = data.features.map(item => Migrate.item(item, false));\n }\n else {\n data = Migrate.stac(data, false);\n }\n }\n for (let key in data) {\n if (typeof this[key] === 'undefined') {\n this[key] = data[key];\n }\n }\n if (!Utils.hasText(this.type)) {\n throw new Error('Not a valid STAC data source (no `type` present)');\n }\n }\n\n isPotentiallyIncomplete() {\n return this._incomplete;\n }\n\n markPotentiallyIncomplete() {\n this._incomplete = true;\n }\n\n isItem() {\n return this.type === 'Feature';\n }\n\n isCatalog() {\n return this.type === 'Catalog';\n }\n\n isCatalogLike() {\n return this.isCatalog() || this.isCollection();\n }\n\n isCollection() {\n return this.type === 'Collection';\n }\n\n isItemCollection() {\n return this.type === 'FeatureCollection';\n }\n\n hasApiData() {\n return this._apiChildren.list.length > 0;\n }\n\n setApiDataListener(id, listener = null) {\n if (typeof listener === 'function') {\n this._apiChildrenListeners[id] = listener;\n }\n else {\n delete this._apiChildrenListeners[id];\n }\n }\n\n setApiData(list, next = null, prev = null) {\n if (prev) {\n this._apiChildren.prev = prev;\n }\n if (next) {\n this._apiChildren.next = next;\n }\n this._apiChildren.list = list;\n\n for (let id in this._apiChildrenListeners) {\n try {\n this._apiChildrenListeners[id](this._apiChildren);\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n getFileFormats() {\n let assets = [];\n if ((this.isItem() || this.isCollection()) && Utils.isObject(this.assets)) {\n assets = assets.concat(Object.values(this.assets));\n }\n if (this.isCollection() && Utils.isObject(this.item_assets)) {\n assets = assets.concat(Object.values(this.item_assets));\n }\n return assets\n .filter(asset => Array.isArray(asset.roles) && asset.roles.includes('data') && typeof asset.type === 'string') // Look for data files\n .map(asset => asset.type) // Array shall only contain media types\n .filter((v, i, a) => a.indexOf(v) === i); // Unique values\n }\n\n getChildren(priority = null) {\n if (!this.isCatalogLike()) {\n return [];\n }\n\n let showCollections = !priority || priority === 'collections';\n let showChilds = !priority || priority === 'childs';\n\n let children = [];\n if (showCollections && this._apiChildren.prev) {\n children.push(this._apiChildren.prev);\n }\n if (showCollections && this._apiChildren.list.length > 0) {\n children = this._apiChildren.list.slice(0);\n }\n if (showChilds) {\n children = STAC.addMissingChildren(children, this).concat(this.getLinksWithRels(['item']));\n }\n if (showCollections && this._apiChildren.next) {\n children.push(this._apiChildren.next);\n }\n return children;\n }\n\n static addMissingChildren(catalogs, stac) {\n let links = stac.getStacLinksWithRel('child').filter(link => {\n // Don't add links that are already in collections: https://github.com/radiantearth/stac-browser/issues/103\n // ToDo: The runtime of this can probably be improved\n let absoluteUrl = Utils.toAbsolute(link.href, stac.getAbsoluteUrl());\n return !catalogs.find(collection => collection.getAbsoluteUrl() === absoluteUrl);\n });\n // place the children first to avoid conflicts with the paginated collections\n // where the children are always at the end and can never be reached due to infinite scrolling\n return links.concat(catalogs);\n }\n\n getSearchLink() {\n // The search link MUST be 'application/geo+json' as otherwise it's likely not STAC\n // See https://github.com/opengeospatial/ogcapi-features/issues/832\n let links = Utils.getLinksWithRels(this.links, ['search'])\n .filter(link => Utils.isMediaType(link.type, geojsonMediaType))\n .map(link => Object.assign({}, link, {href: Utils.toAbsolute(link.href, this._url)}));\n // Prefer POST if present\n let post = links.find(link => Utils.hasText(link.method) && link.method.toUpperCase() === 'POST');\n return post || links[0] || null;\n }\n\n getApiCollectionsLink() {\n return this.getStacLinkWithRel('data');\n }\n\n getApiItemsLink() {\n return this.getStacLinkWithRel('items');\n }\n\n getMetadata(field) {\n if (this.isItem()) {\n return this.properties[field];\n }\n else if (this.isCatalogLike()) {\n return this[field];\n }\n return null;\n }\n\n getBrowserPath() {\n return this._path;\n }\n\n getAbsoluteUrl() {\n return this._url;\n }\n\n getLocaleLink(locale, fallbackLocale = null) {\n let links = this.getStacLinksWithRel('alternate')\n .filter(link => Utils.hasText(link.hreflang));\n \n let available;\n if (Array.isArray(this.languages)) {\n available = this.languages.map(l => l.code);\n }\n else {\n available = links.map(link => link.hreflang);\n }\n \n let best = getBest(available, locale, fallbackLocale);\n return links.find(link => link.hreflang === best) || null;\n }\n\n getStacLinksWithRel(rel, allowEmpty = true) {\n return Utils.getLinksWithRels(this.links, [rel])\n .filter(link => Utils.isStacMediaType(link.type, allowEmpty));\n }\n\n getStacLinkWithRel(rel, allowEmpty = true) {\n const links = this.getStacLinksWithRel(rel, allowEmpty);\n if (links.length > 0) {\n return links[0];\n }\n else {\n return null;\n }\n }\n\n getLinkWithRel(rel) {\n return Utils.getLinkWithRel(this.links, rel);\n }\n\n getLinksWithRels(rels) {\n return Utils.getLinksWithRels(this.links, rels);\n }\n\n getLinksWithOtherRels(rels) {\n return Utils.getLinksWithOtherRels(this.links, rels);\n }\n\n getAssetsWithRoles(roles) {\n let matches = [];\n if (Utils.isObject(this.assets)) {\n for (let key in this.assets) {\n let asset = this.assets[key];\n if (Utils.isObject(asset) && typeof asset.href === 'string' && Array.isArray(asset.roles) && asset.roles.find(role => roles.includes(role))) {\n matches.push(asset);\n }\n }\n }\n return matches;\n }\n\n static getDisplayTitle(sources, fallbackTitle = null) {\n if (!Array.isArray(sources)) {\n sources = [sources];\n }\n let stac = sources.find(o => o instanceof STAC);\n let link = sources.find(o => Utils.isObject(o) && !(o instanceof STAC));\n // Get title from STAC item/catalog/collection\n if (stac && Utils.hasText(stac.getTitle())) {\n return stac.getTitle();\n }\n // Get title from link\n else if (link && Utils.hasText(link.title)) {\n return link.title;\n }\n // Use id from STAC item/catalog/collection instead of titles\n else if (stac && Utils.hasText(stac.id)) {\n return stac.id;\n }\n // Use fallback title\n else if (Utils.hasText(fallbackTitle)) {\n return fallbackTitle;\n }\n // Use file or directory name from STAC as title\n else if (stac) {\n return Utils.titleForHref(stac.getAbsoluteUrl(), true);\n }\n // Use file or directory name from link as title\n else if (link && Utils.hasText(link.href)) {\n return Utils.titleForHref(link.href, true);\n }\n // Nothing available, return \"untitled\"\n else {\n return \"Untitled\";\n }\n }\n\n getTitle() {\n return this.getMetadata(\"title\");\n }\n\n _linkToAbsolute(link) {\n return Object.assign({}, link, { href: Utils.toAbsolute(link.href, this.getAbsoluteUrl()) });\n }\n\n getIcons() {\n return this.getLinksWithRels(['icon'])\n .filter(img => Utils.canBrowserDisplayImage(img))\n .map(img => this._linkToAbsolute(img));\n }\n\n /**\n * Get the thumbnails from the assets and links in a STAC entity.\n * \n * @param {boolean} browserOnly - Return only images that can be shown in a browser natively (PNG/JPG/GIF/WEBP).\n * @param {?string} prefer - If not `null` (default), prefers a role over the other. Either `thumbnail` or `overview`.\n * @returns \n */\n getThumbnails(browserOnly = false, prefer = null) { // prefer can be either \n let thumbnails = this.getAssetsWithRoles(['thumbnail', 'overview']);\n // Get from links only if no assets are available as they should usually be the same as in assets\n if (thumbnails.length === 0) {\n thumbnails = this.getLinksWithRels(['preview']);\n }\n // Some old catalogs use just a asset key\n if (thumbnails.length === 0 && Utils.isObject(this.assets) && Utils.isObject(this.assets.thumbnail)) {\n thumbnails = [this.assets.thumbnail];\n }\n if (browserOnly) {\n // Remove all images that can't be displayed in a browser\n thumbnails = thumbnails.filter(img => Utils.canBrowserDisplayImage(img));\n }\n if (prefer && thumbnails.length > 1) {\n // Prefer one role over the other.\n // The two step approach with two filters ensures the same sort bevahiour across all browsers:\n // see https://github.com/radiantearth/stac-browser/issues/370\n let filter = img => img.roles.includes(prefer);\n thumbnails = thumbnails\n .filter(filter)\n .concat(thumbnails.filter(img => !filter(img)));\n }\n return thumbnails.map(img => this._linkToAbsolute(img));\n }\n\n equals(other) {\n if (!Utils.isObject(other)) {\n return false;\n }\n if (this === other) {\n return true;\n }\n if (this.id === other.id && this.type == other.type) {\n return true;\n }\n return false;\n }\n\n}\n\nexport default STAC;\n","// STAC relation types\n\n// STAC hierarchical\nexport const stacHierarchy = [\n 'child',\n 'collection',\n 'item',\n 'parent',\n 'root',\n 'self',\n];\n\n// STAC API Pagination\nexport const stacPagination = [\n 'first',\n 'last',\n 'next',\n 'prev',\n 'previous',\n];\n\n// Queryables\nexport const ogcQueryables = [\n 'queryables', // Old way in STAC (deprecated)\n 'http://www.opengis.net/def/rel/ogc/1.0/queryables', // STAC and OGC APIs\n 'ogc-rel:queryables' // Alternative in OGC APIs\n];\n\n// Rels that STAC Browser can navigate to and display natively (i.e. Collections, Catalogs and Items)\nexport const stacBrowserNavigatesTo = [\n 'canonical', // Links to other catalogs or items v\n 'related',\n 'derived_from',\n 'latest-version', // version extension v\n 'predecessor-version',\n 'successor-version',\n 'source', // label extension,\n 'alternate' // language extension\n].concat(stacHierarchy).concat(stacPagination);\n\n// Rels that are handled in a special way and should not be shown in the link list\nexport const stacBrowserSpecialHandling = [\n 'conformance', // API related v\n 'data',\n 'items',\n 'search',\n 'icon', // Other v\n 'license',\n].concat(stacHierarchy).concat(stacPagination).concat(ogcQueryables);\n\n// OGC APIs\nexport const ogcRelPrefix = 'http://www.opengis.net/def/rel/ogc/1.0/';\n","import axios from \"axios\";\nimport URI from \"urijs\";\nimport Utils from \"../utils\";\n\nexport class Loading {\n\n constructor(show = false) {\n this.show = Boolean(show);\n }\n\n}\n\nexport function stacRequestOptions(cx, link) {\n // Convert a URL string to a Link Object\n if (typeof link === 'string') {\n link = {\n href: link\n };\n }\n // Return if the link is not an object or doesn't contain an href\n if (!Utils.isObject(link) || typeof link.href !== 'string') {\n return {};\n }\n\n // Generate URL including query strings\n const url = cx.getters.getRequestUrl(link.href);\n\n // Combine headers\n let headers = {\n 'Accept-Language': cx.getters.acceptedLanguages\n };\n if (Utils.hasText(link.type)) {\n headers.Accept = link.type;\n }\n if (!cx.getters.isExternalUrl(url)) {\n Object.assign(headers, cx.state.requestHeaders);\n }\n if (Utils.isObject(link.headers)) {\n Object.assign(headers, link.headers);\n }\n\n // Combine all options for axios request\n return {\n method: typeof link.method === 'string' ? link.method.toLowerCase() : 'get',\n url,\n headers,\n data: link.body\n // ToDo: Support for merge property from STAC API\n };\n}\n\nexport async function stacRequest(cx, link, axiosOptions = {}) {\n // Get options\n const options = stacRequestOptions(cx, link);\n // Execute the request\n return await axios(Object.assign(options, axiosOptions));\n}\n\n\nexport function unproxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[1], proxy[0]);\n }\n return absoluteUrl;\n}\n\nexport function proxyUrl(absoluteUrl, proxy) {\n if (absoluteUrl instanceof URI) {\n absoluteUrl = absoluteUrl.toString();\n }\n if (typeof absoluteUrl === 'string' && Array.isArray(proxy)) {\n return absoluteUrl.replace(proxy[0], proxy[1]);\n }\n return absoluteUrl;\n}\n\nexport function processSTAC(state, stac) {\n if (typeof state.preprocessSTAC === 'function') {\n stac = state.preprocessSTAC(stac, state);\n }\n return Object.freeze(stac);\n}\n\nexport function isAuthenticationError(error) {\n return [401, 403].includes(error?.response?.status);\n}\n\nexport function addQueryIfNotExists(uri, query) {\n if (Utils.size(query) == 0) {\n return uri;\n }\n for (let key in query) {\n if (!uri.hasQuery(key)) {\n uri.addQuery(key, query[key]);\n }\n }\n return uri;\n}\n","import URI from 'urijs';\nimport removeMd from 'remove-markdown';\nimport { stacPagination } from \"./rels\";\n\nexport const commonFileNames = ['catalog', 'collection', 'item'];\n\nexport const geojsonMediaType = \"application/geo+json\";\n\nexport const schemaMediaType = \"application/schema+json\";\n\nexport const stacMediaTypes = [\n 'application/json',\n geojsonMediaType,\n 'text/json'\n];\n\nexport const browserImageTypes = [\n 'image/gif',\n 'image/jpg',\n 'image/jpeg',\n 'image/apng',\n 'image/png',\n 'image/webp'\n];\n\nexport const cogMediaTypes = [\n \"image/tiff; application=geotiff; profile=cloud-optimized\",\n \"image/vnd.stac.geotiff; cloud-optimized=true\"\n];\n\nexport const geotiffMediaTypes = [\n \"application/geotiff\",\n \"image/tiff; application=geotiff\",\n \"image/vnd.stac.geotiff\",\n].concat(cogMediaTypes);\n\nexport const browserProtocols = [\n 'http',\n 'https'\n];\n\nexport const imageMediaTypes = browserImageTypes.concat(geotiffMediaTypes);\nexport const mapMediaTypes = imageMediaTypes.concat([geojsonMediaType]);\n\nexport class BrowserError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\n/**\n * General utilities\n * \n * @class\n */\nexport default class Utils {\n\n /**\n * Checks whether a variable is a real object or not.\n * \n * This is a more strict version of `typeof x === 'object'` as this example would also succeeds for arrays and `null`.\n * This function only returns `true` for real objects and not for arrays, `null` or any other data types.\n * \n * @param {*} obj - A variable to check.\n * @returns {boolean} - `true` is the given variable is an object, `false` otherwise.\n */\n static isObject(obj) {\n return (typeof obj === 'object' && obj === Object(obj) && !Array.isArray(obj));\n }\n\n /**\n * Computes the size of an array (number of array elements) or object (number of key-value-pairs).\n * \n * Returns 0 for all other data types.\n * \n * @param {*} obj \n * @returns {integer}\n */\n static size(obj) {\n if (typeof obj === 'object' && obj !== null) {\n if (Array.isArray(obj)) {\n return obj.length;\n }\n else {\n return Object.keys(obj).length;\n }\n }\n return 0;\n }\n\n static isStacMediaType(type, allowEmpty = false) {\n return Utils.isMediaType(type, stacMediaTypes, allowEmpty);\n }\n\n static isMediaType(type, types, allowEmpty = false) {\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (allowEmpty && !type) {\n return true;\n }\n else if (typeof type !== 'string') {\n return false;\n }\n else {\n return types.includes(type.toLowerCase());\n }\n }\n\n /**\n * Checks whether a variable is a string and contains at least one character.\n * \n * @param {*} string - A variable to check.\n * @returns {boolean} - `true` is the given variable is an string with length > 0, `false` otherwise.\n */\n static hasText(string) {\n return (typeof string === 'string' && string.length > 0);\n }\n\n static shortenTitle(fullStr, strLen, separator = '…') {\n if (fullStr.length <= strLen) {\n return fullStr;\n }\n\n let sepLen = separator.length;\n let charsToShow = strLen - sepLen;\n let frontChars = Math.ceil(charsToShow/2);\n let backChars = Math.floor(charsToShow/2);\n return fullStr.substr(0, frontChars) + \n separator + \n fullStr.substr(fullStr.length - backChars);\n }\n\n static isGdalVfsUri(url) {\n return typeof url === 'string' && url.startsWith('/vsi') && !url.startsWith('/vsicurl/');\n }\n\n static toAbsolute(href, baseUrl, stringify = true) {\n return Utils.normalizeUri(href, baseUrl, false, stringify);\n }\n\n static normalizeUri(href, baseUrl = null, noParams = false, stringify = true) {\n // Convert vsicurl URLs to normal URLs\n if (typeof href === 'string' && href.startsWith('/vsicurl/')) {\n href = href.replace(/^\\/vsicurl\\//, '');\n }\n // Parse URL and make absolute, if required\n let uri = URI(href);\n // Don't convert GDAL VFS URIs: https://github.com/radiantearth/stac-browser/issues/116\n if (baseUrl && uri.is(\"relative\") && !Utils.isGdalVfsUri(href)) {\n uri = uri.absoluteTo(baseUrl);\n }\n uri.normalize();\n if (noParams) {\n uri.query(\"\");\n uri.fragment(\"\");\n }\n return stringify ? uri.toString() : uri;\n }\n\n static getLinkWithRel(links, rel) {\n return Array.isArray(links) ? links.find(link => Utils.isObject(link) && Utils.hasText(link.href) && link.rel === rel) : null;\n }\n\n static getLinksWithRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && rels.includes(link.rel)) : [];\n }\n\n static getLinksWithOtherRels(links, rels) {\n return Array.isArray(links) ? links.filter(link => Utils.isObject(link) && Utils.hasText(link.href) && !rels.includes(link.rel)) : [];\n }\n\n static removeTrailingSlash(str) {\n return str.replace(/\\/$/, '');\n }\n\n static equalUrl(a, b) {\n try {\n let uri1 = URI(a);\n let uri2 = URI(b);\n // Ignore trailing slash in URL paths\n uri1.path(Utils.removeTrailingSlash(uri1.path()));\n uri2.path(Utils.removeTrailingSlash(uri2.path()));\n return uri1.equals(uri2);\n } catch (error) {\n return false;\n }\n }\n\n static summarizeMd(text, maxLength = null) {\n if (!Utils.hasText(text)) {\n return '';\n }\n // Best-effort approach to remove some CommonMark (Markdown).\n // Likely not perfect, but seems good enough for most cases.\n text = removeMd(text).replaceAll(/[\\r\\n]+/g, ' ');\n if (maxLength > 0 && text.length > maxLength) {\n text = text.substr(0, maxLength) + '…';\n }\n return text;\n }\n\n static scrollTo(el) {\n if (!el) {\n return;\n }\n var rect = el.getBoundingClientRect();\n var isVisible = rect.top < window.innerHeight && rect.bottom >= 0;\n if (!isVisible) {\n el.scrollIntoView({\n behavior: \"smooth\",\n block: \"start\"\n });\n }\n }\n\n // Convert from UTC to locale time (needed for vue2-datetimepicker)\n // see https://github.com/mengxiong10/vue2-datepicker/issues/388\n static dateFromUTC(dt) {\n if (dt) {\n const value = new Date(dt);\n dt = new Date(value.getTime() + value.getTimezoneOffset() * 60 * 1000);\n }\n return dt;\n }\n\n static dateToUTC(dt) {\n if (dt instanceof Date) {\n dt = new Date(dt.getTime() - dt.getTimezoneOffset() * 60 * 1000);\n }\n return dt;\n }\n\n static formatDatetimeQuery(value) {\n return value.map(dt => {\n if (dt instanceof Date) {\n return dt.toISOString();\n }\n else if (dt) {\n return dt;\n }\n else {\n return '..';\n }\n }).join('/');\n }\n\n static formatSortbyForPOST(value) {\n // POST search requires sortby to be an array of objects containing a property name and sort direction.\n // See spec here: https://api.stacspec.org/v1.0.0-rc.1/item-search/#tag/Item-Search/operation/postItemSearch\n // This function converts the property name to the desired format.\n const sortby = {\n field: '',\n direction: 'asc'\n };\n \n // Check if the value starts with a minus sign (\"-\")\n if (value.startsWith('-')) {\n // sort by descending order\n sortby.field = value.substring(1);\n sortby.direction = 'desc';\n } else {\n //sort by ascending order\n sortby.field = value;\n }\n \n // Put the object in an array\n return [sortby];\n }\n\n static getPaginationLinks(data) {\n let pages = {};\n if (Utils.isObject(data)) {\n let pageLinks = Utils.getLinksWithRels(data.links, stacPagination);\n for (let pageLink of pageLinks) {\n let rel = pageLink.rel === 'previous' ? 'prev' : pageLink.rel;\n pages[rel] = pageLink;\n }\n }\n return pages;\n }\n\n static addFiltersToLink(link, filters = {}, itemsPerPage = null) {\n let isEmpty = value => {\n return (value === null\n || (typeof value === 'number' && !Number.isFinite(value))\n || (typeof value === 'string' && value.length === 0)\n || (typeof value === 'object' && Utils.size(value) === 0));\n };\n\n if (!Utils.isObject(filters)) {\n filters = {};\n }\n else {\n filters = Object.assign({}, filters);\n }\n\n if (typeof filters.limit !== 'number' && typeof itemsPerPage === 'number') {\n filters.limit = itemsPerPage;\n }\n\n if (Utils.hasText(link.method) && link.method.toUpperCase() === 'POST') {\n let body = Object.assign({}, link.body);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n delete body[key];\n continue;\n }\n\n if (key === 'sortby') {\n value = Utils.formatSortbyForPOST(value);\n }\n else if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'filters') {\n Object.assign(body, value.toJSON());\n continue;\n }\n\n body[key] = value;\n }\n return Object.assign({}, link, { body });\n }\n else { // GET\n // Construct new link with search params\n let url = URI(link.href);\n\n for (let key in filters) {\n let value = filters[key];\n if (isEmpty(value)) {\n url.removeQuery(key);\n continue;\n }\n\n if (key === 'datetime') {\n value = Utils.formatDatetimeQuery(value);\n }\n else if (key === 'bbox') {\n value = value.join(',');\n }\n else if ((key === 'collections' || key === 'ids' || key === 'q')) {\n value = value.join(',');\n }\n else if (key === 'filters') {\n let params = value.toText();\n url.setQuery(params);\n continue;\n }\n\n url.setQuery(key, value);\n }\n\n return Object.assign({}, link, { href: url.toString() });\n }\n }\n\n static titleForHref(href, preferFileName = false) {\n let uri = URI(href);\n let auth = uri.authority();\n let file = uri.filename().replace(/^(.{1,})\\.\\w+$/, '$1');\n let dir = uri.directory().replace(/^\\//, '');\n if (auth && file && !preferFileName) {\n let path = uri.path().replace(/^\\//, '');\n if (auth === 'doi.org' && path.startsWith('10.')) {\n return `DOI ${path}`;\n }\n else {\n return `${file} (${auth})`;\n }\n }\n else if (file && !commonFileNames.includes(file)) {\n return file;\n }\n else if (auth) {\n return auth;\n }\n else if (dir) {\n return dir;\n }\n else {\n return href;\n }\n }\n\n static canBrowserDisplayImage(img) {\n if (typeof img.href !== 'string') {\n return false;\n }\n let uri = URI(img.href);\n let protocol = uri.protocol().toLowerCase();\n if (protocol && !browserProtocols.includes(protocol)) {\n return false;\n }\n else if (browserImageTypes.includes(img.type)) {\n return true;\n }\n else if (browserImageTypes.includes('image/' + uri.suffix().toLowerCase())) {\n return true;\n }\n else if (img.type) {\n return false;\n }\n else {\n return true; // If no img.type is given, try to load it anyway: https://github.com/radiantearth/stac-browser/issues/147\n }\n }\n\n // Gets the value at path of object.\n // Drop in replacement for lodash.get\n static getValueFromObjectUsingPath(object, path) {\n if (object === null || typeof object !== 'object') {\n return;\n }\n object = object[path[0]];\n if (typeof object !== 'undefined' && path.length > 1) {\n return this.getValueFromObjectUsingPath(object, path.slice(1));\n }\n return object;\n }\n\n static search(searchterm, target, and = true) {\n if (typeof searchterm !== 'string' || searchterm.length === 0) {\n return false;\n }\n if (Utils.isObject(target)) {\n target = Object.values(target);\n }\n else if (typeof target === 'string') {\n target = [target];\n }\n\n if (!Array.isArray(target)) {\n return false;\n }\n\n let splitChars = /[\\s.,;!&({[)}]]+/g;\n\n // Prepare search terms\n searchterm = searchterm.toLowerCase().split(splitChars);\n\n // Prepare text to search in\n target = target\n .filter(s => typeof s === 'string') // Remove non-strings\n .join(' ') // Merge into a single string\n .replace(splitChars, ' ') // replace split chars with white spaces\n .toLowerCase(); // Lowercase\n\n // Search with \"and\" or \"or\"\n let fn = and ? 'every' : 'some';\n return searchterm[fn](term => target.includes(term));\n }\n\n static createLink(href, rel) {\n return { href, rel };\n }\n\n static supportsExtension(data, pattern) {\n if (!Utils.isObject(data) || !Array.isArray(data['stac_extensions'])) {\n return false;\n }\n let regexp = new RegExp('^' + pattern.replaceAll('*', '[^/]+') + '$');\n return Boolean(data['stac_extensions'].find(uri => regexp.test(uri)));\n }\n\n /**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\n static mergeDeep(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n\n if (Utils.isObject(target) && Utils.isObject(source)) {\n for (const key in source) {\n if (Utils.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n Utils.mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return Utils.mergeDeep(target, ...sources);\n }\n\n}\n","import ErrorAlert from '../components/ErrorAlert.vue';\nimport Loading from '../components/Loading.vue';\nimport Utils, { BrowserError } from '../utils';\nimport URI from 'urijs';\nimport { mapState, mapGetters } from 'vuex';\n\nexport default {\n components: {\n ErrorAlert,\n Loading\n },\n props: {\n path: {\n type: String,\n required: true\n }\n },\n computed: {\n ...mapState([\"allowExternalAccess\", \"catalogUrl\", \"url\", \"redirectLegacyUrls\"]),\n ...mapGetters([\"fromBrowserPath\", \"error\", \"loading\"]),\n errorId() {\n if (this.error instanceof Error && this.error.isAxiosError && Utils.isObject(this.error.response)) {\n let res = this.error.response;\n if (Utils.isObject(res.data) && res.data.code) {\n return res.data.code;\n }\n else {\n return res.status;\n }\n }\n return null;\n },\n errorDescription() { \n if (this.error instanceof Error && this.error.isAxiosError && Utils.isObject(this.error.response)) {\n let res = this.error.response;\n if (Utils.isObject(res.data) && typeof res.data.description === 'string') { // STAC API compliant error response\n return res.data.description;\n }\n if (res.status === 401) {\n return this.$t('errors.unauthorized');\n }\n else if (res.status === 403) {\n return this.$t('errors.forbidden');\n }\n else if (res.status === 404) {\n return this.$t('errors.notFound');\n }\n else if (res.status > 500) {\n return this.$t('errors.serverError');\n }\n else if (res.status > 400) {\n return this.$t('errors.badRequest');\n }\n }\n else if (this.error instanceof BrowserError) {\n return this.error.message;\n }\n\n return this.$t('errors.networkError');\n },\n isExternal() {\n return URI(this.path).is(\"absolute\");\n }\n },\n watch: {\n path: {\n immediate: true,\n async handler(path, oldPath) {\n if (path === oldPath) {\n return;\n }\n else if (!this.allowExternalAccess && this.isExternal) {\n return;\n }\n else if (this.redirectLegacyUrls && await this.redirectLegacyUrl(path)) {\n return;\n }\n\n let url = this.fromBrowserPath(path || '/');\n this.$store.dispatch(\"load\", { url, show: true });\n }\n }\n },\n methods: {\n async redirectLegacyUrl(path) {\n if (!path || path === '/') {\n return false;\n }\n // Split all subpaths and remove the leading item or collection prefixes from the old STAC Browser routes\n let parts = path.split('/').filter(part => part.length > 0 && part !== 'item' && part !== 'collection');\n // Make sure all remaining parts are valid base58, otherwise they likely no legacy URLs\n if (parts.length > 0 && parts.every(part => part.match(/^[123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ]+$/))) {\n // Lazy load base58 so that it's only in the loaded when really needed\n const { decode } = await import('bs58');\n // Decode last path element from base58, the others parts are not relevant for us\n let newPath = decode(parts[parts.length - 1]).toString();\n if (newPath) {\n let uri = URI(newPath);\n // Navigate to new URL\n this.$router.replace({\n // Remove trailing collections or items paths from APIs\n path: '/' + uri.path().replace(/(collections|items)\\/?$/, ''),\n query: uri.query(true)\n });\n return true;\n }\n }\n return false;\n }\n }\n};\n","var map = {\n\t\"./de-CH/config\": [\n\t\t79933,\n\t\t3\n\t],\n\t\"./de-CH/config.json\": [\n\t\t79933,\n\t\t3\n\t],\n\t\"./de-CH/datepicker\": [\n\t\t40895,\n\t\t9,\n\t\t895\n\t],\n\t\"./de-CH/datepicker.js\": [\n\t\t40895,\n\t\t9,\n\t\t895\n\t],\n\t\"./de-CH/default\": [\n\t\t968,\n\t\t9,\n\t\t4490,\n\t\t968\n\t],\n\t\"./de-CH/default.js\": [\n\t\t968,\n\t\t9,\n\t\t4490,\n\t\t968\n\t],\n\t\"./de-CH/duration\": [\n\t\t49637,\n\t\t9,\n\t\t9710,\n\t\t9637\n\t],\n\t\"./de-CH/duration.js\": [\n\t\t49637,\n\t\t9,\n\t\t9710,\n\t\t9637\n\t],\n\t\"./de-CH/validation\": [\n\t\t75270,\n\t\t9,\n\t\t5270\n\t],\n\t\"./de-CH/validation.js\": [\n\t\t75270,\n\t\t9,\n\t\t5270\n\t],\n\t\"./de/config\": [\n\t\t28417,\n\t\t3\n\t],\n\t\"./de/config.json\": [\n\t\t28417,\n\t\t3\n\t],\n\t\"./de/custom\": [\n\t\t45692,\n\t\t3,\n\t\t5692\n\t],\n\t\"./de/custom.json\": [\n\t\t45692,\n\t\t3,\n\t\t5692\n\t],\n\t\"./de/datepicker\": [\n\t\t74801,\n\t\t9,\n\t\t4801\n\t],\n\t\"./de/datepicker.js\": [\n\t\t74801,\n\t\t9,\n\t\t4801\n\t],\n\t\"./de/default\": [\n\t\t62862,\n\t\t9,\n\t\t4490,\n\t\t2862\n\t],\n\t\"./de/default.js\": [\n\t\t62862,\n\t\t9,\n\t\t4490,\n\t\t2862\n\t],\n\t\"./de/duration\": [\n\t\t54511,\n\t\t9,\n\t\t9710,\n\t\t4511\n\t],\n\t\"./de/duration.js\": [\n\t\t54511,\n\t\t9,\n\t\t9710,\n\t\t4511\n\t],\n\t\"./de/fields\": [\n\t\t14490,\n\t\t3,\n\t\t4490\n\t],\n\t\"./de/fields.json\": [\n\t\t14490,\n\t\t3,\n\t\t4490\n\t],\n\t\"./de/texts\": [\n\t\t99581,\n\t\t3,\n\t\t9581\n\t],\n\t\"./de/texts.json\": [\n\t\t99581,\n\t\t3,\n\t\t9581\n\t],\n\t\"./de/validation\": [\n\t\t62816,\n\t\t9,\n\t\t2816\n\t],\n\t\"./de/validation.js\": [\n\t\t62816,\n\t\t9,\n\t\t2816\n\t],\n\t\"./en-GB/config\": [\n\t\t23667,\n\t\t3\n\t],\n\t\"./en-GB/config.json\": [\n\t\t23667,\n\t\t3\n\t],\n\t\"./en-GB/custom\": [\n\t\t78798,\n\t\t3,\n\t\t8798\n\t],\n\t\"./en-GB/custom.json\": [\n\t\t78798,\n\t\t3,\n\t\t8798\n\t],\n\t\"./en-GB/datepicker\": [\n\t\t22605,\n\t\t9,\n\t\t2605\n\t],\n\t\"./en-GB/datepicker.js\": [\n\t\t22605,\n\t\t9,\n\t\t2605\n\t],\n\t\"./en-GB/default\": [\n\t\t63170,\n\t\t9,\n\t\t3170\n\t],\n\t\"./en-GB/default.js\": [\n\t\t63170,\n\t\t9,\n\t\t3170\n\t],\n\t\"./en-GB/duration\": [\n\t\t47843,\n\t\t9,\n\t\t9710,\n\t\t7843\n\t],\n\t\"./en-GB/duration.js\": [\n\t\t47843,\n\t\t9,\n\t\t9710,\n\t\t7843\n\t],\n\t\"./en-GB/fields\": [\n\t\t87400,\n\t\t3,\n\t\t7400\n\t],\n\t\"./en-GB/fields.json\": [\n\t\t87400,\n\t\t3,\n\t\t7400\n\t],\n\t\"./en-GB/texts\": [\n\t\t62963,\n\t\t3,\n\t\t2963\n\t],\n\t\"./en-GB/texts.json\": [\n\t\t62963,\n\t\t3,\n\t\t2963\n\t],\n\t\"./en-GB/validation\": [\n\t\t6492,\n\t\t9,\n\t\t6492\n\t],\n\t\"./en-GB/validation.js\": [\n\t\t6492,\n\t\t9,\n\t\t6492\n\t],\n\t\"./en-US/config\": [\n\t\t92444,\n\t\t3\n\t],\n\t\"./en-US/config.json\": [\n\t\t92444,\n\t\t3\n\t],\n\t\"./en-US/datepicker\": [\n\t\t95558,\n\t\t9,\n\t\t5558\n\t],\n\t\"./en-US/datepicker.js\": [\n\t\t95558,\n\t\t9,\n\t\t5558\n\t],\n\t\"./en-US/default\": [\n\t\t15691,\n\t\t9,\n\t\t5691\n\t],\n\t\"./en-US/default.js\": [\n\t\t15691,\n\t\t9,\n\t\t5691\n\t],\n\t\"./en-US/duration\": [\n\t\t49684,\n\t\t9,\n\t\t9710,\n\t\t9684\n\t],\n\t\"./en-US/duration.js\": [\n\t\t49684,\n\t\t9,\n\t\t9710,\n\t\t9684\n\t],\n\t\"./en-US/validation\": [\n\t\t3155,\n\t\t9,\n\t\t3155\n\t],\n\t\"./en-US/validation.js\": [\n\t\t3155,\n\t\t9,\n\t\t3155\n\t],\n\t\"./en/config\": [\n\t\t11401,\n\t\t3\n\t],\n\t\"./en/config.json\": [\n\t\t11401,\n\t\t3\n\t],\n\t\"./en/custom\": [\n\t\t85300,\n\t\t3,\n\t\t5300\n\t],\n\t\"./en/custom.json\": [\n\t\t85300,\n\t\t3,\n\t\t5300\n\t],\n\t\"./en/datepicker\": [\n\t\t71865,\n\t\t9,\n\t\t1865\n\t],\n\t\"./en/datepicker.js\": [\n\t\t71865,\n\t\t9,\n\t\t1865\n\t],\n\t\"./en/default\": [\n\t\t56886,\n\t\t9,\n\t\t6886\n\t],\n\t\"./en/default.js\": [\n\t\t56886,\n\t\t9,\n\t\t6886\n\t],\n\t\"./en/duration\": [\n\t\t86855,\n\t\t9,\n\t\t9710,\n\t\t6855\n\t],\n\t\"./en/duration.js\": [\n\t\t86855,\n\t\t9,\n\t\t9710,\n\t\t6855\n\t],\n\t\"./en/fields\": [\n\t\t87090,\n\t\t3,\n\t\t7090\n\t],\n\t\"./en/fields.json\": [\n\t\t87090,\n\t\t3,\n\t\t7090\n\t],\n\t\"./en/stac-fields\": [\n\t\t98236,\n\t\t9,\n\t\t8236\n\t],\n\t\"./en/stac-fields.js\": [\n\t\t98236,\n\t\t9,\n\t\t8236\n\t],\n\t\"./en/texts\": [\n\t\t33301,\n\t\t3,\n\t\t3301\n\t],\n\t\"./en/texts.json\": [\n\t\t33301,\n\t\t3,\n\t\t3301\n\t],\n\t\"./en/validation\": [\n\t\t98552,\n\t\t9,\n\t\t8552\n\t],\n\t\"./en/validation.js\": [\n\t\t98552,\n\t\t9,\n\t\t8552\n\t],\n\t\"./es/config\": [\n\t\t17212,\n\t\t3\n\t],\n\t\"./es/config.json\": [\n\t\t17212,\n\t\t3\n\t],\n\t\"./es/custom\": [\n\t\t14581,\n\t\t3,\n\t\t4581\n\t],\n\t\"./es/custom.json\": [\n\t\t14581,\n\t\t3,\n\t\t4581\n\t],\n\t\"./es/datepicker\": [\n\t\t54312,\n\t\t9,\n\t\t4312\n\t],\n\t\"./es/datepicker.js\": [\n\t\t54312,\n\t\t9,\n\t\t4312\n\t],\n\t\"./es/default\": [\n\t\t89113,\n\t\t9,\n\t\t9113\n\t],\n\t\"./es/default.js\": [\n\t\t89113,\n\t\t9,\n\t\t9113\n\t],\n\t\"./es/duration\": [\n\t\t46046,\n\t\t9,\n\t\t9710,\n\t\t6046\n\t],\n\t\"./es/duration.js\": [\n\t\t46046,\n\t\t9,\n\t\t9710,\n\t\t6046\n\t],\n\t\"./es/fields\": [\n\t\t11295,\n\t\t3,\n\t\t1295\n\t],\n\t\"./es/fields.json\": [\n\t\t11295,\n\t\t3,\n\t\t1295\n\t],\n\t\"./es/texts\": [\n\t\t90674,\n\t\t3,\n\t\t674\n\t],\n\t\"./es/texts.json\": [\n\t\t90674,\n\t\t3,\n\t\t674\n\t],\n\t\"./es/validation\": [\n\t\t35893,\n\t\t9,\n\t\t5893\n\t],\n\t\"./es/validation.js\": [\n\t\t35893,\n\t\t9,\n\t\t5893\n\t],\n\t\"./fr-CA/config\": [\n\t\t20995,\n\t\t3\n\t],\n\t\"./fr-CA/config.json\": [\n\t\t20995,\n\t\t3\n\t],\n\t\"./fr-CA/datepicker\": [\n\t\t6997,\n\t\t9,\n\t\t6997\n\t],\n\t\"./fr-CA/datepicker.js\": [\n\t\t6997,\n\t\t9,\n\t\t6997\n\t],\n\t\"./fr-CA/default\": [\n\t\t71082,\n\t\t9,\n\t\t5767,\n\t\t1082\n\t],\n\t\"./fr-CA/default.js\": [\n\t\t71082,\n\t\t9,\n\t\t5767,\n\t\t1082\n\t],\n\t\"./fr-CA/duration\": [\n\t\t27003,\n\t\t9,\n\t\t9710,\n\t\t7003\n\t],\n\t\"./fr-CA/duration.js\": [\n\t\t27003,\n\t\t9,\n\t\t9710,\n\t\t7003\n\t],\n\t\"./fr-CA/validation\": [\n\t\t38228,\n\t\t9,\n\t\t8228\n\t],\n\t\"./fr-CA/validation.js\": [\n\t\t38228,\n\t\t9,\n\t\t8228\n\t],\n\t\"./fr-CH/config\": [\n\t\t1738,\n\t\t3\n\t],\n\t\"./fr-CH/config.json\": [\n\t\t1738,\n\t\t3\n\t],\n\t\"./fr-CH/datepicker\": [\n\t\t81456,\n\t\t9,\n\t\t1456\n\t],\n\t\"./fr-CH/datepicker.js\": [\n\t\t81456,\n\t\t9,\n\t\t1456\n\t],\n\t\"./fr-CH/default\": [\n\t\t44545,\n\t\t9,\n\t\t5767,\n\t\t4545\n\t],\n\t\"./fr-CH/default.js\": [\n\t\t44545,\n\t\t9,\n\t\t5767,\n\t\t4545\n\t],\n\t\"./fr-CH/duration\": [\n\t\t67286,\n\t\t9,\n\t\t9710,\n\t\t7286\n\t],\n\t\"./fr-CH/duration.js\": [\n\t\t67286,\n\t\t9,\n\t\t9710,\n\t\t7286\n\t],\n\t\"./fr-CH/validation\": [\n\t\t82605,\n\t\t9,\n\t\t4986\n\t],\n\t\"./fr-CH/validation.js\": [\n\t\t82605,\n\t\t9,\n\t\t4986\n\t],\n\t\"./fr/config\": [\n\t\t37748,\n\t\t3\n\t],\n\t\"./fr/config.json\": [\n\t\t37748,\n\t\t3\n\t],\n\t\"./fr/custom\": [\n\t\t75197,\n\t\t3,\n\t\t5197\n\t],\n\t\"./fr/custom.json\": [\n\t\t75197,\n\t\t3,\n\t\t5197\n\t],\n\t\"./fr/datepicker\": [\n\t\t37036,\n\t\t9,\n\t\t7036\n\t],\n\t\"./fr/datepicker.js\": [\n\t\t37036,\n\t\t9,\n\t\t7036\n\t],\n\t\"./fr/default\": [\n\t\t1589,\n\t\t9,\n\t\t5767,\n\t\t1589\n\t],\n\t\"./fr/default.js\": [\n\t\t1589,\n\t\t9,\n\t\t5767,\n\t\t1589\n\t],\n\t\"./fr/duration\": [\n\t\t93658,\n\t\t9,\n\t\t9710,\n\t\t3658\n\t],\n\t\"./fr/duration.js\": [\n\t\t93658,\n\t\t9,\n\t\t9710,\n\t\t3658\n\t],\n\t\"./fr/fields\": [\n\t\t48148,\n\t\t3,\n\t\t5767\n\t],\n\t\"./fr/fields.json\": [\n\t\t48148,\n\t\t3,\n\t\t5767\n\t],\n\t\"./fr/texts\": [\n\t\t23418,\n\t\t3,\n\t\t3418\n\t],\n\t\"./fr/texts.json\": [\n\t\t23418,\n\t\t3,\n\t\t3418\n\t],\n\t\"./fr/validation\": [\n\t\t33129,\n\t\t9,\n\t\t3129\n\t],\n\t\"./fr/validation.js\": [\n\t\t33129,\n\t\t9,\n\t\t3129\n\t],\n\t\"./it-CH/config\": [\n\t\t16835,\n\t\t3\n\t],\n\t\"./it-CH/config.json\": [\n\t\t16835,\n\t\t3\n\t],\n\t\"./it-CH/datepicker\": [\n\t\t75862,\n\t\t9,\n\t\t3481\n\t],\n\t\"./it-CH/datepicker.js\": [\n\t\t75862,\n\t\t9,\n\t\t3481\n\t],\n\t\"./it-CH/default\": [\n\t\t77638,\n\t\t9,\n\t\t9476,\n\t\t7638\n\t],\n\t\"./it-CH/default.js\": [\n\t\t77638,\n\t\t9,\n\t\t9476,\n\t\t7638\n\t],\n\t\"./it-CH/duration\": [\n\t\t44567,\n\t\t9,\n\t\t9710,\n\t\t4567\n\t],\n\t\"./it-CH/duration.js\": [\n\t\t44567,\n\t\t9,\n\t\t9710,\n\t\t4567\n\t],\n\t\"./it-CH/validation\": [\n\t\t63048,\n\t\t9,\n\t\t3048\n\t],\n\t\"./it-CH/validation.js\": [\n\t\t63048,\n\t\t9,\n\t\t3048\n\t],\n\t\"./it/config\": [\n\t\t37295,\n\t\t3\n\t],\n\t\"./it/config.json\": [\n\t\t37295,\n\t\t3\n\t],\n\t\"./it/custom\": [\n\t\t5290,\n\t\t3,\n\t\t5290\n\t],\n\t\"./it/custom.json\": [\n\t\t5290,\n\t\t3,\n\t\t5290\n\t],\n\t\"./it/datepicker\": [\n\t\t36147,\n\t\t9,\n\t\t6147\n\t],\n\t\"./it/datepicker.js\": [\n\t\t36147,\n\t\t9,\n\t\t6147\n\t],\n\t\"./it/default\": [\n\t\t23108,\n\t\t9,\n\t\t9476,\n\t\t3108\n\t],\n\t\"./it/default.js\": [\n\t\t23108,\n\t\t9,\n\t\t9476,\n\t\t3108\n\t],\n\t\"./it/duration\": [\n\t\t67905,\n\t\t9,\n\t\t9710,\n\t\t7905\n\t],\n\t\"./it/duration.js\": [\n\t\t67905,\n\t\t9,\n\t\t9710,\n\t\t7905\n\t],\n\t\"./it/fields\": [\n\t\t39476,\n\t\t3,\n\t\t9476\n\t],\n\t\"./it/fields.json\": [\n\t\t39476,\n\t\t3,\n\t\t9476\n\t],\n\t\"./it/texts\": [\n\t\t27519,\n\t\t3,\n\t\t7519\n\t],\n\t\"./it/texts.json\": [\n\t\t27519,\n\t\t3,\n\t\t7519\n\t],\n\t\"./it/validation\": [\n\t\t66346,\n\t\t9,\n\t\t6346\n\t],\n\t\"./it/validation.js\": [\n\t\t66346,\n\t\t9,\n\t\t6346\n\t],\n\t\"./ja/config\": [\n\t\t15203,\n\t\t3\n\t],\n\t\"./ja/config.json\": [\n\t\t15203,\n\t\t3\n\t],\n\t\"./ja/custom\": [\n\t\t79870,\n\t\t3,\n\t\t9870\n\t],\n\t\"./ja/custom.json\": [\n\t\t79870,\n\t\t3,\n\t\t9870\n\t],\n\t\"./ja/datepicker\": [\n\t\t70675,\n\t\t9,\n\t\t675\n\t],\n\t\"./ja/datepicker.js\": [\n\t\t70675,\n\t\t9,\n\t\t675\n\t],\n\t\"./ja/default\": [\n\t\t4964,\n\t\t9,\n\t\t4964\n\t],\n\t\"./ja/default.js\": [\n\t\t4964,\n\t\t9,\n\t\t4964\n\t],\n\t\"./ja/duration\": [\n\t\t87905,\n\t\t9,\n\t\t9710,\n\t\t2667\n\t],\n\t\"./ja/duration.js\": [\n\t\t87905,\n\t\t9,\n\t\t9710,\n\t\t2667\n\t],\n\t\"./ja/fields\": [\n\t\t68376,\n\t\t3,\n\t\t8376\n\t],\n\t\"./ja/fields.json\": [\n\t\t68376,\n\t\t3,\n\t\t8376\n\t],\n\t\"./ja/texts\": [\n\t\t30883,\n\t\t3,\n\t\t883\n\t],\n\t\"./ja/texts.json\": [\n\t\t30883,\n\t\t3,\n\t\t883\n\t],\n\t\"./ja/validation\": [\n\t\t14826,\n\t\t9,\n\t\t4826\n\t],\n\t\"./ja/validation.js\": [\n\t\t14826,\n\t\t9,\n\t\t4826\n\t],\n\t\"./pt-BR/config\": [\n\t\t87503,\n\t\t3\n\t],\n\t\"./pt-BR/config.json\": [\n\t\t87503,\n\t\t3\n\t],\n\t\"./pt-BR/custom\": [\n\t\t54794,\n\t\t3,\n\t\t4794\n\t],\n\t\"./pt-BR/custom.json\": [\n\t\t54794,\n\t\t3,\n\t\t4794\n\t],\n\t\"./pt-BR/datepicker\": [\n\t\t20105,\n\t\t9,\n\t\t105\n\t],\n\t\"./pt-BR/datepicker.js\": [\n\t\t20105,\n\t\t9,\n\t\t105\n\t],\n\t\"./pt-BR/default\": [\n\t\t92294,\n\t\t9,\n\t\t2294\n\t],\n\t\"./pt-BR/default.js\": [\n\t\t92294,\n\t\t9,\n\t\t2294\n\t],\n\t\"./pt-BR/duration\": [\n\t\t44631,\n\t\t9,\n\t\t9710,\n\t\t4631\n\t],\n\t\"./pt-BR/duration.js\": [\n\t\t44631,\n\t\t9,\n\t\t9710,\n\t\t4631\n\t],\n\t\"./pt-BR/fields\": [\n\t\t1524,\n\t\t3,\n\t\t1524\n\t],\n\t\"./pt-BR/fields.json\": [\n\t\t1524,\n\t\t3,\n\t\t1524\n\t],\n\t\"./pt-BR/texts\": [\n\t\t69311,\n\t\t3,\n\t\t9311\n\t],\n\t\"./pt-BR/texts.json\": [\n\t\t69311,\n\t\t3,\n\t\t9311\n\t],\n\t\"./pt-BR/validation\": [\n\t\t70536,\n\t\t9,\n\t\t536\n\t],\n\t\"./pt-BR/validation.js\": [\n\t\t70536,\n\t\t9,\n\t\t536\n\t],\n\t\"./pt/config\": [\n\t\t22356,\n\t\t3\n\t],\n\t\"./pt/config.json\": [\n\t\t22356,\n\t\t3\n\t],\n\t\"./pt/custom\": [\n\t\t2653,\n\t\t3,\n\t\t2653\n\t],\n\t\"./pt/custom.json\": [\n\t\t2653,\n\t\t3,\n\t\t2653\n\t],\n\t\"./pt/datepicker\": [\n\t\t59856,\n\t\t9,\n\t\t9856\n\t],\n\t\"./pt/datepicker.js\": [\n\t\t59856,\n\t\t9,\n\t\t9856\n\t],\n\t\"./pt/default\": [\n\t\t56513,\n\t\t9,\n\t\t6513\n\t],\n\t\"./pt/default.js\": [\n\t\t56513,\n\t\t9,\n\t\t6513\n\t],\n\t\"./pt/duration\": [\n\t\t32438,\n\t\t9,\n\t\t9710,\n\t\t2438\n\t],\n\t\"./pt/duration.js\": [\n\t\t32438,\n\t\t9,\n\t\t9710,\n\t\t2438\n\t],\n\t\"./pt/fields\": [\n\t\t44455,\n\t\t3,\n\t\t4455\n\t],\n\t\"./pt/fields.json\": [\n\t\t44455,\n\t\t3,\n\t\t4455\n\t],\n\t\"./pt/texts\": [\n\t\t29946,\n\t\t3,\n\t\t9946\n\t],\n\t\"./pt/texts.json\": [\n\t\t29946,\n\t\t3,\n\t\t9946\n\t],\n\t\"./pt/validation\": [\n\t\t12685,\n\t\t9,\n\t\t2685\n\t],\n\t\"./pt/validation.js\": [\n\t\t12685,\n\t\t9,\n\t\t2685\n\t],\n\t\"./ro/config\": [\n\t\t99069,\n\t\t3\n\t],\n\t\"./ro/config.json\": [\n\t\t99069,\n\t\t3\n\t],\n\t\"./ro/custom\": [\n\t\t5160,\n\t\t3,\n\t\t5160\n\t],\n\t\"./ro/custom.json\": [\n\t\t5160,\n\t\t3,\n\t\t5160\n\t],\n\t\"./ro/datepicker\": [\n\t\t2929,\n\t\t9,\n\t\t2929\n\t],\n\t\"./ro/datepicker.js\": [\n\t\t2929,\n\t\t9,\n\t\t2929\n\t],\n\t\"./ro/default\": [\n\t\t63022,\n\t\t9,\n\t\t3022\n\t],\n\t\"./ro/default.js\": [\n\t\t63022,\n\t\t9,\n\t\t3022\n\t],\n\t\"./ro/duration\": [\n\t\t65583,\n\t\t9,\n\t\t9710,\n\t\t5583\n\t],\n\t\"./ro/duration.js\": [\n\t\t65583,\n\t\t9,\n\t\t9710,\n\t\t5583\n\t],\n\t\"./ro/fields\": [\n\t\t14758,\n\t\t3,\n\t\t4758\n\t],\n\t\"./ro/fields.json\": [\n\t\t14758,\n\t\t3,\n\t\t4758\n\t],\n\t\"./ro/texts\": [\n\t\t55577,\n\t\t3,\n\t\t5577\n\t],\n\t\"./ro/texts.json\": [\n\t\t55577,\n\t\t3,\n\t\t5577\n\t],\n\t\"./ro/validation\": [\n\t\t90944,\n\t\t9,\n\t\t944\n\t],\n\t\"./ro/validation.js\": [\n\t\t90944,\n\t\t9,\n\t\t944\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 93731;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de-CH/default.js\": [\n\t\t968,\n\t\t4490,\n\t\t968\n\t],\n\t\"./de/default.js\": [\n\t\t62862,\n\t\t4490,\n\t\t2862\n\t],\n\t\"./en-GB/default.js\": [\n\t\t63170,\n\t\t3170\n\t],\n\t\"./en-US/default.js\": [\n\t\t15691,\n\t\t5691\n\t],\n\t\"./en/default.js\": [\n\t\t56886,\n\t\t6886\n\t],\n\t\"./es/default.js\": [\n\t\t89113,\n\t\t9113\n\t],\n\t\"./fr-CA/default.js\": [\n\t\t71082,\n\t\t5767,\n\t\t1082\n\t],\n\t\"./fr-CH/default.js\": [\n\t\t44545,\n\t\t5767,\n\t\t4545\n\t],\n\t\"./fr/default.js\": [\n\t\t1589,\n\t\t5767,\n\t\t1589\n\t],\n\t\"./it-CH/default.js\": [\n\t\t77638,\n\t\t9476,\n\t\t7638\n\t],\n\t\"./it/default.js\": [\n\t\t23108,\n\t\t9476,\n\t\t3108\n\t],\n\t\"./ja/default.js\": [\n\t\t4964,\n\t\t4964\n\t],\n\t\"./pt-BR/default.js\": [\n\t\t92294,\n\t\t2294\n\t],\n\t\"./pt/default.js\": [\n\t\t56513,\n\t\t6513\n\t],\n\t\"./ro/default.js\": [\n\t\t63022,\n\t\t3022\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 33545;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de-CH/config.json\": 79933,\n\t\"./de/config.json\": 28417,\n\t\"./en-GB/config.json\": 23667,\n\t\"./en-US/config.json\": 92444,\n\t\"./en/config.json\": 11401,\n\t\"./es/config.json\": 17212,\n\t\"./fr-CA/config.json\": 20995,\n\t\"./fr-CH/config.json\": 1738,\n\t\"./fr/config.json\": 37748,\n\t\"./it-CH/config.json\": 16835,\n\t\"./it/config.json\": 37295,\n\t\"./ja/config.json\": 15203,\n\t\"./pt-BR/config.json\": 87503,\n\t\"./pt/config.json\": 22356,\n\t\"./ro/config.json\": 99069\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 97991;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = function(queue) {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach(function(fn) { fn.r--; });\n\t\tqueue.forEach(function(fn) { fn.r-- ? fn.r++ : fn(); });\n\t}\n}\nvar wrapDeps = function(deps) { return deps.map(function(dep) {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then(function(r) {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, function(e) {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = function(fn) { fn(queue); };\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = function() {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}); };\n__webpack_require__.a = function(module, body, hasAwait) {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise(function(resolve, rej) {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = function(fn) { queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](function() {}); };\n\tmodule.exports = promise;\n\tbody(function(deps) {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = function() { return currentDeps.map(function(d) {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}); }\n\t\tvar promise = new Promise(function(resolve) {\n\t\t\tfn = function() { resolve(getResult); };\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = function(q) { q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))); };\n\t\t\tcurrentDeps.map(function(dep) { dep[webpackQueues](fnQueue); });\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, function(err) { (err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue); });\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"57\":\"41f5038f\",\"105\":\"11f3ef3f\",\"143\":\"8a3d2c9a\",\"224\":\"4fba229c\",\"259\":\"c47d895a\",\"286\":\"63cf0a30\",\"287\":\"d53cc4de\",\"401\":\"2c4f1f50\",\"536\":\"394026a4\",\"537\":\"16fe35b9\",\"572\":\"2c70a609\",\"635\":\"8dfb32bc\",\"674\":\"cd3424a3\",\"675\":\"6343e128\",\"771\":\"c1d908d6\",\"883\":\"022b6cfd\",\"895\":\"61df85f7\",\"944\":\"93c5eccd\",\"967\":\"2187a41c\",\"968\":\"63b0be5d\",\"1082\":\"9524bfb4\",\"1277\":\"30f7efae\",\"1295\":\"75b0120e\",\"1456\":\"c7df2c55\",\"1524\":\"ed9cc7de\",\"1589\":\"5695c617\",\"1802\":\"1b2a76e1\",\"1865\":\"236dede4\",\"1935\":\"7e3ae466\",\"2018\":\"d8337473\",\"2294\":\"8e59dd49\",\"2438\":\"9d08758b\",\"2568\":\"229e5dd0\",\"2605\":\"61657992\",\"2653\":\"ead5227f\",\"2667\":\"e2075e28\",\"2685\":\"ae149e1e\",\"2816\":\"fadc65e3\",\"2862\":\"9f715c09\",\"2929\":\"8f5863d5\",\"2963\":\"588da4a4\",\"2986\":\"b845ef0e\",\"3022\":\"bfbf5e76\",\"3048\":\"037427d0\",\"3108\":\"342c1bac\",\"3129\":\"5ea9e162\",\"3147\":\"234d0b46\",\"3155\":\"9a5e35a5\",\"3170\":\"24cdcd45\",\"3301\":\"9629eab8\",\"3418\":\"791d39ac\",\"3481\":\"b68e7796\",\"3545\":\"9312a5b8\",\"3621\":\"c03d14b0\",\"3627\":\"c74dd113\",\"3658\":\"005b6342\",\"3665\":\"60e41131\",\"4052\":\"4207ba02\",\"4312\":\"1dfee9ef\",\"4455\":\"7ec12bc9\",\"4490\":\"2d1bfd9d\",\"4511\":\"ffe2e0e6\",\"4527\":\"0577cbe4\",\"4545\":\"0e0c6c60\",\"4567\":\"9c165ed1\",\"4581\":\"09d75b82\",\"4631\":\"185ad2fe\",\"4648\":\"27991b24\",\"4748\":\"4d28f3f9\",\"4758\":\"7bd6ca2d\",\"4794\":\"cbe91ede\",\"4801\":\"3798c5b3\",\"4826\":\"9ec0fb3b\",\"4870\":\"dd62072e\",\"4905\":\"fa8f82fd\",\"4964\":\"c30511c6\",\"4986\":\"fb82306e\",\"5048\":\"4de90b52\",\"5160\":\"5049d33b\",\"5197\":\"1c0284fb\",\"5262\":\"894c88c3\",\"5270\":\"a61c79e3\",\"5290\":\"4e66b59f\",\"5300\":\"5a758b2d\",\"5500\":\"68abc7ee\",\"5528\":\"f4b345f1\",\"5558\":\"92284de2\",\"5577\":\"88da2b76\",\"5583\":\"4ad93d3c\",\"5691\":\"b4332e7d\",\"5692\":\"53888e89\",\"5767\":\"dcd3e8f6\",\"5833\":\"4f6613e9\",\"5876\":\"53412eac\",\"5893\":\"1f30f06a\",\"6046\":\"7234cf3f\",\"6147\":\"c1651835\",\"6171\":\"36d9697a\",\"6247\":\"0d27f607\",\"6340\":\"5204c7f2\",\"6346\":\"ac9f2233\",\"6492\":\"2b9980a8\",\"6513\":\"40146f96\",\"6750\":\"4dcdb154\",\"6763\":\"d5e36df2\",\"6780\":\"204a1480\",\"6855\":\"e1724cd1\",\"6866\":\"9fb21d11\",\"6886\":\"ca913e92\",\"6892\":\"00f44640\",\"6935\":\"1e8283d8\",\"6948\":\"f672b487\",\"6997\":\"9ad3d2eb\",\"7003\":\"b064e28e\",\"7012\":\"1f22b1ae\",\"7036\":\"be852fcd\",\"7090\":\"15e869ce\",\"7130\":\"7b24d234\",\"7197\":\"925f5a53\",\"7286\":\"cbd78cd1\",\"7303\":\"add8a1d9\",\"7312\":\"ebf1e1ac\",\"7341\":\"5a9a881d\",\"7400\":\"bb1bffcb\",\"7457\":\"05737046\",\"7519\":\"43de9d9a\",\"7616\":\"1a9527fa\",\"7638\":\"147e123d\",\"7659\":\"003bcc2a\",\"7674\":\"71f8f69d\",\"7820\":\"76e052c6\",\"7843\":\"fe60856c\",\"7905\":\"28030aa8\",\"7957\":\"e0eb325d\",\"7964\":\"666a9c76\",\"8228\":\"7777ffe3\",\"8236\":\"973dee5b\",\"8376\":\"ec3800d9\",\"8499\":\"23d303cb\",\"8552\":\"8d732287\",\"8648\":\"3df871aa\",\"8704\":\"40f77f92\",\"8775\":\"c4d351a5\",\"8798\":\"ae050e23\",\"9099\":\"f0bed4dd\",\"9113\":\"8c127b65\",\"9236\":\"e05a32a6\",\"9311\":\"d9f0acbc\",\"9384\":\"dbed806a\",\"9476\":\"5a051b83\",\"9581\":\"dcdb60a1\",\"9637\":\"96af2b91\",\"9684\":\"722fad2b\",\"9710\":\"6bb10454\",\"9738\":\"17d17a36\",\"9856\":\"51f2956c\",\"9870\":\"1e0dbc7f\",\"9891\":\"f756d7a2\",\"9946\":\"5e885642\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"143\":\"ac728857\",\"401\":\"4149415b\",\"635\":\"f849b3f1\",\"967\":\"72c8c98f\",\"1802\":\"32ec082e\",\"2568\":\"6fac7cd8\",\"3147\":\"45781634\",\"3175\":\"4794afa8\",\"3545\":\"2412eeb4\",\"4052\":\"63e96376\",\"4748\":\"fc757a13\",\"5528\":\"45781634\",\"6171\":\"7090fc57\",\"6780\":\"0780c10b\",\"6866\":\"081b4583\",\"7130\":\"c4ced7cf\",\"7312\":\"81053aa2\",\"7341\":\"c9b64985\",\"7674\":\"1c24940f\",\"7957\":\"e76d18ce\",\"8648\":\"4b50bc38\",\"8775\":\"bbca74ef\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"@radiantearth/stac-browser:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/stac-browser/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"143\":1,\"401\":1,\"635\":1,\"967\":1,\"1802\":1,\"2568\":1,\"3147\":1,\"3175\":1,\"3545\":1,\"4052\":1,\"4748\":1,\"5528\":1,\"6171\":1,\"6780\":1,\"6866\":1,\"7130\":1,\"7312\":1,\"7341\":1,\"7674\":1,\"7957\":1,\"8648\":1,\"8775\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(3175 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_radiantearth_stac_browser\"] = self[\"webpackChunk_radiantearth_stac_browser\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(4786); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","directives","name","rawName","value","load","expression","modifiers","class","classes","attrs","isList","hasImage","_b","staticClass","thumbnail","_e","data","catalog","fileFormats","length","description","deprecated","_v","_s","$t","_l","format","key","_f","showKeywordsInCatalogCards","keywords","temporalExtent","domProps","_t","staticRenderFns","components","StacLink","Keywords","filters","summarize","text","Utils","summarizeMd","formatMediaType","shorten","mixins","ThumbnailCardMixin","StacFieldsMixin","formatTemporalExtent","props","type","Object","required","computed","mapState","mapGetters","push","getStac","_this$data","_this$data$extent","_this$data$extent$tem","isCollection","extent","temporal","interval","Array","isArray","getFileFormats","getMetadata","methods","visible","STAC","$store","commit","href","component","title","catalogCount","model","view","callback","$$v","isComplete","catalogs","sort","filterPlaceholder","searchTerm","allKeywords","limitText","selectedKeywords","showPagination","ref","pagination","on","paginate","hasSearchCritera","catalogView","loading","cardsComponent","tag","cardsComponentProps","scopedSlots","_u","fn","hasMore","loadMore","$event","toggle","id","BIconBricks","BIconListTask","String","default","selectedValue","$emit","ViewButtons","columns","get","state","cardViewMode","set","dispatch","Catalog","Loading","Pagination","SearchBox","SortButtons","Multiselect","ViewMixin","collectionsOnly","Boolean","count","Number","$tc","values","some","link","allCatalogs","map","stac","filter","hasKeywords","every","keyword","includes","haystack","concat","search","collator","Intl","Collator","uiLanguage","slice","a","b","compare","getDisplayTitle","reverse","created","cardViewSort","placement","$refs","topPagination","scrollTo","$el","copyColor","preventDefault","stopPropagation","copy","apply","arguments","buttonProps","copyIcon","BIconClipboard","BIconClipboardCheck","BIconClipboardX","copyText","variant","status","startsWith","focus","document","activeElement","Clipboard","error","console","setTimeout","compact","inline","markup","allowHTML","reader","commonmark","writer","safe","smart","parsed","parse","dismissible","message","url","Error","queued","isDeprecated","hasDescription","item","properties","showKeywordsInItemCards","datetime","Registry","require","formatTimestamp","start_datetime","end_datetime","hasText","items","itemCount","api","allowFilter","hasFilters","filtersOpen","filterCount","apiFilters","emitFilter","chunkedItems","showMore","BCollapse","BIconSearch","Item","SearchFilter","showFilters","chunkSize","shownItems","size","sortby","watch","mounted","reset","small","fill","stretch","top","first","prev","next","last","tooltip","attributes","icon","displayTitle","fallbackTitle","Function","button","icons","getIcons","find","o","isLink","isStacBrowserLink","isStacMediaType","allowExternalAccess","isExternalUrl","stacBrowserNavigatesTo","rel","obj","to","isObject","assign","target","getBrowserPath","toBrowserPath","privateQueryParameters","uri","URI","addParameters","prefix","queryKey","hasQuery","addQuery","toString","getRequestUrl","fallback","module","exports","catalogUrl","catalogTitle","allowedDomains","detectLocaleFromBrowser","storeLocale","locale","fallbackLocale","supportedLocales","apiCatalogPriority","useTileLayerAsFallback","displayGeoTiffByDefault","buildTileUrlTemplate","asset","encodeURIComponent","stacProxyUrl","pathPrefix","historyMode","showThumbnailsAsAssets","geoTiffResolution","redirectLegacyUrls","itemsPerPage","defaultThumbnailSize","maxPreviewsOnMap","crossOriginMedia","requestHeaders","requestQueryParameters","socialSharing","preprocessSTAC","authConfig","Auth","constructor","options","changeListener","router","getButtonTitle","getLoginLabel","i18n","t","getLogoutLabel","getComponent","getComponentProps","init","login","confirmLogin","credentials","logout","confirmLogout","close","updateStore","_updateStore","defaultName","defaultIn","defaultFormatter","formatter","in_","in","undefined","query","cookie","header","create","config","method","scheme","BasicAuth","ApIKey","OIDC","equals","JSON","stringify","BrowserStorage","enabled","engine","setItem","getItem","removeItem","session","window","sessionStorage","navigator","cookieEnabled","Cookies","NoOp","localStorage","JSON_INDICATOR","remove","clear","_defineProperty","getExpiry","minutes","date","Date","setTime","getTime","epires","toGMTString","expires","parts","split","c","trim","substring","decodeURIComponent","warn","CQL_TEXT","CQL_JSON","CQL_ADV_COMPARISON","TYPES","Items","BasicFilters","CollectionIdFilter","ItemIdFilter","CqlFilters","Sort","FreeText","Global","Collections","conformances","canSort","supportsConformance","canFilterExtents","canFilterFreeText","cql","textMode","jsonMode","advancedComparison","functions","mixin","showThumbnail","isItem","thumbnails","getThumbnails","width","height","src","alt","crossorigin","right","blankColor","AuthUtils","resolveAuth","context","isSupported","schema","convertLegacyAuthConfig","CONFIG_PATH","CONFIG_CLI","STAC_BROWSER_CONFIG","Vue","use","VueI18n","API_LANGUAGE_CONFORMANCE","LOCALE_CONFIG","loadLocaleConfig","CONFIG","messages","languages","postTranslation","path","loadDefaultMessages","Promise","all","loadMessages","async","mergeLocaleMessage","executeCustomFunctions","customizeFiles","customize","p","file","translateFields","vars","te","Fields","stringLocale","keywordPos","indexOf","substr","localeWithoutKeyword","replace","language","shift","retVar","toLowerCase","pop","toUpperCase","country","script","prepareSupported","supported","lgs","forEach","supportedLocale","countries","firstCountry","main","lg","getBest","defaultLocale","getAnyCountry","showLogin","globalError","hideError","sidebar","displayCatalogTitle","browserVersion","proxy","isExternal","errorDescription","errorId","tab","selectedAsset","dataChanged","hasAssets","assets","shownAssets","showAsset","additionalLinks","collectionLink","providers","ignoredMetadataFields","shownAssetsOnMap","shownBandsOnMap","selectedAssetKey","keys","thumbnailRefs","isThumbnail","tabs","bands","meta","toBrowserUrl","store","getters","location","origin","fragment","removeTrailingSlash","addSpatialCoverage","bbox","spatialCoverage","geo","box","join","formatTemporalCoverage","dates","dt","makeAssets","contentUrl","toAbsolute","getAbsoluteUrl","encodingFormat","makeLinks","links","isBasedOn","fallbackDescription","makeProvider","role","roles","email","mail","stacType","container","collection","tc","inX","createBaseSchema","_data$getMetadata","thumbnailUrl","stacUrl","inLanguage","code","license","_data$getLinkWithRel","getLinkWithRel","copyrightHolder","producer","provider","creator","citation","identifier","dateCreated","dateModified","datePublished","version","image","createCatalogSchema","parents","i","findIndex","_data$extent","_data$extent$temporal","_data$extent2","_data$extent2$spatial","temporalCoverage","spatial","associatedMedia","hasPart","dataset","isPartOf","createItemSchema","includedInDataCatalog","start","end","distribution","addSchemaToDocument","doc","element","getElementById","createElement","head","appendChild","innerText","AnonymizedNotice","Assets","BTabs","BTab","CollectionLink","Description","DeprecationNotice","Links","Map","Metadata","Providers","ReadMore","Thumbnails","ShowAssetMixin","immediate","handler","parentLink","cc","cssStacType","mixed","hasCatalogs","hasItems","empty","licenses","temporalExtents","linkPosition","hasThumbnails","mapData","hasItemAssets","item_assets","nextCollectionsLink","loadMoreCollections","isApi","itemPages","apiItemsLoading","paginateItems","filterItems","filtersShown","Catalogs","formatLicense","formatTemporalExtents","_this$data2","stateQueryParameters","getApiItemsLoading","summaries","extents","_this$data3","pages","apiItemsPagination","apiItemsLink","addFiltersToLink","getApiItemsLink","features","rootLink","show","$root","msg","BrowseMixin","getPath","route","params","pathMatch","getRoutes","routes","loadParent","Browse","handleAuthError","cx","root","getStore","namespaced","actions","inProgress","canAuthenticate","rootState","isLoggedIn","mutations","setCredentials","setMethod","addAction","resetActions","setInProgress","waitForAuth","updateMethod","storage","newAuth","requestLogin","finalizeLogin","abortLogin","requestLogout","finalizeLogout","updateCredentials","intent","executeActions","catch","localDefaults","localRequestQueryParameters","itemdef","apiItems","catalogDefaults","queue","authActions","conformsTo","dataLanguage","dataLanguages","apiCollections","Vuex","strict","process","modules","auth","database","allowSelectCatalog","globalRequestQueryParameters","source","returnErrorObject","absoluteUrl","_state$data","isCatalog","_state$data2","isCatalogLike","_state$data3","_state$data4","_","_state$data5","getStacLinkWithRel","createLink","getLinksWithRels","segment","_state$data6","classRegexp","replaceAll","regexp","RegExp","match","supportsExtension","schemaUri","canSearch","canSearchCollections","canSearchItems","getStacLinksWithRel","hasCollections","getApiCollectionsLink","hasChilds","showCollections","showChilds","addMissingChildren","_state$data7","getLinksWithOtherRels","stacBrowserSpecialHandling","canBrowserDisplayImage","relative","absolute","unproxyUrl","relativeTo","protocol","authority","q","fromBrowserPath","externalRE","endsWith","whitelist","domain","is","relativeStr","baseUrl","addLocalQueryParams","proxyUrl","addQueryIfNotExists","acceptedLanguages","entries","l","setQueryParameter","delete","setRequestHeader","requestAuth","doAuth","setAuthData","authData","newState","updateState","openCollapsible","uid","idx","closeCollapsible","updateLoading","loaded","processSTAC","resetCatalog","clearAll","resetPage","setPageMetadata","showPage","unshift","lang","errored","unqueue","splice","removeFromQueue","num","setConformanceClasses","setApiItemsLink","toggleApiItemsLoading","collectionId","setApiItems","feature","getPaginationLinks","setApiData","addApiCollections","collections","nextLink","resetApiItems","showGlobalError","trace","oldConfig","switchLocale","userSelected","dataLanguageCodes","dataLanguageFallback","I18N","loadBackground","urls","promises","loadParents","parentStac","tryLogin","action","BrowserError","args","force","noRetry","hasData","isPotentiallyIncomplete","response","stacRequest","localeLink","getLocaleLink","conformanceLink","isAuthenticationError","loadApiItems","selfLink","_cx$getters$root","apiCollectionsLink","markPotentiallyIncomplete","loadNextApiCollections","loadOgcApiConformance","loadGeoJson","retryAfterAuth","errorFn","isStacChooser","containerLink","back","selfBrowserLink","parentLinkTitle","collectionLinkTitle","searchBrowserLink","isSearchPage","authTitle","logInOut","authIcon","authLabel","showRoot","rootTitle","currentLanguage","native","global","supportsLanguageExt","ui","stacId","stacVersion","browserUrl","enableSocialSharing","sharingMessage","label","open","BFormGroup","BFormInput","BIconArrowUpRightSquare","BInputGroup","BInputGroupAppend","CopyButton","service","urlTemplates","bsky","mastodon","x","uriText","uriTitle","uriUrl","LANGUAGE_EXT","BDropdown","BDropdownItem","BIconBlank","BIconBox","BIconCheck","BIconExclamationTriangle","BIconFlag","BIconLink","BIconShare","BPopover","RootStats","Url","SocialSharing","Validation","_this$stac","stac_version","_this$stac2","newLang","alternate","uiSupported","dataSupported","mapActions","BIconArrow90degUp","BIconArrowLeft","BIconBook","BIconFolderSymlink","BIconLock","BIconUnlock","Source","authMethod","$route","searchLink","getSearchLink","equalUrl","mapMutations","$router","currentRoute","authComponent","submit","ApiKey","Basic","authComponentProps","beforeCreate","AlertPlugin","ButtonGroupPlugin","ButtonPlugin","BadgePlugin","CardPlugin","LayoutPlugin","SpinnerPlugin","directive","VBToggle","VBVisible","VueRouter","mode","base","scrollBehavior","y","Props","Watchers","newValue","Authentication","ErrorAlert","Sidebar","StacHeader","onDataLoaded","detectLocaleFromBrowserFromVueX","supportedLocalesFromVueX","storeLocaleFromVueX","STAC_BROWSER_VERSION","setAttribute","summary","$i18n","documentElement","deep","duplicated","oldRoot","canChange","doReset","doSet","onReady","detectLocale","parseQuery","afterEach","from","resetOp","$on","showError","setInterval","best","_params$state","privateFromHash","hash","private","realKey","localRequest","then","h","StacBrowser","$mount","productionTip","stacObjCounter","migrate","_id","_url","_path","_apiChildrenListeners","_incomplete","_apiChildren","list","Migrate","isItemCollection","hasApiData","setApiDataListener","listener","v","getChildren","priority","children","isMediaType","geojsonMediaType","post","field","available","hreflang","allowEmpty","rels","getAssetsWithRoles","matches","sources","getTitle","titleForHref","_linkToAbsolute","img","browserOnly","prefer","other","stacHierarchy","stacPagination","ogcQueryables","ogcRelPrefix","stacRequestOptions","headers","Accept","body","axiosOptions","axios","freeze","_error$response","commonFileNames","schemaMediaType","stacMediaTypes","browserImageTypes","cogMediaTypes","geotiffMediaTypes","browserProtocols","imageMediaTypes","mapMediaTypes","super","types","string","shortenTitle","fullStr","strLen","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","isGdalVfsUri","normalizeUri","noParams","absoluteTo","normalize","str","uri1","uri2","maxLength","removeMd","el","rect","getBoundingClientRect","isVisible","innerHeight","bottom","scrollIntoView","behavior","block","dateFromUTC","getTimezoneOffset","dateToUTC","formatDatetimeQuery","toISOString","formatSortbyForPOST","direction","pageLinks","pageLink","isEmpty","isFinite","limit","toJSON","removeQuery","toText","setQuery","preferFileName","filename","dir","directory","suffix","getValueFromObjectUsingPath","object","searchterm","and","splitChars","s","term","pattern","test","mergeDeep","isAxiosError","res","oldPath","redirectLegacyUrl","part","decode","newPath","webpackAsyncContext","req","__webpack_require__","resolve","e","ids","webpackContext","webpackContextResolve","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","m","webpackQueues","Symbol","webpackExports","webpackError","resolveQueue","d","r","wrapDeps","deps","dep","ret","hasAwait","currentDeps","outerResolve","reject","depQueues","Set","promise","rej","getResult","fnQueue","has","add","err","deferred","O","result","chunkIds","notFulfilled","Infinity","fulfilled","j","n","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","reduce","u","miniCssF","g","globalThis","hmd","prop","prototype","hasOwnProperty","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","nonce","onLinkComplete","errorType","realHref","request","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file