@vnedyalk0v/react19-simple-maps
Advanced tools
+16
-10
| # Changelog | ||
| ## 2.0.9 | ||
| ### Patch Changes | ||
| - Prepared geographies now always expose a stable `rsmKey` value for React list keys. | ||
| - Existing `rsmKey` values are preserved, feature `id` values are used when available, and deterministic index keys are used as a fallback. | ||
| - Synthesized prepared geography keys now avoid collisions with existing feature keys. | ||
| - Fallback `rsmKey` values keep React list keys unique when a GeoJSON `id` or existing `rsmKey` already uses the same `geo-*` shape. | ||
| - Duplicate explicit `rsmKey` and GeoJSON `id` values are also disambiguated with stable suffixes. | ||
| All notable changes to `@vnedyalk0v/react19-simple-maps` are documented in this file. | ||
| This changelog follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and | ||
| the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
| ## 2.0.8 | ||
@@ -16,3 +31,3 @@ | ||
| ### Changed | ||
| ### Patch Changes | ||
@@ -26,6 +41,2 @@ - Hardened geography validation and cache isolation. | ||
| ## [Unreleased] | ||
| No unreleased user-facing or package-impacting changes. | ||
| ## [2.0.6] - 2026-04-06 | ||
@@ -76,7 +87,2 @@ | ||
| All notable changes to `@vnedyalk0v/react19-simple-maps` are documented in this file. | ||
| This changelog follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and | ||
| the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
| ## [2.0.3] - 2026-04-02 | ||
@@ -83,0 +89,0 @@ |
+1
-1
@@ -1,2 +0,2 @@ | ||
| function t(t,e,r){const o=(t*r.k-t)/2,n=(e*r.k-e)/2,i=t/2-(o+r.x)/r.k,a=e/2-(n+r.y)/r.k;return Rt(i,a)}function e(t,e,r,o){const n=new Error(e);return n.name="GeographyError",n.type=t,n.timestamp=(new Date).toISOString(),r&&(n.geography=r),o&&(n.cause=o,o.stack&&(n.stack=o.stack),n.details={originalMessage:o.message,originalName:o.name}),n}function r(t,r=!1){if("string"!=typeof t)throw e("VALIDATION_ERROR","Expected string, got "+typeof t);if(t.length>Mt.maxStringLength)throw e("VALIDATION_ERROR",`String too long: ${t.length} characters (max: ${Mt.maxStringLength})`);let o=t;return r||(o=o.replace(/<[^>]*>/g,"").replace(/&[^;]+;/g,"").replace(/javascript:/gi,"").replace(/data:/gi,"").replace(/vbscript:/gi,"")),o=o.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,""),o}function o(t,r=-1/0,o=1/0){if("number"!=typeof t)throw e("VALIDATION_ERROR","Expected number, got "+typeof t);if(!Number.isFinite(t))throw e("VALIDATION_ERROR","Number must be finite");if(t<r||t>o)throw e("VALIDATION_ERROR",`Number ${t} is outside allowed range [${r}, ${o}]`);return t}function n(t,r){if(!Array.isArray(t))throw e("VALIDATION_ERROR","Expected array, got "+typeof t);if(t.length>Mt.maxArrayLength)throw e("VALIDATION_ERROR",`Array too long: ${t.length} items (max: ${Mt.maxArrayLength})`);return r?t.map((t,o)=>{try{return r(t,o)}catch(t){throw e("VALIDATION_ERROR",`Invalid array item at index ${o}: ${t instanceof Error?t.message:"Unknown error"}`)}}):t}function i(t,o=0){if("object"!=typeof t||null===t||Array.isArray(t))throw e("VALIDATION_ERROR","Expected object, got "+typeof t);if(o>Mt.maxObjectDepth)throw e("VALIDATION_ERROR",`Object nesting too deep: ${o} levels (max: ${Mt.maxObjectDepth})`);const n=t,a=Object.create(null);for(const[t,e]of Object.entries(n)){const n=r(t);xt.has(n)||("object"!=typeof e||null===e||Array.isArray(e)?a[n]=e:a[n]=i(e,o+1))}return a}function a(t){const r=i(t),a={};if(Object.hasOwn(r,"center")&&void 0!==r.center&&(a.center=function(t){if(!Array.isArray(t)||2!==t.length)throw e("VALIDATION_ERROR","Coordinates must be an array of exactly 2 numbers");const[r,n]=t;return[o(r,-180,180),o(n,-90,90)]}(r.center)),Object.hasOwn(r,"rotate")&&void 0!==r.rotate&&Array.isArray(r.rotate)){const t=n(r.rotate,t=>o(t,-360,360));3===t.length&&void 0!==t[0]&&void 0!==t[1]&&void 0!==t[2]&&(a.rotate=[t[0],t[1],t[2]])}if(Object.hasOwn(r,"scale")&&void 0!==r.scale&&(a.scale=o(r.scale,.1,1e4)),Object.hasOwn(r,"parallels")&&void 0!==r.parallels&&Array.isArray(r.parallels)){const t=n(r.parallels,t=>o(t,-90,90));2===t.length&&void 0!==t[0]&&void 0!==t[1]&&(a.parallels=Ot(t[0],t[1]))}return a}function s(){return"undefined"!=typeof process&&"production"===process.env.NODE_ENV}function c(t){return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function l(t){if(!t||"localhost"===t)return!1;const e=c(t),r=[/^10\./,/^172\.(1[6-9]|2[0-9]|3[01])\./,/^192\.168\./,/^127\./,/^169\.254\./,/^0\./,/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./,/^192\.0\.0\./,/^192\.0\.2\./,/^198\.51\.100\./,/^203\.0\.113\./,/^198\.1[89]\./,/^233\.252\.0\./];for(const t of r)if(t.test(e))return!0;const o=[/^::1$/i,/^fe[89ab][0-9a-f]:/i,/^f[cd][0-9a-f]{2}:/i,/^::$/i,/^ff[0-9a-f]{2}:/i,/^100::/i,/^2001:db8:/i,/^2001:(?:0{1,4}:|:)/i];for(const t of o)if(t.test(e))return!0;const n=e.match(/^::ffff:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/i);if(n?.[1])return l(n[1]);const i=e.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(i?.[1]&&i[2]){const t=parseInt(i[1],16),e=parseInt(i[2],16);return l(`${t>>8&255}.${255&t}.${e>>8&255}.${255&e}`)}return!1}function u(){return"undefined"!=typeof process&&"node"===process.release?.name&&"undefined"==typeof window}async function f(t){if(!u())return[];const r=c(t);if(!r)return[];const o=await async function(){if("undefined"!=typeof process){const t="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns/promises"):null;if(t?.lookup)return t}try{const t="node:dns/promises",e=await import(t);return e.lookup?e:null}catch{return null}}();if(!o?.lookup)throw e("SECURITY_ERROR",`Unable to resolve hostname ${r} for security validation`,r);try{return(await o.lookup(r,{all:!0,verbatim:!0})).map(t=>t.address)}catch(t){throw e("SECURITY_ERROR",`Unable to resolve hostname ${r} for security validation`,r,t instanceof Error?t:void 0)}}function p(t,r=Dt){const o=function(t){if("string"!=typeof t)throw e("VALIDATION_ERROR","Expected string, got "+typeof t);const r=t.trim();if(!r)throw e("VALIDATION_ERROR","URL must be a non-empty string");if(r.length>Mt.maxStringLength)throw e("VALIDATION_ERROR",`String too long: ${r.length} characters (max: ${Mt.maxStringLength})`);if(/[\x00-\x1F\x7F]/.test(r))throw e("VALIDATION_ERROR","URL contains invalid control characters");try{const t=new URL(r);if(["javascript:","data:","vbscript:","file:"].some(e=>t.protocol.toLowerCase().startsWith(e)))throw e("SECURITY_ERROR",`Dangerous protocol detected: ${t.protocol}`);if(t.hostname.includes("..")||t.hostname.includes("%"))throw e("SECURITY_ERROR",`Invalid hostname: ${t.hostname}`);return t.toString()}catch(t){if(t instanceof TypeError)throw e("VALIDATION_ERROR",`Invalid URL format: ${r}`);throw t}}(t);try{const n=new URL(o);if(r.STRICT_HTTPS_ONLY){if("https:"!==n.protocol)throw e("SECURITY_ERROR",`Strict HTTPS-only mode: ${n.protocol} is not allowed. Only HTTPS is permitted.`,t)}else{if(!r.ALLOWED_PROTOCOLS.includes(n.protocol)){const o=r.ALLOWED_PROTOCOLS.join(", ");throw e("SECURITY_ERROR",`Unsupported protocol: ${n.protocol}. Only ${o} are allowed.`,t)}if("http:"===n.protocol){if(!r.ALLOW_HTTP_LOCALHOST)throw e("SECURITY_ERROR","HTTP protocol is disabled for security. Use HTTPS or enable development mode explicitly.",t);const o=c(n.hostname);if("localhost"!==o&&"127.0.0.1"!==o&&"::1"!==o)throw e("SECURITY_ERROR","HTTP protocol is only allowed for localhost. Use HTTPS for remote URLs.",t);if(s())throw e("SECURITY_ERROR","HTTP localhost access is not allowed in production",t);void 0}}const i=c(n.hostname);if(("localhost"===i||"127.0.0.1"===i||"::1"===i)&&s())throw e("SECURITY_ERROR","Localhost access is not allowed in production",t);if(l(n.hostname))throw e("SECURITY_ERROR",`Access to private IP address ${n.hostname} is not allowed`,t)}catch(r){if(r instanceof TypeError)throw e("VALIDATION_ERROR",`Invalid URL format: ${t}`,t,r);throw r}}async function h(t,r=Dt,o=f){if(p(t,r),o===f&&!u())return;const{hostname:n}=new URL(t),i=c(n);if(i&&"localhost"!==i&&!l(n)&&(await o(i)).some(t=>l(t)))throw e("SECURITY_ERROR",`Hostname ${i} resolves to a private IP address, which is not allowed`,t)}function d(t){return t&&"object"==typeof t&&!Array.isArray(t)&&"type"in t&&"Topology"===t.type?function(t){const e=Object.keys(t.objects);if(0===e.length)return null;const r=e[0];if(!r)return null;const o=t.objects[r];if(!o)return null;try{return{outline:ht(t,o,(t,e)=>t===e),borders:ht(t,o,(t,e)=>t!==e)}}catch{return null}}(t):null}function m(t,e,r,o){const n=new Error(e);return n.type=t,o&&(n.details=o),n}function g(){if("production"!==process.env.NODE_ENV&&"object"==typeof Z&&null!==Z&&"captureOwnerStack"in Z&&"function"==typeof Z.captureOwnerStack)try{return Z.captureOwnerStack()}catch{return null}return null}function y({width:t=800,height:e=600,projection:r="geoEqualEarth",projectionConfig:o=Zt,className:n="",debug:i=!1,children:a,ref:s,...c}){const{logRender:l}=function(t,e){const r=Ft.getInstance();return q(()=>{void 0!==e&&r.setDebugMode(e)},[e,r]),{logRender:X((e,o)=>r.logRender(t,e,o),[t,r]),logError:X((e,o)=>r.logError(t,e,o),[t,r]),trackPerformance:X(e=>r.trackPerformance(t,e),[t,r])}}("ComposableMap",i);return q(()=>{l({width:t,height:e,projection:r,projectionConfig:o,className:n})},[l,t,e,r,o,n]),F(Vt,{width:t,height:e,projection:r,projectionConfig:o,children:F("svg",{ref:s,viewBox:`0 0 ${t} ${e}`,className:`rsm-svg ${n}`,...c,children:a})})}function w({title:t,description:e,keywords:r=[],author:o,viewport:n="width=device-width, initial-scale=1",canonicalUrl:i,ogTitle:a,ogDescription:s,ogImage:c,ogUrl:l,twitterCard:u="summary_large_image",twitterTitle:f,twitterDescription:p,twitterImage:h,jsonLd:d,children:m}){return Y(z,{children:[t&&F("title",{children:t}),e&&F("meta",{name:"description",content:e}),r.length>0&&F("meta",{name:"keywords",content:r.join(", ")}),o&&F("meta",{name:"author",content:o}),F("meta",{name:"viewport",content:n}),i&&F("link",{rel:"canonical",href:i}),a&&F("meta",{property:"og:title",content:a}),s&&F("meta",{property:"og:description",content:s}),c&&F("meta",{property:"og:image",content:c}),l&&F("meta",{property:"og:url",content:l}),F("meta",{property:"og:type",content:"website"}),F("meta",{name:"twitter:card",content:u}),f&&F("meta",{name:"twitter:title",content:f}),p&&F("meta",{name:"twitter:description",content:p}),h&&F("meta",{name:"twitter:image",content:h}),d&&F("script",{type:"application/ld+json",dangerouslySetInnerHTML:{t:(g=d,JSON.stringify(g).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"))}}),F("meta",{name:"geo.region",content:"world"}),F("meta",{name:"geo.placename",content:"World Map"}),F("meta",{name:"ICBM",content:"0, 0"}),F("link",{rel:"preload",href:"/fonts/map-font.woff2",as:"font",type:"font/woff2",crossOrigin:"anonymous"}),m]});var g}function R({metadata:t,enableSEO:e=!0,enableOpenGraph:r=!0,enableTwitterCards:o=!0,enableJsonLd:n=!0,preset:i="worldMap",children:a,...s}){const c=B(()=>{const e=Ht[i],a="function"==typeof e?e("Default"):e;return{title:t.title||a.title,description:t.description||a.description,keywords:t.keywords||a.keywords,author:t.author||a.author||"",canonicalUrl:t.canonicalUrl||"",ogTitle:r?t.title||a.ogTitle:void 0,ogDescription:r?t.description||a.ogDescription:void 0,twitterTitle:o?t.title||a.twitterTitle:void 0,twitterDescription:o?t.description||a.twitterDescription:void 0,jsonLd:n?a.jsonLd:void 0}},[t,i,r,o,n]),l=B(()=>e?F(w,{title:c.title,description:c.description,keywords:c.keywords,...c.author&&{author:c.author},...c.canonicalUrl&&{canonicalUrl:c.canonicalUrl},...c.ogTitle&&{ogTitle:c.ogTitle},...c.ogDescription&&{ogDescription:c.ogDescription},...c.twitterTitle&&{twitterTitle:c.twitterTitle},...c.twitterDescription&&{twitterDescription:c.twitterDescription},...c.jsonLd&&{jsonLd:c.jsonLd}}):null,[c,e]),{ref:u,...f}=s;return Y(z,{children:[l,F(Wt,{...f,children:a})]})}function E(t){if(("object"==typeof t||"function"==typeof t)&&null!==t){const e=Qt.get(t);if(e)return e;te+=1;const r=`obj:${te}`;return Qt.set(t,r),r}return String(t)}function b(t){let e=2166136261;for(let r=0;r<t.length;r+=1)e^=t.charCodeAt(r),e=Math.imul(e,16777619);return`str:${t.length}:${(e>>>0).toString(16)}`}function O(t,e){let r;return r="string"==typeof t?b(t):"object"!=typeof t&&"function"!=typeof t||null===t?b(String(t)):E(t),e?`${r}:${e}`:r}function v({geography:t,parseGeographies:e}){const{path:r}=Gt(),[o,n]=Q(null),[i,a]=Q(!1),[s,c]=Q(null),[l,u]=Q(0),f=X(()=>{u(t=>t+1)},[]);q(()=>{let e=!1;return"string"==typeof t?(a(!0),c(null),Yt(t,"start"),function(t,e=!1){if("string"==typeof t&&t&&!ee.has(t))try{p(t);const r=new URL(t);lt(r.origin),ut(r.origin),ee.add(t),(e||"undefined"!=typeof process&&"production"===process.env.NODE_ENV)&&ft(t,{as:"fetch",crossOrigin:"anonymous"})}catch(t){"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(t instanceof Error?t.message:String(t))}}(t),Nt(t).then(r=>{e||(Yt(t,"success",r),n(r),a(!1))}).catch(r=>{e||(Yt(t,"error",r),c(r instanceof Error?r:new Error(String(r))),a(!1))})):(n(t),a(!1),c(null)),()=>{e=!0}},[t,l]);const h=B(()=>{if(i||!o)return[];if(o&&"object"==typeof o&&!Array.isArray(o)){const t=function(t){const e=Xt.geographyDataCache.get(t);return e&&Date.now()-e.timestamp<Kt?{features:e.features,mesh:e.mesh}:null}(o);if(t)return t.features}const t=function(t,e){return O(t,`features:${e?E(e):"default"}`)}(o,e),r=(n=t,qt.features.get(n));var n;if(r)return r;const a=function(t,e){return Array.isArray(t)?e?e(t):t:"Topology"===t.type?function(t,e){const r=Object.keys(t.objects);if(0===r.length)return[];const o=r[0];if(!o)return[];const n=t.objects[o];if(!n)return[];const i=pt(t,n),a="features"in i&&i.features||[];return e?e(a):a}(t,e):"FeatureCollection"===t.type?function(t,e){const r=t.features||[];return e?e(r):r}(t,e):[]}(o,e);if(!function(t,e){qt.features.set(t,e)}(t,a),o&&"object"==typeof o&&!Array.isArray(o)){const t=d(o);!function(t,e,r){Xt.geographyDataCache.set(t,{features:e,mesh:r,timestamp:Date.now()})}(o,a,t)}return a},[o,i,e]),m=B(()=>i||!o?null:d(o),[o,i]),g=B(()=>{if(0===h.length)return[];const t=E(r);if(o&&"object"==typeof o&&!Array.isArray(o)){const e=function(t,e){const r=Xt.preparedFeaturesCache.get(t);return r&&r.pathFunction===e&&Date.now()-r.timestamp<Kt?r.prepared:null}(o,t);if(e)return e}const e=(i=r,`prepared:${E(h)}:${E(i)}`),n=(a=e,qt.preparedFeatures.get(a));var i,a;if(n)return n;const s=function(t,e){return t&&0!==t.length?t.map(t=>{const r=e(t);return r?{...t,svgPath:r}:null}).filter(t=>null!==t):[]}(h,r);return!function(t,e){qt.preparedFeatures.set(t,e)}(e,s),o&&"object"==typeof o&&!Array.isArray(o)&&function(t,e,r){Xt.preparedFeaturesCache.set(t,{prepared:e,pathFunction:r,timestamp:Date.now()})}(o,s,t),s},[h,r,o]),y=B(()=>{if(!m)return{outline:"",borders:""};const t=O(o,`mesh:${E(r)}`),e=(n=t,qt.meshData.get(n));var n;if(e)return e;const i=function(t,e,r){const o={};if(t){const e=r(t);e&&(o.outline=e)}if(e){const t=r(e);t&&(o.borders=t)}return o}(m.outline||null,m.borders||null,r),a={outline:i.outline||"",borders:i.borders||""};return!function(t,e){qt.meshData.set(t,e)}(t,a),a},[m,r,o]);return B(()=>({geographies:g,outline:y.outline,borders:y.borders,isLoading:i,error:s,refetch:f}),[g,y,i,s,f])}function A(t,e){return Y("g",{className:"rsm-error-boundary",role:"alert",children:[F("text",{className:"rsm-error-text",x:"50%",y:"42%",textAnchor:"middle",dominantBaseline:"middle",fill:"currentColor",children:"Failed to load geography data."}),F("text",{className:"rsm-error-retry",x:"50%",y:"58%",textAnchor:"middle",dominantBaseline:"middle",fill:"currentColor",role:"button",tabIndex:0,style:{cursor:"pointer"},onClick:e,onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),e())},children:"Retry"})]})}function T({children:t,fallback:e=A,onError:r}){const[o,n]=Q(0),i=X(t=>{r&&r(t),"production"!==process.env.NODE_ENV},[r]),a=X(()=>{n(t=>t+1)},[]),s=X(t=>e(t,a),[e,a]);return F(re,{fallback:s,onError:i,children:t},o)}function I({geography:t,children:e,parseGeographies:r,className:o="",errorBoundary:n=!1,onGeographyError:i,fallback:a,ref:s,...c}){const{path:l,projection:u}=Gt(),f=v({geography:t,...r&&{parseGeographies:r}}),{geographies:p,outline:h,borders:d,isLoading:m,error:g,refetch:y}=f;q(()=>{g&&i&&i(g)},[g,i]);const w=X(()=>p&&0!==p.length?e({geographies:p,outline:h,borders:d,path:l,projection:u}):null,[p,h,d,e,l,u]);if(m)return F("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:oe});if(g)return F("g",a&&"function"==typeof a?{ref:s,className:`rsm-geographies ${o}`,...c,children:a(g,y??(()=>{}))}:{ref:s,className:`rsm-geographies ${o}`,...c,children:F("text",{className:"rsm-error-text",x:"50%",y:"50%",textAnchor:"middle",fill:"currentColor",children:"Failed to load geography data"})});const R=w();if(n){const t={};return i&&(t.onError=i),a&&(t.fallback=a),F("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:F(T,{...t,children:R})})}return F("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:R})}function $(t){if(!t?.geometry)return null;const e=st(t);return!e||!isFinite(e[0])||!isFinite(e[1])||Math.abs(e[0])>180||Math.abs(e[1])>90?null:Rt(e[0],e[1])}function M(t){if(!t?.geometry)return null;const e=at(t);if(!(e&&Array.isArray(e)&&2===e.length&&Array.isArray(e[0])&&Array.isArray(e[1])&&2===e[0].length&&2===e[1].length))return null;const[r,o]=e;return!isFinite(r[0])||!isFinite(r[1])||!isFinite(o[0])||!isFinite(o[1])||Math.abs(r[0])>180||Math.abs(r[1])>90||Math.abs(o[0])>180||Math.abs(o[1])>90?null:[Rt(r[0],r[1]),Rt(o[0],o[1])]}function x(t,e){if(e>10)return null;if(!t?.geometry)return null;const{geometry:r}=t;switch(r.type){case"Point":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>=2&&"number"==typeof r.coordinates[0]&&"number"==typeof r.coordinates[1]){const[t,e]=r.coordinates;return Rt(t,e)}break;case"LineString":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>=2&&"number"==typeof r.coordinates[0][0]&&"number"==typeof r.coordinates[0][1]){const[t,e]=r.coordinates[0];return Rt(t,e)}break;case"Polygon":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>0&&Array.isArray(r.coordinates[0][0])&&r.coordinates[0][0].length>=2&&"number"==typeof r.coordinates[0][0][0]&&"number"==typeof r.coordinates[0][0][1]){const[t,e]=r.coordinates[0][0];return Rt(t,e)}break;case"MultiPoint":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>=2&&"number"==typeof r.coordinates[0][0]&&"number"==typeof r.coordinates[0][1]){const[t,e]=r.coordinates[0];return Rt(t,e)}break;case"MultiLineString":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>0&&Array.isArray(r.coordinates[0][0])&&r.coordinates[0][0].length>=2&&"number"==typeof r.coordinates[0][0][0]&&"number"==typeof r.coordinates[0][0][1]){const[t,e]=r.coordinates[0][0];return Rt(t,e)}break;case"MultiPolygon":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>0&&Array.isArray(r.coordinates[0][0])&&r.coordinates[0][0].length>0&&Array.isArray(r.coordinates[0][0][0])&&r.coordinates[0][0][0].length>=2&&"number"==typeof r.coordinates[0][0][0][0]&&"number"==typeof r.coordinates[0][0][0][1]){const[t,e]=r.coordinates[0][0][0];return Rt(t,e)}break;case"GeometryCollection":if(r.geometries&&Array.isArray(r.geometries)&&r.geometries.length>0&&r.geometries[0])return x({geometry:r.geometries[0]},e+1);break;default:return null}return null}function j(t){return x(t,0)}function D(t){return $(t)||j(t)}function S(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]&&isFinite(t[0])&&isFinite(t[1])&&Math.abs(t[0])<=180&&Math.abs(t[1])<=90}function L({geography:t,onClick:e,onMouseEnter:r,onMouseLeave:o,onMouseDown:n,onMouseUp:i,onFocus:a,onBlur:s,style:c={},className:l="",ref:u,...f}){const[p,h]=Q(!1),[d,m]=Q(!1),[g,y]=Q(!1),w=B(()=>({geography:t,centroid:$(t),bounds:M(t),coordinates:D(t)}),[t]),R=X(t=>{e&&e(t,w)},[e,w]),E=X(t=>{m(!0),r&&r(t,w)},[r,w]),b=X(t=>{m(!1),p&&h(!1),o&&o(t,w)},[o,w,p]),O=X(t=>{y(!0),a&&a(t,w)},[a,w]),v=X(t=>{y(!1),p&&h(!1),s&&s(t,w)},[s,w,p]),A=X(t=>{h(!0),n&&n(t,w)},[n,w]),T=X(t=>{h(!1),i&&i(t,w)},[i,w]),I=B(()=>p?"pressed":g?"focused":d?"hover":"default",[p,g,d]),x=B(()=>t.svgPath,[t]),j=B(()=>c[I],[c,I]);return F("path",{ref:u,tabIndex:0,className:`rsm-geography ${l}`,d:x,onClick:R,onMouseEnter:E,onMouseLeave:b,onFocus:O,onBlur:v,onMouseDown:A,onMouseUp:T,style:j,...f})}function C({fill:t="transparent",stroke:e="currentcolor",step:r=vt(10,10),className:o="",ref:n,...i}){const{path:a}=Gt(),s=ct().step(r)();return F("path",{ref:n,d:a(s)||"",fill:t,stroke:e,className:`rsm-graticule ${o}`,...i})}function N({mapRef:e,width:r,height:o,projection:n,scaleExtent:i,translateExtent:a,filterZoomEvent:s,onZoom:c,onZoomStart:l,onZoomEnd:u,onMove:f,bypassEvents:p}){const h=et(void 0),[d,m]=i,[g,y]=a,[w,R]=g,[E,b]=y,O=X(e=>{if(p.current)return;const{transform:i,sourceEvent:a}=e;if(c&&c({x:i.x,y:i.y,k:i.k},a),!f)return;const s=t(r,o,i),l=n.invert?.(s);l&&f({coordinates:he(l[0],l[1]),zoom:i.k},e.sourceEvent||e)},[c,f,r,o,n,p]);return q(()=>{if(!e.current)return;const i=gt(e.current),a=dt().filter(function(t){return s&&t?s(t.sourceEvent||t):!!t&&!t.sourceEvent?.ctrlKey&&!t.sourceEvent?.button}).scaleExtent([d,m]).translateExtent([[w,R],[E,b]]).on("start",function(e){if(!l||p.current)return;const i=t(r,o,e.transform),a=n.invert?.(i);a&&l({coordinates:he(a[0],a[1]),zoom:e.transform.k},e.sourceEvent||e)}).on("zoom",O).on("end",function(e){if(p.current)return p.current=!1,void 0;const i=t(r,o,e.transform),a=n.invert?.(i);if(a){const[t,r]=a;if(!u)return;u({coordinates:he(t,r),zoom:e.transform.k},e.sourceEvent||e)}});h.current=a,i.call(a)},[r,o,w,R,E,b,d,m,n,l,f,u,s,O,e,p]),{zoomRef:h,handleZoom:O}}function k({center:t,filterZoomEvent:e,onMoveStart:r,onMoveEnd:o,onMove:n,translateExtent:i=bt(Rt(-1/0,-1/0),Rt(1/0,1/0)),scaleExtent:a=Et(1,8),zoom:s=1}){const{width:c,height:l,projection:u}=Gt(),f=ot(t,Rt(0,0)),p=ot(s,1),h=et(null),d=et(!1),{smoothPosition:m,setPosition:g,setOptimisticPosition:y,isPending:w,startTransition:R,transformString:E}=function({initialPosition:t={x:0,y:0,k:1},transitionPriority:e="normal",deferredUpdateThreshold:r=16}={}){const[o,n]=rt(),[i,a]=Q(0),[s,c]=Q(0),[l,u]=Q(t),[f,p]=Q(t),h=ot(f,t),d=h!==f,m=B(()=>{const t=f.dragging?f:h;return`translate(${t.x} ${t.y}) scale(${t.k})`},[h,f]),g=X(t=>{const e=performance.now(),o=e-s;a(t=>t+1),c(e),p(t),o<r?n(()=>{u(t)}):u(t)},[s,r,n]);return{position:l,smoothPosition:h,optimisticPosition:f,setPosition:g,setOptimisticPosition:p,isPending:o,startTransition:n,transformString:m,isDeferred:d,updateCount:i}}(),b={mapRef:h,width:c,height:l,projection:u,scaleExtent:a,translateExtent:i,onZoomStart:r,onZoomEnd:o,onMove:n,bypassEvents:d,onZoom:(t,e)=>{const r={x:t.x,y:t.y,k:t.k,dragging:e};y(r),R(()=>{g(r)})},...e&&{filterZoomEvent:e}},{zoomRef:O}=N(b);return!function({mapRef:t,zoomRef:e,width:r,height:o,projection:n,center:i,zoom:a,bypassEvents:s,onPositionChange:c,startTransition:l}){const u=et({x:0,y:0,k:1}),f=X((i,a)=>{const[f,p]=i,h=n([f,p]);if(!h||!t.current||!e.current)return;const d=h[0]*a,m=h[1]*a,g=gt(t.current);s.current=!0,l(()=>{e.current&&g.call(e.current.transform,mt.translate(r/2-d,o/2-m).scale(a)),c&&c({x:r/2-d,y:o/2-m,k:a})}),u.current={x:f,y:p,k:a}},[n,t,e,s,l,r,o,c]);return q(()=>{const[t,e]=i;t===u.current.x&&e===u.current.y&&a===u.current.k||f(i,a)},[i,a,r,o,n,l,f]),{lastPosition:u,programmaticMove:f}}({mapRef:h,zoomRef:O,width:c,height:l,projection:u,center:f,zoom:p,bypassEvents:d,onPositionChange:t=>{g(t)},startTransition:R}),{mapRef:h,position:m,transformString:E,isPending:w}}function _(t){const{center:e=Rt(0,0),zoom:r=1,filterZoomEvent:o,onMoveStart:n,onMove:i,onMoveEnd:a,className:s="",children:c,ref:l,minZoom:u,maxZoom:f,enableZoom:p,enablePan:h,scaleExtent:d,translateExtent:m,...g}=t,{width:y,height:w}=Gt();let R,E=1,b=8;if(function(t){return"enableZoom"in t||"enablePan"in t||"minZoom"in t&&"maxZoom"in t&&!("scaleExtent"in t)}(t))E=t.minZoom??1,b=t.maxZoom??8,R=t.translateExtent??(!1!==t.enablePan?bt(Rt(-1/0,-1/0),Rt(1/0,1/0)):void 0);else{const e=t;E=e.minZoom??1,b=e.maxZoom??8,R=e.translateExtent}const O=d??Et(E,b),{mapRef:v,transformString:A,position:T}=k({center:e,...o&&{filterZoomEvent:o},...n&&{onMoveStart:n},...i&&{onMove:i},...a&&{onMoveEnd:a},scaleExtent:O,...R&&{translateExtent:R},zoom:r});return F(fe,{value:{x:T.x,y:T.y,k:T.k,transformString:A},children:Y("g",{ref:v,children:[F("rect",{width:y,height:w,fill:"transparent"}),F("g",{ref:l,transform:A,className:`rsm-zoomable-group ${s}`,...g,children:c})]})})}function P({id:t="rsm-sphere",fill:e="transparent",stroke:r="currentcolor",strokeWidth:o=.5,className:n="",ref:i,...a}){const{path:s}=Gt(),c=B(()=>s({type:"Sphere"}),[s]);return Y(nt,{children:[F("defs",{children:F("clipPath",{id:t,children:F("path",{d:c||""})})}),F("path",{ref:i,d:c||"",fill:e,stroke:r,strokeWidth:o,style:{pointerEvents:"none"},className:`rsm-sphere ${n}`,...a})]})}function U({coordinates:t,children:e,onMouseEnter:r,onMouseLeave:o,onMouseDown:n,onMouseUp:i,onFocus:a,onBlur:s,style:c={},className:l="",ref:u,...f}){const{projection:p}=Gt(),[h,d]=Q(!1),[m,g]=Q(!1),[y,w]=Q(!1),R=X(t=>{g(!0),r&&r(t)},[r]),E=X(t=>{g(!1),h&&d(!1),o&&o(t)},[o,h]),b=X(t=>{w(!0),a&&a(t)},[a]),O=X(t=>{w(!1),h&&d(!1),s&&s(t)},[s,h]),v=X(t=>{d(!0),n&&n(t)},[n]),A=X(t=>{d(!1),i&&i(t)},[i]),T=B(()=>p(t),[p,t]),I=B(()=>h?"pressed":y?"focused":m?"hover":"default",[h,y,m]),$=B(()=>c?.[I],[c,I]),M=B(()=>{if(!T)return"";const[t,e]=T;return`translate(${t}, ${e})`},[T]);return T?F("g",{ref:u,transform:M,className:`rsm-marker ${l}`,onMouseEnter:R,onMouseLeave:E,onFocus:b,onBlur:O,onMouseDown:v,onMouseUp:A,style:$,...f,children:e}):null}function V({from:t=[0,0],to:e=[0,0],coordinates:r,stroke:o="currentcolor",strokeWidth:n=3,fill:i="transparent",className:a="",ref:s,...c}){const{path:l}=Gt();return F("path",{ref:s,d:l({type:"LineString",coordinates:r||[t,e]})||"",className:`rsm-line ${a}`,stroke:o,strokeWidth:n,fill:i,...c})}function G({subject:t,children:e,connectorProps:r,dx:o=30,dy:n=30,curve:i=0,className:a="",ref:s,...c}){const{projection:l}=Gt(),u=l(t);if(!u)return null;const[f,p]=u,h=function(t,e,r){if("function"!=typeof r)return"";try{return r().x(t=>t[0]).y(t=>t[1])([t,e])||""}catch{return""}}([f,p],[f+o,p+n],i);return Y("g",{ref:s,transform:`translate(${f+o}, ${p+n})`,className:`rsm-annotation ${a}`,...c,children:[F("path",{d:h,fill:"transparent",stroke:"#000",...r}),e]})}import{jsx as F,jsxs as Y,Fragment as z}from"react/jsx-runtime";import Z,{cache as W,createContext as H,useMemo as B,useContext as J,useEffect as q,useCallback as X,memo as K,useState as Q,Component as tt,useRef as et,useTransition as rt,useDeferredValue as ot,Fragment as nt}from"react";import*as it from"d3-geo";import{geoBounds as at,geoCentroid as st,geoGraticule as ct}from"d3-geo";import{prefetchDNS as lt,preconnect as ut,preload as ft}from"react-dom";import{feature as pt,mesh as ht}from"topojson-client";import{zoom as dt,zoomIdentity as mt}from"d3-zoom";import{select as gt}from"d3-selection";const yt=t=>t,wt=t=>t,Rt=(t,e)=>[t,e],Et=(t,e)=>[t,e],bt=(t,e)=>[t,e],Ot=(t,e)=>[t,e],vt=(t,e)=>[t,e],At=(t,e)=>({minZoom:t,maxZoom:e,scaleExtent:Et(t,e),enableZoom:!0}),Tt=t=>({translateExtent:bt(t[0],t[1]),enablePan:!0}),It=(t,e,r)=>({...At(t,e),...Tt(r)}),$t={strictMode:!0,allowUnsafeContent:!1,maxStringLength:1e4,maxArrayLength:1e3,maxObjectDepth:10};let Mt=function(){const t={...$t};return"undefined"!=typeof process&&"production"===process?.env?.NODE_ENV&&t.allowUnsafeContent&&(t.allowUnsafeContent=!1),Object.freeze(t)}();const xt=new Set(["__proto__","constructor","prototype"]),jt={TIMEOUT_MS:1e4,MAX_RESPONSE_SIZE:52428800,ALLOWED_CONTENT_TYPES:["application/json","application/geo+json"],ALLOWED_PROTOCOLS:["https:"],ALLOW_HTTP_LOCALHOST:!1,STRICT_HTTPS_ONLY:!0};let Dt=Object.freeze({...jt,ALLOWED_CONTENT_TYPES:Object.freeze([...jt.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...jt.ALLOWED_PROTOCOLS])});const St={"https://unpkg.com/world-atlas@2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0}},Lt={enforceForKnownSources:!0,enforceForAllSources:!1,allowUnknownSources:!0,customSRIMap:{}};let Ct=Object.freeze({...Lt,customSRIMap:Object.freeze({...Lt.customSRIMap})});const Nt=W(async t=>{const r=Dt,o=Ct;p(t,r),await h(t,r);const n=function(t,r=Ct){const o=function(t){try{const e=new URL(t);return e.hash="",("https:"===e.protocol&&"443"===e.port||"http:"===e.protocol&&"80"===e.port)&&(e.port=""),e.pathname=e.pathname.replace(/\/+$/,"")||"/",e.href}catch{return t}}(t);if(r.customSRIMap[o])return r.customSRIMap[o];if(r.customSRIMap[t])return r.customSRIMap[t];if(St[o]&&r.enforceForKnownSources)return St[o];if(St[t]&&r.enforceForKnownSources)return St[t];if(r.enforceForAllSources&&!r.allowUnknownSources)throw e("SECURITY_ERROR",`SRI enforcement is enabled but no integrity hash is available for ${t}`,t);return null}(t,o),{controller:i,cleanup:a}=function(t){const e=new AbortController,r=setTimeout(()=>{e.abort()},t);return{controller:e,cleanup:()=>clearTimeout(r)}}(r.TIMEOUT_MS);try{const o=await async function(t,r,o){let n=t;for(let t=0;t<5;t++){const t=await fetch(n,r);if(t.status<300||t.status>=400)return t;try{await t.arrayBuffer()}catch{}const i=t.headers.get("location");if(!i)throw e("SECURITY_ERROR",`Redirect response (HTTP ${t.status}) missing Location header`,n);const a=new URL(i,n).href;p(a,o),await h(a,o),n=a}throw e("SECURITY_ERROR","Too many redirects (exceeded 5 hops)",t)}(t,(s=i.signal,c=r,{signal:s,headers:{Accept:c.ALLOWED_CONTENT_TYPES.join(", "),"Cache-Control":"public, max-age=3600"},mode:"cors",credentials:"omit",redirect:"manual"}),r);if(a(),!o.ok)throw e("GEOGRAPHY_LOAD_ERROR",`HTTP ${o.status}: ${o.statusText}`,t);!function(t,r=Dt){const o=t.headers.get("content-type");if(!o)throw e("VALIDATION_ERROR","Missing Content-Type header");const n=o.split(";",1)[0]?.trim().toLowerCase()??"";if(!r.ALLOWED_CONTENT_TYPES.includes(n))throw e("VALIDATION_ERROR",`Invalid content type: ${o}. Expected one of: ${r.ALLOWED_CONTENT_TYPES.join(", ")}`)}(o,r),await async function(t,r=Dt){const o=t.headers.get("content-length");if(o){const t=parseInt(o,10);if(t>r.MAX_RESPONSE_SIZE)throw e("VALIDATION_ERROR",`Response too large: ${t} bytes. Maximum allowed: ${r.MAX_RESPONSE_SIZE} bytes`)}}(o,r);const l=await async function(t,r=Dt.MAX_RESPONSE_SIZE){const o=t.body?.getReader();if(!o){const o=await t.arrayBuffer();if(o.byteLength>r)throw e("VALIDATION_ERROR",`Response too large: ${o.byteLength} bytes exceeds limit of ${r} bytes`);return o}const n=[];let i=0;for(;;){const{done:t,value:a}=await o.read();if(t)break;if(i+=a.byteLength,i>r)throw o.cancel().catch(()=>{}),e("VALIDATION_ERROR",`Response too large: exceeded limit of ${r} bytes`);n.push(a)}const a=new Uint8Array(i);let s=0;for(const t of n)a.set(t,s),s+=t.byteLength;return a.buffer}(o,r.MAX_RESPONSE_SIZE);return n&&await async function(t,r,o){const n=await async function(t,e){const r=await globalThis.crypto.subtle.digest(e,t),o=new Uint8Array(r);let n;if(void 0!==globalThis.btoa)n=globalThis.btoa(String.fromCharCode(...o));else{const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let e="",r=0;for(;r<o.length;){const n=(o[r++]||0)<<16|(r<o.length&&o[r++]||0)<<8|(r<o.length&&o[r++]||0);e+=t.charAt(n>>18&63),e+=t.charAt(n>>12&63),e+=r-2<o.length?t.charAt(n>>6&63):"=",e+=r-1<o.length?t.charAt(63&n):"="}n=e}return n}(t,{sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"}[o.algorithm]),i=o.hash.replace(`${o.algorithm}-`,"");if(n!==i){const t=new Error(`Subresource Integrity check failed for ${r}. Expected ${o.algorithm}-${i}, got ${o.algorithm}-${n}`);throw t.expectedHash=o.hash,t.calculatedHash=`${o.algorithm}-${n}`,t.algorithm=o.algorithm,e("SECURITY_ERROR",t.message,r,t)}}(l,t,n),await async function(t,r){try{const r=(new TextDecoder).decode(t),o=JSON.parse(r);return!function(t){if(!t||"object"!=typeof t)throw e("VALIDATION_ERROR","Invalid geography data: not a valid object");const r=t;if(!r.type||"Topology"!==r.type&&"FeatureCollection"!==r.type)throw e("VALIDATION_ERROR",`Invalid geography data: expected Topology or FeatureCollection, got ${r.type}`);if("Topology"===r.type&&("object"!=typeof r.objects||null===r.objects||Array.isArray(r.objects)))throw e("VALIDATION_ERROR","Invalid topology data: expected a non-null objects map");if("FeatureCollection"===r.type&&!Array.isArray(r.features))throw e("VALIDATION_ERROR","Invalid feature collection data: expected a features array")}(o),o}catch(t){if(t instanceof SyntaxError)throw e("GEOGRAPHY_PARSE_ERROR","Invalid JSON format in geography data",r,t);throw t}}(l,t)}catch(o){throw a(),function(t,r,o){if(t instanceof Error){if("AbortError"===t.name)return e("GEOGRAPHY_LOAD_ERROR",`Request timeout after ${o.TIMEOUT_MS}ms`,r,t);if("TypeError"===t.name&&t.message.includes("fetch"))return e("GEOGRAPHY_LOAD_ERROR",`Network error: Unable to fetch geography from ${r}`,r,t);if(t.message.includes("Invalid geography data"))return e("GEOGRAPHY_PARSE_ERROR",t.message,r,t)}return t instanceof Error&&"type"in t?t:e("GEOGRAPHY_LOAD_ERROR",t instanceof Error?t.message:"Unknown error occurred",r,t instanceof Error?t:void 0)}(o,t,r)}var s,c}),{geoPath:kt,..._t}=it,Pt=H(void 0),Ut=Object.freeze({}),Vt=({width:t,height:e,projection:r,projectionConfig:o=Ut,children:n})=>{const i=B(()=>(({projectionConfig:t=Ut,projection:e="geoEqualEarth",width:r=800,height:o=600})=>{if("function"==typeof e)return e;const n=e.trim();if(!n)throw m("PROJECTION_ERROR","Projection name must be a non-empty string");if(!/^geo[A-Za-z0-9]+$/.test(n))throw m("PROJECTION_ERROR",`Invalid projection name: ${n}`);const i=a(t),s=n;if(!(s in _t))throw m("PROJECTION_ERROR",`Unknown projection: ${n}`,0,{availableProjections:Object.keys(_t)});let c=_t[s]().translate([r/2,o/2]);return i.center&&c.center&&(c=c.center(i.center)),i.rotate&&c.rotate&&(c=c.rotate(i.rotate)),i.scale&&c.scale&&(c=c.scale(i.scale)),c})({projectionConfig:o,projection:r||"geoEqualEarth",width:t,height:e}),[t,e,r,o]),s=B(()=>({width:t,height:e,projection:i,path:kt().projection(i)}),[t,e,i]);return F(Pt,{value:s,children:n})},Gt=()=>{const t=J(Pt);if(void 0===t)throw m("CONTEXT_ERROR","useMapContext must be used within a MapProvider");return t};class Ft{static instance;debugLogs=[];performanceMetrics=new Map;isEnabled=this.getDebugMode();getDebugMode(){if("undefined"!=typeof process){const t=process.env.REACT_SIMPLE_MAPS_DEBUG;if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return!1}setDebugMode(t){this.isEnabled=t}static getInstance(){return Ft.instance||(Ft.instance=new Ft),Ft.instance}logRender(t,e,r){if(!this.isEnabled)return;const o={componentName:t,ownerStack:g(),timestamp:Date.now(),...e&&{props:this.sanitizeProps(e)},...r&&{state:this.sanitizeState(r)}};this.debugLogs.push(o),this.debugLogs.length>100&&this.debugLogs.shift(),this.isEnabled&&(void 0,e)}logError(t,e,r){if(!this.isEnabled)return;const o={componentName:t,ownerStack:g(),timestamp:Date.now(),...r&&{props:this.sanitizeProps(r)},error:e};this.debugLogs.push(o),this.isEnabled,0}trackPerformance(t,e){if(!this.isEnabled)return;const r=this.performanceMetrics.get(t)||{renderTime:0,componentCount:0,updateCount:0};this.performanceMetrics.set(t,{renderTime:(r.renderTime+e)/2,componentCount:r.componentCount+1,updateCount:r.updateCount+1})}getLogsForComponent(t){return this.debugLogs.filter(e=>e.componentName===t)}getAllLogs(){return[...this.debugLogs]}getPerformanceMetrics(){return new Map(this.performanceMetrics)}clear(){this.debugLogs.length=0,this.performanceMetrics.clear()}setEnabled(t){this.isEnabled=t}exportDebugData(){return{logs:this.getAllLogs(),performance:Object.fromEntries(this.performanceMetrics),timestamp:Date.now()}}sanitizeProps(t){if(!t)return;const e={};for(const[r,o]of Object.entries(t))"function"==typeof o?e[r]="[Function]":o&&"object"==typeof o&&o.constructor!==Object&&o.constructor!==Array?e[r]=`[${o.constructor.name}]`:e[r]=o;return e}sanitizeState(t){return this.sanitizeProps(t)}}const Yt=(t,e,r)=>{if("undefined"!=typeof process&&"production"!==process.env.NODE_ENV)try{g(),void 0}catch{void 0,r}},zt=Ft.getInstance();"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(globalThis.__MAP_DEBUGGER__=zt);const Zt=Object.freeze({});y.displayName="ComposableMap";var Wt=K(y);const Ht={worldMap:{title:"Interactive World Map",description:"Explore the world with our interactive map featuring countries, cities, and geographic data.",keywords:["world map","interactive map","geography","countries","atlas"],author:"React Simple Maps",ogTitle:"Interactive World Map",ogDescription:"Explore the world with our interactive map featuring countries, cities, and geographic data.",twitterTitle:"Interactive World Map",twitterDescription:"Explore the world with our interactive map featuring countries, cities, and geographic data.",jsonLd:{"@context":"https://schema.org","@type":"Map",name:"Interactive World Map",description:"An interactive world map showing countries and geographic features",mapType:"https://schema.org/VenueMap"}},countryMap:t=>({title:`${t} Map - Interactive Geographic Data`,description:`Explore ${t} with detailed geographic information, cities, and regional data.`,keywords:[t.toLowerCase(),"map","geography","interactive","regions"],author:"React Simple Maps",ogTitle:`${t} Interactive Map`,ogDescription:`Explore ${t} with detailed geographic information, cities, and regional data.`,twitterTitle:`${t} Interactive Map`,twitterDescription:`Explore ${t} with detailed geographic information, cities, and regional data.`,jsonLd:{"@context":"https://schema.org","@type":"Map",name:`${t} Map`,description:`Interactive map of ${t} with geographic features`,mapType:"https://schema.org/VenueMap",about:{"@type":"Country",name:t}}}),cityMap:(t,e)=>({title:`${t} Map${e?` - ${e}`:""} - Interactive City Guide`,description:`Explore ${t} with our interactive map featuring neighborhoods, landmarks, and local information.`,keywords:[t.toLowerCase(),"city map","urban planning","neighborhoods","interactive"],author:"React Simple Maps",ogTitle:`${t} Interactive City Map`,ogDescription:`Explore ${t} with our interactive map featuring neighborhoods, landmarks, and local information.`,twitterTitle:`${t} Interactive City Map`,twitterDescription:`Explore ${t} with our interactive map featuring neighborhoods, landmarks, and local information.`,jsonLd:{"@context":"https://schema.org","@type":"Map",name:`${t} City Map`,description:`Interactive map of ${t} with city features`,mapType:"https://schema.org/VenueMap",about:{"@type":"City",name:t,...e&&{containedInPlace:{"@type":"Country",name:e}}}}}),dataVisualization:t=>({title:`${t} Data Visualization - Interactive Map`,description:`Visualize ${t} data on an interactive map with real-time updates and detailed analytics.`,keywords:[t.toLowerCase(),"data visualization","analytics","interactive map","statistics"],author:"React Simple Maps",ogTitle:`${t} Data Visualization`,ogDescription:`Visualize ${t} data on an interactive map with real-time updates and detailed analytics.`,twitterTitle:`${t} Data Visualization`,twitterDescription:`Visualize ${t} data on an interactive map with real-time updates and detailed analytics.`,jsonLd:{"@context":"https://schema.org","@type":"Dataset",name:`${t} Geographic Dataset`,description:`Geographic visualization of ${t} data`,distribution:{"@type":"DataDownload",encodingFormat:"application/json"}}})};R.displayName="MapWithMetadata";var Bt=K(R);class Jt{cache;maxSize;constructor(t){this.cache=new Map,this.maxSize=t}get(t){const e=this.cache.get(t);return void 0!==e&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;void 0!==t&&this.cache.delete(t)}this.cache.set(t,e)}clear(){this.cache.clear()}size(){return this.cache.size}}const qt={features:new Jt(50),preparedFeatures:new Jt(30),meshData:new Jt(40)},Xt={geographyDataCache:new WeakMap,preparedFeaturesCache:new WeakMap},Kt=3e5,Qt=new WeakMap;let te=0;const ee=new Set;class re extends tt{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,e){this.props.onError&&this.props.onError(t,e)}render(){return this.state.hasError&&this.state.error?this.props.fallback(this.state.error):this.props.children}}const oe=F("text",{className:"rsm-loading-text",x:"50%",y:"50%",textAnchor:"middle",children:"Loading..."}),ne=new Set(["geography","children","parseGeographies","className","errorBoundary","onGeographyError","fallback","ref"]);I.displayName="Geographies";var ie=K(I,function(t,e){if(t.geography!==e.geography)return!1;if(t.className!==e.className)return!1;if(t.errorBoundary!==e.errorBoundary)return!1;if(t.children!==e.children)return!1;if(t.parseGeographies!==e.parseGeographies)return!1;if(t.onGeographyError!==e.onGeographyError)return!1;if(t.fallback!==e.fallback)return!1;if(t.ref!==e.ref)return!1;const r=t,o=e,n=new Set([...Object.keys(r),...Object.keys(o)]);for(const t of n)if(!ne.has(t)&&r[t]!==o[t])return!1;return!0});const ae=new Set(["geography","onClick","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className","ref"]);L.displayName="Geography";var se=K(L,function(t,e){if(t.geography!==e.geography)return!1;if(t.style!==e.style)return!1;if(t.className!==e.className)return!1;if(t.onClick!==e.onClick)return!1;if(t.onMouseEnter!==e.onMouseEnter)return!1;if(t.onMouseLeave!==e.onMouseLeave)return!1;if(t.onMouseDown!==e.onMouseDown)return!1;if(t.onMouseUp!==e.onMouseUp)return!1;if(t.onFocus!==e.onFocus)return!1;if(t.onBlur!==e.onBlur)return!1;if(t.ref!==e.ref)return!1;const r=t,o=e,n=new Set([...Object.keys(r),...Object.keys(o)]);for(const t of n)if(!ae.has(t)&&r[t]!==o[t])return!1;return!0});C.displayName="Graticule";var ce=K(C);const le=H(void 0),ue={x:0,y:0,k:1,transformString:"translate(0 0) scale(1)"},fe=({value:t=ue,children:e})=>F(le,{value:t,children:e}),pe=()=>{const t=J(le);if(void 0===t)throw new Error("useZoomPanContext must be used within a ZoomPanProvider");return t},he=(t,e)=>[t,e];_.displayName="ZoomableGroup",P.displayName="Sphere";var de=K(P);U.displayName="Marker";var me=K(U);V.displayName="Line",G.displayName="Annotation";export{G as Annotation,Wt as ComposableMap,ie as Geographies,se as Geography,T as GeographyErrorBoundary,ce as Graticule,V as Line,Pt as MapContext,Vt as MapProvider,Bt as MapWithMetadata,me as Marker,de as Sphere,le as ZoomPanContext,fe as ZoomPanProvider,_ as ZoomableGroup,Rt as createCoordinates,vt as createGraticuleStep,wt as createLatitude,yt as createLongitude,Tt as createPanConfig,Ot as createParallels,Et as createScaleExtent,bt as createTranslateExtent,At as createZoomConfig,It as createZoomPanConfig,D as getBestGeographyCoordinates,M as getGeographyBounds,$ as getGeographyCentroid,j as getGeographyCoordinates,S as isValidCoordinates,v as useGeographies,Gt as useMapContext,k as useZoomPan,pe as useZoomPanContext}; | ||
| function t(t,e,r){const o=(t*r.k-t)/2,n=(e*r.k-e)/2,i=t/2-(o+r.x)/r.k,a=e/2-(n+r.y)/r.k;return Ot(i,a)}function e(t,e,r,o){const n=new Error(e);return n.name="GeographyError",n.type=t,n.timestamp=(new Date).toISOString(),r&&(n.geography=r),o&&(n.cause=o,o.stack&&(n.stack=o.stack),n.details={originalMessage:o.message,originalName:o.name}),n}function r(t,r=!1){if("string"!=typeof t)throw e("VALIDATION_ERROR","Expected string, got "+typeof t);if(t.length>jt.maxStringLength)throw e("VALIDATION_ERROR",`String too long: ${t.length} characters (max: ${jt.maxStringLength})`);let o=t;return r||(o=o.replace(/<[^>]*>/g,"").replace(/&[^;]+;/g,"").replace(/javascript:/gi,"").replace(/data:/gi,"").replace(/vbscript:/gi,"")),o=o.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,""),o}function o(t,r=-1/0,o=1/0){if("number"!=typeof t)throw e("VALIDATION_ERROR","Expected number, got "+typeof t);if(!Number.isFinite(t))throw e("VALIDATION_ERROR","Number must be finite");if(t<r||t>o)throw e("VALIDATION_ERROR",`Number ${t} is outside allowed range [${r}, ${o}]`);return t}function n(t,r){if(!Array.isArray(t))throw e("VALIDATION_ERROR","Expected array, got "+typeof t);if(t.length>jt.maxArrayLength)throw e("VALIDATION_ERROR",`Array too long: ${t.length} items (max: ${jt.maxArrayLength})`);return r?t.map((t,o)=>{try{return r(t,o)}catch(t){throw e("VALIDATION_ERROR",`Invalid array item at index ${o}: ${t instanceof Error?t.message:"Unknown error"}`)}}):t}function i(t,o=0){if("object"!=typeof t||null===t||Array.isArray(t))throw e("VALIDATION_ERROR","Expected object, got "+typeof t);if(o>jt.maxObjectDepth)throw e("VALIDATION_ERROR",`Object nesting too deep: ${o} levels (max: ${jt.maxObjectDepth})`);const n=t,a=Object.create(null);for(const[t,e]of Object.entries(n)){const n=r(t);Dt.has(n)||("object"!=typeof e||null===e||Array.isArray(e)?a[n]=e:a[n]=i(e,o+1))}return a}function a(t){const r=i(t),a={};if(Object.hasOwn(r,"center")&&void 0!==r.center&&(a.center=function(t){if(!Array.isArray(t)||2!==t.length)throw e("VALIDATION_ERROR","Coordinates must be an array of exactly 2 numbers");const[r,n]=t;return[o(r,-180,180),o(n,-90,90)]}(r.center)),Object.hasOwn(r,"rotate")&&void 0!==r.rotate&&Array.isArray(r.rotate)){const t=n(r.rotate,t=>o(t,-360,360));3===t.length&&void 0!==t[0]&&void 0!==t[1]&&void 0!==t[2]&&(a.rotate=[t[0],t[1],t[2]])}if(Object.hasOwn(r,"scale")&&void 0!==r.scale&&(a.scale=o(r.scale,.1,1e4)),Object.hasOwn(r,"parallels")&&void 0!==r.parallels&&Array.isArray(r.parallels)){const t=n(r.parallels,t=>o(t,-90,90));2===t.length&&void 0!==t[0]&&void 0!==t[1]&&(a.parallels=Tt(t[0],t[1]))}return a}function s(){return"undefined"!=typeof process&&"production"===process.env.NODE_ENV}function c(t){return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function l(t){if(!t||"localhost"===t)return!1;const e=c(t),r=[/^10\./,/^172\.(1[6-9]|2[0-9]|3[01])\./,/^192\.168\./,/^127\./,/^169\.254\./,/^0\./,/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./,/^192\.0\.0\./,/^192\.0\.2\./,/^198\.51\.100\./,/^203\.0\.113\./,/^198\.1[89]\./,/^233\.252\.0\./];for(const t of r)if(t.test(e))return!0;const o=[/^::1$/i,/^fe[89ab][0-9a-f]:/i,/^f[cd][0-9a-f]{2}:/i,/^::$/i,/^ff[0-9a-f]{2}:/i,/^100::/i,/^2001:db8:/i,/^2001:(?:0{1,4}:|:)/i];for(const t of o)if(t.test(e))return!0;const n=e.match(/^::ffff:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/i);if(n?.[1])return l(n[1]);const i=e.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(i?.[1]&&i[2]){const t=parseInt(i[1],16),e=parseInt(i[2],16);return l(`${t>>8&255}.${255&t}.${e>>8&255}.${255&e}`)}return!1}function u(){return"undefined"!=typeof process&&"node"===process.release?.name&&"undefined"==typeof window}async function f(t){if(!u())return[];const r=c(t);if(!r)return[];const o=await async function(){if("undefined"!=typeof process){const t="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns/promises"):null;if(t?.lookup)return t}try{const t="node:dns/promises",e=await import(t);return e.lookup?e:null}catch{return null}}();if(!o?.lookup)throw e("SECURITY_ERROR",`Unable to resolve hostname ${r} for security validation`,r);try{return(await o.lookup(r,{all:!0,verbatim:!0})).map(t=>t.address)}catch(t){throw e("SECURITY_ERROR",`Unable to resolve hostname ${r} for security validation`,r,t instanceof Error?t:void 0)}}function p(t,r=Ct){const o=function(t){if("string"!=typeof t)throw e("VALIDATION_ERROR","Expected string, got "+typeof t);const r=t.trim();if(!r)throw e("VALIDATION_ERROR","URL must be a non-empty string");if(r.length>jt.maxStringLength)throw e("VALIDATION_ERROR",`String too long: ${r.length} characters (max: ${jt.maxStringLength})`);if(/[\x00-\x1F\x7F]/.test(r))throw e("VALIDATION_ERROR","URL contains invalid control characters");try{const t=new URL(r);if(["javascript:","data:","vbscript:","file:"].some(e=>t.protocol.toLowerCase().startsWith(e)))throw e("SECURITY_ERROR",`Dangerous protocol detected: ${t.protocol}`);if(t.hostname.includes("..")||t.hostname.includes("%"))throw e("SECURITY_ERROR",`Invalid hostname: ${t.hostname}`);return t.toString()}catch(t){if(t instanceof TypeError)throw e("VALIDATION_ERROR",`Invalid URL format: ${r}`);throw t}}(t);try{const n=new URL(o);if(r.STRICT_HTTPS_ONLY){if("https:"!==n.protocol)throw e("SECURITY_ERROR",`Strict HTTPS-only mode: ${n.protocol} is not allowed. Only HTTPS is permitted.`,t)}else{if(!r.ALLOWED_PROTOCOLS.includes(n.protocol)){const o=r.ALLOWED_PROTOCOLS.join(", ");throw e("SECURITY_ERROR",`Unsupported protocol: ${n.protocol}. Only ${o} are allowed.`,t)}if("http:"===n.protocol){if(!r.ALLOW_HTTP_LOCALHOST)throw e("SECURITY_ERROR","HTTP protocol is disabled for security. Use HTTPS or enable development mode explicitly.",t);const o=c(n.hostname);if("localhost"!==o&&"127.0.0.1"!==o&&"::1"!==o)throw e("SECURITY_ERROR","HTTP protocol is only allowed for localhost. Use HTTPS for remote URLs.",t);if(s())throw e("SECURITY_ERROR","HTTP localhost access is not allowed in production",t);void 0}}const i=c(n.hostname);if(("localhost"===i||"127.0.0.1"===i||"::1"===i)&&s())throw e("SECURITY_ERROR","Localhost access is not allowed in production",t);if(l(n.hostname))throw e("SECURITY_ERROR",`Access to private IP address ${n.hostname} is not allowed`,t)}catch(r){if(r instanceof TypeError)throw e("VALIDATION_ERROR",`Invalid URL format: ${t}`,t,r);throw r}}async function h(t,r=Ct,o=f){if(p(t,r),o===f&&!u())return;const{hostname:n}=new URL(t),i=c(n);if(i&&"localhost"!==i&&!l(n)&&(await o(i)).some(t=>l(t)))throw e("SECURITY_ERROR",`Hostname ${i} resolves to a private IP address, which is not allowed`,t)}function d(t){return t&&"object"==typeof t&&!Array.isArray(t)&&"type"in t&&"Topology"===t.type?function(t){const e=Object.keys(t.objects);if(0===e.length)return null;const r=e[0];if(!r)return null;const o=t.objects[r];if(!o)return null;try{return{outline:gt(t,o,(t,e)=>t===e),borders:gt(t,o,(t,e)=>t!==e)}}catch{return null}}(t):null}function m(t){const e=t.rsmKey;return null!=e?String(e):void 0!==t.id&&null!==t.id?String(t.id):null}function g(t,e){return e.some(e=>e.has(t))}function y(t,e){if(!g(t,e))return t;let r=1,o=`${t}-${r}`;for(;g(o,e);)r+=1,o=`${t}-${r}`;return o}function w(t,e,r,o){const n=new Error(e);return n.type=t,o&&(n.details=o),n}function R(){if("production"!==process.env.NODE_ENV&&"object"==typeof B&&null!==B&&"captureOwnerStack"in B&&"function"==typeof B.captureOwnerStack)try{return B.captureOwnerStack()}catch{return null}return null}function E({width:t=800,height:e=600,projection:r="geoEqualEarth",projectionConfig:o=Bt,className:n="",debug:i=!1,children:a,ref:s,...c}){const{logRender:l}=function(t,e){const r=Zt.getInstance();return Q(()=>{void 0!==e&&r.setDebugMode(e)},[e,r]),{logRender:tt((e,o)=>r.logRender(t,e,o),[t,r]),logError:tt((e,o)=>r.logError(t,e,o),[t,r]),trackPerformance:tt(e=>r.trackPerformance(t,e),[t,r])}}("ComposableMap",i);return Q(()=>{l({width:t,height:e,projection:r,projectionConfig:o,className:n})},[l,t,e,r,o,n]),Z(Yt,{width:t,height:e,projection:r,projectionConfig:o,children:Z("svg",{ref:s,viewBox:`0 0 ${t} ${e}`,className:`rsm-svg ${n}`,...c,children:a})})}function b({title:t,description:e,keywords:r=[],author:o,viewport:n="width=device-width, initial-scale=1",canonicalUrl:i,ogTitle:a,ogDescription:s,ogImage:c,ogUrl:l,twitterCard:u="summary_large_image",twitterTitle:f,twitterDescription:p,twitterImage:h,jsonLd:d,children:m}){return W(H,{children:[t&&Z("title",{children:t}),e&&Z("meta",{name:"description",content:e}),r.length>0&&Z("meta",{name:"keywords",content:r.join(", ")}),o&&Z("meta",{name:"author",content:o}),Z("meta",{name:"viewport",content:n}),i&&Z("link",{rel:"canonical",href:i}),a&&Z("meta",{property:"og:title",content:a}),s&&Z("meta",{property:"og:description",content:s}),c&&Z("meta",{property:"og:image",content:c}),l&&Z("meta",{property:"og:url",content:l}),Z("meta",{property:"og:type",content:"website"}),Z("meta",{name:"twitter:card",content:u}),f&&Z("meta",{name:"twitter:title",content:f}),p&&Z("meta",{name:"twitter:description",content:p}),h&&Z("meta",{name:"twitter:image",content:h}),d&&Z("script",{type:"application/ld+json",dangerouslySetInnerHTML:{t:(g=d,JSON.stringify(g).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"))}}),Z("meta",{name:"geo.region",content:"world"}),Z("meta",{name:"geo.placename",content:"World Map"}),Z("meta",{name:"ICBM",content:"0, 0"}),Z("link",{rel:"preload",href:"/fonts/map-font.woff2",as:"font",type:"font/woff2",crossOrigin:"anonymous"}),m]});var g}function O({metadata:t,enableSEO:e=!0,enableOpenGraph:r=!0,enableTwitterCards:o=!0,enableJsonLd:n=!0,preset:i="worldMap",children:a,...s}){const c=X(()=>{const e=qt[i],a="function"==typeof e?e("Default"):e;return{title:t.title||a.title,description:t.description||a.description,keywords:t.keywords||a.keywords,author:t.author||a.author||"",canonicalUrl:t.canonicalUrl||"",ogTitle:r?t.title||a.ogTitle:void 0,ogDescription:r?t.description||a.ogDescription:void 0,twitterTitle:o?t.title||a.twitterTitle:void 0,twitterDescription:o?t.description||a.twitterDescription:void 0,jsonLd:n?a.jsonLd:void 0}},[t,i,r,o,n]),l=X(()=>e?Z(b,{title:c.title,description:c.description,keywords:c.keywords,...c.author&&{author:c.author},...c.canonicalUrl&&{canonicalUrl:c.canonicalUrl},...c.ogTitle&&{ogTitle:c.ogTitle},...c.ogDescription&&{ogDescription:c.ogDescription},...c.twitterTitle&&{twitterTitle:c.twitterTitle},...c.twitterDescription&&{twitterDescription:c.twitterDescription},...c.jsonLd&&{jsonLd:c.jsonLd}}):null,[c,e]),{ref:u,...f}=s;return W(H,{children:[l,Z(Jt,{...f,children:a})]})}function v(t){if(("object"==typeof t||"function"==typeof t)&&null!==t){const e=re.get(t);if(e)return e;oe+=1;const r=`obj:${oe}`;return re.set(t,r),r}return String(t)}function A(t){let e=2166136261;for(let r=0;r<t.length;r+=1)e^=t.charCodeAt(r),e=Math.imul(e,16777619);return`str:${t.length}:${(e>>>0).toString(16)}`}function T(t,e){let r;return r="string"==typeof t?A(t):"object"!=typeof t&&"function"!=typeof t||null===t?A(String(t)):v(t),e?`${r}:${e}`:r}function I({geography:t,parseGeographies:e}){const{path:r}=zt(),[o,n]=rt(null),[i,a]=rt(!1),[s,c]=rt(null),[l,u]=rt(0),f=tt(()=>{u(t=>t+1)},[]);Q(()=>{let e=!1;return"string"==typeof t?(a(!0),c(null),Wt(t,"start"),function(t,e=!1){if("string"==typeof t&&t&&!ne.has(t))try{p(t);const r=new URL(t);pt(r.origin),ht(r.origin),ne.add(t),(e||"undefined"!=typeof process&&"production"===process.env.NODE_ENV)&&dt(t,{as:"fetch",crossOrigin:"anonymous"})}catch(t){"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(t instanceof Error?t.message:String(t))}}(t),Pt(t).then(r=>{e||(Wt(t,"success",r),n(r),a(!1))}).catch(r=>{e||(Wt(t,"error",r),c(r instanceof Error?r:new Error(String(r))),a(!1))})):(n(t),a(!1),c(null)),()=>{e=!0}},[t,l]);const h=X(()=>{if(i||!o)return[];if(o&&"object"==typeof o&&!Array.isArray(o)){const t=function(t){const e=te.geographyDataCache.get(t);return e&&Date.now()-e.timestamp<ee?{features:e.features,mesh:e.mesh}:null}(o);if(t)return t.features}const t=function(t,e){return T(t,`features:${e?v(e):"default"}`)}(o,e),r=(n=t,Qt.features.get(n));var n;if(r)return r;const a=function(t,e){return Array.isArray(t)?e?e(t):t:"Topology"===t.type?function(t,e){const r=Object.keys(t.objects);if(0===r.length)return[];const o=r[0];if(!o)return[];const n=t.objects[o];if(!n)return[];const i=mt(t,n),a="features"in i&&i.features||[];return e?e(a):a}(t,e):"FeatureCollection"===t.type?function(t,e){const r=t.features||[];return e?e(r):r}(t,e):[]}(o,e);if(!function(t,e){Qt.features.set(t,e)}(t,a),o&&"object"==typeof o&&!Array.isArray(o)){const t=d(o);!function(t,e,r){te.geographyDataCache.set(t,{features:e,mesh:r,timestamp:Date.now()})}(o,a,t)}return a},[o,i,e]),g=X(()=>i||!o?null:d(o),[o,i]),w=X(()=>{if(0===h.length)return[];const t=v(r);if(o&&"object"==typeof o&&!Array.isArray(o)){const e=function(t,e){const r=te.preparedFeaturesCache.get(t);return r&&r.pathFunction===e&&Date.now()-r.timestamp<ee?r.prepared:null}(o,t);if(e)return e}const e=(i=r,`prepared:${v(h)}:${v(i)}`),n=(a=e,Qt.preparedFeatures.get(a));var i,a;if(n)return n;const s=function(t,e){if(!t||0===t.length)return[];const r=t.map((t,r)=>{const o=e(t);return o?{explicitKey:m(t),feature:t,index:r,svgPath:o}:null}).filter(t=>null!==t),o=new Set(r.map(t=>t.explicitKey).filter(t=>null!==t)),n=new Set;return r.map(({explicitKey:t,feature:e,index:r,svgPath:i})=>{const a=null!==t?function(t,e,r){return e.has(t)?y(t,[e,r]):t}(t,n,o):function(t,e,r){return y(`geo-${t}`,[e,r])}(r,n,o);return n.add(a),{...e,svgPath:i,rsmKey:a}})}(h,r);return!function(t,e){Qt.preparedFeatures.set(t,e)}(e,s),o&&"object"==typeof o&&!Array.isArray(o)&&function(t,e,r){te.preparedFeaturesCache.set(t,{prepared:e,pathFunction:r,timestamp:Date.now()})}(o,s,t),s},[h,r,o]),R=X(()=>{if(!g)return{outline:"",borders:""};const t=T(o,`mesh:${v(r)}`),e=(n=t,Qt.meshData.get(n));var n;if(e)return e;const i=function(t,e,r){const o={};if(t){const e=r(t);e&&(o.outline=e)}if(e){const t=r(e);t&&(o.borders=t)}return o}(g.outline||null,g.borders||null,r),a={outline:i.outline||"",borders:i.borders||""};return!function(t,e){Qt.meshData.set(t,e)}(t,a),a},[g,r,o]);return X(()=>({geographies:w,outline:R.outline,borders:R.borders,isLoading:i,error:s,refetch:f}),[w,R,i,s,f])}function $(t,e){return W("g",{className:"rsm-error-boundary",role:"alert",children:[Z("text",{className:"rsm-error-text",x:"50%",y:"42%",textAnchor:"middle",dominantBaseline:"middle",fill:"currentColor",children:"Failed to load geography data."}),Z("text",{className:"rsm-error-retry",x:"50%",y:"58%",textAnchor:"middle",dominantBaseline:"middle",fill:"currentColor",role:"button",tabIndex:0,style:{cursor:"pointer"},onClick:e,onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),e())},children:"Retry"})]})}function x({children:t,fallback:e=$,onError:r}){const[o,n]=rt(0),i=tt(t=>{r&&r(t),"production"!==process.env.NODE_ENV},[r]),a=tt(()=>{n(t=>t+1)},[]),s=tt(t=>e(t,a),[e,a]);return Z(ie,{fallback:s,onError:i,children:t},o)}function M({geography:t,children:e,parseGeographies:r,className:o="",errorBoundary:n=!1,onGeographyError:i,fallback:a,ref:s,...c}){const{path:l,projection:u}=zt(),f=I({geography:t,...r&&{parseGeographies:r}}),{geographies:p,outline:h,borders:d,isLoading:m,error:g,refetch:y}=f;Q(()=>{g&&i&&i(g)},[g,i]);const w=tt(()=>p&&0!==p.length?e({geographies:p,outline:h,borders:d,path:l,projection:u}):null,[p,h,d,e,l,u]);if(m)return Z("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:ae});if(g)return Z("g",a&&"function"==typeof a?{ref:s,className:`rsm-geographies ${o}`,...c,children:a(g,y??(()=>{}))}:{ref:s,className:`rsm-geographies ${o}`,...c,children:Z("text",{className:"rsm-error-text",x:"50%",y:"50%",textAnchor:"middle",fill:"currentColor",children:"Failed to load geography data"})});const R=w();if(n){const t={};return i&&(t.onError=i),a&&(t.fallback=a),Z("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:Z(x,{...t,children:R})})}return Z("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:R})}function S(t){if(!t?.geometry)return null;const e=ut(t);return!e||!isFinite(e[0])||!isFinite(e[1])||Math.abs(e[0])>180||Math.abs(e[1])>90?null:Ot(e[0],e[1])}function j(t){if(!t?.geometry)return null;const e=lt(t);if(!(e&&Array.isArray(e)&&2===e.length&&Array.isArray(e[0])&&Array.isArray(e[1])&&2===e[0].length&&2===e[1].length))return null;const[r,o]=e;return!isFinite(r[0])||!isFinite(r[1])||!isFinite(o[0])||!isFinite(o[1])||Math.abs(r[0])>180||Math.abs(r[1])>90||Math.abs(o[0])>180||Math.abs(o[1])>90?null:[Ot(r[0],r[1]),Ot(o[0],o[1])]}function D(t,e){if(e>10)return null;if(!t?.geometry)return null;const{geometry:r}=t;switch(r.type){case"Point":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>=2&&"number"==typeof r.coordinates[0]&&"number"==typeof r.coordinates[1]){const[t,e]=r.coordinates;return Ot(t,e)}break;case"LineString":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>=2&&"number"==typeof r.coordinates[0][0]&&"number"==typeof r.coordinates[0][1]){const[t,e]=r.coordinates[0];return Ot(t,e)}break;case"Polygon":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>0&&Array.isArray(r.coordinates[0][0])&&r.coordinates[0][0].length>=2&&"number"==typeof r.coordinates[0][0][0]&&"number"==typeof r.coordinates[0][0][1]){const[t,e]=r.coordinates[0][0];return Ot(t,e)}break;case"MultiPoint":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>=2&&"number"==typeof r.coordinates[0][0]&&"number"==typeof r.coordinates[0][1]){const[t,e]=r.coordinates[0];return Ot(t,e)}break;case"MultiLineString":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>0&&Array.isArray(r.coordinates[0][0])&&r.coordinates[0][0].length>=2&&"number"==typeof r.coordinates[0][0][0]&&"number"==typeof r.coordinates[0][0][1]){const[t,e]=r.coordinates[0][0];return Ot(t,e)}break;case"MultiPolygon":if(r.coordinates&&Array.isArray(r.coordinates)&&r.coordinates.length>0&&Array.isArray(r.coordinates[0])&&r.coordinates[0].length>0&&Array.isArray(r.coordinates[0][0])&&r.coordinates[0][0].length>0&&Array.isArray(r.coordinates[0][0][0])&&r.coordinates[0][0][0].length>=2&&"number"==typeof r.coordinates[0][0][0][0]&&"number"==typeof r.coordinates[0][0][0][1]){const[t,e]=r.coordinates[0][0][0];return Ot(t,e)}break;case"GeometryCollection":if(r.geometries&&Array.isArray(r.geometries)&&r.geometries.length>0&&r.geometries[0])return D({geometry:r.geometries[0]},e+1);break;default:return null}return null}function L(t){return D(t,0)}function C(t){return S(t)||L(t)}function N(t){return Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]&&isFinite(t[0])&&isFinite(t[1])&&Math.abs(t[0])<=180&&Math.abs(t[1])<=90}function k({geography:t,onClick:e,onMouseEnter:r,onMouseLeave:o,onMouseDown:n,onMouseUp:i,onFocus:a,onBlur:s,style:c={},className:l="",ref:u,...f}){const[p,h]=rt(!1),[d,m]=rt(!1),[g,y]=rt(!1),w=X(()=>({geography:t,centroid:S(t),bounds:j(t),coordinates:C(t)}),[t]),R=tt(t=>{e&&e(t,w)},[e,w]),E=tt(t=>{m(!0),r&&r(t,w)},[r,w]),b=tt(t=>{m(!1),p&&h(!1),o&&o(t,w)},[o,w,p]),O=tt(t=>{y(!0),a&&a(t,w)},[a,w]),v=tt(t=>{y(!1),p&&h(!1),s&&s(t,w)},[s,w,p]),A=tt(t=>{h(!0),n&&n(t,w)},[n,w]),T=tt(t=>{h(!1),i&&i(t,w)},[i,w]),I=X(()=>p?"pressed":g?"focused":d?"hover":"default",[p,g,d]),$=X(()=>t.svgPath,[t]),x=X(()=>c[I],[c,I]);return Z("path",{ref:u,tabIndex:0,className:`rsm-geography ${l}`,d:$,onClick:R,onMouseEnter:E,onMouseLeave:b,onFocus:O,onBlur:v,onMouseDown:A,onMouseUp:T,style:x,...f})}function _({fill:t="transparent",stroke:e="currentcolor",step:r=It(10,10),className:o="",ref:n,...i}){const{path:a}=zt(),s=ft().step(r)();return Z("path",{ref:n,d:a(s)||"",fill:t,stroke:e,className:`rsm-graticule ${o}`,...i})}function P({mapRef:e,width:r,height:o,projection:n,scaleExtent:i,translateExtent:a,filterZoomEvent:s,onZoom:c,onZoomStart:l,onZoomEnd:u,onMove:f,bypassEvents:p}){const h=nt(void 0),[d,m]=i,[g,y]=a,[w,R]=g,[E,b]=y,O=tt(e=>{if(p.current)return;const{transform:i,sourceEvent:a}=e;if(c&&c({x:i.x,y:i.y,k:i.k},a),!f)return;const s=t(r,o,i),l=n.invert?.(s);l&&f({coordinates:ge(l[0],l[1]),zoom:i.k},e.sourceEvent||e)},[c,f,r,o,n,p]);return Q(()=>{if(!e.current)return;const i=Rt(e.current),a=yt().filter(function(t){return s&&t?s(t.sourceEvent||t):!!t&&!t.sourceEvent?.ctrlKey&&!t.sourceEvent?.button}).scaleExtent([d,m]).translateExtent([[w,R],[E,b]]).on("start",function(e){if(!l||p.current)return;const i=t(r,o,e.transform),a=n.invert?.(i);a&&l({coordinates:ge(a[0],a[1]),zoom:e.transform.k},e.sourceEvent||e)}).on("zoom",O).on("end",function(e){if(p.current)return p.current=!1,void 0;const i=t(r,o,e.transform),a=n.invert?.(i);if(a){const[t,r]=a;if(!u)return;u({coordinates:ge(t,r),zoom:e.transform.k},e.sourceEvent||e)}});h.current=a,i.call(a)},[r,o,w,R,E,b,d,m,n,l,f,u,s,O,e,p]),{zoomRef:h,handleZoom:O}}function U({center:t,filterZoomEvent:e,onMoveStart:r,onMoveEnd:o,onMove:n,translateExtent:i=At(Ot(-1/0,-1/0),Ot(1/0,1/0)),scaleExtent:a=vt(1,8),zoom:s=1}){const{width:c,height:l,projection:u}=zt(),f=at(t,Ot(0,0)),p=at(s,1),h=nt(null),d=nt(!1),{smoothPosition:m,setPosition:g,setOptimisticPosition:y,isPending:w,startTransition:R,transformString:E}=function({initialPosition:t={x:0,y:0,k:1},transitionPriority:e="normal",deferredUpdateThreshold:r=16}={}){const[o,n]=it(),[i,a]=rt(0),[s,c]=rt(0),[l,u]=rt(t),[f,p]=rt(t),h=at(f,t),d=h!==f,m=X(()=>{const t=f.dragging?f:h;return`translate(${t.x} ${t.y}) scale(${t.k})`},[h,f]),g=tt(t=>{const e=performance.now(),o=e-s;a(t=>t+1),c(e),p(t),o<r?n(()=>{u(t)}):u(t)},[s,r,n]);return{position:l,smoothPosition:h,optimisticPosition:f,setPosition:g,setOptimisticPosition:p,isPending:o,startTransition:n,transformString:m,isDeferred:d,updateCount:i}}(),b={mapRef:h,width:c,height:l,projection:u,scaleExtent:a,translateExtent:i,onZoomStart:r,onZoomEnd:o,onMove:n,bypassEvents:d,onZoom:(t,e)=>{const r={x:t.x,y:t.y,k:t.k,dragging:e};y(r),R(()=>{g(r)})},...e&&{filterZoomEvent:e}},{zoomRef:O}=P(b);return!function({mapRef:t,zoomRef:e,width:r,height:o,projection:n,center:i,zoom:a,bypassEvents:s,onPositionChange:c,startTransition:l}){const u=nt({x:0,y:0,k:1}),f=tt((i,a)=>{const[f,p]=i,h=n([f,p]);if(!h||!t.current||!e.current)return;const d=h[0]*a,m=h[1]*a,g=Rt(t.current);s.current=!0,l(()=>{e.current&&g.call(e.current.transform,wt.translate(r/2-d,o/2-m).scale(a)),c&&c({x:r/2-d,y:o/2-m,k:a})}),u.current={x:f,y:p,k:a}},[n,t,e,s,l,r,o,c]);return Q(()=>{const[t,e]=i;t===u.current.x&&e===u.current.y&&a===u.current.k||f(i,a)},[i,a,r,o,n,l,f]),{lastPosition:u,programmaticMove:f}}({mapRef:h,zoomRef:O,width:c,height:l,projection:u,center:f,zoom:p,bypassEvents:d,onPositionChange:t=>{g(t)},startTransition:R}),{mapRef:h,position:m,transformString:E,isPending:w}}function V(t){const{center:e=Ot(0,0),zoom:r=1,filterZoomEvent:o,onMoveStart:n,onMove:i,onMoveEnd:a,className:s="",children:c,ref:l,minZoom:u,maxZoom:f,enableZoom:p,enablePan:h,scaleExtent:d,translateExtent:m,...g}=t,{width:y,height:w}=zt();let R,E=1,b=8;if(function(t){return"enableZoom"in t||"enablePan"in t||"minZoom"in t&&"maxZoom"in t&&!("scaleExtent"in t)}(t))E=t.minZoom??1,b=t.maxZoom??8,R=t.translateExtent??(!1!==t.enablePan?At(Ot(-1/0,-1/0),Ot(1/0,1/0)):void 0);else{const e=t;E=e.minZoom??1,b=e.maxZoom??8,R=e.translateExtent}const O=d??vt(E,b),{mapRef:v,transformString:A,position:T}=U({center:e,...o&&{filterZoomEvent:o},...n&&{onMoveStart:n},...i&&{onMove:i},...a&&{onMoveEnd:a},scaleExtent:O,...R&&{translateExtent:R},zoom:r});return Z(de,{value:{x:T.x,y:T.y,k:T.k,transformString:A},children:W("g",{ref:v,children:[Z("rect",{width:y,height:w,fill:"transparent"}),Z("g",{ref:l,transform:A,className:`rsm-zoomable-group ${s}`,...g,children:c})]})})}function G({id:t="rsm-sphere",fill:e="transparent",stroke:r="currentcolor",strokeWidth:o=.5,className:n="",ref:i,...a}){const{path:s}=zt(),c=X(()=>s({type:"Sphere"}),[s]);return W(st,{children:[Z("defs",{children:Z("clipPath",{id:t,children:Z("path",{d:c||""})})}),Z("path",{ref:i,d:c||"",fill:e,stroke:r,strokeWidth:o,style:{pointerEvents:"none"},className:`rsm-sphere ${n}`,...a})]})}function F({coordinates:t,children:e,onMouseEnter:r,onMouseLeave:o,onMouseDown:n,onMouseUp:i,onFocus:a,onBlur:s,style:c={},className:l="",ref:u,...f}){const{projection:p}=zt(),[h,d]=rt(!1),[m,g]=rt(!1),[y,w]=rt(!1),R=tt(t=>{g(!0),r&&r(t)},[r]),E=tt(t=>{g(!1),h&&d(!1),o&&o(t)},[o,h]),b=tt(t=>{w(!0),a&&a(t)},[a]),O=tt(t=>{w(!1),h&&d(!1),s&&s(t)},[s,h]),v=tt(t=>{d(!0),n&&n(t)},[n]),A=tt(t=>{d(!1),i&&i(t)},[i]),T=X(()=>p(t),[p,t]),I=X(()=>h?"pressed":y?"focused":m?"hover":"default",[h,y,m]),$=X(()=>c?.[I],[c,I]),x=X(()=>{if(!T)return"";const[t,e]=T;return`translate(${t}, ${e})`},[T]);return T?Z("g",{ref:u,transform:x,className:`rsm-marker ${l}`,onMouseEnter:R,onMouseLeave:E,onFocus:b,onBlur:O,onMouseDown:v,onMouseUp:A,style:$,...f,children:e}):null}function Y({from:t=[0,0],to:e=[0,0],coordinates:r,stroke:o="currentcolor",strokeWidth:n=3,fill:i="transparent",className:a="",ref:s,...c}){const{path:l}=zt();return Z("path",{ref:s,d:l({type:"LineString",coordinates:r||[t,e]})||"",className:`rsm-line ${a}`,stroke:o,strokeWidth:n,fill:i,...c})}function z({subject:t,children:e,connectorProps:r,dx:o=30,dy:n=30,curve:i=0,className:a="",ref:s,...c}){const{projection:l}=zt(),u=l(t);if(!u)return null;const[f,p]=u,h=function(t,e,r){if("function"!=typeof r)return"";try{return r().x(t=>t[0]).y(t=>t[1])([t,e])||""}catch{return""}}([f,p],[f+o,p+n],i);return W("g",{ref:s,transform:`translate(${f+o}, ${p+n})`,className:`rsm-annotation ${a}`,...c,children:[Z("path",{d:h,fill:"transparent",stroke:"#000",...r}),e]})}import{jsx as Z,jsxs as W,Fragment as H}from"react/jsx-runtime";import B,{cache as J,createContext as q,useMemo as X,useContext as K,useEffect as Q,useCallback as tt,memo as et,useState as rt,Component as ot,useRef as nt,useTransition as it,useDeferredValue as at,Fragment as st}from"react";import*as ct from"d3-geo";import{geoBounds as lt,geoCentroid as ut,geoGraticule as ft}from"d3-geo";import{prefetchDNS as pt,preconnect as ht,preload as dt}from"react-dom";import{feature as mt,mesh as gt}from"topojson-client";import{zoom as yt,zoomIdentity as wt}from"d3-zoom";import{select as Rt}from"d3-selection";const Et=t=>t,bt=t=>t,Ot=(t,e)=>[t,e],vt=(t,e)=>[t,e],At=(t,e)=>[t,e],Tt=(t,e)=>[t,e],It=(t,e)=>[t,e],$t=(t,e)=>({minZoom:t,maxZoom:e,scaleExtent:vt(t,e),enableZoom:!0}),xt=t=>({translateExtent:At(t[0],t[1]),enablePan:!0}),Mt=(t,e,r)=>({...$t(t,e),...xt(r)}),St={strictMode:!0,allowUnsafeContent:!1,maxStringLength:1e4,maxArrayLength:1e3,maxObjectDepth:10};let jt=function(){const t={...St};return"undefined"!=typeof process&&"production"===process?.env?.NODE_ENV&&t.allowUnsafeContent&&(t.allowUnsafeContent=!1),Object.freeze(t)}();const Dt=new Set(["__proto__","constructor","prototype"]),Lt={TIMEOUT_MS:1e4,MAX_RESPONSE_SIZE:52428800,ALLOWED_CONTENT_TYPES:["application/json","application/geo+json"],ALLOWED_PROTOCOLS:["https:"],ALLOW_HTTP_LOCALHOST:!1,STRICT_HTTPS_ONLY:!0};let Ct=Object.freeze({...Lt,ALLOWED_CONTENT_TYPES:Object.freeze([...Lt.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...Lt.ALLOWED_PROTOCOLS])});const Nt={"https://unpkg.com/world-atlas@2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0}},kt={enforceForKnownSources:!0,enforceForAllSources:!1,allowUnknownSources:!0,customSRIMap:{}};let _t=Object.freeze({...kt,customSRIMap:Object.freeze({...kt.customSRIMap})});const Pt=J(async t=>{const r=Ct,o=_t;p(t,r),await h(t,r);const n=function(t,r=_t){const o=function(t){try{const e=new URL(t);return e.hash="",("https:"===e.protocol&&"443"===e.port||"http:"===e.protocol&&"80"===e.port)&&(e.port=""),e.pathname=e.pathname.replace(/\/+$/,"")||"/",e.href}catch{return t}}(t);if(r.customSRIMap[o])return r.customSRIMap[o];if(r.customSRIMap[t])return r.customSRIMap[t];if(Nt[o]&&r.enforceForKnownSources)return Nt[o];if(Nt[t]&&r.enforceForKnownSources)return Nt[t];if(r.enforceForAllSources&&!r.allowUnknownSources)throw e("SECURITY_ERROR",`SRI enforcement is enabled but no integrity hash is available for ${t}`,t);return null}(t,o),{controller:i,cleanup:a}=function(t){const e=new AbortController,r=setTimeout(()=>{e.abort()},t);return{controller:e,cleanup:()=>clearTimeout(r)}}(r.TIMEOUT_MS);try{const o=await async function(t,r,o){let n=t;for(let t=0;t<5;t++){const t=await fetch(n,r);if(t.status<300||t.status>=400)return t;try{await t.arrayBuffer()}catch{}const i=t.headers.get("location");if(!i)throw e("SECURITY_ERROR",`Redirect response (HTTP ${t.status}) missing Location header`,n);const a=new URL(i,n).href;p(a,o),await h(a,o),n=a}throw e("SECURITY_ERROR","Too many redirects (exceeded 5 hops)",t)}(t,(s=i.signal,c=r,{signal:s,headers:{Accept:c.ALLOWED_CONTENT_TYPES.join(", "),"Cache-Control":"public, max-age=3600"},mode:"cors",credentials:"omit",redirect:"manual"}),r);if(a(),!o.ok)throw e("GEOGRAPHY_LOAD_ERROR",`HTTP ${o.status}: ${o.statusText}`,t);!function(t,r=Ct){const o=t.headers.get("content-type");if(!o)throw e("VALIDATION_ERROR","Missing Content-Type header");const n=o.split(";",1)[0]?.trim().toLowerCase()??"";if(!r.ALLOWED_CONTENT_TYPES.includes(n))throw e("VALIDATION_ERROR",`Invalid content type: ${o}. Expected one of: ${r.ALLOWED_CONTENT_TYPES.join(", ")}`)}(o,r),await async function(t,r=Ct){const o=t.headers.get("content-length");if(o){const t=parseInt(o,10);if(t>r.MAX_RESPONSE_SIZE)throw e("VALIDATION_ERROR",`Response too large: ${t} bytes. Maximum allowed: ${r.MAX_RESPONSE_SIZE} bytes`)}}(o,r);const l=await async function(t,r=Ct.MAX_RESPONSE_SIZE){const o=t.body?.getReader();if(!o){const o=await t.arrayBuffer();if(o.byteLength>r)throw e("VALIDATION_ERROR",`Response too large: ${o.byteLength} bytes exceeds limit of ${r} bytes`);return o}const n=[];let i=0;for(;;){const{done:t,value:a}=await o.read();if(t)break;if(i+=a.byteLength,i>r)throw o.cancel().catch(()=>{}),e("VALIDATION_ERROR",`Response too large: exceeded limit of ${r} bytes`);n.push(a)}const a=new Uint8Array(i);let s=0;for(const t of n)a.set(t,s),s+=t.byteLength;return a.buffer}(o,r.MAX_RESPONSE_SIZE);return n&&await async function(t,r,o){const n=await async function(t,e){const r=await globalThis.crypto.subtle.digest(e,t),o=new Uint8Array(r);let n;if(void 0!==globalThis.btoa)n=globalThis.btoa(String.fromCharCode(...o));else{const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let e="",r=0;for(;r<o.length;){const n=(o[r++]||0)<<16|(r<o.length&&o[r++]||0)<<8|(r<o.length&&o[r++]||0);e+=t.charAt(n>>18&63),e+=t.charAt(n>>12&63),e+=r-2<o.length?t.charAt(n>>6&63):"=",e+=r-1<o.length?t.charAt(63&n):"="}n=e}return n}(t,{sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"}[o.algorithm]),i=o.hash.replace(`${o.algorithm}-`,"");if(n!==i){const t=new Error(`Subresource Integrity check failed for ${r}. Expected ${o.algorithm}-${i}, got ${o.algorithm}-${n}`);throw t.expectedHash=o.hash,t.calculatedHash=`${o.algorithm}-${n}`,t.algorithm=o.algorithm,e("SECURITY_ERROR",t.message,r,t)}}(l,t,n),await async function(t,r){try{const r=(new TextDecoder).decode(t),o=JSON.parse(r);return!function(t){if(!t||"object"!=typeof t)throw e("VALIDATION_ERROR","Invalid geography data: not a valid object");const r=t;if(!r.type||"Topology"!==r.type&&"FeatureCollection"!==r.type)throw e("VALIDATION_ERROR",`Invalid geography data: expected Topology or FeatureCollection, got ${r.type}`);if("Topology"===r.type&&("object"!=typeof r.objects||null===r.objects||Array.isArray(r.objects)))throw e("VALIDATION_ERROR","Invalid topology data: expected a non-null objects map");if("FeatureCollection"===r.type&&!Array.isArray(r.features))throw e("VALIDATION_ERROR","Invalid feature collection data: expected a features array")}(o),o}catch(t){if(t instanceof SyntaxError)throw e("GEOGRAPHY_PARSE_ERROR","Invalid JSON format in geography data",r,t);throw t}}(l,t)}catch(o){throw a(),function(t,r,o){if(t instanceof Error){if("AbortError"===t.name)return e("GEOGRAPHY_LOAD_ERROR",`Request timeout after ${o.TIMEOUT_MS}ms`,r,t);if("TypeError"===t.name&&t.message.includes("fetch"))return e("GEOGRAPHY_LOAD_ERROR",`Network error: Unable to fetch geography from ${r}`,r,t);if(t.message.includes("Invalid geography data"))return e("GEOGRAPHY_PARSE_ERROR",t.message,r,t)}return t instanceof Error&&"type"in t?t:e("GEOGRAPHY_LOAD_ERROR",t instanceof Error?t.message:"Unknown error occurred",r,t instanceof Error?t:void 0)}(o,t,r)}var s,c}),{geoPath:Ut,...Vt}=ct,Gt=q(void 0),Ft=Object.freeze({}),Yt=({width:t,height:e,projection:r,projectionConfig:o=Ft,children:n})=>{const i=X(()=>(({projectionConfig:t=Ft,projection:e="geoEqualEarth",width:r=800,height:o=600})=>{if("function"==typeof e)return e;const n=e.trim();if(!n)throw w("PROJECTION_ERROR","Projection name must be a non-empty string");if(!/^geo[A-Za-z0-9]+$/.test(n))throw w("PROJECTION_ERROR",`Invalid projection name: ${n}`);const i=a(t),s=n;if(!(s in Vt))throw w("PROJECTION_ERROR",`Unknown projection: ${n}`,0,{availableProjections:Object.keys(Vt)});let c=Vt[s]().translate([r/2,o/2]);return i.center&&c.center&&(c=c.center(i.center)),i.rotate&&c.rotate&&(c=c.rotate(i.rotate)),i.scale&&c.scale&&(c=c.scale(i.scale)),c})({projectionConfig:o,projection:r||"geoEqualEarth",width:t,height:e}),[t,e,r,o]),s=X(()=>({width:t,height:e,projection:i,path:Ut().projection(i)}),[t,e,i]);return Z(Gt,{value:s,children:n})},zt=()=>{const t=K(Gt);if(void 0===t)throw w("CONTEXT_ERROR","useMapContext must be used within a MapProvider");return t};class Zt{static instance;debugLogs=[];performanceMetrics=new Map;isEnabled=this.getDebugMode();getDebugMode(){if("undefined"!=typeof process){const t=process.env.REACT_SIMPLE_MAPS_DEBUG;if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return!1}setDebugMode(t){this.isEnabled=t}static getInstance(){return Zt.instance||(Zt.instance=new Zt),Zt.instance}logRender(t,e,r){if(!this.isEnabled)return;const o={componentName:t,ownerStack:R(),timestamp:Date.now(),...e&&{props:this.sanitizeProps(e)},...r&&{state:this.sanitizeState(r)}};this.debugLogs.push(o),this.debugLogs.length>100&&this.debugLogs.shift(),this.isEnabled&&(void 0,e)}logError(t,e,r){if(!this.isEnabled)return;const o={componentName:t,ownerStack:R(),timestamp:Date.now(),...r&&{props:this.sanitizeProps(r)},error:e};this.debugLogs.push(o),this.isEnabled,0}trackPerformance(t,e){if(!this.isEnabled)return;const r=this.performanceMetrics.get(t)||{renderTime:0,componentCount:0,updateCount:0};this.performanceMetrics.set(t,{renderTime:(r.renderTime+e)/2,componentCount:r.componentCount+1,updateCount:r.updateCount+1})}getLogsForComponent(t){return this.debugLogs.filter(e=>e.componentName===t)}getAllLogs(){return[...this.debugLogs]}getPerformanceMetrics(){return new Map(this.performanceMetrics)}clear(){this.debugLogs.length=0,this.performanceMetrics.clear()}setEnabled(t){this.isEnabled=t}exportDebugData(){return{logs:this.getAllLogs(),performance:Object.fromEntries(this.performanceMetrics),timestamp:Date.now()}}sanitizeProps(t){if(!t)return;const e={};for(const[r,o]of Object.entries(t))"function"==typeof o?e[r]="[Function]":o&&"object"==typeof o&&o.constructor!==Object&&o.constructor!==Array?e[r]=`[${o.constructor.name}]`:e[r]=o;return e}sanitizeState(t){return this.sanitizeProps(t)}}const Wt=(t,e,r)=>{if("undefined"!=typeof process&&"production"!==process.env.NODE_ENV)try{R(),void 0}catch{void 0,r}},Ht=Zt.getInstance();"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(globalThis.__MAP_DEBUGGER__=Ht);const Bt=Object.freeze({});E.displayName="ComposableMap";var Jt=et(E);const qt={worldMap:{title:"Interactive World Map",description:"Explore the world with our interactive map featuring countries, cities, and geographic data.",keywords:["world map","interactive map","geography","countries","atlas"],author:"React Simple Maps",ogTitle:"Interactive World Map",ogDescription:"Explore the world with our interactive map featuring countries, cities, and geographic data.",twitterTitle:"Interactive World Map",twitterDescription:"Explore the world with our interactive map featuring countries, cities, and geographic data.",jsonLd:{"@context":"https://schema.org","@type":"Map",name:"Interactive World Map",description:"An interactive world map showing countries and geographic features",mapType:"https://schema.org/VenueMap"}},countryMap:t=>({title:`${t} Map - Interactive Geographic Data`,description:`Explore ${t} with detailed geographic information, cities, and regional data.`,keywords:[t.toLowerCase(),"map","geography","interactive","regions"],author:"React Simple Maps",ogTitle:`${t} Interactive Map`,ogDescription:`Explore ${t} with detailed geographic information, cities, and regional data.`,twitterTitle:`${t} Interactive Map`,twitterDescription:`Explore ${t} with detailed geographic information, cities, and regional data.`,jsonLd:{"@context":"https://schema.org","@type":"Map",name:`${t} Map`,description:`Interactive map of ${t} with geographic features`,mapType:"https://schema.org/VenueMap",about:{"@type":"Country",name:t}}}),cityMap:(t,e)=>({title:`${t} Map${e?` - ${e}`:""} - Interactive City Guide`,description:`Explore ${t} with our interactive map featuring neighborhoods, landmarks, and local information.`,keywords:[t.toLowerCase(),"city map","urban planning","neighborhoods","interactive"],author:"React Simple Maps",ogTitle:`${t} Interactive City Map`,ogDescription:`Explore ${t} with our interactive map featuring neighborhoods, landmarks, and local information.`,twitterTitle:`${t} Interactive City Map`,twitterDescription:`Explore ${t} with our interactive map featuring neighborhoods, landmarks, and local information.`,jsonLd:{"@context":"https://schema.org","@type":"Map",name:`${t} City Map`,description:`Interactive map of ${t} with city features`,mapType:"https://schema.org/VenueMap",about:{"@type":"City",name:t,...e&&{containedInPlace:{"@type":"Country",name:e}}}}}),dataVisualization:t=>({title:`${t} Data Visualization - Interactive Map`,description:`Visualize ${t} data on an interactive map with real-time updates and detailed analytics.`,keywords:[t.toLowerCase(),"data visualization","analytics","interactive map","statistics"],author:"React Simple Maps",ogTitle:`${t} Data Visualization`,ogDescription:`Visualize ${t} data on an interactive map with real-time updates and detailed analytics.`,twitterTitle:`${t} Data Visualization`,twitterDescription:`Visualize ${t} data on an interactive map with real-time updates and detailed analytics.`,jsonLd:{"@context":"https://schema.org","@type":"Dataset",name:`${t} Geographic Dataset`,description:`Geographic visualization of ${t} data`,distribution:{"@type":"DataDownload",encodingFormat:"application/json"}}})};O.displayName="MapWithMetadata";var Xt=et(O);class Kt{cache;maxSize;constructor(t){this.cache=new Map,this.maxSize=t}get(t){const e=this.cache.get(t);return void 0!==e&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;void 0!==t&&this.cache.delete(t)}this.cache.set(t,e)}clear(){this.cache.clear()}size(){return this.cache.size}}const Qt={features:new Kt(50),preparedFeatures:new Kt(30),meshData:new Kt(40)},te={geographyDataCache:new WeakMap,preparedFeaturesCache:new WeakMap},ee=3e5,re=new WeakMap;let oe=0;const ne=new Set;class ie extends ot{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,e){this.props.onError&&this.props.onError(t,e)}render(){return this.state.hasError&&this.state.error?this.props.fallback(this.state.error):this.props.children}}const ae=Z("text",{className:"rsm-loading-text",x:"50%",y:"50%",textAnchor:"middle",children:"Loading..."}),se=new Set(["geography","children","parseGeographies","className","errorBoundary","onGeographyError","fallback","ref"]);M.displayName="Geographies";var ce=et(M,function(t,e){if(t.geography!==e.geography)return!1;if(t.className!==e.className)return!1;if(t.errorBoundary!==e.errorBoundary)return!1;if(t.children!==e.children)return!1;if(t.parseGeographies!==e.parseGeographies)return!1;if(t.onGeographyError!==e.onGeographyError)return!1;if(t.fallback!==e.fallback)return!1;if(t.ref!==e.ref)return!1;const r=t,o=e,n=new Set([...Object.keys(r),...Object.keys(o)]);for(const t of n)if(!se.has(t)&&r[t]!==o[t])return!1;return!0});const le=new Set(["geography","onClick","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className","ref"]);k.displayName="Geography";var ue=et(k,function(t,e){if(t.geography!==e.geography)return!1;if(t.style!==e.style)return!1;if(t.className!==e.className)return!1;if(t.onClick!==e.onClick)return!1;if(t.onMouseEnter!==e.onMouseEnter)return!1;if(t.onMouseLeave!==e.onMouseLeave)return!1;if(t.onMouseDown!==e.onMouseDown)return!1;if(t.onMouseUp!==e.onMouseUp)return!1;if(t.onFocus!==e.onFocus)return!1;if(t.onBlur!==e.onBlur)return!1;if(t.ref!==e.ref)return!1;const r=t,o=e,n=new Set([...Object.keys(r),...Object.keys(o)]);for(const t of n)if(!le.has(t)&&r[t]!==o[t])return!1;return!0});_.displayName="Graticule";var fe=et(_);const pe=q(void 0),he={x:0,y:0,k:1,transformString:"translate(0 0) scale(1)"},de=({value:t=he,children:e})=>Z(pe,{value:t,children:e}),me=()=>{const t=K(pe);if(void 0===t)throw new Error("useZoomPanContext must be used within a ZoomPanProvider");return t},ge=(t,e)=>[t,e];V.displayName="ZoomableGroup",G.displayName="Sphere";var ye=et(G);F.displayName="Marker";var we=et(F);Y.displayName="Line",z.displayName="Annotation";export{z as Annotation,Jt as ComposableMap,ce as Geographies,ue as Geography,x as GeographyErrorBoundary,fe as Graticule,Y as Line,Gt as MapContext,Yt as MapProvider,Xt as MapWithMetadata,we as Marker,ye as Sphere,pe as ZoomPanContext,de as ZoomPanProvider,V as ZoomableGroup,Ot as createCoordinates,It as createGraticuleStep,bt as createLatitude,Et as createLongitude,xt as createPanConfig,Tt as createParallels,vt as createScaleExtent,At as createTranslateExtent,$t as createZoomConfig,Mt as createZoomPanConfig,C as getBestGeographyCoordinates,j as getGeographyBounds,S as getGeographyCentroid,L as getGeographyCoordinates,N as isValidCoordinates,I as useGeographies,zt as useMapContext,U as useZoomPan,me as useZoomPanContext}; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../src/utils/coordinate-utils.ts","../src/utils/error-utils.ts","../src/utils/input-validation.ts","../src/types.ts","../src/utils/geography-validation.ts","../src/utils/geography-processing.ts","../src/utils.ts","../src/utils/debugging.ts","../src/components/ComposableMap.tsx","../src/components/MapMetadata.tsx","../src/components/MapWithMetadata.tsx","../src/utils/geography-cache.ts","../src/components/useGeographies.tsx","../src/utils/preloading.ts","../src/components/GeographyErrorBoundary.tsx","../src/components/Geographies.tsx","../src/utils/geography-utils.ts","../src/components/Geography.tsx","../src/components/Graticule.tsx","../src/hooks/useZoomBehavior.ts","../src/hooks/useZoomPan.ts","../src/hooks/useDeferredPosition.ts","../src/hooks/usePanBehavior.ts","../src/components/ZoomableGroup.tsx","../src/components/Sphere.tsx","../src/components/Marker.tsx","../src/components/Line.tsx","../src/components/Annotation.tsx","../src/utils/subresource-integrity.ts","../src/utils/geography-fetching.ts","../src/components/MapProvider.tsx","../src/components/ZoomPanProvider.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["getCoords","w","h","t","xOffset","k","yOffset","lon","x","lat","y","createCoordinates","createGeographyFetchError","type","message","url","originalError","error","Error","name","timestamp","Date","toISOString","geography","cause","stack","details","originalMessage","originalName","sanitizeString","input","allowHTML","length","currentValidationConfig","maxStringLength","sanitized","replace","validateNumber","min","max","Infinity","Number","isFinite","validateArray","itemValidator","Array","isArray","maxArrayLength","map","item","index","validateObject","depth","maxObjectDepth","obj","validated","Object","create","key","value","entries","sanitizedKey","DANGEROUS_OBJECT_KEYS","has","validateProjectionConfig","config","hasOwn","undefined","center","validateCoordinates","rotate","rotateArray","scale","parallels","parallelsArray","createParallels","isProductionEnvironment","process","env","NODE_ENV","stripIPv6Brackets","hostname","startsWith","endsWith","slice","isPrivateIPAddress","normalised","ipv4PrivateRanges","range","test","ipv6PrivateRanges","ipv4MappedDottedMatch","match","ipv4MappedHexMatch","hi","parseInt","lo","shouldResolveHostnamesForSecurity","release","window","async","resolveHostnameAddresses","bareHostname","dnsModule","builtinModule","getBuiltinModule","lookup","specifier","importedModule","import","loadNodeDnsModule","all","verbatim","record","address","validateGeographyUrl","GEOGRAPHY_FETCH_CONFIG","validatedUrl","candidate","trim","URL","some","protocol","toLowerCase","includes","toString","TypeError","validateURL","parsedUrl","STRICT_HTTPS_ONLY","ALLOWED_PROTOCOLS","allowedProtocols","join","ALLOW_HTTP_LOCALHOST","httpHost","console","validateResolvedGeographyUrl","resolveAddresses","resolvedAddress","getMesh","geographies","topology","objectKeys","keys","objects","firstObjectKey","geometryObject","outline","mesh","a","b","borders","extractMeshFromTopology","createGeographyError","safeCaptureOwnerStack","React","captureOwnerStack","ComposableMap","width","height","projection","projectionConfig","EMPTY_PROJECTION_CONFIG","className","debug","children","ref","restProps","logRender","componentName","mapDebugger","MapDebugger","getInstance","useEffect","setDebugMode","useCallback","props","state","logError","trackPerformance","renderTime","useMapDebugger","_jsx","MapProvider","viewBox","MapMetadata","title","description","keywords","author","viewport","canonicalUrl","ogTitle","ogDescription","ogImage","ogUrl","twitterCard","twitterTitle","twitterDescription","twitterImage","jsonLd","_jsxs","_Fragment","content","rel","href","property","dangerouslySetInnerHTML","__html","data","JSON","stringify","as","crossOrigin","MapWithMetadata","metadata","enableSEO","enableOpenGraph","enableTwitterCards","enableJsonLd","preset","mapProps","processedMetadata","useMemo","presetData","mapMetadataPresets","resolvedPresetData","metadataComponent","_ref","composableMapProps","getObjectCacheToken","existingToken","objectCacheTokens","get","objectCacheTokenCounter","nextToken","set","String","hashString","hash","charCodeAt","Math","imul","generateCacheKey","additionalKey","baseKey","useGeographies","parseGeographies","path","useMapContext","loadedData","setLoadedData","useState","isLoading","setIsLoading","setError","retryCount","setRetryCount","refetch","c","ignore","devTools","immediate","preloadedUrls","prefetchDNS","origin","preconnect","add","preload","preloadGeography","fetchGeographiesCache","then","catch","err","rawFeatures","weakMapCached","geographyObject","cached","weakMapCaches","geographyDataCache","now","CACHE_CONFIG","features","getCachedGeographyData","cacheKey","generateFeaturesCacheKey","geographyCache","featureCollection","feature","extractFeaturesFromTopology","extractFeaturesFromCollection","getFeatures","cacheFeatures","cacheGeographyData","rawMesh","preparedGeographies","pathFunctionToken","preparedFeaturesCache","pathFunction","prepared","getCachedPreparedFeaturesWeakMap","preparedFeatures","svgPath","filter","prepareFeatures","cachePreparedFeatures","cachePreparedFeaturesWeakMap","preparedMeshData","meshData","result","outlinePath","bordersPath","prepareMesh","cacheMeshData","DefaultErrorFallback","_error","retry","role","textAnchor","dominantBaseline","fill","tabIndex","style","cursor","onClick","onKeyDown","e","preventDefault","GeographyErrorBoundary","fallback","onError","errorBoundaryKey","setErrorBoundaryKey","handleError","prev","errorFallback","MinimalErrorBoundary","Geographies","errorBoundary","onGeographyError","geographyData","renderChildren","LOADING_FALLBACK","errorBoundaryProps","getGeographyCentroid","geometry","centroid","geoCentroid","abs","getGeographyBounds","bounds","geoBounds","southwest","northeast","getGeographyCoordinatesInternal","coordinates","geometries","getGeographyCoordinates","getBestGeographyCoordinates","isValidCoordinates","coords","Geography","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","isPressed","setPressed","isHovered","setHovered","isFocused","setFocused","geographyEventData","handleClick","evt","handleMouseEnter","handleMouseLeave","handleFocus","handleBlur","handleMouseDown","handleMouseUp","currentState","currentStyle","d","Graticule","stroke","step","createGraticuleStep","graticule","geoGraticule","useZoomBehavior","mapRef","scaleExtent","translateExtent","filterZoomEvent","onZoom","onZoomStart","onZoomEnd","onMove","bypassEvents","zoomRef","useRef","minZoom","maxZoom","a1","a2","b1","b2","handleZoom","d3Event","current","transform","sourceEvent","inverted","invert","zoom","svg","d3Select","zoomBehavior","d3Zoom","ctrlKey","button","on","call","useZoomPan","onMoveStart","onMoveEnd","createTranslateExtent","createScaleExtent","deferredCenter","useDeferredValue","deferredZoom","smoothPosition","setPosition","setOptimisticPosition","isPending","startTransition","transformString","initialPosition","transitionPriority","deferredUpdateThreshold","useTransition","updateCount","setUpdateCount","lastUpdateTime","setLastUpdateTime","position","optimisticPosition","isDeferred","activePosition","dragging","enhancedSetPosition","newPosition","performance","timeSinceLastUpdate","useDeferredPosition","zoomBehaviorProps","onPositionChange","lastPosition","programmaticMove","newCenter","newZoom","d3ZoomIdentity","translate","usePanBehavior","ZoomableGroup","enableZoom","enablePan","finalTranslateExtent","finalMinZoom","finalMaxZoom","isSimpleProps","complexProps","finalScaleExtent","ZoomPanProvider","Sphere","id","strokeWidth","spherePath","Fragment","pointerEvents","Marker","projectedCoords","Line","from","to","Annotation","subject","connectorProps","dx","dy","curve","connectorPath","start","end","line","createConnectorPath","createLongitude","createLatitude","topLeft","bottomRight","p1","p2","createZoomConfig","createPanConfig","createZoomPanConfig","DEFAULT_VALIDATION_CONFIG","strictMode","allowUnsafeContent","nextConfig","freeze","createValidationConfig","Set","DEFAULT_GEOGRAPHY_FETCH_CONFIG","TIMEOUT_MS","MAX_RESPONSE_SIZE","ALLOWED_CONTENT_TYPES","KNOWN_GEOGRAPHY_SRI","algorithm","enforceIntegrity","DEFAULT_SRI_CONFIG","enforceForKnownSources","enforceForAllSources","allowUnknownSources","customSRIMap","currentSRIConfig","cache","securityConfig","sriEnforcementConfig","sriConfig","canonical","parsed","port","pathname","canonicalizeUrlForSRI","getSRIForUrl","controller","cleanup","timeoutMs","AbortController","timeoutId","setTimeout","abort","clearTimeout","createTimeoutController","response","options","currentUrl","hop","fetch","status","arrayBuffer","location","headers","redirectUrl","fetchWithRedirectValidation","signal","Accept","mode","credentials","redirect","ok","statusText","contentType","mimeType","split","validateContentType","contentLength","size","validateResponseSize","maxBytes","reader","body","getReader","buffer","byteLength","chunks","totalBytes","done","read","cancel","push","Uint8Array","offset","chunk","readResponseWithSizeLimit","expectedSRI","calculatedHash","hashBuffer","globalThis","crypto","subtle","digest","hashArray","hashBase64","btoa","fromCharCode","chars","i","bitmap","charAt","calculateHash","sha256","sha384","sha512","expectedHash","sriError","validateSRIFromArrayBuffer","text","TextDecoder","decode","parse","validateGeographyData","jsonError","SyntaxError","parseGeographyFromArrayBuffer","handleFetchError","geoPath","projections","d3Geo","MapContext","createContext","projMemo","trimmedProjection","validatedConfig","projectionName","availableProjections","proj","makeProjection","context","useContext","static","debugLogs","performanceMetrics","Map","isEnabled","this","getDebugMode","envDebug","REACT_SIMPLE_MAPS_DEBUG","enabled","instance","debugInfo","ownerStack","sanitizeProps","sanitizeState","shift","existing","componentCount","getLogsForComponent","log","getAllLogs","getPerformanceMetrics","clear","setEnabled","exportDebugData","logs","fromEntries","constructor","__MAP_DEBUGGER__","displayName","ComposableMap$1","memo","worldMap","mapType","countryMap","countryName","about","cityMap","cityName","containedInPlace","dataVisualization","dataType","distribution","encodingFormat","MapWithMetadata_default","LRUCache","maxSize","delete","firstKey","next","WeakMap","Component","super","hasError","getDerivedStateFromError","componentDidCatch","errorInfo","render","GEOGRAPHIES_KNOWN_PROP_KEYS","Geographies_default","prevRec","nextRec","restKeys","GEOGRAPHY_KNOWN_PROP_KEYS","Geography_default","Graticule_default","ZoomPanContext","defaultValue","useZoomPanContext","Sphere_default","Marker_default"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../src/utils/coordinate-utils.ts","../src/utils/error-utils.ts","../src/utils/input-validation.ts","../src/types.ts","../src/utils/geography-validation.ts","../src/utils/geography-processing.ts","../src/utils.ts","../src/utils/debugging.ts","../src/components/ComposableMap.tsx","../src/components/MapMetadata.tsx","../src/components/MapWithMetadata.tsx","../src/utils/geography-cache.ts","../src/components/useGeographies.tsx","../src/utils/preloading.ts","../src/components/GeographyErrorBoundary.tsx","../src/components/Geographies.tsx","../src/utils/geography-utils.ts","../src/components/Geography.tsx","../src/components/Graticule.tsx","../src/hooks/useZoomBehavior.ts","../src/hooks/useZoomPan.ts","../src/hooks/useDeferredPosition.ts","../src/hooks/usePanBehavior.ts","../src/components/ZoomableGroup.tsx","../src/components/Sphere.tsx","../src/components/Marker.tsx","../src/components/Line.tsx","../src/components/Annotation.tsx","../src/utils/subresource-integrity.ts","../src/utils/geography-fetching.ts","../src/components/MapProvider.tsx","../src/components/ZoomPanProvider.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["getCoords","w","h","t","xOffset","k","yOffset","lon","x","lat","y","createCoordinates","createGeographyFetchError","type","message","url","originalError","error","Error","name","timestamp","Date","toISOString","geography","cause","stack","details","originalMessage","originalName","sanitizeString","input","allowHTML","length","currentValidationConfig","maxStringLength","sanitized","replace","validateNumber","min","max","Infinity","Number","isFinite","validateArray","itemValidator","Array","isArray","maxArrayLength","map","item","index","validateObject","depth","maxObjectDepth","obj","validated","Object","create","key","value","entries","sanitizedKey","DANGEROUS_OBJECT_KEYS","has","validateProjectionConfig","config","hasOwn","undefined","center","validateCoordinates","rotate","rotateArray","scale","parallels","parallelsArray","createParallels","isProductionEnvironment","process","env","NODE_ENV","stripIPv6Brackets","hostname","startsWith","endsWith","slice","isPrivateIPAddress","normalised","ipv4PrivateRanges","range","test","ipv6PrivateRanges","ipv4MappedDottedMatch","match","ipv4MappedHexMatch","hi","parseInt","lo","shouldResolveHostnamesForSecurity","release","window","async","resolveHostnameAddresses","bareHostname","dnsModule","builtinModule","getBuiltinModule","lookup","specifier","importedModule","import","loadNodeDnsModule","all","verbatim","record","address","validateGeographyUrl","GEOGRAPHY_FETCH_CONFIG","validatedUrl","candidate","trim","URL","some","protocol","toLowerCase","includes","toString","TypeError","validateURL","parsedUrl","STRICT_HTTPS_ONLY","ALLOWED_PROTOCOLS","allowedProtocols","join","ALLOW_HTTP_LOCALHOST","httpHost","console","validateResolvedGeographyUrl","resolveAddresses","resolvedAddress","getMesh","geographies","topology","objectKeys","keys","objects","firstObjectKey","geometryObject","outline","mesh","a","b","borders","extractMeshFromTopology","getExplicitFeatureKey","feature","existingKey","rsmKey","String","id","isKeyUnavailable","unavailableKeySets","unavailableKeys","getUniqueRsmKey","baseKey","suffix","fallbackKey","createGeographyError","safeCaptureOwnerStack","React","captureOwnerStack","ComposableMap","width","height","projection","projectionConfig","EMPTY_PROJECTION_CONFIG","className","debug","children","ref","restProps","logRender","componentName","mapDebugger","MapDebugger","getInstance","useEffect","setDebugMode","useCallback","props","state","logError","trackPerformance","renderTime","useMapDebugger","_jsx","MapProvider","viewBox","MapMetadata","title","description","keywords","author","viewport","canonicalUrl","ogTitle","ogDescription","ogImage","ogUrl","twitterCard","twitterTitle","twitterDescription","twitterImage","jsonLd","_jsxs","_Fragment","content","rel","href","property","dangerouslySetInnerHTML","__html","data","JSON","stringify","as","crossOrigin","MapWithMetadata","metadata","enableSEO","enableOpenGraph","enableTwitterCards","enableJsonLd","preset","mapProps","processedMetadata","useMemo","presetData","mapMetadataPresets","resolvedPresetData","metadataComponent","_ref","composableMapProps","getObjectCacheToken","existingToken","objectCacheTokens","get","objectCacheTokenCounter","nextToken","set","hashString","hash","charCodeAt","Math","imul","generateCacheKey","additionalKey","useGeographies","parseGeographies","path","useMapContext","loadedData","setLoadedData","useState","isLoading","setIsLoading","setError","retryCount","setRetryCount","refetch","c","ignore","devTools","immediate","preloadedUrls","prefetchDNS","origin","preconnect","add","preload","preloadGeography","fetchGeographiesCache","then","catch","err","rawFeatures","weakMapCached","geographyObject","cached","weakMapCaches","geographyDataCache","now","CACHE_CONFIG","features","getCachedGeographyData","cacheKey","generateFeaturesCacheKey","geographyCache","featureCollection","extractFeaturesFromTopology","extractFeaturesFromCollection","getFeatures","cacheFeatures","cacheGeographyData","rawMesh","preparedGeographies","pathFunctionToken","preparedFeaturesCache","pathFunction","prepared","getCachedPreparedFeaturesWeakMap","preparedFeatures","preparedCandidates","svgPath","explicitKey","filter","reservedExplicitKeys","Set","usedKeys","getUniqueExplicitRsmKey","getUniqueFallbackRsmKey","prepareFeatures","cachePreparedFeatures","cachePreparedFeaturesWeakMap","preparedMeshData","meshData","result","outlinePath","bordersPath","prepareMesh","cacheMeshData","DefaultErrorFallback","_error","retry","role","textAnchor","dominantBaseline","fill","tabIndex","style","cursor","onClick","onKeyDown","e","preventDefault","GeographyErrorBoundary","fallback","onError","errorBoundaryKey","setErrorBoundaryKey","handleError","prev","errorFallback","MinimalErrorBoundary","Geographies","errorBoundary","onGeographyError","geographyData","renderChildren","LOADING_FALLBACK","errorBoundaryProps","getGeographyCentroid","geometry","centroid","geoCentroid","abs","getGeographyBounds","bounds","geoBounds","southwest","northeast","getGeographyCoordinatesInternal","coordinates","geometries","getGeographyCoordinates","getBestGeographyCoordinates","isValidCoordinates","coords","Geography","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","isPressed","setPressed","isHovered","setHovered","isFocused","setFocused","geographyEventData","handleClick","evt","handleMouseEnter","handleMouseLeave","handleFocus","handleBlur","handleMouseDown","handleMouseUp","currentState","currentStyle","d","Graticule","stroke","step","createGraticuleStep","graticule","geoGraticule","useZoomBehavior","mapRef","scaleExtent","translateExtent","filterZoomEvent","onZoom","onZoomStart","onZoomEnd","onMove","bypassEvents","zoomRef","useRef","minZoom","maxZoom","a1","a2","b1","b2","handleZoom","d3Event","current","transform","sourceEvent","inverted","invert","zoom","svg","d3Select","zoomBehavior","d3Zoom","ctrlKey","button","on","call","useZoomPan","onMoveStart","onMoveEnd","createTranslateExtent","createScaleExtent","deferredCenter","useDeferredValue","deferredZoom","smoothPosition","setPosition","setOptimisticPosition","isPending","startTransition","transformString","initialPosition","transitionPriority","deferredUpdateThreshold","useTransition","updateCount","setUpdateCount","lastUpdateTime","setLastUpdateTime","position","optimisticPosition","isDeferred","activePosition","dragging","enhancedSetPosition","newPosition","performance","timeSinceLastUpdate","useDeferredPosition","zoomBehaviorProps","onPositionChange","lastPosition","programmaticMove","newCenter","newZoom","d3ZoomIdentity","translate","usePanBehavior","ZoomableGroup","enableZoom","enablePan","finalTranslateExtent","finalMinZoom","finalMaxZoom","isSimpleProps","complexProps","finalScaleExtent","ZoomPanProvider","Sphere","strokeWidth","spherePath","Fragment","pointerEvents","Marker","projectedCoords","Line","from","to","Annotation","subject","connectorProps","dx","dy","curve","connectorPath","start","end","line","createConnectorPath","createLongitude","createLatitude","topLeft","bottomRight","p1","p2","createZoomConfig","createPanConfig","createZoomPanConfig","DEFAULT_VALIDATION_CONFIG","strictMode","allowUnsafeContent","nextConfig","freeze","createValidationConfig","DEFAULT_GEOGRAPHY_FETCH_CONFIG","TIMEOUT_MS","MAX_RESPONSE_SIZE","ALLOWED_CONTENT_TYPES","KNOWN_GEOGRAPHY_SRI","algorithm","enforceIntegrity","DEFAULT_SRI_CONFIG","enforceForKnownSources","enforceForAllSources","allowUnknownSources","customSRIMap","currentSRIConfig","cache","securityConfig","sriEnforcementConfig","sriConfig","canonical","parsed","port","pathname","canonicalizeUrlForSRI","getSRIForUrl","controller","cleanup","timeoutMs","AbortController","timeoutId","setTimeout","abort","clearTimeout","createTimeoutController","response","options","currentUrl","hop","fetch","status","arrayBuffer","location","headers","redirectUrl","fetchWithRedirectValidation","signal","Accept","mode","credentials","redirect","ok","statusText","contentType","mimeType","split","validateContentType","contentLength","size","validateResponseSize","maxBytes","reader","body","getReader","buffer","byteLength","chunks","totalBytes","done","read","cancel","push","Uint8Array","offset","chunk","readResponseWithSizeLimit","expectedSRI","calculatedHash","hashBuffer","globalThis","crypto","subtle","digest","hashArray","hashBase64","btoa","fromCharCode","chars","i","bitmap","charAt","calculateHash","sha256","sha384","sha512","expectedHash","sriError","validateSRIFromArrayBuffer","text","TextDecoder","decode","parse","validateGeographyData","jsonError","SyntaxError","parseGeographyFromArrayBuffer","handleFetchError","geoPath","projections","d3Geo","MapContext","createContext","projMemo","trimmedProjection","validatedConfig","projectionName","availableProjections","proj","makeProjection","context","useContext","static","debugLogs","performanceMetrics","Map","isEnabled","this","getDebugMode","envDebug","REACT_SIMPLE_MAPS_DEBUG","enabled","instance","debugInfo","ownerStack","sanitizeProps","sanitizeState","shift","existing","componentCount","getLogsForComponent","log","getAllLogs","getPerformanceMetrics","clear","setEnabled","exportDebugData","logs","fromEntries","constructor","__MAP_DEBUGGER__","displayName","ComposableMap$1","memo","worldMap","mapType","countryMap","countryName","about","cityMap","cityName","containedInPlace","dataVisualization","dataType","distribution","encodingFormat","MapWithMetadata_default","LRUCache","maxSize","delete","firstKey","next","WeakMap","Component","super","hasError","getDerivedStateFromError","componentDidCatch","errorInfo","render","GEOGRAPHIES_KNOWN_PROP_KEYS","Geographies_default","prevRec","nextRec","restKeys","GEOGRAPHY_KNOWN_PROP_KEYS","Geography_default","Graticule_default","ZoomPanContext","defaultValue","useZoomPanContext","Sphere_default","Marker_default"],"mappings":"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"} |
+1
-1
@@ -1,2 +0,2 @@ | ||
| function t(t,o,n){const r=(t*n.k-t)/2,e=(o*n.k-o)/2;return c=t/2-(r+n.x)/n.k,i=o/2-(e+n.y)/n.k,[c,i];var c,i}function o(t,o,n,r){const e=new Error(o);return e.name="GeographyError",e.type=t,e.timestamp=(new Date).toISOString(),n&&(e.geography=n),r&&(e.cause=r,r.stack&&(e.stack=r.stack),e.details={originalMessage:r.message,originalName:r.name}),e}function n(){return"undefined"!=typeof process&&"production"===process.env.NODE_ENV}function r(t,o=pt){const r={...Rt,...o,...t,ALLOWED_CONTENT_TYPES:[...t.ALLOWED_CONTENT_TYPES??o.ALLOWED_CONTENT_TYPES],ALLOWED_PROTOCOLS:[...t.ALLOWED_PROTOCOLS??o.ALLOWED_PROTOCOLS]};return n()&&(r.STRICT_HTTPS_ONLY=!0,r.ALLOW_HTTP_LOCALHOST=!1,r.ALLOWED_PROTOCOLS=[...Rt.ALLOWED_PROTOCOLS]),Object.freeze({...r,ALLOWED_CONTENT_TYPES:Object.freeze([...r.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...r.ALLOWED_PROTOCOLS])})}function e(t){pt=r(t,pt)}function c(){return pt}function i(t=!0){if(n())return void 0,void 0;pt=r({ALLOWED_PROTOCOLS:ht.ALLOWED_PROTOCOLS,STRICT_HTTPS_ONLY:ht.STRICT_HTTPS_ONLY,ALLOW_HTTP_LOCALHOST:t},pt)}function s(t){return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function a(t){if(!t||"localhost"===t)return!1;const o=s(t),n=[/^10\./,/^172\.(1[6-9]|2[0-9]|3[01])\./,/^192\.168\./,/^127\./,/^169\.254\./,/^0\./,/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./,/^192\.0\.0\./,/^192\.0\.2\./,/^198\.51\.100\./,/^203\.0\.113\./,/^198\.1[89]\./,/^233\.252\.0\./];for(const t of n)if(t.test(o))return!0;const r=[/^::1$/i,/^fe[89ab][0-9a-f]:/i,/^f[cd][0-9a-f]{2}:/i,/^::$/i,/^ff[0-9a-f]{2}:/i,/^100::/i,/^2001:db8:/i,/^2001:(?:0{1,4}:|:)/i];for(const t of r)if(t.test(o))return!0;const e=o.match(/^::ffff:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/i);if(e?.[1])return a(e[1]);const c=o.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(c?.[1]&&c[2]){const t=parseInt(c[1],16),o=parseInt(c[2],16);return a(`${t>>8&255}.${255&t}.${o>>8&255}.${255&o}`)}return!1}function u(){return"undefined"!=typeof process&&"node"===process.release?.name&&"undefined"==typeof window}async function f(t){if(!u())return[];const n=s(t);if(!n)return[];const r=await async function(){if("undefined"!=typeof process){const t="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns/promises"):null;if(t?.lookup)return t}try{const t="node:dns/promises",o=await import(t);return o.lookup?o:null}catch{return null}}();if(!r?.lookup)throw o("SECURITY_ERROR",`Unable to resolve hostname ${n} for security validation`,n);try{return(await r.lookup(n,{all:!0,verbatim:!0})).map(t=>t.address)}catch(t){throw o("SECURITY_ERROR",`Unable to resolve hostname ${n} for security validation`,n,t instanceof Error?t:void 0)}}function l(t,r=pt){const e=function(t){if("string"!=typeof t)throw o("VALIDATION_ERROR","Expected string, got "+typeof t);const n=t.trim();if(!n)throw o("VALIDATION_ERROR","URL must be a non-empty string");if(n.length>lt.maxStringLength)throw o("VALIDATION_ERROR",`String too long: ${n.length} characters (max: ${lt.maxStringLength})`);if(/[\x00-\x1F\x7F]/.test(n))throw o("VALIDATION_ERROR","URL contains invalid control characters");try{const t=new URL(n);if(["javascript:","data:","vbscript:","file:"].some(o=>t.protocol.toLowerCase().startsWith(o)))throw o("SECURITY_ERROR",`Dangerous protocol detected: ${t.protocol}`);if(t.hostname.includes("..")||t.hostname.includes("%"))throw o("SECURITY_ERROR",`Invalid hostname: ${t.hostname}`);return t.toString()}catch(t){if(t instanceof TypeError)throw o("VALIDATION_ERROR",`Invalid URL format: ${n}`);throw t}}(t);try{const c=new URL(e);if(r.STRICT_HTTPS_ONLY){if("https:"!==c.protocol)throw o("SECURITY_ERROR",`Strict HTTPS-only mode: ${c.protocol} is not allowed. Only HTTPS is permitted.`,t)}else{if(!r.ALLOWED_PROTOCOLS.includes(c.protocol)){const n=r.ALLOWED_PROTOCOLS.join(", ");throw o("SECURITY_ERROR",`Unsupported protocol: ${c.protocol}. Only ${n} are allowed.`,t)}if("http:"===c.protocol){if(!r.ALLOW_HTTP_LOCALHOST)throw o("SECURITY_ERROR","HTTP protocol is disabled for security. Use HTTPS or enable development mode explicitly.",t);const e=s(c.hostname);if("localhost"!==e&&"127.0.0.1"!==e&&"::1"!==e)throw o("SECURITY_ERROR","HTTP protocol is only allowed for localhost. Use HTTPS for remote URLs.",t);if(n())throw o("SECURITY_ERROR","HTTP localhost access is not allowed in production",t);void 0}}const i=s(c.hostname);if(("localhost"===i||"127.0.0.1"===i||"::1"===i)&&n())throw o("SECURITY_ERROR","Localhost access is not allowed in production",t);if(a(c.hostname))throw o("SECURITY_ERROR",`Access to private IP address ${c.hostname} is not allowed`,t)}catch(n){if(n instanceof TypeError)throw o("VALIDATION_ERROR",`Invalid URL format: ${t}`,t,n);throw n}}async function R(t,n=pt,r=f){if(l(t,n),r===f&&!u())return;const{hostname:e}=new URL(t),c=s(e);if(c&&"localhost"!==c&&!a(e)&&(await r(c)).some(t=>a(t)))throw o("SECURITY_ERROR",`Hostname ${c} resolves to a private IP address, which is not allowed`,t)}function h(t,n=pt){const r=t.headers.get("content-type");if(!r)throw o("VALIDATION_ERROR","Missing Content-Type header");const e=r.split(";",1)[0]?.trim().toLowerCase()??"";if(!n.ALLOWED_CONTENT_TYPES.includes(e))throw o("VALIDATION_ERROR",`Invalid content type: ${r}. Expected one of: ${n.ALLOWED_CONTENT_TYPES.join(", ")}`)}async function p(t,n=pt){const r=t.headers.get("content-length");if(r){const t=parseInt(r,10);if(t>n.MAX_RESPONSE_SIZE)throw o("VALIDATION_ERROR",`Response too large: ${t} bytes. Maximum allowed: ${n.MAX_RESPONSE_SIZE} bytes`)}}async function O(t,n=pt.MAX_RESPONSE_SIZE){const r=t.body?.getReader();if(!r){const r=await t.arrayBuffer();if(r.byteLength>n)throw o("VALIDATION_ERROR",`Response too large: ${r.byteLength} bytes exceeds limit of ${n} bytes`);return r}const e=[];let c=0;for(;;){const{done:t,value:i}=await r.read();if(t)break;if(c+=i.byteLength,c>n)throw r.cancel().catch(()=>{}),o("VALIDATION_ERROR",`Response too large: exceeded limit of ${n} bytes`);e.push(i)}const i=new Uint8Array(c);let s=0;for(const t of e)i.set(t,s),s+=t.byteLength;return i.buffer}function d(t){if(!t||"object"!=typeof t)throw o("VALIDATION_ERROR","Invalid geography data: not a valid object");const n=t;if(!n.type||"Topology"!==n.type&&"FeatureCollection"!==n.type)throw o("VALIDATION_ERROR",`Invalid geography data: expected Topology or FeatureCollection, got ${n.type}`);if("Topology"===n.type&&("object"!=typeof n.objects||null===n.objects||Array.isArray(n.objects)))throw o("VALIDATION_ERROR","Invalid topology data: expected a non-null objects map");if("FeatureCollection"===n.type&&!Array.isArray(n.features))throw o("VALIDATION_ERROR","Invalid feature collection data: expected a features array")}function T(){return"undefined"!=typeof process&&"production"===process?.env?.NODE_ENV}function y(t,o=Tt){const n={...dt,...o,...t,customSRIMap:{...dt.customSRIMap,...o.customSRIMap,...t.customSRIMap}};return T()&&(n.enforceForKnownSources=!0),Object.freeze({...n,customSRIMap:Object.freeze({...n.customSRIMap})})}function E(t){Tt=y(t,Tt)}function w(){Tt=y({enforceForKnownSources:!0,enforceForAllSources:!0,allowUnknownSources:!1})}function A(){if(T())return void 0,void 0;Tt=y({...Tt,enforceForKnownSources:!1,enforceForAllSources:!1,allowUnknownSources:!0})}async function g(t,o){const n=await globalThis.crypto.subtle.digest(o,t),r=new Uint8Array(n);let e;if(void 0!==globalThis.btoa)e=globalThis.btoa(String.fromCharCode(...r));else{const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let o="",n=0;for(;n<r.length;){const e=(r[n++]||0)<<16|(n<r.length&&r[n++]||0)<<8|(n<r.length&&r[n++]||0);o+=t.charAt(e>>18&63),o+=t.charAt(e>>12&63),o+=n-2<r.length?t.charAt(e>>6&63):"=",o+=n-1<r.length?t.charAt(63&e):"="}e=o}return e}async function I(t,o,n){const r=t.clone(),e=await r.arrayBuffer();return await m(e,o,n),t}async function m(t,n,r){const e=await g(t,{sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"}[r.algorithm]),c=r.hash.replace(`${r.algorithm}-`,"");if(e!==c){const t=new Error(`Subresource Integrity check failed for ${n}. Expected ${r.algorithm}-${c}, got ${r.algorithm}-${e}`);throw t.expectedHash=r.hash,t.calculatedHash=`${r.algorithm}-${e}`,t.algorithm=r.algorithm,o("SECURITY_ERROR",t.message,n,t)}}function _(t){try{const o=new URL(t);return o.hash="",("https:"===o.protocol&&"443"===o.port||"http:"===o.protocol&&"80"===o.port)&&(o.port=""),o.pathname=o.pathname.replace(/\/+$/,"")||"/",o.href}catch{return t}}function S(t,n=Tt){const r=_(t);if(n.customSRIMap[r])return n.customSRIMap[r];if(n.customSRIMap[t])return n.customSRIMap[t];if(Ot[r]&&n.enforceForKnownSources)return Ot[r];if(Ot[t]&&n.enforceForKnownSources)return Ot[t];if(n.enforceForAllSources&&!n.allowUnknownSources)throw o("SECURITY_ERROR",`SRI enforcement is enabled but no integrity hash is available for ${t}`,t);return null}function L(t,o){const n=_(t);Tt=y({...Tt,customSRIMap:{...Tt.customSRIMap,[n]:o,...n!==t?{[t]:o}:{}}})}async function b(t,n="sha384"){const r=c();l(t,r),await R(t,r);const e=new AbortController,i=setTimeout(()=>{e.abort()},r.TIMEOUT_MS);try{const o=await fetch(t,{signal:e.signal});if(!o.ok)throw new Error(`Failed to fetch ${t}: ${o.statusText}`);const c=await O(o,r.MAX_RESPONSE_SIZE),i={sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"};return`${n}-${await g(c,i[n])}`}catch(n){throw o("GEOGRAPHY_LOAD_ERROR",`Failed to generate SRI hash for ${t}: ${n instanceof Error?n.message:"Unknown error"}`,t,n instanceof Error?n:new Error(String(n)))}finally{clearTimeout(i)}}async function C(t,o="sha384"){const n={};for(const r of t)try{const t=await b(r,o);n[r]={algorithm:o,hash:t,enforceIntegrity:!0}}catch(t){void 0}return n}async function P(t){"undefined"!=typeof process&&"production"!==process?.env?.NODE_ENV,0;try{return await yt(t)}catch(t){return"undefined"!=typeof process&&"production"!==process?.env?.NODE_ENV,0,void 0}}function U(t){Promise.resolve().then(function(){return wt}).then(({preloadGeography:o})=>{o(t,!0)}).catch(()=>{}),yt(t).catch(()=>{})}function D(t){return"string"==typeof t}function N(t,o){return Array.isArray(t)?o?o(t):t:"Topology"===t.type?function(t,o){const n=Object.keys(t.objects);if(0===n.length)return[];const r=n[0];if(!r)return[];const e=t.objects[r];if(!e)return[];const c=et(t,e),i="features"in c&&c.features||[];return o?o(i):i}(t,o):"FeatureCollection"===t.type?function(t,o){const n=t.features||[];return o?o(n):n}(t,o):[]}function $(t){return t&&"object"==typeof t&&!Array.isArray(t)&&"type"in t&&"Topology"===t.type?function(t){const o=Object.keys(t.objects);if(0===o.length)return null;const n=o[0];if(!n)return null;const r=t.objects[n];if(!r)return null;try{return{outline:ct(t,r,(t,o)=>t===o),borders:ct(t,r,(t,o)=>t!==o)}}catch{return null}}(t):null}function v(t,o,n){const r={};if(t){const o=n(t);o&&(r.outline=o)}if(o){const t=n(o);t&&(r.borders=t)}return r}function Y(t,o){return t&&0!==t.length?t.map(t=>{const n=o(t);return n?{...t,svgPath:n}:null}).filter(t=>null!==t):[]}function j(t,o,n){if("function"!=typeof n)return"";try{return n().x(t=>t[0]).y(t=>t[1])([t,o])||""}catch{return""}}function G(t){if("object"!=typeof t||null===t)return!1;const o=t;return"Topology"===o.type&&"object"==typeof o.objects&&null!==o.objects&&Array.isArray(o.arcs)}function H(t){if("object"!=typeof t||null===t)return!1;const o=t;return"FeatureCollection"===o.type&&Array.isArray(o.features)}function V(t){if("object"!=typeof t||null===t)return!1;const o=t;return"Feature"===o.type&&"geometry"in o&&"properties"in o}function x(t){return"object"==typeof t&&null!==t&&("type"in t&&["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"].includes(t.type))}function F(t){return"number"==typeof t&&t>=-180&&t<=180}function k(t){return"number"==typeof t&&t>=-90&&t<=90}function M(t){return Array.isArray(t)&&2===t.length&&F(t[0])&&k(t[1])}function W(t){return"function"==typeof t&&"invert"in t&&"function"==typeof t.invert}function X(t){return"string"==typeof t&&t.startsWith("geo")&&t.length>3}function B(t){if(!(t instanceof Error))return!1;const o=t;return"type"in o&&"string"==typeof o.type&&["GEOGRAPHY_LOAD_ERROR","GEOGRAPHY_PARSE_ERROR","PROJECTION_ERROR","VALIDATION_ERROR","SECURITY_ERROR","CONFIGURATION_ERROR","CONTEXT_ERROR"].includes(o.type)}function J(t){if("string"!=typeof t)return!1;try{const o=new URL(t);return"https:"===o.protocol||"http:"===o.protocol&&"localhost"===o.hostname}catch{return!1}}function q(t){return G(t)||H(t)}function Z(t,o){return"number"==typeof t&&"number"==typeof o&&t>0&&o>0&&Number.isFinite(t)&&Number.isFinite(o)}function K(t){return o=>t(o)}function z(t,o,n,r){const e=new Error(o);return e.type=t,n&&(e.geography=n),r&&(e.details=r),e}function Q(t,o,n){return z("VALIDATION_ERROR",t,o,n)}function tt(t,o,n){return z("SECURITY_ERROR",t,o,n)}function ot(t,o,n){return z("PROJECTION_ERROR",t,o,n)}function nt(t,o,n){return z("CONFIGURATION_ERROR",t,o,n)}function rt(t,o,n){return z("CONTEXT_ERROR",t,o,n)}import{feature as et,mesh as ct}from"topojson-client";import{cache as it}from"react";import{prefetchDNS as st,preconnect as at,preload as ut}from"react-dom";const ft={strictMode:!0,allowUnsafeContent:!1,maxStringLength:1e4,maxArrayLength:1e3,maxObjectDepth:10};let lt=function(){const t={...ft};return"undefined"!=typeof process&&"production"===process?.env?.NODE_ENV&&t.allowUnsafeContent&&(t.allowUnsafeContent=!1),Object.freeze(t)}();const Rt={TIMEOUT_MS:1e4,MAX_RESPONSE_SIZE:52428800,ALLOWED_CONTENT_TYPES:["application/json","application/geo+json"],ALLOWED_PROTOCOLS:["https:"],ALLOW_HTTP_LOCALHOST:!1,STRICT_HTTPS_ONLY:!0},ht={...Rt,ALLOWED_PROTOCOLS:["https:","http:"],ALLOW_HTTP_LOCALHOST:!0,STRICT_HTTPS_ONLY:!1};let pt=Object.freeze({...Rt,ALLOWED_CONTENT_TYPES:Object.freeze([...Rt.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...Rt.ALLOWED_PROTOCOLS])});const Ot={"https://unpkg.com/world-atlas@2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0}},dt={enforceForKnownSources:!0,enforceForAllSources:!1,allowUnknownSources:!0,customSRIMap:{}};let Tt=Object.freeze({...dt,customSRIMap:Object.freeze({...dt.customSRIMap})});const yt=it(async t=>{const n=c(),r=Tt;l(t,n),await R(t,n);const e=S(t,r),{controller:i,cleanup:s}=function(t){const o=new AbortController,n=setTimeout(()=>{o.abort()},t);return{controller:o,cleanup:()=>clearTimeout(n)}}(n.TIMEOUT_MS);try{const r=await async function(t,n,r){let e=t;for(let t=0;t<5;t++){const t=await fetch(e,n);if(t.status<300||t.status>=400)return t;try{await t.arrayBuffer()}catch{}const c=t.headers.get("location");if(!c)throw o("SECURITY_ERROR",`Redirect response (HTTP ${t.status}) missing Location header`,e);const i=new URL(c,e).href;l(i,r),await R(i,r),e=i}throw o("SECURITY_ERROR","Too many redirects (exceeded 5 hops)",t)}(t,(a=i.signal,u=n,{signal:a,headers:{Accept:u.ALLOWED_CONTENT_TYPES.join(", "),"Cache-Control":"public, max-age=3600"},mode:"cors",credentials:"omit",redirect:"manual"}),n);if(s(),!r.ok)throw o("GEOGRAPHY_LOAD_ERROR",`HTTP ${r.status}: ${r.statusText}`,t);h(r,n),await p(r,n);const c=await O(r,n.MAX_RESPONSE_SIZE);return e&&await m(c,t,e),await async function(t,n){try{const o=(new TextDecoder).decode(t),n=JSON.parse(o);return d(n),n}catch(t){if(t instanceof SyntaxError)throw o("GEOGRAPHY_PARSE_ERROR","Invalid JSON format in geography data",n,t);throw t}}(c,t)}catch(r){throw s(),function(t,n,r){if(t instanceof Error){if("AbortError"===t.name)return o("GEOGRAPHY_LOAD_ERROR",`Request timeout after ${r.TIMEOUT_MS}ms`,n,t);if("TypeError"===t.name&&t.message.includes("fetch"))return o("GEOGRAPHY_LOAD_ERROR",`Network error: Unable to fetch geography from ${n}`,n,t);if(t.message.includes("Invalid geography data"))return o("GEOGRAPHY_PARSE_ERROR",t.message,n,t)}return t instanceof Error&&"type"in t?t:o("GEOGRAPHY_LOAD_ERROR",t instanceof Error?t.message:"Unknown error occurred",n,t instanceof Error?t:void 0)}(r,t,n)}var a,u}),Et=new Set;var wt=Object.freeze({__proto__:null,preloadGeography:function(t,o=!1){if("string"==typeof t&&t&&!Et.has(t))try{l(t);const n=new URL(t);st(n.origin),at(n.origin),Et.add(t),(o||"undefined"!=typeof process&&"production"===process.env.NODE_ENV)&&ut(t,{as:"fetch",crossOrigin:"anonymous"})}catch(t){"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(t instanceof Error?t.message:String(t))}}});export{Rt as DEFAULT_GEOGRAPHY_FETCH_CONFIG,dt as DEFAULT_SRI_CONFIG,ht as DEVELOPMENT_GEOGRAPHY_FETCH_CONFIG,Ot as KNOWN_GEOGRAPHY_SRI,L as addCustomSRI,e as configureGeographySecurity,E as configureSRI,nt as createConfigurationError,j as createConnectorPath,rt as createContextError,z as createGeographyError,o as createGeographyFetchError,ot as createProjectionError,tt as createSecurityError,K as createTypeGuard,Q as createValidationError,A as disableSRI,i as enableDevelopmentMode,w as enableStrictSRI,P as fetchGeographies,yt as fetchGeographiesCache,C as generateSRIForUrls,b as generateSRIHash,t as getCoords,N as getFeatures,$ as getMesh,S as getSRIForUrl,V as isFeature,H as isFeatureCollection,W as isGeoProjection,B as isGeographyError,X as isProjectionName,D as isString,G as isTopology,M as isValidCoordinates,q as isValidGeographyData,J as isValidGeographyUrl,x as isValidGeometry,k as isValidLatitude,F as isValidLongitude,Z as isValidMapDimensions,U as preloadGeography,Y as prepareFeatures,v as prepareMesh,O as readResponseWithSizeLimit,h as validateContentType,d as validateGeographyData,l as validateGeographyUrl,p as validateResponseSize,I as validateSRI}; | ||
| function t(t,n,o){const r=(t*o.k-t)/2,e=(n*o.k-n)/2;return c=t/2-(r+o.x)/o.k,i=n/2-(e+o.y)/o.k,[c,i];var c,i}function n(t,n,o,r){const e=new Error(n);return e.name="GeographyError",e.type=t,e.timestamp=(new Date).toISOString(),o&&(e.geography=o),r&&(e.cause=r,r.stack&&(e.stack=r.stack),e.details={originalMessage:r.message,originalName:r.name}),e}function o(){return"undefined"!=typeof process&&"production"===process.env.NODE_ENV}function r(t,n=yt){const r={...Ot,...n,...t,ALLOWED_CONTENT_TYPES:[...t.ALLOWED_CONTENT_TYPES??n.ALLOWED_CONTENT_TYPES],ALLOWED_PROTOCOLS:[...t.ALLOWED_PROTOCOLS??n.ALLOWED_PROTOCOLS]};return o()&&(r.STRICT_HTTPS_ONLY=!0,r.ALLOW_HTTP_LOCALHOST=!1,r.ALLOWED_PROTOCOLS=[...Ot.ALLOWED_PROTOCOLS]),Object.freeze({...r,ALLOWED_CONTENT_TYPES:Object.freeze([...r.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...r.ALLOWED_PROTOCOLS])})}function e(t){yt=r(t,yt)}function c(){return yt}function i(t=!0){if(o())return void 0,void 0;yt=r({ALLOWED_PROTOCOLS:dt.ALLOWED_PROTOCOLS,STRICT_HTTPS_ONLY:dt.STRICT_HTTPS_ONLY,ALLOW_HTTP_LOCALHOST:t},yt)}function s(t){return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function a(t){if(!t||"localhost"===t)return!1;const n=s(t),o=[/^10\./,/^172\.(1[6-9]|2[0-9]|3[01])\./,/^192\.168\./,/^127\./,/^169\.254\./,/^0\./,/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./,/^192\.0\.0\./,/^192\.0\.2\./,/^198\.51\.100\./,/^203\.0\.113\./,/^198\.1[89]\./,/^233\.252\.0\./];for(const t of o)if(t.test(n))return!0;const r=[/^::1$/i,/^fe[89ab][0-9a-f]:/i,/^f[cd][0-9a-f]{2}:/i,/^::$/i,/^ff[0-9a-f]{2}:/i,/^100::/i,/^2001:db8:/i,/^2001:(?:0{1,4}:|:)/i];for(const t of r)if(t.test(n))return!0;const e=n.match(/^::ffff:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/i);if(e?.[1])return a(e[1]);const c=n.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);if(c?.[1]&&c[2]){const t=parseInt(c[1],16),n=parseInt(c[2],16);return a(`${t>>8&255}.${255&t}.${n>>8&255}.${255&n}`)}return!1}function u(){return"undefined"!=typeof process&&"node"===process.release?.name&&"undefined"==typeof window}async function f(t){if(!u())return[];const o=s(t);if(!o)return[];const r=await async function(){if("undefined"!=typeof process){const t="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns/promises"):null;if(t?.lookup)return t}try{const t="node:dns/promises",n=await import(t);return n.lookup?n:null}catch{return null}}();if(!r?.lookup)throw n("SECURITY_ERROR",`Unable to resolve hostname ${o} for security validation`,o);try{return(await r.lookup(o,{all:!0,verbatim:!0})).map(t=>t.address)}catch(t){throw n("SECURITY_ERROR",`Unable to resolve hostname ${o} for security validation`,o,t instanceof Error?t:void 0)}}function l(t,r=yt){const e=function(t){if("string"!=typeof t)throw n("VALIDATION_ERROR","Expected string, got "+typeof t);const o=t.trim();if(!o)throw n("VALIDATION_ERROR","URL must be a non-empty string");if(o.length>pt.maxStringLength)throw n("VALIDATION_ERROR",`String too long: ${o.length} characters (max: ${pt.maxStringLength})`);if(/[\x00-\x1F\x7F]/.test(o))throw n("VALIDATION_ERROR","URL contains invalid control characters");try{const t=new URL(o);if(["javascript:","data:","vbscript:","file:"].some(n=>t.protocol.toLowerCase().startsWith(n)))throw n("SECURITY_ERROR",`Dangerous protocol detected: ${t.protocol}`);if(t.hostname.includes("..")||t.hostname.includes("%"))throw n("SECURITY_ERROR",`Invalid hostname: ${t.hostname}`);return t.toString()}catch(t){if(t instanceof TypeError)throw n("VALIDATION_ERROR",`Invalid URL format: ${o}`);throw t}}(t);try{const c=new URL(e);if(r.STRICT_HTTPS_ONLY){if("https:"!==c.protocol)throw n("SECURITY_ERROR",`Strict HTTPS-only mode: ${c.protocol} is not allowed. Only HTTPS is permitted.`,t)}else{if(!r.ALLOWED_PROTOCOLS.includes(c.protocol)){const o=r.ALLOWED_PROTOCOLS.join(", ");throw n("SECURITY_ERROR",`Unsupported protocol: ${c.protocol}. Only ${o} are allowed.`,t)}if("http:"===c.protocol){if(!r.ALLOW_HTTP_LOCALHOST)throw n("SECURITY_ERROR","HTTP protocol is disabled for security. Use HTTPS or enable development mode explicitly.",t);const e=s(c.hostname);if("localhost"!==e&&"127.0.0.1"!==e&&"::1"!==e)throw n("SECURITY_ERROR","HTTP protocol is only allowed for localhost. Use HTTPS for remote URLs.",t);if(o())throw n("SECURITY_ERROR","HTTP localhost access is not allowed in production",t);void 0}}const i=s(c.hostname);if(("localhost"===i||"127.0.0.1"===i||"::1"===i)&&o())throw n("SECURITY_ERROR","Localhost access is not allowed in production",t);if(a(c.hostname))throw n("SECURITY_ERROR",`Access to private IP address ${c.hostname} is not allowed`,t)}catch(o){if(o instanceof TypeError)throw n("VALIDATION_ERROR",`Invalid URL format: ${t}`,t,o);throw o}}async function R(t,o=yt,r=f){if(l(t,o),r===f&&!u())return;const{hostname:e}=new URL(t),c=s(e);if(c&&"localhost"!==c&&!a(e)&&(await r(c)).some(t=>a(t)))throw n("SECURITY_ERROR",`Hostname ${c} resolves to a private IP address, which is not allowed`,t)}function h(t,o=yt){const r=t.headers.get("content-type");if(!r)throw n("VALIDATION_ERROR","Missing Content-Type header");const e=r.split(";",1)[0]?.trim().toLowerCase()??"";if(!o.ALLOWED_CONTENT_TYPES.includes(e))throw n("VALIDATION_ERROR",`Invalid content type: ${r}. Expected one of: ${o.ALLOWED_CONTENT_TYPES.join(", ")}`)}async function p(t,o=yt){const r=t.headers.get("content-length");if(r){const t=parseInt(r,10);if(t>o.MAX_RESPONSE_SIZE)throw n("VALIDATION_ERROR",`Response too large: ${t} bytes. Maximum allowed: ${o.MAX_RESPONSE_SIZE} bytes`)}}async function O(t,o=yt.MAX_RESPONSE_SIZE){const r=t.body?.getReader();if(!r){const r=await t.arrayBuffer();if(r.byteLength>o)throw n("VALIDATION_ERROR",`Response too large: ${r.byteLength} bytes exceeds limit of ${o} bytes`);return r}const e=[];let c=0;for(;;){const{done:t,value:i}=await r.read();if(t)break;if(c+=i.byteLength,c>o)throw r.cancel().catch(()=>{}),n("VALIDATION_ERROR",`Response too large: exceeded limit of ${o} bytes`);e.push(i)}const i=new Uint8Array(c);let s=0;for(const t of e)i.set(t,s),s+=t.byteLength;return i.buffer}function d(t){if(!t||"object"!=typeof t)throw n("VALIDATION_ERROR","Invalid geography data: not a valid object");const o=t;if(!o.type||"Topology"!==o.type&&"FeatureCollection"!==o.type)throw n("VALIDATION_ERROR",`Invalid geography data: expected Topology or FeatureCollection, got ${o.type}`);if("Topology"===o.type&&("object"!=typeof o.objects||null===o.objects||Array.isArray(o.objects)))throw n("VALIDATION_ERROR","Invalid topology data: expected a non-null objects map");if("FeatureCollection"===o.type&&!Array.isArray(o.features))throw n("VALIDATION_ERROR","Invalid feature collection data: expected a features array")}function y(){return"undefined"!=typeof process&&"production"===process?.env?.NODE_ENV}function T(t,n=wt){const o={...Et,...n,...t,customSRIMap:{...Et.customSRIMap,...n.customSRIMap,...t.customSRIMap}};return y()&&(o.enforceForKnownSources=!0),Object.freeze({...o,customSRIMap:Object.freeze({...o.customSRIMap})})}function E(t){wt=T(t,wt)}function w(){wt=T({enforceForKnownSources:!0,enforceForAllSources:!0,allowUnknownSources:!1})}function A(){if(y())return void 0,void 0;wt=T({...wt,enforceForKnownSources:!1,enforceForAllSources:!1,allowUnknownSources:!0})}async function g(t,n){const o=await globalThis.crypto.subtle.digest(n,t),r=new Uint8Array(o);let e;if(void 0!==globalThis.btoa)e=globalThis.btoa(String.fromCharCode(...r));else{const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let n="",o=0;for(;o<r.length;){const e=(r[o++]||0)<<16|(o<r.length&&r[o++]||0)<<8|(o<r.length&&r[o++]||0);n+=t.charAt(e>>18&63),n+=t.charAt(e>>12&63),n+=o-2<r.length?t.charAt(e>>6&63):"=",n+=o-1<r.length?t.charAt(63&e):"="}e=n}return e}async function I(t,n,o){const r=t.clone(),e=await r.arrayBuffer();return await m(e,n,o),t}async function m(t,o,r){const e=await g(t,{sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"}[r.algorithm]),c=r.hash.replace(`${r.algorithm}-`,"");if(e!==c){const t=new Error(`Subresource Integrity check failed for ${o}. Expected ${r.algorithm}-${c}, got ${r.algorithm}-${e}`);throw t.expectedHash=r.hash,t.calculatedHash=`${r.algorithm}-${e}`,t.algorithm=r.algorithm,n("SECURITY_ERROR",t.message,o,t)}}function S(t){try{const n=new URL(t);return n.hash="",("https:"===n.protocol&&"443"===n.port||"http:"===n.protocol&&"80"===n.port)&&(n.port=""),n.pathname=n.pathname.replace(/\/+$/,"")||"/",n.href}catch{return t}}function _(t,o=wt){const r=S(t);if(o.customSRIMap[r])return o.customSRIMap[r];if(o.customSRIMap[t])return o.customSRIMap[t];if(Tt[r]&&o.enforceForKnownSources)return Tt[r];if(Tt[t]&&o.enforceForKnownSources)return Tt[t];if(o.enforceForAllSources&&!o.allowUnknownSources)throw n("SECURITY_ERROR",`SRI enforcement is enabled but no integrity hash is available for ${t}`,t);return null}function L(t,n){const o=S(t);wt=T({...wt,customSRIMap:{...wt.customSRIMap,[o]:n,...o!==t?{[t]:n}:{}}})}async function b(t,o="sha384"){const r=c();l(t,r),await R(t,r);const e=new AbortController,i=setTimeout(()=>{e.abort()},r.TIMEOUT_MS);try{const n=await fetch(t,{signal:e.signal});if(!n.ok)throw new Error(`Failed to fetch ${t}: ${n.statusText}`);const c=await O(n,r.MAX_RESPONSE_SIZE),i={sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"};return`${o}-${await g(c,i[o])}`}catch(o){throw n("GEOGRAPHY_LOAD_ERROR",`Failed to generate SRI hash for ${t}: ${o instanceof Error?o.message:"Unknown error"}`,t,o instanceof Error?o:new Error(String(o)))}finally{clearTimeout(i)}}async function C(t,n="sha384"){const o={};for(const r of t)try{const t=await b(r,n);o[r]={algorithm:n,hash:t,enforceIntegrity:!0}}catch(t){void 0}return o}async function P(t){"undefined"!=typeof process&&"production"!==process?.env?.NODE_ENV,0;try{return await At(t)}catch(t){return"undefined"!=typeof process&&"production"!==process?.env?.NODE_ENV,0,void 0}}function $(t){Promise.resolve().then(function(){return It}).then(({preloadGeography:n})=>{n(t,!0)}).catch(()=>{}),At(t).catch(()=>{})}function U(t){return"string"==typeof t}function D(t,n){return Array.isArray(t)?n?n(t):t:"Topology"===t.type?function(t,n){const o=Object.keys(t.objects);if(0===o.length)return[];const r=o[0];if(!r)return[];const e=t.objects[r];if(!e)return[];const c=st(t,e),i="features"in c&&c.features||[];return n?n(i):i}(t,n):"FeatureCollection"===t.type?function(t,n){const o=t.features||[];return n?n(o):o}(t,n):[]}function N(t){return t&&"object"==typeof t&&!Array.isArray(t)&&"type"in t&&"Topology"===t.type?function(t){const n=Object.keys(t.objects);if(0===n.length)return null;const o=n[0];if(!o)return null;const r=t.objects[o];if(!r)return null;try{return{outline:at(t,r,(t,n)=>t===n),borders:at(t,r,(t,n)=>t!==n)}}catch{return null}}(t):null}function v(t,n,o){const r={};if(t){const n=o(t);n&&(r.outline=n)}if(n){const t=o(n);t&&(r.borders=t)}return r}function Y(t){const n=t.rsmKey;return null!=n?String(n):void 0!==t.id&&null!==t.id?String(t.id):null}function j(t,n){return n.some(n=>n.has(t))}function G(t,n){if(!j(t,n))return t;let o=1,r=`${t}-${o}`;for(;j(r,n);)o+=1,r=`${t}-${o}`;return r}function H(t,n){if(!t||0===t.length)return[];const o=t.map((t,o)=>{const r=n(t);return r?{explicitKey:Y(t),feature:t,index:o,svgPath:r}:null}).filter(t=>null!==t),r=new Set(o.map(t=>t.explicitKey).filter(t=>null!==t)),e=new Set;return o.map(({explicitKey:t,feature:n,index:o,svgPath:c})=>{const i=null!==t?function(t,n,o){return n.has(t)?G(t,[n,o]):t}(t,e,r):function(t,n,o){return G(`geo-${t}`,[n,o])}(o,e,r);return e.add(i),{...n,svgPath:c,rsmKey:i}})}function V(t,n,o){if("function"!=typeof o)return"";try{return o().x(t=>t[0]).y(t=>t[1])([t,n])||""}catch{return""}}function x(t){if("object"!=typeof t||null===t)return!1;const n=t;return"Topology"===n.type&&"object"==typeof n.objects&&null!==n.objects&&Array.isArray(n.arcs)}function F(t){if("object"!=typeof t||null===t)return!1;const n=t;return"FeatureCollection"===n.type&&Array.isArray(n.features)}function k(t){if("object"!=typeof t||null===t)return!1;const n=t;return"Feature"===n.type&&"geometry"in n&&"properties"in n}function M(t){return"object"==typeof t&&null!==t&&("type"in t&&["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"].includes(t.type))}function W(t){return"number"==typeof t&&t>=-180&&t<=180}function X(t){return"number"==typeof t&&t>=-90&&t<=90}function B(t){return Array.isArray(t)&&2===t.length&&W(t[0])&&X(t[1])}function J(t){return"function"==typeof t&&"invert"in t&&"function"==typeof t.invert}function q(t){return"string"==typeof t&&t.startsWith("geo")&&t.length>3}function K(t){if(!(t instanceof Error))return!1;const n=t;return"type"in n&&"string"==typeof n.type&&["GEOGRAPHY_LOAD_ERROR","GEOGRAPHY_PARSE_ERROR","PROJECTION_ERROR","VALIDATION_ERROR","SECURITY_ERROR","CONFIGURATION_ERROR","CONTEXT_ERROR"].includes(n.type)}function Z(t){if("string"!=typeof t)return!1;try{const n=new URL(t);return"https:"===n.protocol||"http:"===n.protocol&&"localhost"===n.hostname}catch{return!1}}function z(t){return x(t)||F(t)}function Q(t,n){return"number"==typeof t&&"number"==typeof n&&t>0&&n>0&&Number.isFinite(t)&&Number.isFinite(n)}function tt(t){return n=>t(n)}function nt(t,n,o,r){const e=new Error(n);return e.type=t,o&&(e.geography=o),r&&(e.details=r),e}function ot(t,n,o){return nt("VALIDATION_ERROR",t,n,o)}function rt(t,n,o){return nt("SECURITY_ERROR",t,n,o)}function et(t,n,o){return nt("PROJECTION_ERROR",t,n,o)}function ct(t,n,o){return nt("CONFIGURATION_ERROR",t,n,o)}function it(t,n,o){return nt("CONTEXT_ERROR",t,n,o)}import{feature as st,mesh as at}from"topojson-client";import{cache as ut}from"react";import{prefetchDNS as ft,preconnect as lt,preload as Rt}from"react-dom";const ht={strictMode:!0,allowUnsafeContent:!1,maxStringLength:1e4,maxArrayLength:1e3,maxObjectDepth:10};let pt=function(){const t={...ht};return"undefined"!=typeof process&&"production"===process?.env?.NODE_ENV&&t.allowUnsafeContent&&(t.allowUnsafeContent=!1),Object.freeze(t)}();const Ot={TIMEOUT_MS:1e4,MAX_RESPONSE_SIZE:52428800,ALLOWED_CONTENT_TYPES:["application/json","application/geo+json"],ALLOWED_PROTOCOLS:["https:"],ALLOW_HTTP_LOCALHOST:!1,STRICT_HTTPS_ONLY:!0},dt={...Ot,ALLOWED_PROTOCOLS:["https:","http:"],ALLOW_HTTP_LOCALHOST:!0,STRICT_HTTPS_ONLY:!1};let yt=Object.freeze({...Ot,ALLOWED_CONTENT_TYPES:Object.freeze([...Ot.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...Ot.ALLOWED_PROTOCOLS])});const Tt={"https://unpkg.com/world-atlas@2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-110m.json":{algorithm:"sha384",hash:"sha384-yOCJ+8ShBm8UDqtAVtAvxTDDf4gXo5edxl/YG0FmVC5OTmqVLl7utuVGBDEeZWHf",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/countries-50m.json":{algorithm:"sha384",hash:"sha384-Aw4s9pX1PTPntIYkZ/qV9IYiF5Gv8eTl6Dd/TT56zfO1Wwd+owFwYUuuXNUMrWkc",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-110m.json":{algorithm:"sha384",hash:"sha384-5oFOGoMd0tkagYW08lVco4uAi7XDEDBwBxOdeKx+SA1ihbsHiR/aFAJGretluTzG",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0},"https://unpkg.com/world-atlas@2.0.2/land-50m.json":{algorithm:"sha384",hash:"sha384-c0VeCJd1wVbV5WQZNjf1hcMqPr9QXweEArnbdgS1k75TBNjta2M/NddyAulA/Glb",enforceIntegrity:!0}},Et={enforceForKnownSources:!0,enforceForAllSources:!1,allowUnknownSources:!0,customSRIMap:{}};let wt=Object.freeze({...Et,customSRIMap:Object.freeze({...Et.customSRIMap})});const At=ut(async t=>{const o=c(),r=wt;l(t,o),await R(t,o);const e=_(t,r),{controller:i,cleanup:s}=function(t){const n=new AbortController,o=setTimeout(()=>{n.abort()},t);return{controller:n,cleanup:()=>clearTimeout(o)}}(o.TIMEOUT_MS);try{const r=await async function(t,o,r){let e=t;for(let t=0;t<5;t++){const t=await fetch(e,o);if(t.status<300||t.status>=400)return t;try{await t.arrayBuffer()}catch{}const c=t.headers.get("location");if(!c)throw n("SECURITY_ERROR",`Redirect response (HTTP ${t.status}) missing Location header`,e);const i=new URL(c,e).href;l(i,r),await R(i,r),e=i}throw n("SECURITY_ERROR","Too many redirects (exceeded 5 hops)",t)}(t,(a=i.signal,u=o,{signal:a,headers:{Accept:u.ALLOWED_CONTENT_TYPES.join(", "),"Cache-Control":"public, max-age=3600"},mode:"cors",credentials:"omit",redirect:"manual"}),o);if(s(),!r.ok)throw n("GEOGRAPHY_LOAD_ERROR",`HTTP ${r.status}: ${r.statusText}`,t);h(r,o),await p(r,o);const c=await O(r,o.MAX_RESPONSE_SIZE);return e&&await m(c,t,e),await async function(t,o){try{const n=(new TextDecoder).decode(t),o=JSON.parse(n);return d(o),o}catch(t){if(t instanceof SyntaxError)throw n("GEOGRAPHY_PARSE_ERROR","Invalid JSON format in geography data",o,t);throw t}}(c,t)}catch(r){throw s(),function(t,o,r){if(t instanceof Error){if("AbortError"===t.name)return n("GEOGRAPHY_LOAD_ERROR",`Request timeout after ${r.TIMEOUT_MS}ms`,o,t);if("TypeError"===t.name&&t.message.includes("fetch"))return n("GEOGRAPHY_LOAD_ERROR",`Network error: Unable to fetch geography from ${o}`,o,t);if(t.message.includes("Invalid geography data"))return n("GEOGRAPHY_PARSE_ERROR",t.message,o,t)}return t instanceof Error&&"type"in t?t:n("GEOGRAPHY_LOAD_ERROR",t instanceof Error?t.message:"Unknown error occurred",o,t instanceof Error?t:void 0)}(r,t,o)}var a,u}),gt=new Set;var It=Object.freeze({__proto__:null,preloadGeography:function(t,n=!1){if("string"==typeof t&&t&&!gt.has(t))try{l(t);const o=new URL(t);ft(o.origin),lt(o.origin),gt.add(t),(n||"undefined"!=typeof process&&"production"===process.env.NODE_ENV)&&Rt(t,{as:"fetch",crossOrigin:"anonymous"})}catch(t){"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(t instanceof Error?t.message:String(t))}}});export{Ot as DEFAULT_GEOGRAPHY_FETCH_CONFIG,Et as DEFAULT_SRI_CONFIG,dt as DEVELOPMENT_GEOGRAPHY_FETCH_CONFIG,Tt as KNOWN_GEOGRAPHY_SRI,L as addCustomSRI,e as configureGeographySecurity,E as configureSRI,ct as createConfigurationError,V as createConnectorPath,it as createContextError,nt as createGeographyError,n as createGeographyFetchError,et as createProjectionError,rt as createSecurityError,tt as createTypeGuard,ot as createValidationError,A as disableSRI,i as enableDevelopmentMode,w as enableStrictSRI,P as fetchGeographies,At as fetchGeographiesCache,C as generateSRIForUrls,b as generateSRIHash,t as getCoords,D as getFeatures,N as getMesh,_ as getSRIForUrl,k as isFeature,F as isFeatureCollection,J as isGeoProjection,K as isGeographyError,q as isProjectionName,U as isString,x as isTopology,B as isValidCoordinates,z as isValidGeographyData,Z as isValidGeographyUrl,M as isValidGeometry,X as isValidLatitude,W as isValidLongitude,Q as isValidMapDimensions,$ as preloadGeography,H as prepareFeatures,v as prepareMesh,O as readResponseWithSizeLimit,h as validateContentType,d as validateGeographyData,l as validateGeographyUrl,p as validateResponseSize,I as validateSRI}; | ||
| //# sourceMappingURL=utils.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"utils.js","sources":["../src/utils/coordinate-utils.ts","../src/types.ts","../src/utils/error-utils.ts","../src/utils/geography-validation.ts","../src/utils/input-validation.ts","../src/utils/subresource-integrity.ts","../src/utils/geography-fetching.ts","../src/utils/geography-processing.ts","../src/utils.ts","../src/utils/preloading.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["getCoords","w","h","t","xOffset","k","yOffset","lon","x","lat","y","createGeographyFetchError","type","message","url","originalError","error","Error","name","timestamp","Date","toISOString","geography","cause","stack","details","originalMessage","originalName","isProductionEnvironment","process","env","NODE_ENV","createGeographyFetchConfig","config","baseConfig","GEOGRAPHY_FETCH_CONFIG","nextConfig","DEFAULT_GEOGRAPHY_FETCH_CONFIG","ALLOWED_CONTENT_TYPES","ALLOWED_PROTOCOLS","STRICT_HTTPS_ONLY","ALLOW_HTTP_LOCALHOST","Object","freeze","configureGeographySecurity","getGeographySecurityConfig","enableDevelopmentMode","allowHttpLocalhost","console","DEVELOPMENT_GEOGRAPHY_FETCH_CONFIG","stripIPv6Brackets","hostname","startsWith","endsWith","slice","isPrivateIPAddress","normalised","ipv4PrivateRanges","range","test","ipv6PrivateRanges","ipv4MappedDottedMatch","match","ipv4MappedHexMatch","hi","parseInt","lo","shouldResolveHostnamesForSecurity","release","window","async","resolveHostnameAddresses","bareHostname","dnsModule","builtinModule","getBuiltinModule","lookup","specifier","importedModule","import","loadNodeDnsModule","all","verbatim","map","record","address","undefined","validateGeographyUrl","validatedUrl","input","candidate","trim","length","currentValidationConfig","maxStringLength","URL","some","protocol","toLowerCase","includes","toString","TypeError","validateURL","parsedUrl","allowedProtocols","join","httpHost","validateResolvedGeographyUrl","resolveAddresses","resolvedAddress","validateContentType","response","contentType","headers","get","mimeType","split","validateResponseSize","contentLength","size","MAX_RESPONSE_SIZE","readResponseWithSizeLimit","maxBytes","reader","body","getReader","buffer","arrayBuffer","byteLength","chunks","totalBytes","done","value","read","cancel","catch","push","result","Uint8Array","offset","chunk","set","validateGeographyData","data","obj","objects","Array","isArray","features","createSRIEnforcementConfig","currentSRIConfig","DEFAULT_SRI_CONFIG","customSRIMap","enforceForKnownSources","configureSRI","enableStrictSRI","enforceForAllSources","allowUnknownSources","disableSRI","calculateHash","algorithm","hashBuffer","globalThis","crypto","subtle","digest","hashArray","hashBase64","btoa","String","fromCharCode","chars","i","bitmap","charAt","validateSRI","expectedSRI","responseClone","clone","validateSRIFromArrayBuffer","calculatedHash","sha256","sha384","sha512","expectedHash","hash","replace","sriError","canonicalizeUrlForSRI","parsed","port","pathname","href","getSRIForUrl","canonical","KNOWN_GEOGRAPHY_SRI","addCustomSRI","sri","generateSRIHash","securityConfig","controller","AbortController","timeoutId","setTimeout","abort","TIMEOUT_MS","fetch","signal","ok","statusText","algorithmMap","clearTimeout","generateSRIForUrls","urls","sriMap","enforceIntegrity","fetchGeographies","fetchGeographiesCache","preloadGeography","Promise","resolve","then","preloading","preloadUtil","isString","geo","getFeatures","geographies","parseGeographies","topology","objectKeys","keys","firstObjectKey","geometryObject","featureCollection","feature","extractFeaturesFromTopology","extractFeaturesFromCollection","getMesh","outline","mesh","a","b","borders","extractMeshFromTopology","prepareMesh","path","outlinePath","bordersPath","prepareFeatures","svgPath","filter","createConnectorPath","start","end","curve","d","line","isTopology","arcs","isFeatureCollection","isFeature","isValidGeometry","isValidLongitude","isValidLatitude","isValidCoordinates","isGeoProjection","invert","isProjectionName","isGeographyError","errorObj","isValidGeographyUrl","isValidGeographyData","isValidMapDimensions","width","height","Number","isFinite","createTypeGuard","predicate","createGeographyError","createValidationError","createSecurityError","createProjectionError","createConfigurationError","createContextError","DEFAULT_VALIDATION_CONFIG","strictMode","allowUnsafeContent","maxArrayLength","maxObjectDepth","createValidationConfig","cache","sriEnforcementConfig","sriConfig","cleanup","timeoutMs","createTimeoutController","options","currentUrl","hop","status","location","redirectUrl","fetchWithRedirectValidation","Accept","mode","credentials","redirect","text","TextDecoder","decode","JSON","parse","jsonError","SyntaxError","parseGeographyFromArrayBuffer","handleFetchError","preloadedUrls","Set","immediate","has","prefetchDNS","origin","preconnect","add","preload","as","crossOrigin"],"mappings":"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"} | ||
| {"version":3,"file":"utils.js","sources":["../src/utils/coordinate-utils.ts","../src/types.ts","../src/utils/error-utils.ts","../src/utils/geography-validation.ts","../src/utils/input-validation.ts","../src/utils/subresource-integrity.ts","../src/utils/geography-fetching.ts","../src/utils/geography-processing.ts","../src/utils.ts","../src/utils/preloading.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["getCoords","w","h","t","xOffset","k","yOffset","lon","x","lat","y","createGeographyFetchError","type","message","url","originalError","error","Error","name","timestamp","Date","toISOString","geography","cause","stack","details","originalMessage","originalName","isProductionEnvironment","process","env","NODE_ENV","createGeographyFetchConfig","config","baseConfig","GEOGRAPHY_FETCH_CONFIG","nextConfig","DEFAULT_GEOGRAPHY_FETCH_CONFIG","ALLOWED_CONTENT_TYPES","ALLOWED_PROTOCOLS","STRICT_HTTPS_ONLY","ALLOW_HTTP_LOCALHOST","Object","freeze","configureGeographySecurity","getGeographySecurityConfig","enableDevelopmentMode","allowHttpLocalhost","console","DEVELOPMENT_GEOGRAPHY_FETCH_CONFIG","stripIPv6Brackets","hostname","startsWith","endsWith","slice","isPrivateIPAddress","normalised","ipv4PrivateRanges","range","test","ipv6PrivateRanges","ipv4MappedDottedMatch","match","ipv4MappedHexMatch","hi","parseInt","lo","shouldResolveHostnamesForSecurity","release","window","async","resolveHostnameAddresses","bareHostname","dnsModule","builtinModule","getBuiltinModule","lookup","specifier","importedModule","import","loadNodeDnsModule","all","verbatim","map","record","address","undefined","validateGeographyUrl","validatedUrl","input","candidate","trim","length","currentValidationConfig","maxStringLength","URL","some","protocol","toLowerCase","includes","toString","TypeError","validateURL","parsedUrl","allowedProtocols","join","httpHost","validateResolvedGeographyUrl","resolveAddresses","resolvedAddress","validateContentType","response","contentType","headers","get","mimeType","split","validateResponseSize","contentLength","size","MAX_RESPONSE_SIZE","readResponseWithSizeLimit","maxBytes","reader","body","getReader","buffer","arrayBuffer","byteLength","chunks","totalBytes","done","value","read","cancel","catch","push","result","Uint8Array","offset","chunk","set","validateGeographyData","data","obj","objects","Array","isArray","features","createSRIEnforcementConfig","currentSRIConfig","DEFAULT_SRI_CONFIG","customSRIMap","enforceForKnownSources","configureSRI","enableStrictSRI","enforceForAllSources","allowUnknownSources","disableSRI","calculateHash","algorithm","hashBuffer","globalThis","crypto","subtle","digest","hashArray","hashBase64","btoa","String","fromCharCode","chars","i","bitmap","charAt","validateSRI","expectedSRI","responseClone","clone","validateSRIFromArrayBuffer","calculatedHash","sha256","sha384","sha512","expectedHash","hash","replace","sriError","canonicalizeUrlForSRI","parsed","port","pathname","href","getSRIForUrl","canonical","KNOWN_GEOGRAPHY_SRI","addCustomSRI","sri","generateSRIHash","securityConfig","controller","AbortController","timeoutId","setTimeout","abort","TIMEOUT_MS","fetch","signal","ok","statusText","algorithmMap","clearTimeout","generateSRIForUrls","urls","sriMap","enforceIntegrity","fetchGeographies","fetchGeographiesCache","preloadGeography","Promise","resolve","then","preloading","preloadUtil","isString","geo","getFeatures","geographies","parseGeographies","topology","objectKeys","keys","firstObjectKey","geometryObject","featureCollection","feature","extractFeaturesFromTopology","extractFeaturesFromCollection","getMesh","outline","mesh","a","b","borders","extractMeshFromTopology","prepareMesh","path","outlinePath","bordersPath","getExplicitFeatureKey","existingKey","rsmKey","id","isKeyUnavailable","key","unavailableKeySets","unavailableKeys","has","getUniqueRsmKey","baseKey","suffix","fallbackKey","prepareFeatures","preparedCandidates","index","svgPath","explicitKey","filter","reservedExplicitKeys","Set","usedKeys","getUniqueExplicitRsmKey","getUniqueFallbackRsmKey","add","createConnectorPath","start","end","curve","d","line","isTopology","arcs","isFeatureCollection","isFeature","isValidGeometry","isValidLongitude","isValidLatitude","isValidCoordinates","isGeoProjection","invert","isProjectionName","isGeographyError","errorObj","isValidGeographyUrl","isValidGeographyData","isValidMapDimensions","width","height","Number","isFinite","createTypeGuard","predicate","createGeographyError","createValidationError","createSecurityError","createProjectionError","createConfigurationError","createContextError","DEFAULT_VALIDATION_CONFIG","strictMode","allowUnsafeContent","maxArrayLength","maxObjectDepth","createValidationConfig","cache","sriEnforcementConfig","sriConfig","cleanup","timeoutMs","createTimeoutController","options","currentUrl","hop","status","location","redirectUrl","fetchWithRedirectValidation","Accept","mode","credentials","redirect","text","TextDecoder","decode","JSON","parse","jsonError","SyntaxError","parseGeographyFromArrayBuffer","handleFetchError","preloadedUrls","immediate","prefetchDNS","origin","preconnect","preload","as","crossOrigin"],"mappings":"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"} |
+5
-5
| { | ||
| "name": "@vnedyalk0v/react19-simple-maps", | ||
| "version": "2.0.8", | ||
| "version": "2.0.9", | ||
| "description": "An svg map chart component built exclusively for React 19+ - Modern TypeScript-first library with cutting-edge React patterns", | ||
@@ -33,3 +33,3 @@ "type": "module", | ||
| "watch": "rollup -cw", | ||
| "prepare": "npm run build", | ||
| "prepack": "npm run build", | ||
| "test": "vitest run", | ||
@@ -114,4 +114,4 @@ "test:watch": "vitest", | ||
| "@typescript-eslint/parser": "^8.60.0", | ||
| "@vitest/coverage-v8": "^4.1.7", | ||
| "@vitest/ui": "^4.1.7", | ||
| "@vitest/coverage-v8": "^4.1.8", | ||
| "@vitest/ui": "^4.1.8", | ||
| "eslint": "^9.39.4", | ||
@@ -132,3 +132,3 @@ "eslint-config-prettier": "^10.1.8", | ||
| "typescript": "^6.0.3", | ||
| "vitest": "^4.1.7" | ||
| "vitest": "^4.1.8" | ||
| }, | ||
@@ -135,0 +135,0 @@ "peerDependencies": { |
203172
2.07%1008
0.5%