@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 1.56 kB
JavaScript
;(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[926],{926(e,s,t){t.d(s,{Dd:()=>y,Jn:()=>m,Qc:()=>f,getApiKey:()=>u,getSessionToken:()=>p});var n=t(92602),a=t(11254),i=t(84952);const r=/^https?:\/\/(i?basemaps|basemapstyles)-api\.arcgis\.com\//i,o=new Set(["elevation3d.arcgis.com","js.arcgis.com","jsdev.arcgis.com","jsqa.arcgis.com","static.arcgis.com"]),c=new Map;let l=null;function u(e){if(!f(e))return null;const s=s=>s instanceof RegExp?s.test(e):"string"==typeof s&&e.startsWith(s),t=n.A.apiKeys;if(Array.isArray(t.scopes))for(const e of t.scopes)if(Array.isArray(e.urls)){if(e.urls.some(s))return e.token}else if(s(e.urls))return e.token;return t.basemapStyles&&r.test(e)?t.basemapStyles:n.A.apiKey&&/^https?:\/\/.+\.arcgis\.com(\/|$)/i.test(e)?n.A.apiKey:null}async function p(e){if(!n.A.sessions?.basemap?.enabled||!r.test(e))return null;const s=u(e);if(!s)return null;l&&await l;const{styleFamily:t="arcgis",autoRefresh:i,duration:o=43200}=n.A.sessions.basemap,p=`${s}:${t}`,y=c.get(p);if(y&&(!i||y.endTime>Date.now()))return y.sessionToken;let m;l=(0,a.A)("https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/sessions/start",{cacheBust:!0,query:{durationSeconds:o,styleFamily:t,token:s}});try{m=(await l).data,m.endTime-=5e3,c.set(p,m)}finally{l=null}return m.sessionToken}function y(){return null!=n.A.apiKey||null!=n.A.apiKeys.basemapStyles}function m(e,s){return s?f(e):null!=u(e)}function f(e){const s=(0,i.$z)(e,!0);return!!s&&!o.has(s)&&!e.endsWith("/sharing/rest/generateToken")}}}]);