chunk-DVUG3KID.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445
  1. import {
  2. s as s3
  3. } from "./chunk-FWSQEIAR.js";
  4. import {
  5. A,
  6. Bt,
  7. D,
  8. E,
  9. F,
  10. H,
  11. I,
  12. J,
  13. St,
  14. V,
  15. W,
  16. X,
  17. b,
  18. j as j2,
  19. mt,
  20. z
  21. } from "./chunk-VEGAOVMY.js";
  22. import {
  23. a,
  24. j,
  25. p,
  26. v
  27. } from "./chunk-V6P2MAQQ.js";
  28. import {
  29. s,
  30. s3 as s2
  31. } from "./chunk-E5O6P5I2.js";
  32. import {
  33. has,
  34. y
  35. } from "./chunk-SPWQ3AWG.js";
  36. import {
  37. e,
  38. r
  39. } from "./chunk-YXWMMD76.js";
  40. // node_modules/@arcgis/core/portal/support/urlUtils.js
  41. var e2 = /^https:\/\/([a-z\d-]+)(\.maps([^.]*))?\.arcgis\.com/i;
  42. var s4 = { devext: { customBaseUrl: "mapsdevext.arcgis.com", portalHostname: "devext.arcgis.com" }, qaext: { customBaseUrl: "mapsqa.arcgis.com", portalHostname: "qaext.arcgis.com" }, www: { customBaseUrl: "maps.arcgis.com", portalHostname: "www.arcgis.com" } };
  43. function a2(a4) {
  44. const t3 = a4 == null ? void 0 : a4.match(e2);
  45. if (!t3)
  46. return null;
  47. const [, r3, o, l] = t3;
  48. if (!r3)
  49. return null;
  50. let c2 = null, m2 = null, n = null;
  51. const { devext: u2, qaext: i, www: p2 } = s4;
  52. if (o)
  53. if (c2 = r3, l)
  54. switch (l.toLowerCase()) {
  55. case "devext":
  56. ({ customBaseUrl: m2, portalHostname: n } = u2);
  57. break;
  58. case "qa":
  59. ({ customBaseUrl: m2, portalHostname: n } = i);
  60. break;
  61. default:
  62. return null;
  63. }
  64. else
  65. ({ customBaseUrl: m2, portalHostname: n } = p2);
  66. else
  67. switch (r3.toLowerCase()) {
  68. case "devext":
  69. ({ customBaseUrl: m2, portalHostname: n } = u2);
  70. break;
  71. case "qaext":
  72. ({ customBaseUrl: m2, portalHostname: n } = i);
  73. break;
  74. case "www":
  75. ({ customBaseUrl: m2, portalHostname: n } = p2);
  76. break;
  77. default:
  78. return null;
  79. }
  80. return { customBaseUrl: m2, isPortal: false, portalHostname: n, urlKey: c2 };
  81. }
  82. function t(e3) {
  83. return /\/(sharing|usrsvcs)\/(appservices|servers)\//i.test(e3);
  84. }
  85. // node_modules/@arcgis/core/support/apiKeyUtils.js
  86. var t2 = ["elevation3d.arcgis.com", "js.arcgis.com", "jsdev.arcgis.com", "jsqa.arcgis.com", "static.arcgis.com"];
  87. function r2(c2) {
  88. const r3 = H(c2, true);
  89. return !!r3 && (r3.endsWith(".arcgis.com") && !t2.includes(r3) && !c2.endsWith("/sharing/rest/generateToken"));
  90. }
  91. // node_modules/@arcgis/core/support/requestUtils.js
  92. function c(r3, t3, n = false, s5) {
  93. return new Promise((i, c2) => {
  94. if (p(s5))
  95. return void c2(a3());
  96. let m2 = () => {
  97. f(), c2(new Error(`Unable to load ${t3}`));
  98. }, u2 = () => {
  99. const e3 = r3;
  100. f(), i(e3);
  101. }, d2 = () => {
  102. if (!r3)
  103. return;
  104. const e3 = r3;
  105. f(), e3.src = "", c2(a3());
  106. };
  107. const f = () => {
  108. has("esri-image-decode") || (r3.removeEventListener("error", m2), r3.removeEventListener("load", u2)), m2 = null, u2 = null, r3 = null, r(s5) && s5.removeEventListener("abort", d2), d2 = null, n && URL.revokeObjectURL(t3);
  109. };
  110. r(s5) && s5.addEventListener("abort", d2), has("esri-image-decode") ? r3.decode().then(u2, m2) : (r3.addEventListener("error", m2), r3.addEventListener("load", u2));
  111. });
  112. }
  113. function a3() {
  114. try {
  115. return new DOMException("Aborted", "AbortError");
  116. } catch {
  117. const r3 = new Error();
  118. return r3.name = "AbortError", r3;
  119. }
  120. }
  121. function m(e3) {
  122. var _a, _b, _c;
  123. s.request.crossOriginNoCorsDomains || (s.request.crossOriginNoCorsDomains = {});
  124. const o = s.request.crossOriginNoCorsDomains;
  125. for (let r3 of e3)
  126. r3 = r3.toLowerCase(), /^https?:\/\//.test(r3) ? o[(_a = H(r3)) != null ? _a : ""] = 0 : (o[(_b = H("http://" + r3)) != null ? _b : ""] = 0, o[(_c = H("https://" + r3)) != null ? _c : ""] = 0);
  127. }
  128. function u(e3) {
  129. const o = s.request.crossOriginNoCorsDomains;
  130. if (o) {
  131. let r3 = H(e3);
  132. if (r3)
  133. return r3 = r3.toLowerCase(), !z(r3, b()) && o[r3] < Date.now() - 36e5;
  134. }
  135. return false;
  136. }
  137. async function d(e3) {
  138. var _a;
  139. const o = s.request.crossOriginNoCorsDomains, n = H(e3);
  140. o && n && (o[n.toLowerCase()] = Date.now());
  141. const s5 = j2(e3);
  142. e3 = s5.path, "json" === ((_a = s5.query) == null ? void 0 : _a.f) && (e3 += "?f=json");
  143. try {
  144. await fetch(e3, { mode: "no-cors", credentials: "include" });
  145. } catch {
  146. }
  147. }
  148. // node_modules/@arcgis/core/request.js
  149. async function U(e3, r3) {
  150. var _a;
  151. const t3 = X(e3), s5 = V(e3);
  152. s5 || t3 || (e3 = F(e3));
  153. const n = { url: e3, requestOptions: { ...e(r3) } };
  154. let i = W(e3);
  155. if (i) {
  156. const e4 = await G(i, n);
  157. if (null != e4)
  158. return { data: e4, getHeader: M, requestOptions: n.requestOptions, url: n.url };
  159. i.after || i.error || (i = null);
  160. }
  161. if (e3 = n.url, "image" === (r3 = n.requestOptions).responseType) {
  162. if (has("host-webworker") || has("host-node"))
  163. throw N("request:invalid-parameters", new Error("responseType 'image' is not supported in Web Workers or Node environment"), n);
  164. } else if (t3)
  165. throw N("request:invalid-parameters", new Error("Data URLs are not supported for responseType = " + r3.responseType), n);
  166. if ("head" === r3.method) {
  167. if (r3.body)
  168. throw N("request:invalid-parameters", new Error("body parameter cannot be set when method is 'head'"), n);
  169. if (t3 || s5)
  170. throw N("request:invalid-parameters", new Error("data and blob URLs are not supported for method 'head'"), n);
  171. }
  172. if (await B(), j3)
  173. return j3.execute(e3, r3);
  174. const l = new AbortController();
  175. v(r3, () => l.abort());
  176. const m2 = { controller: l, credential: void 0, credentialToken: void 0, fetchOptions: void 0, hasToken: false, interceptor: i, params: n, redoRequest: false, useIdentity: P.useIdentity, useProxy: false, useSSL: false, withCredentials: false }, h = await Q(m2);
  177. return (_a = i == null ? void 0 : i.after) == null ? void 0 : _a.call(i, h), h;
  178. }
  179. var j3;
  180. var P = s.request;
  181. var D2 = "FormData" in globalThis;
  182. var _ = [499, 498, 403, 401];
  183. var F2 = ["COM_0056", "COM_0057", "SB_0008"];
  184. var I2 = [/\/arcgis\/tokens/i, /\/sharing(\/rest)?\/generatetoken/i, /\/rest\/info/i];
  185. var M = () => null;
  186. var R = Symbol();
  187. function A2(e3) {
  188. const r3 = H(e3);
  189. r3 && !U._corsServers.includes(r3) && U._corsServers.push(r3);
  190. }
  191. function H2(e3) {
  192. const r3 = H(e3);
  193. return !r3 || r3.endsWith(".arcgis.com") || U._corsServers.includes(r3) || D(r3);
  194. }
  195. function N(e3, r3, o, a4) {
  196. let l = "Error";
  197. const u2 = { url: o.url, requestOptions: o.requestOptions, getHeader: M, ssl: false };
  198. if (r3 instanceof s2)
  199. return r3.details ? (r3.details = y(r3.details), r3.details.url = o.url, r3.details.requestOptions = o.requestOptions) : r3.details = u2, r3;
  200. if (r3) {
  201. const e4 = a4 && ((e5) => a4.headers.get(e5)), t3 = a4 && a4.status, s5 = r3.message;
  202. s5 && (l = s5), e4 && (u2.getHeader = e4), u2.httpStatus = (null != r3.httpCode ? r3.httpCode : r3.code) || t3 || 0, u2.subCode = r3.subcode, u2.messageCode = r3.messageCode, "string" == typeof r3.details ? u2.messages = [r3.details] : u2.messages = r3.details, u2.raw = R in r3 ? r3[R] : r3;
  203. }
  204. return j(r3) ? a() : new s2(e3, l, u2);
  205. }
  206. async function B() {
  207. has("host-webworker") ? j3 || (j3 = await import("./request-57LWZI6T.js")) : U._abortableFetch || (U._abortableFetch = globalThis.fetch.bind(globalThis));
  208. }
  209. async function $() {
  210. s3 || await import("./IdentityManager-RSGL7L3S.js");
  211. }
  212. async function z2(t3) {
  213. var _a;
  214. const s5 = t3.params.url, o = t3.params.requestOptions, a4 = t3.controller.signal, n = o.body;
  215. let i = null, u2 = null;
  216. if (D2 && "HTMLFormElement" in globalThis && (n instanceof FormData ? i = n : n instanceof HTMLFormElement && (i = new FormData(n))), "string" == typeof n && (u2 = n), t3.fetchOptions = { cache: o.cacheBust && !U._abortableFetch.polyfill ? "no-cache" : "default", credentials: "same-origin", headers: o.headers || {}, method: "head" === o.method ? "HEAD" : "GET", mode: "cors", priority: P.priority, redirect: "follow", signal: a4 }, (i || u2) && (t3.fetchOptions.body = i || u2), "anonymous" === o.authMode && (t3.useIdentity = false), t3.hasToken = !!(/token=/i.test(s5) || ((_a = o.query) == null ? void 0 : _a.token) || (i == null ? void 0 : i.get("token"))), !t3.hasToken && s.apiKey && r2(s5) && (o.query || (o.query = {}), o.query.token = s.apiKey, t3.hasToken = true), t3.useIdentity && !t3.hasToken && !t3.credentialToken && !K(s5) && !p(a4)) {
  217. let e3;
  218. "immediate" === o.authMode ? (await $(), e3 = await s3.getCredential(s5, { signal: a4 }), t3.credential = e3) : "no-prompt" === o.authMode ? (await $(), e3 = await s3.getCredential(s5, { prompt: false, signal: a4 }).catch(() => {
  219. }), t3.credential = e3) : s3 && (e3 = s3.findCredential(s5)), e3 && (t3.credentialToken = e3.token, t3.useSSL = !!e3.ssl);
  220. }
  221. }
  222. function K(e3) {
  223. return I2.some((r3) => r3.test(e3));
  224. }
  225. async function W2(e3) {
  226. var _a, _b;
  227. let t3 = e3.params.url;
  228. const s5 = e3.params.requestOptions, o = (_a = e3.fetchOptions) != null ? _a : {}, a4 = V(t3) || X(t3), n = s5.responseType || "json", l = a4 ? 0 : null != s5.timeout ? s5.timeout : P.timeout;
  229. let d2 = false;
  230. if (!a4) {
  231. e3.useSSL && (t3 = mt(t3)), s5.cacheBust && "default" === o.cache && (t3 = St(t3, "request.preventCache", Date.now()));
  232. let a5 = { ...s5.query };
  233. e3.credentialToken && (a5.token = e3.credentialToken);
  234. let n2 = I(a5);
  235. has("esri-url-encodes-apostrophe") && (n2 = n2.replace(/'/g, "%27"));
  236. const i = t3.length + 1 + n2.length;
  237. let l2;
  238. d2 = "delete" === s5.method || "post" === s5.method || "put" === s5.method || !!s5.body || i > P.maxUrlLength;
  239. const u2 = s5.useProxy || !!J(t3);
  240. if (u2) {
  241. const e4 = A(t3);
  242. l2 = e4.path, !d2 && l2.length + 1 + i > P.maxUrlLength && (d2 = true), e4.query && (a5 = { ...e4.query, ...a5 });
  243. }
  244. if ("HEAD" === o.method && (d2 || u2)) {
  245. if (d2) {
  246. if (i > P.maxUrlLength)
  247. throw N("request:invalid-parameters", new Error("URL exceeds maximum length"), e3.params);
  248. throw N("request:invalid-parameters", new Error("cannot use POST request when method is 'head'"), e3.params);
  249. }
  250. if (u2)
  251. throw N("request:invalid-parameters", new Error("cannot use proxy when method is 'head'"), e3.params);
  252. }
  253. if (d2 ? (o.method = "delete" === s5.method ? "DELETE" : "put" === s5.method ? "PUT" : "POST", s5.body ? t3 = Bt(t3, a5) : (o.body = I(a5), o.headers || (o.headers = {}), o.headers["Content-Type"] = "application/x-www-form-urlencoded")) : t3 = Bt(t3, a5), u2 && (e3.useProxy = true, t3 = `${l2}?${t3}`), a5.token && D2 && o.body instanceof FormData && !t(t3) && o.body.set("token", a5.token), s5.hasOwnProperty("withCredentials"))
  254. e3.withCredentials = s5.withCredentials;
  255. else if (!z(t3, b())) {
  256. if (D(t3))
  257. e3.withCredentials = true;
  258. else if (s3) {
  259. const s6 = s3.findServerInfo(t3);
  260. s6 && s6.webTierAuth && (e3.withCredentials = true);
  261. }
  262. }
  263. e3.withCredentials && (o.credentials = "include", u(t3) && await d(d2 ? Bt(t3, a5) : t3));
  264. }
  265. let p2, v2, C = 0, L = false;
  266. l > 0 && (C = setTimeout(() => {
  267. L = true, e3.controller.abort();
  268. }, l));
  269. try {
  270. if ("native-request-init" === s5.responseType)
  271. v2 = o, v2.url = t3;
  272. else if ("image" !== s5.responseType || "default" !== o.cache || "GET" !== o.method || d2 || J2(s5.headers) || !a4 && !e3.useProxy && P.proxyUrl && !H2(t3)) {
  273. if (p2 = await U._abortableFetch(t3, o), e3.useProxy || A2(t3), "native" === s5.responseType)
  274. v2 = p2;
  275. else if ("HEAD" !== o.method)
  276. if (p2.ok) {
  277. switch (n) {
  278. case "array-buffer":
  279. v2 = await p2.arrayBuffer();
  280. break;
  281. case "blob":
  282. case "image":
  283. v2 = await p2.blob();
  284. break;
  285. default:
  286. v2 = await p2.text();
  287. }
  288. if (C && (clearTimeout(C), C = 0), "json" === n || "xml" === n || "document" === n)
  289. if (v2)
  290. switch (n) {
  291. case "json":
  292. v2 = JSON.parse(v2);
  293. break;
  294. case "xml":
  295. v2 = X2(v2, "application/xml");
  296. break;
  297. case "document":
  298. v2 = X2(v2, "text/html");
  299. }
  300. else
  301. v2 = null;
  302. if (v2) {
  303. if ("array-buffer" === n || "blob" === n) {
  304. const e4 = p2.headers.get("Content-Type");
  305. if (e4 && /application\/json|text\/plain/i.test(e4) && v2["blob" === n ? "size" : "byteLength"] <= 750)
  306. try {
  307. const e5 = await new Response(v2).json();
  308. e5.error && (v2 = e5);
  309. } catch {
  310. }
  311. }
  312. "image" === n && v2 instanceof Blob && (v2 = await Y(URL.createObjectURL(v2), e3, true));
  313. }
  314. } else
  315. v2 = await p2.text();
  316. } else
  317. v2 = await Y(t3, e3);
  318. } catch (j4) {
  319. if ("AbortError" === j4.name) {
  320. if (L)
  321. throw new Error("Timeout exceeded");
  322. throw a("Request canceled");
  323. }
  324. if (!(!p2 && j4 instanceof TypeError && P.proxyUrl) || s5.body || "delete" === s5.method || "head" === s5.method || "post" === s5.method || "put" === s5.method || e3.useProxy || H2(t3))
  325. throw j4;
  326. e3.redoRequest = true, E({ proxyUrl: P.proxyUrl, urlPrefix: (_b = H(t3)) != null ? _b : "" });
  327. } finally {
  328. C && clearTimeout(C);
  329. }
  330. return [p2, v2];
  331. }
  332. async function G(e3, r3) {
  333. if (null != e3.responseData)
  334. return e3.responseData;
  335. if (e3.headers && (r3.requestOptions.headers = { ...r3.requestOptions.headers, ...e3.headers }), e3.query && (r3.requestOptions.query = { ...r3.requestOptions.query, ...e3.query }), e3.before) {
  336. let o, a4;
  337. try {
  338. a4 = await e3.before(r3);
  339. } catch (s5) {
  340. o = N("request:interceptor", s5, r3);
  341. }
  342. if ((a4 instanceof Error || a4 instanceof s2) && (o = N("request:interceptor", a4, r3)), o)
  343. throw e3.error && e3.error(o), o;
  344. return a4;
  345. }
  346. }
  347. function J2(e3) {
  348. if (e3) {
  349. for (const r3 of Object.getOwnPropertyNames(e3))
  350. if (e3[r3])
  351. return true;
  352. }
  353. return false;
  354. }
  355. function X2(e3, r3) {
  356. let t3;
  357. try {
  358. t3 = new DOMParser().parseFromString(e3, r3);
  359. } catch {
  360. }
  361. if (!t3 || t3.getElementsByTagName("parsererror").length)
  362. throw new SyntaxError("XML Parse error");
  363. return t3;
  364. }
  365. async function Q(e3) {
  366. var _a;
  367. let t3, s5;
  368. await z2(e3);
  369. try {
  370. do {
  371. [t3, s5] = await W2(e3);
  372. } while (!await V2(e3, t3, s5));
  373. } catch (n) {
  374. const r3 = N("request:server", n, e3.params, t3);
  375. throw r3.details.ssl = e3.useSSL, e3.interceptor && e3.interceptor.error && e3.interceptor.error(r3), r3;
  376. }
  377. const o = e3.params.url;
  378. if (s5 && /\/sharing\/rest\/(accounts|portals)\/self/i.test(o)) {
  379. if (!e3.hasToken && !e3.credentialToken && ((_a = s5.user) == null ? void 0 : _a.username) && !D(o)) {
  380. const e4 = H(o, true);
  381. e4 && P.trustedServers.push(e4);
  382. }
  383. Array.isArray(s5.authorizedCrossOriginNoCorsDomains) && m(s5.authorizedCrossOriginNoCorsDomains);
  384. }
  385. const a4 = e3.credential;
  386. if (a4 && s3) {
  387. const e4 = s3.findServerInfo(a4.server);
  388. let t4 = e4 && e4.owningSystemUrl;
  389. if (t4) {
  390. t4 = t4.replace(/\/?$/, "/sharing");
  391. const e5 = s3.findCredential(t4, a4.userId);
  392. e5 && -1 === s3._getIdenticalSvcIdx(t4, e5) && e5.resources.unshift(t4);
  393. }
  394. }
  395. return { data: s5, getHeader: t3 ? (e4) => t3 == null ? void 0 : t3.headers.get(e4) : M, requestOptions: e3.params.requestOptions, ssl: e3.useSSL, url: e3.params.url };
  396. }
  397. async function V2(e3, t3, s5) {
  398. if (e3.redoRequest)
  399. return e3.redoRequest = false, false;
  400. const o = e3.params.requestOptions;
  401. if (!t3 || "native" === o.responseType || "native-request-init" === o.responseType)
  402. return true;
  403. let a4, n;
  404. if (!t3.ok)
  405. throw a4 = new Error(`Unable to load ${t3.url} status: ${t3.status}`), a4[R] = s5, a4;
  406. s5 && (s5.error ? a4 = s5.error : "error" === s5.status && Array.isArray(s5.messages) && (a4 = { ...s5 }, a4[R] = s5, a4.details = s5.messages));
  407. let i, l = null;
  408. a4 && (n = Number(a4.code), l = a4.hasOwnProperty("subcode") ? Number(a4.subcode) : null, i = a4.messageCode, i = i && i.toUpperCase());
  409. const u2 = o.authMode;
  410. if (403 === n && (4 === l || a4.message && a4.message.toLowerCase().includes("ssl") && !a4.message.toLowerCase().includes("permission"))) {
  411. if (!e3.useSSL)
  412. return e3.useSSL = true, false;
  413. } else if (!e3.hasToken && e3.useIdentity && ("no-prompt" !== u2 || 498 === n) && void 0 !== n && _.includes(n) && !K(e3.params.url) && (403 !== n || i && !F2.includes(i) && (null == l || 2 === l && e3.credentialToken))) {
  414. await $();
  415. try {
  416. const t4 = await s3.getCredential(e3.params.url, { error: N("request:server", a4, e3.params), prompt: "no-prompt" !== u2, signal: e3.controller.signal, token: e3.credentialToken });
  417. return e3.credential = t4, e3.credentialToken = t4.token, e3.useSSL = e3.useSSL || t4.ssl, false;
  418. } catch (c2) {
  419. if ("no-prompt" === u2)
  420. return e3.credential = void 0, e3.credentialToken = void 0, false;
  421. a4 = c2;
  422. }
  423. }
  424. if (a4)
  425. throw a4;
  426. return true;
  427. }
  428. function Y(e3, r3, t3 = false) {
  429. const s5 = r3.controller.signal, o = new Image();
  430. return r3.withCredentials ? o.crossOrigin = "use-credentials" : o.crossOrigin = "anonymous", o.alt = "", o.fetchPriority = P.priority, o.src = e3, c(o, e3, t3, s5);
  431. }
  432. U._abortableFetch = null, U._corsServers = ["https://server.arcgisonline.com", "https://services.arcgisonline.com"];
  433. export {
  434. a2 as a,
  435. t,
  436. r2 as r,
  437. c,
  438. U
  439. };
  440. //# sourceMappingURL=chunk-DVUG3KID.js.map