@openeo/js-client 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/openeo.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("axios"),require("Oidc"));else if("function"==typeof define&&define.amd)define(["axios","Oidc"],t);else{var s="object"==typeof exports?t(require("axios"),require("Oidc")):t(e.axios,e.Oidc);for(var r in s)("object"==typeof exports?exports:e)[r]=s[r]}}(self,((e,t)=>(()=>{var s={659:(e,t,s)=>{const r=s(768);class i{constructor(e=[],t=!1){if(this.listeners=[],this.processes={},this.addNamespace=t,e instanceof i)for(let t in e.processes)this.addAll(e.processes[t]);else this.addAll(e)}onChange(e,t,s){for(let r of this.listeners)r(e,t,s)}addAll(e,t="backend"){for(var s in e)this.add(e[s],t,!1);this.onChange("addAll",e,t)}add(e,t="backend",s=!0){if(!r.isObject(e))throw new Error("Invalid process; not an object.");if("string"!=typeof e.id)throw new Error("Invalid process; no id specified.");if("string"!=typeof t)throw new Error("Invalid namespace; not a string.");this.processes[t]||(this.processes[t]={}),e=Object.assign(this.addNamespace?{namespace:t}:{},e),this.processes[t][e.id]=e,s&&this.onChange("add",e,t)}count(){return r.size(this.all())}all(){let e=[];for(let t in this.processes)e=e.concat(Object.values(this.processes[t]));return e}hasNamespace(e){return"string"==typeof e&&Boolean(this.processes[e])}namespaces(){return Object.keys(this.processes).sort()}namespace(e){if("string"!=typeof e)return[];let t=this.processes[e];return t?Object.values(t):[]}has(e,t=null){return Boolean(this.get(e,t))}get(e,t=null){return"string"!=typeof e?null:null===t?this.get(e,"user")||this.get(e,"backend"):this.processes[t]&&this.processes[t][e]||null}remove(e=null,t="user"){if("string"!=typeof t)return!1;if(this.processes[t]){if("string"!=typeof e)return delete this.processes[t],this.onChange("remove",null,t),!0;if(this.processes[t][e]){let s=this.processes[t][e];return delete this.processes[t][e],0===r.size(this.processes[t])&&delete this.processes[t],this.onChange("remove",s,t),!0}}return!1}}e.exports=i},779:(e,t,s)=>{const r=s(768);class i{static normalizeJsonSchema(e,t=!1){r.isObject(e)?e=[e]:Array.isArray(e)||(e=[]);let s=[];for(let t of e)if(Array.isArray(t.allOf))s.push(Object.assign({},...t.allOf));else if(Array.isArray(t.oneOf)||Array.isArray(t.anyOf)){let e=r.omitFromObject(t,["oneOf","anyOf"]),i=t.oneOf||t.anyOf;for(let t of i)s.push(Object.assign({},e,t))}else s.push(t);if(!t)return s;e=[];for(let t of s)Array.isArray(t.type)?e=e.concat(t.type.map((e=>Object.assign({},t,{type:e})))):e.push(t);return e}static getCallbackParameters(e,t=[]){if(!r.isObject(e)||!e.schema)return[];let s,n=i.normalizeJsonSchema(e.schema);for(;s=t.shift();)n=n.map((e=>i.normalizeJsonSchema(i.getElementJsonSchema(e,s)))),n=n.concat(...n);let a=[];for(let e of n){let t=null;if(Array.isArray(e.parameters)?t=e.parameters:r.isObject(e.additionalProperties)&&Array.isArray(e.additionalProperties.parameters)&&(t=e.additionalProperties.parameters),Array.isArray(t)){if(a.length>0&&!r.equals(a,t))throw new Error("Multiple schemas with different callback parameters found.");a=t}}return a}static getCallbackParametersForProcess(e,t,s=[]){if(!r.isObject(e)||!Array.isArray(e.parameters))return[];let n=e.parameters.find((e=>e.name===t));return i.getCallbackParameters(n,s)}static getNativeTypesForJsonSchema(e,t=!1){if(r.isObject(e)&&Array.isArray(e.type)){let s=r.unique(e.type).filter((e=>i.JSON_SCHEMA_TYPES.includes(e)));return s.length>0&&s.length<i.JSON_SCHEMA_TYPES.length?s:t?[]:i.JSON_SCHEMA_TYPES}return r.isObject(e)&&"string"==typeof e.type&&i.JSON_SCHEMA_TYPES.includes(e.type)?[e.type]:t?[]:i.JSON_SCHEMA_TYPES}static getElementJsonSchema(e,t=null){let s=i.getNativeTypesForJsonSchema(e);if(r.isObject(e)&&s.includes("array")&&"string"!=typeof t){if(r.isObject(e.items))return e.items;if(Array.isArray(e.items)){if(null!==t&&r.isObject(e.items[t]))return e.items[t];if(r.isObject(e.additionalItems))return e.additionalItems}}if(r.isObject(e)&&s.includes("object")){if(null!==t&&r.isObject(e.properties)&&r.isObject(e.properties[t]))return e.properties[t];if(r.isObject(e.additionalProperties))return e.additionalProperties}return{}}}i.JSON_SCHEMA_TYPES=["string","number","integer","boolean","array","object","null"],e.exports=i},768:(e,t,s)=>{var r=s(252);class i{static isObject(e){return"object"==typeof e&&e===Object(e)&&!Array.isArray(e)}static hasText(e){return"string"==typeof e&&e.length>0}static equals(e,t){return r(e,t)}static pickFromObject(e,t){e=Object(e),"string"==typeof t&&(t=[t]);const s={};return t.forEach((t=>s[t]=e[t])),s}static omitFromObject(e,t){e=Object(e),"string"==typeof t&&(t=[t]);var s=Object.assign({},e);for(let e of t)delete s[e];return s}static mapObject(e,t){const s=Object.keys(e),r=new Array(s.length);return s.forEach(((s,i)=>{r[i]=t(e[s],s,e)})),r}static mapObjectValues(e,t){e=Object(e);const s={};return Object.keys(e).forEach((r=>{s[r]=t(e[r],r,e)})),s}static unique(e,t=!1){return t?e.filter(((e,t,s)=>s.findIndex((t=>i.equals(e,t)))===t)):[...new Set(e)]}static size(e){return"object"==typeof e&&null!==e?Array.isArray(e)?e.length:Object.keys(e).length:0}static isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}static deepClone(e){return JSON.parse(JSON.stringify(e))}static normalizeUrl(e,t=null){let s=e.replace(/\/$/,"");return"string"==typeof t&&("/"!==t.substr(0,1)&&(t="/"+t),s+=t.replace(/\/$/,"")),s}static replacePlaceholders(e,t={}){if("string"==typeof e&&i.isObject(t))for(var s in t){let r=t[s];e=e.replace("{"+s+"}",Array.isArray(r)?r.join("; "):r)}return e}static compareStringCaseInsensitive(e,t){return"string"!=typeof e&&(e=String(e)),"string"!=typeof t&&(t=String(t)),e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})}static prettifyString(e,t="; "){return Array.isArray(e)||(e=[String(e)]),(e=e.map((e=>{if(e.length>=3){const t=(e,t,s)=>t+" "+s.toUpperCase();return(e=e.includes("_")?e.replace(/([a-zA-Z\d])_([a-zA-Z\d])/g,t):e.includes("-")?e.replace(/([a-zA-Z\d])-([a-zA-Z\d])/g,t):e.replace(/([a-z])([A-Z])/g,t)).charAt(0).toUpperCase()+e.substr(1)}return e}))).join(t)}static friendlyLinks(e,t=!0,s=["self"]){let r=[];if(!Array.isArray(e))return r;for(let t of e)t=Object.assign({},t),"string"==typeof t.rel&&s.includes(t.rel.toLowerCase())||("string"==typeof t.title&&0!==t.title.length||("string"==typeof t.rel&&t.rel.length>1?t.title=i.prettifyString(t.rel):t.title=t.href.replace(/^https?:\/\/(www.)?/i,"").replace(/\/$/i,"")),r.push(t));return t&&r.sort(((e,t)=>i.compareStringCaseInsensitive(e.title,t.title))),r}}e.exports=i},304:(e,t,s)=>{const{compare:r,compareVersions:i,validate:n}=s(385);class a{static compare(e,t,s=null){return null!==s?r(e,t,s):i(e,t)}static validate(e){return n(e)}static findCompatible(e,t=!0,s=null,r=null){if(!Array.isArray(e)||0===e.length)return[];let i=e.filter((e=>{if("string"==typeof e.url&&a.validate(e.api_version)){let t=a.validate(s),i=a.validate(r);return t&&i?a.compare(e.api_version,s,">=")&&a.compare(e.api_version,r,"<="):t?a.compare(e.api_version,s,">="):!i||a.compare(e.api_version,r,"<=")}return!1}));return 0===i.length?[]:i.sort(((e,s)=>{let r=!0===e.production,i=!0===s.production;return t&&r!==i?r?-1:1:-1*a.compare(e.api_version,s.api_version)}))}static findLatest(e,t=!0,s=null,r=null){let i=a.findCompatible(e,t,s,r);return i.length>0?i[0]:null}}e.exports=a},321:(e,t,s)=>{var r=s(139);const i="1.0.0",n={classification:"https://stac-extensions.github.io/classification/v1.1.0/schema.json",datacube:"https://stac-extensions.github.io/datacube/v2.1.0/schema.json",eo:"https://stac-extensions.github.io/eo/v1.0.0/schema.json",file:"https://stac-extensions.github.io/file/v1.0.0/schema.json","item-assets":"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json",label:"https://stac-extensions.github.io/label/v1.0.1/schema.json",pointcloud:"https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json",processing:"https://stac-extensions.github.io/processing/v1.1.0/schema.json",projection:"https://stac-extensions.github.io/projection/v1.0.0/schema.json",raster:"https://stac-extensions.github.io/raster/v1.1.0/schema.json",sar:"https://stac-extensions.github.io/sar/v1.0.0/schema.json",sat:"https://stac-extensions.github.io/sat/v1.0.0/schema.json",scientific:"https://stac-extensions.github.io/scientific/v1.0.0/schema.json",table:"https://stac-extensions.github.io/table/v1.2.0/schema.json",timestamps:"https://stac-extensions.github.io/timestamps/v1.0.0/schema.json",version:"https://stac-extensions.github.io/version/v1.0.0/schema.json",view:"https://stac-extensions.github.io/view/v1.0.0/schema.json"},a={itemAndCollection:{"cube:":n.datacube,"eo:":n.eo,"file:":n.file,"label:":n.label,"pc:":n.pointcloud,"processing:":n.processing,"proj:":n.projection,"raster:":n.raster,"sar:":n.sar,"sat:":n.sat,"sci:":n.scientific,"view:":n.view,version:n.version,deprecated:n.version,published:n.timestamps,expires:n.timestamps,unpublished:n.timestamps},catalog:{},collection:{item_assets:n["item-assets"]},item:{}};a.collection=Object.assign(a.collection,a.itemAndCollection),a.item=Object.assign(a.item,a.itemAndCollection);var o={parseUrl(e){let t=e.match(/^https?:\/\/stac-extensions.github.io\/([^\/]+)\/v([^\/]+)\/[^.]+.json$/i);if(t)return{id:t[1],version:t[2]}}},l={version:i,extensions:{},set(e){if("string"!=typeof e.stac_version?l.version="0.6.0":l.version=e.stac_version,Array.isArray(e.stac_extensions))for(let t of e.stac_extensions){let e=o.parseUrl(t);e&&(l.extensions[e.id]=e.version)}},before(e,t=null){let s=t?l.extensions[t]:l.version;return void 0!==s&&r.compare(s,e,"<")}},c={type(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(Array.isArray(e))return"array"}return t},is:(e,t)=>c.type(e)===t,isDefined:e=>void 0!==e,isObject:e=>"object"==typeof e&&e===Object(e)&&!Array.isArray(e),rename:(e,t,s)=>void 0!==e[t]&&void 0===e[s]&&(e[s]=e[t],delete e[t],!0),forAll(e,t,s){if(e[t]&&"object"==typeof e[t])for(let r in e[t])s(e[t][r])},toArray:(e,t)=>void 0!==e[t]&&!Array.isArray(e[t])&&(e[t]=[e[t]],!0),flattenArray(e,t,s,r=!1){if(Array.isArray(e[t])){for(let i in e[t])if("string"==typeof s[i]){let n=e[t][i];e[s[i]]=r?[n]:n}return delete e[t],!0}return!1},flattenOneElementArray:(e,t,s=!1)=>!(!s&&Array.isArray(e[t]))||1===e[t].length&&(e[t]=e[t][0],!0),removeFromArray(e,t,s){if(Array.isArray(e[t])){let r=e[t].indexOf(s);return r>-1&&e[t].splice(r,1),!0}return!1},ensure:(e,t,s)=>(c.type(s)!==c.type(e[t])&&(e[t]=s),!0),upgradeExtension(e,t){let{id:s,version:i}=o.parseUrl(t),n=e.stac_extensions.findIndex((e=>{let t=o.parseUrl(e);return t&&t.id===s&&r.compare(t.version,i,"<")}));return-1!==n&&(e.stac_extensions[n]=t,!0)},addExtension(e,t){let{id:s,version:i}=o.parseUrl(t),n=e.stac_extensions.findIndex((e=>{if(e===t)return!0;let n=o.parseUrl(e);return!(!n||n.id!==s||!r.compare(n.version,i,"<"))}));return-1===n?e.stac_extensions.push(t):e.stac_extensions[n]=t,e.stac_extensions.sort(),!0},removeExtension:(e,t)=>c.removeFromArray(e,"stac_extensions",t),migrateExtensionShortnames(e){let t=Object.keys(n),s=Object.values(n);return c.mapValues(e,"stac_extensions",t,s)},populateExtensions(e,t){let s=[];"catalog"!=t&&"collection"!=t||s.push(e),"item"!=t&&"collection"!=t||!c.isObject(e.assets)||(s=s.concat(Object.values(e.assets))),"collection"==t&&c.isObject(e.item_assets)&&(s=s.concat(Object.values(e.item_assets))),"collection"==t&&c.isObject(e.summaries)&&s.push(e.summaries),"item"==t&&c.isObject(e.properties)&&s.push(e.properties);for(let r of s)Object.keys(r).forEach((s=>{let r=s.match(/^(\w+:|[^:]+$)/i);if(Array.isArray(r)){let s=a[t][r[0]];c.is(s,"string")&&c.addExtension(e,s)}}))},mapValues(e,t,s,r){let i=e=>{let t=s.indexOf(e);return t>=0?r[t]:e};return Array.isArray(e[t])?e[t]=e[t].map(i):void 0!==e[t]&&(e[t]=i(e[t])),!0},mapObject(e,t){for(let s in e)e[s]=t(e[s],s)},moveTo(e,t,s,r=!1,i=!1){let n;return n=r?i?e=>Array.isArray(e):e=>Array.isArray(e)&&1===e.length:c.isDefined,!!n(e[t])&&(s[t]=r&&!i?e[t][0]:e[t],delete e[t],!0)},runAll(e,t,s,r){for(let i in e)i.startsWith("migrate")||e[i](t,s,r)},toUTC(e,t){if("string"==typeof e[t])try{return e[t]=this.toISOString(e[t]),!0}catch(e){}return delete e[t],!1},toISOString:e=>(e instanceof Date||(e=new Date(e)),e.toISOString().replace(".000",""))},u={multihash:null,hexToUint8(e){if(0===e.length||e.length%2!=0)throw new Error(`The string "${e}" is not valid hex.`);return new Uint8Array(e.match(/.{1,2}/g).map((e=>parseInt(e,16))))},uint8ToHex:e=>e.reduce(((e,t)=>e+t.toString(16).padStart(2,"0")),""),toMultihash(e,t,s){if(!u.multihash||!c.is(e[t],"string"))return!1;try{const r=u.multihash.encode(u.hexToUint8(e[t]),s);return e[t]=u.uint8ToHex(r),!0}catch(e){return console.warn(e),!1}}},p={migrate:(e,t=!0)=>(l.set(e),t&&(e.stac_version=i),e.type="Catalog",c.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&c.migrateExtensionShortnames(e),c.ensure(e,"id",""),c.ensure(e,"description",""),c.ensure(e,"links",[]),c.runAll(p,e,e),l.before("0.8.0")&&c.populateExtensions(e,"catalog"),e)},h={migrate:(e,t=!0)=>(p.migrate(e,t),e.type="Collection",l.before("1.0.0-rc.1")&&c.migrateExtensionShortnames(e),c.ensure(e,"license","proprietary"),c.ensure(e,"extent",{spatial:{bbox:[]},temporal:{interval:[]}}),c.runAll(h,e,e),c.isObject(e.properties)&&(c.removeFromArray(e,"stac_extensions","commons"),delete e.properties),l.before("0.8.0")&&c.populateExtensions(e,"collection"),l.before("1.0.0-beta.1")&&c.mapValues(e,"stac_extensions",["assets"],["item-assets"]),e),extent(e){if(c.ensure(e,"extent",{}),l.before("0.8.0")&&(Array.isArray(e.extent.spatial)&&(e.extent.spatial={bbox:[e.extent.spatial]}),Array.isArray(e.extent.temporal)&&(e.extent.temporal={interval:[e.extent.temporal]})),c.ensure(e.extent,"spatial",{}),c.ensure(e.extent.spatial,"bbox",[]),c.ensure(e.extent,"temporal",{}),c.ensure(e.extent.temporal,"interval",[]),l.before("1.0.0-rc.3")){if(e.extent.temporal.interval.length>1){let t,s;for(let r of e.extent.temporal.interval){if(null===r[0])t=null;else if("string"==typeof r[0]&&null!==t)try{let e=new Date(r[0]);(void 0===t||e<t)&&(t=e)}catch(e){}if(null===r[1])s=null;else if("string"==typeof r[1]&&null!==s)try{let e=new Date(r[1]);(void 0===s||e>s)&&(s=e)}catch(e){}}e.extent.temporal.interval.unshift([t?c.toISOString(t):null,s?c.toISOString(s):null])}if(e.extent.spatial.bbox.length>1){let t=e.extent.spatial.bbox.reduce(((e,t)=>Array.isArray(t)?Math.max(t.length,e):e),4);if(t>=4){let s=new Array(t).fill(null),r=t/2;for(let t of e.extent.spatial.bbox){if(!Array.isArray(t)||t.length<4)break;for(let e in t){let i=t[e];null===s[e]?s[e]=i:s[e]=e<r?Math.min(i,s[e]):Math.max(i,s[e])}}-1===s.findIndex((e=>null===e))&&e.extent.spatial.bbox.unshift(s)}}}},collectionAssets(e){l.before("1.0.0-rc.1")&&c.removeExtension(e,"collection-assets"),g.migrateAll(e)},itemAsset(e){l.before("1.0.0-beta.2")&&c.rename(e,"item_assets","assets"),g.migrateAll(e,"item_assets")},summaries(e){if(c.ensure(e,"summaries",{}),l.before("0.8.0")&&c.isObject(e.other_properties)){for(let t in e.other_properties){let s=e.other_properties[t];Array.isArray(s.extent)&&2===s.extent.length?e.summaries[t]={minimum:s.extent[0],maximum:s.extent[1]}:Array.isArray(s.values)&&(s.values.filter((e=>Array.isArray(e))).length===s.values.length?e.summaries[t]=s.values.reduce(((e,t)=>e.concat(t)),[]):e.summaries[t]=s.values)}delete e.other_properties}if(l.before("1.0.0-beta.1")&&c.isObject(e.properties)&&!e.links.find((e=>["child","item"].includes(e.rel))))for(let t in e.properties){let s=e.properties[t];Array.isArray(s)||(s=[s]),e.summaries[t]=s}l.before("1.0.0-rc.1")&&c.mapObject(e.summaries,(e=>(c.rename(e,"min","minimum"),c.rename(e,"max","maximum"),e))),y.migrate(e.summaries,e,!0),c.moveTo(e.summaries,"sci:doi",e,!0)&&c.addExtension(e,n.scientific),c.moveTo(e.summaries,"sci:publications",e,!0,!0)&&c.addExtension(e,n.scientific),c.moveTo(e.summaries,"sci:citation",e,!0)&&c.addExtension(e,n.scientific),c.moveTo(e.summaries,"cube:dimensions",e,!0)&&c.addExtension(e,n.datacube),0===Object.keys(e.summaries).length&&delete e.summaries}},d={migrate(e,t=null,s=!0){l.set(e),s&&(e.stac_version=i),c.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&c.migrateExtensionShortnames(e),c.ensure(e,"id",""),c.ensure(e,"type","Feature"),c.isObject(e.geometry)||(e.geometry=null),null!==e.geometry&&c.ensure(e,"bbox",[]),c.ensure(e,"properties",{}),c.ensure(e,"links",[]),c.ensure(e,"assets",{});let r=!1;return c.isObject(t)&&c.isObject(t.properties)&&(c.removeFromArray(e,"stac_extensions","commons"),e.properties=Object.assign({},t.properties,e.properties),r=!0),c.runAll(d,e,e),y.migrate(e.properties,e),g.migrateAll(e),(l.before("0.8.0")||r)&&c.populateExtensions(e,"item"),e}},f={migrate:(e,t=!0)=>(c.ensure(e,"collections",[]),c.ensure(e,"links",[]),c.runAll(f,e,e),e.collections=e.collections.map((e=>h.migrate(e,t))),e)},m={migrate:(e,t=!0)=>(c.ensure(e,"type","FeatureCollection"),c.ensure(e,"features",[]),c.ensure(e,"links",[]),c.runAll(m,e,e),e.features=e.features.map((e=>d.migrate(e,null,t))),e)},g={migrateAll(e,t="assets"){for(let s in e[t])g.migrate(e[t][s],e)},migrate:(e,t)=>(c.runAll(g,e,t),y.migrate(e,t),e),mediaTypes(e){c.is(e.type,"string")&&c.mapValues(e,"type",["image/vnd.stac.geotiff","image/vnd.stac.geotiff; cloud-optimized=true"],["image/tiff; application=geotiff","image/tiff; application=geotiff; profile=cloud-optimized"])},eo(e,t){let s=c.isObject(t.properties)&&Array.isArray(t.properties["eo:bands"])?t.properties["eo:bands"]:[];if(Array.isArray(e["eo:bands"]))for(let t in e["eo:bands"]){let r=e["eo:bands"][t];c.is(r,"number")&&c.isObject(s[r])?r=s[r]:c.isObject(r)||(r={}),e["eo:bands"][t]=r}}},y={migrate:(e,t,s=!1)=>(c.runAll(y,e,t,s),e),_commonMetadata(e){l.before("1.0.0-rc.3")&&(c.toUTC(e,"created"),c.toUTC(e,"updated"))},_timestamps(e,t){c.toUTC(e,"published"),c.toUTC(e,"expires"),c.toUTC(e,"unpublished"),c.upgradeExtension(t,n.timestamps)},_versioningIndicator(e,t){c.upgradeExtension(t,n.version)},checksum(e,t){l.before("0.9.0")&&u.multihash&&(c.rename(e,"checksum:md5","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","md5"),c.rename(e,"checksum:sha1","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","sha1"),c.rename(e,"checksum:sha2","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","sha2-256"),c.rename(e,"checksum:sha3","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","sha3-256")),l.before("1.0.0-rc.1")&&c.rename(e,"checksum:multihash","file:checksum")&&c.addExtension(t,n.file),c.removeExtension(t,"checksum")},classification(e,t){l.before("1.1.0","classification")&&c.forAll(e,"classification:classes",(e=>c.rename(e,"color-hint","color_hint"))),c.upgradeExtension(t,n.classification)},cube(e,t){c.upgradeExtension(t,n.datacube)},dtr(e,t){l.before("0.9.0")&&(c.rename(e,"dtr:start_datetime","start_datetime"),c.rename(e,"dtr:end_datetime","end_datetime"),c.removeExtension(t,"datetime-range"))},eo(e,t){l.before("0.9.0")&&(c.rename(e,"eo:epsg","proj:epsg")&&c.addExtension(t,n.projection),c.rename(e,"eo:platform","platform"),c.rename(e,"eo:instrument","instruments")&&c.toArray(e,"instruments"),c.rename(e,"eo:constellation","constellation"),c.rename(e,"eo:off_nadir","view:off_nadir")&&c.addExtension(t,n.view),c.rename(e,"eo:azimuth","view:azimuth")&&c.addExtension(t,n.view),c.rename(e,"eo:incidence_angle","view:incidence_angle")&&c.addExtension(t,n.view),c.rename(e,"eo:sun_azimuth","view:sun_azimuth")&&c.addExtension(t,n.view),c.rename(e,"eo:sun_elevation","view:sun_elevation")&&c.addExtension(t,n.view)),l.before("1.0.0-beta.1")&&c.rename(e,"eo:gsd","gsd"),c.upgradeExtension(t,n.eo)},file(e,t){c.upgradeExtension(t,n.file)},label(e,t){l.before("0.8.0")&&(c.rename(e,"label:property","label:properties"),c.rename(e,"label:task","label:tasks"),c.rename(e,"label:overview","label:overviews")&&c.toArray(e,"label:overviews"),c.rename(e,"label:method","label:methods"),c.toArray(e,"label:classes")),c.upgradeExtension(t,n.label)},pc(e,t){l.before("0.8.0")&&c.rename(e,"pc:schema","pc:schemas"),c.upgradeExtension(t,n.pointcloud)},processing(e,t){c.upgradeExtension(t,n.processing)},proj(e,t){c.upgradeExtension(t,n.projection)},raster(e,t){c.upgradeExtension(t,n.raster)},sar(e,t,s){c.rename(e,"sar:incidence_angle","view:incidence_angle")&&c.addExtension(t,n.view),c.rename(e,"sar:pass_direction","sat:orbit_state")&&c.mapValues(e,"sat:orbit_state",[null],["geostationary"])&&c.addExtension(t,n.sat),l.before("0.7.0")&&(c.flattenArray(e,"sar:resolution",["sar:resolution_range","sar:resolution_azimuth"],s),c.flattenArray(e,"sar:pixel_spacing",["sar:pixel_spacing_range","sar:pixel_spacing_azimuth"],s),c.flattenArray(e,"sar:looks",["sar:looks_range","sar:looks_azimuth","sar:looks_equivalent_number"],s),c.rename(e,"sar:off_nadir","view:off_nadir")&&c.addExtension(t,n.view)),l.before("0.9.0")&&(c.rename(e,"sar:platform","platform"),c.rename(e,"sar:instrument","instruments")&&c.toArray(e,"instruments"),c.rename(e,"sar:constellation","constellation"),c.rename(e,"sar:type","sar:product_type"),c.rename(e,"sar:polarization","sar:polarizations"),c.flattenOneElementArray(e,"sar:absolute_orbit",s)&&c.rename(e,"sar:absolute_orbit","sat:absolute_orbit")&&c.addExtension(t,n.sat),c.flattenOneElementArray(e,"sar:relative_orbit",s)&&c.rename(e,"sar:relative_orbit","sat:relative_orbit")&&c.addExtension(t,n.sat)),c.upgradeExtension(t,n.sar)},sat(e,t){l.before("0.9.0")&&(c.rename(e,"sat:off_nadir_angle","sat:off_nadir"),c.rename(e,"sat:azimuth_angle","sat:azimuth"),c.rename(e,"sat:sun_azimuth_angle","sat:sun_azimuth"),c.rename(e,"sat:sun_elevation_angle","sat:sun_elevation")),c.upgradeExtension(t,n.sat)},sci(e,t){c.upgradeExtension(t,n.scientific)},item(e){l.before("0.8.0")&&(c.rename(e,"item:license","license"),c.rename(e,"item:providers","providers"))},table(e,t){c.upgradeExtension(t,n.table)},view(e,t){c.upgradeExtension(t,n.view)}},b={item:(e,t=null,s=!0)=>d.migrate(e,t,s),catalog:(e,t=!0)=>p.migrate(e,t),collection:(e,t=!0)=>h.migrate(e,t),collectionCollection:(e,t=!0)=>f.migrate(e,t),itemCollection:(e,t=!0)=>m.migrate(e,t),stac:(e,t=!0)=>"Feature"===e.type?b.item(e,null,t):"FeatureCollection"===e.type?b.itemCollection(e,t):"Collection"===e.type||!e.type&&c.isDefined(e.extent)&&c.isDefined(e.license)?b.collection(e,t):!e.type&&Array.isArray(e.collections)?b.collectionCollection(e,t):b.catalog(e,t),enableMultihash(e){u.multihash=e}};e.exports=b},139:function(e,t){var s,r;void 0===(r="function"==typeof(s=function(){var e=/^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;function t(e){var t,s,r=e.replace(/^v/,"").replace(/\+.*$/,""),i=(s="-",-1===(t=r).indexOf(s)?t.length:t.indexOf(s)),n=r.substring(0,i).split(".");return n.push(r.substring(i+1)),n}function s(e){return isNaN(Number(e))?e:Number(e)}function r(t){if("string"!=typeof t)throw new TypeError("Invalid argument expected string");if(!e.test(t))throw new Error("Invalid argument not valid semver ('"+t+"' received)")}function i(e,i){[e,i].forEach(r);for(var n=t(e),a=t(i),o=0;o<Math.max(n.length-1,a.length-1);o++){var l=parseInt(n[o]||0,10),c=parseInt(a[o]||0,10);if(l>c)return 1;if(c>l)return-1}var u=n[n.length-1],p=a[a.length-1];if(u&&p){var h=u.split(".").map(s),d=p.split(".").map(s);for(o=0;o<Math.max(h.length,d.length);o++){if(void 0===h[o]||"string"==typeof d[o]&&"number"==typeof h[o])return-1;if(void 0===d[o]||"string"==typeof h[o]&&"number"==typeof d[o])return 1;if(h[o]>d[o])return 1;if(d[o]>h[o])return-1}}else if(u||p)return u?-1:1;return 0}var n=[">",">=","=","<","<="],a={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};return i.validate=function(t){return"string"==typeof t&&e.test(t)},i.compare=function(e,t,s){!function(e){if("string"!=typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===n.indexOf(e))throw new TypeError("Invalid operator, expected one of "+n.join("|"))}(s);var r=i(e,t);return a[s].indexOf(r)>-1},i})?s.apply(t,[]):s)||(e.exports=r)},147:e=>{e.exports=class{constructor(e,t,s){this.id=s.id||null,this.title=s.title||"",this.description=s.description||"",this.type=e,this.connection=t,this.token=null}getId(){let e=this.getType();return this.getProviderId().length>0&&(e+="."+this.getProviderId()),e}getDisplayName(){return null}getType(){return this.type}getProviderId(){return"string"==typeof this.id?this.id:""}getTitle(){return this.title}getDescription(){return this.description}getToken(){return"string"==typeof this.token?this.getType()+"/"+this.getProviderId()+"/"+this.token:null}setToken(e){this.token=e,this.connection.emit("tokenChanged",e),null!==this.token?this.connection.setAuthProvider(this):this.connection.setAuthProvider(null)}async login(...e){throw new Error("Not implemented.",e)}async logout(){this.setToken(null)}}},54:e=>{e.exports=class{constructor(e,t=[]){this.connection=e,this.apiToClientNames={},this.clientToApiNames={},this.lastRefreshTime=0,this.extra={};for(let e in t){let s,r;Array.isArray(t[e])?(s=t[e][0],r=t[e][1]):(s=t[e],r=t[e]),this.apiToClientNames[s]=r,this.clientToApiNames[r]=s}}toJSON(){let e={};for(let t in this.clientToApiNames){let s=this.clientToApiNames[t];void 0!==this[t]&&(e[s]=this[t])}return Object.assign(e,this.extra)}setAll(e){for(let t in e)void 0===this.apiToClientNames[t]?this.extra[t]=e[t]:this[this.apiToClientNames[t]]=e[t];return this.lastRefreshTime=Date.now(),this}getDataAge(){return(Date.now()-this.lastRefreshTime)/1e3}getAll(){let e={};for(let t in this.apiToClientNames){let s=this.apiToClientNames[t];void 0!==this[s]&&(e[s]=this[s])}return Object.assign(e,this.extra)}get(e){return void 0!==this.extra[e]?this.extra[e]:null}_convertToRequest(e){let t={};for(let s in e)void 0===this.clientToApiNames[s]?t[s]=e[s]:t[this.clientToApiNames[s]]=e[s];return t}_supports(e){return this.connection.capabilities().hasFeature(e)}}},933:(e,t,s)=>{const r=s(458),i=s(768),n=s(147);e.exports=class extends n{constructor(e){super("basic",e,{id:null,title:"HTTP Basic",description:"Login with username and password using the method HTTP Basic."}),this.username=null}async login(e,t){let s=await this.connection._send({method:"get",responseType:"json",url:"/credentials/basic",headers:{Authorization:"Basic "+r.base64encode(e+":"+t)}});if(!i.isObject(s.data)||"string"!=typeof s.data.access_token)throw new Error("No access_token returned.");this.username=e,this.setToken(s.data.access_token)}getDisplayName(){return this.username}async logout(){this.username=null,await super.logout()}}},458:e=>{e.exports=class{static getName(){return"Browser"}static getUrl(){return window.location.toString()}static setUrl(e){throw new Error("setUrl is not supported in a browser environment.")}static handleErrorResponse(e){return new Promise(((t,s)=>{let r=new FileReader;r.onerror=e=>{r.abort(),s(e.target.error)},r.onload=()=>{let e=r.result instanceof ArrayBuffer?String.fromCharCode.apply(null,new Uint16Array(r.result)):r.result,s="string"==typeof e?JSON.parse(e):e;t(s)},r.readAsText(e.response.data)}))}static getResponseType(){return"blob"}static base64encode(e){return btoa(e)}static fileNameForUpload(e){return e.name.split(/(\\|\/)/g).pop()}static dataForUpload(e){return e}static async downloadResults(e,t,s){throw new Error("downloadResults is not supported in a browser environment.")}static saveToFile(e,t){return new Promise(((s,r)=>{try{e instanceof Blob||(e=new Blob([e],{type:"application/octet-stream"}));let r=window.URL.createObjectURL(e),i=document.createElement("a");i.style.display="none",i.href=r,i.setAttribute("download",t||"download"),void 0===i.download&&i.setAttribute("target","_blank"),document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(r),s()}catch(e){console.error(e),r(e)}}))}}},425:(e,t,s)=>{const r=s(804),i=s(897),n=s(742),a=s(768),o=s(779),l=s(659),c=["id","summary","description","categories","parameters","returns","deprecated","experimental","exceptions","examples","links"];class u{static async fromVersion(e=null){let t="https://processes.openeo.org/processes.json";return"string"==typeof e&&(t="https://processes.openeo.org/"+e+"/processes.json"),await u.fromURL(t)}static async fromURL(e){let t=await n(e);return new u(t.data)}constructor(e,t=null,s=void 0){if(this.id=s,this.parent=t,this.parentNode=null,this.parentParameter=null,this.nodes={},this.idCounter={},this.callbackParameterCache={},this.parameters=void 0,this.processes=null,e instanceof l)this.processes=e;else if(a.isObject(e)&&Array.isArray(e.processes))this.processes=new l(e.processes);else{if(!Array.isArray(e))throw new Error("Processes are invalid; must be array or object according to the API.");this.processes=new l(e)}this.processes.all().forEach((e=>this.createFunction(e)))}createFunction(e){if(void 0!==this[e.id])throw new Error("Can't create function for process '"+e.id+"'. Already exists in Builder class.");this[e.id]=function(...t){return this.process(e.id,t)}}addProcessSpec(e,t=null){if(!a.isObject(e))throw new Error("Process '"+e.id+"' must be an object.");t||(t="backend"),this.processes.add(e,t),"backend"===t&&this.createFunction(e)}setParent(e,t){this.parentNode=e,this.parentParameter=t}createCallbackParameter(e){return this.callbackParameterCache[e]||(this.callbackParameterCache[e]=i.create(this,e)),this.callbackParameterCache[e]}getParentCallbackParameters(){let e=[];if(this.parentNode&&this.parentParameter)try{e=o.getCallbackParametersForProcess(this.parentNode.spec,this.parentParameter).map((e=>this.createCallbackParameter(e.name)))}catch(e){console.warn(e)}return e}addParameter(e,t=!0){if(void 0!==this.getParentCallbackParameters().find((t=>t.name===e.name)))return;let s=this;if(t)for(;s.parent;)s=s.parent;Array.isArray(s.parameters)||(s.parameters=[]);let r=s.parameters.findIndex((t=>t.name===e.name));-1!==r?Object.assign(s.parameters[r],e):s.parameters.push(e)}spec(e,t=null){return this.processes.get(e,t)}math(e){let t=new(s(212))(e);return t.setBuilder(this),t.generate(!1)}supports(e,t=null){return Boolean(this.spec(e,t))}process(e,t={},s=null){let i=null;if(e.includes("@")){let t;[e,...t]=e.split("@"),i=t.join("@")}let n=new r(this,e,t,s,i);return this.nodes[n.id]=n,n}toJSON(){let e={process_graph:a.mapObjectValues(this.nodes,(e=>e.toJSON()))};return c.forEach((t=>{void 0!==this[t]&&(e[t]=this[t])})),e}generateId(e=""){return e=e.replace("_","").substr(0,6),this.idCounter[e]?this.idCounter[e]++:this.idCounter[e]=1,e+this.idCounter[e]}}e.exports=u},212:(e,t,s)=>{const r=s(462),i=s(897),n=s(804);class a{constructor(e){let t=new r.Parser;this.tree=t.parse(e),this.builder=null}setBuilder(e){this.builder=e}generate(e=!0){let t=this.parseTree(this.tree);if(!(t instanceof n))throw new Error("Invalid formula specified.");return e&&(t.result=!0),t}parseTree(e){let t=Object.keys(e)[0];switch(t){case"Number":return parseFloat(e.Number);case"Identifier":return this.getRef(e.Identifier);case"Expression":return this.parseTree(e.Expression);case"FunctionCall":{let t=[];for(let s in e.FunctionCall.args)t.push(this.parseTree(e.FunctionCall.args[s]));return this.builder.process(e.FunctionCall.name,t)}case"Binary":return this.addOperatorProcess(e.Binary.operator,this.parseTree(e.Binary.left),this.parseTree(e.Binary.right));case"Unary":{let t=this.parseTree(e.Unary.expression);return"-"===e.Unary.operator?"number"==typeof t?-t:this.addOperatorProcess("*",-1,t):t}default:throw new Error("Operation "+t+" not supported.")}}getRef(e){if("true"===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("string"==typeof e&&e.startsWith("#")){let t=e.substring(1);if(t in this.builder.nodes)return{from_node:t}}let t=this.builder.getParentCallbackParameters();if("string"==typeof e&&t.length>0){let s=e.match(/^\$+/),r=s?s[0].length:0;if(r>0&&t.length>=r){let s=e.substring(r);return t[r-1][s]}}let s=new i(e);return this.builder.addParameter(s),s}addOperatorProcess(e,t,s){let r=a.operatorMapping[e],i=this.builder.spec(r);if(r&&i){let n={};if(!Array.isArray(i.parameters)||i.parameters.length<2)throw new Error("Process for operator "+e+" must have at least two parameters");return n[i.parameters[0].name||"x"]=t,n[i.parameters[1].name||"y"]=s,this.builder.process(r,n)}throw new Error("Operator "+e+" not supported")}}a.operatorMapping={"-":"subtract","+":"add","/":"divide","*":"multiply","^":"power"},e.exports=a},804:(e,t,s)=>{const r=s(768),i=s(897);class n{constructor(e,t,s={},r=null,i=null){if(this.parent=e,this.spec=this.parent.spec(t,i),!this.spec)throw new Error("Process doesn't exist: "+t);this.id=e.generateId(t),this.namespace=i,this.arguments=Array.isArray(s)?this.namedArguments(s):s,this._description=r,this.result=!1,this.addParametersToProcess(this.arguments)}namedArguments(e){if(e.length>(this.spec.parameters||[]).length)throw new Error("More arguments specified than parameters available.");let t={};if(Array.isArray(this.spec.parameters))for(let s=0;s<this.spec.parameters.length;s++)t[this.spec.parameters[s].name]=e[s];return t}addParametersToProcess(e){for(let t in e){let s=e[t];s instanceof i?r.isObject(s.spec.schema)&&this.parent.addParameter(s.spec):s instanceof n?this.addParametersToProcess(s.arguments):(Array.isArray(s)||r.isObject(s))&&this.addParametersToProcess(s)}}description(e){return void 0===e?this._description:(this._description=e,this)}exportArgument(e,t){const a=s(212);if(r.isObject(e)){if(e instanceof n||e instanceof i)return e.ref();if(e instanceof a){let s=this.createBuilder(this,t);return e.setBuilder(s),e.generate(),s.toJSON()}if(e instanceof Date)return e.toISOString();if("function"==typeof e.toJSON)return e.toJSON();{let s={};for(let r in e)void 0!==e[r]&&(s[r]=this.exportArgument(e[r],t));return s}}return Array.isArray(e)?e.map((e=>this.exportArgument(e)),t):"function"==typeof e?this.exportCallback(e,t):e}createBuilder(e=null,t=null){let r=new(s(425))(this.parent.processes,this.parent);return null!==e&&null!==t&&r.setParent(e,t),r}exportCallback(e,t){let s=this.createBuilder(this,t),i=s.getParentCallbackParameters(),a=e.bind(s)(...i,s);if(Array.isArray(a)&&s.supports("array_create")?a=s.array_create(a):!r.isObject(a)&&s.supports("constant")&&(a=s.constant(a)),a instanceof n)return a.result=!0,s.toJSON();throw new Error("Callback must return BuilderNode")}toJSON(){let e={process_id:this.spec.id,arguments:{}};this.namespace&&(e.namespace=this.namespace);for(let t in this.arguments)void 0!==this.arguments[t]&&(e.arguments[t]=this.exportArgument(this.arguments[t],t));return"function"!=typeof this.description?e.description=this.description:"string"==typeof this._description&&(e.description=this._description),this.result&&(e.result=!0),e}ref(){return{from_node:this.id}}}e.exports=n},897:e=>{"use strict";class t{static create(e,s){let r=new t(s,null);if("undefined"!=typeof Proxy)return new Proxy(r,{nodeCache:{},get(t,s,i){if(!Reflect.has(t,s)){if(!this.nodeCache[s]){let t={data:r};"string"==typeof s&&s.match(/^(0|[1-9]\d*)$/)?t.index=parseInt(s,10):t.label=s,this.nodeCache[s]=e.process("array_element",t)}return this.nodeCache[s]}return Reflect.get(t,s,i)},set(e,t,s,r){if(!Reflect.has(e,t))throw new Error("Simplified array access is read-only");return Reflect.set(e,t,s,r)}});throw new Error("Simplified array access not supported, use array_element directly")}constructor(e,t={},s="",r=void 0){this.name=e,this.spec={name:e,schema:"string"==typeof t?{type:t}:t,description:s},void 0!==r&&(this.spec.optional=!0,this.spec.default=r)}toJSON(){return this.spec}ref(){return{from_parameter:this.name}}}e.exports=t},462:e=>{let t={Token:{Operator:"Operator",Identifier:"Identifier",Number:"Number"}};const s={"⁰":0,"¹":1,"²":2,"³":3,"⁴":4,"⁵":5,"⁶":6,"⁷":7,"⁸":8,"⁹":9},r=Object.keys(s).join("");t.Lexer=function(){let e="",s=0,i=0,n=0,a=t.Token;function o(){let t=i;return t<s?e.charAt(t):"\0"}function l(){let t="\0",r=i;return r<s&&(t=e.charAt(r),i+=1),t}function c(e){return"\t"===e||" "===e||" "===e}function u(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function p(e){return e>="0"&&e<="9"}function h(e,t){return{type:e,value:t,start:n,end:i-1}}function d(e,t=!1){return"_"===e||u(e)||p(e)||t&&function(e){return"-"===e||"."===e||"~"===e||"@"===e}(e)}function f(){let e;if(function(){let e;for(;i<s&&(e=o(),c(e));)l()}(),!(i>=s)){if(n=i,e=function(){let e,t;if(e=o(),p(e)||"."===e){if(t="","."!==e)for(t=l();e=o(),p(e);)t+=l();if("."===e)for(t+=l();e=o(),p(e);)t+=l();if("e"===e||"E"===e){if(t+=l(),e=o(),"+"!==e&&"-"!==e&&!p(e))throw e="character "+e,i>=s&&(e="<end>"),new SyntaxError("Unexpected "+e+" after the exponent sign");for(t+=l();e=o(),p(e);)t+=l()}if("."===t)throw new SyntaxError("Expecting decimal digits after the dot sign");return h(a.Number,t)}}(),void 0!==e)return e;if(e=function(){let e=o();if(("+-*/()^,"+r).indexOf(e)>=0)return h(a.Operator,l())}(),void 0!==e)return e;if(e=function(){let e=o();if("_"!==(t=e)&&"#"!==t&&"$"!==t&&!u(t))return;var t;let s=l(),r=!1;for(;;){let t=o();if("$"===e)"$"!==t&&(e="");else if("@"===t)r=!0;else if(!d(t,r))break;s+=l()}return h(a.Identifier,s)}(),void 0!==e)return e;throw new SyntaxError("Unknown token from character "+o())}}return{reset:function(t){e=t,s=t.length,i=0},next:f,peek:function(){let e,t=i;try{e=f(),delete e.start,delete e.end}catch(t){e=void 0}return i=t,e}}},t.Parser=function(){let e=new t.Lexer,i=t.Token;function n(e,t){return void 0!==e&&e.type===i.Operator&&t.includes(e.value)}function a(){let t,s=e.peek();return n(s,"-+")?(s=e.next(),t=a(),{Unary:{operator:s.value,expression:t}}):function(){let t,s=e.peek();if(void 0===s)throw new SyntaxError("Unexpected termination of expression");if(s.type===i.Identifier)return s=e.next(),n(e.peek(),"(")?function(t){let s=[],r=e.next();if(!n(r,"("))throw new SyntaxError('Expecting ( in a function call "'+t+'"');if(r=e.peek(),n(r,")")||(s=function(){let t,s,r=[];for(;s=c(),void 0!==s&&(r.push(s),t=e.peek(),n(t,","));)e.next();return r}()),r=e.next(),!n(r,")"))throw new SyntaxError('Expecting ) in a function call "'+t+'"');return{FunctionCall:{name:t,args:s}}}(s.value):{Identifier:s.value};if(s.type===i.Number)return s=e.next(),{Number:s.value};if(n(s,"(")){if(e.next(),t=c(),s=e.next(),!n(s,")"))throw new SyntaxError("Expecting )");return{Expression:t}}throw new SyntaxError("Parse error, can not process token "+s.value)}()}function o(){let t=a(),i=e.peek();for(;n(i,"^"+r);)i=e.next(),t={Binary:{operator:"^",left:t,right:"^"!==i.value?(o=i.value,"number"==typeof s[o]?{Number:s[o]}:null):a()}},i=e.peek();var o;return t}function l(){let t=o(),s=e.peek();for(;n(s,"*/");)s=e.next(),t={Binary:{operator:s.value,left:t,right:o()}},s=e.peek();return t}function c(){return function(){let t=l(),s=e.peek();for(;n(s,"+-");)s=e.next(),t={Binary:{operator:s.value,left:t,right:l()}},s=e.peek();return t}()}return{parse:function(t){e.reset(t);let s=c(),r=e.next();if(void 0!==r)throw new SyntaxError("Unexpected token "+r.value);return{Expression:s}}}},e.exports=t},26:(e,t,s)=>{const r=s(768),i={capabilities:!0,listFileTypes:"get /file_formats",listServiceTypes:"get /service_types",listUdfRuntimes:"get /udf_runtimes",listCollections:"get /collections",describeCollection:"get /collections/{}",listCollectionItems:"get /collections/{}/items",describeCollectionItem:"get /collections/{}/items/{}",describeCollectionQueryables:"get /collections/{}/queryables",listProcesses:"get /processes",describeProcess:"get /processes",listAuthProviders:!0,authenticateOIDC:"get /credentials/oidc",authenticateBasic:"get /credentials/basic",describeAccount:"get /me",listFiles:"get /files",getFile:"get /files",uploadFile:"put /files/{}",downloadFile:"get /files/{}",deleteFile:"delete /files/{}",validateProcess:"post /validation",listUserProcesses:"get /process_graphs",describeUserProcess:"get /process_graphs/{}",getUserProcess:"get /process_graphs/{}",setUserProcess:"put /process_graphs/{}",replaceUserProcess:"put /process_graphs/{}",deleteUserProcess:"delete /process_graphs/{}",computeResult:"post /result",listJobs:"get /jobs",createJob:"post /jobs",listServices:"get /services",createService:"post /services",getJob:"get /jobs/{}",describeJob:"get /jobs/{}",updateJob:"patch /jobs/{}",deleteJob:"delete /jobs/{}",estimateJob:"get /jobs/{}/estimate",debugJob:"get /jobs/{}/logs",startJob:"post /jobs/{}/results",stopJob:"delete /jobs/{}/results",listResults:"get /jobs/{}/results",downloadResults:"get /jobs/{}/results",describeService:"get /services/{}",getService:"get /services/{}",updateService:"patch /services/{}",deleteService:"delete /services/{}",debugService:"get /services/{}/logs"};e.exports=class{constructor(e){this.data=e,this.featureMap=i,this.features=[],this.validate(),this.init()}validate(){if(!r.isObject(this.data))throw new Error("No capabilities retrieved.");if(!this.data.api_version)throw new Error("Invalid capabilities: No API version retrieved");if(!Array.isArray(this.data.endpoints))throw new Error("Invalid capabilities: No endpoints retrieved")}init(){this.features=this.data.endpoints.map((e=>e.methods.map((t=>`${t} ${e.path.replace(/\{[^}]+\}/g,"{}")}`.toLowerCase())))).reduce(((e,t)=>e.concat(t)),[])}toJSON(){return this.data}apiVersion(){return this.data.api_version}backendVersion(){return this.data.backend_version}title(){return"string"==typeof this.data.title?this.data.title:""}description(){return"string"==typeof this.data.description?this.data.description:""}isStable(){return!0===this.data.production}links(){return Array.isArray(this.data.links)?this.data.links:[]}listFederation(){return Array.isArray(this.data.federation)?this.data.federation:[]}listFeatures(){let e=[];for(let t in this.featureMap)(!0===this.featureMap[t]||this.features.includes(this.featureMap[t]))&&e.push(t);return e.sort()}hasFeature(e){let t=this.featureMap[e];return"string"==typeof t&&(t=t.toLowerCase()),!0===t||this.features.some((e=>e===t))}currency(){return r.isObject(this.data.billing)&&"string"==typeof this.data.billing.currency?this.data.billing.currency:null}listPlans(){if(r.isObject(this.data.billing)&&Array.isArray(this.data.billing.plans)){let e="string"==typeof this.data.billing.default_plan?this.data.billing.default_plan.toLowerCase():null;return this.data.billing.plans.map((t=>{let s={default:e===t.name.toLowerCase()};return Object.assign({},t,s)}))}return[]}migrate(e){return e}}},704:(e,t,s)=>{const r=s(458),i=s(768),n=s(659),a=s(742),o=s(321),l=s(147),c=s(933),u=s(688),p=s(26),h=s(405),d=s(649),f=s(293),m=s(806),g=s(497),y=s(425),b=s(804),{CollectionPages:v,ItemPages:w,JobPages:x,ProcessPages:A,ServicePages:_,UserFilePages:O}=s(226),j=["conformance","http://www.opengis.net/def/rel/ogc/1.0/conformance"];e.exports=class{constructor(e,t={},s=null){this.url=s,this.baseUrl=i.normalizeUrl(e),this.authProviderList=null,this.authProvider=null,this.capabilitiesObject=null,this.listeners={},this.options=t,this.processes=new n([],Boolean(t.addNamespaceToProcess)),this.processes.listeners.push(((...e)=>this.emit("processesChanged",...e)))}async init(){const e=await this._get("/"),t=Object.assign({},e.data);if(t.links=this.makeLinksAbsolute(t.links,e),!Array.isArray(t.conformsTo)&&Array.isArray(t.links)){const e=this._getLinkHref(t.links,j);if(e){const s=await this._get(e);i.isObject(s.data)&&Array.isArray(s.data.conformsTo)&&(t.conformsTo=s.data.conformsTo)}}return this.capabilitiesObject=new p(t),this.capabilitiesObject}async refreshProcessCache(){if(0===this.processes.count())return;const e=this.processes.namespaces().map((e=>{let t=()=>Promise.resolve();if("user"===e){const e=this.processes.namespace("user");this.isAuthenticated()?this.capabilities().hasFeature("listUserProcesses")&&(t=()=>this.listUserProcesses(e)):t=()=>this.processes.remove(null,"user")?Promise.resolve():Promise.reject(new Error("Can't clear user processes"))}else this.capabilities().hasFeature("listProcesses")&&(t=()=>this.listProcesses(e));return t().catch((t=>console.warn(`Could not update processes for namespace '${e}' due to an error: ${t.message}`)))}));return await Promise.all(e)}getBaseUrl(){return this.baseUrl}getUrl(){return this.url||this.baseUrl}capabilities(){return this.capabilitiesObject}async listFileTypes(){const e=await this._get("/file_formats");return new h(e.data)}async listServiceTypes(){return(await this._get("/service_types")).data}async listUdfRuntimes(){return(await this._get("/udf_runtimes")).data}async listCollections(){const e=this.paginateCollections(null);return await e.nextPage([],!1)}paginateCollections(e=50){return new v(this,e)}async describeCollection(e){const t=await this._get("/collections/"+e);return t.data.stac_version?o.collection(t.data):t.data}listCollectionItems(e,t=null,s=null,r=null){let i={};return Array.isArray(t)&&(i.bbox=t.join(",")),Array.isArray(s)&&(i.datetime=s.map((e=>e instanceof Date?e.toISOString():"string"==typeof e?e:"..")).join("/")),r>0&&(i.limit=r),new w(this,e,i,r)}normalizeNamespace(e){const t=e.match(/^https?:\/\/.*\/processes\/(@?[\w\-.~:]+)\/?/i);return t&&t.length>1?t[1]:e}async listProcesses(e=null){const t=this.paginateProcesses(e);return await t.nextPage([],!1)}paginateProcesses(e=null,t=50){return new A(this,t,e)}async describeProcess(e,t=null){if(t||(t="backend"),"backend"===t)await this.listProcesses();else{const s=await this._get(`/processes/${this.normalizeNamespace(t)}/${e}`);if(!i.isObject(s.data)||"string"!=typeof s.data.id)throw new Error("Invalid response received for process");this.processes.add(s.data,t)}return this.processes.get(e,t)}async buildProcess(e){return await this.listProcesses(),new y(this.processes,null,e)}async listAuthProviders(){if(null!==this.authProviderList)return this.authProviderList;this.authProviderList=[];const e=this.capabilities();if(e.hasFeature("authenticateOIDC")){const e=await this._get("/credentials/oidc"),t=this.getOidcProviderFactory();if(i.isObject(e.data)&&Array.isArray(e.data.providers)&&"function"==typeof t)for(let s in e.data.providers){const r=t(e.data.providers[s]);r instanceof l&&this.authProviderList.push(r)}}return e.hasFeature("authenticateBasic")&&this.authProviderList.push(new c(this)),this.authProviderList}setOidcProviderFactory(e){this.oidcProviderFactory=e}getOidcProviderFactory(){return"function"==typeof this.oidcProviderFactory?this.oidcProviderFactory:u.isSupported()?e=>new u(this,e):null}async authenticateBasic(e,t){const s=new c(this);await s.login(e,t)}isAuthenticated(){return null!==this.authProvider}emit(e,...t){"function"==typeof this.listeners[e]&&this.listeners[e](...t)}on(e,t){this.listeners[e]=t}off(e){delete this.listeners[e]}getAuthProvider(){return this.authProvider}setAuthProvider(e){e!==this.authProvider&&(this.authProvider=e instanceof l?e:null,this.emit("authProviderChanged",this.authProvider),this.refreshProcessCache())}setAuthToken(e,t,s){const r=new l(e,this,{id:t,title:"Custom",description:""});return r.setToken(s),this.setAuthProvider(r),r}async describeAccount(){return(await this._get("/me")).data}async listFiles(){const e=this.paginateFiles(null);return await e.nextPage()}paginateFiles(e=50){return new O(this,e)}async uploadFile(e,t=null,s=null,i=null){null===t&&(t=r.fileNameForUpload(e));const n=await this.getFile(t);return await n.uploadFile(e,s,i)}async getFile(e){return new d(this,e)}_normalizeUserProcess(e,t={}){return e instanceof m?e=e.toJSON():e instanceof b?(e.result=!0,e=e.parent.toJSON()):i.isObject(e)&&!i.isObject(e.process_graph)&&(e={process_graph:e}),Object.assign({},t,{process:e})}async validateProcess(e){const t=await this._post("/validation",this._normalizeUserProcess(e).process);if(Array.isArray(t.data.errors)){const e=t.data.errors;return e["federation:backends"]=Array.isArray(t.data["federation:missing"])?t.data["federation:missing"]:[],e}throw new Error("Invalid validation response received.")}async listUserProcesses(e=[]){const t=this.paginateUserProcesses(null);return await t.nextPage(e)}paginateUserProcesses(e=50){return this.paginateProcesses("user",e)}async setUserProcess(e,t){const s=new m(this,e);return await s.replaceUserProcess(t)}async getUserProcess(e){const t=new m(this,e);return await t.describeUserProcess()}async computeResult(e,t=null,s=null,n=null,a={}){const o=this._normalizeUserProcess(e,Object.assign({},a,{plan:t,budget:s})),l=await this._post("/result",o,r.getResponseType(),n),c={data:l.data,costs:null,type:null,logs:[]};"number"==typeof l.headers["openeo-costs"]&&(c.costs=l.headers["openeo-costs"]),"string"==typeof l.headers["content-type"]&&(c.type=l.headers["content-type"]);const u=Array.isArray(l.headers.link)?l.headers.link:[l.headers.link];for(let e of u){if("string"!=typeof e)continue;const t=e.match(/^<([^>]+)>;\s?rel="monitor"/i);if(Array.isArray(t)&&t.length>1)try{const e=await this._get(t[1]);i.isObject(e.data)&&Array.isArray(e.data.logs)&&(c.logs=e.data.logs)}catch(e){console.warn(e)}}return c}async downloadResult(e,t,s=null,i=null,n=null){const a=await this.computeResult(e,s,i,n);await r.saveToFile(a.data,t)}async listJobs(e=[]){const t=this.paginateJobs(null);return await t.nextPage(e)}paginateJobs(e=50){return new x(this,e)}async createJob(e,t=null,s=null,r=null,i=null,n={}){n=Object.assign({},n,{title:t,description:s,plan:r,budget:i});const a=this._normalizeUserProcess(e,n),o=await this._post("/jobs",a);if("string"!=typeof o.headers["openeo-identifier"])throw new Error("Response did not contain a Job ID. Job has likely been created, but may not show up yet.");const l=new f(this,o.headers["openeo-identifier"]).setAll(a);return this.capabilities().hasFeature("describeJob")?await l.describeJob():l}async getJob(e){const t=new f(this,e);return await t.describeJob()}async listServices(e=[]){const t=this.paginateServices(null);return await t.nextPage(e)}paginateServices(e=50){return new _(this,e)}async createService(e,t,s=null,r=null,i=!0,n={},a=null,o=null,l={}){const c=this._normalizeUserProcess(e,Object.assign({title:s,description:r,type:t,enabled:i,configuration:n,plan:a,budget:o},l)),u=await this._post("/services",c);if("string"!=typeof u.headers["openeo-identifier"])throw new Error("Response did not contain a Service ID. Service has likely been created, but may not show up yet.");const p=new g(this,u.headers["openeo-identifier"]).setAll(c);return this.capabilities().hasFeature("describeService")?p.describeService():p}async getService(e){const t=new g(this,e);return await t.describeService()}_getLinkHref(e,t){if(Array.isArray(t)||(t=[t]),Array.isArray(e)){const s=e.find((e=>i.isObject(e)&&t.includes(e.rel)&&"string"==typeof e.href));if(s)return s.href}return null}makeLinksAbsolute(e,t=null){if(!Array.isArray(e))return e;let s=null;return s=i.isObject(t)&&t.headers&&t.config&&t.request?t.config.baseURL+t.config.url:"string"!=typeof t?this._getLinkHref(e,"self"):t,s?e.map((e=>{if(!i.isObject(e)||"string"!=typeof e.href)return e;try{const t=new URL(e.href,s);return Object.assign({},e,{href:t.toString()})}catch(t){return e}})):e}async _get(e,t,s,r=null){return await this._send({method:"get",responseType:s,url:e,timeout:"/"===e?5e3:0,params:t},r)}async _post(e,t,s,r=null){const i={method:"post",responseType:s,url:e,data:t};return await this._send(i,r)}async _put(e,t){return await this._send({method:"put",url:e,data:t})}async _patch(e,t){return await this._send({method:"patch",url:e,data:t})}async _delete(e){return await this._send({method:"delete",url:e})}async download(e,t){return(await this._send({method:"get",responseType:r.getResponseType(),url:e,authorization:t})).data}_getAuthHeaders(){const e={};return this.isAuthenticated()&&(e.Authorization="Bearer "+this.authProvider.getToken()),e}async _send(e,t=null){e.baseURL=this.baseUrl,void 0!==e.authorization&&!0!==e.authorization||(e.headers||(e.headers={}),Object.assign(e.headers,this._getAuthHeaders())),e.responseType||(e.responseType="json"),t&&(e.signal=t.signal);try{let t=await a(e);const s=this.capabilities();return s&&(t=s.migrate(t)),t}catch(t){if(a.isCancel(t))throw t;const s=e=>"string"==typeof e&&-1!==e.indexOf("/json"),n=(e,t)=>("string"==typeof t.message&&(e.message=t.message),e.code="string"==typeof t.code?t.code:"",e.id=t.id,e.links=Array.isArray(t.links)?t.links:[],e);if(i.isObject(t.response)&&i.isObject(t.response.data)&&(s(t.response.data.type)||i.isObject(t.response.headers)&&s(t.response.headers["content-type"]))){if(e.responseType!==r.getResponseType())throw n(t,t.response.data);try{throw n(t,await r.handleErrorResponse(t))}catch(e){console.error(e)}}throw t}}}},405:(e,t,s)=>{const r=s(768);e.exports=class{constructor(e){if(this.data={input:{},output:{}},r.isObject(e)){for(let t of["input","output"])for(let s in e[t])r.isObject(e[t])&&(this.data[t][s.toUpperCase()]=e[t][s]);this["federation:missing"]=e["federation:missing"]}}toJSON(){return this.data}getInputTypes(){return this.data.input}getOutputTypes(){return this.data.output}getInputType(e){return this._findType(e,"input")}getOutputType(e){return this._findType(e,"output")}_findType(e,t){return(e=e.toUpperCase())in this.data[t]?this.data[t][e]:null}}},293:(e,t,s)=>{const r=s(458),i=s(54),n=s(431),a=s(768),o=s(321),l=["finished","canceled","error"];e.exports=class extends i{constructor(e,t){super(e,["id","title","description","process","status","progress","created","updated","plan","costs","budget","usage",["log_level","logLevel"],"links"]),this.id=t,this.title=void 0,this.description=void 0,this.process=void 0,this.status=void 0,this.progress=void 0,this.created=void 0,this.updated=void 0,this.plan=void 0,this.costs=void 0,this.budget=void 0}async describeJob(){let e=await this.connection._get("/jobs/"+this.id);return this.setAll(e.data)}async updateJob(e){return await this.connection._patch("/jobs/"+this.id,this._convertToRequest(e)),this._supports("describeJob")?await this.describeJob():this.setAll(e)}async deleteJob(){await this.connection._delete("/jobs/"+this.id)}async estimateJob(){return(await this.connection._get("/jobs/"+this.id+"/estimate")).data}debugJob(e=null){return new n(this.connection,"/jobs/"+this.id+"/logs",e)}monitorJob(e,t=60,s=!0){if("function"!=typeof e||t<1)return;let r=this.connection.capabilities();if(!r.hasFeature("describeJob"))throw new Error("Monitoring Jobs not supported by the back-end.");let i=this.status,n=null,a=null;r.hasFeature("debugJob")&&s&&(a=this.debugJob());let o=async()=>{this.getDataAge()>1&&await this.describeJob();let t=a?await a.nextLogs():[];(i!==this.status||t.length>0)&&e(this,t),i=this.status,l.includes(this.status)&&c()};setTimeout(o,0),n=setInterval(o,1e3*t);let c=()=>{n&&(clearInterval(n),n=null)};return c}async startJob(){return await this.connection._post("/jobs/"+this.id+"/results",{}),this._supports("describeJob")?await this.describeJob():this}async stopJob(){return await this.connection._delete("/jobs/"+this.id+"/results"),this._supports("describeJob")?await this.describeJob():this}async getResultsAsStac(){let e=await this.connection._get("/jobs/"+this.id+"/results");if(!a.isObject(e)||!a.isObject(e.data))throw new Error("Results received from the back-end are invalid");let t=o.stac(e.data);return a.isObject(t.assets)||(t.assets={}),"Feature"===t.type?"number"==typeof e.headers["openeo-costs"]&&(t.properties.costs=e.headers["openeo-costs"]):"number"==typeof e.headers["openeo-costs"]&&(t.costs=e.headers["openeo-costs"]),t}async listResults(){let e=await this.getResultsAsStac();return a.isObject(e.assets)?Object.values(e.assets):[]}async downloadResults(e){let t=await this.listResults();return await r.downloadResults(this.connection,t,e)}}},431:(e,t,s)=>{const r=s(768);e.exports=class{constructor(e,t,s=null){this.connection=e,this.endpoint=t,this.lastId="",this.level=s,this.missing=new Set}async nextLogs(e=null){let t=await this.next(e);return Array.isArray(t.logs)?t.logs:[]}getMissingBackends(){return Array.from(this.missing)}async next(e=null){let t={offset:this.lastId};e>0&&(t.limit=e),this.level&&(t.level=this.level);let s=await this.connection._get(this.endpoint,t);return Array.isArray(s.data.logs)&&s.data.logs.length>0?(s.data.logs=s.data.logs.filter((e=>r.isObject(e)&&"string"==typeof e.id)),this.lastId=s.data.logs[s.data.logs.length-1].id):s.data.logs=[],s.data.links=Array.isArray(s.data.links)?s.data.links:[],Array.isArray(s.data["federation:missing"])&&s.data["federation:missing"].forEach((e=>this.missing.add(e))),s.data}}},688:(e,t,s)=>{const r=s(768),i=s(147),n=s(458),a=s(117);class o extends i{static isSupported(){return r.isObject(a)&&Boolean(a.UserManager)}static async signinCallback(e=null,t={}){let s=n.getUrl();e||(e=new o(null,{})).setGrant(s.includes("?")?"authorization_code+pkce":"implicit");let r=e.getOptions(t),i=new a.UserManager(r);return await i.signinCallback(s)}constructor(e,t){super("oidc",e,t),this.manager=null,this.listeners={},this.user=null,this.clientId=null,this.grant="authorization_code+pkce",this.issuer=t.issuer||"",this.scopes=Array.isArray(t.scopes)&&t.scopes.length>0?t.scopes:["openid"],this.refreshTokenScope="offline_access",this.links=Array.isArray(t.links)?t.links:[],this.defaultClients=Array.isArray(t.default_clients)?t.default_clients:[],this.defaultClient=this.detectDefaultClient()}addListener(e,t,s="default"){this.manager.events[`add${e}`](t),this.listeners[`${s}:${e}`]=t}removeListener(e,t="default"){this.manager.events[`remove${e}`](this.listeners[e]),delete this.listeners[`${t}:${e}`]}async login(e={},t=!1){if(!this.issuer||"string"!=typeof this.issuer)throw new Error("No Issuer URL available for OpenID Connect");this.manager=new a.UserManager(this.getOptions(e,t)),this.addListener("UserLoaded",(async()=>this.setUser(await this.manager.getUser())),"js-client"),this.addListener("AccessTokenExpired",(()=>this.setUser(null)),"js-client"),"popup"===o.uiMethod?await this.manager.signinPopup():await this.manager.signinRedirect()}async logout(){if(null!==this.manager){try{"popup"===o.uiMethod?await this.manager.signoutPopup():await this.manager.signoutRedirect({post_logout_redirect_uri:n.getUrl()})}catch(e){console.warn(e)}super.logout(),this.removeListener("UserLoaded","js-client"),this.removeListener("AccessTokenExpired","js-client"),this.manager=null,this.setUser(null)}}getOptions(e={},t=!1){let s=this.getResponseType(),r=this.scopes.slice(0);return t&&!r.includes(this.refreshTokenScope)&&r.push(this.refreshTokenScope),Object.assign({client_id:this.clientId,redirect_uri:o.redirectUrl,authority:this.issuer.replace("/.well-known/openid-configuration",""),scope:r.join(" "),validateSubOnSilentRenew:!0,response_type:s,response_mode:s.includes("code")?"query":"fragment"},e)}getResponseType(){switch(this.grant){case"authorization_code+pkce":return"code";case"implicit":return"token id_token";default:throw new Error("Grant Type not supported")}}setGrant(e){switch(e){case"authorization_code+pkce":case"implicit":this.grant=e;break;default:throw new Error("Grant Type not supported")}}setClientId(e){this.clientId=e}setUser(e){e?(this.user=e,this.setToken(e.access_token)):(this.user=null,this.setToken(null))}getDisplayName(){return this.user&&r.isObject(this.user.profile)&&(this.user.profile.name||this.user.profile.preferred_username||this.user.profile.email)||null}detectDefaultClient(){for(let e of o.grants){let t=this.defaultClients.find((t=>Boolean(t.grant_types.includes(e)&&Array.isArray(t.redirect_urls)&&t.redirect_urls.find((e=>e.startsWith(o.redirectUrl))))));if(t)return this.setGrant(e),this.setClientId(t.id),this.defaultClient=t,t}return null}}o.uiMethod="redirect",o.redirectUrl=n.getUrl().split("#")[0].split("?")[0].replace(/\/$/,""),o.grants=["authorization_code+pkce","implicit"],e.exports=o},224:(e,t,s)=>{const r=s(742),i=s(768),n=s(304),a=s(704),o=s(293),l=s(431),c=s(649),u=s(806),p=s(497),h=s(147),d=s(933),f=s(688),m=s(26),g=s(405),y=s(425),b=s(804),v=s(897),w=s(212),x="1.0.0-rc.2",A="1.x.x";class _{static async connect(e,t={}){let s=i.normalizeUrl(e,"/.well-known/openeo"),a=e,o=null;try{if(o=await r.get(s,{timeout:5e3}),!i.isObject(o.data)||!Array.isArray(o.data.versions))throw new Error("Well-Known Document doesn't list any versions.")}catch(e){console.warn("Can't read well-known document, connecting directly to the specified URL as fallback mechanism. Reason: "+e.message)}if(i.isObject(o)){let e=n.findLatest(o.data.versions,!0,x,A);if(null===e)throw new Error("Server not supported. Client only supports the API versions between "+x+" and "+A);a=e.url}let l=await _.connectDirect(a,t);return l.url=e,l}static async connectDirect(e,t={}){let s=new a(e,t),r=await s.init();if(n.compare(r.apiVersion(),x,"<")||n.compare(r.apiVersion(),A,">"))throw new Error("Client only supports the API versions between "+x+" and "+A);return s}static clientVersion(){return"2.6.0"}}_.Environment=s(458),e.exports={AbortController,AuthProvider:h,BasicProvider:d,Capabilities:m,Connection:a,FileTypes:g,Job:o,Logs:l,OidcProvider:f,OpenEO:_,Service:p,UserFile:c,UserProcess:u,Builder:y,BuilderNode:b,Parameter:v,Formula:w}},226:(e,t,s)=>{const r=s(293),i=s(497),n=s(649),a=s(806),o=s(768),l=s(321),c="federation:missing";class u{constructor(e,t,s,r,i={},n="id"){this.connection=e,this.nextUrl=t,this.key=s,this.primaryKey=n,this.cls=r,i.limit>0||delete i.limit,this.params=i}hasNextPage(){return null!==this.nextUrl}async nextPage(e=[],t=!0){const s=await this.connection._get(this.nextUrl,this.params);let r=s.data;if(!o.isObject(r))throw new Error("Response is invalid, is not an object");if(!Array.isArray(r[this.key]))throw new Error(`Response is invalid, '${this.key}' property is not an array`);let i=r[this.key].map((t=>{let s=e.find((e=>e[this.primaryKey]===t[this.primaryKey]));return s?s.setAll(t):s=this._createObject(t),s}));return i=this._cache(i),r.links=this._ensureArray(r.links),this.connection._getLinkHref(r.links,"self")||r.links.push({rel:"self",href:this.nextUrl}),this.nextUrl=this._getNextLink(s),this.params=null,t?(i.links=r.links,i[c]=this._ensureArray(r[c]),i):(r[this.key]=i,r)}_ensureArray(e){return Array.isArray(e)?e:[]}_createObject(e){if(this.cls){const t=new(0,this.cls)(this.connection,e[this.primaryKey]);return t.setAll(e),t}return e}_cache(e){return e}_getNextLink(e){const t=this.connection.makeLinksAbsolute(e.data.links,e);return this.connection._getLinkHref(t,"next")}[Symbol.asyncIterator](){return{self:this,async next(){const e=!this.self.hasNextPage();let t;return e||(t=await this.self.nextPage()),{done:e,value:t}}}}}e.exports={Pages:u,CollectionPages:class extends u{constructor(e,t=null){super(e,"/collections","collections",null,{limit:t})}_createObject(e){return e.stac_version?l.collection(e):e}},ItemPages:class extends u{constructor(e,t,s){super(e,`/collections/${t}/items`,"features",null,s)}_createObject(e){return e.stac_version?l.item(e):e}},JobPages:class extends u{constructor(e,t=null){super(e,"/jobs","jobs",r,{limit:t})}},ProcessPages:class extends u{constructor(e,t=null,s=null){let r;s||(s="backend");let i=null;"user"===s?(r="/process_graphs",i=a):(r="/processes","backend"!==s&&(r+=`/${e.normalizeNamespace(s)}`)),super(e,r,"processes",i,{limit:t}),this.namespace=s}_cache(e){const t=e.map((e=>"function"==typeof e.toJSON?e.toJSON():e));if(this.connection.processes.addAll(t,this.namespace),!this.cls)for(let t in e)e[t]=this.connection.processes.get(e[t].id,this.namespace);return e}},ServicePages:class extends u{constructor(e,t=null){super(e,"/services","services",i,{limit:t})}},UserFilePages:class extends u{constructor(e,t=null){super(e,"/files","files",n,{limit:t},"path")}}}},497:(e,t,s)=>{const r=s(54),i=s(431);e.exports=class extends r{constructor(e,t){super(e,["id","title","description","process","url","type","enabled","configuration","attributes","created","plan","costs","budget","usage",["log_level","logLevel"],"links"]),this.id=t,this.title=void 0,this.description=void 0,this.process=void 0,this.url=void 0,this.type=void 0,this.enabled=void 0,this.configuration=void 0,this.attributes=void 0,this.created=void 0,this.plan=void 0,this.costs=void 0,this.budget=void 0}async describeService(){let e=await this.connection._get("/services/"+this.id);return this.setAll(e.data)}async updateService(e){return await this.connection._patch("/services/"+this.id,this._convertToRequest(e)),this._supports("describeService")?await this.describeService():this.setAll(e)}async deleteService(){await this.connection._delete("/services/"+this.id)}debugService(e=null){return new i(this.connection,"/services/"+this.id+"/logs",e)}monitorService(e,t=60,s=!0){if("function"!=typeof e||t<1)return;let r=this.connection.capabilities();if(!r.hasFeature("describeService"))throw new Error("Monitoring Services not supported by the back-end.");let i=this.enabled,n=null,a=null;r.hasFeature("debugService")&&s&&(a=this.debugService());let o=async()=>{this.getDataAge()>1&&await this.describeService();let t=a?await a.nextLogs():[];(i!==this.enabled||t.length>0)&&e(this,t),i=this.enabled};return setTimeout(o,0),n=setInterval(o,1e3*t),()=>{n&&(clearInterval(n),n=null)}}}},649:(e,t,s)=>{const r=s(458),i=s(54);e.exports=class extends i{constructor(e,t){super(e,["path","size","modified"]),this.path=t,this.size=void 0,this.modified=void 0}async retrieveFile(){return await this.connection.download("/files/"+this.path,!0)}async downloadFile(e){let t=await this.connection.download("/files/"+this.path,!0);return await r.saveToFile(t,e)}async uploadFile(e,t=null,s=null){let i={method:"put",url:"/files/"+this.path,data:r.dataForUpload(e),headers:{"Content-Type":"application/octet-stream"}};"function"==typeof t&&(i.onUploadProgress=e=>{let s=Math.round(100*e.loaded/e.total);t(s,this)});let n=await this.connection._send(i,s);return this.setAll(n.data)}async deleteFile(){await this.connection._delete("/files/"+this.path)}}},806:(e,t,s)=>{const r=s(54),i=s(768);e.exports=class extends r{constructor(e,t){super(e,["id","summary","description","categories","parameters","returns","deprecated","experimental","exceptions","examples","links",["process_graph","processGraph"]]),this.id=t,this.summary=void 0,this.description=void 0,this.categories=void 0,this.parameters=void 0,this.returns=void 0,this.deprecated=void 0,this.experimental=void 0,this.exceptions=void 0,this.examples=void 0,this.links=void 0,this.processGraph=void 0}async describeUserProcess(){let e=await this.connection._get("/process_graphs/"+this.id);if(!i.isObject(e.data)||"string"!=typeof e.data.id)throw new Error("Invalid response received for user process");return this.connection.processes.add(e.data,"user"),this.setAll(e.data)}async replaceUserProcess(e){if(await this.connection._put("/process_graphs/"+this.id,this._convertToRequest(e)),this._supports("describeUserProcess"))return this.describeUserProcess();{let t=this.setAll(e);return this.connection.processes.add(t.toJSON(),"user"),t}}async deleteUserProcess(){await this.connection._delete("/process_graphs/"+this.id),this.connection.processes.remove(this.id,"user")}}},385:(e,t,s)=>{"use strict";s.r(t),s.d(t,{compare:()=>u,compareVersions:()=>c,satisfies:()=>f,validate:()=>m,validateStrict:()=>g});const r=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,i=e=>{if("string"!=typeof e)throw new TypeError("Invalid argument expected string");const t=e.match(r);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},n=e=>"*"===e||"x"===e||"X"===e,a=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},o=(e,t)=>{if(n(e)||n(t))return 0;const[s,r]=((e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t])(a(e),a(t));return s>r?1:s<r?-1:0},l=(e,t)=>{for(let s=0;s<Math.max(e.length,t.length);s++){const r=o(e[s]||"0",t[s]||"0");if(0!==r)return r}return 0},c=(e,t)=>{const s=i(e),r=i(t),n=s.pop(),a=r.pop(),o=l(s,r);return 0!==o?o:n&&a?l(n.split("."),a.split(".")):n||a?n?-1:1:0},u=(e,t,s)=>{d(s);const r=c(e,t);return p[s].includes(r)},p={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},h=Object.keys(p),d=e=>{if("string"!=typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===h.indexOf(e))throw new Error(`Invalid operator, expected one of ${h.join("|")}`)},f=(e,t)=>{if((t=t.replace(/([><=]+)\s+/g,"$1")).includes("||"))return t.split("||").some((t=>f(e,t)));if(t.includes(" - ")){const[s,r]=t.split(" - ",2);return f(e,`>=${s} <=${r}`)}if(t.includes(" "))return t.trim().replace(/\s{2,}/g," ").split(" ").every((t=>f(e,t)));const s=t.match(/^([<>=~^]+)/),r=s?s[1]:"=";if("^"!==r&&"~"!==r)return u(e,t,r);const[n,a,o,,c]=i(e),[p,h,d,,m]=i(t),g=[n,a,o],y=[p,null!=h?h:"x",null!=d?d:"x"];if(m){if(!c)return!1;if(0!==l(g,y))return!1;if(-1===l(c.split("."),m.split(".")))return!1}const b=y.findIndex((e=>"0"!==e))+1,v="~"===r?2:b>1?b:1;return 0===l(g.slice(0,v),y.slice(0,v))&&-1!==l(g.slice(v),y.slice(v))},m=e=>"string"==typeof e&&/^[v\d]/.test(e)&&r.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)},252:e=>{"use strict";e.exports=function e(t,s){if(t===s)return!0;if(t&&s&&"object"==typeof t&&"object"==typeof s){if(t.constructor!==s.constructor)return!1;var r,i,n;if(Array.isArray(t)){if((r=t.length)!=s.length)return!1;for(i=r;0!=i--;)if(!e(t[i],s[i]))return!1;return!0}if(t instanceof Map&&s instanceof Map){if(t.size!==s.size)return!1;for(i of t.entries())if(!s.has(i[0]))return!1;for(i of t.entries())if(!e(i[1],s.get(i[0])))return!1;return!0}if(t instanceof Set&&s instanceof Set){if(t.size!==s.size)return!1;for(i of t.entries())if(!s.has(i[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(s)){if((r=t.length)!=s.length)return!1;for(i=r;0!=i--;)if(t[i]!==s[i])return!1;return!0}if(t.constructor===RegExp)return t.source===s.source&&t.flags===s.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===s.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===s.toString();if((r=(n=Object.keys(t)).length)!==Object.keys(s).length)return!1;for(i=r;0!=i--;)if(!Object.prototype.hasOwnProperty.call(s,n[i]))return!1;for(i=r;0!=i--;){var a=n[i];if(!e(t[a],s[a]))return!1}return!0}return t!=t&&s!=s}},117:e=>{"use strict";e.exports=t},742:t=>{"use strict";t.exports=e}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var n=r[e]={exports:{}};return s[e].call(n.exports,n,n.exports,i),n.exports}return i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i(224)})()));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("axios"),require("Oidc"));else if("function"==typeof define&&define.amd)define(["axios","Oidc"],t);else{var r="object"==typeof exports?t(require("axios"),require("Oidc")):t(e.axios,e.Oidc);for(var s in r)("object"==typeof exports?exports:e)[s]=r[s]}}(self,(e,t)=>(()=>{var r={0:(e,t,r)=>{"use strict";var s=r(8452),i=r(1570)();e.exports=function(){return s(RegExp,{escape:i}),RegExp.escape}},41:(e,t,r)=>{"use strict";var s=r(655),i=r(8068),n=r(9675),o=r(5795);e.exports=function(e,t,r){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new n("`obj` must be an object or a function`");if("string"!=typeof t&&"symbol"!=typeof t)throw new n("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new n("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new n("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new n("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new n("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],p=!!o&&o(e,t);if(s)s(e,t,{configurable:null===c&&p?p.configurable:!c,enumerable:null===a&&p?p.enumerable:!a,value:r,writable:null===l&&p?p.writable:!l});else{if(!u&&(a||l||c))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=r}}},76:e=>{"use strict";e.exports=Function.prototype.call},113:(e,t,r)=>{"use strict";e.exports=r(1350)},280:(e,t,r)=>{"use strict";var s=r(9675),i=r(7312);e.exports=function(e){if("string"!=typeof e)throw new s("Assertion failed: `string` must be a String");for(var t=[],r=e.length,n=0;n<r;){var o=i(e,n);t[t.length]=o["[[CodePoint]]"],n+=o["[[CodeUnitCount]]"]}return t}},414:e=>{"use strict";e.exports=Math.round},453:(e,t,r)=>{"use strict";var s,i=r(9612),n=r(9383),o=r(1237),a=r(9290),l=r(9538),c=r(8068),u=r(9675),p=r(5345),h=r(1514),d=r(8968),f=r(6188),y=r(8002),g=r(5880),m=r(414),b=r(3093),v=Function,w=function(e){try{return v('"use strict"; return ('+e+").constructor;")()}catch(e){}},x=r(5795),A=r(655),j=function(){throw new u},O=x?function(){try{return j}catch(e){try{return x(arguments,"callee").get}catch(e){return j}}}():j,P=r(4039)(),_=r(3628),S=r(1064),k=r(8648),E=r(1002),C=r(76),T={},U="undefined"!=typeof Uint8Array&&_?_(Uint8Array):s,F={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?s:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?s:ArrayBuffer,"%ArrayIteratorPrototype%":P&&_?_([][Symbol.iterator]()):s,"%AsyncFromSyncIteratorPrototype%":s,"%AsyncFunction%":T,"%AsyncGenerator%":T,"%AsyncGeneratorFunction%":T,"%AsyncIteratorPrototype%":T,"%Atomics%":"undefined"==typeof Atomics?s:Atomics,"%BigInt%":"undefined"==typeof BigInt?s:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?s:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?s:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?s:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":n,"%eval%":eval,"%EvalError%":o,"%Float16Array%":"undefined"==typeof Float16Array?s:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?s:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?s:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?s:FinalizationRegistry,"%Function%":v,"%GeneratorFunction%":T,"%Int8Array%":"undefined"==typeof Int8Array?s:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?s:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?s:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":P&&_?_(_([][Symbol.iterator]())):s,"%JSON%":"object"==typeof JSON?JSON:s,"%Map%":"undefined"==typeof Map?s:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&P&&_?_((new Map)[Symbol.iterator]()):s,"%Math%":Math,"%Number%":Number,"%Object%":i,"%Object.getOwnPropertyDescriptor%":x,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?s:Promise,"%Proxy%":"undefined"==typeof Proxy?s:Proxy,"%RangeError%":a,"%ReferenceError%":l,"%Reflect%":"undefined"==typeof Reflect?s:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?s:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&P&&_?_((new Set)[Symbol.iterator]()):s,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?s:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":P&&_?_(""[Symbol.iterator]()):s,"%Symbol%":P?Symbol:s,"%SyntaxError%":c,"%ThrowTypeError%":O,"%TypedArray%":U,"%TypeError%":u,"%Uint8Array%":"undefined"==typeof Uint8Array?s:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?s:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?s:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?s:Uint32Array,"%URIError%":p,"%WeakMap%":"undefined"==typeof WeakMap?s:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?s:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?s:WeakSet,"%Function.prototype.call%":C,"%Function.prototype.apply%":E,"%Object.defineProperty%":A,"%Object.getPrototypeOf%":S,"%Math.abs%":h,"%Math.floor%":d,"%Math.max%":f,"%Math.min%":y,"%Math.pow%":g,"%Math.round%":m,"%Math.sign%":b,"%Reflect.getPrototypeOf%":k};if(_)try{null.error}catch(e){var I=_(_(e));F["%Error.prototype%"]=I}var R=function e(t){var r;if("%AsyncFunction%"===t)r=w("async function () {}");else if("%GeneratorFunction%"===t)r=w("function* () {}");else if("%AsyncGeneratorFunction%"===t)r=w("async function* () {}");else if("%AsyncGenerator%"===t){var s=e("%AsyncGeneratorFunction%");s&&(r=s.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&_&&(r=_(i.prototype))}return F[t]=r,r},N={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},J=r(6743),M=r(9957),z=J.call(C,Array.prototype.concat),$=J.call(E,Array.prototype.splice),B=J.call(C,String.prototype.replace),L=J.call(C,String.prototype.slice),D=J.call(C,RegExp.prototype.exec),G=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,V=/\\(\\)?/g,H=function(e,t){var r,s=e;if(M(N,s)&&(s="%"+(r=N[s])[0]+"%"),M(F,s)){var i=F[s];if(i===T&&(i=R(s)),void 0===i&&!t)throw new u("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:r,name:s,value:i}}throw new c("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new u("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new u('"allowMissing" argument must be a boolean');if(null===D(/^%?[^%]*%?$/,e))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(e){var t=L(e,0,1),r=L(e,-1);if("%"===t&&"%"!==r)throw new c("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new c("invalid intrinsic syntax, expected opening `%`");var s=[];return B(e,G,function(e,t,r,i){s[s.length]=r?B(i,V,"$1"):t||e}),s}(e),s=r.length>0?r[0]:"",i=H("%"+s+"%",t),n=i.name,o=i.value,a=!1,l=i.alias;l&&(s=l[0],$(r,z([0,1],l)));for(var p=1,h=!0;p<r.length;p+=1){var d=r[p],f=L(d,0,1),y=L(d,-1);if(('"'===f||"'"===f||"`"===f||'"'===y||"'"===y||"`"===y)&&f!==y)throw new c("property names with quotes must have matching quotes");if("constructor"!==d&&h||(a=!0),M(F,n="%"+(s+="."+d)+"%"))o=F[n];else if(null!=o){if(!(d in o)){if(!t)throw new u("base intrinsic for "+e+" exists, but the property is not available.");return}if(x&&p+1>=r.length){var g=x(o,d);o=(h=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:o[d]}else h=M(o,d),o=o[d];h&&!a&&(F[n]=o)}}return o}},487:(e,t,r)=>{"use strict";var s=r(6897),i=r(655),n=r(3126),o=r(2205);e.exports=function(e){var t=n(arguments),r=e.length-(arguments.length-1);return s(t,1+(r>0?r:0),!0)},i?i(e.exports,"apply",{value:o}):e.exports.apply=o},592:(e,t,r)=>{"use strict";var s=r(655),i=function(){return!!s};i.hasArrayLengthDefineBug=function(){if(!s)return null;try{return 1!==s([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},655:e=>{"use strict";var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch(e){t=!1}e.exports=t},768:(e,t,r)=>{var s=r(9252);class i{static isObject(e){return"object"==typeof e&&e===Object(e)&&!Array.isArray(e)}static hasText(e){return"string"==typeof e&&e.length>0}static equals(e,t){return s(e,t)}static pickFromObject(e,t){e=Object(e),"string"==typeof t&&(t=[t]);const r={};return t.forEach(t=>r[t]=e[t]),r}static omitFromObject(e,t){e=Object(e),"string"==typeof t&&(t=[t]);var r=Object.assign({},e);for(let e of t)delete r[e];return r}static mapObject(e,t){const r=Object.keys(e),s=new Array(r.length);return r.forEach((r,i)=>{s[i]=t(e[r],r,e)}),s}static mapObjectValues(e,t){e=Object(e);const r={};return Object.keys(e).forEach(s=>{r[s]=t(e[s],s,e)}),r}static unique(e,t=!1){return t?e.filter((e,t,r)=>r.findIndex(t=>i.equals(e,t))===t):[...new Set(e)]}static size(e){return"object"==typeof e&&null!==e?Array.isArray(e)?e.length:Object.keys(e).length:0}static isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}static deepClone(e){return JSON.parse(JSON.stringify(e))}static normalizeUrl(e,t=null){let r=e.replace(/\/$/,"");return"string"==typeof t&&("/"!==t.substr(0,1)&&(t="/"+t),r+=t.replace(/\/$/,"")),r}static replacePlaceholders(e,t={}){if("string"==typeof e&&i.isObject(t))for(var r in t){let s=t[r];e=e.replace("{"+r+"}",Array.isArray(s)?s.join("; "):s)}return e}static compareStringCaseInsensitive(e,t){return"string"!=typeof e&&(e=String(e)),"string"!=typeof t&&(t=String(t)),e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})}static prettifyString(e,t="; "){return Array.isArray(e)||(e=[String(e)]),(e=e.map(e=>{if(e.length>=3){const t=(e,t,r)=>t+" "+r.toUpperCase();return(e=e.includes("_")?e.replace(/([a-zA-Z\d])_([a-zA-Z\d])/g,t):e.includes("-")?e.replace(/([a-zA-Z\d])-([a-zA-Z\d])/g,t):e.replace(/([a-z])([A-Z])/g,t)).charAt(0).toUpperCase()+e.substr(1)}return e})).join(t)}static friendlyLinks(e,t=!0,r=["self"]){let s=[];if(!Array.isArray(e))return s;for(let t of e)t=Object.assign({},t),"string"==typeof t.rel&&r.includes(t.rel.toLowerCase())||("string"==typeof t.title&&0!==t.title.length||("string"==typeof t.rel&&t.rel.length>1?t.title=i.prettifyString(t.rel):t.title=t.href.replace(/^https?:\/\/(www.)?/i,"").replace(/\/$/i,"")),s.push(t));return t&&s.sort((e,t)=>i.compareStringCaseInsensitive(e.title,t.title)),s}}e.exports=i},779:(e,t,r)=>{const s=r(768);class i{static normalizeJsonSchema(e,t=!1){s.isObject(e)?e=[e]:Array.isArray(e)||(e=[]);let r=[];for(let t of e)if(Array.isArray(t.allOf))r.push(Object.assign({},...t.allOf));else if(Array.isArray(t.oneOf)||Array.isArray(t.anyOf)){let e=s.omitFromObject(t,["oneOf","anyOf"]),i=t.oneOf||t.anyOf;for(let t of i)r.push(Object.assign({},e,t))}else r.push(t);if(!t)return r;e=[];for(let t of r)Array.isArray(t.type)?e=e.concat(t.type.map(e=>Object.assign({},t,{type:e}))):e.push(t);return e}static getCallbackParameters(e,t=[]){if(!s.isObject(e)||!e.schema)return[];let r,n=i.normalizeJsonSchema(e.schema);for(;r=t.shift();)n=n.map(e=>i.normalizeJsonSchema(i.getElementJsonSchema(e,r))),n=n.concat(...n);let o=[];for(let e of n){let t=null;if(Array.isArray(e.parameters)?t=e.parameters:s.isObject(e.additionalProperties)&&Array.isArray(e.additionalProperties.parameters)&&(t=e.additionalProperties.parameters),Array.isArray(t)){if(o.length>0&&!s.equals(o,t))throw new Error("Multiple schemas with different callback parameters found.");o=t}}return o}static getCallbackParametersForProcess(e,t,r=[]){if(!s.isObject(e)||!Array.isArray(e.parameters))return[];let n=e.parameters.find(e=>e.name===t);return i.getCallbackParameters(n,r)}static getNativeTypesForJsonSchema(e,t=!1){if(s.isObject(e)&&Array.isArray(e.type)){let r=s.unique(e.type).filter(e=>i.JSON_SCHEMA_TYPES.includes(e));return r.length>0&&r.length<i.JSON_SCHEMA_TYPES.length?r:t?[]:i.JSON_SCHEMA_TYPES}return s.isObject(e)&&"string"==typeof e.type&&i.JSON_SCHEMA_TYPES.includes(e.type)?[e.type]:t?[]:i.JSON_SCHEMA_TYPES}static getElementJsonSchema(e,t=null){let r=i.getNativeTypesForJsonSchema(e);if(s.isObject(e)&&r.includes("array")&&"string"!=typeof t){if(s.isObject(e.items))return e.items;if(Array.isArray(e.items)){if(null!==t&&s.isObject(e.items[t]))return e.items[t];if(s.isObject(e.additionalItems))return e.additionalItems}}if(s.isObject(e)&&r.includes("object")){if(null!==t&&s.isObject(e.properties)&&s.isObject(e.properties[t]))return e.properties[t];if(s.isObject(e.additionalProperties))return e.additionalProperties}return{}}}i.JSON_SCHEMA_TYPES=["string","number","integer","boolean","array","object","null"],e.exports=i},933:(e,t,r)=>{const s=r(2458),i=r(768),n=r(6147);e.exports=class extends n{constructor(e){super("basic",e,{id:null,title:"HTTP Basic",description:"Login with username and password using the method HTTP Basic."}),this.username=null}async login(e,t){let r=await this.connection._send({method:"get",responseType:"json",url:"/credentials/basic",headers:{Authorization:"Basic "+s.base64encode(e+":"+t)}});if(!i.isObject(r.data)||"string"!=typeof r.data.access_token)throw new Error("No access_token returned.");this.username=e,this.setToken(r.data.access_token)}getDisplayName(){return this.username}async logout(){this.username=null,await super.logout()}}},1002:e=>{"use strict";e.exports=Function.prototype.apply},1064:(e,t,r)=>{"use strict";var s=r(9612);e.exports=s.getPrototypeOf||null},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),s="[object Arguments]"===r;return s||(s="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),s}},1189:(e,t,r)=>{"use strict";var s=Array.prototype.slice,i=r(1093),n=Object.keys,o=n?function(e){return n(e)}:r(8875),a=Object.keys;o.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return i(e)?a(s.call(e)):a(e)})}else Object.keys=o;return Object.keys||o},e.exports=o},1224:(e,t,r)=>{const s=r(2742),i=r(768),n=r(3304),o=r(7704),a=r(4293),l=r(2431),c=r(9649),u=r(9806),p=r(5497),h=r(6147),d=r(933),f=r(3688),y=r(4026),g=r(9405),m=r(1425),b=r(2804),v=r(7897),w=r(2212),x="1.0.0-rc.2",A="1.x.x";class j{static async connect(e,t={}){let r=i.normalizeUrl(e,"/.well-known/openeo"),o=e,a=null;try{if(a=await s.get(r,{timeout:5e3}),!i.isObject(a.data)||!Array.isArray(a.data.versions))throw new Error("Well-Known Document doesn't list any versions.")}catch(e){console.warn("Can't read well-known document, connecting directly to the specified URL as fallback mechanism. Reason: "+e.message)}if(i.isObject(a)){let e=n.findLatest(a.data.versions,!0,x,A);if(null===e)throw new Error("Server not supported. Client only supports the API versions between "+x+" and "+A);o=e.url}let l=await j.connectDirect(o,t);return l.url=e,l}static async connectDirect(e,t={}){let r=new o(e,t),s=await r.init();if(n.compare(s.apiVersion(),x,"<")||n.compare(s.apiVersion(),A,">"))throw new Error("Client only supports the API versions between "+x+" and "+A);return r}static clientVersion(){return"2.9.0"}}j.Environment=r(2458),e.exports={AbortController,AuthProvider:h,BasicProvider:d,Capabilities:y,Connection:o,FileTypes:g,Job:a,Logs:l,OidcProvider:f,OpenEO:j,Service:p,UserFile:c,UserProcess:u,Builder:m,BuilderNode:b,Parameter:v,Formula:w}},1237:e=>{"use strict";e.exports=EvalError},1321:(e,t,r)=>{var s=r(9139);const i="1.0.0",n={classification:"https://stac-extensions.github.io/classification/v1.1.0/schema.json",datacube:"https://stac-extensions.github.io/datacube/v2.1.0/schema.json",eo:"https://stac-extensions.github.io/eo/v1.0.0/schema.json",file:"https://stac-extensions.github.io/file/v1.0.0/schema.json","item-assets":"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json",label:"https://stac-extensions.github.io/label/v1.0.1/schema.json",pointcloud:"https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json",processing:"https://stac-extensions.github.io/processing/v1.1.0/schema.json",projection:"https://stac-extensions.github.io/projection/v1.0.0/schema.json",raster:"https://stac-extensions.github.io/raster/v1.1.0/schema.json",sar:"https://stac-extensions.github.io/sar/v1.0.0/schema.json",sat:"https://stac-extensions.github.io/sat/v1.0.0/schema.json",scientific:"https://stac-extensions.github.io/scientific/v1.0.0/schema.json",table:"https://stac-extensions.github.io/table/v1.2.0/schema.json",timestamps:"https://stac-extensions.github.io/timestamps/v1.0.0/schema.json",version:"https://stac-extensions.github.io/version/v1.0.0/schema.json",view:"https://stac-extensions.github.io/view/v1.0.0/schema.json"},o={itemAndCollection:{"cube:":n.datacube,"eo:":n.eo,"file:":n.file,"label:":n.label,"pc:":n.pointcloud,"processing:":n.processing,"proj:":n.projection,"raster:":n.raster,"sar:":n.sar,"sat:":n.sat,"sci:":n.scientific,"view:":n.view,version:n.version,deprecated:n.version,published:n.timestamps,expires:n.timestamps,unpublished:n.timestamps},catalog:{},collection:{item_assets:n["item-assets"]},item:{}};o.collection=Object.assign(o.collection,o.itemAndCollection),o.item=Object.assign(o.item,o.itemAndCollection);var a={parseUrl(e){let t=e.match(/^https?:\/\/stac-extensions.github.io\/([^\/]+)\/v([^\/]+)\/[^.]+.json$/i);if(t)return{id:t[1],version:t[2]}}},l={version:i,extensions:{},set(e){if("string"!=typeof e.stac_version?l.version="0.6.0":l.version=e.stac_version,Array.isArray(e.stac_extensions))for(let t of e.stac_extensions){let e=a.parseUrl(t);e&&(l.extensions[e.id]=e.version)}},before(e,t=null){let r=t?l.extensions[t]:l.version;return void 0!==r&&s.compare(r,e,"<")}},c={type(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(Array.isArray(e))return"array"}return t},is:(e,t)=>c.type(e)===t,isDefined:e=>void 0!==e,isObject:e=>"object"==typeof e&&e===Object(e)&&!Array.isArray(e),rename:(e,t,r)=>void 0!==e[t]&&void 0===e[r]&&(e[r]=e[t],delete e[t],!0),forAll(e,t,r){if(e[t]&&"object"==typeof e[t])for(let s in e[t])r(e[t][s])},toArray:(e,t)=>void 0!==e[t]&&!Array.isArray(e[t])&&(e[t]=[e[t]],!0),flattenArray(e,t,r,s=!1){if(Array.isArray(e[t])){for(let i in e[t])if("string"==typeof r[i]){let n=e[t][i];e[r[i]]=s?[n]:n}return delete e[t],!0}return!1},flattenOneElementArray:(e,t,r=!1)=>!(!r&&Array.isArray(e[t]))||1===e[t].length&&(e[t]=e[t][0],!0),removeFromArray(e,t,r){if(Array.isArray(e[t])){let s=e[t].indexOf(r);return s>-1&&e[t].splice(s,1),!0}return!1},ensure:(e,t,r)=>(c.type(r)!==c.type(e[t])&&(e[t]=r),!0),upgradeExtension(e,t){let{id:r,version:i}=a.parseUrl(t),n=e.stac_extensions.findIndex(e=>{let t=a.parseUrl(e);return t&&t.id===r&&s.compare(t.version,i,"<")});return-1!==n&&(e.stac_extensions[n]=t,!0)},addExtension(e,t){let{id:r,version:i}=a.parseUrl(t),n=e.stac_extensions.findIndex(e=>{if(e===t)return!0;let n=a.parseUrl(e);return!(!n||n.id!==r||!s.compare(n.version,i,"<"))});return-1===n?e.stac_extensions.push(t):e.stac_extensions[n]=t,e.stac_extensions.sort(),!0},removeExtension:(e,t)=>c.removeFromArray(e,"stac_extensions",t),migrateExtensionShortnames(e){let t=Object.keys(n),r=Object.values(n);return c.mapValues(e,"stac_extensions",t,r)},populateExtensions(e,t){let r=[];"catalog"!=t&&"collection"!=t||r.push(e),"item"!=t&&"collection"!=t||!c.isObject(e.assets)||(r=r.concat(Object.values(e.assets))),"collection"==t&&c.isObject(e.item_assets)&&(r=r.concat(Object.values(e.item_assets))),"collection"==t&&c.isObject(e.summaries)&&r.push(e.summaries),"item"==t&&c.isObject(e.properties)&&r.push(e.properties);for(let s of r)Object.keys(s).forEach(r=>{let s=r.match(/^(\w+:|[^:]+$)/i);if(Array.isArray(s)){let r=o[t][s[0]];c.is(r,"string")&&c.addExtension(e,r)}})},mapValues(e,t,r,s){let i=e=>{let t=r.indexOf(e);return t>=0?s[t]:e};return Array.isArray(e[t])?e[t]=e[t].map(i):void 0!==e[t]&&(e[t]=i(e[t])),!0},mapObject(e,t){for(let r in e)e[r]=t(e[r],r)},moveTo(e,t,r,s=!1,i=!1){let n;return n=s?i?e=>Array.isArray(e):e=>Array.isArray(e)&&1===e.length:c.isDefined,!!n(e[t])&&(r[t]=s&&!i?e[t][0]:e[t],delete e[t],!0)},runAll(e,t,r,s){for(let i in e)i.startsWith("migrate")||e[i](t,r,s)},toUTC(e,t){if("string"==typeof e[t])try{return e[t]=this.toISOString(e[t]),!0}catch(e){}return delete e[t],!1},toISOString:e=>(e instanceof Date||(e=new Date(e)),e.toISOString().replace(".000",""))},u={multihash:null,hexToUint8(e){if(0===e.length||e.length%2!=0)throw new Error(`The string "${e}" is not valid hex.`);return new Uint8Array(e.match(/.{1,2}/g).map(e=>parseInt(e,16)))},uint8ToHex:e=>e.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),""),toMultihash(e,t,r){if(!u.multihash||!c.is(e[t],"string"))return!1;try{const s=u.multihash.encode(u.hexToUint8(e[t]),r);return e[t]=u.uint8ToHex(s),!0}catch(e){return console.warn(e),!1}}},p={migrate:(e,t=!0)=>(l.set(e),t&&(e.stac_version=i),e.type="Catalog",c.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&c.migrateExtensionShortnames(e),c.ensure(e,"id",""),c.ensure(e,"description",""),c.ensure(e,"links",[]),c.runAll(p,e,e),l.before("0.8.0")&&c.populateExtensions(e,"catalog"),e)},h={migrate:(e,t=!0)=>(p.migrate(e,t),e.type="Collection",l.before("1.0.0-rc.1")&&c.migrateExtensionShortnames(e),c.ensure(e,"license","proprietary"),c.ensure(e,"extent",{spatial:{bbox:[]},temporal:{interval:[]}}),c.runAll(h,e,e),c.isObject(e.properties)&&(c.removeFromArray(e,"stac_extensions","commons"),delete e.properties),l.before("0.8.0")&&c.populateExtensions(e,"collection"),l.before("1.0.0-beta.1")&&c.mapValues(e,"stac_extensions",["assets"],["item-assets"]),e),extent(e){if(c.ensure(e,"extent",{}),l.before("0.8.0")&&(Array.isArray(e.extent.spatial)&&(e.extent.spatial={bbox:[e.extent.spatial]}),Array.isArray(e.extent.temporal)&&(e.extent.temporal={interval:[e.extent.temporal]})),c.ensure(e.extent,"spatial",{}),c.ensure(e.extent.spatial,"bbox",[]),c.ensure(e.extent,"temporal",{}),c.ensure(e.extent.temporal,"interval",[]),l.before("1.0.0-rc.3")){if(e.extent.temporal.interval.length>1){let t,r;for(let s of e.extent.temporal.interval){if(null===s[0])t=null;else if("string"==typeof s[0]&&null!==t)try{let e=new Date(s[0]);(void 0===t||e<t)&&(t=e)}catch(e){}if(null===s[1])r=null;else if("string"==typeof s[1]&&null!==r)try{let e=new Date(s[1]);(void 0===r||e>r)&&(r=e)}catch(e){}}e.extent.temporal.interval.unshift([t?c.toISOString(t):null,r?c.toISOString(r):null])}if(e.extent.spatial.bbox.length>1){let t=e.extent.spatial.bbox.reduce((e,t)=>Array.isArray(t)?Math.max(t.length,e):e,4);if(t>=4){let r=new Array(t).fill(null),s=t/2;for(let t of e.extent.spatial.bbox){if(!Array.isArray(t)||t.length<4)break;for(let e in t){let i=t[e];null===r[e]?r[e]=i:r[e]=e<s?Math.min(i,r[e]):Math.max(i,r[e])}}-1===r.findIndex(e=>null===e)&&e.extent.spatial.bbox.unshift(r)}}}},collectionAssets(e){l.before("1.0.0-rc.1")&&c.removeExtension(e,"collection-assets"),g.migrateAll(e)},itemAsset(e){l.before("1.0.0-beta.2")&&c.rename(e,"item_assets","assets"),g.migrateAll(e,"item_assets")},summaries(e){if(c.ensure(e,"summaries",{}),l.before("0.8.0")&&c.isObject(e.other_properties)){for(let t in e.other_properties){let r=e.other_properties[t];Array.isArray(r.extent)&&2===r.extent.length?e.summaries[t]={minimum:r.extent[0],maximum:r.extent[1]}:Array.isArray(r.values)&&(r.values.filter(e=>Array.isArray(e)).length===r.values.length?e.summaries[t]=r.values.reduce((e,t)=>e.concat(t),[]):e.summaries[t]=r.values)}delete e.other_properties}if(l.before("1.0.0-beta.1")&&c.isObject(e.properties)&&!e.links.find(e=>["child","item"].includes(e.rel)))for(let t in e.properties){let r=e.properties[t];Array.isArray(r)||(r=[r]),e.summaries[t]=r}l.before("1.0.0-rc.1")&&c.mapObject(e.summaries,e=>(c.rename(e,"min","minimum"),c.rename(e,"max","maximum"),e)),m.migrate(e.summaries,e,!0),c.moveTo(e.summaries,"sci:doi",e,!0)&&c.addExtension(e,n.scientific),c.moveTo(e.summaries,"sci:publications",e,!0,!0)&&c.addExtension(e,n.scientific),c.moveTo(e.summaries,"sci:citation",e,!0)&&c.addExtension(e,n.scientific),c.moveTo(e.summaries,"cube:dimensions",e,!0)&&c.addExtension(e,n.datacube),0===Object.keys(e.summaries).length&&delete e.summaries}},d={migrate(e,t=null,r=!0){l.set(e),r&&(e.stac_version=i),c.ensure(e,"stac_extensions",[]),l.before("1.0.0-rc.1")&&c.migrateExtensionShortnames(e),c.ensure(e,"id",""),c.ensure(e,"type","Feature"),c.isObject(e.geometry)||(e.geometry=null),null!==e.geometry&&c.ensure(e,"bbox",[]),c.ensure(e,"properties",{}),c.ensure(e,"links",[]),c.ensure(e,"assets",{});let s=!1;return c.isObject(t)&&c.isObject(t.properties)&&(c.removeFromArray(e,"stac_extensions","commons"),e.properties=Object.assign({},t.properties,e.properties),s=!0),c.runAll(d,e,e),m.migrate(e.properties,e),g.migrateAll(e),(l.before("0.8.0")||s)&&c.populateExtensions(e,"item"),e}},f={migrate:(e,t=!0)=>(c.ensure(e,"collections",[]),c.ensure(e,"links",[]),c.runAll(f,e,e),e.collections=e.collections.map(e=>h.migrate(e,t)),e)},y={migrate:(e,t=!0)=>(c.ensure(e,"type","FeatureCollection"),c.ensure(e,"features",[]),c.ensure(e,"links",[]),c.runAll(y,e,e),e.features=e.features.map(e=>d.migrate(e,null,t)),e)},g={migrateAll(e,t="assets"){for(let r in e[t])g.migrate(e[t][r],e)},migrate:(e,t)=>(c.runAll(g,e,t),m.migrate(e,t),e),mediaTypes(e){c.is(e.type,"string")&&c.mapValues(e,"type",["image/vnd.stac.geotiff","image/vnd.stac.geotiff; cloud-optimized=true"],["image/tiff; application=geotiff","image/tiff; application=geotiff; profile=cloud-optimized"])},eo(e,t){let r=c.isObject(t.properties)&&Array.isArray(t.properties["eo:bands"])?t.properties["eo:bands"]:[];if(Array.isArray(e["eo:bands"]))for(let t in e["eo:bands"]){let s=e["eo:bands"][t];c.is(s,"number")&&c.isObject(r[s])?s=r[s]:c.isObject(s)||(s={}),e["eo:bands"][t]=s}}},m={migrate:(e,t,r=!1)=>(c.runAll(m,e,t,r),e),_commonMetadata(e){l.before("1.0.0-rc.3")&&(c.toUTC(e,"created"),c.toUTC(e,"updated"))},_timestamps(e,t){c.toUTC(e,"published"),c.toUTC(e,"expires"),c.toUTC(e,"unpublished"),c.upgradeExtension(t,n.timestamps)},_versioningIndicator(e,t){c.upgradeExtension(t,n.version)},checksum(e,t){l.before("0.9.0")&&u.multihash&&(c.rename(e,"checksum:md5","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","md5"),c.rename(e,"checksum:sha1","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","sha1"),c.rename(e,"checksum:sha2","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","sha2-256"),c.rename(e,"checksum:sha3","checksum:multihash")&&u.toMultihash(e,"checksum:multihash","sha3-256")),l.before("1.0.0-rc.1")&&c.rename(e,"checksum:multihash","file:checksum")&&c.addExtension(t,n.file),c.removeExtension(t,"checksum")},classification(e,t){l.before("1.1.0","classification")&&c.forAll(e,"classification:classes",e=>c.rename(e,"color-hint","color_hint")),c.upgradeExtension(t,n.classification)},cube(e,t){c.upgradeExtension(t,n.datacube)},dtr(e,t){l.before("0.9.0")&&(c.rename(e,"dtr:start_datetime","start_datetime"),c.rename(e,"dtr:end_datetime","end_datetime"),c.removeExtension(t,"datetime-range"))},eo(e,t){l.before("0.9.0")&&(c.rename(e,"eo:epsg","proj:epsg")&&c.addExtension(t,n.projection),c.rename(e,"eo:platform","platform"),c.rename(e,"eo:instrument","instruments")&&c.toArray(e,"instruments"),c.rename(e,"eo:constellation","constellation"),c.rename(e,"eo:off_nadir","view:off_nadir")&&c.addExtension(t,n.view),c.rename(e,"eo:azimuth","view:azimuth")&&c.addExtension(t,n.view),c.rename(e,"eo:incidence_angle","view:incidence_angle")&&c.addExtension(t,n.view),c.rename(e,"eo:sun_azimuth","view:sun_azimuth")&&c.addExtension(t,n.view),c.rename(e,"eo:sun_elevation","view:sun_elevation")&&c.addExtension(t,n.view)),l.before("1.0.0-beta.1")&&c.rename(e,"eo:gsd","gsd"),c.upgradeExtension(t,n.eo)},file(e,t){c.upgradeExtension(t,n.file)},label(e,t){l.before("0.8.0")&&(c.rename(e,"label:property","label:properties"),c.rename(e,"label:task","label:tasks"),c.rename(e,"label:overview","label:overviews")&&c.toArray(e,"label:overviews"),c.rename(e,"label:method","label:methods"),c.toArray(e,"label:classes")),c.upgradeExtension(t,n.label)},pc(e,t){l.before("0.8.0")&&c.rename(e,"pc:schema","pc:schemas"),c.upgradeExtension(t,n.pointcloud)},processing(e,t){c.upgradeExtension(t,n.processing)},proj(e,t){c.upgradeExtension(t,n.projection)},raster(e,t){c.upgradeExtension(t,n.raster)},sar(e,t,r){c.rename(e,"sar:incidence_angle","view:incidence_angle")&&c.addExtension(t,n.view),c.rename(e,"sar:pass_direction","sat:orbit_state")&&c.mapValues(e,"sat:orbit_state",[null],["geostationary"])&&c.addExtension(t,n.sat),l.before("0.7.0")&&(c.flattenArray(e,"sar:resolution",["sar:resolution_range","sar:resolution_azimuth"],r),c.flattenArray(e,"sar:pixel_spacing",["sar:pixel_spacing_range","sar:pixel_spacing_azimuth"],r),c.flattenArray(e,"sar:looks",["sar:looks_range","sar:looks_azimuth","sar:looks_equivalent_number"],r),c.rename(e,"sar:off_nadir","view:off_nadir")&&c.addExtension(t,n.view)),l.before("0.9.0")&&(c.rename(e,"sar:platform","platform"),c.rename(e,"sar:instrument","instruments")&&c.toArray(e,"instruments"),c.rename(e,"sar:constellation","constellation"),c.rename(e,"sar:type","sar:product_type"),c.rename(e,"sar:polarization","sar:polarizations"),c.flattenOneElementArray(e,"sar:absolute_orbit",r)&&c.rename(e,"sar:absolute_orbit","sat:absolute_orbit")&&c.addExtension(t,n.sat),c.flattenOneElementArray(e,"sar:relative_orbit",r)&&c.rename(e,"sar:relative_orbit","sat:relative_orbit")&&c.addExtension(t,n.sat)),c.upgradeExtension(t,n.sar)},sat(e,t){l.before("0.9.0")&&(c.rename(e,"sat:off_nadir_angle","sat:off_nadir"),c.rename(e,"sat:azimuth_angle","sat:azimuth"),c.rename(e,"sat:sun_azimuth_angle","sat:sun_azimuth"),c.rename(e,"sat:sun_elevation_angle","sat:sun_elevation")),c.upgradeExtension(t,n.sat)},sci(e,t){c.upgradeExtension(t,n.scientific)},item(e){l.before("0.8.0")&&(c.rename(e,"item:license","license"),c.rename(e,"item:providers","providers"))},table(e,t){c.upgradeExtension(t,n.table)},view(e,t){c.upgradeExtension(t,n.view)}},b={item:(e,t=null,r=!0)=>d.migrate(e,t,r),catalog:(e,t=!0)=>p.migrate(e,t),collection:(e,t=!0)=>h.migrate(e,t),collectionCollection:(e,t=!0)=>f.migrate(e,t),itemCollection:(e,t=!0)=>y.migrate(e,t),stac:(e,t=!0)=>"Feature"===e.type?b.item(e,null,t):"FeatureCollection"===e.type?b.itemCollection(e,t):"Collection"===e.type||!e.type&&c.isDefined(e.extent)&&c.isDefined(e.license)?b.collection(e,t):!e.type&&Array.isArray(e.collections)?b.collectionCollection(e,t):b.catalog(e,t),enableMultihash(e){u.multihash=e}};e.exports=b},1333:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var s in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var n=Object.getOwnPropertyDescriptor(e,t);if(42!==n.value||!0!==n.enumerable)return!1}return!0}},1350:(e,t,r)=>{"use strict";var s=r(8968);e.exports=function(e,t){var r=e%t;return s(r>=0?r:r+t)}},1425:(e,t,r)=>{const s=r(2804),i=r(7897),n=r(2742),o=r(768),a=r(779),l=r(3659),c=["id","summary","description","categories","parameters","returns","deprecated","experimental","exceptions","examples","links"];class u{static async fromVersion(e=null){let t="https://processes.openeo.org/processes.json";return"string"==typeof e&&(t="https://processes.openeo.org/"+e+"/processes.json"),await u.fromURL(t)}static async fromURL(e){let t=await n(e);return new u(t.data)}constructor(e,t=null,r=void 0){if(this.id=r,this.parent=t,this.parentNode=null,this.parentParameter=null,this.nodes={},this.idCounter={},this.callbackParameterCache={},this.parameters=void 0,this.processes=null,e instanceof l)this.processes=e;else if(o.isObject(e)&&Array.isArray(e.processes))this.processes=new l(e.processes);else{if(!Array.isArray(e))throw new Error("Processes are invalid; must be array or object according to the API.");this.processes=new l(e)}this.processes.all().forEach(e=>this.createFunction(e))}createFunction(e){if(void 0!==this[e.id])throw new Error("Can't create function for process '"+e.id+"'. Already exists in Builder class.");this[e.id]=function(...t){return this.process(e.id,t)}}addProcessSpec(e,t=null){if(!o.isObject(e))throw new Error("Process '"+e.id+"' must be an object.");t||(t="backend"),this.processes.add(e,t),"backend"===t&&this.createFunction(e)}setParent(e,t){this.parentNode=e,this.parentParameter=t}createCallbackParameter(e){return this.callbackParameterCache[e]||(this.callbackParameterCache[e]=i.create(this,e)),this.callbackParameterCache[e]}getParentCallbackParameters(){let e=[];if(this.parentNode&&this.parentParameter)try{e=a.getCallbackParametersForProcess(this.parentNode.spec,this.parentParameter).map(e=>this.createCallbackParameter(e.name))}catch(e){console.warn(e)}return e}addParameter(e,t=!0){if(void 0!==this.getParentCallbackParameters().find(t=>t.name===e.name))return;let r=this;if(t)for(;r.parent;)r=r.parent;Array.isArray(r.parameters)||(r.parameters=[]);let s=r.parameters.findIndex(t=>t.name===e.name);-1!==s?Object.assign(r.parameters[s],e):r.parameters.push(e)}spec(e,t=null){return this.processes.get(e,t)}math(e){let t=new(r(2212))(e);return t.setBuilder(this),t.generate(!1)}supports(e,t=null){return Boolean(this.spec(e,t))}process(e,t={},r=null){let i=null;if(e.includes("@")){let t;[e,...t]=e.split("@"),i=t.join("@")}let n=new s(this,e,t,r,i);return this.nodes[n.id]=n,n}toJSON(){let e={process_graph:o.mapObjectValues(this.nodes,e=>e.toJSON())};return c.forEach(t=>{void 0!==this[t]&&(e[t]=this[t])}),e}generateId(e=""){return e=e.replace("_","").substr(0,6),this.idCounter[e]?this.idCounter[e]++:this.idCounter[e]=1,e+this.idCounter[e]}}e.exports=u},1514:e=>{"use strict";e.exports=Math.abs},1570:(e,t,r)=>{"use strict";var s=r(3835);e.exports=function(){return RegExp.escape||s}},2114:(e,t,r)=>{"use strict";var s=r(9675),i=r(6556),n=r(7440),o=i("String.prototype.slice");e.exports=function(e,t,r,i){if("string"!=typeof e)throw new s("Assertion failed: `S` must be a String");if(!n(t)||t<0)throw new s("Assertion failed: `maxLength` must be a non-negative integer");if("string"!=typeof r)throw new s("Assertion failed: `fillString` must be a String");if("start"!==i&&"end"!==i&&"START"!==i&&"END"!==i)throw new s("Assertion failed: `placement` must be ~START~ or ~END~");var a=e.length;if(t<=a)return e;if(""===r)return e;for(var l=t-a,c="";c.length<l;)c+=r;return c=o(c,0,l),"start"===i||"START"===i?c+e:e+c}},2117:e=>{"use strict";e.exports=t},2161:e=>{"use strict";e.exports=function(e){return"number"==typeof e&&e>=55296&&e<=56319}},2205:(e,t,r)=>{"use strict";var s=r(6743),i=r(1002),n=r(3144);e.exports=function(){return n(s,i,arguments)}},2212:(e,t,r)=>{const s=r(6462),i=r(7897),n=r(2804);class o{constructor(e){let t=new s.Parser;this.tree=t.parse(e),this.builder=null}setBuilder(e){this.builder=e}generate(e=!0){let t=this.parseTree(this.tree);if(!(t instanceof n))throw new Error("Invalid formula specified.");return e&&(t.result=!0),t}parseTree(e){let t=Object.keys(e)[0];switch(t){case"Number":return parseFloat(e.Number);case"Identifier":return this.getRef(e.Identifier);case"Expression":return this.parseTree(e.Expression);case"FunctionCall":{let t=[];for(let r in e.FunctionCall.args)t.push(this.parseTree(e.FunctionCall.args[r]));return this.builder.process(e.FunctionCall.name,t)}case"Binary":return this.addOperatorProcess(e.Binary.operator,this.parseTree(e.Binary.left),this.parseTree(e.Binary.right));case"Unary":{let t=this.parseTree(e.Unary.expression);return"-"===e.Unary.operator?"number"==typeof t?-t:this.addOperatorProcess("*",-1,t):t}default:throw new Error("Operation "+t+" not supported.")}}getRef(e){if("true"===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("string"==typeof e&&e.startsWith("#")){let t=e.substring(1);if(t in this.builder.nodes)return{from_node:t}}let t=this.builder.getParentCallbackParameters();if("string"==typeof e&&t.length>0){let r=e.match(/^\$+/),s=r?r[0].length:0;if(s>0&&t.length>=s){let r=e.substring(s);return t[s-1][r]}}let r=new i(e);return this.builder.addParameter(r),r}addOperatorProcess(e,t,r){let s=o.operatorMapping[e],i=this.builder.spec(s);if(s&&i){let n={};if(!Array.isArray(i.parameters)||i.parameters.length<2)throw new Error("Process for operator "+e+" must have at least two parameters");return n[i.parameters[0].name||"x"]=t,n[i.parameters[1].name||"y"]=r,this.builder.process(s,n)}throw new Error("Operator "+e+" not supported")}}o.operatorMapping={"-":"subtract","+":"add","/":"divide","*":"multiply","^":"power"},e.exports=o},2431:(e,t,r)=>{const s=r(768);e.exports=class{constructor(e,t,r=null){this.connection=e,this.endpoint=t,this.lastId="",this.level=r,this.missing=new Set}async nextLogs(e=null){let t=await this.next(e);return Array.isArray(t.logs)?t.logs:[]}getMissingBackends(){return Array.from(this.missing)}async next(e=null){let t={offset:this.lastId};e>0&&(t.limit=e),this.level&&(t.level=this.level);let r=await this.connection._get(this.endpoint,t);return Array.isArray(r.data.logs)&&r.data.logs.length>0?(r.data.logs=r.data.logs.filter(e=>s.isObject(e)&&"string"==typeof e.id),this.lastId=r.data.logs[r.data.logs.length-1].id):r.data.logs=[],r.data.links=Array.isArray(r.data.links)?r.data.links:[],Array.isArray(r.data["federation:missing"])&&r.data["federation:missing"].forEach(e=>this.missing.add(e)),r.data}}},2458:e=>{e.exports=class{static getName(){return"Browser"}static getUrl(){return window.location.toString()}static setUrl(e){throw new Error("setUrl is not supported in a browser environment.")}static handleErrorResponse(e){return new Promise((t,r)=>{let s=new FileReader;s.onerror=e=>{s.abort(),r(e.target.error)},s.onload=()=>{let e=s.result instanceof ArrayBuffer?String.fromCharCode.apply(null,new Uint16Array(s.result)):s.result,r="string"==typeof e?JSON.parse(e):e;t(r)},s.readAsText(e.response.data)})}static getResponseType(){return"blob"}static base64encode(e){return btoa(e)}static fileNameForUpload(e){return e.name.split(/(\\|\/)/g).pop()}static dataForUpload(e){return e}static async downloadResults(e,t,r){throw new Error("downloadResults is not supported in a browser environment.")}static saveToFile(e,t){return new Promise((r,s)=>{try{e instanceof Blob||(e=new Blob([e],{type:"application/octet-stream"}));let s=window.URL.createObjectURL(e),i=document.createElement("a");i.style.display="none",i.href=s,i.setAttribute("download",t||"download"),void 0===i.download&&i.setAttribute("target","_blank"),document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(s),r()}catch(e){console.error(e),s(e)}})}}},2656:e=>{"use strict";e.exports=function(e){return"number"==typeof e&&e>=0&&e<=1114111&&(0|e)===e}},2682:(e,t,r)=>{"use strict";var s=r(9600),i=Object.prototype.toString,n=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){if(!s(t))throw new TypeError("iterator must be a function");var o,a;arguments.length>=3&&(o=r),a=e,"[object Array]"===i.call(a)?function(e,t,r){for(var s=0,i=e.length;s<i;s++)n.call(e,s)&&(null==r?t(e[s],s,e):t.call(r,e[s],s,e))}(e,t,o):"string"==typeof e?function(e,t,r){for(var s=0,i=e.length;s<i;s++)null==r?t(e.charAt(s),s,e):t.call(r,e.charAt(s),s,e)}(e,t,o):function(e,t,r){for(var s in e)n.call(e,s)&&(null==r?t(e[s],s,e):t.call(r,e[s],s,e))}(e,t,o)}},2742:t=>{"use strict";t.exports=e},2804:(e,t,r)=>{const s=r(768),i=r(7897);class n{constructor(e,t,r={},s=null,i=null){if(this.parent=e,this.spec=this.parent.spec(t,i),!this.spec)throw new Error("Process doesn't exist: "+t);this.id=e.generateId(t),this.namespace=i,this.arguments=Array.isArray(r)?this.namedArguments(r):r,this._description=s,this.result=!1,this.addParametersToProcess(this.arguments)}namedArguments(e){if(e.length>(this.spec.parameters||[]).length)throw new Error("More arguments specified than parameters available.");let t={};if(Array.isArray(this.spec.parameters))for(let r=0;r<this.spec.parameters.length;r++)t[this.spec.parameters[r].name]=e[r];return t}addParametersToProcess(e){for(let t in e){let r=e[t];r instanceof i?s.isObject(r.spec.schema)&&this.parent.addParameter(r.spec):r instanceof n?this.addParametersToProcess(r.arguments):(Array.isArray(r)||s.isObject(r))&&this.addParametersToProcess(r)}}description(e){return void 0===e?this._description:(this._description=e,this)}exportArgument(e,t){const o=r(2212);if(s.isObject(e)){if(e instanceof n||e instanceof i)return e.ref();if(e instanceof o){let r=this.createBuilder(this,t);return e.setBuilder(r),e.generate(),r.toJSON()}if(e instanceof Date)return e.toISOString();if("function"==typeof e.toJSON)return e.toJSON();{let r={};for(let s in e)void 0!==e[s]&&(r[s]=this.exportArgument(e[s],t));return r}}return Array.isArray(e)?e.map(e=>this.exportArgument(e),t):"function"==typeof e?this.exportCallback(e,t):e}createBuilder(e=null,t=null){let s=new(r(1425))(this.parent.processes,this.parent);return null!==e&&null!==t&&s.setParent(e,t),s}exportCallback(e,t){let r=this.createBuilder(this,t),i=r.getParentCallbackParameters(),o=e.bind(r)(...i,r);if(Array.isArray(o)&&r.supports("array_create")?o=r.array_create(o):!s.isObject(o)&&r.supports("constant")&&(o=r.constant(o)),o instanceof n)return o.result=!0,r.toJSON();throw new Error("Callback must return BuilderNode")}toJSON(){let e={process_id:this.spec.id,arguments:{}};this.namespace&&(e.namespace=this.namespace);for(let t in this.arguments)void 0!==this.arguments[t]&&(e.arguments[t]=this.exportArgument(this.arguments[t],t));return"function"!=typeof this.description?e.description=this.description:"string"==typeof this._description&&(e.description=this._description),this.result&&(e.result=!0),e}ref(){return{from_node:this.id}}}e.exports=n},3054:e=>{e.exports=class{constructor(e,t=[]){this.connection=e,this.apiToClientNames={},this.clientToApiNames={},this.lastRefreshTime=0,this.extra={};for(let e in t){let r,s;Array.isArray(t[e])?(r=t[e][0],s=t[e][1]):(r=t[e],s=t[e]),this.apiToClientNames[r]=s,this.clientToApiNames[s]=r}}toJSON(){let e={};for(let t in this.clientToApiNames){let r=this.clientToApiNames[t];void 0!==this[t]&&(e[r]=this[t])}return Object.assign(e,this.extra)}setAll(e){for(let t in e)void 0===this.apiToClientNames[t]?this.extra[t]=e[t]:this[this.apiToClientNames[t]]=e[t];return this.lastRefreshTime=Date.now(),this}getDataAge(){return(Date.now()-this.lastRefreshTime)/1e3}getAll(){let e={};for(let t in this.apiToClientNames){let r=this.apiToClientNames[t];void 0!==this[r]&&(e[r]=this[r])}return Object.assign(e,this.extra)}get(e){return void 0!==this.extra[e]?this.extra[e]:null}_convertToRequest(e){let t={};for(let r in e)void 0===this.clientToApiNames[r]?t[r]=e[r]:t[this.clientToApiNames[r]]=e[r];return t}_supports(e){return this.connection.capabilities().hasFeature(e)}}},3093:(e,t,r)=>{"use strict";var s=r(4459);e.exports=function(e){return s(e)||0===e?e:e<0?-1:1}},3126:(e,t,r)=>{"use strict";var s=r(6743),i=r(9675),n=r(76),o=r(3144);e.exports=function(e){if(e.length<1||"function"!=typeof e[0])throw new i("a function is required");return o(s,n,e)}},3144:(e,t,r)=>{"use strict";var s=r(6743),i=r(1002),n=r(76),o=r(7119);e.exports=o||s.call(n,i)},3254:(e,t,r)=>{"use strict";var s=r(453),i=r(9675),n=s("%String.fromCharCode%"),o=r(2161),a=r(3703);e.exports=function(e,t){if(!o(e)||!a(t))throw new i("Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code");return n(e)+n(t)}},3304:(e,t,r)=>{const{compare:s,compareVersions:i,validate:n}=r(8385);class o{static compare(e,t,r=null){return null!==r?s(e,t,r):i(e,t)}static validate(e){return n(e)}static findCompatible(e,t=!0,r=null,s=null){if(!Array.isArray(e)||0===e.length)return[];let i=e.filter(e=>{if("string"==typeof e.url&&o.validate(e.api_version)){let t=o.validate(r),i=o.validate(s);return t&&i?o.compare(e.api_version,r,">=")&&o.compare(e.api_version,s,"<="):t?o.compare(e.api_version,r,">="):!i||o.compare(e.api_version,s,"<=")}return!1});return 0===i.length?[]:i.sort((e,r)=>{let s=!0===e.production,i=!0===r.production;return t&&s!==i?s?-1:1:-1*o.compare(e.api_version,r.api_version)})}static findLatest(e,t=!0,r=null,s=null){let i=o.findCompatible(e,t,r,s);return i.length>0?i[0]:null}}e.exports=o},3331:(e,t,r)=>{"use strict";var s=r(4459);e.exports=function(e){return("number"==typeof e||"bigint"==typeof e)&&!s(e)&&e!==1/0&&e!==-1/0}},3519:(e,t,r)=>{"use strict";var s=r(453),i=r(9675),n=s("%String.fromCharCode%"),o=r(5986),a=r(4224),l=r(2656);e.exports=function(e){if(!l(e))throw new i("Assertion failed: `cp` must be >= 0 and <= 0x10FFFF");return e<=65535?n(e):n(o((e-65536)/1024)+55296)+n(a(e-65536,1024)+56320)}},3628:(e,t,r)=>{"use strict";var s=r(8648),i=r(1064),n=r(7176);e.exports=s?function(e){return s(e)}:i?function(e){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("getProto: not an object");return i(e)}:n?function(e){return n(e)}:null},3659:(e,t,r)=>{const s=r(768);class i{constructor(e=[],t=!1){if(this.listeners=[],this.processes={},this.addNamespace=t,e instanceof i)for(let t in e.processes)this.addAll(e.processes[t]);else this.addAll(e)}onChange(e,t,r){for(let s of this.listeners)s(e,t,r)}addAll(e,t="backend"){for(var r in e)this.add(e[r],t,!1);this.onChange("addAll",e,t)}add(e,t="backend",r=!0){if(!s.isObject(e))throw new Error("Invalid process; not an object.");if("string"!=typeof e.id)throw new Error("Invalid process; no id specified.");if("string"!=typeof t)throw new Error("Invalid namespace; not a string.");this.processes[t]||(this.processes[t]={}),e=Object.assign(this.addNamespace?{namespace:t}:{},e),this.processes[t][e.id]=e,r&&this.onChange("add",e,t)}count(){return s.size(this.all())}all(){let e=[];for(let t in this.processes)e=e.concat(Object.values(this.processes[t]));return e}hasNamespace(e){return"string"==typeof e&&Boolean(this.processes[e])}namespaces(){return Object.keys(this.processes).sort()}namespace(e){if("string"!=typeof e)return[];let t=this.processes[e];return t?Object.values(t):[]}has(e,t=null){return Boolean(this.get(e,t))}get(e,t=null){return"string"!=typeof e?null:null===t?this.get(e,"user")||this.get(e,"backend"):this.processes[t]&&this.processes[t][e]||null}remove(e=null,t="user"){if("string"!=typeof t)return!1;if(this.processes[t]){if("string"!=typeof e)return delete this.processes[t],this.onChange("remove",null,t),!0;if(this.processes[t][e]){let r=this.processes[t][e];return delete this.processes[t][e],0===s.size(this.processes[t])&&delete this.processes[t],this.onChange("remove",r,t),!0}}return!1}}e.exports=i},3688:(e,t,r)=>{const s=r(768),i=r(6147),n=r(2458),o=r(2117);class a extends i{static isSupported(){return s.isObject(o)&&Boolean(o.UserManager)}static async signinCallback(e=null,t={}){let r=n.getUrl();e||(e=new a(null,{})).setGrant(r.includes("?")?"authorization_code+pkce":"implicit");let s=e.getOptions(t),i=new o.UserManager(s);return await i.signinCallback(r)}constructor(e,t){super("oidc",e,t),this.manager=null,this.listeners={},this.user=null,this.clientId=null,this.grant="authorization_code+pkce",this.issuer=t.issuer||"",this.scopes=Array.isArray(t.scopes)&&t.scopes.length>0?t.scopes:["openid"],this.refreshTokenScope="offline_access",this.links=Array.isArray(t.links)?t.links:[],this.defaultClients=Array.isArray(t.default_clients)?t.default_clients:[],this.defaultClient=this.detectDefaultClient()}addListener(e,t,r="default"){this.manager.events[`add${e}`](t),this.listeners[`${r}:${e}`]=t}removeListener(e,t="default"){this.manager.events[`remove${e}`](this.listeners[e]),delete this.listeners[`${t}:${e}`]}async login(e={},t=!1){if(!this.issuer||"string"!=typeof this.issuer)throw new Error("No Issuer URL available for OpenID Connect");this.manager=new o.UserManager(this.getOptions(e,t)),this.addListener("UserLoaded",async()=>this.setUser(await this.manager.getUser()),"js-client"),this.addListener("AccessTokenExpired",()=>this.setUser(null),"js-client"),"popup"===a.uiMethod?await this.manager.signinPopup():await this.manager.signinRedirect()}async logout(){if(null!==this.manager){try{"popup"===a.uiMethod?await this.manager.signoutPopup():await this.manager.signoutRedirect({post_logout_redirect_uri:n.getUrl()})}catch(e){console.warn(e)}super.logout(),this.removeListener("UserLoaded","js-client"),this.removeListener("AccessTokenExpired","js-client"),this.manager=null,this.setUser(null)}}getOptions(e={},t=!1){let r=this.getResponseType(),s=this.scopes.slice(0);return t&&!s.includes(this.refreshTokenScope)&&s.push(this.refreshTokenScope),Object.assign({client_id:this.clientId,redirect_uri:a.redirectUrl,authority:this.issuer.replace("/.well-known/openid-configuration",""),scope:s.join(" "),validateSubOnSilentRenew:!0,response_type:r,response_mode:r.includes("code")?"query":"fragment"},e)}getResponseType(){switch(this.grant){case"authorization_code+pkce":return"code";case"implicit":return"token id_token";default:throw new Error("Grant Type not supported")}}setGrant(e){switch(e){case"authorization_code+pkce":case"implicit":this.grant=e;break;default:throw new Error("Grant Type not supported")}}setClientId(e){this.clientId=e}setUser(e){e?(this.user=e,this.setToken(e.access_token)):(this.user=null,this.setToken(null))}getDisplayName(){return this.user&&s.isObject(this.user.profile)&&(this.user.profile.name||this.user.profile.preferred_username||this.user.profile.email)||null}detectDefaultClient(){for(let e of a.grants){let t=this.defaultClients.find(t=>Boolean(t.grant_types.includes(e)&&Array.isArray(t.redirect_urls)&&t.redirect_urls.find(e=>e.startsWith(a.redirectUrl))));if(t)return this.setGrant(e),this.setClientId(t.id),this.defaultClient=t,t}return null}}a.uiMethod="redirect",a.redirectUrl=n.getUrl().split("#")[0].split("?")[0].replace(/\/$/,""),a.grants=["authorization_code+pkce","implicit"],e.exports=a},3703:e=>{"use strict";e.exports=function(e){return"number"==typeof e&&e>=56320&&e<=57343}},3835:(e,t,r)=>{"use strict";var s=r(6460),i=r(4210),n=r(280),o=r(9721),a=r(2682),l=r(9675),c=o(/^[\da-zA-Z]$/),u=r(8075)("String.prototype.charCodeAt"),p=function(e){var t=u(e,0);if(t<55296||t>56319||1===e.length)return t;var r=u(e,1);return r<56320||r>57343?t:1024*(t-55296)+(r-56320)+65536};e.exports=function(e){if("string"!=typeof e)throw new l("`S` must be a String");var t="",r=n(e);return a(r,function(e){if(""===t&&c(e)){var r=i(p(e),16);t+="\\x"+r}else t+=s(p(e))}),t}},4026:(e,t,r)=>{const s=r(768);"function"!=typeof RegExp.escape&&r(6117).shim();const i={capabilities:!0,listFileTypes:"get /file_formats",listServiceTypes:"get /service_types",listUdfRuntimes:"get /udf_runtimes",listProcessingParameters:"get /processing_parameters",listCollections:"get /collections",describeCollection:"get /collections/{}",listCollectionItems:"get /collections/{}/items",describeCollectionItem:"get /collections/{}/items/{}",describeCollectionQueryables:"get /collections/{}/queryables",listProcesses:"get /processes",describeProcess:"get /processes",listAuthProviders:!0,authenticateOIDC:"get /credentials/oidc",authenticateBasic:"get /credentials/basic",describeAccount:"get /me",listFiles:"get /files",getFile:"get /files",uploadFile:"put /files/{}",downloadFile:"get /files/{}",deleteFile:"delete /files/{}",validateProcess:"post /validation",listUserProcesses:"get /process_graphs",describeUserProcess:"get /process_graphs/{}",getUserProcess:"get /process_graphs/{}",setUserProcess:"put /process_graphs/{}",replaceUserProcess:"put /process_graphs/{}",deleteUserProcess:"delete /process_graphs/{}",computeResult:"post /result",listJobs:"get /jobs",createJob:"post /jobs",listServices:"get /services",createService:"post /services",getJob:"get /jobs/{}",describeJob:"get /jobs/{}",updateJob:"patch /jobs/{}",deleteJob:"delete /jobs/{}",estimateJob:"get /jobs/{}/estimate",debugJob:"get /jobs/{}/logs",startJob:"post /jobs/{}/results",stopJob:"delete /jobs/{}/results",listResults:"get /jobs/{}/results",downloadResults:"get /jobs/{}/results",describeService:"get /services/{}",getService:"get /services/{}",updateService:"patch /services/{}",deleteService:"delete /services/{}",debugService:"get /services/{}/logs"};class n{constructor(e){this.data=e,this.featureMap=i,this.features=[],this.validate(),this.init()}validate(){if(!s.isObject(this.data))throw new Error("No capabilities retrieved.");if(!this.data.api_version)throw new Error("Invalid capabilities: No API version retrieved");if(!Array.isArray(this.data.endpoints))throw new Error("Invalid capabilities: No endpoints retrieved")}init(){this.features=this.data.endpoints.map(e=>e.methods.map(t=>`${t} ${e.path.replace(/\{[^}]+\}/g,"{}")}`.toLowerCase())).reduce((e,t)=>e.concat(t),[])}toJSON(){return this.data}apiVersion(){return this.data.api_version}backendVersion(){return this.data.backend_version}title(){return"string"==typeof this.data.title?this.data.title:""}description(){return"string"==typeof this.data.description?this.data.description:""}isStable(){return!0===this.data.production}links(){return Array.isArray(this.data.links)?this.data.links:[]}listFederation(){let e=[];if(s.isObject(this.data.federation))for(const[t,r]of Object.entries(this.data.federation))e.push({id:t,...r});return e}getFederationBackend(e){return{id:e,...this.data.federation[e]}}getFederationBackends(e){return e.map(this.getFederationBackend,this)}listFeatures(){let e=[];for(let t in this.featureMap)(!0===this.featureMap[t]||this.features.includes(this.featureMap[t]))&&e.push(t);return e.sort()}hasFeature(e){let t=this.featureMap[e];return"string"==typeof t&&(t=t.toLowerCase()),!0===t||this.features.some(e=>e===t)}hasConformance(e){if("string"==typeof e&&(e=[e]),!Array.isArray(this.data.conformsTo)||!Array.isArray(e))return!1;const t=e.map(e=>RegExp.escape(e).replaceAll("\\*","[^/]+")).join("|"),r=new RegExp("^("+t+")$");return Boolean(this.data.conformsTo.find(e=>e.match(r)))}currency(){return s.isObject(this.data.billing)&&"string"==typeof this.data.billing.currency?this.data.billing.currency:null}listPlans(){if(s.isObject(this.data.billing)&&Array.isArray(this.data.billing.plans)){let e="string"==typeof this.data.billing.default_plan?this.data.billing.default_plan.toLowerCase():null;return this.data.billing.plans.map(t=>{let r={default:e===t.name.toLowerCase()};return Object.assign({},t,r)})}return[]}migrate(e){return e}}n.Conformance={openeo:"https://api.openeo.org/extensions/openeo/v1.*",stacCollections:["https://api.stacspec.org/v1.*/collections","https://api.stacspec.org/v1.*/ogcapi-features"],stacItems:"https://api.stacspec.org/v1.*/ogcapi-features",commercialData:"https://api.openeo.org/extensions/commercial-data/0.1.*",federation:"https://api.openeo.org/extensions/federation/0.1.*",processingParameters:"https://api.openeo.org/extensions/processing-parameters/0.1.*",remoteProcessDefinition:"https://api.openeo.org/extensions/remote-process-definition/0.1.*",workspaces:"https://api.openeo.org/extensions/workspaces/0.1.*"},e.exports=n},4035:(e,t,r)=>{"use strict";var s,i=r(6556),n=r(9092)(),o=r(9957),a=r(5795);if(n){var l=i("RegExp.prototype.exec"),c={},u=function(){throw c},p={toString:u,valueOf:u};"symbol"==typeof Symbol.toPrimitive&&(p[Symbol.toPrimitive]=u),s=function(e){if(!e||"object"!=typeof e)return!1;var t=a(e,"lastIndex");if(!t||!o(t,"value"))return!1;try{l(e,p)}catch(e){return e===c}}}else{var h=i("Object.prototype.toString");s=function(e){return!(!e||"object"!=typeof e&&"function"!=typeof e)&&"[object RegExp]"===h(e)}}e.exports=s},4039:(e,t,r)=>{"use strict";var s="undefined"!=typeof Symbol&&Symbol,i=r(1333);e.exports=function(){return"function"==typeof s&&"function"==typeof Symbol&&"symbol"==typeof s("foo")&&"symbol"==typeof Symbol("bar")&&i()}},4210:(e,t,r)=>{"use strict";var s=r(9675),i=r(6556),n=r(7440),o=i("Number.prototype.toString");e.exports=function(e,t){if("number"!=typeof e)throw new s("Assertion failed: `x` must be a Number");if(!n(t)||t<2||t>36)throw new s("Assertion failed: `radix` must be an integer >= 2 and <= 36");return o(e,t)}},4224:(e,t,r)=>{"use strict";var s=r(113);e.exports=function(e,t){return s(e,t)}},4293:(e,t,r)=>{const s=r(2458),i=r(3054),n=r(2431),o=r(768),a=r(1321),l=["finished","canceled","error"];e.exports=class extends i{constructor(e,t){super(e,["id","title","description","process","status","progress","created","updated","plan","costs","budget","usage",["log_level","logLevel"],"links"]),this.id=t,this.title=void 0,this.description=void 0,this.process=void 0,this.status=void 0,this.progress=void 0,this.created=void 0,this.updated=void 0,this.plan=void 0,this.costs=void 0,this.budget=void 0}async describeJob(){let e=await this.connection._get("/jobs/"+this.id);return this.setAll(e.data)}async updateJob(e){return await this.connection._patch("/jobs/"+this.id,this._convertToRequest(e)),this._supports("describeJob")?await this.describeJob():this.setAll(e)}async deleteJob(){await this.connection._delete("/jobs/"+this.id)}async estimateJob(){return(await this.connection._get("/jobs/"+this.id+"/estimate")).data}debugJob(e=null){return new n(this.connection,"/jobs/"+this.id+"/logs",e)}monitorJob(e,t=60,r=!0){if("function"!=typeof e||t<1)return;let s=this.connection.capabilities();if(!s.hasFeature("describeJob"))throw new Error("Monitoring Jobs not supported by the back-end.");let i=this.status,n=null,o=null;s.hasFeature("debugJob")&&r&&(o=this.debugJob());let a=async()=>{this.getDataAge()>1&&await this.describeJob();let t=o?await o.nextLogs():[];(i!==this.status||t.length>0)&&e(this,t),i=this.status,l.includes(this.status)&&c()};setTimeout(a,0),n=setInterval(a,1e3*t);let c=()=>{n&&(clearInterval(n),n=null)};return c}async startJob(){return await this.connection._post("/jobs/"+this.id+"/results",{}),this._supports("describeJob")?await this.describeJob():this}async stopJob(){return await this.connection._delete("/jobs/"+this.id+"/results"),this._supports("describeJob")?await this.describeJob():this}async getResultsAsStac(){let e=await this.connection._get("/jobs/"+this.id+"/results");if(!o.isObject(e)||!o.isObject(e.data))throw new Error("Results received from the back-end are invalid");let t=a.stac(e.data);return o.isObject(t.assets)||(t.assets={}),"Feature"===t.type?"number"==typeof e.headers["openeo-costs"]&&(t.properties.costs=e.headers["openeo-costs"]):"number"==typeof e.headers["openeo-costs"]&&(t.costs=e.headers["openeo-costs"]),t}async listResults(){let e=await this.getResultsAsStac();return o.isObject(e.assets)?Object.values(e.assets):[]}async downloadResults(e){let t=await this.listResults();return await s.downloadResults(this.connection,t,e)}}},4459:e=>{"use strict";e.exports=Number.isNaN||function(e){return e!=e}},5345:e=>{"use strict";e.exports=URIError},5497:(e,t,r)=>{const s=r(3054),i=r(2431);e.exports=class extends s{constructor(e,t){super(e,["id","title","description","process","url","type","enabled","configuration","attributes","created","plan","costs","budget","usage",["log_level","logLevel"],"links"]),this.id=t,this.title=void 0,this.description=void 0,this.process=void 0,this.url=void 0,this.type=void 0,this.enabled=void 0,this.configuration=void 0,this.attributes=void 0,this.created=void 0,this.plan=void 0,this.costs=void 0,this.budget=void 0}async describeService(){let e=await this.connection._get("/services/"+this.id);return this.setAll(e.data)}async updateService(e){return await this.connection._patch("/services/"+this.id,this._convertToRequest(e)),this._supports("describeService")?await this.describeService():this.setAll(e)}async deleteService(){await this.connection._delete("/services/"+this.id)}debugService(e=null){return new i(this.connection,"/services/"+this.id+"/logs",e)}monitorService(e,t=60,r=!0){if("function"!=typeof e||t<1)return;let s=this.connection.capabilities();if(!s.hasFeature("describeService"))throw new Error("Monitoring Services not supported by the back-end.");let i=this.enabled,n=null,o=null;s.hasFeature("debugService")&&r&&(o=this.debugService());let a=async()=>{this.getDataAge()>1&&await this.describeService();let t=o?await o.nextLogs():[];(i!==this.enabled||t.length>0)&&e(this,t),i=this.enabled};return setTimeout(a,0),n=setInterval(a,1e3*t),()=>{n&&(clearInterval(n),n=null)}}}},5795:(e,t,r)=>{"use strict";var s=r(6549);if(s)try{s([],"length")}catch(e){s=null}e.exports=s},5880:e=>{"use strict";e.exports=Math.pow},5986:(e,t,r)=>{"use strict";var s=r(8968);e.exports=function(e){return"bigint"==typeof e?e:s(e)}},6117:(e,t,r)=>{"use strict";var s=r(8452),i=r(487),n=r(3835),o=r(1570),a=r(0),l=i(n,null);s(l,{getPolyfill:o,implementation:n,method:n,shim:a}),e.exports=l},6147:e=>{e.exports=class{constructor(e,t,r){this.id=r.id||null,this.title=r.title||"",this.description=r.description||"",this.type=e,this.connection=t,this.token=null}getId(){let e=this.getType();return this.getProviderId().length>0&&(e+="."+this.getProviderId()),e}getDisplayName(){return null}getType(){return this.type}getProviderId(){return"string"==typeof this.id?this.id:""}getTitle(){return this.title}getDescription(){return this.description}getToken(){return"string"==typeof this.token?this.getType()+"/"+this.getProviderId()+"/"+this.token:null}setToken(e){this.token=e,this.connection.emit("tokenChanged",e),null!==this.token?this.connection.setAuthProvider(this):this.connection.setAuthProvider(null)}async login(...e){throw new Error("Not implemented.",e)}async logout(){this.setToken(null)}}},6156:(e,t,r)=>{"use strict";var s=r(9675),i=r(6556),n=i("String.prototype.charCodeAt"),o=i("Number.prototype.toString"),a=i("String.prototype.toLowerCase"),l=r(2114);e.exports=function(e){if("string"!=typeof e||1!==e.length)throw new s("Assertion failed: `C` must be a single code unit");var t=n(e,0);if(t>65535)throw new s("`Assertion failed: numeric value of `C` must be <= 0xFFFF");return"\\u"+l(a(o(t,16)),4,"0","start")}},6188:e=>{"use strict";e.exports=Math.max},6460:(e,t,r)=>{"use strict";var s=r(4210),i=r(6698),n=r(2114),o=r(6156),a=r(3519),l=r(2161),c=r(3703),u=r(9675),p=r(2656),h=r(2682),d=r(9721),f=d(/^\s$/),y=d(/^[\n\r\u2028\u2029]$/),g={"\t":"t","\n":"n","\v":"v","\f":"f","\r":"r",__proto__:null};e.exports=function(e){if(!p(e))throw new u("Assertion failed: `c` must be a valid Unicode code point");var t=a(e);if(i("^$\\.*+?()[]{}|",t,0)>-1||"/"===t)return"\\"+t;if(t in g)return"\\"+g[t];if(i(",-=<>#&!%:;@~'`\"",t,0)>-1||f(t)||y(t)||l(e)||c(e)){if(e<255){var r=s(e,16);return"\\x"+n(r,2,"0","START")}var d="";return h(t,function(e){d+=o(e)}),d}return t}},6462:e=>{let t={Token:{Operator:"Operator",Identifier:"Identifier",Number:"Number"}};const r={"⁰":0,"¹":1,"²":2,"³":3,"⁴":4,"⁵":5,"⁶":6,"⁷":7,"⁸":8,"⁹":9},s=Object.keys(r).join("");t.Lexer=function(){let e="",r=0,i=0,n=0,o=t.Token;function a(){let t=i;return t<r?e.charAt(t):"\0"}function l(){let t="\0",s=i;return s<r&&(t=e.charAt(s),i+=1),t}function c(e){return"\t"===e||" "===e||" "===e}function u(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function p(e){return e>="0"&&e<="9"}function h(e,t){return{type:e,value:t,start:n,end:i-1}}function d(e,t=!1){return"_"===e||u(e)||p(e)||t&&function(e){return"-"===e||"."===e||"~"===e||"@"===e}(e)}function f(){let e;if(function(){let e;for(;i<r&&(e=a(),c(e));)l()}(),!(i>=r)){if(n=i,e=function(){let e,t;if(e=a(),p(e)||"."===e){if(t="","."!==e)for(t=l();e=a(),p(e);)t+=l();if("."===e)for(t+=l();e=a(),p(e);)t+=l();if("e"===e||"E"===e){if(t+=l(),e=a(),"+"!==e&&"-"!==e&&!p(e))throw e="character "+e,i>=r&&(e="<end>"),new SyntaxError("Unexpected "+e+" after the exponent sign");for(t+=l();e=a(),p(e);)t+=l()}if("."===t)throw new SyntaxError("Expecting decimal digits after the dot sign");return h(o.Number,t)}}(),void 0!==e)return e;if(e=function(){let e=a();if(("+-*/()^,"+s).indexOf(e)>=0)return h(o.Operator,l())}(),void 0!==e)return e;if(e=function(){let e=a();if("_"!==(t=e)&&"#"!==t&&"$"!==t&&!u(t))return;var t;let r=l(),s=!1;for(;;){let t=a();if("$"===e)"$"!==t&&(e="");else if("@"===t)s=!0;else if(!d(t,s))break;r+=l()}return h(o.Identifier,r)}(),void 0!==e)return e;throw new SyntaxError("Unknown token from character "+a())}}return{reset:function(t){e=t,r=t.length,i=0},next:f,peek:function(){let e,t=i;try{e=f(),delete e.start,delete e.end}catch(t){e=void 0}return i=t,e}}},t.Parser=function(){let e=new t.Lexer,i=t.Token;function n(e,t){return void 0!==e&&e.type===i.Operator&&t.includes(e.value)}function o(){let t,r=e.peek();return n(r,"-+")?(r=e.next(),t=o(),{Unary:{operator:r.value,expression:t}}):function(){let t,r=e.peek();if(void 0===r)throw new SyntaxError("Unexpected termination of expression");if(r.type===i.Identifier)return r=e.next(),n(e.peek(),"(")?function(t){let r=[],s=e.next();if(!n(s,"("))throw new SyntaxError('Expecting ( in a function call "'+t+'"');if(s=e.peek(),n(s,")")||(r=function(){let t,r,s=[];for(;r=u(),void 0!==r&&(s.push(r),t=e.peek(),n(t,","));)e.next();return s}()),s=e.next(),!n(s,")"))throw new SyntaxError('Expecting ) in a function call "'+t+'"');return{FunctionCall:{name:t,args:r}}}(r.value):{Identifier:r.value};if(r.type===i.Number)return r=e.next(),{Number:r.value};if(n(r,"(")){if(e.next(),t=u(),r=e.next(),!n(r,")"))throw new SyntaxError("Expecting )");return{Expression:t}}throw new SyntaxError("Parse error, can not process token "+r.value)}()}function a(e){return"number"==typeof r[e]?{Number:r[e]}:null}function l(){let t=o(),r=e.peek();for(;n(r,"^"+s);)r=e.next(),t={Binary:{operator:"^",left:t,right:"^"!==r.value?a(r.value):o()}},r=e.peek();return t}function c(){let t=l(),r=e.peek();for(;n(r,"*/");)r=e.next(),t={Binary:{operator:r.value,left:t,right:l()}},r=e.peek();return t}function u(){return function(){let t=c(),r=e.peek();for(;n(r,"+-");)r=e.next(),t={Binary:{operator:r.value,left:t,right:c()}},r=e.peek();return t}()}return{parse:function(t){e.reset(t);let r=u(),s=e.next();if(void 0!==s)throw new SyntaxError("Unexpected token "+s.value);return{Expression:r}}}},e.exports=t},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},6556:(e,t,r)=>{"use strict";var s=r(453),i=r(3126),n=i([s("%String.prototype.indexOf%")]);e.exports=function(e,t){var r=s(e,!!t);return"function"==typeof r&&n(e,".prototype.")>-1?i([r]):r}},6698:(e,t,r)=>{"use strict";var s=r(6556),i=r(9675),n=r(7440),o=s("String.prototype.slice");e.exports=function(e,t,r){if("string"!=typeof e)throw new i("Assertion failed: `string` must be a String");if("string"!=typeof t)throw new i("Assertion failed: `searchValue` must be a String");if(!n(r)||r<0)throw new i("Assertion failed: `fromIndex` must be a non-negative integer");var s=e.length;if(""===t&&r<=s)return r;for(var a=t.length,l=r;l<=s-a;l+=1)if(o(e,l,l+a)===t)return l;return-1}},6743:(e,t,r)=>{"use strict";var s=r(9353);e.exports=Function.prototype.bind||s},6897:(e,t,r)=>{"use strict";var s=r(453),i=r(41),n=r(592)(),o=r(5795),a=r(9675),l=s("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new a("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||l(t)!==t)throw new a("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],s=!0,c=!0;if("length"in e&&o){var u=o(e,"length");u&&!u.configurable&&(s=!1),u&&!u.writable&&(c=!1)}return(s||c||!r)&&(n?i(e,"length",t,!0,!0):i(e,"length",t)),e}},7119:e=>{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect&&Reflect.apply},7176:(e,t,r)=>{"use strict";var s,i=r(3126),n=r(5795);try{s=[].__proto__===Array.prototype}catch(e){if(!e||"object"!=typeof e||!("code"in e)||"ERR_PROTO_ACCESS"!==e.code)throw e}var o=!!s&&n&&n(Object.prototype,"__proto__"),a=Object,l=a.getPrototypeOf;e.exports=o&&"function"==typeof o.get?i([o.get]):"function"==typeof l&&function(e){return l(null==e?e:a(e))}},7226:(e,t,r)=>{const s=r(4293),i=r(5497),n=r(9649),o=r(9806),a=r(768),l=r(1321),c="federation:missing";class u{constructor(e,t,r,s,i={},n="id"){this.connection=e,this.nextUrl=t,this.key=r,this.primaryKey=n,this.cls=s,i.limit>0||delete i.limit,this.params=i}hasNextPage(){return null!==this.nextUrl}async nextPage(e=[],t=!0){const r=await this.connection._get(this.nextUrl,this.params);let s=r.data;if(!a.isObject(s))throw new Error("Response is invalid, is not an object");if(!Array.isArray(s[this.key]))throw new Error(`Response is invalid, '${this.key}' property is not an array`);let i=s[this.key].map(t=>{let r=e.find(e=>e[this.primaryKey]===t[this.primaryKey]);return r?r.setAll(t):r=this._createObject(t),r});return i=this._cache(i),s.links=this._ensureArray(s.links),this.connection._getLinkHref(s.links,"self")||s.links.push({rel:"self",href:this.nextUrl}),this.nextUrl=this._getNextLink(r),this.params=null,t?(i.links=s.links,i[c]=this._ensureArray(s[c]),i):(s[this.key]=i,s)}_ensureArray(e){return Array.isArray(e)?e:[]}_createObject(e){if(this.cls){const t=new(0,this.cls)(this.connection,e[this.primaryKey]);return t.setAll(e),t}return e}_cache(e){return e}_getNextLink(e){const t=this.connection.makeLinksAbsolute(e.data.links,e);return this.connection._getLinkHref(t,"next")}[Symbol.asyncIterator](){return{self:this,async next(){const e=!this.self.hasNextPage();let t;return e||(t=await this.self.nextPage()),{done:e,value:t}}}}}e.exports={Pages:u,CollectionPages:class extends u{constructor(e,t=null){super(e,"/collections","collections",null,{limit:t})}_createObject(e){return e.stac_version?l.collection(e):e}},ItemPages:class extends u{constructor(e,t,r){super(e,`/collections/${t}/items`,"features",null,r)}_createObject(e){return e.stac_version?l.item(e):e}},JobPages:class extends u{constructor(e,t=null){super(e,"/jobs","jobs",s,{limit:t})}},ProcessPages:class extends u{constructor(e,t=null,r=null){let s;r||(r="backend");let i=null;"user"===r?(s="/process_graphs",i=o):(s="/processes","backend"!==r&&(s+=`/${e.normalizeNamespace(r)}`)),super(e,s,"processes",i,{limit:t}),this.namespace=r}_cache(e){const t=e.map(e=>"function"==typeof e.toJSON?e.toJSON():e);if(this.connection.processes.addAll(t,this.namespace),!this.cls)for(let t in e)e[t]=this.connection.processes.get(e[t].id,this.namespace);return e}},ServicePages:class extends u{constructor(e,t=null){super(e,"/services","services",i,{limit:t})}},UserFilePages:class extends u{constructor(e,t=null){super(e,"/files","files",n,{limit:t},"path")}}}},7312:(e,t,r)=>{"use strict";var s=r(9675),i=r(6556),n=r(2161),o=r(3703),a=r(3254),l=i("String.prototype.charAt"),c=i("String.prototype.charCodeAt");e.exports=function(e,t){if("string"!=typeof e)throw new s("Assertion failed: `string` must be a String");var r=e.length;if(t<0||t>=r)throw new s("Assertion failed: `position` must be >= 0, and < the length of `string`");var i=c(e,t),u=l(e,t),p=n(i),h=o(i);if(!p&&!h)return{"[[CodePoint]]":u,"[[CodeUnitCount]]":1,"[[IsUnpairedSurrogate]]":!1};if(h||t+1===r)return{"[[CodePoint]]":u,"[[CodeUnitCount]]":1,"[[IsUnpairedSurrogate]]":!0};var d=c(e,t+1);return o(d)?{"[[CodePoint]]":a(i,d),"[[CodeUnitCount]]":2,"[[IsUnpairedSurrogate]]":!1}:{"[[CodePoint]]":u,"[[CodeUnitCount]]":1,"[[IsUnpairedSurrogate]]":!0}}},7440:(e,t,r)=>{"use strict";var s=r(1514),i=r(8968),n=r(4459),o=r(3331);e.exports=function(e){if("number"!=typeof e||n(e)||!o(e))return!1;var t=s(e);return i(t)===t}},7704:(e,t,r)=>{const s=r(2458),i=r(768),n=r(3659),o=r(2742),a=r(1321),l=r(6147),c=r(933),u=r(3688),p=r(4026),h=r(9405),d=r(9649),f=r(4293),y=r(9806),g=r(5497),m=r(1425),b=r(2804),{CollectionPages:v,ItemPages:w,JobPages:x,ProcessPages:A,ServicePages:j,UserFilePages:O}=r(7226),P=["conformance","http://www.opengis.net/def/rel/ogc/1.0/conformance"];e.exports=class{constructor(e,t={},r=null){this.url=r,this.baseUrl=i.normalizeUrl(e),this.authProviderList=null,this.authProvider=null,this.capabilitiesObject=null,this.listeners={},this.options=t,this.processes=new n([],Boolean(t.addNamespaceToProcess)),this.processes.listeners.push((...e)=>this.emit("processesChanged",...e))}async init(){const e=await this._get("/"),t=Object.assign({},e.data);if(t.links=this.makeLinksAbsolute(t.links,e),!Array.isArray(t.conformsTo)&&Array.isArray(t.links)){const e=this._getLinkHref(t.links,P);if(e){const r=await this._get(e);i.isObject(r.data)&&Array.isArray(r.data.conformsTo)&&(t.conformsTo=r.data.conformsTo)}}return this.capabilitiesObject=new p(t),this.capabilitiesObject}async refreshProcessCache(){if(0===this.processes.count())return;const e=this.processes.namespaces().map(e=>{let t=()=>Promise.resolve();if("user"===e){const e=this.processes.namespace("user");this.isAuthenticated()?this.capabilities().hasFeature("listUserProcesses")&&(t=()=>this.listUserProcesses(e)):t=()=>this.processes.remove(null,"user")?Promise.resolve():Promise.reject(new Error("Can't clear user processes"))}else this.capabilities().hasFeature("listProcesses")&&(t=()=>this.listProcesses(e));return t().catch(t=>console.warn(`Could not update processes for namespace '${e}' due to an error: ${t.message}`))});return await Promise.all(e)}getBaseUrl(){return this.baseUrl}getUrl(){return this.url||this.baseUrl}capabilities(){return this.capabilitiesObject}async listFileTypes(){const e=await this._get("/file_formats");return new h(e.data)}async listProcessingParameters(){return(await this._get("/processing_parameters")).data}async listServiceTypes(){return(await this._get("/service_types")).data}async listUdfRuntimes(){return(await this._get("/udf_runtimes")).data}async listCollections(){const e=this.paginateCollections(null);return await e.nextPage([],!1)}paginateCollections(e=50){return new v(this,e)}async describeCollection(e){const t=await this._get("/collections/"+e);return t.data.stac_version?a.collection(t.data):t.data}listCollectionItems(e,t=null,r=null,s=null){let i={};return Array.isArray(t)&&(i.bbox=t.join(",")),Array.isArray(r)&&(i.datetime=r.map(e=>e instanceof Date?e.toISOString():"string"==typeof e?e:"..").join("/")),s>0&&(i.limit=s),new w(this,e,i,s)}normalizeNamespace(e){const t=e.match(/^https?:\/\/.*\/processes\/(@?[\w\-.~:]+)\/?/i);return t&&t.length>1?t[1]:e}async listProcesses(e=null){const t=this.paginateProcesses(e);return await t.nextPage([],!1)}paginateProcesses(e=null,t=50){return new A(this,t,e)}async describeProcess(e,t=null){if(t||(t="backend"),"backend"===t)await this.listProcesses();else{const r=await this._get(`/processes/${this.normalizeNamespace(t)}/${e}`);if(!i.isObject(r.data)||"string"!=typeof r.data.id)throw new Error("Invalid response received for process");this.processes.add(r.data,t)}return this.processes.get(e,t)}async buildProcess(e){return await this.listProcesses(),new m(this.processes,null,e)}async listAuthProviders(){if(null!==this.authProviderList)return this.authProviderList;this.authProviderList=[];const e=this.capabilities();if(e.hasFeature("authenticateOIDC")){const e=await this._get("/credentials/oidc"),t=this.getOidcProviderFactory();if(i.isObject(e.data)&&Array.isArray(e.data.providers)&&"function"==typeof t)for(let r in e.data.providers){const s=t(e.data.providers[r]);s instanceof l&&this.authProviderList.push(s)}}return e.hasFeature("authenticateBasic")&&this.authProviderList.push(new c(this)),this.authProviderList}setOidcProviderFactory(e){this.oidcProviderFactory=e}getOidcProviderFactory(){return"function"==typeof this.oidcProviderFactory?this.oidcProviderFactory:u.isSupported()?e=>new u(this,e):null}async authenticateBasic(e,t){const r=new c(this);await r.login(e,t)}isAuthenticated(){return null!==this.authProvider}emit(e,...t){"function"==typeof this.listeners[e]&&this.listeners[e](...t)}on(e,t){this.listeners[e]=t}off(e){delete this.listeners[e]}getAuthProvider(){return this.authProvider}setAuthProvider(e){e!==this.authProvider&&(this.authProvider=e instanceof l?e:null,this.emit("authProviderChanged",this.authProvider),this.refreshProcessCache())}setAuthToken(e,t,r){const s=new l(e,this,{id:t,title:"Custom",description:""});return s.setToken(r),this.setAuthProvider(s),s}async describeAccount(){return(await this._get("/me")).data}async listFiles(){const e=this.paginateFiles(null);return await e.nextPage()}paginateFiles(e=50){return new O(this,e)}async uploadFile(e,t=null,r=null,i=null){null===t&&(t=s.fileNameForUpload(e));const n=await this.getFile(t);return await n.uploadFile(e,r,i)}async getFile(e){return new d(this,e)}_normalizeUserProcess(e,t={}){return e instanceof y?e=e.toJSON():e instanceof b?(e.result=!0,e=e.parent.toJSON()):i.isObject(e)&&!i.isObject(e.process_graph)&&(e={process_graph:e}),Object.assign({},t,{process:e})}async validateProcess(e){const t=await this._post("/validation",this._normalizeUserProcess(e).process);if(Array.isArray(t.data.errors)){const e=t.data.errors;return e["federation:backends"]=Array.isArray(t.data["federation:missing"])?t.data["federation:missing"]:[],e}throw new Error("Invalid validation response received.")}async listUserProcesses(e=[]){const t=this.paginateUserProcesses(null);return await t.nextPage(e)}paginateUserProcesses(e=50){return this.paginateProcesses("user",e)}async setUserProcess(e,t){const r=new y(this,e);return await r.replaceUserProcess(t)}async getUserProcess(e){const t=new y(this,e);return await t.describeUserProcess()}async computeResult(e,t=null,r=null,n=null,o={}){const a=this._normalizeUserProcess(e,Object.assign({},o,{plan:t,budget:r})),l=await this._post("/result",a,s.getResponseType(),n),c={data:l.data,costs:null,type:null,logs:[]};"number"==typeof l.headers["openeo-costs"]&&(c.costs=l.headers["openeo-costs"]),"string"==typeof l.headers["content-type"]&&(c.type=l.headers["content-type"]);const u=Array.isArray(l.headers.link)?l.headers.link:[l.headers.link];for(let e of u){if("string"!=typeof e)continue;const t=e.match(/^<([^>]+)>;\s?rel="monitor"/i);if(Array.isArray(t)&&t.length>1)try{const e=await this._get(t[1]);i.isObject(e.data)&&Array.isArray(e.data.logs)&&(c.logs=e.data.logs)}catch(e){console.warn(e)}}return c}async downloadResult(e,t,r=null,i=null,n=null){const o=await this.computeResult(e,r,i,n);await s.saveToFile(o.data,t)}async listJobs(e=[]){const t=this.paginateJobs(null);return await t.nextPage(e)}paginateJobs(e=50){return new x(this,e)}async createJob(e,t=null,r=null,s=null,i=null,n={}){n=Object.assign({},n,{title:t,description:r,plan:s,budget:i});const o=this._normalizeUserProcess(e,n),a=await this._post("/jobs",o);if("string"!=typeof a.headers["openeo-identifier"])throw new Error("Response did not contain a Job ID. Job has likely been created, but may not show up yet.");const l=new f(this,a.headers["openeo-identifier"]).setAll(o);return this.capabilities().hasFeature("describeJob")?await l.describeJob():l}async getJob(e){const t=new f(this,e);return await t.describeJob()}async listServices(e=[]){const t=this.paginateServices(null);return await t.nextPage(e)}paginateServices(e=50){return new j(this,e)}async createService(e,t,r=null,s=null,i=!0,n={},o=null,a=null,l={}){const c=this._normalizeUserProcess(e,Object.assign({title:r,description:s,type:t,enabled:i,configuration:n,plan:o,budget:a},l)),u=await this._post("/services",c);if("string"!=typeof u.headers["openeo-identifier"])throw new Error("Response did not contain a Service ID. Service has likely been created, but may not show up yet.");const p=new g(this,u.headers["openeo-identifier"]).setAll(c);return this.capabilities().hasFeature("describeService")?p.describeService():p}async getService(e){const t=new g(this,e);return await t.describeService()}_getLinkHref(e,t){if(Array.isArray(t)||(t=[t]),Array.isArray(e)){const r=e.find(e=>i.isObject(e)&&t.includes(e.rel)&&"string"==typeof e.href);if(r)return r.href}return null}makeLinksAbsolute(e,t=null){if(!Array.isArray(e))return e;let r=null;return r=i.isObject(t)&&t.headers&&t.config&&t.request?t.config.baseURL+t.config.url:"string"!=typeof t?this._getLinkHref(e,"self"):t,r?e.map(e=>{if(!i.isObject(e)||"string"!=typeof e.href)return e;try{const t=new URL(e.href,r);return Object.assign({},e,{href:t.toString()})}catch(t){return e}}):e}async _get(e,t,r,s=null){return await this._send({method:"get",responseType:r,url:e,timeout:"/"===e?5e3:0,params:t},s)}async _post(e,t,r,s=null){const i={method:"post",responseType:r,url:e,data:t};return await this._send(i,s)}async _put(e,t){return await this._send({method:"put",url:e,data:t})}async _patch(e,t){return await this._send({method:"patch",url:e,data:t})}async _delete(e){return await this._send({method:"delete",url:e})}async download(e,t){return(await this._send({method:"get",responseType:s.getResponseType(),url:e,authorization:t})).data}_getAuthHeaders(){const e={};return this.isAuthenticated()&&(e.Authorization="Bearer "+this.authProvider.getToken()),e}async _send(e,t=null){e.baseURL=this.baseUrl,void 0!==e.authorization&&!0!==e.authorization||(e.headers||(e.headers={}),Object.assign(e.headers,this._getAuthHeaders())),e.responseType||(e.responseType="json"),t&&(e.signal=t.signal);try{let t=await o(e);const r=this.capabilities();return r&&(t=r.migrate(t)),t}catch(t){if(o.isCancel(t))throw t;const r=e=>"string"==typeof e&&-1!==e.indexOf("/json"),n=(e,t)=>("string"==typeof t.message&&(e.message=t.message),e.code="string"==typeof t.code?t.code:"",e.id=t.id,e.links=Array.isArray(t.links)?t.links:[],e);if(i.isObject(t.response)&&i.isObject(t.response.data)&&(r(t.response.data.type)||i.isObject(t.response.headers)&&r(t.response.headers["content-type"]))){if(e.responseType!==s.getResponseType())throw n(t,t.response.data);try{throw n(t,await s.handleErrorResponse(t))}catch(e){console.error(e)}}throw t}}}},7897:e=>{"use strict";class t{static create(e,r){let s=new t(r,null);if("undefined"!=typeof Proxy)return new Proxy(s,{nodeCache:{},get(t,r,i){if(!Reflect.has(t,r)){if(!this.nodeCache[r]){let t={data:s};"string"==typeof r&&r.match(/^(0|[1-9]\d*)$/)?t.index=parseInt(r,10):t.label=r,this.nodeCache[r]=e.process("array_element",t)}return this.nodeCache[r]}return Reflect.get(t,r,i)},set(e,t,r,s){if(!Reflect.has(e,t))throw new Error("Simplified array access is read-only");return Reflect.set(e,t,r,s)}});throw new Error("Simplified array access not supported, use array_element directly")}constructor(e,t={},r="",s=void 0){this.name=e,this.spec={name:e,schema:"string"==typeof t?{type:t}:t,description:r},void 0!==s&&(this.spec.optional=!0,this.spec.default=s)}toJSON(){return this.spec}ref(){return{from_parameter:this.name}}}e.exports=t},8002:e=>{"use strict";e.exports=Math.min},8068:e=>{"use strict";e.exports=SyntaxError},8075:(e,t,r)=>{"use strict";var s=r(453),i=r(487),n=i(s("String.prototype.indexOf"));e.exports=function(e,t){var r=s(e,!!t);return"function"==typeof r&&n(e,".prototype.")>-1?i(r):r}},8385:(e,t,r)=>{"use strict";r.r(t),r.d(t,{compare:()=>u,compareVersions:()=>c,satisfies:()=>f,validate:()=>y,validateStrict:()=>g});const s=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,i=e=>{if("string"!=typeof e)throw new TypeError("Invalid argument expected string");const t=e.match(s);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},n=e=>"*"===e||"x"===e||"X"===e,o=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},a=(e,t)=>{if(n(e)||n(t))return 0;const[r,s]=((e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t])(o(e),o(t));return r>s?1:r<s?-1:0},l=(e,t)=>{for(let r=0;r<Math.max(e.length,t.length);r++){const s=a(e[r]||"0",t[r]||"0");if(0!==s)return s}return 0},c=(e,t)=>{const r=i(e),s=i(t),n=r.pop(),o=s.pop(),a=l(r,s);return 0!==a?a:n&&o?l(n.split("."),o.split(".")):n||o?n?-1:1:0},u=(e,t,r)=>{d(r);const s=c(e,t);return p[r].includes(s)},p={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},h=Object.keys(p),d=e=>{if("string"!=typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===h.indexOf(e))throw new Error(`Invalid operator, expected one of ${h.join("|")}`)},f=(e,t)=>{if((t=t.replace(/([><=]+)\s+/g,"$1")).includes("||"))return t.split("||").some(t=>f(e,t));if(t.includes(" - ")){const[r,s]=t.split(" - ",2);return f(e,`>=${r} <=${s}`)}if(t.includes(" "))return t.trim().replace(/\s{2,}/g," ").split(" ").every(t=>f(e,t));const r=t.match(/^([<>=~^]+)/),s=r?r[1]:"=";if("^"!==s&&"~"!==s)return u(e,t,s);const[n,o,a,,c]=i(e),[p,h,d,,y]=i(t),g=[n,o,a],m=[p,null!=h?h:"x",null!=d?d:"x"];if(y){if(!c)return!1;if(0!==l(g,m))return!1;if(-1===l(c.split("."),y.split(".")))return!1}const b=m.findIndex(e=>"0"!==e)+1,v="~"===s?2:b>1?b:1;return 0===l(g.slice(0,v),m.slice(0,v))&&-1!==l(g.slice(v),m.slice(v))},y=e=>"string"==typeof e&&/^[v\d]/.test(e)&&s.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)},8452:(e,t,r)=>{"use strict";var s=r(1189),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),n=Object.prototype.toString,o=Array.prototype.concat,a=r(41),l=r(592)(),c=function(e,t,r,s){if(t in e)if(!0===s){if(e[t]===r)return}else if("function"!=typeof(i=s)||"[object Function]"!==n.call(i)||!s())return;var i;l?a(e,t,r,!0):a(e,t,r)},u=function(e,t){var r=arguments.length>2?arguments[2]:{},n=s(t);i&&(n=o.call(n,Object.getOwnPropertySymbols(t)));for(var a=0;a<n.length;a+=1)c(e,n[a],t[n[a]],r[n[a]])};u.supportsDescriptors=!!l,e.exports=u},8648:e=>{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},8875:(e,t,r)=>{"use strict";var s;if(!Object.keys){var i=Object.prototype.hasOwnProperty,n=Object.prototype.toString,o=r(1093),a=Object.prototype.propertyIsEnumerable,l=!a.call({toString:null},"toString"),c=a.call(function(){},"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],p=function(e){var t=e.constructor;return t&&t.prototype===e},h={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!h["$"+e]&&i.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{p(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();s=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===n.call(e),s=o(e),a=t&&"[object String]"===n.call(e),h=[];if(!t&&!r&&!s)throw new TypeError("Object.keys called on a non-object");var f=c&&r;if(a&&e.length>0&&!i.call(e,0))for(var y=0;y<e.length;++y)h.push(String(y));if(s&&e.length>0)for(var g=0;g<e.length;++g)h.push(String(g));else for(var m in e)f&&"prototype"===m||!i.call(e,m)||h.push(String(m));if(l)for(var b=function(e){if("undefined"==typeof window||!d)return p(e);try{return p(e)}catch(e){return!1}}(e),v=0;v<u.length;++v)b&&"constructor"===u[v]||!i.call(e,u[v])||h.push(u[v]);return h}}e.exports=s},8968:e=>{"use strict";e.exports=Math.floor},9092:(e,t,r)=>{"use strict";var s=r(1333);e.exports=function(){return s()&&!!Symbol.toStringTag}},9139:function(e,t){var r,s;void 0===(s="function"==typeof(r=function(){var e=/^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;function t(e){var t,r,s=e.replace(/^v/,"").replace(/\+.*$/,""),i=(r="-",-1===(t=s).indexOf(r)?t.length:t.indexOf(r)),n=s.substring(0,i).split(".");return n.push(s.substring(i+1)),n}function r(e){return isNaN(Number(e))?e:Number(e)}function s(t){if("string"!=typeof t)throw new TypeError("Invalid argument expected string");if(!e.test(t))throw new Error("Invalid argument not valid semver ('"+t+"' received)")}function i(e,i){[e,i].forEach(s);for(var n=t(e),o=t(i),a=0;a<Math.max(n.length-1,o.length-1);a++){var l=parseInt(n[a]||0,10),c=parseInt(o[a]||0,10);if(l>c)return 1;if(c>l)return-1}var u=n[n.length-1],p=o[o.length-1];if(u&&p){var h=u.split(".").map(r),d=p.split(".").map(r);for(a=0;a<Math.max(h.length,d.length);a++){if(void 0===h[a]||"string"==typeof d[a]&&"number"==typeof h[a])return-1;if(void 0===d[a]||"string"==typeof h[a]&&"number"==typeof d[a])return 1;if(h[a]>d[a])return 1;if(d[a]>h[a])return-1}}else if(u||p)return u?-1:1;return 0}var n=[">",">=","=","<","<="],o={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};return i.validate=function(t){return"string"==typeof t&&e.test(t)},i.compare=function(e,t,r){!function(e){if("string"!=typeof e)throw new TypeError("Invalid operator type, expected string but got "+typeof e);if(-1===n.indexOf(e))throw new TypeError("Invalid operator, expected one of "+n.join("|"))}(r);var s=i(e,t);return o[r].indexOf(s)>-1},i})?r.apply(t,[]):r)||(e.exports=s)},9252:e=>{"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var s,i,n;if(Array.isArray(t)){if((s=t.length)!=r.length)return!1;for(i=s;0!==i--;)if(!e(t[i],r[i]))return!1;return!0}if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(i of t.entries())if(!r.has(i[0]))return!1;for(i of t.entries())if(!e(i[1],r.get(i[0])))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(i of t.entries())if(!r.has(i[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(r)){if((s=t.length)!=r.length)return!1;for(i=s;0!==i--;)if(t[i]!==r[i])return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((s=(n=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(i=s;0!==i--;)if(!Object.prototype.hasOwnProperty.call(r,n[i]))return!1;for(i=s;0!==i--;){var o=n[i];if(!e(t[o],r[o]))return!1}return!0}return t!=t&&r!=r}},9290:e=>{"use strict";e.exports=RangeError},9353:e=>{"use strict";var t=Object.prototype.toString,r=Math.max,s=function(e,t){for(var r=[],s=0;s<e.length;s+=1)r[s]=e[s];for(var i=0;i<t.length;i+=1)r[i+e.length]=t[i];return r};e.exports=function(e){var i=this;if("function"!=typeof i||"[object Function]"!==t.apply(i))throw new TypeError("Function.prototype.bind called on incompatible "+i);for(var n,o=function(e){for(var t=[],r=1,s=0;r<e.length;r+=1,s+=1)t[s]=e[r];return t}(arguments),a=r(0,i.length-o.length),l=[],c=0;c<a;c++)l[c]="$"+c;if(n=Function("binder","return function ("+function(e){for(var t="",r=0;r<e.length;r+=1)t+=e[r],r+1<e.length&&(t+=",");return t}(l)+"){ return binder.apply(this,arguments); }")(function(){if(this instanceof n){var t=i.apply(this,s(o,arguments));return Object(t)===t?t:this}return i.apply(e,s(o,arguments))}),i.prototype){var u=function(){};u.prototype=i.prototype,n.prototype=new u,u.prototype=null}return n}},9383:e=>{"use strict";e.exports=Error},9405:(e,t,r)=>{const s=r(768);e.exports=class{constructor(e){if(this.data={input:{},output:{}},s.isObject(e)){for(let t of["input","output"])for(let r in e[t])s.isObject(e[t])&&(this.data[t][r.toUpperCase()]=e[t][r]);this["federation:missing"]=e["federation:missing"]}}toJSON(){return this.data}getInputTypes(){return this.data.input}getOutputTypes(){return this.data.output}getInputType(e){return this._findType(e,"input")}getOutputType(e){return this._findType(e,"output")}_findType(e,t){return(e=e.toUpperCase())in this.data[t]?this.data[t][e]:null}}},9538:e=>{"use strict";e.exports=ReferenceError},9600:e=>{"use strict";var t,r,s=Function.prototype.toString,i="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof i&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw r}}),r={},i(function(){throw 42},null,t)}catch(e){e!==r&&(i=null)}else i=null;var n=/^\s*class\b/,o=function(e){try{var t=s.call(e);return n.test(t)}catch(e){return!1}},a=function(e){try{return!o(e)&&(s.call(e),!0)}catch(e){return!1}},l=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),p=function(){return!1};if("object"==typeof document){var h=document.all;l.call(h)===l.call(document.all)&&(p=function(e){if((u||!e)&&(void 0===e||"object"==typeof e))try{var t=l.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=i?function(e){if(p(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{i(e,null,t)}catch(e){if(e!==r)return!1}return!o(e)&&a(e)}:function(e){if(p(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(c)return a(e);if(o(e))return!1;var t=l.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&a(e)}},9612:e=>{"use strict";e.exports=Object},9649:(e,t,r)=>{const s=r(2458),i=r(3054);e.exports=class extends i{constructor(e,t){super(e,["path","size","modified"]),this.path=t,this.size=void 0,this.modified=void 0}async retrieveFile(){return await this.connection.download("/files/"+this.path,!0)}async downloadFile(e){let t=await this.connection.download("/files/"+this.path,!0);return await s.saveToFile(t,e)}async uploadFile(e,t=null,r=null){let i={method:"put",url:"/files/"+this.path,data:s.dataForUpload(e),headers:{"Content-Type":"application/octet-stream"}};"function"==typeof t&&(i.onUploadProgress=e=>{let r=Math.round(100*e.loaded/e.total);t(r,this)});let n=await this.connection._send(i,r);return this.setAll(n.data)}async deleteFile(){await this.connection._delete("/files/"+this.path)}}},9675:e=>{"use strict";e.exports=TypeError},9721:(e,t,r)=>{"use strict";var s=r(6556),i=r(4035),n=s("RegExp.prototype.exec"),o=r(9675);e.exports=function(e){if(!i(e))throw new o("`regex` must be a RegExp");return function(t){return null!==n(e,t)}}},9806:(e,t,r)=>{const s=r(3054),i=r(768);e.exports=class extends s{constructor(e,t){super(e,["id","summary","description","categories","parameters","returns","deprecated","experimental","exceptions","examples","links",["process_graph","processGraph"]]),this.id=t,this.summary=void 0,this.description=void 0,this.categories=void 0,this.parameters=void 0,this.returns=void 0,this.deprecated=void 0,this.experimental=void 0,this.exceptions=void 0,this.examples=void 0,this.links=void 0,this.processGraph=void 0}async describeUserProcess(){let e=await this.connection._get("/process_graphs/"+this.id);if(!i.isObject(e.data)||"string"!=typeof e.data.id)throw new Error("Invalid response received for user process");return this.connection.processes.add(e.data,"user"),this.setAll(e.data)}async replaceUserProcess(e){if(await this.connection._put("/process_graphs/"+this.id,this._convertToRequest(e)),this._supports("describeUserProcess"))return this.describeUserProcess();{let t=this.setAll(e);return this.connection.processes.add(t.toJSON(),"user"),t}}async deleteUserProcess(){await this.connection._delete("/process_graphs/"+this.id),this.connection.processes.remove(this.id,"user")}}},9957:(e,t,r)=>{"use strict";var s=Function.prototype.call,i=Object.prototype.hasOwnProperty,n=r(6743);e.exports=n.call(s,i)}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e].call(n.exports,n,n.exports,i),n.exports}return i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i(1224)})());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openeo/js-client",
3
- "version": "2.7.0",
3
+ "version": "2.9.0",
4
4
  "author": "openEO Consortium",
5
5
  "contributors": [
6
6
  {
@@ -55,7 +55,8 @@
55
55
  "@openeo/js-commons": "^1.5.0",
56
56
  "@radiantearth/stac-migrate": "^1.0.0",
57
57
  "axios": "^1.0.0",
58
- "oidc-client": "^1.11.5"
58
+ "oidc-client": "^1.11.5",
59
+ "regexp.escape": "^2.0.1"
59
60
  },
60
61
  "scripts": {
61
62
  "docs": "jsdoc -r -d docs/ -P package.json -R README.md -c .jsdoc",
@@ -1,4 +1,7 @@
1
1
  const Utils = require('@openeo/js-commons/src/utils');
2
+ if (typeof RegExp.escape !== 'function') {
3
+ require('regexp.escape').shim();
4
+ }
2
5
 
3
6
  const FEATURE_MAP = {
4
7
  // Discovery
@@ -6,6 +9,7 @@ const FEATURE_MAP = {
6
9
  listFileTypes: 'get /file_formats',
7
10
  listServiceTypes: 'get /service_types',
8
11
  listUdfRuntimes: 'get /udf_runtimes',
12
+ listProcessingParameters: 'get /processing_parameters',
9
13
  // Collections
10
14
  listCollections: 'get /collections',
11
15
  describeCollection: 'get /collections/{}',
@@ -58,6 +62,22 @@ const FEATURE_MAP = {
58
62
  debugService: 'get /services/{}/logs',
59
63
  };
60
64
 
65
+ const CONFORMANCE_CLASSES = {
66
+ openeo: "https://api.openeo.org/extensions/openeo/v1.*",
67
+ // STAC API
68
+ stacCollections: [
69
+ 'https://api.stacspec.org/v1.*/collections',
70
+ 'https://api.stacspec.org/v1.*/ogcapi-features'
71
+ ],
72
+ stacItems: 'https://api.stacspec.org/v1.*/ogcapi-features',
73
+ // openEO API Extensions
74
+ commercialData: 'https://api.openeo.org/extensions/commercial-data/0.1.*',
75
+ federation: 'https://api.openeo.org/extensions/federation/0.1.*',
76
+ processingParameters: "https://api.openeo.org/extensions/processing-parameters/0.1.*",
77
+ remoteProcessDefinition: 'https://api.openeo.org/extensions/remote-process-definition/0.1.*',
78
+ workspaces: 'https://api.openeo.org/extensions/workspaces/0.1.*'
79
+ };
80
+
61
81
  /**
62
82
  * Capabilities of a back-end.
63
83
  */
@@ -198,7 +218,38 @@ class Capabilities {
198
218
  * @returns {Array.<FederationBackend>} Array of backends
199
219
  */
200
220
  listFederation() {
201
- return Array.isArray(this.data.federation) ? this.data.federation : [];
221
+ let federation = [];
222
+ if (Utils.isObject(this.data.federation)) {
223
+ // convert to array and add keys as `id` property
224
+ for(const [key, backend] of Object.entries(this.data.federation)) {
225
+ // fresh object to avoid `id` showing up in this.data.federation
226
+ federation.push({ id: key, ...backend });
227
+ }
228
+ }
229
+ return federation;
230
+ }
231
+
232
+ /**
233
+ * Given just the string ID of a backend within the federation, returns that backend's full details as a FederationBackend object.
234
+ *
235
+ * @param {string} backendId - The ID of a backend within the federation
236
+ * @returns {FederationBackend} The full details of the backend
237
+ */
238
+ getFederationBackend(backendId) {
239
+ // Add `id` property to make it a proper FederationBackend object
240
+ // If backendId doesn't exist in this.data.federation, will contain just the `id` field (intended behaviour)
241
+ return { id: backendId, ...this.data.federation[backendId] }
242
+ }
243
+
244
+ /**
245
+ * Given a list of string IDs of backends within the federation, returns those backends' full details as FederationBackend objects.
246
+ *
247
+ * @param {Array<string>} backendIds - The IDs of backends within the federation
248
+ * @returns {Array<FederationBackend>} An array in the same order as the input, containing for each position the full details of the backend
249
+ */
250
+ getFederationBackends(backendIds) {
251
+ // Let 'single case' function do the work, but pass `this` so that `this.data.federation` can be accessed in the callback context
252
+ return backendIds.map(this.getFederationBackend, this);
202
253
  }
203
254
 
204
255
  /**
@@ -230,6 +281,29 @@ class Capabilities {
230
281
  return feature === true || this.features.some(e => e === feature);
231
282
  }
232
283
 
284
+ /**
285
+ * Check whether a conformance class is supported by the back-end.
286
+ *
287
+ * Use `*` as a wildcard character for e.g. version numbers.
288
+ *
289
+ * @param {string|Array.<string>} uris - Conformance class URI(s) - any of them must match.
290
+ * @returns {boolean} `true` if any of the conformance classes is supported, otherwise `false`.
291
+ */
292
+ hasConformance(uris) {
293
+ if (typeof uris === 'string') {
294
+ uris = [uris];
295
+ }
296
+ if(!Array.isArray(this.data.conformsTo) || !Array.isArray(uris)) {
297
+ return false;
298
+ }
299
+
300
+ const classRegexp = uris
301
+ .map(uri => RegExp.escape(uri).replaceAll('\\*', '[^/]+'))
302
+ .join('|');
303
+ const regexp = new RegExp('^(' + classRegexp + ')$');
304
+ return Boolean(this.data.conformsTo.find(uri => uri.match(regexp)));
305
+ }
306
+
233
307
  /**
234
308
  * Get the billing currency.
235
309
  *
@@ -271,4 +345,6 @@ class Capabilities {
271
345
  }
272
346
  }
273
347
 
348
+ Capabilities.Conformance = CONFORMANCE_CLASSES;
349
+
274
350
  module.exports = Capabilities;