@openeo/js-commons
Advanced tools
Comparing version 1.1.1 to 1.2.0
@@ -1,1 +0,1 @@ | ||
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(window,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var s=t[i]={i:i,l:!1,exports:{}};return e[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(i,s,function(t){return e[t]}.bind(null,s));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(e,t,r){var i=r(5);class s{static isObject(e){return"object"==typeof e&&e===Object(e)&&!Array.isArray(e)}static equals(e,t){return i(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),i=new Array(r.length);return r.forEach((r,s)=>{i[s]=t(e[r],r,e)}),i}static mapObjectValues(e,t){e=Object(e);const r={};return Object.keys(e).forEach(i=>{r[i]=t(e[i],i,e)}),r}static unique(e,t=!1){return t?e.filter((e,t,r)=>r.findIndex(t=>s.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&&s.isObject(t))for(var r in t){let i=t[r];e=e.replace("{"+r+"}",Array.isArray(i)?i.join("; "):i)}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 i=[];if(!Array.isArray(e))return i;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=s.prettifyString(t.rel):t.title=t.href.replace(/^https?:\/\/(www.)?/i,"").replace(/\/$/i,"")),i.push(t));return t&&i.sort((e,t)=>s.compareStringCaseInsensitive(e.title,t.title)),i}}e.exports=s},function(e,t,r){const i=r(6);class s{static compare(e,t,r=null){return null!==r?i.compare(e,t,r):i(e,t)}static validate(e){return i.validate(e)}static findCompatible(e,t=!0,r=null,i=null){if(!Array.isArray(e)||0===e.length)return[];let n=e.filter(e=>{if("string"==typeof e.url&&s.validate(e.api_version)){let t=s.validate(r),n=s.validate(i);return t&&n?s.compare(e.api_version,r,">=")&&s.compare(e.api_version,i,"<="):t?s.compare(e.api_version,r,">="):!n||s.compare(e.api_version,i,"<=")}return!1});return 0===n.length?[]:n.sort((e,r)=>{let i=!0===e.production,n=!0===r.production;return t&&i!==n?i?-1:1:-1*s.compare(e.api_version,r.api_version)})}static findLatest(e,t=!0,r=null,i=null){let n=s.findCompatible(e,t,r,i);return n.length>0?n[0]:null}}e.exports=s},function(e,t,r){const i=r(0),s=r(1);e.exports=class{static migrateLinks(e,t,r="related"){return Array.isArray(e)?e.filter(e=>i.isObject(e)&&"string"==typeof e.href).map(e=>("string"!=typeof e.rel&&(e.rel=r),e)):[]}static migrateDiscoveryParameters(e,t){if(s.compare(t,"1.0.0-rc.2","<="))for(var r in e){if(!i.isObject(e[r])){delete e[r];continue}let t=e[r].type;"string"==typeof t&&(e[r].type=[t,"null"]);let s=e[r].example;void 0!==s&&(e[r].examples=[s],delete e[r].example)}return e}}},function(e,t,r){const i=r(4),s=r(7),n=r(8),a=r(9),o=r(1),c=r(0);e.exports={MigrateCapabilities:i,MigrateCollections:s,MigrateProcesses:n,ProcessUtils:a,Versions:o,Utils:c}},function(e,t,r){const i=r(0),s=r(1),n=r(2);const a=["raster","vector","table","other"];function o(e,t){i.isObject(e)||(e={});for(let r in e)i.isObject(e[r].parameters)?e[r].parameters=n.migrateDiscoveryParameters(e[r].parameters,t):e[r].parameters={},Array.isArray(e[r].gis_data_types)?e[r].gis_data_types=e[r].gis_data_types.filter(e=>a.includes(e)):e[r].gis_data_types=[],void 0!==e[r].links&&(e[r].links=n.migrateLinks(e[r].links,t));return e}e.exports=class{static guessApiVersion(e){if(!i.isObject(e))return"0.0.0";if(s.validate(e.api_version))return e.api_version;if(s.validate(e.version))return e.version;if(Array.isArray(e.endpoints)){if(e.endpoints.find(e=>"/file_formats"===e.path||"/conformance"===e.path||"/files"===e.path))return"1.0.0";if(e.endpoints.find(e=>"/output_formats"===e.path||"/files/{user_id}"===e.path))return"0.4.2";if(!(e.backend_version||e.title||e.description||e.links))return"0.3.1"}return"0.0.0"}static convertCapabilitiesToLatestSpec(e,t=null,r=!0,a=!0,o="unknown",c="Unknown",p="0.0.0"){if(null===t&&(t=this.guessApiVersion(e)),"0.0.0"===t)return{};if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";let l=i.deepClone(e);return l.api_version=r?"1.0.0":t,i.isObject(l.billing)?l.billing=this.convertBillingToLatestSpec(l.billing,t):delete l.billing,l.endpoints=this.convertEndpointsToLatestSpec(l.endpoints,t,a),!r&&s.compare(t,"0.4.x","=")?l.stac_version="0.6.2":(r||"string"!=typeof l.stac_version)&&(l.stac_version="0.9.0"),"boolean"!=typeof l.production&&(l.production=!(!s.compare(t,"1.0.0-rc.1","=")&&!s.compare(t,"1.0.0-rc.2","="))),"string"!=typeof l.backend_version&&(l.backend_version=p),"string"!=typeof l.id&&(l.id=o),"string"!=typeof l.title&&(l.title=c),"string"!=typeof l.description&&(l.description=""),l.links=n.migrateLinks(l.links,t),l}static convertBillingToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return"string"!=typeof(e=i.isObject(e)?i.deepClone(e):{}).currency&&(e.currency=null),e}static convertEndpointsToLatestSpec(e,t,r=!1){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if(!Array.isArray(e))return[];if(e=i.deepClone(e),r){let r=s.compare(t,"0.4.x","="),i=s.compare(t,"1.0.0-rc.2","<"),a=function(e){let t="/process_graphs/{process_graph_id}",r=e.findIndex(e=>e.path===t);return r>=0?-1===e[r].methods.indexOf("PUT")&&e[r].methods.push("PUT"):e.push({path:t,methods:["PUT"]}),e};for(var n in e){let t=e[n];if(r)switch(t.path){case"/output_formats":t.path="/file_formats";break;case"/files/{user_id}":t.path="/files";break;case"/files/{user_id}/{path}":t.path="/files/{path}"}if(i)switch(t.path){case"/process_graphs":let r=t.methods.indexOf("POST");r>=0&&(t.methods.splice(r,1),a(e));break;case"/process_graphs/{process_graph_id}":let i=t.methods.indexOf("PATCH");i>=0&&(t.methods.splice(i,1),a(e))}}}return e}static convertOutputFormatsToLatestSpec(e,t){return this.convertFileFormatsToLatestSpec(e,t)}static convertFileFormatsToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return e=i.isObject(e)?i.deepClone(e):{},s.compare(t,"0.4.x","=")&&i.isObject(e)&&(e={output:e}),e.input=o(e.input,t),e.output=o(e.output,t),e}static convertServiceTypesToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if(!i.isObject(e))return{};e=i.deepClone(e);for(let r in e)i.isObject(e[r])||(e[r]={}),s.compare(t,"0.4.x","=")&&(delete e[r].attributes,i.isObject(e[r].parameters)&&(e[r].configuration=e[r].parameters),delete e[r].parameters,Array.isArray(e[r].variables)&&(e[r].process_parameters=e[r].variables.map(e=>{let t={name:e.variable_id,description:"string"==typeof e.description?e.description:"",schema:{type:["string"==typeof e.type?e.type:"string","null"]}};return void 0!==e.default&&(t.default=e.default),t})),delete e[r].variables),i.isObject(e[r].configuration)?e[r].configuration=n.migrateDiscoveryParameters(e[r].configuration,t):e[r].configuration={},Array.isArray(e[r].process_parameters)||(e[r].process_parameters=[]),void 0!==e[r].links&&(e[r].links=n.migrateLinks(e[r].links,t));return e}static convertUdfRuntimesToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if(!i.isObject(e))return{};e=i.deepClone(e);for(let r in e){if(s.compare(t,"0.4.x","=")){if(!i.isObject(e[r])){delete e[r];continue}null===e[r].description&&(e[r].description="")}"string"!=typeof e[r].type&&("string"==typeof e[r].docker?e[r].type="docker":e[r].type="language"),void 0!==e[r].links&&(e[r].links=n.migrateLinks(e[r].links,t))}return e}}},function(e,t,r){"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 i,s,n;if(Array.isArray(t)){if((i=t.length)!=r.length)return!1;for(s=i;0!=s--;)if(!e(t[s],r[s]))return!1;return!0}if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(s of t.entries())if(!r.has(s[0]))return!1;for(s of t.entries())if(!e(s[1],r.get(s[0])))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(s of t.entries())if(!r.has(s[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(r)){if((i=t.length)!=r.length)return!1;for(s=i;0!=s--;)if(t[s]!==r[s])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((i=(n=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(s=i;0!=s--;)if(!Object.prototype.hasOwnProperty.call(r,n[s]))return!1;for(s=i;0!=s--;){var a=n[s];if(!e(t[a],r[a]))return!1}return!0}return t!=t&&r!=r}},function(e,t,r){var i,s,n;s=[],void 0===(n="function"==typeof(i=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,i=e.replace(/^v/,"").replace(/\+.*$/,""),s=(r="-",-1===(t=i).indexOf(r)?t.length:t.indexOf(r)),n=i.substring(0,s).split(".");return n.push(i.substring(s+1)),n}function r(e){return isNaN(Number(e))?e:Number(e)}function i(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 s(e,s){[e,s].forEach(i);for(var n=t(e),a=t(s),o=0;o<Math.max(n.length-1,a.length-1);o++){var c=parseInt(n[o]||0,10),p=parseInt(a[o]||0,10);if(c>p)return 1;if(p>c)return-1}var l=n[n.length-1],f=a[a.length-1];if(l&&f){var u=l.split(".").map(r),d=f.split(".").map(r);for(o=0;o<Math.max(u.length,d.length);o++){if(void 0===u[o]||"string"==typeof d[o]&&"number"==typeof u[o])return-1;if(void 0===d[o]||"string"==typeof u[o]&&"number"==typeof d[o])return 1;if(u[o]>d[o])return 1;if(d[o]>u[o])return-1}}else if(l||f)return l?-1:1;return 0}var n=[">",">=","=","<","<="],a={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};return s.validate=function(t){return"string"==typeof t&&e.test(t)},s.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 i=s(e,t);return a[r].indexOf(i)>-1},s})?i.apply(t,s):i)||(e.exports=n)},function(e,t,r){const i=r(0),s=r(1),n=r(2),a={cube:"datacube",eo:"eo",label:"label",pc:"pointcloud",proj:"projection",sar:"sar",sat:"sat",sci:"scientific",view:"view"},o={"item:license":"license","item:providers":"providers","eo:instrument":"instruments","eo:platform":"platform","eo:constellation":"constellation","eo:epsg":"proj:epsg","eo:off_nadir":"view:off_nadir","eo:azimuth":"view:azimuth","eo:sun_azimuth":"view:sun_azimuth","eo:sun_elevation":"view:sun_elevation","dtr:start_datetime":"start_datetime","dtr:end_datetime":"end_datetime","pc:schema":"pc:schemas","sar:type":"sar:product_type","sar:polarization":"sar:polarizations","sar:instrument":"instruments","sar:platform":"platform","sar:constellation":"constellation","sar:off_nadir":"sat:off_nadir_angle","sar:relative_orbit":"sat:relative_orbit","sar:pass_direction":"sat:orbit_state"},c=["cube:dimensions","sci:publications","sci:doi","sci:citation"],p=["spatial","temporal","bands","other"];class l{static convertCollectionsToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return e=i.deepClone(e),Array.isArray(e.collections)?e.collections=e.collections.map(e=>l.convertCollectionToLatestSpec(e,t)).filter(e=>"string"==typeof e.id):e.collections=[],e.links=n.migrateLinks(e.links,t),e}static convertCollectionToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";let r=i.deepClone(e);if("string"!=typeof r.id||0===r.id.length)return{};if(s.validate(r.stac_version)&&!s.compare(r.stac_version,"0.9.0","<")||(r.stac_version="0.9.0"),i.isObject(r.extent)||(r.extent={}),s.compare(t,"0.4.x","=")){if(Array.isArray(r.extent.spatial)&&(r.extent.spatial={bbox:[r.extent.spatial]}),Array.isArray(r.extent.temporal)&&(r.extent.temporal={interval:[r.extent.temporal]}),i.isObject(r.properties)){i.isObject(r.other_properties)||(r.other_properties={});for(let e in r.properties)r.other_properties[e]={values:[r.properties[e]]}}delete r.properties;let e=i.isObject(r.other_properties)?r.other_properties:{};for(let t in e){let s=e[t];i.isObject(s)&&(Array.isArray(s.extent)||Array.isArray(s.values))?Array.isArray(s.extent)?e[t]={min:s.extent[0],max:s.extent[1]}:-1===s.values.findIndex(e=>!Array.isArray(e))?s.values.length<=1?e[t]=s.values[0]:e[t]=s.values.reduce((e,t)=>e.concat(t)):e[t]=s.values:(void 0===r[t]&&(r[t]=s),delete e[t])}delete r.other_properties,i.isObject(r.summaries)||(r.summaries={});for(let t in e){let i=e[t];"sar:pass_direction"===t&&(i=i.map(e=>null===e?"geostationary":e)),("sar:resolution"===t||"sar:pixel_spacing"===t||"sar:looks"===t)&&Array.isArray(i)&&i.length>=2?(r.summaries[t+"_range"]=i.slice(0,1),r.summaries[t+"_azimuth"]=i.slice(1,2),i.length>2&&(r.summaries[t+"_equivalent_number"]=i.slice(2,3))):"string"==typeof o[t]?r.summaries[o[t]]=i:c.includes(t)&&Array.isArray(i)&&1===i.length?r[t]=i[0]:r.summaries[t]=i}}if("string"!=typeof r.description&&(r.description=""),i.isObject(r.extent.spatial)||(r.extent.spatial={}),i.isObject(r.extent.temporal)||(r.extent.temporal={}),"string"!=typeof r.license&&(r.license="proprietary"),i.isObject(r.summaries)||(r.summaries={}),i.isObject(r["cube:dimensions"]))for(var l in r["cube:dimensions"])i.isObject(r["cube:dimensions"][l])&&!p.includes(r["cube:dimensions"][l].type)&&(r["cube:dimensions"][l].type="other");else r["cube:dimensions"]={};r.links=n.migrateLinks(r.links);var f=Array.isArray(r.stac_extensions)?r.stac_extensions:[];for(var u in r){let e=null,t=u.split(":",1);"deprecated"===u||"version"===u?e="version":"string"==typeof a[t]&&(e=a[t]),null===e||f.includes(e)||f.push(e)}return f.sort(),r.stac_extensions=f,r}}e.exports=l},function(e,t,r){const i=r(0),s=r(1),n=r(2);class a{static convertProcessesToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return e=i.deepClone(e),Array.isArray(e.processes)?e.processes=e.processes.map(e=>a.convertProcessToLatestSpec(e,t)).filter(e=>"string"==typeof e.id):e.processes=[],e.links=n.migrateLinks(e.links,t),e}static convertProcessToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if("string"!=typeof(e=i.deepClone(e)).id||0===e.id.length)return{};if(s.compare(t,"0.4.x","=")){if(!Array.isArray(e.parameter_order)||0===e.parameter_order.length){e.parameter_order=[];for(let t in e.parameters)e.parameter_order.push(t)}let t=[];for(let r of e.parameter_order){let s={name:r};i.isObject(e.parameters[r])&&Object.assign(s,e.parameters[r]),s.required||(s.optional=!0),delete s.required,t.push(s)}delete e.parameter_order,e.parameters=t}if("string"!=typeof e.description&&(e.description=""),Array.isArray(e.parameters))for(var r=e.parameters.length-1;r>=0;r--){let s=e.parameters[r];i.isObject(s)?("string"!=typeof s.description&&(s.description=""),e.parameters[r]=o(s,t)):e.parameters.splice(r,1)}else e.parameters=[];return i.isObject(e.returns)||(e.returns={}),e.returns=o(e.returns,t,!1),Array.isArray(e.examples)&&(e.examples=e.examples.filter(e=>i.isObject(e)&&i.isObject(e.arguments))),void 0!==e.links&&(e.links=n.migrateLinks(e.links,t)),e}}function o(e,t,r=!0){var i={};if(e.schema&&"object"==typeof e.schema&&(i=e.schema),s.compare(t,"0.4.x","=")){for(let t of["anyOf","oneOf"])if(Array.isArray(i[t])){r&&void 0!==i.default&&(e.default=i.default),i=i[t];break}let n=s.compare(t,"0.4.x")<=0&&void 0!==e.media_type,a=Array.isArray(i)?i:[i];for(let t of a)t=c(t),r&&void 0!==t.default&&(e.default=t.default,delete t.default),n&&(t.contentMediaType=e.media_type);n&&delete e.media_type}return s.compare(t,"0.4.x",">")&&void 0!==e.default&&(e.optional=!0),e.schema=i,e}function c(e){if(i.isObject(e)&&void 0!==e.type&&"string"==typeof e.format){switch(e.format){case"url":e.format="uri";break;case"proj-definition":e.deprecated=!0;break;case"callback":if(e.format="process-graph",i.isObject(e.parameters)){let t=[];for(let r in e.parameters){let i=e.parameters[r],s={name:r,description:"string"==typeof i.description?i.description:"",schema:i};t.push(s)}e.parameters=t}}e.subtype=e.format,["date-time","time","date","uri"].includes(e.format)||delete e.format}for(let t in e)e[t]&&"object"==typeof e[t]&&(e[t]=c(e[t]));return e}e.exports=a},function(e,t,r){const i=r(0);class s{static normalizeJsonSchema(e,t=!1){e=i.isObject(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=i.omitFromObject(t,["oneOf","anyOf"]),s=t.oneOf||t.anyOf;for(let t of s)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){if(!i.isObject(e)||!e.schema)return[];let t=s.normalizeJsonSchema(e.schema),r=[];for(let e of t)if(Array.isArray(e.parameters)){if(r.length>0&&!i.equals(r,e.parameters))throw new Error("Multiple schemas with different callback parameters found.");r=e.parameters}return r}static getCallbackParametersForProcess(e,t){if(!i.isObject(e)||!Array.isArray(e.parameters))return[];let r=e.parameters.find(e=>e.name===t);return s.getCallbackParameters(r)}static getNativeTypesForJsonSchema(e,t=!1){if(i.isObject(e)&&Array.isArray(e.type)){let r=i.unique(e.type).filter(e=>s.JSON_SCHEMA_TYPES.includes(e));return r.length>0&&r.length<s.JSON_SCHEMA_TYPES.length?r:t?[]:s.JSON_SCHEMA_TYPES}return i.isObject(e)&&"string"==typeof e.type&&s.JSON_SCHEMA_TYPES.includes(e.type)?[e.type]:t?[]:s.JSON_SCHEMA_TYPES}static getElementJsonSchema(e,t=null){let r=s.getNativeTypesForJsonSchema(e);if(i.isObject(e)&&r.includes("array")&&"string"!=typeof t){if(i.isObject(e.items))return e.items;if(Array.isArray(e.items)){if(null!==t&&i.isObject(e.items[t]))return e.items[t];if(i.isObject(e.additionalItems))return e.additionalItems}}if(i.isObject(e)&&r.includes("object")){if(null!==t&&i.isObject(e.properties)&&i.isObject(e.properties[t]))return e.properties[t];if(i.isObject(e.additionalProperties))return e.additionalProperties}return{}}}s.JSON_SCHEMA_TYPES=["string","number","integer","boolean","array","object","null"],e.exports=s}])})); | ||
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(window,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var s=t[i]={i:i,l:!1,exports:{}};return e[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(i,s,function(t){return e[t]}.bind(null,s));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(e,t,r){var i=r(5);class s{static isObject(e){return"object"==typeof e&&e===Object(e)&&!Array.isArray(e)}static equals(e,t){return i(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),i=new Array(r.length);return r.forEach((r,s)=>{i[s]=t(e[r],r,e)}),i}static mapObjectValues(e,t){e=Object(e);const r={};return Object.keys(e).forEach(i=>{r[i]=t(e[i],i,e)}),r}static unique(e,t=!1){return t?e.filter((e,t,r)=>r.findIndex(t=>s.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&&s.isObject(t))for(var r in t){let i=t[r];e=e.replace("{"+r+"}",Array.isArray(i)?i.join("; "):i)}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 i=[];if(!Array.isArray(e))return i;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=s.prettifyString(t.rel):t.title=t.href.replace(/^https?:\/\/(www.)?/i,"").replace(/\/$/i,"")),i.push(t));return t&&i.sort((e,t)=>s.compareStringCaseInsensitive(e.title,t.title)),i}}e.exports=s},function(e,t,r){const i=r(6);class s{static compare(e,t,r=null){return null!==r?i.compare(e,t,r):i(e,t)}static validate(e){return i.validate(e)}static findCompatible(e,t=!0,r=null,i=null){if(!Array.isArray(e)||0===e.length)return[];let n=e.filter(e=>{if("string"==typeof e.url&&s.validate(e.api_version)){let t=s.validate(r),n=s.validate(i);return t&&n?s.compare(e.api_version,r,">=")&&s.compare(e.api_version,i,"<="):t?s.compare(e.api_version,r,">="):!n||s.compare(e.api_version,i,"<=")}return!1});return 0===n.length?[]:n.sort((e,r)=>{let i=!0===e.production,n=!0===r.production;return t&&i!==n?i?-1:1:-1*s.compare(e.api_version,r.api_version)})}static findLatest(e,t=!0,r=null,i=null){let n=s.findCompatible(e,t,r,i);return n.length>0?n[0]:null}}e.exports=s},function(e,t,r){const i=r(0),s=r(1);e.exports=class{static migrateLinks(e,t,r="related"){return Array.isArray(e)?e.filter(e=>i.isObject(e)&&"string"==typeof e.href).map(e=>("string"!=typeof e.rel&&(e.rel=r),e)):[]}static migrateDiscoveryParameters(e,t){if(s.compare(t,"1.0.0-rc.2","<="))for(var r in e){if(!i.isObject(e[r])){delete e[r];continue}let t=e[r].type;"string"==typeof t&&(e[r].type=[t,"null"]);let s=e[r].example;void 0!==s&&(e[r].examples=[s],delete e[r].example)}return e}}},function(e,t,r){const i=r(4),s=r(7),n=r(8),a=r(9),o=r(1),c=r(0);e.exports={MigrateCapabilities:i,MigrateCollections:s,MigrateProcesses:n,ProcessUtils:a,Versions:o,Utils:c}},function(e,t,r){const i=r(0),s=r(1),n=r(2);const a=["raster","vector","table","other"];function o(e,t){i.isObject(e)||(e={});for(let r in e)i.isObject(e[r].parameters)?e[r].parameters=n.migrateDiscoveryParameters(e[r].parameters,t):e[r].parameters={},Array.isArray(e[r].gis_data_types)?e[r].gis_data_types=e[r].gis_data_types.filter(e=>a.includes(e)):e[r].gis_data_types=[],void 0!==e[r].links&&(e[r].links=n.migrateLinks(e[r].links,t));return e}e.exports=class{static guessApiVersion(e){if(!i.isObject(e))return"0.0.0";if(s.validate(e.api_version))return e.api_version;if(s.validate(e.version))return e.version;if(Array.isArray(e.endpoints)){if(e.endpoints.find(e=>"/file_formats"===e.path||"/conformance"===e.path||"/files"===e.path))return"1.0.0";if(e.endpoints.find(e=>"/output_formats"===e.path||"/files/{user_id}"===e.path))return"0.4.2";if(!(e.backend_version||e.title||e.description||e.links))return"0.3.1"}return"0.0.0"}static convertCapabilitiesToLatestSpec(e,t=null,r=!0,a=!0,o="unknown",c="Unknown",p="0.0.0"){if(null===t&&(t=this.guessApiVersion(e)),"0.0.0"===t)return{};if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";let l=i.deepClone(e);return l.api_version=r?"1.0.0":t,i.isObject(l.billing)?l.billing=this.convertBillingToLatestSpec(l.billing,t):delete l.billing,l.endpoints=this.convertEndpointsToLatestSpec(l.endpoints,t,a),!r&&s.compare(t,"0.4.x","=")?l.stac_version="0.6.2":(r||"string"!=typeof l.stac_version)&&(l.stac_version="0.9.0"),"boolean"!=typeof l.production&&(l.production=!(!s.compare(t,"1.0.0-rc.1","=")&&!s.compare(t,"1.0.0-rc.2","="))),"string"!=typeof l.backend_version&&(l.backend_version=p),"string"!=typeof l.id&&(l.id=o),"string"!=typeof l.title&&(l.title=c),"string"!=typeof l.description&&(l.description=""),l.links=n.migrateLinks(l.links,t),l}static convertBillingToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return"string"!=typeof(e=i.isObject(e)?i.deepClone(e):{}).currency&&(e.currency=null),e}static convertEndpointsToLatestSpec(e,t,r=!1){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if(!Array.isArray(e))return[];if(e=i.deepClone(e),r){let r=s.compare(t,"0.4.x","="),i=s.compare(t,"1.0.0-rc.2","<"),a=function(e){let t="/process_graphs/{process_graph_id}",r=e.findIndex(e=>e.path===t);return r>=0?-1===e[r].methods.indexOf("PUT")&&e[r].methods.push("PUT"):e.push({path:t,methods:["PUT"]}),e};for(var n in e){let t=e[n];if(r)switch(t.path){case"/output_formats":t.path="/file_formats";break;case"/files/{user_id}":t.path="/files";break;case"/files/{user_id}/{path}":t.path="/files/{path}"}if(i)switch(t.path){case"/process_graphs":let r=t.methods.indexOf("POST");r>=0&&(t.methods.splice(r,1),a(e));break;case"/process_graphs/{process_graph_id}":let i=t.methods.indexOf("PATCH");i>=0&&(t.methods.splice(i,1),a(e))}}}return e}static convertOutputFormatsToLatestSpec(e,t){return this.convertFileFormatsToLatestSpec(e,t)}static convertFileFormatsToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return e=i.isObject(e)?i.deepClone(e):{},s.compare(t,"0.4.x","=")&&i.isObject(e)&&(e={output:e}),e.input=o(e.input,t),e.output=o(e.output,t),e}static convertServiceTypesToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if(!i.isObject(e))return{};e=i.deepClone(e);for(let r in e)i.isObject(e[r])||(e[r]={}),s.compare(t,"0.4.x","=")&&(delete e[r].attributes,i.isObject(e[r].parameters)&&(e[r].configuration=e[r].parameters),delete e[r].parameters,Array.isArray(e[r].variables)&&(e[r].process_parameters=e[r].variables.map(e=>{let t={name:e.variable_id,description:"string"==typeof e.description?e.description:"",schema:{type:["string"==typeof e.type?e.type:"string","null"]}};return void 0!==e.default&&(t.default=e.default),t})),delete e[r].variables),i.isObject(e[r].configuration)?e[r].configuration=n.migrateDiscoveryParameters(e[r].configuration,t):e[r].configuration={},Array.isArray(e[r].process_parameters)||(e[r].process_parameters=[]),void 0!==e[r].links&&(e[r].links=n.migrateLinks(e[r].links,t));return e}static convertUdfRuntimesToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if(!i.isObject(e))return{};e=i.deepClone(e);for(let r in e){if(s.compare(t,"0.4.x","=")){if(!i.isObject(e[r])){delete e[r];continue}null===e[r].description&&(e[r].description="")}"string"!=typeof e[r].type&&("string"==typeof e[r].docker?e[r].type="docker":e[r].type="language"),void 0!==e[r].links&&(e[r].links=n.migrateLinks(e[r].links,t))}return e}}},function(e,t,r){"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 i,s,n;if(Array.isArray(t)){if((i=t.length)!=r.length)return!1;for(s=i;0!=s--;)if(!e(t[s],r[s]))return!1;return!0}if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(s of t.entries())if(!r.has(s[0]))return!1;for(s of t.entries())if(!e(s[1],r.get(s[0])))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(s of t.entries())if(!r.has(s[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(r)){if((i=t.length)!=r.length)return!1;for(s=i;0!=s--;)if(t[s]!==r[s])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((i=(n=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(s=i;0!=s--;)if(!Object.prototype.hasOwnProperty.call(r,n[s]))return!1;for(s=i;0!=s--;){var a=n[s];if(!e(t[a],r[a]))return!1}return!0}return t!=t&&r!=r}},function(e,t,r){var i,s,n;s=[],void 0===(n="function"==typeof(i=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,i=e.replace(/^v/,"").replace(/\+.*$/,""),s=(r="-",-1===(t=i).indexOf(r)?t.length:t.indexOf(r)),n=i.substring(0,s).split(".");return n.push(i.substring(s+1)),n}function r(e){return isNaN(Number(e))?e:Number(e)}function i(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 s(e,s){[e,s].forEach(i);for(var n=t(e),a=t(s),o=0;o<Math.max(n.length-1,a.length-1);o++){var c=parseInt(n[o]||0,10),p=parseInt(a[o]||0,10);if(c>p)return 1;if(p>c)return-1}var l=n[n.length-1],f=a[a.length-1];if(l&&f){var u=l.split(".").map(r),d=f.split(".").map(r);for(o=0;o<Math.max(u.length,d.length);o++){if(void 0===u[o]||"string"==typeof d[o]&&"number"==typeof u[o])return-1;if(void 0===d[o]||"string"==typeof u[o]&&"number"==typeof d[o])return 1;if(u[o]>d[o])return 1;if(d[o]>u[o])return-1}}else if(l||f)return l?-1:1;return 0}var n=[">",">=","=","<","<="],a={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};return s.validate=function(t){return"string"==typeof t&&e.test(t)},s.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 i=s(e,t);return a[r].indexOf(i)>-1},s})?i.apply(t,s):i)||(e.exports=n)},function(e,t,r){const i=r(0),s=r(1),n=r(2),a={cube:"datacube",eo:"eo",label:"label",pc:"pointcloud",proj:"projection",sar:"sar",sat:"sat",sci:"scientific",view:"view"},o={"item:license":"license","item:providers":"providers","eo:instrument":"instruments","eo:platform":"platform","eo:constellation":"constellation","eo:epsg":"proj:epsg","eo:off_nadir":"view:off_nadir","eo:azimuth":"view:azimuth","eo:sun_azimuth":"view:sun_azimuth","eo:sun_elevation":"view:sun_elevation","dtr:start_datetime":"start_datetime","dtr:end_datetime":"end_datetime","pc:schema":"pc:schemas","sar:type":"sar:product_type","sar:polarization":"sar:polarizations","sar:instrument":"instruments","sar:platform":"platform","sar:constellation":"constellation","sar:off_nadir":"sat:off_nadir_angle","sar:relative_orbit":"sat:relative_orbit","sar:pass_direction":"sat:orbit_state"},c=["cube:dimensions","sci:publications","sci:doi","sci:citation"],p=["spatial","temporal","bands","other"];class l{static convertCollectionsToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return e=i.deepClone(e),Array.isArray(e.collections)?e.collections=e.collections.map(e=>l.convertCollectionToLatestSpec(e,t)).filter(e=>"string"==typeof e.id):e.collections=[],e.links=n.migrateLinks(e.links,t),e}static convertCollectionToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";let r=i.deepClone(e);if("string"!=typeof r.id||0===r.id.length)return{};if(s.validate(r.stac_version)&&!s.compare(r.stac_version,"0.9.0","<")||(r.stac_version="0.9.0"),i.isObject(r.extent)||(r.extent={}),s.compare(t,"0.4.x","=")){if(Array.isArray(r.extent.spatial)&&(r.extent.spatial={bbox:[r.extent.spatial]}),Array.isArray(r.extent.temporal)&&(r.extent.temporal={interval:[r.extent.temporal]}),i.isObject(r.properties)){i.isObject(r.other_properties)||(r.other_properties={});for(let e in r.properties)r.other_properties[e]={values:[r.properties[e]]}}delete r.properties;let e=i.isObject(r.other_properties)?r.other_properties:{};for(let t in e){let s=e[t];i.isObject(s)&&(Array.isArray(s.extent)||Array.isArray(s.values))?Array.isArray(s.extent)?e[t]={min:s.extent[0],max:s.extent[1]}:-1===s.values.findIndex(e=>!Array.isArray(e))?s.values.length<=1?e[t]=s.values[0]:e[t]=s.values.reduce((e,t)=>e.concat(t)):e[t]=s.values:(void 0===r[t]&&(r[t]=s),delete e[t])}delete r.other_properties,i.isObject(r.summaries)||(r.summaries={});for(let t in e){let i=e[t];"sar:pass_direction"===t&&(i=i.map(e=>null===e?"geostationary":e)),("sar:resolution"===t||"sar:pixel_spacing"===t||"sar:looks"===t)&&Array.isArray(i)&&i.length>=2?(r.summaries[t+"_range"]=i.slice(0,1),r.summaries[t+"_azimuth"]=i.slice(1,2),i.length>2&&(r.summaries[t+"_equivalent_number"]=i.slice(2,3))):"string"==typeof o[t]?r.summaries[o[t]]=i:c.includes(t)&&Array.isArray(i)&&1===i.length?r[t]=i[0]:r.summaries[t]=i}}if("string"!=typeof r.description&&(r.description=""),i.isObject(r.extent.spatial)||(r.extent.spatial={}),i.isObject(r.extent.temporal)||(r.extent.temporal={}),"string"!=typeof r.license&&(r.license="proprietary"),i.isObject(r.summaries)||(r.summaries={}),i.isObject(r["cube:dimensions"]))for(var l in r["cube:dimensions"])i.isObject(r["cube:dimensions"][l])&&!p.includes(r["cube:dimensions"][l].type)&&(r["cube:dimensions"][l].type="other");else r["cube:dimensions"]={};r.links=n.migrateLinks(r.links);var f=Array.isArray(r.stac_extensions)?r.stac_extensions:[];for(var u in r){let e=null,t=u.split(":",1);"deprecated"===u||"version"===u?e="version":"string"==typeof a[t]&&(e=a[t]),null===e||f.includes(e)||f.push(e)}return f.sort(),r.stac_extensions=f,r}}e.exports=l},function(e,t,r){const i=r(0),s=r(1),n=r(2);class a{static convertProcessesToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";return e=i.deepClone(e),Array.isArray(e.processes)?e.processes=e.processes.map(e=>a.convertProcessToLatestSpec(e,t)).filter(e=>"string"==typeof e.id):e.processes=[],e.links=n.migrateLinks(e.links,t),e}static convertProcessToLatestSpec(e,t){if(s.compare(t,"0.3.x","<="))throw"Migrating from API version 0.3.0 and older is not supported.";if("string"!=typeof(e=i.deepClone(e)).id||0===e.id.length)return{};if(s.compare(t,"0.4.x","=")){if(!Array.isArray(e.parameter_order)||0===e.parameter_order.length){e.parameter_order=[];for(let t in e.parameters)e.parameter_order.push(t)}let t=[];for(let r of e.parameter_order){let s={name:r};i.isObject(e.parameters[r])&&Object.assign(s,e.parameters[r]),s.required||(s.optional=!0),delete s.required,t.push(s)}delete e.parameter_order,e.parameters=t}if("string"!=typeof e.description&&(e.description=""),Array.isArray(e.parameters))for(var r=e.parameters.length-1;r>=0;r--){let s=e.parameters[r];i.isObject(s)?("string"!=typeof s.description&&(s.description=""),e.parameters[r]=o(s,t)):e.parameters.splice(r,1)}else e.parameters=[];return i.isObject(e.returns)||(e.returns={}),e.returns=o(e.returns,t,!1),Array.isArray(e.examples)&&(e.examples=e.examples.filter(e=>i.isObject(e)&&i.isObject(e.arguments))),void 0!==e.links&&(e.links=n.migrateLinks(e.links,t)),e}}function o(e,t,r=!0){var i={};if(e.schema&&"object"==typeof e.schema&&(i=e.schema),s.compare(t,"0.4.x","=")){for(let t of["anyOf","oneOf"])if(Array.isArray(i[t])){r&&void 0!==i.default&&(e.default=i.default),i=i[t];break}let n=s.compare(t,"0.4.x")<=0&&void 0!==e.media_type,a=Array.isArray(i)?i:[i];for(let t of a)t=c(t),r&&void 0!==t.default&&(e.default=t.default,delete t.default),n&&(t.contentMediaType=e.media_type);n&&delete e.media_type}return s.compare(t,"0.4.x",">")&&void 0!==e.default&&(e.optional=!0),e.schema=i,e}function c(e){if(i.isObject(e)&&void 0!==e.type&&"string"==typeof e.format){switch(e.format){case"url":e.format="uri";break;case"proj-definition":e.deprecated=!0;break;case"callback":if(e.format="process-graph",i.isObject(e.parameters)){let t=[];for(let r in e.parameters){let i=e.parameters[r],s={name:r,description:"string"==typeof i.description?i.description:"",schema:i};t.push(s)}e.parameters=t}}e.subtype=e.format,["date-time","time","date","uri"].includes(e.format)||delete e.format}for(let t in e)e[t]&&"object"==typeof e[t]&&(e[t]=c(e[t]));return e}e.exports=a},function(e,t,r){const i=r(0);class s{static normalizeJsonSchema(e,t=!1){e=i.isObject(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=i.omitFromObject(t,["oneOf","anyOf"]),s=t.oneOf||t.anyOf;for(let t of s)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(!i.isObject(e)||!e.schema)return[];let r,n=s.normalizeJsonSchema(e.schema);for(;r=t.shift();)n=n.map(e=>s.normalizeJsonSchema(s.getElementJsonSchema(e,r))),n=n.concat(...n);let a=[];for(let e of n)if(Array.isArray(e.parameters)){if(a.length>0&&!i.equals(a,e.parameters))throw new Error("Multiple schemas with different callback parameters found.");a=e.parameters}return a}static getCallbackParametersForProcess(e,t,r=[]){if(!i.isObject(e)||!Array.isArray(e.parameters))return[];let n=e.parameters.find(e=>e.name===t);return s.getCallbackParameters(n,r)}static getNativeTypesForJsonSchema(e,t=!1){if(i.isObject(e)&&Array.isArray(e.type)){let r=i.unique(e.type).filter(e=>s.JSON_SCHEMA_TYPES.includes(e));return r.length>0&&r.length<s.JSON_SCHEMA_TYPES.length?r:t?[]:s.JSON_SCHEMA_TYPES}return i.isObject(e)&&"string"==typeof e.type&&s.JSON_SCHEMA_TYPES.includes(e.type)?[e.type]:t?[]:s.JSON_SCHEMA_TYPES}static getElementJsonSchema(e,t=null){let r=s.getNativeTypesForJsonSchema(e);if(i.isObject(e)&&r.includes("array")&&"string"!=typeof t){if(i.isObject(e.items))return e.items;if(Array.isArray(e.items)){if(null!==t&&i.isObject(e.items[t]))return e.items[t];if(i.isObject(e.additionalItems))return e.additionalItems}}if(i.isObject(e)&&r.includes("object")){if(null!==t&&i.isObject(e.properties)&&i.isObject(e.properties[t]))return e.properties[t];if(i.isObject(e.additionalProperties))return e.additionalProperties}return{}}}s.JSON_SCHEMA_TYPES=["string","number","integer","boolean","array","object","null"],e.exports=s}])})); |
{ | ||
"name": "@openeo/js-commons", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"apiVersions": [ | ||
@@ -5,0 +5,0 @@ "0.4.x", |
@@ -5,3 +5,3 @@ # @openeo/js-commons | ||
The [master branch](https://github.com/Open-EO/openeo-api/tree/master) is the 'stable' version of library, which is currently version **1.1.1**. | ||
The [master branch](https://github.com/Open-EO/openeo-api/tree/master) is the 'stable' version of library, which is currently version **1.2.0**. | ||
The [draft branch](https://github.com/Open-EO/openeo-api/tree/draft) is where active development takes place. | ||
@@ -11,4 +11,4 @@ | ||
![Dependencies](https://img.shields.io/librariesio/release/npm/@openeo/js-commons) | ||
![Minified Size](https://img.shields.io/bundlephobia/min/@openeo/js-commons/1.1.1) | ||
![Minzipped Size](https://img.shields.io/bundlephobia/minzip/@openeo/js-commons/1.1.1) | ||
![Minified Size](https://img.shields.io/bundlephobia/min/@openeo/js-commons/1.2.0) | ||
![Minzipped Size](https://img.shields.io/bundlephobia/minzip/@openeo/js-commons/1.2.0) | ||
![Supported API Versions](https://img.shields.io/github/package-json/apiVersions/Open-Eo/openeo-js-commons/master) | ||
@@ -45,2 +45,2 @@ | ||
More information can be found in the [**JS commons documentation**](https://open-eo.github.io/openeo-js-commons/1.1.1/). | ||
More information can be found in the [**JS commons documentation**](https://open-eo.github.io/openeo-js-commons/1.2.0/). |
@@ -77,3 +77,3 @@ const Utils = require('./utils.js'); | ||
*/ | ||
static getCallbackParameters(processParameter) { | ||
static getCallbackParameters(processParameter, keyPath = []) { | ||
if (!Utils.isObject(processParameter) || !processParameter.schema) { | ||
@@ -84,3 +84,9 @@ return []; | ||
let schemas = ProcessUtils.normalizeJsonSchema(processParameter.schema); | ||
let key; | ||
while(key = keyPath.shift()) { // jshint ignore:line | ||
schemas = schemas.map(schema => ProcessUtils.normalizeJsonSchema(ProcessUtils.getElementJsonSchema(schema, key))); // jshint ignore:line | ||
schemas = schemas.concat(...schemas); | ||
} | ||
let cbParams = []; | ||
@@ -107,3 +113,3 @@ for(let schema of schemas) { | ||
*/ | ||
static getCallbackParametersForProcess(process, parameterName) { | ||
static getCallbackParametersForProcess(process, parameterName, path = []) { | ||
if (!Utils.isObject(process) || !Array.isArray(process.parameters)) { | ||
@@ -114,3 +120,3 @@ return []; | ||
let param = process.parameters.find(p => p.name === parameterName); | ||
return ProcessUtils.getCallbackParameters(param); | ||
return ProcessUtils.getCallbackParameters(param, path); | ||
} | ||
@@ -117,0 +123,0 @@ |
Sorry, the diff of this file is too big to display
160536
3214