@magmacomputing/tempo-plugin-geo 1.4.0 → 1.4.1

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/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to the `@magmacomputing/tempo-plugin-geo` project will be do
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.4.1] - 2026-09-28
9
+
10
+ ### Fixed
11
+ - **Polymorphic Options in `Tempo.geo.resolve`**:
12
+ - Support single-argument options usage (e.g. `Tempo.geo.resolve({ reverse: true })`) when target coordinates are omitted.
13
+ - **Deterministic Return Schema**:
14
+ - Normalized cold IP geolocation responses through `assembleGeoConfig` to eliminate leaking provider transport metadata (`query`, `status`) and guarantee a consistent `GeoConfig` return shape across cold, cached, and reverse lookups.
15
+ - **Auto-Reverse on Stashed / Looked-up Coordinates**:
16
+ - Automatically triggers reverse geocoding when `{ reverse: true }` is specified on coordinates that lack locality (`city` / `country`) metadata.
17
+
8
18
  ## [1.4.0] - 2026-09-27
9
19
 
10
20
  ### Added
package/README.md CHANGED
@@ -30,7 +30,7 @@ Installing `GeoPlugin` mounts an immutable, locked-down **`Tempo.geo`** namespac
30
30
 
31
31
  ```typescript
32
32
  import { Tempo } from '@magmacomputing/tempo';
33
- import { GeoPlugin, OpenStreetMapProvider } from '@magmacomputing/tempo-plugin-geo';
33
+ import { GeoPlugin } from '@magmacomputing/tempo-plugin-geo';
34
34
 
35
35
  Tempo.use(GeoPlugin);
36
36
 
@@ -38,10 +38,9 @@ Tempo.use(GeoPlugin);
38
38
  const lookupResult = await Tempo.geo.lookup();
39
39
  console.log(lookupResult.lat, lookupResult.lng, lookupResult.city);
40
40
 
41
- // 2. Reverse Geocoding with Provider Gateway
42
- Tempo.geo.setProvider(new OpenStreetMapProvider());
41
+ // 2. Reverse Geocoding (Coordinates -> Address / City / Country)
43
42
  const address = await Tempo.geo.reverse({ lat: -33.8688, lng: 151.2093 });
44
- console.log(address.city, address.country);
43
+ console.log(address?.city, address?.country); // 'Sydney', 'AU'
45
44
 
46
45
  // 3. Inspect Current Ambient / Global Coordinates
47
46
  console.log(Tempo.geo.current); // { latitude: ..., longitude: ..., city: ... }
@@ -83,6 +82,18 @@ const t = new Tempo('2026-06-21', { geo: coords });
83
82
 
84
83
  ---
85
84
 
85
+ ## Which Method Should I Choose?
86
+
87
+ | Goal | Method to Use | Input | Output |
88
+ | :--- | :--- | :--- | :--- |
89
+ | **"Where is this machine / user right now?"** | `Tempo.geo.lookup()` | None / ambient options | `{ latitude, longitude, city, ... }` |
90
+ | **"Convert place name / address to coordinates"** | `Tempo.geo.forward("Paris")` | Address query string | `{ latitude, longitude, ... }` |
91
+ | **"Convert GPS coordinates to street / city / country"** | `Tempo.geo.reverse({ lat, lng })` | Coordinate object | `{ city, country, ... }` |
92
+ | **"Extract or safely normalize coordinates from any input"** | `Tempo.geo.resolve(input)` | Instance, config, or object | Canonical `{ latitude, longitude, ... }` |
93
+ | **"Localize a Tempo instance with timezone & cultural calendar"** | `await t.geoLocate()` | Existing `Tempo` instance | New enriched `Tempo` instance |
94
+
95
+ ---
96
+
86
97
  ## The `Tempo.geo` API Surface
87
98
 
88
99
  | Method / Property | Description |
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { geoLocation } from '@magmacomputing/library/browser/mapper.library.js';
7
7
  * Control and execution options filtered out when preserving caller-defined custom metadata.
8
8
  */
9
9
  export declare const NON_GEO_CONTROL_KEYS: readonly ["setTimezone", "setLocale", "refresh", "ttl", "endpoint", "timeout", "maxBytes", "highAccuracy", "catch", "debug", "geo", "provider", "fallback", "reverse", "autoReverse"];
10
- export { geoLookup, resolveGeoCoordinates, coerceGeo, getStashedGeo, stashGeo, clearStashedGeo, setGeoProvider, getGeoProvider, reverseGeocode, forwardGeocode, GEO_PROPERTIES, resolveCulturalLocale, serverGeoLocation, serverGeoCoords, serverMapHemisphere, geoLocation, };
10
+ export { geoLookup, resolveGeoCoordinates, coerceGeo, getStashedGeo, stashGeo, clearStashedGeo, setGeoProvider, getGeoProvider, reverseGeocode, forwardGeocode, resolveCulturalLocale, serverGeoLocation, serverGeoCoords, serverMapHemisphere, geoLocation, GEO_PROPERTIES, };
11
11
  export type { GeoLookupResult, ResolvedCoordinates, GeoConfig, CoordinateInput, GeoProvider, LocaleSyncMode, ServerMapOpts, ServerGeolocationResult, };
12
12
  /**
13
13
  * Cohesive static namespace for geolocation operations on Tempo.
@@ -1 +1 @@
1
- "use strict";var Magma;((Magma||={}).plugins||={}).geo=(()=>{var dn=Object.create;var He=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var yn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var v=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var cr=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},he=(e,t)=>{for(var r in t)He(e,r,{get:t[r],enumerable:!0})},je=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of gn(t))!hn.call(e,o)&&o!==r&&He(e,o,{get:()=>t[o],enumerable:!(n=mn(t,o))||n.enumerable});return e},ve=(e,t,r)=>(je(e,t,"default"),r&&je(r,t,"default")),yt=(e,t,r)=>(r=e!=null?dn(yn(e)):{},je(t||!e||!e.__esModule?He(r,"default",{value:e,enumerable:!0}):r,e)),wn=e=>je(He({},"__esModule",{value:!0}),e);var ht=cr((Io,lr)=>{"use strict";lr.exports=window.Magma.pluginSdk});var Sn,xn,Tn,En,On,_n,vn,Pn,ur,Nn,fr,b,H=v(()=>{"use strict";Sn=Symbol.for("$LibraryTarget"),xn=Symbol.for("$LibraryDiscover"),Tn=Symbol.for("$LibraryExtensible"),En=Symbol.for("nodejs.util.inspect.custom"),On=Symbol.for("$LibraryLogConfig"),_n=Symbol.for("$LibraryRegistry"),vn=Symbol.for("$LibraryRegister"),Pn=Symbol.for("$LibrarySerializerRegistry"),ur=Symbol.for("$LibraryMutable"),Nn=Symbol.for("$LibraryIdentity"),fr=Symbol.for("$LibraryUnwrapped"),b={$Target:Sn,$Discover:xn,$Extensible:Tn,$Inspect:En,$LogConfig:On,$Registry:_n,$Register:vn,$SerializerRegistry:Pn,$Identity:Nn,$Mutable:ur,$Unwrapped:fr}});function we(e){let t=e,r=0,n=50;for(;t;){let o=t[b.$Target];if(!o||r>=n)break;t=o,r++}return t}function C(e,t=!1){if(!e||typeof e!="object")return[];let r=we(e);if(!t){let l=Reflect.ownKeys(r),m=[];for(let f of l){let h=Object.getOwnPropertyDescriptor(r,f);h&&h.enumerable&&m.push([f,r[f]])}return m}let n=[],o=50,s=0,i=r;for(;i&&i!==Object.prototype&&s++<o;)n.push(we(i)),i=Object.getPrototypeOf(i);let a=[],c=new Set;for(let l of n.reverse()){let m=Reflect.ownKeys(l);for(let f of m){if(c.has(f))continue;let h=Object.getOwnPropertyDescriptor(l,f);!h||!h.enumerable||(c.add(f),a.push([f,r[f]]))}}return a}function qe(e,t=!1){return C(e,t).map(([r])=>r)}function pr(e,t=!1){return C(e,t).map(([r,n])=>n)}function Ve(e,t,r){return t?Ve(e.map(t,r)):Array.from(new Set(e))}var Y=v(()=>{"use strict";H()});var bt,St,Xe,pe,ee,In,Rn,Qe,K=v(()=>{"use strict";H();Y();bt=[],St=e=>{if(e===null)return"Null";if(e===void 0)return"Undefined";let t=typeof e;if(t==="string")return"String";if(t==="number")return"Number";if(t==="boolean")return"Boolean";if(t==="bigint")return"BigInt";if(t==="symbol")return"Symbol";try{let r=t==="object"?we(e):e;return Object.prototype.toString.call(r).slice(8,-1)}catch{return t==="function"?"Function":"Object"}},Xe=e=>{try{let t=e?.[Symbol.toStringTag]??e?.prototype?.[Symbol.toStringTag];if(typeof t=="string")return t}catch{}},pe=(e,...t)=>{let r=e;try{r=e?.[b.$Target]??e}catch{r=e}let n=St(r);switch(n){case"Function":try{return Rn(r)?"Class":"Function"}catch{return"Function"}case"Object":{try{if("length"in r&&Object.keys(r).every(s=>s==="length"||Number.isFinite(Number(s))))return"ArrayLike";for(let s of t){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}let o=globalThis[b.$Registry]??[];for(let s of[...bt,...o]){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}}catch{return"Object"}return"Object"}default:return n}},ee=(e,...t)=>({type:pe(e,...t),value:e}),In=/^\s*(class\s|\[native code\])/,Rn=e=>{if(typeof e!="function")return!1;let t=e?.[b.$Target]??e;if(!("prototype"in t))return!1;let r=t?.name,n=Xe(t);if(t?.[b.$Identity]||t?.prototype?.[b.$Identity]||typeof n=="string"&&n.startsWith("Temporal."))return!0;if(typeof n=="string"&&n.endsWith("Function"))return!1;if((globalThis[b.$Registry]??[]).some(s=>(s.class?.[b.$Target]??s.class)===t||r&&s.type===r||n&&s.type===n))return!0;try{let s=Function.prototype.toString.call(t);if(In.test(s))return!0;let i=Object.getOwnPropertyDescriptor(t,"prototype");if(i&&i.writable===!1&&!Object.isFrozen(t))return!0;let a=t.prototype;if(a&&Object.getOwnPropertyNames(a).length>2)return!0}catch{return!1}return!1},Qe=(e,t)=>{if(typeof e!="function")return;let r=Xe(e),n=t??r??e.name;n&&!["Object","Function",""].includes(n)&&(bt.some(o=>o.class===e)||bt.push({class:e,type:n}))}});function et(e){switch(typeof e){case"number":return Number.isFinite(e);case"bigint":return!0;case"string":{let r=e.trim();return r.length===0?!1:Dn.test(r)||y(Number(r))}default:return!1}}var U,te,z,dr,d,F,y,Dn,xt,mr,de,gr,S,Tt,yr,re,Et,B,P,q,x,w,$,Pe,Ne,tt,Ie,O,N=v(()=>{"use strict";H();K();U=(e,...t)=>t.includes(pe(e)),te=e=>e===null||typeof e!="object"&&typeof e!="function",z=e=>!te(e),dr=e=>Symbol.iterator in Object(e)&&!d(e),d=e=>typeof e=="string",F=e=>typeof e=="string"&&e.trim().length>0,y=e=>Number.isFinite(e),Dn=/^[+-]?[0-9]+n$/;xt=e=>typeof e=="bigint",mr=e=>typeof e=="boolean",de=e=>Array.isArray(e),gr=e=>St(e)==="Object"&&"length"in e&&Object.keys(e).every(t=>t==="length"||y(Number(t))),S=e=>U(e,"Object"),Tt=e=>U(e,"Date"),yr=e=>U(e,"RegExp"),re=e=>typeof e=="symbol",Et=e=>typeof e=="symbol"&&Symbol.keyFor(e)!==void 0,B=e=>e!=="__proto__"&&e!=="constructor"&&e!=="prototype",P=e=>e==null||U(e,"Void","Empty"),q=e=>e===void 0||U(e,"Void","Empty"),x=e=>e!=null&&!P(e),w=e=>U(e,"Function","AsyncFunction","GeneratorFunction","AsyncGeneratorFunction"),$=e=>typeof e=="function",Pe=e=>U(e,"Map"),Ne=e=>U(e,"Set"),tt=(e,t)=>U(e,"Error")&&(t?e instanceof t:!0),Ie=e=>typeof Intl<"u"&&typeof Intl.Locale=="function"&&e instanceof Intl.Locale,O=e=>P(e)||S(e)&&Reflect.ownKeys(e).length===0||d(e)&&e.trim().length===0||typeof e=="number"&&Number.isNaN(e)||de(e)&&e.length===0||Ne(e)&&e.size===0||Pe(e)&&e.size===0||ArrayBuffer.isView(e)&&e.byteLength===0||Tt(e)&&Number.isNaN(e.getTime())});function Ot(e,t,r=new WeakSet){let n=t instanceof WeakSet?t:t?.skip??$n;return te(e)||r.has(e)||n.has(e)||e instanceof Date||e instanceof RegExp||e instanceof Error||e instanceof Map||e instanceof Set||e instanceof Promise||e?.[Symbol.toStringTag]==="Enumify"||e[b.$Extensible]?e:(r.add(e),C(e).forEach(([o,s])=>{B(o)&&Ot(s,{skip:n},r)}),Object.freeze(e))}var E,be,$n,Re=v(()=>{"use strict";Y();N();H();E={Unknown:"unknown",Browser:"browser",WebWorker:"web-worker",NodeJS:"nodejs",Deno:"deno",GoogleAppsScript:"google-apps-script"},be=()=>{let e=globalThis;try{if(x(e.SpreadsheetApp))return{global:e,type:E.GoogleAppsScript};if(x(e.window?.document))return{global:e,type:E.Browser};if(w(e.importScripts)||x(e.WorkerGlobalScope)&&e instanceof e.WorkerGlobalScope)return{global:e,type:E.WebWorker};if(x(e.Deno))return{global:e,type:E.Deno};if(x(e.process?.versions?.node)&&e.process?.release?.name==="node")return{global:e,type:E.NodeJS}}catch{}return{global:e,type:E.Unknown}},$n=new WeakSet});function hr(e){return Object.fromEntries(C(e,!0))}var wr=v(()=>{"use strict";Y();K();N()});function Sr(e,t={},r=!1){let{frozen:n,lock:o,appendOnly:s,onGet:i,keys:a,bind:c,skip:l}=t,m=new Set,f,h,p=we(e);o&&Ot(p,l?{skip:l}:void 0),Qe(p);let R={isExtensible:g=>Reflect.isExtensible(g),getPrototypeOf:g=>Reflect.getPrototypeOf(g),setPrototypeOf:(g,u)=>{if(n)throw new TypeError("Security: Prototype mutation attempt on protected object");return Reflect.setPrototypeOf(g,u)},getOwnPropertyDescriptor:(g,u)=>{if(!(a&&!a.includes(u))){if(a){if(i&&!re(u)&&!m.has(u)){m.add(u);try{let T=i(u,g);if(x(T))return{enumerable:!0,configurable:!0,value:T}}finally{m.delete(u)}}return{enumerable:!0,configurable:!0}}return Reflect.getOwnPropertyDescriptor(g,u)}},ownKeys:g=>{if(a)return a;if(i&&!m.has(b.$Discover)){m.add(b.$Discover);try{i(b.$Discover,g)}finally{m.delete(b.$Discover)}}return Reflect.ownKeys(g)},has:(g,u)=>a?a.includes(u):Reflect.has(g,u),deleteProperty:(g,u)=>{if(n)throw new TypeError(`Cannot delete property '${String(u)}' from a protected object.`);if(s&&Reflect.has(g,u))throw new Error(`Security: Deletion attempt on protected key '${String(u)}'`);return Reflect.deleteProperty(g,u)},defineProperty:(g,u,T)=>{if(n&&!Object.isFrozen(g))throw new TypeError(`Cannot define property '${String(u)}' on a frozen object.`);if(s&&Reflect.has(g,u))throw new Error(`Security: Mutation attempt on protected key '${String(u)}'`);return Reflect.defineProperty(g,u,T)},set:(g,u,T,D)=>{if(n&&D===h)throw new TypeError(`Cannot set property '${String(u)}' on a frozen object.`);if(s){if(Array.isArray(g)&&u==="length"&&T<g.length)throw new Error("Security: Truncation attempt on protected array.");if(!(Array.isArray(g)&&u==="length")&&Reflect.has(g,u))throw new Error(`Security: Mutation attempt on protected key '${String(u)}'`)}return Reflect.set(g,u,T,D)},get:(g,u,T)=>{if(u===b.$Target)return T===h?g:void 0;if(n&&(u===b.$Inspect||u==="toJSON")){let _=Object.getOwnPropertyDescriptor(g,u);return _&&w(_.value)?_.value:(f||(f=()=>hr(g)),f)}if(a&&!a.includes(u))return;if(i&&!re(u)&&!Reflect.has(g,u)&&!m.has(u)){m.add(u);try{let _=i(u,g);if(x(_))return _}finally{m.delete(u)}}let D=Reflect.get(g,u,T);if(c&&u!=="constructor"&&w(D)){let _=Object.getOwnPropertyDescriptor(g,u);if(_&&!_.configurable&&!_.writable)return D;let j=br.get(D);j||(j=new WeakMap,br.set(D,j));let fe=j.get(g);if(fe)return fe;let ar=D.bind(g);return j.set(g,ar),ar}return D}};if(r){let g=Proxy.revocable(p,R);return h=g.proxy,{proxy:g.proxy,revoke:g.revoke}}return h=new Proxy(p,R),h}function xr(e,t=!0,r=t,n=new WeakSet){return Sr(e,{frozen:t,lock:r,skip:n,bind:t})}function De(e,t=new WeakSet){return Sr(e,{frozen:!0,lock:!0,skip:t,bind:!0})}var br,rt=v(()=>{"use strict";H();wr();Re();Y();N();K();br=new WeakMap});function $e(e,t=new WeakSet){return JSON.stringify(e,function(r,n){if(n===void 0)return"\0__undefined__\0";if(xt(n))return`\0__bigint:${n}__\0`;if(w(n))return`function:${n.name||"anonymous"}`;if(z(n)){if(t.has(n))return"<Circular>";if(t.add(n),Ie(n))return n.toString();if(Pe(n))return`map:[${Array.from(n.entries()).map(o=>$e(o,t)).sort().join(",")}]`;if(Ne(n))return`set:[${Array.from(n).map(o=>$e(o,t)).sort().join(",")}]`}return n})}function Er(e){return function t(...r){return r.length>=e.length?e(...r):(...n)=>t(...r,...n)}}function A(e){let t=new Map;return function(...r){let n=$e(this!==void 0&&this!==globalThis?[this,...r]:r);if(!t.has(n)){let o=e.apply(this,r);t.set(n,o)}return t.get(n)}}function Ce(e,t){return{enumerable:!1,configurable:!1,writable:!1,value:function(...r){let n=`${String(e)},${$e(r)}`,o=Tr.get(this);if(o||(o=new Map,Tr.set(this,o)),!o.has(n)){let s=t.apply(this,r);De(s),o.set(n,s)}return o.get(n)}}}var Tr,nt=v(()=>{"use strict";rt();N();Tr=new WeakMap});function Or(e){try{return JSON.parse(JSON.stringify(e))}catch(t){throw console.warn("Could not clean object:",t?.message??t),t}}var _r=v(()=>{"use strict";N()});function oe(e){return x(e)?w(e)?e():e:t=>w(t)?t():t}var An,ne,_t=v(()=>{"use strict";Y();N();K();An=e=>{let t=new Set,r=e,n=0;for(;r&&r!==Object.prototype&&n++<10;){let o=Object.getOwnPropertyDescriptors(r);for(let[s,i]of Object.entries(o))B(s)&&(i.enumerable||w(i.get))&&t.add(s);r=Object.getPrototypeOf(r)}return Array.from(t)},ne=e=>{if(te(e)||w(e))return e;if(de(e))return e.map(r=>ne(r));if(Tt(e)||yr(e)||Pe(e)||Ne(e))return e;try{if(w(e.toJSON))return ne(e.toJSON())}catch{}let t={};for(let r of An(e))try{t[r]=ne(e[r])}catch{}return t};oe.stringSymbol=oe();oe.symbolRegExp=oe();oe.symbolString=oe();oe.stringString=oe()});function Ir(e,t){try{return globalThis.structuredClone(e,t)}catch{return Or(e)}}function Ln(e,t){return zn(t)}function Pr(e){let t=encodeURI(e);return t.includes("%")&&(t=t.replace(Mn,r=>Rr[r.toUpperCase()]??decodeURI(r))),t}function zn(e){if(d(e))try{return decodeURI(e)}catch{}return e}function Ae(e){return!U(e,"Function","AsyncFunction","WeakMap","WeakSet","WeakRef")}function Fn(e,t){return`{"$${e}":${t}}`}function Gn(e){return G(re(e)?`${Et(e)?"@":""}@(${e.description??""})`:e)}function vt(e){let[t,r,n]=e.toString().match(kn)||[null,void 0,void 0];switch(!0){case re(e):case P(t):case(x(r)&&q(n)):return e;case x(r):return Symbol.for(n);case q(r):default:return Symbol(n)}}function Z(e,t){let r=me;me=t?.compact!==!1;try{let n=G(e,!1);if(t?.signed){if(!d(t.secret)||!t.secret)throw new TypeError("stringify: signed serialization requires an explicit secret string");return`$sig:${Dr(n,t.secret)}:${n}`}return n}finally{me=r}}function G(e,t=!0){let r=ee(e),n=Er(Fn)(r.type);switch(r.type){case"String":{let o=r.value;return o.startsWith("~")&&(o=`~${o}`),t||(t=o==="true"||o==="false"||o==="null"||parseFloat(o).toString()===o||o.startsWith("~")),t?JSON.stringify(Pr(o)):Pr(o)}case"Boolean":case"Null":case"Number":return JSON.stringify(r.value);case"Void":case"Undefined":return me?JSON.stringify("~u"):n(JSON.stringify("void"));case"BigInt":return me?JSON.stringify(`~n${r.value.toString()}`):n(r.value.toString());case"Date":return me?JSON.stringify(`~t${r.value.getTime()}`):n(G(r.value.toJSON()));case"Object":return`{${C(r.value).filter(([,s])=>Ae(s)).map(([s,i])=>`${Gn(s)}: ${G(i)}`).join(",")}}`;case"Array":return`[${r.value.filter(s=>Ae(s)).map(s=>G(s)).join(",")}]`;case"Map":{let o=Array.from(r.value.entries()).filter(([,s])=>Ae(s)).map(([s,i])=>`[${G(s)}, ${G(i)}]`).join(",");return n(`[${o}]`)}case"Set":{let o=Array.from(r.value.values()).filter(s=>Ae(s)).map(s=>G(s)).join(",");return n(`[${o}]`)}case"Symbol":{let o=`${Et(r.value)?"@":""}@(${r.value.description??""})`;return me?JSON.stringify(`~y${o}`):n(JSON.stringify(o))}case"RegExp":return n(G({source:r.value.source,flags:r.value.flags}));default:{let o=r.value;switch(!0){case!Ae(o):return;case w(o.toJSON):return n(G(o.toJSON()));case(w(o.toString)&&o.toString!==Object.prototype.toString):{let s=o.toString();return n(s.includes('"')?s:JSON.stringify(s))}case(w(o.valueOf)&&o.valueOf!==Object.prototype.valueOf):return n(JSON.stringify(o.valueOf()));default:{let s=ne(o);return z(s)&&Object.keys(s).length>0?G(s):n(JSON.stringify(o,(i,a)=>O(i)?a:G(a)))}}}}}function ge(e,t){if(!d(e))return e;let r=w(t)?{sentinel:t}:t??{};if(e.startsWith("$sig:")){let o=e.indexOf(":",5);if(o!==-1){let s=e.substring(5,o),i=e.substring(o+1);if(!d(r.secret)||!r.secret){if(console.warn("objectify: signature verification requires an explicit secret string"),r.throwOnError)throw new TypeError("objectify: signature verification requires an explicit secret string");return e}let a=Dr(i,r.secret);if(!Un(s,a)){if(console.warn("objectify: signature verification failed"),r.throwOnError)throw new Error("objectify: signature verification failed");return e}e=i}else if(r.requireSigned){if(console.warn("objectify: malformed signed payload"),r.throwOnError)throw new Error("objectify: malformed signed payload");return e}}else if(r.requireSigned){if(console.warn("objectify: unsigned string rejected by requireSigned policy"),r.throwOnError)throw new Error("objectify: unsigned string rejected by requireSigned policy");return e}let n;try{n=JSON.parse(e,Ln)}catch(o){return e.startsWith('"')&&e.endsWith('"')?(console.warn(`objectify.parse: -> ${e}, ${o.message}`),e):ge(`"${e}"`,r.requireSigned?{...r,requireSigned:!1}:r)}switch(!0){case(e.startsWith("{")&&e.endsWith("}")):case(e.startsWith("[")&&e.endsWith("]")):return Pt(n,r,0);default:return Le(n,r)}}function Pt(e,t,r=0){let n=t.maxDepth??Bn;return r>=n?e:S(e)?Le(C(e).filter(([o])=>B(o)).reduce((o,[s,i])=>Object.assign(o,{[vt(s)]:Le(Pt(i,t,r+1),t)}),{}),t):de(e)?pr(e).map(o=>Le(Pt(o,t,r+1),t)):Le(e,t)}function Le(e,t){if(d(e)&&e.startsWith("~"))try{if(e.startsWith("~~"))return e.substring(1);if(e.startsWith("~n"))return BigInt(e.substring(2));if(e.startsWith("~t")){let s=e.substring(2),i=new Date(et(s)?Number(s):s);return isNaN(i.getTime())?e:i}if(e==="~u")return t.sentinel?.();if(e.startsWith("~y"))return vt(e.substring(2))}catch{return e}if(!S(e)||qe(e).length!==1)return e;let[r,n]=C(e)[0];if(!String(r).startsWith("$"))return e;let o=r.substring(1);try{switch(o){case"String":case"Boolean":case"Object":case"Array":return n;case"Number":return Number(n);case"BigInt":return BigInt(n);case"Null":return null;case"Undefined":case"Empty":case"Void":return t.sentinel?.();case"Date":return new Date(n);case"RegExp":return t.allowRegExp===!1||!S(n)||!d(n.source)||n.source.length>Jn?e:new RegExp(n.source,n.flags);case"Symbol":return vt(n);case"Map":return de(n)?new Map(n):e;case"Set":return de(n)?new Set(n):e;default:{if(t.allowClasses===!1||t.allowedClasses&&!(t.allowedClasses instanceof Set?t.allowedClasses.has(r)||t.allowedClasses.has(o):t.allowedClasses.includes(r)||t.allowedClasses.includes(o)))return e;let s=ot.get(r);return s?Reflect.construct(s,[n]):(console.warn(`objectify: dont know how to deserialize '${o}'`),e)}}}catch{return e}}var ot,vr,Nr,Rr,Mn,kn,Wn,Dr,Un,me,Bn,Jn,Se=v(()=>{"use strict";nt();Y();_r();_t();K();N();H();ot=globalThis[b.$SerializerRegistry]??=new Map,vr=e=>{try{let t=e?.prototype?.[Symbol.toStringTag]??e?.[Symbol.toStringTag];return d(t)?t:void 0}catch{return}},Nr=(e,t)=>{let r=e.startsWith("$")?e:`$${e}`;if(ot.has(r)){let n=ot.get(r),o=vr(n),s=vr(t),i=n.name||o,a=t.name||s||(e.startsWith("$")?e.slice(1):e);if(n===t||n.toString()===t.toString()||!!t[b.$Identity]&&n[b.$Identity]===t[b.$Identity]||!!t[b.$Target]&&n[b.$Target]===t[b.$Target]||!!i&&!!a&&i===a)return;throw new Error(`[registerSerializable] Collision: '${r}' is already registered with ${n.name||"anonymous constructor"}`)}ot.set(r,t)};Rr={"%20":" ","%22":'"',"%3B":";","%3C":"<","%3E":">","%5B":"[","%5D":"]","%5E":"^","%7B":"{","%7C":"|","%7D":"}"},Mn=new RegExp(Object.keys(Rr).join("|"),"gi");kn=/^@(@)?\(([^\)]*)\)$/;Wn=globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID().split("-")[0]:Math.random().toString(36).slice(2,10),Dr=(e,t=Wn)=>{let r=2166136261,n=2654435769,o=`${t}:${e}`;for(let s=0;s<o.length;s++){let i=o.charCodeAt(s);r=Math.imul(r^i,16777619),n=Math.imul(n^i,2246822507)}return(r>>>0).toString(16).padStart(8,"0")+(n>>>0).toString(16).padStart(8,"0")},Un=(e,t)=>{if(!d(e)||!d(t)||e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e.charCodeAt(n)^t.charCodeAt(n);return r===0},me=!0;Bn=64,Jn=512});function ie(e,t,r,n,o,s){function i(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var a=n.kind,c=a==="getter"?"get":a==="setter"?"set":"value",l=!t&&e?n.static?e:e.prototype:null,m=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),f,h=!1,p=r.length-1;p>=0;p--){var R={};for(var g in n)R[g]=g==="access"?{}:n[g];for(var g in n.access)R.access[g]=n.access[g];R.addInitializer=function(T){if(h)throw new TypeError("Cannot add initializers after decoration has completed");s.push(i(T||null))};var u=(0,r[p])(a==="accessor"?{get:m.get,set:m.set}:m[c],R);if(a==="accessor"){if(u===void 0)continue;if(u===null||typeof u!="object")throw new TypeError("Object expected");(f=i(u.get))&&(m.get=f),(f=i(u.set))&&(m.set=f),(f=i(u.init))&&o.unshift(f)}else(f=i(u))&&(a==="field"?o.unshift(f):m[c]=f)}l&&Object.defineProperty(l,n.name,m),h=!0}function se(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0}var Me=v(()=>{"use strict"});function $r(e,t){return Xe(e)??(q(t)?e.name||void 0:String(t))}function Cr(e,{kind:t,name:r,addInitializer:n}){let o=$r(e,r);if(o&&Qe(e,o),t==="class")return o&&n(()=>Nr(o,e)),e;throw new Error(`@Serializable decorating unknown 'kind': ${t} (${r})`)}function ae(e,t){let r=(n,o,s)=>{let i=n.prototype,a=o??$r(n,s);if(a&&(i&&!Object.hasOwn(i,Symbol.toStringTag)&&Object.defineProperty(i,Symbol.toStringTag,{value:a,configurable:!0,writable:!1,enumerable:!1}),!n.name||n.name!==a))try{Object.defineProperty(n,"name",{value:a,configurable:!0,writable:!1,enumerable:!1})}catch{}return n};return $(e)&&t?.kind==="class"?r(e,void 0,t.name):(n,o)=>r(n,d(e)?e:void 0,o?.name)}var ze=v(()=>{"use strict";H();rt();N();Se();K()});var Fe,Nt=v(()=>{"use strict";Me();N();ze();Fe=(()=>{let e=[ae("BoundedCache")],t,r=[],n,o=Map;var s=class extends o{static{n=this}static{let i=typeof Symbol=="function"&&Symbol.metadata?Object.create(o[Symbol.metadata]??null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:i},null,r),s=n=t.value,i&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),se(n,r)}#t=new Map;#e=new Set;#r=new Map;maxSize;ttl;constructor(i=1e3,a=1440*60*1e3){super(),this.maxSize=i,this.ttl=a}get isBoundedCache(){return!0}#n(i){let a=this.#t.get(i);return a===void 0?!1:Date.now()>a}evictExpired(){if(this.#t.size===0)return;let i=Date.now();for(let[a,c]of this.#t.entries())i>c&&this.delete(a)}setStatic(i,a){return super.has(i)&&super.delete(i),super.set(i,a),this.#e.add(i),this.#t.delete(i),this.#r.delete(i),this}isStatic(i){return this.#e.has(i)}get(i){if(this.#n(i)){this.delete(i);return}if(!super.has(i))return;let a=super.get(i);return super.delete(i),super.set(i,a),a}has(i){return this.#n(i)?(this.delete(i),!1):super.has(i)}get size(){return this.evictExpired(),super.size}forEach(i,a){this.evictExpired(),super.forEach(i,a)}set(i,a,c){this.evictExpired();let l=this.#t.get(i);for(super.has(i)&&super.delete(i),super.set(i,a),this.#e.delete(i),x(c)?c!==1/0?(this.#t.set(i,Date.now()+c),this.#r.set(i,c)):(this.#t.delete(i),this.#r.delete(i)):l!==void 0?this.#t.set(i,l):this.ttl!==1/0?(this.#t.set(i,Date.now()+this.ttl),this.#r.delete(i)):(this.#t.delete(i),this.#r.delete(i));this.size-this.#e.size>this.maxSize;){let m=!1,f=super.keys(),h=f.next();for(;!h.done;){let p=h.value;if(!this.#e.has(p)){this.delete(p),m=!0;break}h=f.next()}if(!m)break}return this}delete(i){return this.#e.delete(i),this.#t.delete(i),this.#r.delete(i),super.delete(i)}deletePrefix(i){let a=String(i).trim().toLowerCase();if(O(a))return 0;let c=[];for(let l of super.keys())d(l)&&l.toLowerCase().startsWith(a)&&c.push(l);for(let l of c)this.delete(l);return c.length}clear(i){if(i===void 0){this.#e.clear(),this.#t.clear(),this.#r.clear(),super.clear();return}let a=0;for(let c of super.keys()){if(a>=i)break;this.#e.has(c)||(this.delete(c),a++)}}keys(){return this.evictExpired(),super.keys()}values(){return this.evictExpired(),super.values()}entries(){return this.evictExpired(),super.entries()}[Symbol.iterator](){return this.evictExpired(),super[Symbol.iterator]()}toJSON(){this.evictExpired();let i=[];for(let[a,c]of super.entries())d(a)&&i.push([a,c]);return Object.fromEntries(i)}static fromEntries(i,a=1e3,c=1440*60*1e3){let l=new s(a,c);for(let[m,f]of i)l.set(m,f);return l}};return s=n})()});function Mr(e,t){let r;if(q(e))return t??{};switch(k.type){case E.Browser:r=It.getItem(e);break;case E.NodeJS:r=Ge.has(e)?Ge.get(e):Kn(e);break;case E.Deno:r=k.global.Deno.env.get(e);break;case E.GoogleAppsScript:r=k.global.PropertiesService?.getUserProperties().getProperty(e);break;case E.WebWorker:case E.Unknown:r=void 0;break;default:throw new Error(`Cannot determine Javascript context: ${k.type}`)}return d(r)?ge(r):t}function $t(e,t,r){let n=x(t)?Z(t):void 0,o=x(n);switch(k.type){case E.Browser:try{o?It.setItem(e,n):It.removeItem(e)}catch(s){console.warn(`[Storage] Failed to ${o?"setItem":"removeItem"} for key '${e}':`,s)}break;case E.NodeJS:o?r?.static?Ge.setStatic(e,n):Ge.set(e,n,r?.ttl):Ge.set(e,void 0,r?.ttl);break;case E.Deno:o?k.global.Deno.env.set(e,n):k.global.Deno.env.delete(e);break;case E.GoogleAppsScript:o?k.global.PropertiesService?.getUserProperties().setProperty(e,n):k.global.PropertiesService?.getUserProperties().deleteProperty(e);break;case E.WebWorker:case E.Unknown:break;default:throw new Error(`Cannot determine Javascript context: ${k.type}`)}}var k,Lr,Ar,Rt,Dt,It,Ge,Kn,Ct=v(()=>{"use strict";Se();Re();N();Nt();k=be(),Lr=(e=1e3,t=1/0)=>{let r=new Fe(e,t);return{get length(){return r.size},clear:()=>r.clear(),getItem:n=>r.get(n)??null,key:n=>Array.from(r.keys())[n]??null,removeItem:n=>{r.delete(n)},setItem:(n,o)=>{r.set(n,String(o))}}},Ar=new Map,Rt=e=>{let t=Ar.get(e);return t||(t=Lr(),Ar.set(e,t)),t},Dt=(e="localStorage")=>{try{let t=globalThis?.[e];if(t&&$(t.getItem)&&$(t.setItem)&&$(t.removeItem)&&$(t.clear)&&$(t.key)&&y(t.length))return t}catch{}return Rt(e)},It=k.type===E.Browser?Dt():Lr(),Ge=new Fe(1e3,1/0),Kn=e=>{try{let t=Reflect.get(k.global,"process");if(!t||typeof t!="object")return;let r=Reflect.get(t,"env");return!r||typeof r!="object"?void 0:Reflect.get(r,e)}catch{return}}});var zr=v(()=>{"use strict";Se();N()});function Fr(e=[],t){let r=n=>q(t)||x(n)?n:Ir(t);return gr(e)||dr(e)&&!d(e)?Array.from(e,r):[e]}function Gr(e){if(tt(e))return e;let t=new Error(S(e)&&d(e.message)?e.message:String(e));return S(e)&&(t.name=d(e.name)?e.name:"Error","code"in e&&(d(e.code)||y(e.code))&&(t.code=e.code),"stack"in e&&d(e.stack)&&(t.stack=e.stack)),t}var Hi,Yi,At=v(()=>{"use strict";Se();K();N();zr();Hi=BigInt(Number.MAX_SAFE_INTEGER),Yi=BigInt(Number.MIN_SAFE_INTEGER)});var kr=v(()=>{"use strict";At();if(typeof globalThis.Temporal>"u")throw new Error("Temporal API is not available. Node 20+ with a polyfill (e.g. @js-temporal/polyfill) is highly recommended. Native Temporal is fully reliable only on Node 26+ (while Node 22 may have instabilities).");try{if(typeof Temporal.Now.zonedDateTimeISO=="function"&&typeof Temporal.Now.zonedDateTimeISO().add!="function")throw new Error("Incomplete Temporal implementation")}catch(e){let t=Gr(e);if(console.warn("Tempo: Native Temporal implementation appears incomplete. Consider loading a polyfill.",t),t.message!=="Incomplete Temporal implementation")throw t}});function Wr(){return Temporal.Now.instant()}function Ur(e,t=2024){let r=Temporal.ZonedDateTime.from({year:t,month:1,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds,n=Temporal.ZonedDateTime.from({year:t,month:7,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds;return{jan:r,jul:n}}var Lt=v(()=>{"use strict";kr();N()});function ke(e,t,r){if(e){if($(e[t]))return e[t]();if(r&&r in e)return e[r]}}function oo(e){return e?Vn.has(e)?5:qn.has(e)?6:Yn.has(e)?7:1:1}function io(e){return e?e==="IR"?ro:e==="AF"?no:Xn.has(e)?to:Br:Br}function so(e,t){let r=e?.script??($(e?.maximize)?e.maximize().script:void 0);return r&&eo.has(r)||t&&Qn.has(t)?"rtl":"ltr"}var Zn,jn,xe,le,ss,as,zt,cs,Hn,ls,Yn,qn,Vn,Xn,Qn,eo,Br,to,ro,no,Mt,us,fs,ao,co,Jr,ps,it,ds,Ft=v(()=>{"use strict";Lt();nt();N();At();Zn=/_/g,jn=/[.@]/,xe=e=>typeof Intl<"u"&&(!e||Object.hasOwn(Intl,e)&&$(Intl[e])),le=e=>{if(Ie(e)&&(e=e.toString()),!d(e))return;let t=e.trim();if(O(t))return;let r=t.split(jn)[0];if(!O(r))return r.replace(Zn,"-")},ss=A((e,t)=>new Intl.RelativeTimeFormat(le(e),t)),as=A((e,t)=>new Intl.ListFormat(le(e),t)),zt=A((e,t)=>new Intl.DateTimeFormat(le(e),t)),cs=A((e,t)=>{try{return new Intl.PluralRules(le(e),t)}catch{return{select:()=>"other"}}}),Hn=A((e,t)=>new Intl.NumberFormat(le(e),t)),ls=A((e,t)=>{try{let r=new Intl.DurationFormat(le(e),t);if(w(r.format))return r;throw new Error("No format method")}catch{return{format:n=>String(n)}}});Yn=new Set(["US","CA","MX","BR","IL","JP","TW","HK","MO","PH","SG","TH","IN","KR","CO","PE","VE","ZA"]),qn=new Set(["SA","AF","BH","DJ","DZ","EG","IQ","IR","JO","KW","LY","OM","QA","SD","SY","YE"]),Vn=new Set(["MV"]),Xn=new Set(["SA","BH","DJ","DZ","EG","IQ","JO","KW","LY","OM","QA","SD","SY","YE"]),Qn=new Set(["ar","he","fa","ur","yi","ps","sd","ug","ckb"]),eo=new Set(["Arab","Hebr","Thaa","Syrc","Mand","Samr","Nkoo"]),Br=Object.freeze([6,7]),to=Object.freeze([5,6]),ro=Object.freeze([5]),no=Object.freeze([4,5]);Mt=A(e=>{if(Ie(e))return e;if(xe("Locale"))try{let t=le(e);return new Intl.Locale(t||"en-US")}catch{return}}),us=A(e=>{let t=Mt(e)??Mt("en-US"),r=t?.baseName??Jr(e)??"en-US",n=t?.language??r.split("-")[0]?.toLowerCase(),o=[];for(let fe of r.split("-").slice(1)){if(fe.length===1)break;o.push(fe)}let s=t?.region??($(t?.maximize)?t.maximize().region:void 0)??o.find(fe=>/^[a-zA-Z]{2}$|^\d{3}$/.test(fe))?.toUpperCase(),i=t?.script??($(t?.maximize)?t.maximize().script:void 0),a=ke(t,"getWeekInfo","weekInfo"),c=a?.firstDay??oo(s),l=Array.isArray(a?.weekend)?Object.freeze([...a.weekend]):io(s),f=ke(t,"getHourCycles","hourCycles")??t?.hourCycle??(xe("DateTimeFormat")?zt(r,{hour:"numeric"}).resolvedOptions().hourCycle:void 0),h=Array.isArray(f)&&f.length>0?Object.freeze([...f]):d(f)?Object.freeze([f]):Object.freeze(["h23"]),p=ke(t,"getTextInfo","textInfo"),R=p?.direction==="rtl"||p?.direction==="ltr"?p.direction:so(t,n),u=ke(t,"getNumberingSystems","numberingSystems")??t?.numberingSystem??(xe("NumberFormat")?Hn(r).resolvedOptions().numberingSystem:void 0),T=Array.isArray(u)&&u.length>0?Object.freeze([...u]):d(u)?Object.freeze([u]):Object.freeze(["latn"]),D=ke(t,"getTimeZones","timeZones"),_=Array.isArray(D)&&D.length>0?Object.freeze([...D]):Object.freeze([]),j=Object.freeze({firstDay:c,weekend:l});return Object.freeze({locale:t,baseName:r,language:n,region:s,script:i,weekInfo:j,firstDay:c,weekend:l,hourCycle:h[0],hourCycles:h,direction:R,numberingSystem:T[0],numberingSystems:T,timeZones:_})}),fs=A((e="latn")=>{if(!(!e||e==="latn"||!xe("NumberFormat")))try{let t=new Intl.NumberFormat(`en-u-nu-${e}`,{useGrouping:!1}),r=Array.from({length:10},(n,o)=>t.format(o));return r[0]==="0"&&r[9]==="9"?void 0:Object.freeze(r)}catch{return}}),ao=Object.freeze({locale:"en-US",calendar:"iso8601",numberingSystem:"latn",timeZone:"UTC"}),co=A(()=>xe("DateTimeFormat")?Object.freeze(zt().resolvedOptions()):ao),Jr=A(e=>{let t=le(e);if(t){if(xe("getCanonicalLocales"))try{return Intl.getCanonicalLocales(t)[0]}catch{return}return Mt(t)?.baseName??t}}),ps=A(e=>Object.freeze(Fr(e).map(t=>Jr(t)).filter(Boolean))),it=A((e=co().timeZone)=>{try{let{jan:t,jul:r}=Ur(e),o=["Australia","Antarctica","Africa/Johannesburg","America/Argentina/Buenos_Aires","America/Sao_Paulo"].some(s=>e.startsWith(s));switch(!0){case r>t:return"north";case r<t:return"south";default:return o?"south":void 0}}catch{return}}),ds=A(e=>{try{let t=new Date(2024,11,24),r=zt(e).formatToParts(t);return r[0].type==="month"&&r[0].value==="12"}catch{return!1}})});function V(e){return{enumerable:!1,configurable:!1,writable:!1,value:e}}function Te(e,t=!0){let n=pe(this)!=="Module"&&w(this?.has)?this:uo,o=ee(e),s=Object.create(n);switch(o.type){case"Enumify":case"Object":Object.defineProperties(s,Object.getOwnPropertyDescriptors(o.value));break;case"Array":o.value.forEach((i,a)=>{if(y(i))throw new Error("Enumify: numeric keys are not supported");s[i]=a});break;default:throw new Error(`Enumify: invalid argument type: ${o.type}`)}return xr(s,!0,t)}var lo,uo,Ts,Kr=v(()=>{"use strict";Me();K();N();Y();rt();ze();nt();lo="Enumify",uo=De(Object.create(null,{keys:Ce("keys",function(){return C(this,!0).map(([e])=>e)}),values:Ce("values",function(){return C(this,!0).map(([e,t])=>t)}),entries:Ce("entries",function(){return C(this,!0).map(([e,t])=>Object.freeze([e,t]))}),invert:Ce("invert",function(){return Object.fromEntries(this.entries().map(([e,t])=>[t,e]))}),has:V(function(e){return this.keys().includes(e)}),count:V(function(){return this.keys().length}),includes:V(function(e){return this.values().includes(e)}),keyOf:V(function(e){return this.invert()[e]}),extend:V(function(e,t){return Te.call(this,e,t)}),forEach:V(function(e,t){this.entries().forEach((r,n)=>e.call(t,r,n,this))}),filter:V(function(e,t){return Te(this.entries().reduce((r,n,o)=>e.call(t,n,o,this)?Object.assign(r,{[n[0]]:n[1]}):r,{}))}),map:V(function(e,t){return Te(this.entries().reduce((r,n,o)=>Object.assign(r,{[n[0]]:e.call(t,n,o,this)}),{}))}),[Symbol.iterator]:V(function*(){for(let e of this.entries())yield e}),[Symbol.toStringTag]:{enumerable:!1,configurable:!1,writable:!1,value:lo}}));Ts=(()=>{let e=[Cr,ae("Enumify")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),se(n,r)}constructor(s){return Te(s)}};return o=n})()});function fo(e,t=W.Info){return y(e)?e>=W.Off&&e<=W.Trace?e:t:d(e)?Zr[e.toLowerCase()]??t:t}var W,M,Zr,st,Gt=v(()=>{"use strict";Me();N();Kr();H();ze();W=Te(["Off","Error","Warn","Info","Debug","Trace"]),M={Off:"off",Log:"log",Info:"info",Warn:"warn",Debug:"debug",Trace:"trace",Error:"error"},Zr={[M.Off]:W.Off,[M.Error]:W.Error,[M.Warn]:W.Warn,[M.Info]:W.Info,[M.Log]:W.Info,[M.Debug]:W.Debug,[M.Trace]:W.Trace};st=(()=>{let e=[ae("Logger")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),se(n,r)}#t;level;constructor(s,i=W.Info){this.#t=s.startsWith("[")?s:`[${s}]`,this.level=i}#e(s,...i){let a;if(i.length>0&&S(i[0]))try{i[0][b.$LogConfig]&&(a=i.shift())}catch{}let c=this.level;if(a){if(a.silent===!0)return;a.debug!==void 0&&(c=fo(a.debug,c))}if(c===W.Off||(Zr[s]??0)>c)return;let m=i.map(f=>{if(tt(f))return f.message;if(S(f))try{let h=f.constructor?.name??"Object";if(h==="Object"){let p=Object.keys(f);return`{ ${p.slice(0,3).join(", ")}${p.length>3?`, ... (+${p.length-3} more)`:""} }`}return`[${h}]`}catch{return"[Object]"}return String(f)}).filter(f=>!O(f)).join(" ");O(m)||console[s](`${this.#t} ${m}`)}log=(...s)=>this.#e(M.Log,...s);info=(...s)=>this.#e(M.Info,...s);warn=(...s)=>this.#e(M.Warn,...s);debug=(...s)=>this.#e(M.Debug,...s);trace=(...s)=>this.#e(M.Trace,...s);error=(...s)=>this.#e(M.Error,...s)};return o=n})()});var jr={};he(jr,{WebStore:()=>po});var We,po,Hr=v(()=>{"use strict";Me();Y();Se();K();N();Ct();ze();We={Local:"local",Session:"session"},po=(()=>{let e=[ae("WebStore")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),se(n,r)}static _localInstance;static _sessionInstance;static get local(){return o._localInstance??=new o(We.Local)}static get session(){return o._sessionInstance??=new o(We.Session)}#t;#e;get#r(){if(this.#e)return this.#e;let s=this.#t===We.Local?"localStorage":"sessionStorage";return this.#e=Dt(s)}#n(s){try{return s(this.#r)}catch{let a=this.#t===We.Local?"localStorage":"sessionStorage",c=Rt(a);return this.#e=c,s(c)}}constructor(s=We.Local){this.#t=s}get(s,i){let a=this.#n(c=>c.getItem(Z(s)));return d(a)?ge(a):i??null}set(s,i,a={merge:!0}){if(P(s))return this.clear();let c=this.get(s),l=ee(i);switch(l.type){case"Undefined":return this.del(s);case"Object":return c??={},this.#o(s,a.merge?Object.assign(c,l.value):l.value);case"Array":return c??=[],this.#o(s,a.merge?Ve(c.concat(l.value)):i);case"Map":return c??=new Map,a.merge?(l.value.forEach((m,f)=>c.set(f,m)),this.#o(s,c)):this.#o(s,l.value);case"Set":return c??=new Set,a.merge?(l.value.forEach(m=>c.add(m)),this.#o(s,c)):this.#o(s,l.value);default:return this.#o(s,l.value)}}clear(){try{this.#n(s=>s.clear())}catch(s){console.warn("[WebStore] Failed to clear storage:",s)}return this}del(...s){return s.forEach(i=>{try{this.#n(a=>a.removeItem(Z(i)))}catch(a){console.warn(`[WebStore] Failed to removeItem for key '${String(i)}':`,a)}}),this}keys(...s){return this.entries(...s).map(([i])=>i)}values(...s){return this.entries(...s).map(([,i])=>i)}entries(...s){let i=new Set(s.map(c=>Z(c))),a=[];return this.#n(c=>{for(let l=0;l<c.length;l++){let m=c.key(l);if(m!==null&&(O(s)||i.has(m))){let f=c.getItem(m);a.push([ge(m),ge(f)])}}}),a}from(s){return C(s).forEach(([i,a])=>this.set(i,a)),this}#o(s,i){try{this.#n(a=>a.setItem(Z(s),Z(i)))}catch(a){console.warn(`[WebStore] Failed to setItem for key '${String(s)}':`,a)}return this}};return o=n})()});var Vr={};he(Vr,{geoCoords:()=>qr,geoLocation:()=>Ue,mapAddress:()=>go,mapHemisphere:()=>mo,mapQuery:()=>Ut});var ct,Yr,I,Wt,X,kt,at,Ue,qr,Ut,mo,go,Bt=v(()=>{"use strict";_t();Re();N();Lt();Ft();Gt();ct={catch:!0,debug:0},Yr=be(),I={},Wt="_magma_browser_map_",X=new st("[Mapper]"),kt=null,at=()=>(kt||(kt=new Promise((e,t)=>{Yr.type===E.Browser?Promise.resolve().then(()=>(Hr(),jr)).then(({WebStore:r})=>{let n=new r("local"),o=n.get(Wt,{});z(o)&&(o.geolocation&&(!o.geolocation.coords||o.geolocation.$GeolocationPosition)&&delete o.geolocation,Object.assign(I,o)),e(n)}).catch(t):e(void 0)})),kt),Ue=(e={})=>at().then(()=>new Promise((t,r)=>{e=Object.assign({},ct,e);let n=e.catch?t:r;typeof navigator<"u"&&"geolocation"in navigator?navigator.geolocation.getCurrentPosition(o=>{let s=I.geolocation?.coords,i=s?.latitude?.toFixed(3),a=s?.longitude?.toFixed(3),c=I.geolocation?.timestamp??0,l=o.coords.latitude.toFixed(3)!==i,m=o.coords.longitude.toFixed(3)!==a,f=c<Wr().epochMilliseconds-36e5;(l||m||f)&&(Object.assign(I,{georesponse:null}),X.info(e,"GeoLocation: device update")),Object.assign(I,{geolocation:ne(o)}),t(I.geolocation)},o=>{Object.assign(I,{geolocation:{error:o.message},georesponse:null}),n(I.geolocation)}):(Object.assign(I,{geolocation:{error:"Not Supported"},georesponse:null}),n(I.geolocation))})).finally(()=>{(I.geolocation?.error?X.error:X.info)(e,"geoLocation: ",I.geolocation),at().then(r=>r?.set(Wt,I))}),qr=e=>new Promise((t,r)=>{if(!P(e))return t(e);Ue().then(n=>P(n.error)?{location:{lat:n.coords.latitude,lng:n.coords.longitude}}:null).then(n=>t(n)).catch(n=>r(n))}),Ut=(e,t={})=>at().then(()=>new Promise((r,n)=>{t=Object.assign({},ct,t);let o=t.catch?r:n;qr(e).then(s=>{switch(!0){case(Yr.type!==E.Browser||!window.google?.maps):throw new Error("Google Maps API not configured");case P(s):throw new Error("Cannot determine Coordinates");case P(e):{let i=I.geolocation&&I.georesponse,a=P(I.geolocation?.error)&&P(I.georesponse?.error);if(i&&a)return t.debug&&X.debug(t,"mapQuery: cache"),r(I.georesponse)}default:new window.google.maps.Geocoder().geocode(s).then(i=>r(I.georesponse=ne(i)))}}).catch(s=>{Object.assign(I,{georesponse:{error:s.message}}),o(I.georesponse)})})).finally(()=>{t.debug&&(I.georesponse?.error?X.error:X.debug)(t,"mapQuery: ",I.georesponse),at().then(r=>r?.set(Wt,I))}),mo=(e,t={})=>Ut(e,t).then(r=>{if(t=Object.assign({},ct,t),P(r.error))return t.debug&&X.debug(t,"sphere: ",r),r.results[0].geometry.location.lat()>=0?"north":"south";let n=it();if(P(n)&&t.catch===!1)throw new Error("Cannot determine Hemisphere");return n}).catch(r=>{if(t.debug&&X.warn(t,"mapHemisphere: ",r.message),t.catch===!1)throw r;return null}),go=(e,t={})=>Ut(e,t).then(r=>{if(!P(r.error))throw new Error(r.error);return r.results[0]}).then(({formatted_address:r,address_components:n})=>n.reduce((o,s)=>(s.types.filter(i=>i!=="political").forEach(i=>o[i]=(o[i]?o[i]+",":"").concat(s.short_name)),o),{formatted_address:r})).catch(r=>{if(t=Object.assign({},ct,t),t.debug&&X.warn(t,"mapAddress: ",r.message),t.catch===!1)throw r;return null})});var Kt={};he(Kt,{HTTP:()=>en,HttpError:()=>Q,METHOD:()=>tn,fetchHead:()=>ho,fetchRequest:()=>yo});var Jt,Xr,en,tn,Q,Qr,yo,ho,Zt=v(()=>{"use strict";N();Jt=2e3,Xr=/\);?$/,en={Ok:200,PermRedirect:301,TempRedirect:302,BadRequest:400,Unauthorised:401,Forbidden:403},tn={Head:"HEAD",Get:"GET",Put:"PUT",Delete:"DELETE",Post:"POST"},Q=class extends Error{status;statusText;body;constructor(t,r,n){super(`${t}: ${r}`),this.status=t,this.statusText=r,this.body=n,this.name="HttpError"}},Qr=async(e,t)=>{let r=e.headers?.get?.("Content-Length")||e.headers?.get?.("content-length");if(r){let a=parseInt(r,10);if(y(a)&&a>t){try{await e.body?.cancel()}catch{}throw new Q(413,`Content-Length (${a}) exceeds limit (${t} bytes)`,null)}}if(!e.body){let a;if(w(e.text))a=await e.text();else if(w(e.json)){let l=await e.json();a=JSON.stringify(l)??""}else a="";let c=new TextEncoder().encode(a).byteLength;if(c>t)throw new Q(413,`Payload length (${c}) exceeds limit (${t} bytes)`,null);return a}let n=e.body.getReader(),o=new TextDecoder,s=0,i="";try{for(;;){let{done:a,value:c}=await n.read();if(a)break;if(c){if(s+=c.byteLength,s>t){try{await n.cancel()}catch{}throw new Q(413,`Streamed payload exceeded limit (${t} bytes)`,null)}i+=o.decode(c,{stream:!0})}}return i+=o.decode(),i}finally{try{n.releaseLock()}catch{}}},yo=(e,t={},r={})=>{let n={...t,signal:t.signal?AbortSignal.any([t.signal,AbortSignal.timeout(r.timeout??Jt)]):AbortSignal.timeout(r.timeout??Jt)};return fetch(e,n).then(async o=>{if(o.ok){let a=(o.headers?.get?.("Content-Type")||o.headers?.get?.("content-type")||"").includes("application/json");if(x(r.maxBytes)){let c=await Qr(o,r.maxBytes);if(r.rawText)return c;if(r.prefix){let l=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(l)}if(a)return JSON.parse(c);try{return JSON.parse(c)}catch{return c}}if(r.rawText)return w(o.text)?await o.text():"";if(r.prefix){let c=await o.text(),l=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(l)}if(w(o.text)){let c=await o.text();try{return JSON.parse(c)}catch{return c}}return w(o.json)?await o.json():""}let s=null;try{let i=x(r.maxBytes)?await Qr(o,r.maxBytes):w(o.text)?await o.text():"";try{s=JSON.parse(i)}catch{s=i}}catch(i){if(i instanceof Q&&i.status===413)throw i}throw new Q(o.status,o.statusText,s)})},ho=e=>{let t=AbortSignal.timeout(Jt),r={method:tn.Head,signal:t};return fetch(e,r).then(({ok:n,status:o,statusText:s,headers:i})=>{if(n||o===en.Forbidden)return{status:o,headers:i};throw new Q(o,s,null)})}});var nn={};he(nn,{serverGeoCoords:()=>lt,serverGeoLocation:()=>Be,serverMapHemisphere:()=>qt});var rn,Yt,jt,Ht,wo,Be,lt,qt,Vt=v(()=>{"use strict";N();Ft();Gt();rn=new st("[ServerMapper]"),Yt="https://ipwho.is",jt={endpoint:`${Yt}/`,timeout:3e3,catch:!0,debug:0},Ht=null,wo=()=>(Ht||(Ht=Promise.resolve().then(()=>(Zt(),Kt))),Ht),Be=async(e={})=>{let t={...jt,...e},r=t.catch!==!1;try{let n=t.endpoint||jt.endpoint;if(d(t.ip)){let f=encodeURIComponent(t.ip.trim());if((n.endsWith("/")?n.slice(0,-1):n)===Yt)n=`${Yt}/${f}`;else if(n.includes("{ip}"))n=n.replace("{ip}",f);else if(f!=="")throw new Error(`Custom endpoint must include an '{ip}' placeholder to resolve a specific IP: ${n}`)}let o=t.timeout??jt.timeout,{fetchRequest:s}=await wo(),i=await s(n,{},{...y(o)?{timeout:o}:{},maxBytes:64*1024});if(typeof i!="object"||P(i))throw new Error("Geolocation lookup failed");if(i.status==="fail"||i.success===!1)throw new Error(i.message||i.reason||"Geolocation lookup failed");let a=y(i.lat)?i.lat:i.latitude,c=y(i.lon)?i.lon:i.lng??i.longitude;if(!y(a)||!y(c))throw new Error("Geolocation lookup failed");let l=d(i.timezone)?i.timezone:i.timezone?.id??i.timeZone,m={lat:a,lng:c,latitude:a,longitude:c,...d(i.country||i.countryName||i.country_name)?{country:i.country||i.countryName||i.country_name}:{},...d(i.city||i.cityName||i.city_name)?{city:i.city||i.cityName||i.city_name}:{},...d(l)?{timezone:l}:{},...d(i.query||i.ip||i.ip_address)?{query:i.query||i.ip||i.ip_address}:{},status:"success"};return t.debug&&rn.info(t,"serverGeoLocation success: ",m),m}catch(n){let o=n?.message||"Server geolocation error";if(t.debug&&rn.error(t,"serverGeoLocation error: ",o),!r)throw n;return{error:o,status:"fail"}}},lt=async(e,t)=>{if(!P(e)){let n=e.latitude??e.lat,o=e.longitude??e.lng??e.lon??e.long;if(y(n)&&y(o))return{lat:n,lng:o}}let r=await Be(t);return P(r.error)&&y(r.lat)&&y(r.lng)?{lat:r.lat,lng:r.lng}:null},qt=async(e,t)=>{let r=await lt(e,t);return r?r.lat>=0?"north":"south":it()??null}});var fn=cr((ra,un)=>{"use strict";un.exports=window.undefined});var Po={};he(Po,{GEO_PROPERTIES:()=>Ke,GeoPlugin:()=>sr,NON_GEO_CONTROL_KEYS:()=>pn,clearStashedGeo:()=>pt,coerceGeo:()=>Oe,default:()=>vo,forwardGeocode:()=>or,geoLocation:()=>Ue,geoLookup:()=>mt,geoPlugin:()=>_o,getGeoProvider:()=>nr,getStashedGeo:()=>_e,resolveCulturalLocale:()=>ir.resolveCulturalLocale,resolveGeoCoordinates:()=>Ze,reverseGeocode:()=>gt,serverGeoCoords:()=>lt,serverGeoLocation:()=>Be,serverMapHemisphere:()=>qt,setGeoProvider:()=>dt,stashGeo:()=>ft});var J={};he(J,{definePlugin:()=>wt,defineTerm:()=>bn});ve(J,yt(ht()));var Ye=yt(ht()),wt=e=>(0,Ye.definePlugin)({...e,version:"1.4.0"}),bn=e=>(0,Ye.defineTerm)({...e,version:"1.4.0"});Re();N();Ct();N();function ce(...e){for(let t of e){let r=w(t)?t():t;if(r!==void 0)return r}}Nt();var ye="_magma_geo_",Qt=1440*60*1e3,bo="https://api.bigdatacloud.net/data/reverse-geocode-client",So=3e3,xo=64*1024,To=1e3,Ke=["latitude","lat","longitude","lng","lon","long","elevation","sphere","country","city","timezone","tz"],sn=e=>{if(!x(e)||mr(e))return NaN;if(d(e)){let t=e.trim();return t.length>0?Number(t):NaN}return y(e)?e:NaN},er=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-90||r>90))return t?Math.round(r*1e3)/1e3:r},tr=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-180||r>180))return t?Math.round(r*1e3)/1e3:r},Je=(e,t,r=!0)=>{let n=er(e,r),o=tr(t,r);return x(n)&&x(o)?{lat:n,lng:o}:void 0},an=e=>y(e)?Math.round(e*1e3)/1e3:void 0,Ee=(e,t)=>{if(e==="north"||e==="south"||e==="equator")return e;if(y(t))return t>.001?"north":t<-.001?"south":"equator"},cn=(e,t=!0)=>{if(d(e)&&e.includes(",")){let r=e.split(",").map(n=>n.trim());return r.length>=2?Je(r[0],r[1],t):void 0}return Array.isArray(e)&&e.length>=2?Je(e[0],e[1],t):void 0},ue=(e,t)=>{let r="lat"in e?e.lat:e.latitude,n="lng"in e?e.lng:e.longitude,o=er(r),s=tr(n),i=Ee(t?.sphere,o??r),a=an(t?.elevation);return{latitude:o??r,longitude:s??n,...i?{sphere:i}:{},...d(t?.city)&&!O(t.city)?{city:t.city.trim()}:{},...d(t?.country)&&!O(t.country)?{country:t.country.trim()}:{},...a!==void 0?{elevation:a}:{},...d(t?.timezone)&&!O(t.timezone)?{timezone:t.timezone.trim()}:{}}},Eo=(e,t=Ke)=>{let r={};if(z(e))for(let n of Object.keys(e))B(n)&&!t.includes(n)&&(r[n]=e[n]);return r},Oe=e=>{let t=cn(e);if(t)return ue(t);if(te(e))return;let r=e.geo??e,n=e.config?.geo??e.config,o=ce(r?.latitude,r?.lat,e.latitude,e.lat,n?.latitude,n?.lat),s=ce(r?.longitude,r?.lng,r?.lon,r?.long,e.longitude,e.lng,e.lon,e.long,n?.longitude,n?.lng,n?.lon,n?.long),i=ce(r?.elevation,e.elevation,n?.elevation),a=ce(r?.sphere,e.sphere,n?.sphere),c=ce(r?.country,e.country,n?.country),l=ce(r?.city,e.city,n?.city),m=ce(r?.timezone,r?.tz,e.timezone,e.tz,n?.timezone,n?.tz),f={},h=er(o),p=tr(s);h!==void 0&&(f.latitude=h),p!==void 0&&(f.longitude=p);let R=an(i);R!==void 0&&(f.elevation=R);let g=Ee(a,f.latitude);g&&(f.sphere=g),d(c)&&(f.country=c),d(l)&&(f.city=l),d(m)&&(f.timezone=m);let u=z(e.geo)?e.geo:z(e.config?.geo)?e.config.geo:void 0,T=Eo(u);return Object.assign(f,T),Object.keys(f).length>0?f:void 0},rr=e=>{if(d(e)&&!O(e)){let t=e.trim();return t.startsWith(ye)?t:`${ye}:${t}`}if(e&&S(e)){let t=e.provider??L,r=t&&d(t.name)&&!O(t.name)?`provider:${t.name}`:void 0,n=e.key??e.ip??e.query;if(d(n)&&!O(n)){let o=n.trim();return r?`${ye}:${r}:${o}`:`${ye}:${o}`}if(r)return`${ye}:${r}`}else if(L&&d(L.name)&&!O(L.name))return`${ye}:provider:${L.name}`;return ye},_e=e=>{let t=rr(e);try{let r=Mr(t)??($(globalThis.localStorage?.getItem)?globalThis.localStorage.getItem(t):void 0);if(!r)return;let n=d(r)&&(r.startsWith("{")||r.startsWith("["))?JSON.parse(r):r;if(S(n)&&y(n._expires)&&Date.now()>n._expires){pt(e);return}let o=cn(n);if(o)return ue(o);if(S(n)){let s=n.geolocation?.coords??n.coords??n,i=s?.latitude??s?.lat,a=s?.longitude??s?.lng??s?.lon??s?.long,c=Je(i,a);if(c){let l=n.elevation??s.elevation;return ue(c,{elevation:l,sphere:n.sphere,country:n.country,city:n.city,timezone:n.timezone})}}}catch{}},ft=(e,t=Qt,r)=>{let n=rr(r),o=y(t)&&t>0?{...e,_expires:Date.now()+t}:e;$t(n,o,{ttl:t})},pt=e=>{let t=rr(e);$t(t,void 0)},L;function dt(e){L=e}function nr(){return L}var mt=async(e={})=>{let t=e.provider??L;if(e.refresh!==!0){let a=_e(e);if(a&&y(a.latitude)&&y(a.longitude)){let{latitude:c,longitude:l,...m}=a;return{...m,status:"cached",lat:c,lng:l,latitude:c,longitude:l}}}let n;if(t&&w(t.lookup))try{let a=await t.lookup(e);if(a){if(n=a,a.error&&e.fallback===!1)return a}else if(e.fallback===!1)return{error:"Provider returned null and fallback is disabled"}}catch(a){if(e.fallback===!1)return{error:a?.message??"Provider lookup failed"}}if(!n||n.error){if(e.fallback===!1&&(t||n?.error))return n&&n.error?n:{error:"Geolocation resolution failed and fallback is disabled"};let{type:a}=be();switch(a){case E.Browser:{let{geoLocation:c}=await Promise.resolve().then(()=>(Bt(),Vr)),l=await c(e);if(l.error)return{error:l.error};let m=l.coords?.latitude,f=l.coords?.longitude;n={...l,lat:m,lng:f,latitude:m,longitude:f};break}case E.WebWorker:case E.NodeJS:case E.Deno:default:{let{serverGeoLocation:c}=await Promise.resolve().then(()=>(Vt(),nn));n=await c(e);break}}}let o=n.latitude??n.lat,s=n.longitude??n.lng,i=Je(o,s);if(P(n.error)&&i){let a=Ee(n.sphere,i.lat);n.lat=i.lat,n.lng=i.lng,n.latitude=i.lat,n.longitude=i.lng,n.sphere=a;let c=ue(i,n);try{let l=y(e.ttl)?e.ttl:Qt;ft(c,l,e)}catch{}}return n},Xt=null,Oo=()=>(Xt||(Xt=Promise.resolve().then(()=>(Zt(),Kt))),Xt),ut=new Fe(To,Qt),ln=e=>{try{let t=new URL(e);return t.protocol==="https:"||t.hostname==="localhost"||t.hostname==="127.0.0.1"}catch{return!1}};var on=(e,t,r)=>{let n=`${e.toFixed(2)},${t.toFixed(2)}`;if(d(r)&&!O(r))return`${n}:${r.trim()}`;if(S(r)){let s=Object.hasOwn(r,"provider")?r.provider:L,i=s&&d(s.name)&&!O(s.name)?s.name.trim():void 0,a=d(r.reverseEndpoint??r.reverseGeoEndpoint)&&!O(r.reverseEndpoint??r.reverseGeoEndpoint)?(r.reverseEndpoint??r.reverseGeoEndpoint).trim():void 0,c=a&&ln(a)?a:void 0;if(i&&c)return`${n}:${i}:${c}`;if(i)return`${n}:${i}`;if(c)return`${n}:${c}`}else if(L&&d(L.name)&&!O(L.name))return`${n}:${L.name.trim()}`;return n};async function gt(e,t){let r=Oe(e);if(!r||!y(r.latitude)||!y(r.longitude))return null;let n=r.latitude,o=r.longitude,s=on(n,o,t),i=t?.refresh!==!0;if(i){let p=ut.get(s);if(p)return{...p,latitude:n,longitude:o,sphere:Ee(p.sphere,n),elevation:y(p.elevation)?p.elevation:r.elevation,timezone:d(p.timezone)?p.timezone:r.timezone}}let a=S(t)&&Object.hasOwn(t,"provider"),c=a?t.provider:L;if(c&&w(c.reverseGeocode))try{let p=await c.reverseGeocode(r,t);if(p&&S(p)){let R=ue({lat:n,lng:o},{sphere:p.sphere,city:p.city,country:p.country,elevation:y(p.elevation)?p.elevation:r.elevation,timezone:d(p.timezone)?p.timezone:r.timezone}),g=ue({lat:n,lng:o},{sphere:p.sphere,city:p.city,country:p.country,timezone:p.timezone});return ut.set(s,g),R}if(t?.fallback===!1)return null}catch(p){if(t?.fallback===!1)throw p}else if(t?.fallback===!1&&(c||a))return null;let l=t?.reverseEndpoint??t?.reverseGeoEndpoint;if(F(l)){let p=l.trim();if(!ln(p))return t?.fallback===!1?null:r}let m=F(l)?l.trim():void 0,f=on(n,o,m??"default");if(i){let p=ut.get(f);if(p)return{...p,latitude:n,longitude:o,sphere:Ee(p.sphere,n),elevation:y(p.elevation)?p.elevation:r.elevation,timezone:d(p.timezone)?p.timezone:r.timezone}}let h;if(m)if(/\{(?:latitude|lat|longitude|lng|lon)\}/i.test(m))h=m.replace(/\{latitude\}/gi,encodeURIComponent(n)).replace(/\{lat\}/gi,encodeURIComponent(n)).replace(/\{longitude\}/gi,encodeURIComponent(o)).replace(/\{lng\}/gi,encodeURIComponent(o)).replace(/\{lon\}/gi,encodeURIComponent(o));else{let p=m.includes("?")?"&":"?";h=`${m}${p}latitude=${encodeURIComponent(n)}&longitude=${encodeURIComponent(o)}`}else h=`${bo}?latitude=${n}&longitude=${o}&localityLanguage=en`;try{let p=y(t?.timeout)&&t.timeout>0?t.timeout:So,R=y(t?.maxBytes)&&t.maxBytes>0?t.maxBytes:xo,{fetchRequest:g}=await Oo(),u=await g(h,{},{timeout:p,maxBytes:R});if(S(u)){let T=F(u.city)?u.city.trim():F(u.locality)?u.locality.trim():F(u.principalSubdivision)?u.principalSubdivision.trim():void 0,D=F(u.countryCode)?u.countryCode.trim():F(u.countryName)?u.countryName.trim():void 0,_=ue({lat:n,lng:o},{city:T,country:D,elevation:r.elevation,timezone:r.timezone});if(F(T)||F(D)){let j=ue({lat:n,lng:o},{city:T,country:D});ut.set(f,j)}return _}}catch{}return r}async function or(e,t){let r=t?.provider??L;return r&&w(r.forwardGeocode)?r.forwardGeocode(e,t):null}var Ze=async(e,t={})=>{let r=Oe(e);if(r&&y(r.latitude)&&y(r.longitude)){if((t.reverse===!0||t.autoReverse===!0)&&(!r.city||!r.country)){let a=await gt(r,t);if(a)return{...a,...r,city:F(r.city)?r.city:a.city,country:F(r.country)?r.country:a.country,lat:r.latitude,lng:r.longitude,latitude:r.latitude,longitude:r.longitude}}return{...r,lat:r.latitude,lng:r.longitude}}let n=t.refresh===!0?void 0:_e(t);if(n&&y(n.latitude)&&y(n.longitude))return{...n,lat:n.latitude,lng:n.longitude};let o=await mt(t),s=Je(o.lat,o.lng);if(P(o.error)&&s){let i=Ee(o.sphere,s.lat);return{...o,lat:s.lat,lng:s.lng,latitude:s.lat,longitude:s.lng,sphere:i}}return null};var ir=yt(fn(),1);Vt();Bt();N();var pn=["setTimezone","setLocale","refresh","ttl","endpoint","timeout","maxBytes","highAccuracy","catch","debug","geo","provider","fallback","reverse","autoReverse"];var sr=wt({name:"geo",install(e,t){let r=e||this;t?.provider&&dt(t.provider);let n=(o,s)=>{let i=r.config?.pluginOptions?.geo,a=s?.config?.pluginOptions?.geo;return{...S(t)?t:{},...S(i)?i:{},...S(a)?a:{},...S(o)?o:{}}};Object.hasOwn(r,"geo")||Object.defineProperty(r,"geo",{value:(0,J.deepFreeze)({lookup:s=>mt(n(s)),resolve:(s,i)=>Ze(s,n(i,s)),coerce:Oe,stash:ft,clear:pt,get:_e,setProvider:dt,getProvider:nr,reverse:(s,i)=>gt(s,n(i)),forward:(s,i)=>or(s,n(i)),server:Be,browser:Ue,get current(){return _e()??r.config?.geo}}),writable:!1,configurable:!1,enumerable:!1}),e.prototype.geoLocate=async function(o){let s=n(o,this),i=s?.setTimezone!==!1,a=s?.setLocale??!0,c=await Ze(this,s);if(c){let l=S(this.config.geo)?this.config.geo:{},m={};for(let _ of Object.keys(l))B(_)&&!Ke.includes(_)&&(m[_]=l[_]);let f=Oe(o)??{};if(S(o))for(let _ of Object.keys(o))B(_)&&!pn.includes(_)&&(Ke.includes(_)||(m[_]=o[_]));let h=y(c?.elevation)?c.elevation:y(l.elevation)?l.elevation:void 0,p={...m,...c,...y(h)?{elevation:h}:{},...f},R=p.latitude,g=p.longitude;y(R)&&(p.latitude=Math.round(R*1e3)/1e3),y(g)&&(p.longitude=Math.round(g*1e3)/1e3),!p.sphere&&y(R)&&(p.sphere=R>.001?"north":R<-.001?"south":"equator");let u=this,T=p.timezone;i&&d(T)&&!O(T)&&(u=this.set({timeZone:T}));let D=p.country||d(a)?(0,ir.resolveCulturalLocale)(this.locale??this.config.locale,p.country,a):void 0;return new e(u,{...u.config,...D?{locale:D}:{},geo:(0,J.deepFreeze)(p),...p.sphere?{sphere:p.sphere}:{}})}return this},e.prototype.geoLookup=async function(o){return Ze(this,n(o,this))}}}),_o=sr,vo=sr;return wn(Po);})();
1
+ "use strict";var Magma;((Magma||={}).plugins||={}).geo=(()=>{var dn=Object.create;var Ye=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var yn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var _=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var cr=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},we=(e,t)=>{for(var r in t)Ye(e,r,{get:t[r],enumerable:!0})},He=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of gn(t))!hn.call(e,o)&&o!==r&&Ye(e,o,{get:()=>t[o],enumerable:!(n=mn(t,o))||n.enumerable});return e},Pe=(e,t,r)=>(He(e,t,"default"),r&&He(r,t,"default")),yt=(e,t,r)=>(r=e!=null?dn(yn(e)):{},He(t||!e||!e.__esModule?Ye(r,"default",{value:e,enumerable:!0}):r,e)),wn=e=>He(Ye({},"__esModule",{value:!0}),e);var ht=cr((Ro,lr)=>{"use strict";lr.exports=window.Magma.pluginSdk});var Sn,xn,Tn,En,On,vn,_n,Pn,ur,Nn,fr,b,H=_(()=>{"use strict";Sn=Symbol.for("$LibraryTarget"),xn=Symbol.for("$LibraryDiscover"),Tn=Symbol.for("$LibraryExtensible"),En=Symbol.for("nodejs.util.inspect.custom"),On=Symbol.for("$LibraryLogConfig"),vn=Symbol.for("$LibraryRegistry"),_n=Symbol.for("$LibraryRegister"),Pn=Symbol.for("$LibrarySerializerRegistry"),ur=Symbol.for("$LibraryMutable"),Nn=Symbol.for("$LibraryIdentity"),fr=Symbol.for("$LibraryUnwrapped"),b={$Target:Sn,$Discover:xn,$Extensible:Tn,$Inspect:En,$LogConfig:On,$Registry:vn,$Register:_n,$SerializerRegistry:Pn,$Identity:Nn,$Mutable:ur,$Unwrapped:fr}});function be(e){let t=e,r=0,n=50;for(;t;){let o=t[b.$Target];if(!o||r>=n)break;t=o,r++}return t}function A(e,t=!1){if(!e||typeof e!="object")return[];let r=be(e);if(!t){let u=Reflect.ownKeys(r),p=[];for(let l of u){let h=Object.getOwnPropertyDescriptor(r,l);h&&h.enumerable&&p.push([l,r[l]])}return p}let n=[],o=50,s=0,i=r;for(;i&&i!==Object.prototype&&s++<o;)n.push(be(i)),i=Object.getPrototypeOf(i);let a=[],c=new Set;for(let u of n.reverse()){let p=Reflect.ownKeys(u);for(let l of p){if(c.has(l))continue;let h=Object.getOwnPropertyDescriptor(u,l);!h||!h.enumerable||(c.add(l),a.push([l,r[l]]))}}return a}function Ve(e,t=!1){return A(e,t).map(([r])=>r)}function pr(e,t=!1){return A(e,t).map(([r,n])=>n)}function Xe(e,t,r){return t?Xe(e.map(t,r)):Array.from(new Set(e))}var Y=_(()=>{"use strict";H()});var bt,St,Qe,de,te,Rn,In,et,K=_(()=>{"use strict";H();Y();bt=[],St=e=>{if(e===null)return"Null";if(e===void 0)return"Undefined";let t=typeof e;if(t==="string")return"String";if(t==="number")return"Number";if(t==="boolean")return"Boolean";if(t==="bigint")return"BigInt";if(t==="symbol")return"Symbol";try{let r=t==="object"?be(e):e;return Object.prototype.toString.call(r).slice(8,-1)}catch{return t==="function"?"Function":"Object"}},Qe=e=>{try{let t=e?.[Symbol.toStringTag]??e?.prototype?.[Symbol.toStringTag];if(typeof t=="string")return t}catch{}},de=(e,...t)=>{let r=e;try{r=e?.[b.$Target]??e}catch{r=e}let n=St(r);switch(n){case"Function":try{return In(r)?"Class":"Function"}catch{return"Function"}case"Object":{try{if("length"in r&&Object.keys(r).every(s=>s==="length"||Number.isFinite(Number(s))))return"ArrayLike";for(let s of t){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}let o=globalThis[b.$Registry]??[];for(let s of[...bt,...o]){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}}catch{return"Object"}return"Object"}default:return n}},te=(e,...t)=>({type:de(e,...t),value:e}),Rn=/^\s*(class\s|\[native code\])/,In=e=>{if(typeof e!="function")return!1;let t=e?.[b.$Target]??e;if(!("prototype"in t))return!1;let r=t?.name,n=Qe(t);if(t?.[b.$Identity]||t?.prototype?.[b.$Identity]||typeof n=="string"&&n.startsWith("Temporal."))return!0;if(typeof n=="string"&&n.endsWith("Function"))return!1;if((globalThis[b.$Registry]??[]).some(s=>(s.class?.[b.$Target]??s.class)===t||r&&s.type===r||n&&s.type===n))return!0;try{let s=Function.prototype.toString.call(t);if(Rn.test(s))return!0;let i=Object.getOwnPropertyDescriptor(t,"prototype");if(i&&i.writable===!1&&!Object.isFrozen(t))return!0;let a=t.prototype;if(a&&Object.getOwnPropertyNames(a).length>2)return!0}catch{return!1}return!1},et=(e,t)=>{if(typeof e!="function")return;let r=Qe(e),n=t??r??e.name;n&&!["Object","Function",""].includes(n)&&(bt.some(o=>o.class===e)||bt.push({class:e,type:n}))}});function tt(e){switch(typeof e){case"number":return Number.isFinite(e);case"bigint":return!0;case"string":{let r=e.trim();return r.length===0?!1:Dn.test(r)||y(Number(r))}default:return!1}}var U,re,F,dr,m,$,y,Dn,xt,mr,me,gr,S,Tt,yr,ne,Et,B,P,q,x,w,C,Ne,Re,rt,Ie,O,N=_(()=>{"use strict";H();K();U=(e,...t)=>t.includes(de(e)),re=e=>e===null||typeof e!="object"&&typeof e!="function",F=e=>!re(e),dr=e=>Symbol.iterator in Object(e)&&!m(e),m=e=>typeof e=="string",$=e=>typeof e=="string"&&e.trim().length>0,y=e=>Number.isFinite(e),Dn=/^[+-]?[0-9]+n$/;xt=e=>typeof e=="bigint",mr=e=>typeof e=="boolean",me=e=>Array.isArray(e),gr=e=>St(e)==="Object"&&"length"in e&&Object.keys(e).every(t=>t==="length"||y(Number(t))),S=e=>U(e,"Object"),Tt=e=>U(e,"Date"),yr=e=>U(e,"RegExp"),ne=e=>typeof e=="symbol",Et=e=>typeof e=="symbol"&&Symbol.keyFor(e)!==void 0,B=e=>e!=="__proto__"&&e!=="constructor"&&e!=="prototype",P=e=>e==null||U(e,"Void","Empty"),q=e=>e===void 0||U(e,"Void","Empty"),x=e=>e!=null&&!P(e),w=e=>U(e,"Function","AsyncFunction","GeneratorFunction","AsyncGeneratorFunction"),C=e=>typeof e=="function",Ne=e=>U(e,"Map"),Re=e=>U(e,"Set"),rt=(e,t)=>U(e,"Error")&&(t?e instanceof t:!0),Ie=e=>typeof Intl<"u"&&typeof Intl.Locale=="function"&&e instanceof Intl.Locale,O=e=>P(e)||S(e)&&Reflect.ownKeys(e).length===0||m(e)&&e.trim().length===0||typeof e=="number"&&Number.isNaN(e)||me(e)&&e.length===0||Re(e)&&e.size===0||Ne(e)&&e.size===0||ArrayBuffer.isView(e)&&e.byteLength===0||Tt(e)&&Number.isNaN(e.getTime())});function Ot(e,t,r=new WeakSet){let n=t instanceof WeakSet?t:t?.skip??$n;return re(e)||r.has(e)||n.has(e)||e instanceof Date||e instanceof RegExp||e instanceof Error||e instanceof Map||e instanceof Set||e instanceof Promise||e?.[Symbol.toStringTag]==="Enumify"||e[b.$Extensible]?e:(r.add(e),A(e).forEach(([o,s])=>{B(o)&&Ot(s,{skip:n},r)}),Object.freeze(e))}var E,Se,$n,De=_(()=>{"use strict";Y();N();H();E={Unknown:"unknown",Browser:"browser",WebWorker:"web-worker",NodeJS:"nodejs",Deno:"deno",GoogleAppsScript:"google-apps-script"},Se=()=>{let e=globalThis;try{if(x(e.SpreadsheetApp))return{global:e,type:E.GoogleAppsScript};if(x(e.window?.document))return{global:e,type:E.Browser};if(w(e.importScripts)||x(e.WorkerGlobalScope)&&e instanceof e.WorkerGlobalScope)return{global:e,type:E.WebWorker};if(x(e.Deno))return{global:e,type:E.Deno};if(x(e.process?.versions?.node)&&e.process?.release?.name==="node")return{global:e,type:E.NodeJS}}catch{}return{global:e,type:E.Unknown}},$n=new WeakSet});function hr(e){return Object.fromEntries(A(e,!0))}var wr=_(()=>{"use strict";Y();K();N()});function Sr(e,t={},r=!1){let{frozen:n,lock:o,appendOnly:s,onGet:i,keys:a,bind:c,skip:u}=t,p=new Set,l,h,f=be(e);o&&Ot(f,u?{skip:u}:void 0),et(f);let I={isExtensible:g=>Reflect.isExtensible(g),getPrototypeOf:g=>Reflect.getPrototypeOf(g),setPrototypeOf:(g,d)=>{if(n)throw new TypeError("Security: Prototype mutation attempt on protected object");return Reflect.setPrototypeOf(g,d)},getOwnPropertyDescriptor:(g,d)=>{if(!(a&&!a.includes(d))){if(a){if(i&&!ne(d)&&!p.has(d)){p.add(d);try{let T=i(d,g);if(x(T))return{enumerable:!0,configurable:!0,value:T}}finally{p.delete(d)}}return{enumerable:!0,configurable:!0}}return Reflect.getOwnPropertyDescriptor(g,d)}},ownKeys:g=>{if(a)return a;if(i&&!p.has(b.$Discover)){p.add(b.$Discover);try{i(b.$Discover,g)}finally{p.delete(b.$Discover)}}return Reflect.ownKeys(g)},has:(g,d)=>a?a.includes(d):Reflect.has(g,d),deleteProperty:(g,d)=>{if(n)throw new TypeError(`Cannot delete property '${String(d)}' from a protected object.`);if(s&&Reflect.has(g,d))throw new Error(`Security: Deletion attempt on protected key '${String(d)}'`);return Reflect.deleteProperty(g,d)},defineProperty:(g,d,T)=>{if(n&&!Object.isFrozen(g))throw new TypeError(`Cannot define property '${String(d)}' on a frozen object.`);if(s&&Reflect.has(g,d))throw new Error(`Security: Mutation attempt on protected key '${String(d)}'`);return Reflect.defineProperty(g,d,T)},set:(g,d,T,D)=>{if(n&&D===h)throw new TypeError(`Cannot set property '${String(d)}' on a frozen object.`);if(s){if(Array.isArray(g)&&d==="length"&&T<g.length)throw new Error("Security: Truncation attempt on protected array.");if(!(Array.isArray(g)&&d==="length")&&Reflect.has(g,d))throw new Error(`Security: Mutation attempt on protected key '${String(d)}'`)}return Reflect.set(g,d,T,D)},get:(g,d,T)=>{if(d===b.$Target)return T===h?g:void 0;if(n&&(d===b.$Inspect||d==="toJSON")){let v=Object.getOwnPropertyDescriptor(g,d);return v&&w(v.value)?v.value:(l||(l=()=>hr(g)),l)}if(a&&!a.includes(d))return;if(i&&!ne(d)&&!Reflect.has(g,d)&&!p.has(d)){p.add(d);try{let v=i(d,g);if(x(v))return v}finally{p.delete(d)}}let D=Reflect.get(g,d,T);if(c&&d!=="constructor"&&w(D)){let v=Object.getOwnPropertyDescriptor(g,d);if(v&&!v.configurable&&!v.writable)return D;let j=br.get(D);j||(j=new WeakMap,br.set(D,j));let pe=j.get(g);if(pe)return pe;let ar=D.bind(g);return j.set(g,ar),ar}return D}};if(r){let g=Proxy.revocable(f,I);return h=g.proxy,{proxy:g.proxy,revoke:g.revoke}}return h=new Proxy(f,I),h}function xr(e,t=!0,r=t,n=new WeakSet){return Sr(e,{frozen:t,lock:r,skip:n,bind:t})}function $e(e,t=new WeakSet){return Sr(e,{frozen:!0,lock:!0,skip:t,bind:!0})}var br,nt=_(()=>{"use strict";H();wr();De();Y();N();K();br=new WeakMap});function Ce(e,t=new WeakSet){return JSON.stringify(e,function(r,n){if(n===void 0)return"\0__undefined__\0";if(xt(n))return`\0__bigint:${n}__\0`;if(w(n))return`function:${n.name||"anonymous"}`;if(F(n)){if(t.has(n))return"<Circular>";if(t.add(n),Ie(n))return n.toString();if(Ne(n))return`map:[${Array.from(n.entries()).map(o=>Ce(o,t)).sort().join(",")}]`;if(Re(n))return`set:[${Array.from(n).map(o=>Ce(o,t)).sort().join(",")}]`}return n})}function Er(e){return function t(...r){return r.length>=e.length?e(...r):(...n)=>t(...r,...n)}}function L(e){let t=new Map;return function(...r){let n=Ce(this!==void 0&&this!==globalThis?[this,...r]:r);if(!t.has(n)){let o=e.apply(this,r);t.set(n,o)}return t.get(n)}}function Ae(e,t){return{enumerable:!1,configurable:!1,writable:!1,value:function(...r){let n=`${String(e)},${Ce(r)}`,o=Tr.get(this);if(o||(o=new Map,Tr.set(this,o)),!o.has(n)){let s=t.apply(this,r);$e(s),o.set(n,s)}return o.get(n)}}}var Tr,ot=_(()=>{"use strict";nt();N();Tr=new WeakMap});function Or(e){try{return JSON.parse(JSON.stringify(e))}catch(t){throw console.warn("Could not clean object:",t?.message??t),t}}var vr=_(()=>{"use strict";N()});function ie(e){return x(e)?w(e)?e():e:t=>w(t)?t():t}var An,oe,vt=_(()=>{"use strict";Y();N();K();An=e=>{let t=new Set,r=e,n=0;for(;r&&r!==Object.prototype&&n++<10;){let o=Object.getOwnPropertyDescriptors(r);for(let[s,i]of Object.entries(o))B(s)&&(i.enumerable||w(i.get))&&t.add(s);r=Object.getPrototypeOf(r)}return Array.from(t)},oe=e=>{if(re(e)||w(e))return e;if(me(e))return e.map(r=>oe(r));if(Tt(e)||yr(e)||Ne(e)||Re(e))return e;try{if(w(e.toJSON))return oe(e.toJSON())}catch{}let t={};for(let r of An(e))try{t[r]=oe(e[r])}catch{}return t};ie.stringSymbol=ie();ie.symbolRegExp=ie();ie.symbolString=ie();ie.stringString=ie()});function Rr(e,t){try{return globalThis.structuredClone(e,t)}catch{return Or(e)}}function Ln(e,t){return zn(t)}function Pr(e){let t=encodeURI(e);return t.includes("%")&&(t=t.replace(Mn,r=>Ir[r.toUpperCase()]??decodeURI(r))),t}function zn(e){if(m(e))try{return decodeURI(e)}catch{}return e}function Le(e){return!U(e,"Function","AsyncFunction","WeakMap","WeakSet","WeakRef")}function Fn(e,t){return`{"$${e}":${t}}`}function Gn(e){return G(ne(e)?`${Et(e)?"@":""}@(${e.description??""})`:e)}function _t(e){let[t,r,n]=e.toString().match(kn)||[null,void 0,void 0];switch(!0){case ne(e):case P(t):case(x(r)&&q(n)):return e;case x(r):return Symbol.for(n);case q(r):default:return Symbol(n)}}function Z(e,t){let r=ge;ge=t?.compact!==!1;try{let n=G(e,!1);if(t?.signed){if(!m(t.secret)||!t.secret)throw new TypeError("stringify: signed serialization requires an explicit secret string");return`$sig:${Dr(n,t.secret)}:${n}`}return n}finally{ge=r}}function G(e,t=!0){let r=te(e),n=Er(Fn)(r.type);switch(r.type){case"String":{let o=r.value;return o.startsWith("~")&&(o=`~${o}`),t||(t=o==="true"||o==="false"||o==="null"||parseFloat(o).toString()===o||o.startsWith("~")),t?JSON.stringify(Pr(o)):Pr(o)}case"Boolean":case"Null":case"Number":return JSON.stringify(r.value);case"Void":case"Undefined":return ge?JSON.stringify("~u"):n(JSON.stringify("void"));case"BigInt":return ge?JSON.stringify(`~n${r.value.toString()}`):n(r.value.toString());case"Date":return ge?JSON.stringify(`~t${r.value.getTime()}`):n(G(r.value.toJSON()));case"Object":return`{${A(r.value).filter(([,s])=>Le(s)).map(([s,i])=>`${Gn(s)}: ${G(i)}`).join(",")}}`;case"Array":return`[${r.value.filter(s=>Le(s)).map(s=>G(s)).join(",")}]`;case"Map":{let o=Array.from(r.value.entries()).filter(([,s])=>Le(s)).map(([s,i])=>`[${G(s)}, ${G(i)}]`).join(",");return n(`[${o}]`)}case"Set":{let o=Array.from(r.value.values()).filter(s=>Le(s)).map(s=>G(s)).join(",");return n(`[${o}]`)}case"Symbol":{let o=`${Et(r.value)?"@":""}@(${r.value.description??""})`;return ge?JSON.stringify(`~y${o}`):n(JSON.stringify(o))}case"RegExp":return n(G({source:r.value.source,flags:r.value.flags}));default:{let o=r.value;switch(!0){case!Le(o):return;case w(o.toJSON):return n(G(o.toJSON()));case(w(o.toString)&&o.toString!==Object.prototype.toString):{let s=o.toString();return n(s.includes('"')?s:JSON.stringify(s))}case(w(o.valueOf)&&o.valueOf!==Object.prototype.valueOf):return n(JSON.stringify(o.valueOf()));default:{let s=oe(o);return F(s)&&Object.keys(s).length>0?G(s):n(JSON.stringify(o,(i,a)=>O(i)?a:G(a)))}}}}}function ye(e,t){if(!m(e))return e;let r=w(t)?{sentinel:t}:t??{};if(e.startsWith("$sig:")){let o=e.indexOf(":",5);if(o!==-1){let s=e.substring(5,o),i=e.substring(o+1);if(!m(r.secret)||!r.secret){if(console.warn("objectify: signature verification requires an explicit secret string"),r.throwOnError)throw new TypeError("objectify: signature verification requires an explicit secret string");return e}let a=Dr(i,r.secret);if(!Un(s,a)){if(console.warn("objectify: signature verification failed"),r.throwOnError)throw new Error("objectify: signature verification failed");return e}e=i}else if(r.requireSigned){if(console.warn("objectify: malformed signed payload"),r.throwOnError)throw new Error("objectify: malformed signed payload");return e}}else if(r.requireSigned){if(console.warn("objectify: unsigned string rejected by requireSigned policy"),r.throwOnError)throw new Error("objectify: unsigned string rejected by requireSigned policy");return e}let n;try{n=JSON.parse(e,Ln)}catch(o){return e.startsWith('"')&&e.endsWith('"')?(console.warn(`objectify.parse: -> ${e}, ${o.message}`),e):ye(`"${e}"`,r.requireSigned?{...r,requireSigned:!1}:r)}switch(!0){case(e.startsWith("{")&&e.endsWith("}")):case(e.startsWith("[")&&e.endsWith("]")):return Pt(n,r,0);default:return Me(n,r)}}function Pt(e,t,r=0){let n=t.maxDepth??Bn;return r>=n?e:S(e)?Me(A(e).filter(([o])=>B(o)).reduce((o,[s,i])=>Object.assign(o,{[_t(s)]:Me(Pt(i,t,r+1),t)}),{}),t):me(e)?pr(e).map(o=>Me(Pt(o,t,r+1),t)):Me(e,t)}function Me(e,t){if(m(e)&&e.startsWith("~"))try{if(e.startsWith("~~"))return e.substring(1);if(e.startsWith("~n"))return BigInt(e.substring(2));if(e.startsWith("~t")){let s=e.substring(2),i=new Date(tt(s)?Number(s):s);return isNaN(i.getTime())?e:i}if(e==="~u")return t.sentinel?.();if(e.startsWith("~y"))return _t(e.substring(2))}catch{return e}if(!S(e)||Ve(e).length!==1)return e;let[r,n]=A(e)[0];if(!String(r).startsWith("$"))return e;let o=r.substring(1);try{switch(o){case"String":case"Boolean":case"Object":case"Array":return n;case"Number":return Number(n);case"BigInt":return BigInt(n);case"Null":return null;case"Undefined":case"Empty":case"Void":return t.sentinel?.();case"Date":return new Date(n);case"RegExp":return t.allowRegExp===!1||!S(n)||!m(n.source)||n.source.length>Jn?e:new RegExp(n.source,n.flags);case"Symbol":return _t(n);case"Map":return me(n)?new Map(n):e;case"Set":return me(n)?new Set(n):e;default:{if(t.allowClasses===!1||t.allowedClasses&&!(t.allowedClasses instanceof Set?t.allowedClasses.has(r)||t.allowedClasses.has(o):t.allowedClasses.includes(r)||t.allowedClasses.includes(o)))return e;let s=it.get(r);return s?Reflect.construct(s,[n]):(console.warn(`objectify: dont know how to deserialize '${o}'`),e)}}}catch{return e}}var it,_r,Nr,Ir,Mn,kn,Wn,Dr,Un,ge,Bn,Jn,xe=_(()=>{"use strict";ot();Y();vr();vt();K();N();H();it=globalThis[b.$SerializerRegistry]??=new Map,_r=e=>{try{let t=e?.prototype?.[Symbol.toStringTag]??e?.[Symbol.toStringTag];return m(t)?t:void 0}catch{return}},Nr=(e,t)=>{let r=e.startsWith("$")?e:`$${e}`;if(it.has(r)){let n=it.get(r),o=_r(n),s=_r(t),i=n.name||o,a=t.name||s||(e.startsWith("$")?e.slice(1):e);if(n===t||n.toString()===t.toString()||!!t[b.$Identity]&&n[b.$Identity]===t[b.$Identity]||!!t[b.$Target]&&n[b.$Target]===t[b.$Target]||!!i&&!!a&&i===a)return;throw new Error(`[registerSerializable] Collision: '${r}' is already registered with ${n.name||"anonymous constructor"}`)}it.set(r,t)};Ir={"%20":" ","%22":'"',"%3B":";","%3C":"<","%3E":">","%5B":"[","%5D":"]","%5E":"^","%7B":"{","%7C":"|","%7D":"}"},Mn=new RegExp(Object.keys(Ir).join("|"),"gi");kn=/^@(@)?\(([^\)]*)\)$/;Wn=globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID().split("-")[0]:Math.random().toString(36).slice(2,10),Dr=(e,t=Wn)=>{let r=2166136261,n=2654435769,o=`${t}:${e}`;for(let s=0;s<o.length;s++){let i=o.charCodeAt(s);r=Math.imul(r^i,16777619),n=Math.imul(n^i,2246822507)}return(r>>>0).toString(16).padStart(8,"0")+(n>>>0).toString(16).padStart(8,"0")},Un=(e,t)=>{if(!m(e)||!m(t)||e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e.charCodeAt(n)^t.charCodeAt(n);return r===0},ge=!0;Bn=64,Jn=512});function se(e,t,r,n,o,s){function i(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var a=n.kind,c=a==="getter"?"get":a==="setter"?"set":"value",u=!t&&e?n.static?e:e.prototype:null,p=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),l,h=!1,f=r.length-1;f>=0;f--){var I={};for(var g in n)I[g]=g==="access"?{}:n[g];for(var g in n.access)I.access[g]=n.access[g];I.addInitializer=function(T){if(h)throw new TypeError("Cannot add initializers after decoration has completed");s.push(i(T||null))};var d=(0,r[f])(a==="accessor"?{get:p.get,set:p.set}:p[c],I);if(a==="accessor"){if(d===void 0)continue;if(d===null||typeof d!="object")throw new TypeError("Object expected");(l=i(d.get))&&(p.get=l),(l=i(d.set))&&(p.set=l),(l=i(d.init))&&o.unshift(l)}else(l=i(d))&&(a==="field"?o.unshift(l):p[c]=l)}u&&Object.defineProperty(u,n.name,p),h=!0}function ae(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0}var ze=_(()=>{"use strict"});function $r(e,t){return Qe(e)??(q(t)?e.name||void 0:String(t))}function Cr(e,{kind:t,name:r,addInitializer:n}){let o=$r(e,r);if(o&&et(e,o),t==="class")return o&&n(()=>Nr(o,e)),e;throw new Error(`@Serializable decorating unknown 'kind': ${t} (${r})`)}function ce(e,t){let r=(n,o,s)=>{let i=n.prototype,a=o??$r(n,s);if(a&&(i&&!Object.hasOwn(i,Symbol.toStringTag)&&Object.defineProperty(i,Symbol.toStringTag,{value:a,configurable:!0,writable:!1,enumerable:!1}),!n.name||n.name!==a))try{Object.defineProperty(n,"name",{value:a,configurable:!0,writable:!1,enumerable:!1})}catch{}return n};return C(e)&&t?.kind==="class"?r(e,void 0,t.name):(n,o)=>r(n,m(e)?e:void 0,o?.name)}var Fe=_(()=>{"use strict";H();nt();N();xe();K()});var Ge,Nt=_(()=>{"use strict";ze();N();Fe();Ge=(()=>{let e=[ce("BoundedCache")],t,r=[],n,o=Map;var s=class extends o{static{n=this}static{let i=typeof Symbol=="function"&&Symbol.metadata?Object.create(o[Symbol.metadata]??null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:i},null,r),s=n=t.value,i&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),ae(n,r)}#t=new Map;#e=new Set;#r=new Map;maxSize;ttl;constructor(i=1e3,a=1440*60*1e3){super(),this.maxSize=i,this.ttl=a}get isBoundedCache(){return!0}#n(i){let a=this.#t.get(i);return a===void 0?!1:Date.now()>a}evictExpired(){if(this.#t.size===0)return;let i=Date.now();for(let[a,c]of this.#t.entries())i>c&&this.delete(a)}setStatic(i,a){return super.has(i)&&super.delete(i),super.set(i,a),this.#e.add(i),this.#t.delete(i),this.#r.delete(i),this}isStatic(i){return this.#e.has(i)}get(i){if(this.#n(i)){this.delete(i);return}if(!super.has(i))return;let a=super.get(i);return super.delete(i),super.set(i,a),a}has(i){return this.#n(i)?(this.delete(i),!1):super.has(i)}get size(){return this.evictExpired(),super.size}forEach(i,a){this.evictExpired(),super.forEach(i,a)}set(i,a,c){this.evictExpired();let u=this.#t.get(i);for(super.has(i)&&super.delete(i),super.set(i,a),this.#e.delete(i),x(c)?c!==1/0?(this.#t.set(i,Date.now()+c),this.#r.set(i,c)):(this.#t.delete(i),this.#r.delete(i)):u!==void 0?this.#t.set(i,u):this.ttl!==1/0?(this.#t.set(i,Date.now()+this.ttl),this.#r.delete(i)):(this.#t.delete(i),this.#r.delete(i));this.size-this.#e.size>this.maxSize;){let p=!1,l=super.keys(),h=l.next();for(;!h.done;){let f=h.value;if(!this.#e.has(f)){this.delete(f),p=!0;break}h=l.next()}if(!p)break}return this}delete(i){return this.#e.delete(i),this.#t.delete(i),this.#r.delete(i),super.delete(i)}deletePrefix(i){let a=String(i).trim().toLowerCase();if(O(a))return 0;let c=[];for(let u of super.keys())m(u)&&u.toLowerCase().startsWith(a)&&c.push(u);for(let u of c)this.delete(u);return c.length}clear(i){if(i===void 0){this.#e.clear(),this.#t.clear(),this.#r.clear(),super.clear();return}let a=0;for(let c of super.keys()){if(a>=i)break;this.#e.has(c)||(this.delete(c),a++)}}keys(){return this.evictExpired(),super.keys()}values(){return this.evictExpired(),super.values()}entries(){return this.evictExpired(),super.entries()}[Symbol.iterator](){return this.evictExpired(),super[Symbol.iterator]()}toJSON(){this.evictExpired();let i=[];for(let[a,c]of super.entries())m(a)&&i.push([a,c]);return Object.fromEntries(i)}static fromEntries(i,a=1e3,c=1440*60*1e3){let u=new s(a,c);for(let[p,l]of i)u.set(p,l);return u}};return s=n})()});function Mr(e,t){let r;if(q(e))return t??{};switch(k.type){case E.Browser:r=Rt.getItem(e);break;case E.NodeJS:r=ke.has(e)?ke.get(e):Kn(e);break;case E.Deno:r=k.global.Deno.env.get(e);break;case E.GoogleAppsScript:r=k.global.PropertiesService?.getUserProperties().getProperty(e);break;case E.WebWorker:case E.Unknown:r=void 0;break;default:throw new Error(`Cannot determine Javascript context: ${k.type}`)}return m(r)?ye(r):t}function $t(e,t,r){let n=x(t)?Z(t):void 0,o=x(n);switch(k.type){case E.Browser:try{o?Rt.setItem(e,n):Rt.removeItem(e)}catch(s){console.warn(`[Storage] Failed to ${o?"setItem":"removeItem"} for key '${e}':`,s)}break;case E.NodeJS:o?r?.static?ke.setStatic(e,n):ke.set(e,n,r?.ttl):ke.set(e,void 0,r?.ttl);break;case E.Deno:o?k.global.Deno.env.set(e,n):k.global.Deno.env.delete(e);break;case E.GoogleAppsScript:o?k.global.PropertiesService?.getUserProperties().setProperty(e,n):k.global.PropertiesService?.getUserProperties().deleteProperty(e);break;case E.WebWorker:case E.Unknown:break;default:throw new Error(`Cannot determine Javascript context: ${k.type}`)}}var k,Lr,Ar,It,Dt,Rt,ke,Kn,Ct=_(()=>{"use strict";xe();De();N();Nt();k=Se(),Lr=(e=1e3,t=1/0)=>{let r=new Ge(e,t);return{get length(){return r.size},clear:()=>r.clear(),getItem:n=>r.get(n)??null,key:n=>Array.from(r.keys())[n]??null,removeItem:n=>{r.delete(n)},setItem:(n,o)=>{r.set(n,String(o))}}},Ar=new Map,It=e=>{let t=Ar.get(e);return t||(t=Lr(),Ar.set(e,t)),t},Dt=(e="localStorage")=>{try{let t=globalThis?.[e];if(t&&C(t.getItem)&&C(t.setItem)&&C(t.removeItem)&&C(t.clear)&&C(t.key)&&y(t.length))return t}catch{}return It(e)},Rt=k.type===E.Browser?Dt():Lr(),ke=new Ge(1e3,1/0),Kn=e=>{try{let t=Reflect.get(k.global,"process");if(!t||typeof t!="object")return;let r=Reflect.get(t,"env");return!r||typeof r!="object"?void 0:Reflect.get(r,e)}catch{return}}});var zr=_(()=>{"use strict";xe();N()});function Fr(e=[],t){let r=n=>q(t)||x(n)?n:Rr(t);return gr(e)||dr(e)&&!m(e)?Array.from(e,r):[e]}function Gr(e){if(rt(e))return e;let t=new Error(S(e)&&m(e.message)?e.message:String(e));return S(e)&&(t.name=m(e.name)?e.name:"Error","code"in e&&(m(e.code)||y(e.code))&&(t.code=e.code),"stack"in e&&m(e.stack)&&(t.stack=e.stack)),t}var Hi,Yi,At=_(()=>{"use strict";xe();K();N();zr();Hi=BigInt(Number.MAX_SAFE_INTEGER),Yi=BigInt(Number.MIN_SAFE_INTEGER)});var kr=_(()=>{"use strict";At();if(typeof globalThis.Temporal>"u")throw new Error("Temporal API is not available. Node 20+ with a polyfill (e.g. @js-temporal/polyfill) is highly recommended. Native Temporal is fully reliable only on Node 26+ (while Node 22 may have instabilities).");try{if(typeof Temporal.Now.zonedDateTimeISO=="function"&&typeof Temporal.Now.zonedDateTimeISO().add!="function")throw new Error("Incomplete Temporal implementation")}catch(e){let t=Gr(e);if(console.warn("Tempo: Native Temporal implementation appears incomplete. Consider loading a polyfill.",t),t.message!=="Incomplete Temporal implementation")throw t}});function Wr(){return Temporal.Now.instant()}function Ur(e,t=2024){let r=Temporal.ZonedDateTime.from({year:t,month:1,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds,n=Temporal.ZonedDateTime.from({year:t,month:7,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds;return{jan:r,jul:n}}var Lt=_(()=>{"use strict";kr();N()});function We(e,t,r){if(e){if(C(e[t]))return e[t]();if(r&&r in e)return e[r]}}function oo(e){return e?Vn.has(e)?5:qn.has(e)?6:Yn.has(e)?7:1:1}function io(e){return e?e==="IR"?ro:e==="AF"?no:Xn.has(e)?to:Br:Br}function so(e,t){let r=e?.script??(C(e?.maximize)?e.maximize().script:void 0);return r&&eo.has(r)||t&&Qn.has(t)?"rtl":"ltr"}var Zn,jn,Te,ue,ss,as,zt,cs,Hn,ls,Yn,qn,Vn,Xn,Qn,eo,Br,to,ro,no,Mt,us,fs,ao,co,Jr,ps,st,ds,Ft=_(()=>{"use strict";Lt();ot();N();At();Zn=/_/g,jn=/[.@]/,Te=e=>typeof Intl<"u"&&(!e||Object.hasOwn(Intl,e)&&C(Intl[e])),ue=e=>{if(Ie(e)&&(e=e.toString()),!m(e))return;let t=e.trim();if(O(t))return;let r=t.split(jn)[0];if(!O(r))return r.replace(Zn,"-")},ss=L((e,t)=>new Intl.RelativeTimeFormat(ue(e),t)),as=L((e,t)=>new Intl.ListFormat(ue(e),t)),zt=L((e,t)=>new Intl.DateTimeFormat(ue(e),t)),cs=L((e,t)=>{try{return new Intl.PluralRules(ue(e),t)}catch{return{select:()=>"other"}}}),Hn=L((e,t)=>new Intl.NumberFormat(ue(e),t)),ls=L((e,t)=>{try{let r=new Intl.DurationFormat(ue(e),t);if(w(r.format))return r;throw new Error("No format method")}catch{return{format:n=>String(n)}}});Yn=new Set(["US","CA","MX","BR","IL","JP","TW","HK","MO","PH","SG","TH","IN","KR","CO","PE","VE","ZA"]),qn=new Set(["SA","AF","BH","DJ","DZ","EG","IQ","IR","JO","KW","LY","OM","QA","SD","SY","YE"]),Vn=new Set(["MV"]),Xn=new Set(["SA","BH","DJ","DZ","EG","IQ","JO","KW","LY","OM","QA","SD","SY","YE"]),Qn=new Set(["ar","he","fa","ur","yi","ps","sd","ug","ckb"]),eo=new Set(["Arab","Hebr","Thaa","Syrc","Mand","Samr","Nkoo"]),Br=Object.freeze([6,7]),to=Object.freeze([5,6]),ro=Object.freeze([5]),no=Object.freeze([4,5]);Mt=L(e=>{if(Ie(e))return e;if(Te("Locale"))try{let t=ue(e);return new Intl.Locale(t||"en-US")}catch{return}}),us=L(e=>{let t=Mt(e)??Mt("en-US"),r=t?.baseName??Jr(e)??"en-US",n=t?.language??r.split("-")[0]?.toLowerCase(),o=[];for(let pe of r.split("-").slice(1)){if(pe.length===1)break;o.push(pe)}let s=t?.region??(C(t?.maximize)?t.maximize().region:void 0)??o.find(pe=>/^[a-zA-Z]{2}$|^\d{3}$/.test(pe))?.toUpperCase(),i=t?.script??(C(t?.maximize)?t.maximize().script:void 0),a=We(t,"getWeekInfo","weekInfo"),c=a?.firstDay??oo(s),u=Array.isArray(a?.weekend)?Object.freeze([...a.weekend]):io(s),l=We(t,"getHourCycles","hourCycles")??t?.hourCycle??(Te("DateTimeFormat")?zt(r,{hour:"numeric"}).resolvedOptions().hourCycle:void 0),h=Array.isArray(l)&&l.length>0?Object.freeze([...l]):m(l)?Object.freeze([l]):Object.freeze(["h23"]),f=We(t,"getTextInfo","textInfo"),I=f?.direction==="rtl"||f?.direction==="ltr"?f.direction:so(t,n),d=We(t,"getNumberingSystems","numberingSystems")??t?.numberingSystem??(Te("NumberFormat")?Hn(r).resolvedOptions().numberingSystem:void 0),T=Array.isArray(d)&&d.length>0?Object.freeze([...d]):m(d)?Object.freeze([d]):Object.freeze(["latn"]),D=We(t,"getTimeZones","timeZones"),v=Array.isArray(D)&&D.length>0?Object.freeze([...D]):Object.freeze([]),j=Object.freeze({firstDay:c,weekend:u});return Object.freeze({locale:t,baseName:r,language:n,region:s,script:i,weekInfo:j,firstDay:c,weekend:u,hourCycle:h[0],hourCycles:h,direction:I,numberingSystem:T[0],numberingSystems:T,timeZones:v})}),fs=L((e="latn")=>{if(!(!e||e==="latn"||!Te("NumberFormat")))try{let t=new Intl.NumberFormat(`en-u-nu-${e}`,{useGrouping:!1}),r=Array.from({length:10},(n,o)=>t.format(o));return r[0]==="0"&&r[9]==="9"?void 0:Object.freeze(r)}catch{return}}),ao=Object.freeze({locale:"en-US",calendar:"iso8601",numberingSystem:"latn",timeZone:"UTC"}),co=L(()=>Te("DateTimeFormat")?Object.freeze(zt().resolvedOptions()):ao),Jr=L(e=>{let t=ue(e);if(t){if(Te("getCanonicalLocales"))try{return Intl.getCanonicalLocales(t)[0]}catch{return}return Mt(t)?.baseName??t}}),ps=L(e=>Object.freeze(Fr(e).map(t=>Jr(t)).filter(Boolean))),st=L((e=co().timeZone)=>{try{let{jan:t,jul:r}=Ur(e),o=["Australia","Antarctica","Africa/Johannesburg","America/Argentina/Buenos_Aires","America/Sao_Paulo"].some(s=>e.startsWith(s));switch(!0){case r>t:return"north";case r<t:return"south";default:return o?"south":void 0}}catch{return}}),ds=L(e=>{try{let t=new Date(2024,11,24),r=zt(e).formatToParts(t);return r[0].type==="month"&&r[0].value==="12"}catch{return!1}})});function V(e){return{enumerable:!1,configurable:!1,writable:!1,value:e}}function Ee(e,t=!0){let n=de(this)!=="Module"&&w(this?.has)?this:uo,o=te(e),s=Object.create(n);switch(o.type){case"Enumify":case"Object":Object.defineProperties(s,Object.getOwnPropertyDescriptors(o.value));break;case"Array":o.value.forEach((i,a)=>{if(y(i))throw new Error("Enumify: numeric keys are not supported");s[i]=a});break;default:throw new Error(`Enumify: invalid argument type: ${o.type}`)}return xr(s,!0,t)}var lo,uo,Ts,Kr=_(()=>{"use strict";ze();K();N();Y();nt();Fe();ot();lo="Enumify",uo=$e(Object.create(null,{keys:Ae("keys",function(){return A(this,!0).map(([e])=>e)}),values:Ae("values",function(){return A(this,!0).map(([e,t])=>t)}),entries:Ae("entries",function(){return A(this,!0).map(([e,t])=>Object.freeze([e,t]))}),invert:Ae("invert",function(){return Object.fromEntries(this.entries().map(([e,t])=>[t,e]))}),has:V(function(e){return this.keys().includes(e)}),count:V(function(){return this.keys().length}),includes:V(function(e){return this.values().includes(e)}),keyOf:V(function(e){return this.invert()[e]}),extend:V(function(e,t){return Ee.call(this,e,t)}),forEach:V(function(e,t){this.entries().forEach((r,n)=>e.call(t,r,n,this))}),filter:V(function(e,t){return Ee(this.entries().reduce((r,n,o)=>e.call(t,n,o,this)?Object.assign(r,{[n[0]]:n[1]}):r,{}))}),map:V(function(e,t){return Ee(this.entries().reduce((r,n,o)=>Object.assign(r,{[n[0]]:e.call(t,n,o,this)}),{}))}),[Symbol.iterator]:V(function*(){for(let e of this.entries())yield e}),[Symbol.toStringTag]:{enumerable:!1,configurable:!1,writable:!1,value:lo}}));Ts=(()=>{let e=[Cr,ce("Enumify")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),ae(n,r)}constructor(s){return Ee(s)}};return o=n})()});function fo(e,t=W.Info){return y(e)?e>=W.Off&&e<=W.Trace?e:t:m(e)?Zr[e.toLowerCase()]??t:t}var W,z,Zr,at,Gt=_(()=>{"use strict";ze();N();Kr();H();Fe();W=Ee(["Off","Error","Warn","Info","Debug","Trace"]),z={Off:"off",Log:"log",Info:"info",Warn:"warn",Debug:"debug",Trace:"trace",Error:"error"},Zr={[z.Off]:W.Off,[z.Error]:W.Error,[z.Warn]:W.Warn,[z.Info]:W.Info,[z.Log]:W.Info,[z.Debug]:W.Debug,[z.Trace]:W.Trace};at=(()=>{let e=[ce("Logger")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),ae(n,r)}#t;level;constructor(s,i=W.Info){this.#t=s.startsWith("[")?s:`[${s}]`,this.level=i}#e(s,...i){let a;if(i.length>0&&S(i[0]))try{i[0][b.$LogConfig]&&(a=i.shift())}catch{}let c=this.level;if(a){if(a.silent===!0)return;a.debug!==void 0&&(c=fo(a.debug,c))}if(c===W.Off||(Zr[s]??0)>c)return;let p=i.map(l=>{if(rt(l))return l.message;if(S(l))try{let h=l.constructor?.name??"Object";if(h==="Object"){let f=Object.keys(l);return`{ ${f.slice(0,3).join(", ")}${f.length>3?`, ... (+${f.length-3} more)`:""} }`}return`[${h}]`}catch{return"[Object]"}return String(l)}).filter(l=>!O(l)).join(" ");O(p)||console[s](`${this.#t} ${p}`)}log=(...s)=>this.#e(z.Log,...s);info=(...s)=>this.#e(z.Info,...s);warn=(...s)=>this.#e(z.Warn,...s);debug=(...s)=>this.#e(z.Debug,...s);trace=(...s)=>this.#e(z.Trace,...s);error=(...s)=>this.#e(z.Error,...s)};return o=n})()});var jr={};we(jr,{WebStore:()=>po});var Ue,po,Hr=_(()=>{"use strict";ze();Y();xe();K();N();Ct();Fe();Ue={Local:"local",Session:"session"},po=(()=>{let e=[ce("WebStore")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),ae(n,r)}static _localInstance;static _sessionInstance;static get local(){return o._localInstance??=new o(Ue.Local)}static get session(){return o._sessionInstance??=new o(Ue.Session)}#t;#e;get#r(){if(this.#e)return this.#e;let s=this.#t===Ue.Local?"localStorage":"sessionStorage";return this.#e=Dt(s)}#n(s){try{return s(this.#r)}catch{let a=this.#t===Ue.Local?"localStorage":"sessionStorage",c=It(a);return this.#e=c,s(c)}}constructor(s=Ue.Local){this.#t=s}get(s,i){let a=this.#n(c=>c.getItem(Z(s)));return m(a)?ye(a):i??null}set(s,i,a={merge:!0}){if(P(s))return this.clear();let c=this.get(s),u=te(i);switch(u.type){case"Undefined":return this.del(s);case"Object":return c??={},this.#o(s,a.merge?Object.assign(c,u.value):u.value);case"Array":return c??=[],this.#o(s,a.merge?Xe(c.concat(u.value)):i);case"Map":return c??=new Map,a.merge?(u.value.forEach((p,l)=>c.set(l,p)),this.#o(s,c)):this.#o(s,u.value);case"Set":return c??=new Set,a.merge?(u.value.forEach(p=>c.add(p)),this.#o(s,c)):this.#o(s,u.value);default:return this.#o(s,u.value)}}clear(){try{this.#n(s=>s.clear())}catch(s){console.warn("[WebStore] Failed to clear storage:",s)}return this}del(...s){return s.forEach(i=>{try{this.#n(a=>a.removeItem(Z(i)))}catch(a){console.warn(`[WebStore] Failed to removeItem for key '${String(i)}':`,a)}}),this}keys(...s){return this.entries(...s).map(([i])=>i)}values(...s){return this.entries(...s).map(([,i])=>i)}entries(...s){let i=new Set(s.map(c=>Z(c))),a=[];return this.#n(c=>{for(let u=0;u<c.length;u++){let p=c.key(u);if(p!==null&&(O(s)||i.has(p))){let l=c.getItem(p);a.push([ye(p),ye(l)])}}}),a}from(s){return A(s).forEach(([i,a])=>this.set(i,a)),this}#o(s,i){try{this.#n(a=>a.setItem(Z(s),Z(i)))}catch(a){console.warn(`[WebStore] Failed to setItem for key '${String(s)}':`,a)}return this}};return o=n})()});var Vr={};we(Vr,{geoCoords:()=>qr,geoLocation:()=>Be,mapAddress:()=>go,mapHemisphere:()=>mo,mapQuery:()=>Ut});var lt,Yr,R,Wt,X,kt,ct,Be,qr,Ut,mo,go,Bt=_(()=>{"use strict";vt();De();N();Lt();Ft();Gt();lt={catch:!0,debug:0},Yr=Se(),R={},Wt="_magma_browser_map_",X=new at("[Mapper]"),kt=null,ct=()=>(kt||(kt=new Promise((e,t)=>{Yr.type===E.Browser?Promise.resolve().then(()=>(Hr(),jr)).then(({WebStore:r})=>{let n=new r("local"),o=n.get(Wt,{});F(o)&&(o.geolocation&&(!o.geolocation.coords||o.geolocation.$GeolocationPosition)&&delete o.geolocation,Object.assign(R,o)),e(n)}).catch(t):e(void 0)})),kt),Be=(e={})=>ct().then(()=>new Promise((t,r)=>{e=Object.assign({},lt,e);let n=e.catch?t:r;typeof navigator<"u"&&"geolocation"in navigator?navigator.geolocation.getCurrentPosition(o=>{let s=R.geolocation?.coords,i=s?.latitude?.toFixed(3),a=s?.longitude?.toFixed(3),c=R.geolocation?.timestamp??0,u=o.coords.latitude.toFixed(3)!==i,p=o.coords.longitude.toFixed(3)!==a,l=c<Wr().epochMilliseconds-36e5;(u||p||l)&&(Object.assign(R,{georesponse:null}),X.info(e,"GeoLocation: device update")),Object.assign(R,{geolocation:oe(o)}),t(R.geolocation)},o=>{Object.assign(R,{geolocation:{error:o.message},georesponse:null}),n(R.geolocation)}):(Object.assign(R,{geolocation:{error:"Not Supported"},georesponse:null}),n(R.geolocation))})).finally(()=>{(R.geolocation?.error?X.error:X.info)(e,"geoLocation: ",R.geolocation),ct().then(r=>r?.set(Wt,R))}),qr=e=>new Promise((t,r)=>{if(!P(e))return t(e);Be().then(n=>P(n.error)?{location:{lat:n.coords.latitude,lng:n.coords.longitude}}:null).then(n=>t(n)).catch(n=>r(n))}),Ut=(e,t={})=>ct().then(()=>new Promise((r,n)=>{t=Object.assign({},lt,t);let o=t.catch?r:n;qr(e).then(s=>{switch(!0){case(Yr.type!==E.Browser||!window.google?.maps):throw new Error("Google Maps API not configured");case P(s):throw new Error("Cannot determine Coordinates");case P(e):{let i=R.geolocation&&R.georesponse,a=P(R.geolocation?.error)&&P(R.georesponse?.error);if(i&&a)return t.debug&&X.debug(t,"mapQuery: cache"),r(R.georesponse)}default:new window.google.maps.Geocoder().geocode(s).then(i=>r(R.georesponse=oe(i)))}}).catch(s=>{Object.assign(R,{georesponse:{error:s.message}}),o(R.georesponse)})})).finally(()=>{t.debug&&(R.georesponse?.error?X.error:X.debug)(t,"mapQuery: ",R.georesponse),ct().then(r=>r?.set(Wt,R))}),mo=(e,t={})=>Ut(e,t).then(r=>{if(t=Object.assign({},lt,t),P(r.error))return t.debug&&X.debug(t,"sphere: ",r),r.results[0].geometry.location.lat()>=0?"north":"south";let n=st();if(P(n)&&t.catch===!1)throw new Error("Cannot determine Hemisphere");return n}).catch(r=>{if(t.debug&&X.warn(t,"mapHemisphere: ",r.message),t.catch===!1)throw r;return null}),go=(e,t={})=>Ut(e,t).then(r=>{if(!P(r.error))throw new Error(r.error);return r.results[0]}).then(({formatted_address:r,address_components:n})=>n.reduce((o,s)=>(s.types.filter(i=>i!=="political").forEach(i=>o[i]=(o[i]?o[i]+",":"").concat(s.short_name)),o),{formatted_address:r})).catch(r=>{if(t=Object.assign({},lt,t),t.debug&&X.warn(t,"mapAddress: ",r.message),t.catch===!1)throw r;return null})});var Kt={};we(Kt,{HTTP:()=>en,HttpError:()=>Q,METHOD:()=>tn,fetchHead:()=>ho,fetchRequest:()=>yo});var Jt,Xr,en,tn,Q,Qr,yo,ho,Zt=_(()=>{"use strict";N();Jt=2e3,Xr=/\);?$/,en={Ok:200,PermRedirect:301,TempRedirect:302,BadRequest:400,Unauthorised:401,Forbidden:403},tn={Head:"HEAD",Get:"GET",Put:"PUT",Delete:"DELETE",Post:"POST"},Q=class extends Error{status;statusText;body;constructor(t,r,n){super(`${t}: ${r}`),this.status=t,this.statusText=r,this.body=n,this.name="HttpError"}},Qr=async(e,t)=>{let r=e.headers?.get?.("Content-Length")||e.headers?.get?.("content-length");if(r){let a=parseInt(r,10);if(y(a)&&a>t){try{await e.body?.cancel()}catch{}throw new Q(413,`Content-Length (${a}) exceeds limit (${t} bytes)`,null)}}if(!e.body){let a;if(w(e.text))a=await e.text();else if(w(e.json)){let u=await e.json();a=JSON.stringify(u)??""}else a="";let c=new TextEncoder().encode(a).byteLength;if(c>t)throw new Q(413,`Payload length (${c}) exceeds limit (${t} bytes)`,null);return a}let n=e.body.getReader(),o=new TextDecoder,s=0,i="";try{for(;;){let{done:a,value:c}=await n.read();if(a)break;if(c){if(s+=c.byteLength,s>t){try{await n.cancel()}catch{}throw new Q(413,`Streamed payload exceeded limit (${t} bytes)`,null)}i+=o.decode(c,{stream:!0})}}return i+=o.decode(),i}finally{try{n.releaseLock()}catch{}}},yo=(e,t={},r={})=>{let n={...t,signal:t.signal?AbortSignal.any([t.signal,AbortSignal.timeout(r.timeout??Jt)]):AbortSignal.timeout(r.timeout??Jt)};return fetch(e,n).then(async o=>{if(o.ok){let a=(o.headers?.get?.("Content-Type")||o.headers?.get?.("content-type")||"").includes("application/json");if(x(r.maxBytes)){let c=await Qr(o,r.maxBytes);if(r.rawText)return c;if(r.prefix){let u=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(u)}if(a)return JSON.parse(c);try{return JSON.parse(c)}catch{return c}}if(r.rawText)return w(o.text)?await o.text():"";if(r.prefix){let c=await o.text(),u=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(u)}if(w(o.text)){let c=await o.text();try{return JSON.parse(c)}catch{return c}}return w(o.json)?await o.json():""}let s=null;try{let i=x(r.maxBytes)?await Qr(o,r.maxBytes):w(o.text)?await o.text():"";try{s=JSON.parse(i)}catch{s=i}}catch(i){if(i instanceof Q&&i.status===413)throw i}throw new Q(o.status,o.statusText,s)})},ho=e=>{let t=AbortSignal.timeout(Jt),r={method:tn.Head,signal:t};return fetch(e,r).then(({ok:n,status:o,statusText:s,headers:i})=>{if(n||o===en.Forbidden)return{status:o,headers:i};throw new Q(o,s,null)})}});var nn={};we(nn,{serverGeoCoords:()=>ut,serverGeoLocation:()=>Je,serverMapHemisphere:()=>qt});var rn,Yt,jt,Ht,wo,Je,ut,qt,Vt=_(()=>{"use strict";N();Ft();Gt();rn=new at("[ServerMapper]"),Yt="https://ipwho.is",jt={endpoint:`${Yt}/`,timeout:3e3,catch:!0,debug:0},Ht=null,wo=()=>(Ht||(Ht=Promise.resolve().then(()=>(Zt(),Kt))),Ht),Je=async(e={})=>{let t={...jt,...e},r=t.catch!==!1;try{let n=t.endpoint||jt.endpoint;if(m(t.ip)){let l=encodeURIComponent(t.ip.trim());if((n.endsWith("/")?n.slice(0,-1):n)===Yt)n=`${Yt}/${l}`;else if(n.includes("{ip}"))n=n.replace("{ip}",l);else if(l!=="")throw new Error(`Custom endpoint must include an '{ip}' placeholder to resolve a specific IP: ${n}`)}let o=t.timeout??jt.timeout,{fetchRequest:s}=await wo(),i=await s(n,{},{...y(o)?{timeout:o}:{},maxBytes:64*1024});if(typeof i!="object"||P(i))throw new Error("Geolocation lookup failed");if(i.status==="fail"||i.success===!1)throw new Error(i.message||i.reason||"Geolocation lookup failed");let a=y(i.lat)?i.lat:i.latitude,c=y(i.lon)?i.lon:i.lng??i.longitude;if(!y(a)||!y(c))throw new Error("Geolocation lookup failed");let u=m(i.timezone)?i.timezone:i.timezone?.id??i.timeZone,p={lat:a,lng:c,latitude:a,longitude:c,...m(i.country||i.countryName||i.country_name)?{country:i.country||i.countryName||i.country_name}:{},...m(i.city||i.cityName||i.city_name)?{city:i.city||i.cityName||i.city_name}:{},...m(u)?{timezone:u}:{},...m(i.query||i.ip||i.ip_address)?{query:i.query||i.ip||i.ip_address}:{},status:"success"};return t.debug&&rn.info(t,"serverGeoLocation success: ",p),p}catch(n){let o=n?.message||"Server geolocation error";if(t.debug&&rn.error(t,"serverGeoLocation error: ",o),!r)throw n;return{error:o,status:"fail"}}},ut=async(e,t)=>{if(!P(e)){let n=e.latitude??e.lat,o=e.longitude??e.lng??e.lon??e.long;if(y(n)&&y(o))return{lat:n,lng:o}}let r=await Je(t);return P(r.error)&&y(r.lat)&&y(r.lng)?{lat:r.lat,lng:r.lng}:null},qt=async(e,t)=>{let r=await ut(e,t);return r?r.lat>=0?"north":"south":st()??null}});var fn=cr((ra,un)=>{"use strict";un.exports=window.undefined});var Po={};we(Po,{GEO_PROPERTIES:()=>Ze,GeoPlugin:()=>sr,NON_GEO_CONTROL_KEYS:()=>pn,clearStashedGeo:()=>dt,coerceGeo:()=>ve,default:()=>_o,forwardGeocode:()=>or,geoLocation:()=>Be,geoLookup:()=>gt,geoPlugin:()=>vo,getGeoProvider:()=>nr,getStashedGeo:()=>_e,resolveCulturalLocale:()=>ir.resolveCulturalLocale,resolveGeoCoordinates:()=>je,reverseGeocode:()=>fe,serverGeoCoords:()=>ut,serverGeoLocation:()=>Je,serverMapHemisphere:()=>qt,setGeoProvider:()=>mt,stashGeo:()=>pt});var J={};we(J,{definePlugin:()=>wt,defineTerm:()=>bn});Pe(J,yt(ht()));var qe=yt(ht()),wt=e=>(0,qe.definePlugin)({...e,version:"1.4.1"}),bn=e=>(0,qe.defineTerm)({...e,version:"1.4.1"});De();N();Ct();N();function le(...e){for(let t of e){let r=w(t)?t():t;if(r!==void 0)return r}}Nt();var he="_magma_geo_",Qt=1440*60*1e3,bo="https://api.bigdatacloud.net/data/reverse-geocode-client",So=3e3,xo=64*1024,To=1e3,Ze=["latitude","lat","longitude","lng","lon","long","elevation","sphere","country","city","timezone","tz"],sn=e=>{if(!x(e)||mr(e))return NaN;if(m(e)){let t=e.trim();return t.length>0?Number(t):NaN}return y(e)?e:NaN},er=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-90||r>90))return t?Math.round(r*1e3)/1e3:r},tr=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-180||r>180))return t?Math.round(r*1e3)/1e3:r},Ke=(e,t,r=!0)=>{let n=er(e,r),o=tr(t,r);return x(n)&&x(o)?{lat:n,lng:o}:void 0},an=e=>y(e)?Math.round(e*1e3)/1e3:void 0,Oe=(e,t)=>{if(e==="north"||e==="south"||e==="equator")return e;if(y(t))return t>.001?"north":t<-.001?"south":"equator"},cn=(e,t=!0)=>{if(m(e)&&e.includes(",")){let r=e.split(",").map(n=>n.trim());return r.length>=2?Ke(r[0],r[1],t):void 0}return Array.isArray(e)&&e.length>=2?Ke(e[0],e[1],t):void 0},ee=(e,t)=>{let r="lat"in e?e.lat:e.latitude,n="lng"in e?e.lng:e.longitude,o=er(r),s=tr(n),i=Oe(t?.sphere,o??r),a=an(t?.elevation);return{latitude:o??r,longitude:s??n,...i?{sphere:i}:{},...m(t?.city)&&!O(t.city)?{city:t.city.trim()}:{},...m(t?.country)&&!O(t.country)?{country:t.country.trim()}:{},...a!==void 0?{elevation:a}:{},...m(t?.timezone)&&!O(t.timezone)?{timezone:t.timezone.trim()}:{}}},Eo=(e,t=Ze)=>{let r={};if(F(e))for(let n of Object.keys(e))B(n)&&!t.includes(n)&&(r[n]=e[n]);return r},ve=e=>{let t=cn(e);if(t)return ee(t);if(re(e))return;let r=e.geo??e,n=e.config?.geo??e.config,o=le(r?.latitude,r?.lat,e.latitude,e.lat,n?.latitude,n?.lat),s=le(r?.longitude,r?.lng,r?.lon,r?.long,e.longitude,e.lng,e.lon,e.long,n?.longitude,n?.lng,n?.lon,n?.long),i=le(r?.elevation,e.elevation,n?.elevation),a=le(r?.sphere,e.sphere,n?.sphere),c=le(r?.country,e.country,n?.country),u=le(r?.city,e.city,n?.city),p=le(r?.timezone,r?.tz,e.timezone,e.tz,n?.timezone,n?.tz),l={},h=er(o),f=tr(s);h!==void 0&&(l.latitude=h),f!==void 0&&(l.longitude=f);let I=an(i);I!==void 0&&(l.elevation=I);let g=Oe(a,l.latitude);g&&(l.sphere=g),m(c)&&(l.country=c),m(u)&&(l.city=u),m(p)&&(l.timezone=p);let d=F(e.geo)?e.geo:F(e.config?.geo)?e.config.geo:void 0,T=Eo(d);return Object.assign(l,T),Object.keys(l).length>0?l:void 0},rr=e=>{if(m(e)&&!O(e)){let t=e.trim();return t.startsWith(he)?t:`${he}:${t}`}if(e&&S(e)){let t=e.provider??M,r=t&&m(t.name)&&!O(t.name)?`provider:${t.name}`:void 0,n=e.key??e.ip??e.query;if(m(n)&&!O(n)){let o=n.trim();return r?`${he}:${r}:${o}`:`${he}:${o}`}if(r)return`${he}:${r}`}else if(M&&m(M.name)&&!O(M.name))return`${he}:provider:${M.name}`;return he},_e=e=>{let t=rr(e);try{let r=Mr(t)??(C(globalThis.localStorage?.getItem)?globalThis.localStorage.getItem(t):void 0);if(!r)return;let n=m(r)&&(r.startsWith("{")||r.startsWith("["))?JSON.parse(r):r;if(S(n)&&y(n._expires)&&Date.now()>n._expires){dt(e);return}let o=cn(n);if(o)return ee(o);if(S(n)){let s=n.geolocation?.coords??n.coords??n,i=s?.latitude??s?.lat,a=s?.longitude??s?.lng??s?.lon??s?.long,c=Ke(i,a);if(c){let u=n.elevation??s.elevation;return ee(c,{elevation:u,sphere:n.sphere,country:n.country,city:n.city,timezone:n.timezone})}}}catch{}},pt=(e,t=Qt,r)=>{let n=rr(r),o=y(t)&&t>0?{...e,_expires:Date.now()+t}:e;$t(n,o,{ttl:t})},dt=e=>{let t=rr(e);$t(t,void 0)},M;function mt(e){M=e}function nr(){return M}var gt=async(e={})=>{let t=e.provider??M;if(e.refresh!==!0){let a=_e(e);if(a&&y(a.latitude)&&y(a.longitude)){let{latitude:c,longitude:u,...p}=a,l={...p,status:"cached",lat:c,lng:u,latitude:c,longitude:u};if((e.reverse===!0||e.autoReverse===!0)&&(!l.city||!l.country)){let f=await fe(l,e);f&&(!l.city&&$(f.city)&&(l.city=f.city),!l.country&&$(f.country)&&(l.country=f.country))}return l}}let n;if(t&&w(t.lookup))try{let a=await t.lookup(e);if(a){if(n=a,a.error&&e.fallback===!1)return a}else if(e.fallback===!1)return{error:"Provider returned null and fallback is disabled"}}catch(a){if(e.fallback===!1)return{error:a?.message??"Provider lookup failed"}}if(!n||n.error){if(e.fallback===!1&&(t||n?.error))return n&&n.error?n:{error:"Geolocation resolution failed and fallback is disabled"};let{type:a}=Se();switch(a){case E.Browser:{let{geoLocation:c}=await Promise.resolve().then(()=>(Bt(),Vr)),u=await c(e);if(u.error)return{error:u.error};let p=u.coords?.latitude,l=u.coords?.longitude;n={...u,lat:p,lng:l,latitude:p,longitude:l};break}case E.WebWorker:case E.NodeJS:case E.Deno:default:{let{serverGeoLocation:c}=await Promise.resolve().then(()=>(Vt(),nn));n=await c(e);break}}}let o=n.latitude??n.lat,s=n.longitude??n.lng,i=Ke(o,s);if(P(n.error)&&i){let a=Oe(n.sphere,i.lat);if(n.lat=i.lat,n.lng=i.lng,n.latitude=i.lat,n.longitude=i.lng,n.sphere=a,(e.reverse===!0||e.autoReverse===!0)&&(!n.city||!n.country)){let p=await fe(n,e);p&&(!n.city&&$(p.city)&&(n.city=p.city),!n.country&&$(p.country)&&(n.country=p.country))}let u=ee(i,n);try{let p=y(e.ttl)?e.ttl:Qt;pt(u,p,e)}catch{}}return n},Xt=null,Oo=()=>(Xt||(Xt=Promise.resolve().then(()=>(Zt(),Kt))),Xt),ft=new Ge(To,Qt),ln=e=>{try{let t=new URL(e);return t.protocol==="https:"||t.hostname==="localhost"||t.hostname==="127.0.0.1"}catch{return!1}};var on=(e,t,r)=>{let n=`${e.toFixed(2)},${t.toFixed(2)}`;if(m(r)&&!O(r))return`${n}:${r.trim()}`;if(S(r)){let s=Object.hasOwn(r,"provider")?r.provider:M,i=s&&m(s.name)&&!O(s.name)?s.name.trim():void 0,a=m(r.reverseEndpoint??r.reverseGeoEndpoint)&&!O(r.reverseEndpoint??r.reverseGeoEndpoint)?(r.reverseEndpoint??r.reverseGeoEndpoint).trim():void 0,c=a&&ln(a)?a:void 0;if(i&&c)return`${n}:${i}:${c}`;if(i)return`${n}:${i}`;if(c)return`${n}:${c}`}else if(M&&m(M.name)&&!O(M.name))return`${n}:${M.name.trim()}`;return n};async function fe(e,t){let r=ve(e);if(!r||!y(r.latitude)||!y(r.longitude))return null;let n=r.latitude,o=r.longitude,s=on(n,o,t),i=t?.refresh!==!0;if(i){let f=ft.get(s);if(f)return{...f,latitude:n,longitude:o,sphere:Oe(f.sphere,n),elevation:y(f.elevation)?f.elevation:r.elevation,timezone:m(f.timezone)?f.timezone:r.timezone}}let a=S(t)&&Object.hasOwn(t,"provider"),c=a?t.provider:M;if(c&&w(c.reverseGeocode))try{let f=await c.reverseGeocode(r,t);if(f&&S(f)){let I=ee({lat:n,lng:o},{sphere:f.sphere,city:f.city,country:f.country,elevation:y(f.elevation)?f.elevation:r.elevation,timezone:m(f.timezone)?f.timezone:r.timezone}),g=ee({lat:n,lng:o},{sphere:f.sphere,city:f.city,country:f.country,timezone:f.timezone});return ft.set(s,g),I}if(t?.fallback===!1)return null}catch(f){if(t?.fallback===!1)throw f}else if(t?.fallback===!1&&(c||a))return null;let u=t?.reverseEndpoint??t?.reverseGeoEndpoint;if($(u)){let f=u.trim();if(!ln(f))return t?.fallback===!1?null:r}let p=$(u)?u.trim():void 0,l=on(n,o,p??"default");if(i){let f=ft.get(l);if(f)return{...f,latitude:n,longitude:o,sphere:Oe(f.sphere,n),elevation:y(f.elevation)?f.elevation:r.elevation,timezone:m(f.timezone)?f.timezone:r.timezone}}let h;if(p)if(/\{(?:latitude|lat|longitude|lng|lon)\}/i.test(p))h=p.replace(/\{latitude\}/gi,encodeURIComponent(n)).replace(/\{lat\}/gi,encodeURIComponent(n)).replace(/\{longitude\}/gi,encodeURIComponent(o)).replace(/\{lng\}/gi,encodeURIComponent(o)).replace(/\{lon\}/gi,encodeURIComponent(o));else{let f=p.includes("?")?"&":"?";h=`${p}${f}latitude=${encodeURIComponent(n)}&longitude=${encodeURIComponent(o)}`}else h=`${bo}?latitude=${n}&longitude=${o}&localityLanguage=en`;try{let f=y(t?.timeout)&&t.timeout>0?t.timeout:So,I=y(t?.maxBytes)&&t.maxBytes>0?t.maxBytes:xo,{fetchRequest:g}=await Oo(),d=await g(h,{},{timeout:f,maxBytes:I});if(S(d)){let T=$(d.city)?d.city.trim():$(d.locality)?d.locality.trim():$(d.principalSubdivision)?d.principalSubdivision.trim():void 0,D=$(d.countryCode)?d.countryCode.trim():$(d.countryName)?d.countryName.trim():void 0,v=ee({lat:n,lng:o},{city:T,country:D,elevation:r.elevation,timezone:r.timezone});if($(T)||$(D)){let j=ee({lat:n,lng:o},{city:T,country:D});ft.set(l,j)}return v}}catch{}return r}async function or(e,t){let r=t?.provider??M;return r&&w(r.forwardGeocode)?r.forwardGeocode(e,t):null}var je=async(e,t={})=>{let r=S(e)?{...e,...t}:t,n=ve(e);if(n&&y(n.latitude)&&y(n.longitude)){if((r.reverse===!0||r.autoReverse===!0)&&(!n.city||!n.country)){let c=await fe(n,r);if(c)return{...c,...n,city:$(n.city)?n.city:c.city,country:$(n.country)?n.country:c.country,lat:n.latitude,lng:n.longitude,latitude:n.latitude,longitude:n.longitude}}return{...n,lat:n.latitude,lng:n.longitude}}let o=r.refresh===!0?void 0:_e(r);if(o&&y(o.latitude)&&y(o.longitude)){if((r.reverse===!0||r.autoReverse===!0)&&(!o.city||!o.country)){let c=await fe(o,r);if(c)return{...c,...o,city:$(o.city)?o.city:c.city,country:$(o.country)?o.country:c.country,lat:o.latitude,lng:o.longitude,latitude:o.latitude,longitude:o.longitude}}return{...o,lat:o.latitude,lng:o.longitude}}let s=await gt(r),i=Ke(s.lat,s.lng);if(P(s.error)&&i){let a=Oe(s.sphere,i.lat),c={...ee(i,{...s,sphere:a}),lat:i.lat,lng:i.lng,latitude:i.lat,longitude:i.lng,sphere:a};if((r.reverse===!0||r.autoReverse===!0)&&(!c.city||!c.country)){let p=await fe(c,r);if(p)return{...p,...c,city:$(c.city)?c.city:p.city,country:$(c.country)?c.country:p.country,lat:i.lat,lng:i.lng,latitude:i.lat,longitude:i.lng,sphere:a}}return c}return null};var ir=yt(fn(),1);Vt();Bt();N();var pn=["setTimezone","setLocale","refresh","ttl","endpoint","timeout","maxBytes","highAccuracy","catch","debug","geo","provider","fallback","reverse","autoReverse"];var sr=wt({name:"geo",install(e,t){let r=e||this;t?.provider&&mt(t.provider);let n=(o,s)=>{let i=r.config?.pluginOptions?.geo,a=s?.config?.pluginOptions?.geo;return{...S(t)?t:{},...S(i)?i:{},...S(a)?a:{},...S(o)?o:{}}};Object.hasOwn(r,"geo")||Object.defineProperty(r,"geo",{value:(0,J.deepFreeze)({lookup:s=>gt(n(s)),resolve:(s,i)=>je(s,n(i,s)),coerce:ve,stash:pt,clear:dt,get:_e,setProvider:mt,getProvider:nr,reverse:(s,i)=>fe(s,n(i)),forward:(s,i)=>or(s,n(i)),server:Je,browser:Be,get current(){return _e()??r.config?.geo}}),writable:!1,configurable:!1,enumerable:!1}),e.prototype.geoLocate=async function(o){let s=n(o,this),i=s?.setTimezone!==!1,a=s?.setLocale??!0,c=await je(this,s);if(c){let u=S(this.config.geo)?this.config.geo:{},p={};for(let v of Object.keys(u))B(v)&&!Ze.includes(v)&&(p[v]=u[v]);let l=ve(o)??{};if(S(o))for(let v of Object.keys(o))B(v)&&!pn.includes(v)&&(Ze.includes(v)||(p[v]=o[v]));let h=y(c?.elevation)?c.elevation:y(u.elevation)?u.elevation:void 0,f={...p,...c,...y(h)?{elevation:h}:{},...l},I=f.latitude,g=f.longitude;y(I)&&(f.latitude=Math.round(I*1e3)/1e3),y(g)&&(f.longitude=Math.round(g*1e3)/1e3),!f.sphere&&y(I)&&(f.sphere=I>.001?"north":I<-.001?"south":"equator");let d=this,T=f.timezone;i&&m(T)&&!O(T)&&(d=this.set({timeZone:T}));let D=f.country||m(a)?(0,ir.resolveCulturalLocale)(this.locale??this.config.locale,f.country,a):void 0;return new e(d,{...d.config,...D?{locale:D}:{},geo:(0,J.deepFreeze)(f),...f.sphere?{sphere:f.sphere}:{}})}return this},e.prototype.geoLookup=async function(o){return je(this,n(o,this))}}}),vo=sr,_o=sr;return wn(Po);})();
package/dist/index.js CHANGED
@@ -2775,8 +2775,8 @@ __export(sdk_exports, {
2775
2775
  __reExport(sdk_exports, sdk_star);
2776
2776
  import * as sdk_star from "@magmacomputing/tempo/plugin/sdk";
2777
2777
  import { definePlugin as originalPlugin, defineTerm as originalTerm } from "@magmacomputing/tempo/plugin/sdk";
2778
- var definePlugin = (config) => originalPlugin({ ...config, version: "1.4.0" });
2779
- var defineTerm = (config) => originalTerm({ ...config, version: "1.4.0" });
2778
+ var definePlugin = (config) => originalPlugin({ ...config, version: "1.4.1" });
2779
+ var defineTerm = (config) => originalTerm({ ...config, version: "1.4.1" });
2780
2780
 
2781
2781
  // ../../library/dist/common/runtime/mapper.library.js
2782
2782
  init_utility_library();
@@ -3004,7 +3004,7 @@ var geoLookup = async (opts = {}) => {
3004
3004
  const stashed = getStashedGeo(opts);
3005
3005
  if (stashed && isNumber(stashed.latitude) && isNumber(stashed.longitude)) {
3006
3006
  const { latitude, longitude, ...rest } = stashed;
3007
- return {
3007
+ const cachedRes = {
3008
3008
  ...rest,
3009
3009
  status: "cached",
3010
3010
  lat: latitude,
@@ -3012,6 +3012,17 @@ var geoLookup = async (opts = {}) => {
3012
3012
  latitude,
3013
3013
  longitude
3014
3014
  };
3015
+ const shouldReverse = opts.reverse === true || opts.autoReverse === true;
3016
+ if (shouldReverse && (!cachedRes.city || !cachedRes.country)) {
3017
+ const reversed = await reverseGeocode(cachedRes, opts);
3018
+ if (reversed) {
3019
+ if (!cachedRes.city && isText(reversed.city))
3020
+ cachedRes.city = reversed.city;
3021
+ if (!cachedRes.country && isText(reversed.country))
3022
+ cachedRes.country = reversed.country;
3023
+ }
3024
+ }
3025
+ return cachedRes;
3015
3026
  }
3016
3027
  }
3017
3028
  let res;
@@ -3065,6 +3076,16 @@ var geoLookup = async (opts = {}) => {
3065
3076
  res.latitude = coords.lat;
3066
3077
  res.longitude = coords.lng;
3067
3078
  res.sphere = sphere;
3079
+ const shouldReverse = opts.reverse === true || opts.autoReverse === true;
3080
+ if (shouldReverse && (!res.city || !res.country)) {
3081
+ const reversed = await reverseGeocode(res, opts);
3082
+ if (reversed) {
3083
+ if (!res.city && isText(reversed.city))
3084
+ res.city = reversed.city;
3085
+ if (!res.country && isText(reversed.country))
3086
+ res.country = reversed.country;
3087
+ }
3088
+ }
3068
3089
  const stashPayload = assembleGeoConfig(coords, res);
3069
3090
  try {
3070
3091
  const ttl = isNumber(opts.ttl) ? opts.ttl : DEFAULT_GEO_TTL;
@@ -3227,11 +3248,12 @@ async function forwardGeocode(query, opts) {
3227
3248
  return provider && isFunction(provider.forwardGeocode) ? provider.forwardGeocode(query, opts) : null;
3228
3249
  }
3229
3250
  var resolveGeoCoordinates = async (input, opts = {}) => {
3251
+ const effectiveOpts = isObject(input) ? { ...input, ...opts } : opts;
3230
3252
  const coerced = coerceGeo(input);
3231
3253
  if (coerced && isNumber(coerced.latitude) && isNumber(coerced.longitude)) {
3232
- const shouldReverse = opts.reverse === true || opts.autoReverse === true;
3254
+ const shouldReverse = effectiveOpts.reverse === true || effectiveOpts.autoReverse === true;
3233
3255
  if (shouldReverse && (!coerced.city || !coerced.country)) {
3234
- const reversed = await reverseGeocode(coerced, opts);
3256
+ const reversed = await reverseGeocode(coerced, effectiveOpts);
3235
3257
  if (reversed) {
3236
3258
  return {
3237
3259
  ...reversed,
@@ -3251,25 +3273,60 @@ var resolveGeoCoordinates = async (input, opts = {}) => {
3251
3273
  lng: coerced.longitude
3252
3274
  };
3253
3275
  }
3254
- const stashed = opts.refresh === true ? void 0 : getStashedGeo(opts);
3255
- if (stashed && isNumber(stashed.latitude) && isNumber(stashed.longitude))
3276
+ const stashed = effectiveOpts.refresh === true ? void 0 : getStashedGeo(effectiveOpts);
3277
+ if (stashed && isNumber(stashed.latitude) && isNumber(stashed.longitude)) {
3278
+ const shouldReverse = effectiveOpts.reverse === true || effectiveOpts.autoReverse === true;
3279
+ if (shouldReverse && (!stashed.city || !stashed.country)) {
3280
+ const reversed = await reverseGeocode(stashed, effectiveOpts);
3281
+ if (reversed) {
3282
+ return {
3283
+ ...reversed,
3284
+ ...stashed,
3285
+ city: isText(stashed.city) ? stashed.city : reversed.city,
3286
+ country: isText(stashed.country) ? stashed.country : reversed.country,
3287
+ lat: stashed.latitude,
3288
+ lng: stashed.longitude,
3289
+ latitude: stashed.latitude,
3290
+ longitude: stashed.longitude
3291
+ };
3292
+ }
3293
+ }
3256
3294
  return {
3257
3295
  ...stashed,
3258
3296
  lat: stashed.latitude,
3259
3297
  lng: stashed.longitude
3260
3298
  };
3261
- const lookup = await geoLookup(opts);
3299
+ }
3300
+ const lookup = await geoLookup(effectiveOpts);
3262
3301
  const coords = normalizeCoords(lookup.lat, lookup.lng);
3263
3302
  if (isNullish(lookup.error) && coords) {
3264
3303
  const sphere = resolveSphere(lookup.sphere, coords.lat);
3265
- return {
3266
- ...lookup,
3304
+ const base = {
3305
+ ...assembleGeoConfig(coords, { ...lookup, sphere }),
3267
3306
  lat: coords.lat,
3268
3307
  lng: coords.lng,
3269
3308
  latitude: coords.lat,
3270
3309
  longitude: coords.lng,
3271
3310
  sphere
3272
3311
  };
3312
+ const shouldReverse = effectiveOpts.reverse === true || effectiveOpts.autoReverse === true;
3313
+ if (shouldReverse && (!base.city || !base.country)) {
3314
+ const reversed = await reverseGeocode(base, effectiveOpts);
3315
+ if (reversed) {
3316
+ return {
3317
+ ...reversed,
3318
+ ...base,
3319
+ city: isText(base.city) ? base.city : reversed.city,
3320
+ country: isText(base.country) ? base.country : reversed.country,
3321
+ lat: coords.lat,
3322
+ lng: coords.lng,
3323
+ latitude: coords.lat,
3324
+ longitude: coords.lng,
3325
+ sphere
3326
+ };
3327
+ }
3328
+ }
3329
+ return base;
3273
3330
  }
3274
3331
  return null;
3275
3332
  };
@@ -1 +1 @@
1
- "use strict";var Magma;((Magma||={}).plugins||={}).geo=(()=>{var gn=Object.create;var Ye=Object.defineProperty;var yn=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var wn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var v=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var cr=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},he=(e,t)=>{for(var r in t)Ye(e,r,{get:t[r],enumerable:!0})},He=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hn(t))!bn.call(e,o)&&o!==r&&Ye(e,o,{get:()=>t[o],enumerable:!(n=yn(t,o))||n.enumerable});return e},Pe=(e,t,r)=>(He(e,t,"default"),r&&He(r,t,"default")),ht=(e,t,r)=>(r=e!=null?gn(wn(e)):{},He(t||!e||!e.__esModule?Ye(r,"default",{value:e,enumerable:!0}):r,e)),Sn=e=>He(Ye({},"__esModule",{value:!0}),e);var wt=cr((Io,lr)=>{"use strict";lr.exports=window.Magma.pluginSdk});var Tn,En,On,_n,vn,Pn,Nn,In,ur,Rn,fr,b,H=v(()=>{"use strict";Tn=Symbol.for("$LibraryTarget"),En=Symbol.for("$LibraryDiscover"),On=Symbol.for("$LibraryExtensible"),_n=Symbol.for("nodejs.util.inspect.custom"),vn=Symbol.for("$LibraryLogConfig"),Pn=Symbol.for("$LibraryRegistry"),Nn=Symbol.for("$LibraryRegister"),In=Symbol.for("$LibrarySerializerRegistry"),ur=Symbol.for("$LibraryMutable"),Rn=Symbol.for("$LibraryIdentity"),fr=Symbol.for("$LibraryUnwrapped"),b={$Target:Tn,$Discover:En,$Extensible:On,$Inspect:_n,$LogConfig:vn,$Registry:Pn,$Register:Nn,$SerializerRegistry:In,$Identity:Rn,$Mutable:ur,$Unwrapped:fr}});function we(e){let t=e,r=0,n=50;for(;t;){let o=t[b.$Target];if(!o||r>=n)break;t=o,r++}return t}function C(e,t=!1){if(!e||typeof e!="object")return[];let r=we(e);if(!t){let l=Reflect.ownKeys(r),m=[];for(let f of l){let h=Object.getOwnPropertyDescriptor(r,f);h&&h.enumerable&&m.push([f,r[f]])}return m}let n=[],o=50,s=0,i=r;for(;i&&i!==Object.prototype&&s++<o;)n.push(we(i)),i=Object.getPrototypeOf(i);let a=[],c=new Set;for(let l of n.reverse()){let m=Reflect.ownKeys(l);for(let f of m){if(c.has(f))continue;let h=Object.getOwnPropertyDescriptor(l,f);!h||!h.enumerable||(c.add(f),a.push([f,r[f]]))}}return a}function Ve(e,t=!1){return C(e,t).map(([r])=>r)}function pr(e,t=!1){return C(e,t).map(([r,n])=>n)}function Xe(e,t,r){return t?Xe(e.map(t,r)):Array.from(new Set(e))}var Y=v(()=>{"use strict";H()});var St,xt,Qe,pe,ee,Dn,$n,et,K=v(()=>{"use strict";H();Y();St=[],xt=e=>{if(e===null)return"Null";if(e===void 0)return"Undefined";let t=typeof e;if(t==="string")return"String";if(t==="number")return"Number";if(t==="boolean")return"Boolean";if(t==="bigint")return"BigInt";if(t==="symbol")return"Symbol";try{let r=t==="object"?we(e):e;return Object.prototype.toString.call(r).slice(8,-1)}catch{return t==="function"?"Function":"Object"}},Qe=e=>{try{let t=e?.[Symbol.toStringTag]??e?.prototype?.[Symbol.toStringTag];if(typeof t=="string")return t}catch{}},pe=(e,...t)=>{let r=e;try{r=e?.[b.$Target]??e}catch{r=e}let n=xt(r);switch(n){case"Function":try{return $n(r)?"Class":"Function"}catch{return"Function"}case"Object":{try{if("length"in r&&Object.keys(r).every(s=>s==="length"||Number.isFinite(Number(s))))return"ArrayLike";for(let s of t){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}let o=globalThis[b.$Registry]??[];for(let s of[...St,...o]){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}}catch{return"Object"}return"Object"}default:return n}},ee=(e,...t)=>({type:pe(e,...t),value:e}),Dn=/^\s*(class\s|\[native code\])/,$n=e=>{if(typeof e!="function")return!1;let t=e?.[b.$Target]??e;if(!("prototype"in t))return!1;let r=t?.name,n=Qe(t);if(t?.[b.$Identity]||t?.prototype?.[b.$Identity]||typeof n=="string"&&n.startsWith("Temporal."))return!0;if(typeof n=="string"&&n.endsWith("Function"))return!1;if((globalThis[b.$Registry]??[]).some(s=>(s.class?.[b.$Target]??s.class)===t||r&&s.type===r||n&&s.type===n))return!0;try{let s=Function.prototype.toString.call(t);if(Dn.test(s))return!0;let i=Object.getOwnPropertyDescriptor(t,"prototype");if(i&&i.writable===!1&&!Object.isFrozen(t))return!0;let a=t.prototype;if(a&&Object.getOwnPropertyNames(a).length>2)return!0}catch{return!1}return!1},et=(e,t)=>{if(typeof e!="function")return;let r=Qe(e),n=t??r??e.name;n&&!["Object","Function",""].includes(n)&&(St.some(o=>o.class===e)||St.push({class:e,type:n}))}});function tt(e){switch(typeof e){case"number":return Number.isFinite(e);case"bigint":return!0;case"string":{let r=e.trim();return r.length===0?!1:Cn.test(r)||y(Number(r))}default:return!1}}var B,te,F,dr,d,G,y,Cn,Tt,mr,de,gr,S,Et,yr,re,Ot,J,P,q,x,w,$,Ne,Ie,rt,Re,O,N=v(()=>{"use strict";H();K();B=(e,...t)=>t.includes(pe(e)),te=e=>e===null||typeof e!="object"&&typeof e!="function",F=e=>!te(e),dr=e=>Symbol.iterator in Object(e)&&!d(e),d=e=>typeof e=="string",G=e=>typeof e=="string"&&e.trim().length>0,y=e=>Number.isFinite(e),Cn=/^[+-]?[0-9]+n$/;Tt=e=>typeof e=="bigint",mr=e=>typeof e=="boolean",de=e=>Array.isArray(e),gr=e=>xt(e)==="Object"&&"length"in e&&Object.keys(e).every(t=>t==="length"||y(Number(t))),S=e=>B(e,"Object"),Et=e=>B(e,"Date"),yr=e=>B(e,"RegExp"),re=e=>typeof e=="symbol",Ot=e=>typeof e=="symbol"&&Symbol.keyFor(e)!==void 0,J=e=>e!=="__proto__"&&e!=="constructor"&&e!=="prototype",P=e=>e==null||B(e,"Void","Empty"),q=e=>e===void 0||B(e,"Void","Empty"),x=e=>e!=null&&!P(e),w=e=>B(e,"Function","AsyncFunction","GeneratorFunction","AsyncGeneratorFunction"),$=e=>typeof e=="function",Ne=e=>B(e,"Map"),Ie=e=>B(e,"Set"),rt=(e,t)=>B(e,"Error")&&(t?e instanceof t:!0),Re=e=>typeof Intl<"u"&&typeof Intl.Locale=="function"&&e instanceof Intl.Locale,O=e=>P(e)||S(e)&&Reflect.ownKeys(e).length===0||d(e)&&e.trim().length===0||typeof e=="number"&&Number.isNaN(e)||de(e)&&e.length===0||Ie(e)&&e.size===0||Ne(e)&&e.size===0||ArrayBuffer.isView(e)&&e.byteLength===0||Et(e)&&Number.isNaN(e.getTime())});function _t(e,t,r=new WeakSet){let n=t instanceof WeakSet?t:t?.skip??An;return te(e)||r.has(e)||n.has(e)||e instanceof Date||e instanceof RegExp||e instanceof Error||e instanceof Map||e instanceof Set||e instanceof Promise||e?.[Symbol.toStringTag]==="Enumify"||e[b.$Extensible]?e:(r.add(e),C(e).forEach(([o,s])=>{J(o)&&_t(s,{skip:n},r)}),Object.freeze(e))}var E,be,An,De=v(()=>{"use strict";Y();N();H();E={Unknown:"unknown",Browser:"browser",WebWorker:"web-worker",NodeJS:"nodejs",Deno:"deno",GoogleAppsScript:"google-apps-script"},be=()=>{let e=globalThis;try{if(x(e.SpreadsheetApp))return{global:e,type:E.GoogleAppsScript};if(x(e.window?.document))return{global:e,type:E.Browser};if(w(e.importScripts)||x(e.WorkerGlobalScope)&&e instanceof e.WorkerGlobalScope)return{global:e,type:E.WebWorker};if(x(e.Deno))return{global:e,type:E.Deno};if(x(e.process?.versions?.node)&&e.process?.release?.name==="node")return{global:e,type:E.NodeJS}}catch{}return{global:e,type:E.Unknown}},An=new WeakSet});function hr(e){return Object.fromEntries(C(e,!0))}var wr=v(()=>{"use strict";Y();K();N()});function Sr(e,t={},r=!1){let{frozen:n,lock:o,appendOnly:s,onGet:i,keys:a,bind:c,skip:l}=t,m=new Set,f,h,p=we(e);o&&_t(p,l?{skip:l}:void 0),et(p);let R={isExtensible:g=>Reflect.isExtensible(g),getPrototypeOf:g=>Reflect.getPrototypeOf(g),setPrototypeOf:(g,u)=>{if(n)throw new TypeError("Security: Prototype mutation attempt on protected object");return Reflect.setPrototypeOf(g,u)},getOwnPropertyDescriptor:(g,u)=>{if(!(a&&!a.includes(u))){if(a){if(i&&!re(u)&&!m.has(u)){m.add(u);try{let T=i(u,g);if(x(T))return{enumerable:!0,configurable:!0,value:T}}finally{m.delete(u)}}return{enumerable:!0,configurable:!0}}return Reflect.getOwnPropertyDescriptor(g,u)}},ownKeys:g=>{if(a)return a;if(i&&!m.has(b.$Discover)){m.add(b.$Discover);try{i(b.$Discover,g)}finally{m.delete(b.$Discover)}}return Reflect.ownKeys(g)},has:(g,u)=>a?a.includes(u):Reflect.has(g,u),deleteProperty:(g,u)=>{if(n)throw new TypeError(`Cannot delete property '${String(u)}' from a protected object.`);if(s&&Reflect.has(g,u))throw new Error(`Security: Deletion attempt on protected key '${String(u)}'`);return Reflect.deleteProperty(g,u)},defineProperty:(g,u,T)=>{if(n&&!Object.isFrozen(g))throw new TypeError(`Cannot define property '${String(u)}' on a frozen object.`);if(s&&Reflect.has(g,u))throw new Error(`Security: Mutation attempt on protected key '${String(u)}'`);return Reflect.defineProperty(g,u,T)},set:(g,u,T,D)=>{if(n&&D===h)throw new TypeError(`Cannot set property '${String(u)}' on a frozen object.`);if(s){if(Array.isArray(g)&&u==="length"&&T<g.length)throw new Error("Security: Truncation attempt on protected array.");if(!(Array.isArray(g)&&u==="length")&&Reflect.has(g,u))throw new Error(`Security: Mutation attempt on protected key '${String(u)}'`)}return Reflect.set(g,u,T,D)},get:(g,u,T)=>{if(u===b.$Target)return T===h?g:void 0;if(n&&(u===b.$Inspect||u==="toJSON")){let _=Object.getOwnPropertyDescriptor(g,u);return _&&w(_.value)?_.value:(f||(f=()=>hr(g)),f)}if(a&&!a.includes(u))return;if(i&&!re(u)&&!Reflect.has(g,u)&&!m.has(u)){m.add(u);try{let _=i(u,g);if(x(_))return _}finally{m.delete(u)}}let D=Reflect.get(g,u,T);if(c&&u!=="constructor"&&w(D)){let _=Object.getOwnPropertyDescriptor(g,u);if(_&&!_.configurable&&!_.writable)return D;let j=br.get(D);j||(j=new WeakMap,br.set(D,j));let fe=j.get(g);if(fe)return fe;let ar=D.bind(g);return j.set(g,ar),ar}return D}};if(r){let g=Proxy.revocable(p,R);return h=g.proxy,{proxy:g.proxy,revoke:g.revoke}}return h=new Proxy(p,R),h}function xr(e,t=!0,r=t,n=new WeakSet){return Sr(e,{frozen:t,lock:r,skip:n,bind:t})}function $e(e,t=new WeakSet){return Sr(e,{frozen:!0,lock:!0,skip:t,bind:!0})}var br,nt=v(()=>{"use strict";H();wr();De();Y();N();K();br=new WeakMap});function Ce(e,t=new WeakSet){return JSON.stringify(e,function(r,n){if(n===void 0)return"\0__undefined__\0";if(Tt(n))return`\0__bigint:${n}__\0`;if(w(n))return`function:${n.name||"anonymous"}`;if(F(n)){if(t.has(n))return"<Circular>";if(t.add(n),Re(n))return n.toString();if(Ne(n))return`map:[${Array.from(n.entries()).map(o=>Ce(o,t)).sort().join(",")}]`;if(Ie(n))return`set:[${Array.from(n).map(o=>Ce(o,t)).sort().join(",")}]`}return n})}function Er(e){return function t(...r){return r.length>=e.length?e(...r):(...n)=>t(...r,...n)}}function A(e){let t=new Map;return function(...r){let n=Ce(this!==void 0&&this!==globalThis?[this,...r]:r);if(!t.has(n)){let o=e.apply(this,r);t.set(n,o)}return t.get(n)}}function Ae(e,t){return{enumerable:!1,configurable:!1,writable:!1,value:function(...r){let n=`${String(e)},${Ce(r)}`,o=Tr.get(this);if(o||(o=new Map,Tr.set(this,o)),!o.has(n)){let s=t.apply(this,r);$e(s),o.set(n,s)}return o.get(n)}}}var Tr,ot=v(()=>{"use strict";nt();N();Tr=new WeakMap});function Or(e){try{return JSON.parse(JSON.stringify(e))}catch(t){throw console.warn("Could not clean object:",t?.message??t),t}}var _r=v(()=>{"use strict";N()});function oe(e){return x(e)?w(e)?e():e:t=>w(t)?t():t}var Mn,ne,vt=v(()=>{"use strict";Y();N();K();Mn=e=>{let t=new Set,r=e,n=0;for(;r&&r!==Object.prototype&&n++<10;){let o=Object.getOwnPropertyDescriptors(r);for(let[s,i]of Object.entries(o))J(s)&&(i.enumerable||w(i.get))&&t.add(s);r=Object.getPrototypeOf(r)}return Array.from(t)},ne=e=>{if(te(e)||w(e))return e;if(de(e))return e.map(r=>ne(r));if(Et(e)||yr(e)||Ne(e)||Ie(e))return e;try{if(w(e.toJSON))return ne(e.toJSON())}catch{}let t={};for(let r of Mn(e))try{t[r]=ne(e[r])}catch{}return t};oe.stringSymbol=oe();oe.symbolRegExp=oe();oe.symbolString=oe();oe.stringString=oe()});function Ir(e,t){try{return globalThis.structuredClone(e,t)}catch{return Or(e)}}function zn(e,t){return Gn(t)}function Pr(e){let t=encodeURI(e);return t.includes("%")&&(t=t.replace(Fn,r=>Rr[r.toUpperCase()]??decodeURI(r))),t}function Gn(e){if(d(e))try{return decodeURI(e)}catch{}return e}function Le(e){return!B(e,"Function","AsyncFunction","WeakMap","WeakSet","WeakRef")}function kn(e,t){return`{"$${e}":${t}}`}function Wn(e){return k(re(e)?`${Ot(e)?"@":""}@(${e.description??""})`:e)}function Pt(e){let[t,r,n]=e.toString().match(Un)||[null,void 0,void 0];switch(!0){case re(e):case P(t):case(x(r)&&q(n)):return e;case x(r):return Symbol.for(n);case q(r):default:return Symbol(n)}}function Z(e,t){let r=me;me=t?.compact!==!1;try{let n=k(e,!1);if(t?.signed){if(!d(t.secret)||!t.secret)throw new TypeError("stringify: signed serialization requires an explicit secret string");return`$sig:${Dr(n,t.secret)}:${n}`}return n}finally{me=r}}function k(e,t=!0){let r=ee(e),n=Er(kn)(r.type);switch(r.type){case"String":{let o=r.value;return o.startsWith("~")&&(o=`~${o}`),t||(t=o==="true"||o==="false"||o==="null"||parseFloat(o).toString()===o||o.startsWith("~")),t?JSON.stringify(Pr(o)):Pr(o)}case"Boolean":case"Null":case"Number":return JSON.stringify(r.value);case"Void":case"Undefined":return me?JSON.stringify("~u"):n(JSON.stringify("void"));case"BigInt":return me?JSON.stringify(`~n${r.value.toString()}`):n(r.value.toString());case"Date":return me?JSON.stringify(`~t${r.value.getTime()}`):n(k(r.value.toJSON()));case"Object":return`{${C(r.value).filter(([,s])=>Le(s)).map(([s,i])=>`${Wn(s)}: ${k(i)}`).join(",")}}`;case"Array":return`[${r.value.filter(s=>Le(s)).map(s=>k(s)).join(",")}]`;case"Map":{let o=Array.from(r.value.entries()).filter(([,s])=>Le(s)).map(([s,i])=>`[${k(s)}, ${k(i)}]`).join(",");return n(`[${o}]`)}case"Set":{let o=Array.from(r.value.values()).filter(s=>Le(s)).map(s=>k(s)).join(",");return n(`[${o}]`)}case"Symbol":{let o=`${Ot(r.value)?"@":""}@(${r.value.description??""})`;return me?JSON.stringify(`~y${o}`):n(JSON.stringify(o))}case"RegExp":return n(k({source:r.value.source,flags:r.value.flags}));default:{let o=r.value;switch(!0){case!Le(o):return;case w(o.toJSON):return n(k(o.toJSON()));case(w(o.toString)&&o.toString!==Object.prototype.toString):{let s=o.toString();return n(s.includes('"')?s:JSON.stringify(s))}case(w(o.valueOf)&&o.valueOf!==Object.prototype.valueOf):return n(JSON.stringify(o.valueOf()));default:{let s=ne(o);return F(s)&&Object.keys(s).length>0?k(s):n(JSON.stringify(o,(i,a)=>O(i)?a:k(a)))}}}}}function ge(e,t){if(!d(e))return e;let r=w(t)?{sentinel:t}:t??{};if(e.startsWith("$sig:")){let o=e.indexOf(":",5);if(o!==-1){let s=e.substring(5,o),i=e.substring(o+1);if(!d(r.secret)||!r.secret){if(console.warn("objectify: signature verification requires an explicit secret string"),r.throwOnError)throw new TypeError("objectify: signature verification requires an explicit secret string");return e}let a=Dr(i,r.secret);if(!Jn(s,a)){if(console.warn("objectify: signature verification failed"),r.throwOnError)throw new Error("objectify: signature verification failed");return e}e=i}else if(r.requireSigned){if(console.warn("objectify: malformed signed payload"),r.throwOnError)throw new Error("objectify: malformed signed payload");return e}}else if(r.requireSigned){if(console.warn("objectify: unsigned string rejected by requireSigned policy"),r.throwOnError)throw new Error("objectify: unsigned string rejected by requireSigned policy");return e}let n;try{n=JSON.parse(e,zn)}catch(o){return e.startsWith('"')&&e.endsWith('"')?(console.warn(`objectify.parse: -> ${e}, ${o.message}`),e):ge(`"${e}"`,r.requireSigned?{...r,requireSigned:!1}:r)}switch(!0){case(e.startsWith("{")&&e.endsWith("}")):case(e.startsWith("[")&&e.endsWith("]")):return Nt(n,r,0);default:return Me(n,r)}}function Nt(e,t,r=0){let n=t.maxDepth??Kn;return r>=n?e:S(e)?Me(C(e).filter(([o])=>J(o)).reduce((o,[s,i])=>Object.assign(o,{[Pt(s)]:Me(Nt(i,t,r+1),t)}),{}),t):de(e)?pr(e).map(o=>Me(Nt(o,t,r+1),t)):Me(e,t)}function Me(e,t){if(d(e)&&e.startsWith("~"))try{if(e.startsWith("~~"))return e.substring(1);if(e.startsWith("~n"))return BigInt(e.substring(2));if(e.startsWith("~t")){let s=e.substring(2),i=new Date(tt(s)?Number(s):s);return isNaN(i.getTime())?e:i}if(e==="~u")return t.sentinel?.();if(e.startsWith("~y"))return Pt(e.substring(2))}catch{return e}if(!S(e)||Ve(e).length!==1)return e;let[r,n]=C(e)[0];if(!String(r).startsWith("$"))return e;let o=r.substring(1);try{switch(o){case"String":case"Boolean":case"Object":case"Array":return n;case"Number":return Number(n);case"BigInt":return BigInt(n);case"Null":return null;case"Undefined":case"Empty":case"Void":return t.sentinel?.();case"Date":return new Date(n);case"RegExp":return t.allowRegExp===!1||!S(n)||!d(n.source)||n.source.length>Zn?e:new RegExp(n.source,n.flags);case"Symbol":return Pt(n);case"Map":return de(n)?new Map(n):e;case"Set":return de(n)?new Set(n):e;default:{if(t.allowClasses===!1||t.allowedClasses&&!(t.allowedClasses instanceof Set?t.allowedClasses.has(r)||t.allowedClasses.has(o):t.allowedClasses.includes(r)||t.allowedClasses.includes(o)))return e;let s=it.get(r);return s?Reflect.construct(s,[n]):(console.warn(`objectify: dont know how to deserialize '${o}'`),e)}}}catch{return e}}var it,vr,Nr,Rr,Fn,Un,Bn,Dr,Jn,me,Kn,Zn,Se=v(()=>{"use strict";ot();Y();_r();vt();K();N();H();it=globalThis[b.$SerializerRegistry]??=new Map,vr=e=>{try{let t=e?.prototype?.[Symbol.toStringTag]??e?.[Symbol.toStringTag];return d(t)?t:void 0}catch{return}},Nr=(e,t)=>{let r=e.startsWith("$")?e:`$${e}`;if(it.has(r)){let n=it.get(r),o=vr(n),s=vr(t),i=n.name||o,a=t.name||s||(e.startsWith("$")?e.slice(1):e);if(n===t||n.toString()===t.toString()||!!t[b.$Identity]&&n[b.$Identity]===t[b.$Identity]||!!t[b.$Target]&&n[b.$Target]===t[b.$Target]||!!i&&!!a&&i===a)return;throw new Error(`[registerSerializable] Collision: '${r}' is already registered with ${n.name||"anonymous constructor"}`)}it.set(r,t)};Rr={"%20":" ","%22":'"',"%3B":";","%3C":"<","%3E":">","%5B":"[","%5D":"]","%5E":"^","%7B":"{","%7C":"|","%7D":"}"},Fn=new RegExp(Object.keys(Rr).join("|"),"gi");Un=/^@(@)?\(([^\)]*)\)$/;Bn=globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID().split("-")[0]:Math.random().toString(36).slice(2,10),Dr=(e,t=Bn)=>{let r=2166136261,n=2654435769,o=`${t}:${e}`;for(let s=0;s<o.length;s++){let i=o.charCodeAt(s);r=Math.imul(r^i,16777619),n=Math.imul(n^i,2246822507)}return(r>>>0).toString(16).padStart(8,"0")+(n>>>0).toString(16).padStart(8,"0")},Jn=(e,t)=>{if(!d(e)||!d(t)||e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e.charCodeAt(n)^t.charCodeAt(n);return r===0},me=!0;Kn=64,Zn=512});function ie(e,t,r,n,o,s){function i(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var a=n.kind,c=a==="getter"?"get":a==="setter"?"set":"value",l=!t&&e?n.static?e:e.prototype:null,m=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),f,h=!1,p=r.length-1;p>=0;p--){var R={};for(var g in n)R[g]=g==="access"?{}:n[g];for(var g in n.access)R.access[g]=n.access[g];R.addInitializer=function(T){if(h)throw new TypeError("Cannot add initializers after decoration has completed");s.push(i(T||null))};var u=(0,r[p])(a==="accessor"?{get:m.get,set:m.set}:m[c],R);if(a==="accessor"){if(u===void 0)continue;if(u===null||typeof u!="object")throw new TypeError("Object expected");(f=i(u.get))&&(m.get=f),(f=i(u.set))&&(m.set=f),(f=i(u.init))&&o.unshift(f)}else(f=i(u))&&(a==="field"?o.unshift(f):m[c]=f)}l&&Object.defineProperty(l,n.name,m),h=!0}function se(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0}var ze=v(()=>{"use strict"});function $r(e,t){return Qe(e)??(q(t)?e.name||void 0:String(t))}function Cr(e,{kind:t,name:r,addInitializer:n}){let o=$r(e,r);if(o&&et(e,o),t==="class")return o&&n(()=>Nr(o,e)),e;throw new Error(`@Serializable decorating unknown 'kind': ${t} (${r})`)}function ae(e,t){let r=(n,o,s)=>{let i=n.prototype,a=o??$r(n,s);if(a&&(i&&!Object.hasOwn(i,Symbol.toStringTag)&&Object.defineProperty(i,Symbol.toStringTag,{value:a,configurable:!0,writable:!1,enumerable:!1}),!n.name||n.name!==a))try{Object.defineProperty(n,"name",{value:a,configurable:!0,writable:!1,enumerable:!1})}catch{}return n};return $(e)&&t?.kind==="class"?r(e,void 0,t.name):(n,o)=>r(n,d(e)?e:void 0,o?.name)}var Fe=v(()=>{"use strict";H();nt();N();Se();K()});var Ge,It=v(()=>{"use strict";ze();N();Fe();Ge=(()=>{let e=[ae("BoundedCache")],t,r=[],n,o=Map;var s=class extends o{static{n=this}static{let i=typeof Symbol=="function"&&Symbol.metadata?Object.create(o[Symbol.metadata]??null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:i},null,r),s=n=t.value,i&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),se(n,r)}#t=new Map;#e=new Set;#r=new Map;maxSize;ttl;constructor(i=1e3,a=1440*60*1e3){super(),this.maxSize=i,this.ttl=a}get isBoundedCache(){return!0}#n(i){let a=this.#t.get(i);return a===void 0?!1:Date.now()>a}evictExpired(){if(this.#t.size===0)return;let i=Date.now();for(let[a,c]of this.#t.entries())i>c&&this.delete(a)}setStatic(i,a){return super.has(i)&&super.delete(i),super.set(i,a),this.#e.add(i),this.#t.delete(i),this.#r.delete(i),this}isStatic(i){return this.#e.has(i)}get(i){if(this.#n(i)){this.delete(i);return}if(!super.has(i))return;let a=super.get(i);return super.delete(i),super.set(i,a),a}has(i){return this.#n(i)?(this.delete(i),!1):super.has(i)}get size(){return this.evictExpired(),super.size}forEach(i,a){this.evictExpired(),super.forEach(i,a)}set(i,a,c){this.evictExpired();let l=this.#t.get(i);for(super.has(i)&&super.delete(i),super.set(i,a),this.#e.delete(i),x(c)?c!==1/0?(this.#t.set(i,Date.now()+c),this.#r.set(i,c)):(this.#t.delete(i),this.#r.delete(i)):l!==void 0?this.#t.set(i,l):this.ttl!==1/0?(this.#t.set(i,Date.now()+this.ttl),this.#r.delete(i)):(this.#t.delete(i),this.#r.delete(i));this.size-this.#e.size>this.maxSize;){let m=!1,f=super.keys(),h=f.next();for(;!h.done;){let p=h.value;if(!this.#e.has(p)){this.delete(p),m=!0;break}h=f.next()}if(!m)break}return this}delete(i){return this.#e.delete(i),this.#t.delete(i),this.#r.delete(i),super.delete(i)}deletePrefix(i){let a=String(i).trim().toLowerCase();if(O(a))return 0;let c=[];for(let l of super.keys())d(l)&&l.toLowerCase().startsWith(a)&&c.push(l);for(let l of c)this.delete(l);return c.length}clear(i){if(i===void 0){this.#e.clear(),this.#t.clear(),this.#r.clear(),super.clear();return}let a=0;for(let c of super.keys()){if(a>=i)break;this.#e.has(c)||(this.delete(c),a++)}}keys(){return this.evictExpired(),super.keys()}values(){return this.evictExpired(),super.values()}entries(){return this.evictExpired(),super.entries()}[Symbol.iterator](){return this.evictExpired(),super[Symbol.iterator]()}toJSON(){this.evictExpired();let i=[];for(let[a,c]of super.entries())d(a)&&i.push([a,c]);return Object.fromEntries(i)}static fromEntries(i,a=1e3,c=1440*60*1e3){let l=new s(a,c);for(let[m,f]of i)l.set(m,f);return l}};return s=n})()});function Mr(e,t){let r;if(q(e))return t??{};switch(W.type){case E.Browser:r=Rt.getItem(e);break;case E.NodeJS:r=ke.has(e)?ke.get(e):jn(e);break;case E.Deno:r=W.global.Deno.env.get(e);break;case E.GoogleAppsScript:r=W.global.PropertiesService?.getUserProperties().getProperty(e);break;case E.WebWorker:case E.Unknown:r=void 0;break;default:throw new Error(`Cannot determine Javascript context: ${W.type}`)}return d(r)?ge(r):t}function Ct(e,t,r){let n=x(t)?Z(t):void 0,o=x(n);switch(W.type){case E.Browser:try{o?Rt.setItem(e,n):Rt.removeItem(e)}catch(s){console.warn(`[Storage] Failed to ${o?"setItem":"removeItem"} for key '${e}':`,s)}break;case E.NodeJS:o?r?.static?ke.setStatic(e,n):ke.set(e,n,r?.ttl):ke.set(e,void 0,r?.ttl);break;case E.Deno:o?W.global.Deno.env.set(e,n):W.global.Deno.env.delete(e);break;case E.GoogleAppsScript:o?W.global.PropertiesService?.getUserProperties().setProperty(e,n):W.global.PropertiesService?.getUserProperties().deleteProperty(e);break;case E.WebWorker:case E.Unknown:break;default:throw new Error(`Cannot determine Javascript context: ${W.type}`)}}var W,Lr,Ar,Dt,$t,Rt,ke,jn,At=v(()=>{"use strict";Se();De();N();It();W=be(),Lr=(e=1e3,t=1/0)=>{let r=new Ge(e,t);return{get length(){return r.size},clear:()=>r.clear(),getItem:n=>r.get(n)??null,key:n=>Array.from(r.keys())[n]??null,removeItem:n=>{r.delete(n)},setItem:(n,o)=>{r.set(n,String(o))}}},Ar=new Map,Dt=e=>{let t=Ar.get(e);return t||(t=Lr(),Ar.set(e,t)),t},$t=(e="localStorage")=>{try{let t=globalThis?.[e];if(t&&$(t.getItem)&&$(t.setItem)&&$(t.removeItem)&&$(t.clear)&&$(t.key)&&y(t.length))return t}catch{}return Dt(e)},Rt=W.type===E.Browser?$t():Lr(),ke=new Ge(1e3,1/0),jn=e=>{try{let t=Reflect.get(W.global,"process");if(!t||typeof t!="object")return;let r=Reflect.get(t,"env");return!r||typeof r!="object"?void 0:Reflect.get(r,e)}catch{return}}});var zr=v(()=>{"use strict";Se();N()});function Fr(e=[],t){let r=n=>q(t)||x(n)?n:Ir(t);return gr(e)||dr(e)&&!d(e)?Array.from(e,r):[e]}function Gr(e){if(rt(e))return e;let t=new Error(S(e)&&d(e.message)?e.message:String(e));return S(e)&&(t.name=d(e.name)?e.name:"Error","code"in e&&(d(e.code)||y(e.code))&&(t.code=e.code),"stack"in e&&d(e.stack)&&(t.stack=e.stack)),t}var Hi,Yi,Lt=v(()=>{"use strict";Se();K();N();zr();Hi=BigInt(Number.MAX_SAFE_INTEGER),Yi=BigInt(Number.MIN_SAFE_INTEGER)});var kr=v(()=>{"use strict";Lt();if(typeof globalThis.Temporal>"u")throw new Error("Temporal API is not available. Node 20+ with a polyfill (e.g. @js-temporal/polyfill) is highly recommended. Native Temporal is fully reliable only on Node 26+ (while Node 22 may have instabilities).");try{if(typeof Temporal.Now.zonedDateTimeISO=="function"&&typeof Temporal.Now.zonedDateTimeISO().add!="function")throw new Error("Incomplete Temporal implementation")}catch(e){let t=Gr(e);if(console.warn("Tempo: Native Temporal implementation appears incomplete. Consider loading a polyfill.",t),t.message!=="Incomplete Temporal implementation")throw t}});function Wr(){return Temporal.Now.instant()}function Ur(e,t=2024){let r=Temporal.ZonedDateTime.from({year:t,month:1,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds,n=Temporal.ZonedDateTime.from({year:t,month:7,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds;return{jan:r,jul:n}}var Mt=v(()=>{"use strict";kr();N()});function We(e,t,r){if(e){if($(e[t]))return e[t]();if(r&&r in e)return e[r]}}function so(e){return e?Qn.has(e)?5:Xn.has(e)?6:Vn.has(e)?7:1:1}function ao(e){return e?e==="IR"?oo:e==="AF"?io:eo.has(e)?no:Br:Br}function co(e,t){let r=e?.script??($(e?.maximize)?e.maximize().script:void 0);return r&&ro.has(r)||t&&to.has(t)?"rtl":"ltr"}var Hn,Yn,xe,le,ss,as,Ft,cs,qn,ls,Vn,Xn,Qn,eo,to,ro,Br,no,oo,io,zt,us,fs,lo,uo,Jr,ps,st,ds,Gt=v(()=>{"use strict";Mt();ot();N();Lt();Hn=/_/g,Yn=/[.@]/,xe=e=>typeof Intl<"u"&&(!e||Object.hasOwn(Intl,e)&&$(Intl[e])),le=e=>{if(Re(e)&&(e=e.toString()),!d(e))return;let t=e.trim();if(O(t))return;let r=t.split(Yn)[0];if(!O(r))return r.replace(Hn,"-")},ss=A((e,t)=>new Intl.RelativeTimeFormat(le(e),t)),as=A((e,t)=>new Intl.ListFormat(le(e),t)),Ft=A((e,t)=>new Intl.DateTimeFormat(le(e),t)),cs=A((e,t)=>{try{return new Intl.PluralRules(le(e),t)}catch{return{select:()=>"other"}}}),qn=A((e,t)=>new Intl.NumberFormat(le(e),t)),ls=A((e,t)=>{try{let r=new Intl.DurationFormat(le(e),t);if(w(r.format))return r;throw new Error("No format method")}catch{return{format:n=>String(n)}}});Vn=new Set(["US","CA","MX","BR","IL","JP","TW","HK","MO","PH","SG","TH","IN","KR","CO","PE","VE","ZA"]),Xn=new Set(["SA","AF","BH","DJ","DZ","EG","IQ","IR","JO","KW","LY","OM","QA","SD","SY","YE"]),Qn=new Set(["MV"]),eo=new Set(["SA","BH","DJ","DZ","EG","IQ","JO","KW","LY","OM","QA","SD","SY","YE"]),to=new Set(["ar","he","fa","ur","yi","ps","sd","ug","ckb"]),ro=new Set(["Arab","Hebr","Thaa","Syrc","Mand","Samr","Nkoo"]),Br=Object.freeze([6,7]),no=Object.freeze([5,6]),oo=Object.freeze([5]),io=Object.freeze([4,5]);zt=A(e=>{if(Re(e))return e;if(xe("Locale"))try{let t=le(e);return new Intl.Locale(t||"en-US")}catch{return}}),us=A(e=>{let t=zt(e)??zt("en-US"),r=t?.baseName??Jr(e)??"en-US",n=t?.language??r.split("-")[0]?.toLowerCase(),o=[];for(let fe of r.split("-").slice(1)){if(fe.length===1)break;o.push(fe)}let s=t?.region??($(t?.maximize)?t.maximize().region:void 0)??o.find(fe=>/^[a-zA-Z]{2}$|^\d{3}$/.test(fe))?.toUpperCase(),i=t?.script??($(t?.maximize)?t.maximize().script:void 0),a=We(t,"getWeekInfo","weekInfo"),c=a?.firstDay??so(s),l=Array.isArray(a?.weekend)?Object.freeze([...a.weekend]):ao(s),f=We(t,"getHourCycles","hourCycles")??t?.hourCycle??(xe("DateTimeFormat")?Ft(r,{hour:"numeric"}).resolvedOptions().hourCycle:void 0),h=Array.isArray(f)&&f.length>0?Object.freeze([...f]):d(f)?Object.freeze([f]):Object.freeze(["h23"]),p=We(t,"getTextInfo","textInfo"),R=p?.direction==="rtl"||p?.direction==="ltr"?p.direction:co(t,n),u=We(t,"getNumberingSystems","numberingSystems")??t?.numberingSystem??(xe("NumberFormat")?qn(r).resolvedOptions().numberingSystem:void 0),T=Array.isArray(u)&&u.length>0?Object.freeze([...u]):d(u)?Object.freeze([u]):Object.freeze(["latn"]),D=We(t,"getTimeZones","timeZones"),_=Array.isArray(D)&&D.length>0?Object.freeze([...D]):Object.freeze([]),j=Object.freeze({firstDay:c,weekend:l});return Object.freeze({locale:t,baseName:r,language:n,region:s,script:i,weekInfo:j,firstDay:c,weekend:l,hourCycle:h[0],hourCycles:h,direction:R,numberingSystem:T[0],numberingSystems:T,timeZones:_})}),fs=A((e="latn")=>{if(!(!e||e==="latn"||!xe("NumberFormat")))try{let t=new Intl.NumberFormat(`en-u-nu-${e}`,{useGrouping:!1}),r=Array.from({length:10},(n,o)=>t.format(o));return r[0]==="0"&&r[9]==="9"?void 0:Object.freeze(r)}catch{return}}),lo=Object.freeze({locale:"en-US",calendar:"iso8601",numberingSystem:"latn",timeZone:"UTC"}),uo=A(()=>xe("DateTimeFormat")?Object.freeze(Ft().resolvedOptions()):lo),Jr=A(e=>{let t=le(e);if(t){if(xe("getCanonicalLocales"))try{return Intl.getCanonicalLocales(t)[0]}catch{return}return zt(t)?.baseName??t}}),ps=A(e=>Object.freeze(Fr(e).map(t=>Jr(t)).filter(Boolean))),st=A((e=uo().timeZone)=>{try{let{jan:t,jul:r}=Ur(e),o=["Australia","Antarctica","Africa/Johannesburg","America/Argentina/Buenos_Aires","America/Sao_Paulo"].some(s=>e.startsWith(s));switch(!0){case r>t:return"north";case r<t:return"south";default:return o?"south":void 0}}catch{return}}),ds=A(e=>{try{let t=new Date(2024,11,24),r=Ft(e).formatToParts(t);return r[0].type==="month"&&r[0].value==="12"}catch{return!1}})});function V(e){return{enumerable:!1,configurable:!1,writable:!1,value:e}}function Te(e,t=!0){let n=pe(this)!=="Module"&&w(this?.has)?this:po,o=ee(e),s=Object.create(n);switch(o.type){case"Enumify":case"Object":Object.defineProperties(s,Object.getOwnPropertyDescriptors(o.value));break;case"Array":o.value.forEach((i,a)=>{if(y(i))throw new Error("Enumify: numeric keys are not supported");s[i]=a});break;default:throw new Error(`Enumify: invalid argument type: ${o.type}`)}return xr(s,!0,t)}var fo,po,Ts,Kr=v(()=>{"use strict";ze();K();N();Y();nt();Fe();ot();fo="Enumify",po=$e(Object.create(null,{keys:Ae("keys",function(){return C(this,!0).map(([e])=>e)}),values:Ae("values",function(){return C(this,!0).map(([e,t])=>t)}),entries:Ae("entries",function(){return C(this,!0).map(([e,t])=>Object.freeze([e,t]))}),invert:Ae("invert",function(){return Object.fromEntries(this.entries().map(([e,t])=>[t,e]))}),has:V(function(e){return this.keys().includes(e)}),count:V(function(){return this.keys().length}),includes:V(function(e){return this.values().includes(e)}),keyOf:V(function(e){return this.invert()[e]}),extend:V(function(e,t){return Te.call(this,e,t)}),forEach:V(function(e,t){this.entries().forEach((r,n)=>e.call(t,r,n,this))}),filter:V(function(e,t){return Te(this.entries().reduce((r,n,o)=>e.call(t,n,o,this)?Object.assign(r,{[n[0]]:n[1]}):r,{}))}),map:V(function(e,t){return Te(this.entries().reduce((r,n,o)=>Object.assign(r,{[n[0]]:e.call(t,n,o,this)}),{}))}),[Symbol.iterator]:V(function*(){for(let e of this.entries())yield e}),[Symbol.toStringTag]:{enumerable:!1,configurable:!1,writable:!1,value:fo}}));Ts=(()=>{let e=[Cr,ae("Enumify")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),se(n,r)}constructor(s){return Te(s)}};return o=n})()});function mo(e,t=U.Info){return y(e)?e>=U.Off&&e<=U.Trace?e:t:d(e)?Zr[e.toLowerCase()]??t:t}var U,z,Zr,at,kt=v(()=>{"use strict";ze();N();Kr();H();Fe();U=Te(["Off","Error","Warn","Info","Debug","Trace"]),z={Off:"off",Log:"log",Info:"info",Warn:"warn",Debug:"debug",Trace:"trace",Error:"error"},Zr={[z.Off]:U.Off,[z.Error]:U.Error,[z.Warn]:U.Warn,[z.Info]:U.Info,[z.Log]:U.Info,[z.Debug]:U.Debug,[z.Trace]:U.Trace};at=(()=>{let e=[ae("Logger")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),se(n,r)}#t;level;constructor(s,i=U.Info){this.#t=s.startsWith("[")?s:`[${s}]`,this.level=i}#e(s,...i){let a;if(i.length>0&&S(i[0]))try{i[0][b.$LogConfig]&&(a=i.shift())}catch{}let c=this.level;if(a){if(a.silent===!0)return;a.debug!==void 0&&(c=mo(a.debug,c))}if(c===U.Off||(Zr[s]??0)>c)return;let m=i.map(f=>{if(rt(f))return f.message;if(S(f))try{let h=f.constructor?.name??"Object";if(h==="Object"){let p=Object.keys(f);return`{ ${p.slice(0,3).join(", ")}${p.length>3?`, ... (+${p.length-3} more)`:""} }`}return`[${h}]`}catch{return"[Object]"}return String(f)}).filter(f=>!O(f)).join(" ");O(m)||console[s](`${this.#t} ${m}`)}log=(...s)=>this.#e(z.Log,...s);info=(...s)=>this.#e(z.Info,...s);warn=(...s)=>this.#e(z.Warn,...s);debug=(...s)=>this.#e(z.Debug,...s);trace=(...s)=>this.#e(z.Trace,...s);error=(...s)=>this.#e(z.Error,...s)};return o=n})()});var jr={};he(jr,{WebStore:()=>go});var Ue,go,Hr=v(()=>{"use strict";ze();Y();Se();K();N();At();Fe();Ue={Local:"local",Session:"session"},go=(()=>{let e=[ae("WebStore")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;ie(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),se(n,r)}static _localInstance;static _sessionInstance;static get local(){return o._localInstance??=new o(Ue.Local)}static get session(){return o._sessionInstance??=new o(Ue.Session)}#t;#e;get#r(){if(this.#e)return this.#e;let s=this.#t===Ue.Local?"localStorage":"sessionStorage";return this.#e=$t(s)}#n(s){try{return s(this.#r)}catch{let a=this.#t===Ue.Local?"localStorage":"sessionStorage",c=Dt(a);return this.#e=c,s(c)}}constructor(s=Ue.Local){this.#t=s}get(s,i){let a=this.#n(c=>c.getItem(Z(s)));return d(a)?ge(a):i??null}set(s,i,a={merge:!0}){if(P(s))return this.clear();let c=this.get(s),l=ee(i);switch(l.type){case"Undefined":return this.del(s);case"Object":return c??={},this.#o(s,a.merge?Object.assign(c,l.value):l.value);case"Array":return c??=[],this.#o(s,a.merge?Xe(c.concat(l.value)):i);case"Map":return c??=new Map,a.merge?(l.value.forEach((m,f)=>c.set(f,m)),this.#o(s,c)):this.#o(s,l.value);case"Set":return c??=new Set,a.merge?(l.value.forEach(m=>c.add(m)),this.#o(s,c)):this.#o(s,l.value);default:return this.#o(s,l.value)}}clear(){try{this.#n(s=>s.clear())}catch(s){console.warn("[WebStore] Failed to clear storage:",s)}return this}del(...s){return s.forEach(i=>{try{this.#n(a=>a.removeItem(Z(i)))}catch(a){console.warn(`[WebStore] Failed to removeItem for key '${String(i)}':`,a)}}),this}keys(...s){return this.entries(...s).map(([i])=>i)}values(...s){return this.entries(...s).map(([,i])=>i)}entries(...s){let i=new Set(s.map(c=>Z(c))),a=[];return this.#n(c=>{for(let l=0;l<c.length;l++){let m=c.key(l);if(m!==null&&(O(s)||i.has(m))){let f=c.getItem(m);a.push([ge(m),ge(f)])}}}),a}from(s){return C(s).forEach(([i,a])=>this.set(i,a)),this}#o(s,i){try{this.#n(a=>a.setItem(Z(s),Z(i)))}catch(a){console.warn(`[WebStore] Failed to setItem for key '${String(s)}':`,a)}return this}};return o=n})()});var Vr={};he(Vr,{geoCoords:()=>qr,geoLocation:()=>Be,mapAddress:()=>ho,mapHemisphere:()=>yo,mapQuery:()=>Bt});var lt,Yr,I,Ut,X,Wt,ct,Be,qr,Bt,yo,ho,Jt=v(()=>{"use strict";vt();De();N();Mt();Gt();kt();lt={catch:!0,debug:0},Yr=be(),I={},Ut="_magma_browser_map_",X=new at("[Mapper]"),Wt=null,ct=()=>(Wt||(Wt=new Promise((e,t)=>{Yr.type===E.Browser?Promise.resolve().then(()=>(Hr(),jr)).then(({WebStore:r})=>{let n=new r("local"),o=n.get(Ut,{});F(o)&&(o.geolocation&&(!o.geolocation.coords||o.geolocation.$GeolocationPosition)&&delete o.geolocation,Object.assign(I,o)),e(n)}).catch(t):e(void 0)})),Wt),Be=(e={})=>ct().then(()=>new Promise((t,r)=>{e=Object.assign({},lt,e);let n=e.catch?t:r;typeof navigator<"u"&&"geolocation"in navigator?navigator.geolocation.getCurrentPosition(o=>{let s=I.geolocation?.coords,i=s?.latitude?.toFixed(3),a=s?.longitude?.toFixed(3),c=I.geolocation?.timestamp??0,l=o.coords.latitude.toFixed(3)!==i,m=o.coords.longitude.toFixed(3)!==a,f=c<Wr().epochMilliseconds-36e5;(l||m||f)&&(Object.assign(I,{georesponse:null}),X.info(e,"GeoLocation: device update")),Object.assign(I,{geolocation:ne(o)}),t(I.geolocation)},o=>{Object.assign(I,{geolocation:{error:o.message},georesponse:null}),n(I.geolocation)}):(Object.assign(I,{geolocation:{error:"Not Supported"},georesponse:null}),n(I.geolocation))})).finally(()=>{(I.geolocation?.error?X.error:X.info)(e,"geoLocation: ",I.geolocation),ct().then(r=>r?.set(Ut,I))}),qr=e=>new Promise((t,r)=>{if(!P(e))return t(e);Be().then(n=>P(n.error)?{location:{lat:n.coords.latitude,lng:n.coords.longitude}}:null).then(n=>t(n)).catch(n=>r(n))}),Bt=(e,t={})=>ct().then(()=>new Promise((r,n)=>{t=Object.assign({},lt,t);let o=t.catch?r:n;qr(e).then(s=>{switch(!0){case(Yr.type!==E.Browser||!window.google?.maps):throw new Error("Google Maps API not configured");case P(s):throw new Error("Cannot determine Coordinates");case P(e):{let i=I.geolocation&&I.georesponse,a=P(I.geolocation?.error)&&P(I.georesponse?.error);if(i&&a)return t.debug&&X.debug(t,"mapQuery: cache"),r(I.georesponse)}default:new window.google.maps.Geocoder().geocode(s).then(i=>r(I.georesponse=ne(i)))}}).catch(s=>{Object.assign(I,{georesponse:{error:s.message}}),o(I.georesponse)})})).finally(()=>{t.debug&&(I.georesponse?.error?X.error:X.debug)(t,"mapQuery: ",I.georesponse),ct().then(r=>r?.set(Ut,I))}),yo=(e,t={})=>Bt(e,t).then(r=>{if(t=Object.assign({},lt,t),P(r.error))return t.debug&&X.debug(t,"sphere: ",r),r.results[0].geometry.location.lat()>=0?"north":"south";let n=st();if(P(n)&&t.catch===!1)throw new Error("Cannot determine Hemisphere");return n}).catch(r=>{if(t.debug&&X.warn(t,"mapHemisphere: ",r.message),t.catch===!1)throw r;return null}),ho=(e,t={})=>Bt(e,t).then(r=>{if(!P(r.error))throw new Error(r.error);return r.results[0]}).then(({formatted_address:r,address_components:n})=>n.reduce((o,s)=>(s.types.filter(i=>i!=="political").forEach(i=>o[i]=(o[i]?o[i]+",":"").concat(s.short_name)),o),{formatted_address:r})).catch(r=>{if(t=Object.assign({},lt,t),t.debug&&X.warn(t,"mapAddress: ",r.message),t.catch===!1)throw r;return null})});var Zt={};he(Zt,{HTTP:()=>en,HttpError:()=>Q,METHOD:()=>tn,fetchHead:()=>bo,fetchRequest:()=>wo});var Kt,Xr,en,tn,Q,Qr,wo,bo,jt=v(()=>{"use strict";N();Kt=2e3,Xr=/\);?$/,en={Ok:200,PermRedirect:301,TempRedirect:302,BadRequest:400,Unauthorised:401,Forbidden:403},tn={Head:"HEAD",Get:"GET",Put:"PUT",Delete:"DELETE",Post:"POST"},Q=class extends Error{status;statusText;body;constructor(t,r,n){super(`${t}: ${r}`),this.status=t,this.statusText=r,this.body=n,this.name="HttpError"}},Qr=async(e,t)=>{let r=e.headers?.get?.("Content-Length")||e.headers?.get?.("content-length");if(r){let a=parseInt(r,10);if(y(a)&&a>t){try{await e.body?.cancel()}catch{}throw new Q(413,`Content-Length (${a}) exceeds limit (${t} bytes)`,null)}}if(!e.body){let a;if(w(e.text))a=await e.text();else if(w(e.json)){let l=await e.json();a=JSON.stringify(l)??""}else a="";let c=new TextEncoder().encode(a).byteLength;if(c>t)throw new Q(413,`Payload length (${c}) exceeds limit (${t} bytes)`,null);return a}let n=e.body.getReader(),o=new TextDecoder,s=0,i="";try{for(;;){let{done:a,value:c}=await n.read();if(a)break;if(c){if(s+=c.byteLength,s>t){try{await n.cancel()}catch{}throw new Q(413,`Streamed payload exceeded limit (${t} bytes)`,null)}i+=o.decode(c,{stream:!0})}}return i+=o.decode(),i}finally{try{n.releaseLock()}catch{}}},wo=(e,t={},r={})=>{let n={...t,signal:t.signal?AbortSignal.any([t.signal,AbortSignal.timeout(r.timeout??Kt)]):AbortSignal.timeout(r.timeout??Kt)};return fetch(e,n).then(async o=>{if(o.ok){let a=(o.headers?.get?.("Content-Type")||o.headers?.get?.("content-type")||"").includes("application/json");if(x(r.maxBytes)){let c=await Qr(o,r.maxBytes);if(r.rawText)return c;if(r.prefix){let l=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(l)}if(a)return JSON.parse(c);try{return JSON.parse(c)}catch{return c}}if(r.rawText)return w(o.text)?await o.text():"";if(r.prefix){let c=await o.text(),l=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(l)}if(w(o.text)){let c=await o.text();try{return JSON.parse(c)}catch{return c}}return w(o.json)?await o.json():""}let s=null;try{let i=x(r.maxBytes)?await Qr(o,r.maxBytes):w(o.text)?await o.text():"";try{s=JSON.parse(i)}catch{s=i}}catch(i){if(i instanceof Q&&i.status===413)throw i}throw new Q(o.status,o.statusText,s)})},bo=e=>{let t=AbortSignal.timeout(Kt),r={method:tn.Head,signal:t};return fetch(e,r).then(({ok:n,status:o,statusText:s,headers:i})=>{if(n||o===en.Forbidden)return{status:o,headers:i};throw new Q(o,s,null)})}});var nn={};he(nn,{serverGeoCoords:()=>ut,serverGeoLocation:()=>Je,serverMapHemisphere:()=>Vt});var rn,qt,Ht,Yt,So,Je,ut,Vt,Xt=v(()=>{"use strict";N();Gt();kt();rn=new at("[ServerMapper]"),qt="https://ipwho.is",Ht={endpoint:`${qt}/`,timeout:3e3,catch:!0,debug:0},Yt=null,So=()=>(Yt||(Yt=Promise.resolve().then(()=>(jt(),Zt))),Yt),Je=async(e={})=>{let t={...Ht,...e},r=t.catch!==!1;try{let n=t.endpoint||Ht.endpoint;if(d(t.ip)){let f=encodeURIComponent(t.ip.trim());if((n.endsWith("/")?n.slice(0,-1):n)===qt)n=`${qt}/${f}`;else if(n.includes("{ip}"))n=n.replace("{ip}",f);else if(f!=="")throw new Error(`Custom endpoint must include an '{ip}' placeholder to resolve a specific IP: ${n}`)}let o=t.timeout??Ht.timeout,{fetchRequest:s}=await So(),i=await s(n,{},{...y(o)?{timeout:o}:{},maxBytes:64*1024});if(typeof i!="object"||P(i))throw new Error("Geolocation lookup failed");if(i.status==="fail"||i.success===!1)throw new Error(i.message||i.reason||"Geolocation lookup failed");let a=y(i.lat)?i.lat:i.latitude,c=y(i.lon)?i.lon:i.lng??i.longitude;if(!y(a)||!y(c))throw new Error("Geolocation lookup failed");let l=d(i.timezone)?i.timezone:i.timezone?.id??i.timeZone,m={lat:a,lng:c,latitude:a,longitude:c,...d(i.country||i.countryName||i.country_name)?{country:i.country||i.countryName||i.country_name}:{},...d(i.city||i.cityName||i.city_name)?{city:i.city||i.cityName||i.city_name}:{},...d(l)?{timezone:l}:{},...d(i.query||i.ip||i.ip_address)?{query:i.query||i.ip||i.ip_address}:{},status:"success"};return t.debug&&rn.info(t,"serverGeoLocation success: ",m),m}catch(n){let o=n?.message||"Server geolocation error";if(t.debug&&rn.error(t,"serverGeoLocation error: ",o),!r)throw n;return{error:o,status:"fail"}}},ut=async(e,t)=>{if(!P(e)){let n=e.latitude??e.lat,o=e.longitude??e.lng??e.lon??e.long;if(y(n)&&y(o))return{lat:n,lng:o}}let r=await Je(t);return P(r.error)&&y(r.lat)&&y(r.lng)?{lat:r.lat,lng:r.lng}:null},Vt=async(e,t)=>{let r=await ut(e,t);return r?r.lat>=0?"north":"south":st()??null}});var fn=cr((ra,un)=>{"use strict";un.exports=window.undefined});var Po={};he(Po,{GEO_PROPERTIES:()=>Ze,GeoPlugin:()=>ve,NON_GEO_CONTROL_KEYS:()=>pn,clearStashedGeo:()=>dt,coerceGeo:()=>Oe,default:()=>mn,forwardGeocode:()=>ir,geoLocation:()=>Be,geoLookup:()=>gt,geoPlugin:()=>dn,getGeoProvider:()=>or,getStashedGeo:()=>_e,resolveCulturalLocale:()=>sr.resolveCulturalLocale,resolveGeoCoordinates:()=>je,reverseGeocode:()=>yt,serverGeoCoords:()=>ut,serverGeoLocation:()=>Je,serverMapHemisphere:()=>Vt,setGeoProvider:()=>mt,stashGeo:()=>pt});var M={};he(M,{definePlugin:()=>bt,defineTerm:()=>xn});Pe(M,ht(wt()));var qe=ht(wt()),bt=e=>(0,qe.definePlugin)({...e,version:"1.4.0"}),xn=e=>(0,qe.defineTerm)({...e,version:"1.4.0"});De();N();At();N();function ce(...e){for(let t of e){let r=w(t)?t():t;if(r!==void 0)return r}}It();var ye="_magma_geo_",er=1440*60*1e3,xo="https://api.bigdatacloud.net/data/reverse-geocode-client",To=3e3,Eo=64*1024,Oo=1e3,Ze=["latitude","lat","longitude","lng","lon","long","elevation","sphere","country","city","timezone","tz"],sn=e=>{if(!x(e)||mr(e))return NaN;if(d(e)){let t=e.trim();return t.length>0?Number(t):NaN}return y(e)?e:NaN},tr=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-90||r>90))return t?Math.round(r*1e3)/1e3:r},rr=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-180||r>180))return t?Math.round(r*1e3)/1e3:r},Ke=(e,t,r=!0)=>{let n=tr(e,r),o=rr(t,r);return x(n)&&x(o)?{lat:n,lng:o}:void 0},an=e=>y(e)?Math.round(e*1e3)/1e3:void 0,Ee=(e,t)=>{if(e==="north"||e==="south"||e==="equator")return e;if(y(t))return t>.001?"north":t<-.001?"south":"equator"},cn=(e,t=!0)=>{if(d(e)&&e.includes(",")){let r=e.split(",").map(n=>n.trim());return r.length>=2?Ke(r[0],r[1],t):void 0}return Array.isArray(e)&&e.length>=2?Ke(e[0],e[1],t):void 0},ue=(e,t)=>{let r="lat"in e?e.lat:e.latitude,n="lng"in e?e.lng:e.longitude,o=tr(r),s=rr(n),i=Ee(t?.sphere,o??r),a=an(t?.elevation);return{latitude:o??r,longitude:s??n,...i?{sphere:i}:{},...d(t?.city)&&!O(t.city)?{city:t.city.trim()}:{},...d(t?.country)&&!O(t.country)?{country:t.country.trim()}:{},...a!==void 0?{elevation:a}:{},...d(t?.timezone)&&!O(t.timezone)?{timezone:t.timezone.trim()}:{}}},_o=(e,t=Ze)=>{let r={};if(F(e))for(let n of Object.keys(e))J(n)&&!t.includes(n)&&(r[n]=e[n]);return r},Oe=e=>{let t=cn(e);if(t)return ue(t);if(te(e))return;let r=e.geo??e,n=e.config?.geo??e.config,o=ce(r?.latitude,r?.lat,e.latitude,e.lat,n?.latitude,n?.lat),s=ce(r?.longitude,r?.lng,r?.lon,r?.long,e.longitude,e.lng,e.lon,e.long,n?.longitude,n?.lng,n?.lon,n?.long),i=ce(r?.elevation,e.elevation,n?.elevation),a=ce(r?.sphere,e.sphere,n?.sphere),c=ce(r?.country,e.country,n?.country),l=ce(r?.city,e.city,n?.city),m=ce(r?.timezone,r?.tz,e.timezone,e.tz,n?.timezone,n?.tz),f={},h=tr(o),p=rr(s);h!==void 0&&(f.latitude=h),p!==void 0&&(f.longitude=p);let R=an(i);R!==void 0&&(f.elevation=R);let g=Ee(a,f.latitude);g&&(f.sphere=g),d(c)&&(f.country=c),d(l)&&(f.city=l),d(m)&&(f.timezone=m);let u=F(e.geo)?e.geo:F(e.config?.geo)?e.config.geo:void 0,T=_o(u);return Object.assign(f,T),Object.keys(f).length>0?f:void 0},nr=e=>{if(d(e)&&!O(e)){let t=e.trim();return t.startsWith(ye)?t:`${ye}:${t}`}if(e&&S(e)){let t=e.provider??L,r=t&&d(t.name)&&!O(t.name)?`provider:${t.name}`:void 0,n=e.key??e.ip??e.query;if(d(n)&&!O(n)){let o=n.trim();return r?`${ye}:${r}:${o}`:`${ye}:${o}`}if(r)return`${ye}:${r}`}else if(L&&d(L.name)&&!O(L.name))return`${ye}:provider:${L.name}`;return ye},_e=e=>{let t=nr(e);try{let r=Mr(t)??($(globalThis.localStorage?.getItem)?globalThis.localStorage.getItem(t):void 0);if(!r)return;let n=d(r)&&(r.startsWith("{")||r.startsWith("["))?JSON.parse(r):r;if(S(n)&&y(n._expires)&&Date.now()>n._expires){dt(e);return}let o=cn(n);if(o)return ue(o);if(S(n)){let s=n.geolocation?.coords??n.coords??n,i=s?.latitude??s?.lat,a=s?.longitude??s?.lng??s?.lon??s?.long,c=Ke(i,a);if(c){let l=n.elevation??s.elevation;return ue(c,{elevation:l,sphere:n.sphere,country:n.country,city:n.city,timezone:n.timezone})}}}catch{}},pt=(e,t=er,r)=>{let n=nr(r),o=y(t)&&t>0?{...e,_expires:Date.now()+t}:e;Ct(n,o,{ttl:t})},dt=e=>{let t=nr(e);Ct(t,void 0)},L;function mt(e){L=e}function or(){return L}var gt=async(e={})=>{let t=e.provider??L;if(e.refresh!==!0){let a=_e(e);if(a&&y(a.latitude)&&y(a.longitude)){let{latitude:c,longitude:l,...m}=a;return{...m,status:"cached",lat:c,lng:l,latitude:c,longitude:l}}}let n;if(t&&w(t.lookup))try{let a=await t.lookup(e);if(a){if(n=a,a.error&&e.fallback===!1)return a}else if(e.fallback===!1)return{error:"Provider returned null and fallback is disabled"}}catch(a){if(e.fallback===!1)return{error:a?.message??"Provider lookup failed"}}if(!n||n.error){if(e.fallback===!1&&(t||n?.error))return n&&n.error?n:{error:"Geolocation resolution failed and fallback is disabled"};let{type:a}=be();switch(a){case E.Browser:{let{geoLocation:c}=await Promise.resolve().then(()=>(Jt(),Vr)),l=await c(e);if(l.error)return{error:l.error};let m=l.coords?.latitude,f=l.coords?.longitude;n={...l,lat:m,lng:f,latitude:m,longitude:f};break}case E.WebWorker:case E.NodeJS:case E.Deno:default:{let{serverGeoLocation:c}=await Promise.resolve().then(()=>(Xt(),nn));n=await c(e);break}}}let o=n.latitude??n.lat,s=n.longitude??n.lng,i=Ke(o,s);if(P(n.error)&&i){let a=Ee(n.sphere,i.lat);n.lat=i.lat,n.lng=i.lng,n.latitude=i.lat,n.longitude=i.lng,n.sphere=a;let c=ue(i,n);try{let l=y(e.ttl)?e.ttl:er;pt(c,l,e)}catch{}}return n},Qt=null,vo=()=>(Qt||(Qt=Promise.resolve().then(()=>(jt(),Zt))),Qt),ft=new Ge(Oo,er),ln=e=>{try{let t=new URL(e);return t.protocol==="https:"||t.hostname==="localhost"||t.hostname==="127.0.0.1"}catch{return!1}};var on=(e,t,r)=>{let n=`${e.toFixed(2)},${t.toFixed(2)}`;if(d(r)&&!O(r))return`${n}:${r.trim()}`;if(S(r)){let s=Object.hasOwn(r,"provider")?r.provider:L,i=s&&d(s.name)&&!O(s.name)?s.name.trim():void 0,a=d(r.reverseEndpoint??r.reverseGeoEndpoint)&&!O(r.reverseEndpoint??r.reverseGeoEndpoint)?(r.reverseEndpoint??r.reverseGeoEndpoint).trim():void 0,c=a&&ln(a)?a:void 0;if(i&&c)return`${n}:${i}:${c}`;if(i)return`${n}:${i}`;if(c)return`${n}:${c}`}else if(L&&d(L.name)&&!O(L.name))return`${n}:${L.name.trim()}`;return n};async function yt(e,t){let r=Oe(e);if(!r||!y(r.latitude)||!y(r.longitude))return null;let n=r.latitude,o=r.longitude,s=on(n,o,t),i=t?.refresh!==!0;if(i){let p=ft.get(s);if(p)return{...p,latitude:n,longitude:o,sphere:Ee(p.sphere,n),elevation:y(p.elevation)?p.elevation:r.elevation,timezone:d(p.timezone)?p.timezone:r.timezone}}let a=S(t)&&Object.hasOwn(t,"provider"),c=a?t.provider:L;if(c&&w(c.reverseGeocode))try{let p=await c.reverseGeocode(r,t);if(p&&S(p)){let R=ue({lat:n,lng:o},{sphere:p.sphere,city:p.city,country:p.country,elevation:y(p.elevation)?p.elevation:r.elevation,timezone:d(p.timezone)?p.timezone:r.timezone}),g=ue({lat:n,lng:o},{sphere:p.sphere,city:p.city,country:p.country,timezone:p.timezone});return ft.set(s,g),R}if(t?.fallback===!1)return null}catch(p){if(t?.fallback===!1)throw p}else if(t?.fallback===!1&&(c||a))return null;let l=t?.reverseEndpoint??t?.reverseGeoEndpoint;if(G(l)){let p=l.trim();if(!ln(p))return t?.fallback===!1?null:r}let m=G(l)?l.trim():void 0,f=on(n,o,m??"default");if(i){let p=ft.get(f);if(p)return{...p,latitude:n,longitude:o,sphere:Ee(p.sphere,n),elevation:y(p.elevation)?p.elevation:r.elevation,timezone:d(p.timezone)?p.timezone:r.timezone}}let h;if(m)if(/\{(?:latitude|lat|longitude|lng|lon)\}/i.test(m))h=m.replace(/\{latitude\}/gi,encodeURIComponent(n)).replace(/\{lat\}/gi,encodeURIComponent(n)).replace(/\{longitude\}/gi,encodeURIComponent(o)).replace(/\{lng\}/gi,encodeURIComponent(o)).replace(/\{lon\}/gi,encodeURIComponent(o));else{let p=m.includes("?")?"&":"?";h=`${m}${p}latitude=${encodeURIComponent(n)}&longitude=${encodeURIComponent(o)}`}else h=`${xo}?latitude=${n}&longitude=${o}&localityLanguage=en`;try{let p=y(t?.timeout)&&t.timeout>0?t.timeout:To,R=y(t?.maxBytes)&&t.maxBytes>0?t.maxBytes:Eo,{fetchRequest:g}=await vo(),u=await g(h,{},{timeout:p,maxBytes:R});if(S(u)){let T=G(u.city)?u.city.trim():G(u.locality)?u.locality.trim():G(u.principalSubdivision)?u.principalSubdivision.trim():void 0,D=G(u.countryCode)?u.countryCode.trim():G(u.countryName)?u.countryName.trim():void 0,_=ue({lat:n,lng:o},{city:T,country:D,elevation:r.elevation,timezone:r.timezone});if(G(T)||G(D)){let j=ue({lat:n,lng:o},{city:T,country:D});ft.set(f,j)}return _}}catch{}return r}async function ir(e,t){let r=t?.provider??L;return r&&w(r.forwardGeocode)?r.forwardGeocode(e,t):null}var je=async(e,t={})=>{let r=Oe(e);if(r&&y(r.latitude)&&y(r.longitude)){if((t.reverse===!0||t.autoReverse===!0)&&(!r.city||!r.country)){let a=await yt(r,t);if(a)return{...a,...r,city:G(r.city)?r.city:a.city,country:G(r.country)?r.country:a.country,lat:r.latitude,lng:r.longitude,latitude:r.latitude,longitude:r.longitude}}return{...r,lat:r.latitude,lng:r.longitude}}let n=t.refresh===!0?void 0:_e(t);if(n&&y(n.latitude)&&y(n.longitude))return{...n,lat:n.latitude,lng:n.longitude};let o=await gt(t),s=Ke(o.lat,o.lng);if(P(o.error)&&s){let i=Ee(o.sphere,s.lat);return{...o,lat:s.lat,lng:s.lng,latitude:s.lat,longitude:s.lng,sphere:i}}return null};var sr=ht(fn(),1);Xt();Jt();N();var pn=["setTimezone","setLocale","refresh","ttl","endpoint","timeout","maxBytes","highAccuracy","catch","debug","geo","provider","fallback","reverse","autoReverse"];var ve=bt({name:"geo",install(e,t){let r=e||this;t?.provider&&mt(t.provider);let n=(o,s)=>{let i=r.config?.pluginOptions?.geo,a=s?.config?.pluginOptions?.geo;return{...S(t)?t:{},...S(i)?i:{},...S(a)?a:{},...S(o)?o:{}}};Object.hasOwn(r,"geo")||Object.defineProperty(r,"geo",{value:(0,M.deepFreeze)({lookup:s=>gt(n(s)),resolve:(s,i)=>je(s,n(i,s)),coerce:Oe,stash:pt,clear:dt,get:_e,setProvider:mt,getProvider:or,reverse:(s,i)=>yt(s,n(i)),forward:(s,i)=>ir(s,n(i)),server:Je,browser:Be,get current(){return _e()??r.config?.geo}}),writable:!1,configurable:!1,enumerable:!1}),e.prototype.geoLocate=async function(o){let s=n(o,this),i=s?.setTimezone!==!1,a=s?.setLocale??!0,c=await je(this,s);if(c){let l=S(this.config.geo)?this.config.geo:{},m={};for(let _ of Object.keys(l))J(_)&&!Ze.includes(_)&&(m[_]=l[_]);let f=Oe(o)??{};if(S(o))for(let _ of Object.keys(o))J(_)&&!pn.includes(_)&&(Ze.includes(_)||(m[_]=o[_]));let h=y(c?.elevation)?c.elevation:y(l.elevation)?l.elevation:void 0,p={...m,...c,...y(h)?{elevation:h}:{},...f},R=p.latitude,g=p.longitude;y(R)&&(p.latitude=Math.round(R*1e3)/1e3),y(g)&&(p.longitude=Math.round(g*1e3)/1e3),!p.sphere&&y(R)&&(p.sphere=R>.001?"north":R<-.001?"south":"equator");let u=this,T=p.timezone;i&&d(T)&&!O(T)&&(u=this.set({timeZone:T}));let D=p.country||d(a)?(0,sr.resolveCulturalLocale)(this.locale??this.config.locale,p.country,a):void 0;return new e(u,{...u.config,...D?{locale:D}:{},geo:(0,M.deepFreeze)(p),...p.sphere?{sphere:p.sphere}:{}})}return this},e.prototype.geoLookup=async function(o){return je(this,n(o,this))}}}),dn=ve,mn=ve;(0,M.autoInstall)(ve);return Sn(Po);})();
1
+ "use strict";var Magma;((Magma||={}).plugins||={}).geo=(()=>{var gn=Object.create;var qe=Object.defineProperty;var yn=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var wn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var _=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var cr=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},we=(e,t)=>{for(var r in t)qe(e,r,{get:t[r],enumerable:!0})},Ye=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hn(t))!bn.call(e,o)&&o!==r&&qe(e,o,{get:()=>t[o],enumerable:!(n=yn(t,o))||n.enumerable});return e},Ne=(e,t,r)=>(Ye(e,t,"default"),r&&Ye(r,t,"default")),ht=(e,t,r)=>(r=e!=null?gn(wn(e)):{},Ye(t||!e||!e.__esModule?qe(r,"default",{value:e,enumerable:!0}):r,e)),Sn=e=>Ye(qe({},"__esModule",{value:!0}),e);var wt=cr((Ro,lr)=>{"use strict";lr.exports=window.Magma.pluginSdk});var Tn,En,On,vn,_n,Pn,Nn,Rn,ur,In,fr,b,H=_(()=>{"use strict";Tn=Symbol.for("$LibraryTarget"),En=Symbol.for("$LibraryDiscover"),On=Symbol.for("$LibraryExtensible"),vn=Symbol.for("nodejs.util.inspect.custom"),_n=Symbol.for("$LibraryLogConfig"),Pn=Symbol.for("$LibraryRegistry"),Nn=Symbol.for("$LibraryRegister"),Rn=Symbol.for("$LibrarySerializerRegistry"),ur=Symbol.for("$LibraryMutable"),In=Symbol.for("$LibraryIdentity"),fr=Symbol.for("$LibraryUnwrapped"),b={$Target:Tn,$Discover:En,$Extensible:On,$Inspect:vn,$LogConfig:_n,$Registry:Pn,$Register:Nn,$SerializerRegistry:Rn,$Identity:In,$Mutable:ur,$Unwrapped:fr}});function be(e){let t=e,r=0,n=50;for(;t;){let o=t[b.$Target];if(!o||r>=n)break;t=o,r++}return t}function A(e,t=!1){if(!e||typeof e!="object")return[];let r=be(e);if(!t){let u=Reflect.ownKeys(r),p=[];for(let l of u){let h=Object.getOwnPropertyDescriptor(r,l);h&&h.enumerable&&p.push([l,r[l]])}return p}let n=[],o=50,s=0,i=r;for(;i&&i!==Object.prototype&&s++<o;)n.push(be(i)),i=Object.getPrototypeOf(i);let a=[],c=new Set;for(let u of n.reverse()){let p=Reflect.ownKeys(u);for(let l of p){if(c.has(l))continue;let h=Object.getOwnPropertyDescriptor(u,l);!h||!h.enumerable||(c.add(l),a.push([l,r[l]]))}}return a}function Xe(e,t=!1){return A(e,t).map(([r])=>r)}function pr(e,t=!1){return A(e,t).map(([r,n])=>n)}function Qe(e,t,r){return t?Qe(e.map(t,r)):Array.from(new Set(e))}var Y=_(()=>{"use strict";H()});var St,xt,et,de,te,Dn,$n,tt,K=_(()=>{"use strict";H();Y();St=[],xt=e=>{if(e===null)return"Null";if(e===void 0)return"Undefined";let t=typeof e;if(t==="string")return"String";if(t==="number")return"Number";if(t==="boolean")return"Boolean";if(t==="bigint")return"BigInt";if(t==="symbol")return"Symbol";try{let r=t==="object"?be(e):e;return Object.prototype.toString.call(r).slice(8,-1)}catch{return t==="function"?"Function":"Object"}},et=e=>{try{let t=e?.[Symbol.toStringTag]??e?.prototype?.[Symbol.toStringTag];if(typeof t=="string")return t}catch{}},de=(e,...t)=>{let r=e;try{r=e?.[b.$Target]??e}catch{r=e}let n=xt(r);switch(n){case"Function":try{return $n(r)?"Class":"Function"}catch{return"Function"}case"Object":{try{if("length"in r&&Object.keys(r).every(s=>s==="length"||Number.isFinite(Number(s))))return"ArrayLike";for(let s of t){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}let o=globalThis[b.$Registry]??[];for(let s of[...St,...o]){let i=s.class?.[b.$Target]??s.class;if(r===i||i&&r instanceof i)return s.type}}catch{return"Object"}return"Object"}default:return n}},te=(e,...t)=>({type:de(e,...t),value:e}),Dn=/^\s*(class\s|\[native code\])/,$n=e=>{if(typeof e!="function")return!1;let t=e?.[b.$Target]??e;if(!("prototype"in t))return!1;let r=t?.name,n=et(t);if(t?.[b.$Identity]||t?.prototype?.[b.$Identity]||typeof n=="string"&&n.startsWith("Temporal."))return!0;if(typeof n=="string"&&n.endsWith("Function"))return!1;if((globalThis[b.$Registry]??[]).some(s=>(s.class?.[b.$Target]??s.class)===t||r&&s.type===r||n&&s.type===n))return!0;try{let s=Function.prototype.toString.call(t);if(Dn.test(s))return!0;let i=Object.getOwnPropertyDescriptor(t,"prototype");if(i&&i.writable===!1&&!Object.isFrozen(t))return!0;let a=t.prototype;if(a&&Object.getOwnPropertyNames(a).length>2)return!0}catch{return!1}return!1},tt=(e,t)=>{if(typeof e!="function")return;let r=et(e),n=t??r??e.name;n&&!["Object","Function",""].includes(n)&&(St.some(o=>o.class===e)||St.push({class:e,type:n}))}});function rt(e){switch(typeof e){case"number":return Number.isFinite(e);case"bigint":return!0;case"string":{let r=e.trim();return r.length===0?!1:Cn.test(r)||y(Number(r))}default:return!1}}var B,re,G,dr,m,$,y,Cn,Tt,mr,me,gr,S,Et,yr,ne,Ot,J,P,q,x,w,C,Re,Ie,nt,De,O,N=_(()=>{"use strict";H();K();B=(e,...t)=>t.includes(de(e)),re=e=>e===null||typeof e!="object"&&typeof e!="function",G=e=>!re(e),dr=e=>Symbol.iterator in Object(e)&&!m(e),m=e=>typeof e=="string",$=e=>typeof e=="string"&&e.trim().length>0,y=e=>Number.isFinite(e),Cn=/^[+-]?[0-9]+n$/;Tt=e=>typeof e=="bigint",mr=e=>typeof e=="boolean",me=e=>Array.isArray(e),gr=e=>xt(e)==="Object"&&"length"in e&&Object.keys(e).every(t=>t==="length"||y(Number(t))),S=e=>B(e,"Object"),Et=e=>B(e,"Date"),yr=e=>B(e,"RegExp"),ne=e=>typeof e=="symbol",Ot=e=>typeof e=="symbol"&&Symbol.keyFor(e)!==void 0,J=e=>e!=="__proto__"&&e!=="constructor"&&e!=="prototype",P=e=>e==null||B(e,"Void","Empty"),q=e=>e===void 0||B(e,"Void","Empty"),x=e=>e!=null&&!P(e),w=e=>B(e,"Function","AsyncFunction","GeneratorFunction","AsyncGeneratorFunction"),C=e=>typeof e=="function",Re=e=>B(e,"Map"),Ie=e=>B(e,"Set"),nt=(e,t)=>B(e,"Error")&&(t?e instanceof t:!0),De=e=>typeof Intl<"u"&&typeof Intl.Locale=="function"&&e instanceof Intl.Locale,O=e=>P(e)||S(e)&&Reflect.ownKeys(e).length===0||m(e)&&e.trim().length===0||typeof e=="number"&&Number.isNaN(e)||me(e)&&e.length===0||Ie(e)&&e.size===0||Re(e)&&e.size===0||ArrayBuffer.isView(e)&&e.byteLength===0||Et(e)&&Number.isNaN(e.getTime())});function vt(e,t,r=new WeakSet){let n=t instanceof WeakSet?t:t?.skip??An;return re(e)||r.has(e)||n.has(e)||e instanceof Date||e instanceof RegExp||e instanceof Error||e instanceof Map||e instanceof Set||e instanceof Promise||e?.[Symbol.toStringTag]==="Enumify"||e[b.$Extensible]?e:(r.add(e),A(e).forEach(([o,s])=>{J(o)&&vt(s,{skip:n},r)}),Object.freeze(e))}var E,Se,An,$e=_(()=>{"use strict";Y();N();H();E={Unknown:"unknown",Browser:"browser",WebWorker:"web-worker",NodeJS:"nodejs",Deno:"deno",GoogleAppsScript:"google-apps-script"},Se=()=>{let e=globalThis;try{if(x(e.SpreadsheetApp))return{global:e,type:E.GoogleAppsScript};if(x(e.window?.document))return{global:e,type:E.Browser};if(w(e.importScripts)||x(e.WorkerGlobalScope)&&e instanceof e.WorkerGlobalScope)return{global:e,type:E.WebWorker};if(x(e.Deno))return{global:e,type:E.Deno};if(x(e.process?.versions?.node)&&e.process?.release?.name==="node")return{global:e,type:E.NodeJS}}catch{}return{global:e,type:E.Unknown}},An=new WeakSet});function hr(e){return Object.fromEntries(A(e,!0))}var wr=_(()=>{"use strict";Y();K();N()});function Sr(e,t={},r=!1){let{frozen:n,lock:o,appendOnly:s,onGet:i,keys:a,bind:c,skip:u}=t,p=new Set,l,h,f=be(e);o&&vt(f,u?{skip:u}:void 0),tt(f);let I={isExtensible:g=>Reflect.isExtensible(g),getPrototypeOf:g=>Reflect.getPrototypeOf(g),setPrototypeOf:(g,d)=>{if(n)throw new TypeError("Security: Prototype mutation attempt on protected object");return Reflect.setPrototypeOf(g,d)},getOwnPropertyDescriptor:(g,d)=>{if(!(a&&!a.includes(d))){if(a){if(i&&!ne(d)&&!p.has(d)){p.add(d);try{let T=i(d,g);if(x(T))return{enumerable:!0,configurable:!0,value:T}}finally{p.delete(d)}}return{enumerable:!0,configurable:!0}}return Reflect.getOwnPropertyDescriptor(g,d)}},ownKeys:g=>{if(a)return a;if(i&&!p.has(b.$Discover)){p.add(b.$Discover);try{i(b.$Discover,g)}finally{p.delete(b.$Discover)}}return Reflect.ownKeys(g)},has:(g,d)=>a?a.includes(d):Reflect.has(g,d),deleteProperty:(g,d)=>{if(n)throw new TypeError(`Cannot delete property '${String(d)}' from a protected object.`);if(s&&Reflect.has(g,d))throw new Error(`Security: Deletion attempt on protected key '${String(d)}'`);return Reflect.deleteProperty(g,d)},defineProperty:(g,d,T)=>{if(n&&!Object.isFrozen(g))throw new TypeError(`Cannot define property '${String(d)}' on a frozen object.`);if(s&&Reflect.has(g,d))throw new Error(`Security: Mutation attempt on protected key '${String(d)}'`);return Reflect.defineProperty(g,d,T)},set:(g,d,T,D)=>{if(n&&D===h)throw new TypeError(`Cannot set property '${String(d)}' on a frozen object.`);if(s){if(Array.isArray(g)&&d==="length"&&T<g.length)throw new Error("Security: Truncation attempt on protected array.");if(!(Array.isArray(g)&&d==="length")&&Reflect.has(g,d))throw new Error(`Security: Mutation attempt on protected key '${String(d)}'`)}return Reflect.set(g,d,T,D)},get:(g,d,T)=>{if(d===b.$Target)return T===h?g:void 0;if(n&&(d===b.$Inspect||d==="toJSON")){let v=Object.getOwnPropertyDescriptor(g,d);return v&&w(v.value)?v.value:(l||(l=()=>hr(g)),l)}if(a&&!a.includes(d))return;if(i&&!ne(d)&&!Reflect.has(g,d)&&!p.has(d)){p.add(d);try{let v=i(d,g);if(x(v))return v}finally{p.delete(d)}}let D=Reflect.get(g,d,T);if(c&&d!=="constructor"&&w(D)){let v=Object.getOwnPropertyDescriptor(g,d);if(v&&!v.configurable&&!v.writable)return D;let j=br.get(D);j||(j=new WeakMap,br.set(D,j));let pe=j.get(g);if(pe)return pe;let ar=D.bind(g);return j.set(g,ar),ar}return D}};if(r){let g=Proxy.revocable(f,I);return h=g.proxy,{proxy:g.proxy,revoke:g.revoke}}return h=new Proxy(f,I),h}function xr(e,t=!0,r=t,n=new WeakSet){return Sr(e,{frozen:t,lock:r,skip:n,bind:t})}function Ce(e,t=new WeakSet){return Sr(e,{frozen:!0,lock:!0,skip:t,bind:!0})}var br,ot=_(()=>{"use strict";H();wr();$e();Y();N();K();br=new WeakMap});function Ae(e,t=new WeakSet){return JSON.stringify(e,function(r,n){if(n===void 0)return"\0__undefined__\0";if(Tt(n))return`\0__bigint:${n}__\0`;if(w(n))return`function:${n.name||"anonymous"}`;if(G(n)){if(t.has(n))return"<Circular>";if(t.add(n),De(n))return n.toString();if(Re(n))return`map:[${Array.from(n.entries()).map(o=>Ae(o,t)).sort().join(",")}]`;if(Ie(n))return`set:[${Array.from(n).map(o=>Ae(o,t)).sort().join(",")}]`}return n})}function Er(e){return function t(...r){return r.length>=e.length?e(...r):(...n)=>t(...r,...n)}}function L(e){let t=new Map;return function(...r){let n=Ae(this!==void 0&&this!==globalThis?[this,...r]:r);if(!t.has(n)){let o=e.apply(this,r);t.set(n,o)}return t.get(n)}}function Le(e,t){return{enumerable:!1,configurable:!1,writable:!1,value:function(...r){let n=`${String(e)},${Ae(r)}`,o=Tr.get(this);if(o||(o=new Map,Tr.set(this,o)),!o.has(n)){let s=t.apply(this,r);Ce(s),o.set(n,s)}return o.get(n)}}}var Tr,it=_(()=>{"use strict";ot();N();Tr=new WeakMap});function Or(e){try{return JSON.parse(JSON.stringify(e))}catch(t){throw console.warn("Could not clean object:",t?.message??t),t}}var vr=_(()=>{"use strict";N()});function ie(e){return x(e)?w(e)?e():e:t=>w(t)?t():t}var Mn,oe,_t=_(()=>{"use strict";Y();N();K();Mn=e=>{let t=new Set,r=e,n=0;for(;r&&r!==Object.prototype&&n++<10;){let o=Object.getOwnPropertyDescriptors(r);for(let[s,i]of Object.entries(o))J(s)&&(i.enumerable||w(i.get))&&t.add(s);r=Object.getPrototypeOf(r)}return Array.from(t)},oe=e=>{if(re(e)||w(e))return e;if(me(e))return e.map(r=>oe(r));if(Et(e)||yr(e)||Re(e)||Ie(e))return e;try{if(w(e.toJSON))return oe(e.toJSON())}catch{}let t={};for(let r of Mn(e))try{t[r]=oe(e[r])}catch{}return t};ie.stringSymbol=ie();ie.symbolRegExp=ie();ie.symbolString=ie();ie.stringString=ie()});function Rr(e,t){try{return globalThis.structuredClone(e,t)}catch{return Or(e)}}function zn(e,t){return Gn(t)}function Pr(e){let t=encodeURI(e);return t.includes("%")&&(t=t.replace(Fn,r=>Ir[r.toUpperCase()]??decodeURI(r))),t}function Gn(e){if(m(e))try{return decodeURI(e)}catch{}return e}function Me(e){return!B(e,"Function","AsyncFunction","WeakMap","WeakSet","WeakRef")}function kn(e,t){return`{"$${e}":${t}}`}function Wn(e){return k(ne(e)?`${Ot(e)?"@":""}@(${e.description??""})`:e)}function Pt(e){let[t,r,n]=e.toString().match(Un)||[null,void 0,void 0];switch(!0){case ne(e):case P(t):case(x(r)&&q(n)):return e;case x(r):return Symbol.for(n);case q(r):default:return Symbol(n)}}function Z(e,t){let r=ge;ge=t?.compact!==!1;try{let n=k(e,!1);if(t?.signed){if(!m(t.secret)||!t.secret)throw new TypeError("stringify: signed serialization requires an explicit secret string");return`$sig:${Dr(n,t.secret)}:${n}`}return n}finally{ge=r}}function k(e,t=!0){let r=te(e),n=Er(kn)(r.type);switch(r.type){case"String":{let o=r.value;return o.startsWith("~")&&(o=`~${o}`),t||(t=o==="true"||o==="false"||o==="null"||parseFloat(o).toString()===o||o.startsWith("~")),t?JSON.stringify(Pr(o)):Pr(o)}case"Boolean":case"Null":case"Number":return JSON.stringify(r.value);case"Void":case"Undefined":return ge?JSON.stringify("~u"):n(JSON.stringify("void"));case"BigInt":return ge?JSON.stringify(`~n${r.value.toString()}`):n(r.value.toString());case"Date":return ge?JSON.stringify(`~t${r.value.getTime()}`):n(k(r.value.toJSON()));case"Object":return`{${A(r.value).filter(([,s])=>Me(s)).map(([s,i])=>`${Wn(s)}: ${k(i)}`).join(",")}}`;case"Array":return`[${r.value.filter(s=>Me(s)).map(s=>k(s)).join(",")}]`;case"Map":{let o=Array.from(r.value.entries()).filter(([,s])=>Me(s)).map(([s,i])=>`[${k(s)}, ${k(i)}]`).join(",");return n(`[${o}]`)}case"Set":{let o=Array.from(r.value.values()).filter(s=>Me(s)).map(s=>k(s)).join(",");return n(`[${o}]`)}case"Symbol":{let o=`${Ot(r.value)?"@":""}@(${r.value.description??""})`;return ge?JSON.stringify(`~y${o}`):n(JSON.stringify(o))}case"RegExp":return n(k({source:r.value.source,flags:r.value.flags}));default:{let o=r.value;switch(!0){case!Me(o):return;case w(o.toJSON):return n(k(o.toJSON()));case(w(o.toString)&&o.toString!==Object.prototype.toString):{let s=o.toString();return n(s.includes('"')?s:JSON.stringify(s))}case(w(o.valueOf)&&o.valueOf!==Object.prototype.valueOf):return n(JSON.stringify(o.valueOf()));default:{let s=oe(o);return G(s)&&Object.keys(s).length>0?k(s):n(JSON.stringify(o,(i,a)=>O(i)?a:k(a)))}}}}}function ye(e,t){if(!m(e))return e;let r=w(t)?{sentinel:t}:t??{};if(e.startsWith("$sig:")){let o=e.indexOf(":",5);if(o!==-1){let s=e.substring(5,o),i=e.substring(o+1);if(!m(r.secret)||!r.secret){if(console.warn("objectify: signature verification requires an explicit secret string"),r.throwOnError)throw new TypeError("objectify: signature verification requires an explicit secret string");return e}let a=Dr(i,r.secret);if(!Jn(s,a)){if(console.warn("objectify: signature verification failed"),r.throwOnError)throw new Error("objectify: signature verification failed");return e}e=i}else if(r.requireSigned){if(console.warn("objectify: malformed signed payload"),r.throwOnError)throw new Error("objectify: malformed signed payload");return e}}else if(r.requireSigned){if(console.warn("objectify: unsigned string rejected by requireSigned policy"),r.throwOnError)throw new Error("objectify: unsigned string rejected by requireSigned policy");return e}let n;try{n=JSON.parse(e,zn)}catch(o){return e.startsWith('"')&&e.endsWith('"')?(console.warn(`objectify.parse: -> ${e}, ${o.message}`),e):ye(`"${e}"`,r.requireSigned?{...r,requireSigned:!1}:r)}switch(!0){case(e.startsWith("{")&&e.endsWith("}")):case(e.startsWith("[")&&e.endsWith("]")):return Nt(n,r,0);default:return ze(n,r)}}function Nt(e,t,r=0){let n=t.maxDepth??Kn;return r>=n?e:S(e)?ze(A(e).filter(([o])=>J(o)).reduce((o,[s,i])=>Object.assign(o,{[Pt(s)]:ze(Nt(i,t,r+1),t)}),{}),t):me(e)?pr(e).map(o=>ze(Nt(o,t,r+1),t)):ze(e,t)}function ze(e,t){if(m(e)&&e.startsWith("~"))try{if(e.startsWith("~~"))return e.substring(1);if(e.startsWith("~n"))return BigInt(e.substring(2));if(e.startsWith("~t")){let s=e.substring(2),i=new Date(rt(s)?Number(s):s);return isNaN(i.getTime())?e:i}if(e==="~u")return t.sentinel?.();if(e.startsWith("~y"))return Pt(e.substring(2))}catch{return e}if(!S(e)||Xe(e).length!==1)return e;let[r,n]=A(e)[0];if(!String(r).startsWith("$"))return e;let o=r.substring(1);try{switch(o){case"String":case"Boolean":case"Object":case"Array":return n;case"Number":return Number(n);case"BigInt":return BigInt(n);case"Null":return null;case"Undefined":case"Empty":case"Void":return t.sentinel?.();case"Date":return new Date(n);case"RegExp":return t.allowRegExp===!1||!S(n)||!m(n.source)||n.source.length>Zn?e:new RegExp(n.source,n.flags);case"Symbol":return Pt(n);case"Map":return me(n)?new Map(n):e;case"Set":return me(n)?new Set(n):e;default:{if(t.allowClasses===!1||t.allowedClasses&&!(t.allowedClasses instanceof Set?t.allowedClasses.has(r)||t.allowedClasses.has(o):t.allowedClasses.includes(r)||t.allowedClasses.includes(o)))return e;let s=st.get(r);return s?Reflect.construct(s,[n]):(console.warn(`objectify: dont know how to deserialize '${o}'`),e)}}}catch{return e}}var st,_r,Nr,Ir,Fn,Un,Bn,Dr,Jn,ge,Kn,Zn,xe=_(()=>{"use strict";it();Y();vr();_t();K();N();H();st=globalThis[b.$SerializerRegistry]??=new Map,_r=e=>{try{let t=e?.prototype?.[Symbol.toStringTag]??e?.[Symbol.toStringTag];return m(t)?t:void 0}catch{return}},Nr=(e,t)=>{let r=e.startsWith("$")?e:`$${e}`;if(st.has(r)){let n=st.get(r),o=_r(n),s=_r(t),i=n.name||o,a=t.name||s||(e.startsWith("$")?e.slice(1):e);if(n===t||n.toString()===t.toString()||!!t[b.$Identity]&&n[b.$Identity]===t[b.$Identity]||!!t[b.$Target]&&n[b.$Target]===t[b.$Target]||!!i&&!!a&&i===a)return;throw new Error(`[registerSerializable] Collision: '${r}' is already registered with ${n.name||"anonymous constructor"}`)}st.set(r,t)};Ir={"%20":" ","%22":'"',"%3B":";","%3C":"<","%3E":">","%5B":"[","%5D":"]","%5E":"^","%7B":"{","%7C":"|","%7D":"}"},Fn=new RegExp(Object.keys(Ir).join("|"),"gi");Un=/^@(@)?\(([^\)]*)\)$/;Bn=globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID().split("-")[0]:Math.random().toString(36).slice(2,10),Dr=(e,t=Bn)=>{let r=2166136261,n=2654435769,o=`${t}:${e}`;for(let s=0;s<o.length;s++){let i=o.charCodeAt(s);r=Math.imul(r^i,16777619),n=Math.imul(n^i,2246822507)}return(r>>>0).toString(16).padStart(8,"0")+(n>>>0).toString(16).padStart(8,"0")},Jn=(e,t)=>{if(!m(e)||!m(t)||e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e.charCodeAt(n)^t.charCodeAt(n);return r===0},ge=!0;Kn=64,Zn=512});function se(e,t,r,n,o,s){function i(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var a=n.kind,c=a==="getter"?"get":a==="setter"?"set":"value",u=!t&&e?n.static?e:e.prototype:null,p=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),l,h=!1,f=r.length-1;f>=0;f--){var I={};for(var g in n)I[g]=g==="access"?{}:n[g];for(var g in n.access)I.access[g]=n.access[g];I.addInitializer=function(T){if(h)throw new TypeError("Cannot add initializers after decoration has completed");s.push(i(T||null))};var d=(0,r[f])(a==="accessor"?{get:p.get,set:p.set}:p[c],I);if(a==="accessor"){if(d===void 0)continue;if(d===null||typeof d!="object")throw new TypeError("Object expected");(l=i(d.get))&&(p.get=l),(l=i(d.set))&&(p.set=l),(l=i(d.init))&&o.unshift(l)}else(l=i(d))&&(a==="field"?o.unshift(l):p[c]=l)}u&&Object.defineProperty(u,n.name,p),h=!0}function ae(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0}var Fe=_(()=>{"use strict"});function $r(e,t){return et(e)??(q(t)?e.name||void 0:String(t))}function Cr(e,{kind:t,name:r,addInitializer:n}){let o=$r(e,r);if(o&&tt(e,o),t==="class")return o&&n(()=>Nr(o,e)),e;throw new Error(`@Serializable decorating unknown 'kind': ${t} (${r})`)}function ce(e,t){let r=(n,o,s)=>{let i=n.prototype,a=o??$r(n,s);if(a&&(i&&!Object.hasOwn(i,Symbol.toStringTag)&&Object.defineProperty(i,Symbol.toStringTag,{value:a,configurable:!0,writable:!1,enumerable:!1}),!n.name||n.name!==a))try{Object.defineProperty(n,"name",{value:a,configurable:!0,writable:!1,enumerable:!1})}catch{}return n};return C(e)&&t?.kind==="class"?r(e,void 0,t.name):(n,o)=>r(n,m(e)?e:void 0,o?.name)}var Ge=_(()=>{"use strict";H();ot();N();xe();K()});var ke,Rt=_(()=>{"use strict";Fe();N();Ge();ke=(()=>{let e=[ce("BoundedCache")],t,r=[],n,o=Map;var s=class extends o{static{n=this}static{let i=typeof Symbol=="function"&&Symbol.metadata?Object.create(o[Symbol.metadata]??null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:i},null,r),s=n=t.value,i&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),ae(n,r)}#t=new Map;#e=new Set;#r=new Map;maxSize;ttl;constructor(i=1e3,a=1440*60*1e3){super(),this.maxSize=i,this.ttl=a}get isBoundedCache(){return!0}#n(i){let a=this.#t.get(i);return a===void 0?!1:Date.now()>a}evictExpired(){if(this.#t.size===0)return;let i=Date.now();for(let[a,c]of this.#t.entries())i>c&&this.delete(a)}setStatic(i,a){return super.has(i)&&super.delete(i),super.set(i,a),this.#e.add(i),this.#t.delete(i),this.#r.delete(i),this}isStatic(i){return this.#e.has(i)}get(i){if(this.#n(i)){this.delete(i);return}if(!super.has(i))return;let a=super.get(i);return super.delete(i),super.set(i,a),a}has(i){return this.#n(i)?(this.delete(i),!1):super.has(i)}get size(){return this.evictExpired(),super.size}forEach(i,a){this.evictExpired(),super.forEach(i,a)}set(i,a,c){this.evictExpired();let u=this.#t.get(i);for(super.has(i)&&super.delete(i),super.set(i,a),this.#e.delete(i),x(c)?c!==1/0?(this.#t.set(i,Date.now()+c),this.#r.set(i,c)):(this.#t.delete(i),this.#r.delete(i)):u!==void 0?this.#t.set(i,u):this.ttl!==1/0?(this.#t.set(i,Date.now()+this.ttl),this.#r.delete(i)):(this.#t.delete(i),this.#r.delete(i));this.size-this.#e.size>this.maxSize;){let p=!1,l=super.keys(),h=l.next();for(;!h.done;){let f=h.value;if(!this.#e.has(f)){this.delete(f),p=!0;break}h=l.next()}if(!p)break}return this}delete(i){return this.#e.delete(i),this.#t.delete(i),this.#r.delete(i),super.delete(i)}deletePrefix(i){let a=String(i).trim().toLowerCase();if(O(a))return 0;let c=[];for(let u of super.keys())m(u)&&u.toLowerCase().startsWith(a)&&c.push(u);for(let u of c)this.delete(u);return c.length}clear(i){if(i===void 0){this.#e.clear(),this.#t.clear(),this.#r.clear(),super.clear();return}let a=0;for(let c of super.keys()){if(a>=i)break;this.#e.has(c)||(this.delete(c),a++)}}keys(){return this.evictExpired(),super.keys()}values(){return this.evictExpired(),super.values()}entries(){return this.evictExpired(),super.entries()}[Symbol.iterator](){return this.evictExpired(),super[Symbol.iterator]()}toJSON(){this.evictExpired();let i=[];for(let[a,c]of super.entries())m(a)&&i.push([a,c]);return Object.fromEntries(i)}static fromEntries(i,a=1e3,c=1440*60*1e3){let u=new s(a,c);for(let[p,l]of i)u.set(p,l);return u}};return s=n})()});function Mr(e,t){let r;if(q(e))return t??{};switch(W.type){case E.Browser:r=It.getItem(e);break;case E.NodeJS:r=We.has(e)?We.get(e):jn(e);break;case E.Deno:r=W.global.Deno.env.get(e);break;case E.GoogleAppsScript:r=W.global.PropertiesService?.getUserProperties().getProperty(e);break;case E.WebWorker:case E.Unknown:r=void 0;break;default:throw new Error(`Cannot determine Javascript context: ${W.type}`)}return m(r)?ye(r):t}function Ct(e,t,r){let n=x(t)?Z(t):void 0,o=x(n);switch(W.type){case E.Browser:try{o?It.setItem(e,n):It.removeItem(e)}catch(s){console.warn(`[Storage] Failed to ${o?"setItem":"removeItem"} for key '${e}':`,s)}break;case E.NodeJS:o?r?.static?We.setStatic(e,n):We.set(e,n,r?.ttl):We.set(e,void 0,r?.ttl);break;case E.Deno:o?W.global.Deno.env.set(e,n):W.global.Deno.env.delete(e);break;case E.GoogleAppsScript:o?W.global.PropertiesService?.getUserProperties().setProperty(e,n):W.global.PropertiesService?.getUserProperties().deleteProperty(e);break;case E.WebWorker:case E.Unknown:break;default:throw new Error(`Cannot determine Javascript context: ${W.type}`)}}var W,Lr,Ar,Dt,$t,It,We,jn,At=_(()=>{"use strict";xe();$e();N();Rt();W=Se(),Lr=(e=1e3,t=1/0)=>{let r=new ke(e,t);return{get length(){return r.size},clear:()=>r.clear(),getItem:n=>r.get(n)??null,key:n=>Array.from(r.keys())[n]??null,removeItem:n=>{r.delete(n)},setItem:(n,o)=>{r.set(n,String(o))}}},Ar=new Map,Dt=e=>{let t=Ar.get(e);return t||(t=Lr(),Ar.set(e,t)),t},$t=(e="localStorage")=>{try{let t=globalThis?.[e];if(t&&C(t.getItem)&&C(t.setItem)&&C(t.removeItem)&&C(t.clear)&&C(t.key)&&y(t.length))return t}catch{}return Dt(e)},It=W.type===E.Browser?$t():Lr(),We=new ke(1e3,1/0),jn=e=>{try{let t=Reflect.get(W.global,"process");if(!t||typeof t!="object")return;let r=Reflect.get(t,"env");return!r||typeof r!="object"?void 0:Reflect.get(r,e)}catch{return}}});var zr=_(()=>{"use strict";xe();N()});function Fr(e=[],t){let r=n=>q(t)||x(n)?n:Rr(t);return gr(e)||dr(e)&&!m(e)?Array.from(e,r):[e]}function Gr(e){if(nt(e))return e;let t=new Error(S(e)&&m(e.message)?e.message:String(e));return S(e)&&(t.name=m(e.name)?e.name:"Error","code"in e&&(m(e.code)||y(e.code))&&(t.code=e.code),"stack"in e&&m(e.stack)&&(t.stack=e.stack)),t}var Hi,Yi,Lt=_(()=>{"use strict";xe();K();N();zr();Hi=BigInt(Number.MAX_SAFE_INTEGER),Yi=BigInt(Number.MIN_SAFE_INTEGER)});var kr=_(()=>{"use strict";Lt();if(typeof globalThis.Temporal>"u")throw new Error("Temporal API is not available. Node 20+ with a polyfill (e.g. @js-temporal/polyfill) is highly recommended. Native Temporal is fully reliable only on Node 26+ (while Node 22 may have instabilities).");try{if(typeof Temporal.Now.zonedDateTimeISO=="function"&&typeof Temporal.Now.zonedDateTimeISO().add!="function")throw new Error("Incomplete Temporal implementation")}catch(e){let t=Gr(e);if(console.warn("Tempo: Native Temporal implementation appears incomplete. Consider loading a polyfill.",t),t.message!=="Incomplete Temporal implementation")throw t}});function Wr(){return Temporal.Now.instant()}function Ur(e,t=2024){let r=Temporal.ZonedDateTime.from({year:t,month:1,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds,n=Temporal.ZonedDateTime.from({year:t,month:7,day:1,hour:0,minute:0,second:0,timeZone:e}).offsetNanoseconds;return{jan:r,jul:n}}var Mt=_(()=>{"use strict";kr();N()});function Ue(e,t,r){if(e){if(C(e[t]))return e[t]();if(r&&r in e)return e[r]}}function so(e){return e?Qn.has(e)?5:Xn.has(e)?6:Vn.has(e)?7:1:1}function ao(e){return e?e==="IR"?oo:e==="AF"?io:eo.has(e)?no:Br:Br}function co(e,t){let r=e?.script??(C(e?.maximize)?e.maximize().script:void 0);return r&&ro.has(r)||t&&to.has(t)?"rtl":"ltr"}var Hn,Yn,Te,ue,ss,as,Ft,cs,qn,ls,Vn,Xn,Qn,eo,to,ro,Br,no,oo,io,zt,us,fs,lo,uo,Jr,ps,at,ds,Gt=_(()=>{"use strict";Mt();it();N();Lt();Hn=/_/g,Yn=/[.@]/,Te=e=>typeof Intl<"u"&&(!e||Object.hasOwn(Intl,e)&&C(Intl[e])),ue=e=>{if(De(e)&&(e=e.toString()),!m(e))return;let t=e.trim();if(O(t))return;let r=t.split(Yn)[0];if(!O(r))return r.replace(Hn,"-")},ss=L((e,t)=>new Intl.RelativeTimeFormat(ue(e),t)),as=L((e,t)=>new Intl.ListFormat(ue(e),t)),Ft=L((e,t)=>new Intl.DateTimeFormat(ue(e),t)),cs=L((e,t)=>{try{return new Intl.PluralRules(ue(e),t)}catch{return{select:()=>"other"}}}),qn=L((e,t)=>new Intl.NumberFormat(ue(e),t)),ls=L((e,t)=>{try{let r=new Intl.DurationFormat(ue(e),t);if(w(r.format))return r;throw new Error("No format method")}catch{return{format:n=>String(n)}}});Vn=new Set(["US","CA","MX","BR","IL","JP","TW","HK","MO","PH","SG","TH","IN","KR","CO","PE","VE","ZA"]),Xn=new Set(["SA","AF","BH","DJ","DZ","EG","IQ","IR","JO","KW","LY","OM","QA","SD","SY","YE"]),Qn=new Set(["MV"]),eo=new Set(["SA","BH","DJ","DZ","EG","IQ","JO","KW","LY","OM","QA","SD","SY","YE"]),to=new Set(["ar","he","fa","ur","yi","ps","sd","ug","ckb"]),ro=new Set(["Arab","Hebr","Thaa","Syrc","Mand","Samr","Nkoo"]),Br=Object.freeze([6,7]),no=Object.freeze([5,6]),oo=Object.freeze([5]),io=Object.freeze([4,5]);zt=L(e=>{if(De(e))return e;if(Te("Locale"))try{let t=ue(e);return new Intl.Locale(t||"en-US")}catch{return}}),us=L(e=>{let t=zt(e)??zt("en-US"),r=t?.baseName??Jr(e)??"en-US",n=t?.language??r.split("-")[0]?.toLowerCase(),o=[];for(let pe of r.split("-").slice(1)){if(pe.length===1)break;o.push(pe)}let s=t?.region??(C(t?.maximize)?t.maximize().region:void 0)??o.find(pe=>/^[a-zA-Z]{2}$|^\d{3}$/.test(pe))?.toUpperCase(),i=t?.script??(C(t?.maximize)?t.maximize().script:void 0),a=Ue(t,"getWeekInfo","weekInfo"),c=a?.firstDay??so(s),u=Array.isArray(a?.weekend)?Object.freeze([...a.weekend]):ao(s),l=Ue(t,"getHourCycles","hourCycles")??t?.hourCycle??(Te("DateTimeFormat")?Ft(r,{hour:"numeric"}).resolvedOptions().hourCycle:void 0),h=Array.isArray(l)&&l.length>0?Object.freeze([...l]):m(l)?Object.freeze([l]):Object.freeze(["h23"]),f=Ue(t,"getTextInfo","textInfo"),I=f?.direction==="rtl"||f?.direction==="ltr"?f.direction:co(t,n),d=Ue(t,"getNumberingSystems","numberingSystems")??t?.numberingSystem??(Te("NumberFormat")?qn(r).resolvedOptions().numberingSystem:void 0),T=Array.isArray(d)&&d.length>0?Object.freeze([...d]):m(d)?Object.freeze([d]):Object.freeze(["latn"]),D=Ue(t,"getTimeZones","timeZones"),v=Array.isArray(D)&&D.length>0?Object.freeze([...D]):Object.freeze([]),j=Object.freeze({firstDay:c,weekend:u});return Object.freeze({locale:t,baseName:r,language:n,region:s,script:i,weekInfo:j,firstDay:c,weekend:u,hourCycle:h[0],hourCycles:h,direction:I,numberingSystem:T[0],numberingSystems:T,timeZones:v})}),fs=L((e="latn")=>{if(!(!e||e==="latn"||!Te("NumberFormat")))try{let t=new Intl.NumberFormat(`en-u-nu-${e}`,{useGrouping:!1}),r=Array.from({length:10},(n,o)=>t.format(o));return r[0]==="0"&&r[9]==="9"?void 0:Object.freeze(r)}catch{return}}),lo=Object.freeze({locale:"en-US",calendar:"iso8601",numberingSystem:"latn",timeZone:"UTC"}),uo=L(()=>Te("DateTimeFormat")?Object.freeze(Ft().resolvedOptions()):lo),Jr=L(e=>{let t=ue(e);if(t){if(Te("getCanonicalLocales"))try{return Intl.getCanonicalLocales(t)[0]}catch{return}return zt(t)?.baseName??t}}),ps=L(e=>Object.freeze(Fr(e).map(t=>Jr(t)).filter(Boolean))),at=L((e=uo().timeZone)=>{try{let{jan:t,jul:r}=Ur(e),o=["Australia","Antarctica","Africa/Johannesburg","America/Argentina/Buenos_Aires","America/Sao_Paulo"].some(s=>e.startsWith(s));switch(!0){case r>t:return"north";case r<t:return"south";default:return o?"south":void 0}}catch{return}}),ds=L(e=>{try{let t=new Date(2024,11,24),r=Ft(e).formatToParts(t);return r[0].type==="month"&&r[0].value==="12"}catch{return!1}})});function V(e){return{enumerable:!1,configurable:!1,writable:!1,value:e}}function Ee(e,t=!0){let n=de(this)!=="Module"&&w(this?.has)?this:po,o=te(e),s=Object.create(n);switch(o.type){case"Enumify":case"Object":Object.defineProperties(s,Object.getOwnPropertyDescriptors(o.value));break;case"Array":o.value.forEach((i,a)=>{if(y(i))throw new Error("Enumify: numeric keys are not supported");s[i]=a});break;default:throw new Error(`Enumify: invalid argument type: ${o.type}`)}return xr(s,!0,t)}var fo,po,Ts,Kr=_(()=>{"use strict";Fe();K();N();Y();ot();Ge();it();fo="Enumify",po=Ce(Object.create(null,{keys:Le("keys",function(){return A(this,!0).map(([e])=>e)}),values:Le("values",function(){return A(this,!0).map(([e,t])=>t)}),entries:Le("entries",function(){return A(this,!0).map(([e,t])=>Object.freeze([e,t]))}),invert:Le("invert",function(){return Object.fromEntries(this.entries().map(([e,t])=>[t,e]))}),has:V(function(e){return this.keys().includes(e)}),count:V(function(){return this.keys().length}),includes:V(function(e){return this.values().includes(e)}),keyOf:V(function(e){return this.invert()[e]}),extend:V(function(e,t){return Ee.call(this,e,t)}),forEach:V(function(e,t){this.entries().forEach((r,n)=>e.call(t,r,n,this))}),filter:V(function(e,t){return Ee(this.entries().reduce((r,n,o)=>e.call(t,n,o,this)?Object.assign(r,{[n[0]]:n[1]}):r,{}))}),map:V(function(e,t){return Ee(this.entries().reduce((r,n,o)=>Object.assign(r,{[n[0]]:e.call(t,n,o,this)}),{}))}),[Symbol.iterator]:V(function*(){for(let e of this.entries())yield e}),[Symbol.toStringTag]:{enumerable:!1,configurable:!1,writable:!1,value:fo}}));Ts=(()=>{let e=[Cr,ce("Enumify")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),ae(n,r)}constructor(s){return Ee(s)}};return o=n})()});function mo(e,t=U.Info){return y(e)?e>=U.Off&&e<=U.Trace?e:t:m(e)?Zr[e.toLowerCase()]??t:t}var U,F,Zr,ct,kt=_(()=>{"use strict";Fe();N();Kr();H();Ge();U=Ee(["Off","Error","Warn","Info","Debug","Trace"]),F={Off:"off",Log:"log",Info:"info",Warn:"warn",Debug:"debug",Trace:"trace",Error:"error"},Zr={[F.Off]:U.Off,[F.Error]:U.Error,[F.Warn]:U.Warn,[F.Info]:U.Info,[F.Log]:U.Info,[F.Debug]:U.Debug,[F.Trace]:U.Trace};ct=(()=>{let e=[ce("Logger")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),ae(n,r)}#t;level;constructor(s,i=U.Info){this.#t=s.startsWith("[")?s:`[${s}]`,this.level=i}#e(s,...i){let a;if(i.length>0&&S(i[0]))try{i[0][b.$LogConfig]&&(a=i.shift())}catch{}let c=this.level;if(a){if(a.silent===!0)return;a.debug!==void 0&&(c=mo(a.debug,c))}if(c===U.Off||(Zr[s]??0)>c)return;let p=i.map(l=>{if(nt(l))return l.message;if(S(l))try{let h=l.constructor?.name??"Object";if(h==="Object"){let f=Object.keys(l);return`{ ${f.slice(0,3).join(", ")}${f.length>3?`, ... (+${f.length-3} more)`:""} }`}return`[${h}]`}catch{return"[Object]"}return String(l)}).filter(l=>!O(l)).join(" ");O(p)||console[s](`${this.#t} ${p}`)}log=(...s)=>this.#e(F.Log,...s);info=(...s)=>this.#e(F.Info,...s);warn=(...s)=>this.#e(F.Warn,...s);debug=(...s)=>this.#e(F.Debug,...s);trace=(...s)=>this.#e(F.Trace,...s);error=(...s)=>this.#e(F.Error,...s)};return o=n})()});var jr={};we(jr,{WebStore:()=>go});var Be,go,Hr=_(()=>{"use strict";Fe();Y();xe();K();N();At();Ge();Be={Local:"local",Session:"session"},go=(()=>{let e=[ce("WebStore")],t,r=[],n;var o=class{static{n=this}static{let s=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;se(null,t={value:n},e,{kind:"class",name:n.name,metadata:s},null,r),o=n=t.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),ae(n,r)}static _localInstance;static _sessionInstance;static get local(){return o._localInstance??=new o(Be.Local)}static get session(){return o._sessionInstance??=new o(Be.Session)}#t;#e;get#r(){if(this.#e)return this.#e;let s=this.#t===Be.Local?"localStorage":"sessionStorage";return this.#e=$t(s)}#n(s){try{return s(this.#r)}catch{let a=this.#t===Be.Local?"localStorage":"sessionStorage",c=Dt(a);return this.#e=c,s(c)}}constructor(s=Be.Local){this.#t=s}get(s,i){let a=this.#n(c=>c.getItem(Z(s)));return m(a)?ye(a):i??null}set(s,i,a={merge:!0}){if(P(s))return this.clear();let c=this.get(s),u=te(i);switch(u.type){case"Undefined":return this.del(s);case"Object":return c??={},this.#o(s,a.merge?Object.assign(c,u.value):u.value);case"Array":return c??=[],this.#o(s,a.merge?Qe(c.concat(u.value)):i);case"Map":return c??=new Map,a.merge?(u.value.forEach((p,l)=>c.set(l,p)),this.#o(s,c)):this.#o(s,u.value);case"Set":return c??=new Set,a.merge?(u.value.forEach(p=>c.add(p)),this.#o(s,c)):this.#o(s,u.value);default:return this.#o(s,u.value)}}clear(){try{this.#n(s=>s.clear())}catch(s){console.warn("[WebStore] Failed to clear storage:",s)}return this}del(...s){return s.forEach(i=>{try{this.#n(a=>a.removeItem(Z(i)))}catch(a){console.warn(`[WebStore] Failed to removeItem for key '${String(i)}':`,a)}}),this}keys(...s){return this.entries(...s).map(([i])=>i)}values(...s){return this.entries(...s).map(([,i])=>i)}entries(...s){let i=new Set(s.map(c=>Z(c))),a=[];return this.#n(c=>{for(let u=0;u<c.length;u++){let p=c.key(u);if(p!==null&&(O(s)||i.has(p))){let l=c.getItem(p);a.push([ye(p),ye(l)])}}}),a}from(s){return A(s).forEach(([i,a])=>this.set(i,a)),this}#o(s,i){try{this.#n(a=>a.setItem(Z(s),Z(i)))}catch(a){console.warn(`[WebStore] Failed to setItem for key '${String(s)}':`,a)}return this}};return o=n})()});var Vr={};we(Vr,{geoCoords:()=>qr,geoLocation:()=>Je,mapAddress:()=>ho,mapHemisphere:()=>yo,mapQuery:()=>Bt});var ut,Yr,R,Ut,X,Wt,lt,Je,qr,Bt,yo,ho,Jt=_(()=>{"use strict";_t();$e();N();Mt();Gt();kt();ut={catch:!0,debug:0},Yr=Se(),R={},Ut="_magma_browser_map_",X=new ct("[Mapper]"),Wt=null,lt=()=>(Wt||(Wt=new Promise((e,t)=>{Yr.type===E.Browser?Promise.resolve().then(()=>(Hr(),jr)).then(({WebStore:r})=>{let n=new r("local"),o=n.get(Ut,{});G(o)&&(o.geolocation&&(!o.geolocation.coords||o.geolocation.$GeolocationPosition)&&delete o.geolocation,Object.assign(R,o)),e(n)}).catch(t):e(void 0)})),Wt),Je=(e={})=>lt().then(()=>new Promise((t,r)=>{e=Object.assign({},ut,e);let n=e.catch?t:r;typeof navigator<"u"&&"geolocation"in navigator?navigator.geolocation.getCurrentPosition(o=>{let s=R.geolocation?.coords,i=s?.latitude?.toFixed(3),a=s?.longitude?.toFixed(3),c=R.geolocation?.timestamp??0,u=o.coords.latitude.toFixed(3)!==i,p=o.coords.longitude.toFixed(3)!==a,l=c<Wr().epochMilliseconds-36e5;(u||p||l)&&(Object.assign(R,{georesponse:null}),X.info(e,"GeoLocation: device update")),Object.assign(R,{geolocation:oe(o)}),t(R.geolocation)},o=>{Object.assign(R,{geolocation:{error:o.message},georesponse:null}),n(R.geolocation)}):(Object.assign(R,{geolocation:{error:"Not Supported"},georesponse:null}),n(R.geolocation))})).finally(()=>{(R.geolocation?.error?X.error:X.info)(e,"geoLocation: ",R.geolocation),lt().then(r=>r?.set(Ut,R))}),qr=e=>new Promise((t,r)=>{if(!P(e))return t(e);Je().then(n=>P(n.error)?{location:{lat:n.coords.latitude,lng:n.coords.longitude}}:null).then(n=>t(n)).catch(n=>r(n))}),Bt=(e,t={})=>lt().then(()=>new Promise((r,n)=>{t=Object.assign({},ut,t);let o=t.catch?r:n;qr(e).then(s=>{switch(!0){case(Yr.type!==E.Browser||!window.google?.maps):throw new Error("Google Maps API not configured");case P(s):throw new Error("Cannot determine Coordinates");case P(e):{let i=R.geolocation&&R.georesponse,a=P(R.geolocation?.error)&&P(R.georesponse?.error);if(i&&a)return t.debug&&X.debug(t,"mapQuery: cache"),r(R.georesponse)}default:new window.google.maps.Geocoder().geocode(s).then(i=>r(R.georesponse=oe(i)))}}).catch(s=>{Object.assign(R,{georesponse:{error:s.message}}),o(R.georesponse)})})).finally(()=>{t.debug&&(R.georesponse?.error?X.error:X.debug)(t,"mapQuery: ",R.georesponse),lt().then(r=>r?.set(Ut,R))}),yo=(e,t={})=>Bt(e,t).then(r=>{if(t=Object.assign({},ut,t),P(r.error))return t.debug&&X.debug(t,"sphere: ",r),r.results[0].geometry.location.lat()>=0?"north":"south";let n=at();if(P(n)&&t.catch===!1)throw new Error("Cannot determine Hemisphere");return n}).catch(r=>{if(t.debug&&X.warn(t,"mapHemisphere: ",r.message),t.catch===!1)throw r;return null}),ho=(e,t={})=>Bt(e,t).then(r=>{if(!P(r.error))throw new Error(r.error);return r.results[0]}).then(({formatted_address:r,address_components:n})=>n.reduce((o,s)=>(s.types.filter(i=>i!=="political").forEach(i=>o[i]=(o[i]?o[i]+",":"").concat(s.short_name)),o),{formatted_address:r})).catch(r=>{if(t=Object.assign({},ut,t),t.debug&&X.warn(t,"mapAddress: ",r.message),t.catch===!1)throw r;return null})});var Zt={};we(Zt,{HTTP:()=>en,HttpError:()=>Q,METHOD:()=>tn,fetchHead:()=>bo,fetchRequest:()=>wo});var Kt,Xr,en,tn,Q,Qr,wo,bo,jt=_(()=>{"use strict";N();Kt=2e3,Xr=/\);?$/,en={Ok:200,PermRedirect:301,TempRedirect:302,BadRequest:400,Unauthorised:401,Forbidden:403},tn={Head:"HEAD",Get:"GET",Put:"PUT",Delete:"DELETE",Post:"POST"},Q=class extends Error{status;statusText;body;constructor(t,r,n){super(`${t}: ${r}`),this.status=t,this.statusText=r,this.body=n,this.name="HttpError"}},Qr=async(e,t)=>{let r=e.headers?.get?.("Content-Length")||e.headers?.get?.("content-length");if(r){let a=parseInt(r,10);if(y(a)&&a>t){try{await e.body?.cancel()}catch{}throw new Q(413,`Content-Length (${a}) exceeds limit (${t} bytes)`,null)}}if(!e.body){let a;if(w(e.text))a=await e.text();else if(w(e.json)){let u=await e.json();a=JSON.stringify(u)??""}else a="";let c=new TextEncoder().encode(a).byteLength;if(c>t)throw new Q(413,`Payload length (${c}) exceeds limit (${t} bytes)`,null);return a}let n=e.body.getReader(),o=new TextDecoder,s=0,i="";try{for(;;){let{done:a,value:c}=await n.read();if(a)break;if(c){if(s+=c.byteLength,s>t){try{await n.cancel()}catch{}throw new Q(413,`Streamed payload exceeded limit (${t} bytes)`,null)}i+=o.decode(c,{stream:!0})}}return i+=o.decode(),i}finally{try{n.releaseLock()}catch{}}},wo=(e,t={},r={})=>{let n={...t,signal:t.signal?AbortSignal.any([t.signal,AbortSignal.timeout(r.timeout??Kt)]):AbortSignal.timeout(r.timeout??Kt)};return fetch(e,n).then(async o=>{if(o.ok){let a=(o.headers?.get?.("Content-Type")||o.headers?.get?.("content-type")||"").includes("application/json");if(x(r.maxBytes)){let c=await Qr(o,r.maxBytes);if(r.rawText)return c;if(r.prefix){let u=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(u)}if(a)return JSON.parse(c);try{return JSON.parse(c)}catch{return c}}if(r.rawText)return w(o.text)?await o.text():"";if(r.prefix){let c=await o.text(),u=c.startsWith(r.prefix)?c.substring(r.prefix.length).replace(Xr,""):c;return JSON.parse(u)}if(w(o.text)){let c=await o.text();try{return JSON.parse(c)}catch{return c}}return w(o.json)?await o.json():""}let s=null;try{let i=x(r.maxBytes)?await Qr(o,r.maxBytes):w(o.text)?await o.text():"";try{s=JSON.parse(i)}catch{s=i}}catch(i){if(i instanceof Q&&i.status===413)throw i}throw new Q(o.status,o.statusText,s)})},bo=e=>{let t=AbortSignal.timeout(Kt),r={method:tn.Head,signal:t};return fetch(e,r).then(({ok:n,status:o,statusText:s,headers:i})=>{if(n||o===en.Forbidden)return{status:o,headers:i};throw new Q(o,s,null)})}});var nn={};we(nn,{serverGeoCoords:()=>ft,serverGeoLocation:()=>Ke,serverMapHemisphere:()=>Vt});var rn,qt,Ht,Yt,So,Ke,ft,Vt,Xt=_(()=>{"use strict";N();Gt();kt();rn=new ct("[ServerMapper]"),qt="https://ipwho.is",Ht={endpoint:`${qt}/`,timeout:3e3,catch:!0,debug:0},Yt=null,So=()=>(Yt||(Yt=Promise.resolve().then(()=>(jt(),Zt))),Yt),Ke=async(e={})=>{let t={...Ht,...e},r=t.catch!==!1;try{let n=t.endpoint||Ht.endpoint;if(m(t.ip)){let l=encodeURIComponent(t.ip.trim());if((n.endsWith("/")?n.slice(0,-1):n)===qt)n=`${qt}/${l}`;else if(n.includes("{ip}"))n=n.replace("{ip}",l);else if(l!=="")throw new Error(`Custom endpoint must include an '{ip}' placeholder to resolve a specific IP: ${n}`)}let o=t.timeout??Ht.timeout,{fetchRequest:s}=await So(),i=await s(n,{},{...y(o)?{timeout:o}:{},maxBytes:64*1024});if(typeof i!="object"||P(i))throw new Error("Geolocation lookup failed");if(i.status==="fail"||i.success===!1)throw new Error(i.message||i.reason||"Geolocation lookup failed");let a=y(i.lat)?i.lat:i.latitude,c=y(i.lon)?i.lon:i.lng??i.longitude;if(!y(a)||!y(c))throw new Error("Geolocation lookup failed");let u=m(i.timezone)?i.timezone:i.timezone?.id??i.timeZone,p={lat:a,lng:c,latitude:a,longitude:c,...m(i.country||i.countryName||i.country_name)?{country:i.country||i.countryName||i.country_name}:{},...m(i.city||i.cityName||i.city_name)?{city:i.city||i.cityName||i.city_name}:{},...m(u)?{timezone:u}:{},...m(i.query||i.ip||i.ip_address)?{query:i.query||i.ip||i.ip_address}:{},status:"success"};return t.debug&&rn.info(t,"serverGeoLocation success: ",p),p}catch(n){let o=n?.message||"Server geolocation error";if(t.debug&&rn.error(t,"serverGeoLocation error: ",o),!r)throw n;return{error:o,status:"fail"}}},ft=async(e,t)=>{if(!P(e)){let n=e.latitude??e.lat,o=e.longitude??e.lng??e.lon??e.long;if(y(n)&&y(o))return{lat:n,lng:o}}let r=await Ke(t);return P(r.error)&&y(r.lat)&&y(r.lng)?{lat:r.lat,lng:r.lng}:null},Vt=async(e,t)=>{let r=await ft(e,t);return r?r.lat>=0?"north":"south":at()??null}});var fn=cr((ra,un)=>{"use strict";un.exports=window.undefined});var Po={};we(Po,{GEO_PROPERTIES:()=>je,GeoPlugin:()=>Pe,NON_GEO_CONTROL_KEYS:()=>pn,clearStashedGeo:()=>mt,coerceGeo:()=>ve,default:()=>mn,forwardGeocode:()=>ir,geoLocation:()=>Je,geoLookup:()=>yt,geoPlugin:()=>dn,getGeoProvider:()=>or,getStashedGeo:()=>_e,resolveCulturalLocale:()=>sr.resolveCulturalLocale,resolveGeoCoordinates:()=>He,reverseGeocode:()=>fe,serverGeoCoords:()=>ft,serverGeoLocation:()=>Ke,serverMapHemisphere:()=>Vt,setGeoProvider:()=>gt,stashGeo:()=>dt});var z={};we(z,{definePlugin:()=>bt,defineTerm:()=>xn});Ne(z,ht(wt()));var Ve=ht(wt()),bt=e=>(0,Ve.definePlugin)({...e,version:"1.4.1"}),xn=e=>(0,Ve.defineTerm)({...e,version:"1.4.1"});$e();N();At();N();function le(...e){for(let t of e){let r=w(t)?t():t;if(r!==void 0)return r}}Rt();var he="_magma_geo_",er=1440*60*1e3,xo="https://api.bigdatacloud.net/data/reverse-geocode-client",To=3e3,Eo=64*1024,Oo=1e3,je=["latitude","lat","longitude","lng","lon","long","elevation","sphere","country","city","timezone","tz"],sn=e=>{if(!x(e)||mr(e))return NaN;if(m(e)){let t=e.trim();return t.length>0?Number(t):NaN}return y(e)?e:NaN},tr=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-90||r>90))return t?Math.round(r*1e3)/1e3:r},rr=(e,t=!0)=>{let r=sn(e);if(!(!y(r)||r<-180||r>180))return t?Math.round(r*1e3)/1e3:r},Ze=(e,t,r=!0)=>{let n=tr(e,r),o=rr(t,r);return x(n)&&x(o)?{lat:n,lng:o}:void 0},an=e=>y(e)?Math.round(e*1e3)/1e3:void 0,Oe=(e,t)=>{if(e==="north"||e==="south"||e==="equator")return e;if(y(t))return t>.001?"north":t<-.001?"south":"equator"},cn=(e,t=!0)=>{if(m(e)&&e.includes(",")){let r=e.split(",").map(n=>n.trim());return r.length>=2?Ze(r[0],r[1],t):void 0}return Array.isArray(e)&&e.length>=2?Ze(e[0],e[1],t):void 0},ee=(e,t)=>{let r="lat"in e?e.lat:e.latitude,n="lng"in e?e.lng:e.longitude,o=tr(r),s=rr(n),i=Oe(t?.sphere,o??r),a=an(t?.elevation);return{latitude:o??r,longitude:s??n,...i?{sphere:i}:{},...m(t?.city)&&!O(t.city)?{city:t.city.trim()}:{},...m(t?.country)&&!O(t.country)?{country:t.country.trim()}:{},...a!==void 0?{elevation:a}:{},...m(t?.timezone)&&!O(t.timezone)?{timezone:t.timezone.trim()}:{}}},vo=(e,t=je)=>{let r={};if(G(e))for(let n of Object.keys(e))J(n)&&!t.includes(n)&&(r[n]=e[n]);return r},ve=e=>{let t=cn(e);if(t)return ee(t);if(re(e))return;let r=e.geo??e,n=e.config?.geo??e.config,o=le(r?.latitude,r?.lat,e.latitude,e.lat,n?.latitude,n?.lat),s=le(r?.longitude,r?.lng,r?.lon,r?.long,e.longitude,e.lng,e.lon,e.long,n?.longitude,n?.lng,n?.lon,n?.long),i=le(r?.elevation,e.elevation,n?.elevation),a=le(r?.sphere,e.sphere,n?.sphere),c=le(r?.country,e.country,n?.country),u=le(r?.city,e.city,n?.city),p=le(r?.timezone,r?.tz,e.timezone,e.tz,n?.timezone,n?.tz),l={},h=tr(o),f=rr(s);h!==void 0&&(l.latitude=h),f!==void 0&&(l.longitude=f);let I=an(i);I!==void 0&&(l.elevation=I);let g=Oe(a,l.latitude);g&&(l.sphere=g),m(c)&&(l.country=c),m(u)&&(l.city=u),m(p)&&(l.timezone=p);let d=G(e.geo)?e.geo:G(e.config?.geo)?e.config.geo:void 0,T=vo(d);return Object.assign(l,T),Object.keys(l).length>0?l:void 0},nr=e=>{if(m(e)&&!O(e)){let t=e.trim();return t.startsWith(he)?t:`${he}:${t}`}if(e&&S(e)){let t=e.provider??M,r=t&&m(t.name)&&!O(t.name)?`provider:${t.name}`:void 0,n=e.key??e.ip??e.query;if(m(n)&&!O(n)){let o=n.trim();return r?`${he}:${r}:${o}`:`${he}:${o}`}if(r)return`${he}:${r}`}else if(M&&m(M.name)&&!O(M.name))return`${he}:provider:${M.name}`;return he},_e=e=>{let t=nr(e);try{let r=Mr(t)??(C(globalThis.localStorage?.getItem)?globalThis.localStorage.getItem(t):void 0);if(!r)return;let n=m(r)&&(r.startsWith("{")||r.startsWith("["))?JSON.parse(r):r;if(S(n)&&y(n._expires)&&Date.now()>n._expires){mt(e);return}let o=cn(n);if(o)return ee(o);if(S(n)){let s=n.geolocation?.coords??n.coords??n,i=s?.latitude??s?.lat,a=s?.longitude??s?.lng??s?.lon??s?.long,c=Ze(i,a);if(c){let u=n.elevation??s.elevation;return ee(c,{elevation:u,sphere:n.sphere,country:n.country,city:n.city,timezone:n.timezone})}}}catch{}},dt=(e,t=er,r)=>{let n=nr(r),o=y(t)&&t>0?{...e,_expires:Date.now()+t}:e;Ct(n,o,{ttl:t})},mt=e=>{let t=nr(e);Ct(t,void 0)},M;function gt(e){M=e}function or(){return M}var yt=async(e={})=>{let t=e.provider??M;if(e.refresh!==!0){let a=_e(e);if(a&&y(a.latitude)&&y(a.longitude)){let{latitude:c,longitude:u,...p}=a,l={...p,status:"cached",lat:c,lng:u,latitude:c,longitude:u};if((e.reverse===!0||e.autoReverse===!0)&&(!l.city||!l.country)){let f=await fe(l,e);f&&(!l.city&&$(f.city)&&(l.city=f.city),!l.country&&$(f.country)&&(l.country=f.country))}return l}}let n;if(t&&w(t.lookup))try{let a=await t.lookup(e);if(a){if(n=a,a.error&&e.fallback===!1)return a}else if(e.fallback===!1)return{error:"Provider returned null and fallback is disabled"}}catch(a){if(e.fallback===!1)return{error:a?.message??"Provider lookup failed"}}if(!n||n.error){if(e.fallback===!1&&(t||n?.error))return n&&n.error?n:{error:"Geolocation resolution failed and fallback is disabled"};let{type:a}=Se();switch(a){case E.Browser:{let{geoLocation:c}=await Promise.resolve().then(()=>(Jt(),Vr)),u=await c(e);if(u.error)return{error:u.error};let p=u.coords?.latitude,l=u.coords?.longitude;n={...u,lat:p,lng:l,latitude:p,longitude:l};break}case E.WebWorker:case E.NodeJS:case E.Deno:default:{let{serverGeoLocation:c}=await Promise.resolve().then(()=>(Xt(),nn));n=await c(e);break}}}let o=n.latitude??n.lat,s=n.longitude??n.lng,i=Ze(o,s);if(P(n.error)&&i){let a=Oe(n.sphere,i.lat);if(n.lat=i.lat,n.lng=i.lng,n.latitude=i.lat,n.longitude=i.lng,n.sphere=a,(e.reverse===!0||e.autoReverse===!0)&&(!n.city||!n.country)){let p=await fe(n,e);p&&(!n.city&&$(p.city)&&(n.city=p.city),!n.country&&$(p.country)&&(n.country=p.country))}let u=ee(i,n);try{let p=y(e.ttl)?e.ttl:er;dt(u,p,e)}catch{}}return n},Qt=null,_o=()=>(Qt||(Qt=Promise.resolve().then(()=>(jt(),Zt))),Qt),pt=new ke(Oo,er),ln=e=>{try{let t=new URL(e);return t.protocol==="https:"||t.hostname==="localhost"||t.hostname==="127.0.0.1"}catch{return!1}};var on=(e,t,r)=>{let n=`${e.toFixed(2)},${t.toFixed(2)}`;if(m(r)&&!O(r))return`${n}:${r.trim()}`;if(S(r)){let s=Object.hasOwn(r,"provider")?r.provider:M,i=s&&m(s.name)&&!O(s.name)?s.name.trim():void 0,a=m(r.reverseEndpoint??r.reverseGeoEndpoint)&&!O(r.reverseEndpoint??r.reverseGeoEndpoint)?(r.reverseEndpoint??r.reverseGeoEndpoint).trim():void 0,c=a&&ln(a)?a:void 0;if(i&&c)return`${n}:${i}:${c}`;if(i)return`${n}:${i}`;if(c)return`${n}:${c}`}else if(M&&m(M.name)&&!O(M.name))return`${n}:${M.name.trim()}`;return n};async function fe(e,t){let r=ve(e);if(!r||!y(r.latitude)||!y(r.longitude))return null;let n=r.latitude,o=r.longitude,s=on(n,o,t),i=t?.refresh!==!0;if(i){let f=pt.get(s);if(f)return{...f,latitude:n,longitude:o,sphere:Oe(f.sphere,n),elevation:y(f.elevation)?f.elevation:r.elevation,timezone:m(f.timezone)?f.timezone:r.timezone}}let a=S(t)&&Object.hasOwn(t,"provider"),c=a?t.provider:M;if(c&&w(c.reverseGeocode))try{let f=await c.reverseGeocode(r,t);if(f&&S(f)){let I=ee({lat:n,lng:o},{sphere:f.sphere,city:f.city,country:f.country,elevation:y(f.elevation)?f.elevation:r.elevation,timezone:m(f.timezone)?f.timezone:r.timezone}),g=ee({lat:n,lng:o},{sphere:f.sphere,city:f.city,country:f.country,timezone:f.timezone});return pt.set(s,g),I}if(t?.fallback===!1)return null}catch(f){if(t?.fallback===!1)throw f}else if(t?.fallback===!1&&(c||a))return null;let u=t?.reverseEndpoint??t?.reverseGeoEndpoint;if($(u)){let f=u.trim();if(!ln(f))return t?.fallback===!1?null:r}let p=$(u)?u.trim():void 0,l=on(n,o,p??"default");if(i){let f=pt.get(l);if(f)return{...f,latitude:n,longitude:o,sphere:Oe(f.sphere,n),elevation:y(f.elevation)?f.elevation:r.elevation,timezone:m(f.timezone)?f.timezone:r.timezone}}let h;if(p)if(/\{(?:latitude|lat|longitude|lng|lon)\}/i.test(p))h=p.replace(/\{latitude\}/gi,encodeURIComponent(n)).replace(/\{lat\}/gi,encodeURIComponent(n)).replace(/\{longitude\}/gi,encodeURIComponent(o)).replace(/\{lng\}/gi,encodeURIComponent(o)).replace(/\{lon\}/gi,encodeURIComponent(o));else{let f=p.includes("?")?"&":"?";h=`${p}${f}latitude=${encodeURIComponent(n)}&longitude=${encodeURIComponent(o)}`}else h=`${xo}?latitude=${n}&longitude=${o}&localityLanguage=en`;try{let f=y(t?.timeout)&&t.timeout>0?t.timeout:To,I=y(t?.maxBytes)&&t.maxBytes>0?t.maxBytes:Eo,{fetchRequest:g}=await _o(),d=await g(h,{},{timeout:f,maxBytes:I});if(S(d)){let T=$(d.city)?d.city.trim():$(d.locality)?d.locality.trim():$(d.principalSubdivision)?d.principalSubdivision.trim():void 0,D=$(d.countryCode)?d.countryCode.trim():$(d.countryName)?d.countryName.trim():void 0,v=ee({lat:n,lng:o},{city:T,country:D,elevation:r.elevation,timezone:r.timezone});if($(T)||$(D)){let j=ee({lat:n,lng:o},{city:T,country:D});pt.set(l,j)}return v}}catch{}return r}async function ir(e,t){let r=t?.provider??M;return r&&w(r.forwardGeocode)?r.forwardGeocode(e,t):null}var He=async(e,t={})=>{let r=S(e)?{...e,...t}:t,n=ve(e);if(n&&y(n.latitude)&&y(n.longitude)){if((r.reverse===!0||r.autoReverse===!0)&&(!n.city||!n.country)){let c=await fe(n,r);if(c)return{...c,...n,city:$(n.city)?n.city:c.city,country:$(n.country)?n.country:c.country,lat:n.latitude,lng:n.longitude,latitude:n.latitude,longitude:n.longitude}}return{...n,lat:n.latitude,lng:n.longitude}}let o=r.refresh===!0?void 0:_e(r);if(o&&y(o.latitude)&&y(o.longitude)){if((r.reverse===!0||r.autoReverse===!0)&&(!o.city||!o.country)){let c=await fe(o,r);if(c)return{...c,...o,city:$(o.city)?o.city:c.city,country:$(o.country)?o.country:c.country,lat:o.latitude,lng:o.longitude,latitude:o.latitude,longitude:o.longitude}}return{...o,lat:o.latitude,lng:o.longitude}}let s=await yt(r),i=Ze(s.lat,s.lng);if(P(s.error)&&i){let a=Oe(s.sphere,i.lat),c={...ee(i,{...s,sphere:a}),lat:i.lat,lng:i.lng,latitude:i.lat,longitude:i.lng,sphere:a};if((r.reverse===!0||r.autoReverse===!0)&&(!c.city||!c.country)){let p=await fe(c,r);if(p)return{...p,...c,city:$(c.city)?c.city:p.city,country:$(c.country)?c.country:p.country,lat:i.lat,lng:i.lng,latitude:i.lat,longitude:i.lng,sphere:a}}return c}return null};var sr=ht(fn(),1);Xt();Jt();N();var pn=["setTimezone","setLocale","refresh","ttl","endpoint","timeout","maxBytes","highAccuracy","catch","debug","geo","provider","fallback","reverse","autoReverse"];var Pe=bt({name:"geo",install(e,t){let r=e||this;t?.provider&&gt(t.provider);let n=(o,s)=>{let i=r.config?.pluginOptions?.geo,a=s?.config?.pluginOptions?.geo;return{...S(t)?t:{},...S(i)?i:{},...S(a)?a:{},...S(o)?o:{}}};Object.hasOwn(r,"geo")||Object.defineProperty(r,"geo",{value:(0,z.deepFreeze)({lookup:s=>yt(n(s)),resolve:(s,i)=>He(s,n(i,s)),coerce:ve,stash:dt,clear:mt,get:_e,setProvider:gt,getProvider:or,reverse:(s,i)=>fe(s,n(i)),forward:(s,i)=>ir(s,n(i)),server:Ke,browser:Je,get current(){return _e()??r.config?.geo}}),writable:!1,configurable:!1,enumerable:!1}),e.prototype.geoLocate=async function(o){let s=n(o,this),i=s?.setTimezone!==!1,a=s?.setLocale??!0,c=await He(this,s);if(c){let u=S(this.config.geo)?this.config.geo:{},p={};for(let v of Object.keys(u))J(v)&&!je.includes(v)&&(p[v]=u[v]);let l=ve(o)??{};if(S(o))for(let v of Object.keys(o))J(v)&&!pn.includes(v)&&(je.includes(v)||(p[v]=o[v]));let h=y(c?.elevation)?c.elevation:y(u.elevation)?u.elevation:void 0,f={...p,...c,...y(h)?{elevation:h}:{},...l},I=f.latitude,g=f.longitude;y(I)&&(f.latitude=Math.round(I*1e3)/1e3),y(g)&&(f.longitude=Math.round(g*1e3)/1e3),!f.sphere&&y(I)&&(f.sphere=I>.001?"north":I<-.001?"south":"equator");let d=this,T=f.timezone;i&&m(T)&&!O(T)&&(d=this.set({timeZone:T}));let D=f.country||m(a)?(0,sr.resolveCulturalLocale)(this.locale??this.config.locale,f.country,a):void 0;return new e(d,{...d.config,...D?{locale:D}:{},geo:(0,z.deepFreeze)(f),...f.sphere?{sphere:f.sphere}:{}})}return this},e.prototype.geoLookup=async function(o){return He(this,n(o,this))}}}),dn=Pe,mn=Pe;(0,z.autoInstall)(Pe);return Sn(Po);})();
package/dist/install.js CHANGED
@@ -2775,8 +2775,8 @@ __export(sdk_exports, {
2775
2775
  __reExport(sdk_exports, sdk_star);
2776
2776
  import * as sdk_star from "@magmacomputing/tempo/plugin/sdk";
2777
2777
  import { definePlugin as originalPlugin, defineTerm as originalTerm } from "@magmacomputing/tempo/plugin/sdk";
2778
- var definePlugin = (config) => originalPlugin({ ...config, version: "1.4.0" });
2779
- var defineTerm = (config) => originalTerm({ ...config, version: "1.4.0" });
2778
+ var definePlugin = (config) => originalPlugin({ ...config, version: "1.4.1" });
2779
+ var defineTerm = (config) => originalTerm({ ...config, version: "1.4.1" });
2780
2780
 
2781
2781
  // ../../library/dist/common/runtime/mapper.library.js
2782
2782
  init_utility_library();
@@ -3004,7 +3004,7 @@ var geoLookup = async (opts = {}) => {
3004
3004
  const stashed = getStashedGeo(opts);
3005
3005
  if (stashed && isNumber(stashed.latitude) && isNumber(stashed.longitude)) {
3006
3006
  const { latitude, longitude, ...rest } = stashed;
3007
- return {
3007
+ const cachedRes = {
3008
3008
  ...rest,
3009
3009
  status: "cached",
3010
3010
  lat: latitude,
@@ -3012,6 +3012,17 @@ var geoLookup = async (opts = {}) => {
3012
3012
  latitude,
3013
3013
  longitude
3014
3014
  };
3015
+ const shouldReverse = opts.reverse === true || opts.autoReverse === true;
3016
+ if (shouldReverse && (!cachedRes.city || !cachedRes.country)) {
3017
+ const reversed = await reverseGeocode(cachedRes, opts);
3018
+ if (reversed) {
3019
+ if (!cachedRes.city && isText(reversed.city))
3020
+ cachedRes.city = reversed.city;
3021
+ if (!cachedRes.country && isText(reversed.country))
3022
+ cachedRes.country = reversed.country;
3023
+ }
3024
+ }
3025
+ return cachedRes;
3015
3026
  }
3016
3027
  }
3017
3028
  let res;
@@ -3065,6 +3076,16 @@ var geoLookup = async (opts = {}) => {
3065
3076
  res.latitude = coords.lat;
3066
3077
  res.longitude = coords.lng;
3067
3078
  res.sphere = sphere;
3079
+ const shouldReverse = opts.reverse === true || opts.autoReverse === true;
3080
+ if (shouldReverse && (!res.city || !res.country)) {
3081
+ const reversed = await reverseGeocode(res, opts);
3082
+ if (reversed) {
3083
+ if (!res.city && isText(reversed.city))
3084
+ res.city = reversed.city;
3085
+ if (!res.country && isText(reversed.country))
3086
+ res.country = reversed.country;
3087
+ }
3088
+ }
3068
3089
  const stashPayload = assembleGeoConfig(coords, res);
3069
3090
  try {
3070
3091
  const ttl = isNumber(opts.ttl) ? opts.ttl : DEFAULT_GEO_TTL;
@@ -3227,11 +3248,12 @@ async function forwardGeocode(query, opts) {
3227
3248
  return provider && isFunction(provider.forwardGeocode) ? provider.forwardGeocode(query, opts) : null;
3228
3249
  }
3229
3250
  var resolveGeoCoordinates = async (input, opts = {}) => {
3251
+ const effectiveOpts = isObject(input) ? { ...input, ...opts } : opts;
3230
3252
  const coerced = coerceGeo(input);
3231
3253
  if (coerced && isNumber(coerced.latitude) && isNumber(coerced.longitude)) {
3232
- const shouldReverse = opts.reverse === true || opts.autoReverse === true;
3254
+ const shouldReverse = effectiveOpts.reverse === true || effectiveOpts.autoReverse === true;
3233
3255
  if (shouldReverse && (!coerced.city || !coerced.country)) {
3234
- const reversed = await reverseGeocode(coerced, opts);
3256
+ const reversed = await reverseGeocode(coerced, effectiveOpts);
3235
3257
  if (reversed) {
3236
3258
  return {
3237
3259
  ...reversed,
@@ -3251,25 +3273,60 @@ var resolveGeoCoordinates = async (input, opts = {}) => {
3251
3273
  lng: coerced.longitude
3252
3274
  };
3253
3275
  }
3254
- const stashed = opts.refresh === true ? void 0 : getStashedGeo(opts);
3255
- if (stashed && isNumber(stashed.latitude) && isNumber(stashed.longitude))
3276
+ const stashed = effectiveOpts.refresh === true ? void 0 : getStashedGeo(effectiveOpts);
3277
+ if (stashed && isNumber(stashed.latitude) && isNumber(stashed.longitude)) {
3278
+ const shouldReverse = effectiveOpts.reverse === true || effectiveOpts.autoReverse === true;
3279
+ if (shouldReverse && (!stashed.city || !stashed.country)) {
3280
+ const reversed = await reverseGeocode(stashed, effectiveOpts);
3281
+ if (reversed) {
3282
+ return {
3283
+ ...reversed,
3284
+ ...stashed,
3285
+ city: isText(stashed.city) ? stashed.city : reversed.city,
3286
+ country: isText(stashed.country) ? stashed.country : reversed.country,
3287
+ lat: stashed.latitude,
3288
+ lng: stashed.longitude,
3289
+ latitude: stashed.latitude,
3290
+ longitude: stashed.longitude
3291
+ };
3292
+ }
3293
+ }
3256
3294
  return {
3257
3295
  ...stashed,
3258
3296
  lat: stashed.latitude,
3259
3297
  lng: stashed.longitude
3260
3298
  };
3261
- const lookup = await geoLookup(opts);
3299
+ }
3300
+ const lookup = await geoLookup(effectiveOpts);
3262
3301
  const coords = normalizeCoords(lookup.lat, lookup.lng);
3263
3302
  if (isNullish(lookup.error) && coords) {
3264
3303
  const sphere = resolveSphere(lookup.sphere, coords.lat);
3265
- return {
3266
- ...lookup,
3304
+ const base = {
3305
+ ...assembleGeoConfig(coords, { ...lookup, sphere }),
3267
3306
  lat: coords.lat,
3268
3307
  lng: coords.lng,
3269
3308
  latitude: coords.lat,
3270
3309
  longitude: coords.lng,
3271
3310
  sphere
3272
3311
  };
3312
+ const shouldReverse = effectiveOpts.reverse === true || effectiveOpts.autoReverse === true;
3313
+ if (shouldReverse && (!base.city || !base.country)) {
3314
+ const reversed = await reverseGeocode(base, effectiveOpts);
3315
+ if (reversed) {
3316
+ return {
3317
+ ...reversed,
3318
+ ...base,
3319
+ city: isText(base.city) ? base.city : reversed.city,
3320
+ country: isText(base.country) ? base.country : reversed.country,
3321
+ lat: coords.lat,
3322
+ lng: coords.lng,
3323
+ latitude: coords.lat,
3324
+ longitude: coords.lng,
3325
+ sphere
3326
+ };
3327
+ }
3328
+ }
3329
+ return base;
3273
3330
  }
3274
3331
  return null;
3275
3332
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmacomputing/tempo-plugin-geo",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "Tempo community plugin for IP geolocation lookup, browser hardware location services, and coordinate resolution.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",