@vnedyalk0v/react19-simple-maps
Advanced tools
+32
-13
| # Changelog | ||
| ## 2.0.6 | ||
| ## 2.0.7 | ||
| ### Patch Changes | ||
| - Hardened geography validation and cache isolation. | ||
| - Blocks prototype-mutation payloads during object validation and avoids inherited-value reads in projection and security config parsing. | ||
| - Replaces collision-prone geography cache keys with object-identity-based keys so different datasets or parsing functions do not reuse the wrong cached results. | ||
| - Applies the hardened geography URL validation pipeline to `generateSRIHash`. | ||
| - Adds safer default geography error messaging. | ||
| - Fails more predictably on malformed nested geography input. | ||
| ## [Unreleased] | ||
| No unreleased user-facing or package-impacting changes. | ||
| ## [2.0.6] - 2026-04-06 | ||
| ### Changed | ||
| - Removed GitHub Packages as a distribution target for this package. | ||
@@ -11,5 +26,5 @@ - The package now publishes only to the npm registry. | ||
| ## 2.0.5 | ||
| ## [2.0.5] - 2026-04-06 | ||
| ### Patch Changes | ||
| ### Changed | ||
@@ -20,5 +35,5 @@ - Clarified the supported Node.js version for development and build workflows. | ||
| ## 2.0.4 | ||
| ## [2.0.4] - 2026-04-06 | ||
| ### Patch Changes | ||
| ### Fixed | ||
@@ -28,2 +43,5 @@ - Fixed `useDeferredPosition` so controlled zoom values are no longer clamped to an internal `0.1..10` range. | ||
| - Prevents controlled zoom state from drifting away from d3-zoom when applications intentionally allow values above `10`. | ||
| ### Security | ||
| - Hardened geography fetching and validation in server environments. | ||
@@ -33,4 +51,6 @@ - Blocks geography hostnames that resolve to private IP addresses during server-side fetch validation, reducing SSRF exposure from hostile DNS. | ||
| - Tightens content-type validation to match exact MIME types and rejects malformed URL input, including embedded control characters, instead of sanitizing it into different accepted values. | ||
| - Removed the built-in `ZoomableGroup` zoom and pan indicator, pinned the example geography URLs to exact world-atlas versions, removed React 19 optimistic update warnings during zoom interactions, and fixed projection changes in the example maps. | ||
| - Stops showing the built-in top-left zoom and pan indicator during map interactions so direct manipulation stays visually clean. | ||
| ### Changed | ||
| - Updated example rendering behavior, geography URLs, and interaction handling across the examples. | ||
| - Avoids redirect-related fetch failures in the README and example apps by using direct `https://unpkg.com/world-atlas@2.0.2/...` geography URLs. | ||
@@ -42,2 +62,7 @@ - Replaces transition-incompatible optimistic zoom state updates with immediate local state so browser zoom and pan interactions no longer spam React console errors. | ||
| ### Removed | ||
| - Removed the built-in `ZoomableGroup` zoom and pan indicator. | ||
| - Stops showing the built-in top-left zoom and pan indicator during map interactions so direct manipulation stays visually clean. | ||
| All notable changes to `@vnedyalk0v/react19-simple-maps` are documented in this file. | ||
@@ -48,8 +73,2 @@ | ||
| ## [Unreleased] | ||
| ### Changed | ||
| - Removed GitHub Packages as a distribution target. The package now publishes only to npm, and the installation or release documentation now reflects npm as the supported distribution channel. | ||
| ## [2.0.3] - 2026-04-02 | ||
@@ -56,0 +75,0 @@ |
+0
-5
@@ -492,7 +492,2 @@ import * as react from 'react'; | ||
| declare function getGeographyBounds(geography: Feature<Geometry>): [Coordinates, Coordinates] | null; | ||
| /** | ||
| * Extracts coordinates from different geometry types | ||
| * @param geography - GeoJSON feature | ||
| * @returns First available coordinate or null | ||
| */ | ||
| declare function getGeographyCoordinates(geography: Feature<Geometry>): Coordinates | null; | ||
@@ -499,0 +494,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 yt(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>It.maxStringLength)throw e("VALIDATION_ERROR",`String too long: ${t.length} characters (max: ${It.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>It.maxArrayLength)throw e("VALIDATION_ERROR",`Array too long: ${t.length} items (max: ${It.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>It.maxObjectDepth)throw e("VALIDATION_ERROR",`Object nesting too deep: ${o} levels (max: ${It.maxObjectDepth})`);const n=t,a={};for(const[t,e]of Object.entries(n)){const n=r(t);"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("center"in r&&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)),"rotate"in r&&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("scale"in r&&void 0!==r.scale&&(a.scale=o(r.scale,.1,1e4)),"parallels"in r&&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=Et(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=Mt){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>It.maxStringLength)throw e("VALIDATION_ERROR",`String too long: ${r.length} characters (max: ${It.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=Mt,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:ft(t,o,(t,e)=>t===e),borders:ft(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 Y&&null!==Y&&"captureOwnerStack"in Y&&"function"==typeof Y.captureOwnerStack)try{return Y.captureOwnerStack()}catch{return null}return null}function y({width:t=800,height:e=600,projection:r="geoEqualEarth",projectionConfig:o=Ft,className:n="",debug:i=!1,children:a,ref:s,...c}){const{logRender:l}=function(t,e){const r=Ut.getInstance();return B(()=>{void 0!==e&&r.setDebugMode(e)},[e,r]),{logRender:J((e,o)=>r.logRender(t,e,o),[t,r]),logError:J((e,o)=>r.logError(t,e,o),[t,r]),trackPerformance:J(e=>r.trackPerformance(t,e),[t,r])}}("ComposableMap",i);return B(()=>{l({width:t,height:e,projection:r,projectionConfig:o,className:n})},[l,t,e,r,o,n]),V(Pt,{width:t,height:e,projection:r,projectionConfig:o,children:V("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 G(F,{children:[t&&V("title",{children:t}),e&&V("meta",{name:"description",content:e}),r.length>0&&V("meta",{name:"keywords",content:r.join(", ")}),o&&V("meta",{name:"author",content:o}),V("meta",{name:"viewport",content:n}),i&&V("link",{rel:"canonical",href:i}),a&&V("meta",{property:"og:title",content:a}),s&&V("meta",{property:"og:description",content:s}),c&&V("meta",{property:"og:image",content:c}),l&&V("meta",{property:"og:url",content:l}),V("meta",{property:"og:type",content:"website"}),V("meta",{name:"twitter:card",content:u}),f&&V("meta",{name:"twitter:title",content:f}),p&&V("meta",{name:"twitter:description",content:p}),h&&V("meta",{name:"twitter:image",content:h}),d&&V("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"))}}),V("meta",{name:"geo.region",content:"world"}),V("meta",{name:"geo.placename",content:"World Map"}),V("meta",{name:"ICBM",content:"0, 0"}),V("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=W(()=>{const e=zt[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=W(()=>e?V(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 G(F,{children:[l,V(Yt,{...f,children:a})]})}function E(t){if(("object"==typeof t||"function"==typeof t)&&null!==t){const e=qt.get(t);if(e)return e;Xt+=1;const r=`obj:${Xt}`;return qt.set(t,r),r}return String(t)}function b(t,e){const r="string"==typeof t?t:JSON.stringify(t).slice(0,100);return e?`${r}:${e}`:r}function O({geography:t,parseGeographies:e}){const{path:r}=_t(),[o,n]=X(null),[i,a]=X(!1),[s,c]=X(null),[l,u]=X(0),f=J(()=>{u(t=>t+1)},[]);B(()=>{let e=!1;return"string"==typeof t?(a(!0),c(null),Vt(t,"start"),function(t,e=!1){if("string"==typeof t&&t&&!Kt.has(t))try{p(t);const r=new URL(t);st(r.origin),ct(r.origin),Kt.add(t),(e||"undefined"!=typeof process&&"production"===process.env.NODE_ENV)&<(t,{as:"fetch",crossOrigin:"anonymous"})}catch(t){"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(t instanceof Error?t.message:String(t))}}(t),jt(t).then(r=>{e||(Vt(t,"success",r),n(r),a(!1))}).catch(r=>{e||(Vt(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=W(()=>{if(i||!o)return[];if(o&&"object"==typeof o&&!Array.isArray(o)){const t=function(t){const e=Bt.geographyDataCache.get(t);return e&&Date.now()-e.timestamp<Jt?{features:e.features,mesh:e.mesh}:null}(o);if(t)return t.features}const t=function(t,e){return b(t,`features:${e?e.toString().slice(0,50):"default"}`)}(o,e),r=(n=t,Ht.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=ut(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){Ht.features.set(t,e)}(t,a),o&&"object"==typeof o&&!Array.isArray(o)){const t=d(o);!function(t,e,r){Bt.geographyDataCache.set(t,{features:e,mesh:r,timestamp:Date.now()})}(o,a,t)}return a},[o,i,e]),m=W(()=>i||!o?null:d(o),[o,i]),g=W(()=>{if(0===h.length)return[];const t=E(r);if(o&&"object"==typeof o&&!Array.isArray(o)){const e=function(t,e){const r=Bt.preparedFeaturesCache.get(t);return r&&r.pathFunction===e&&Date.now()-r.timestamp<Jt?r.prepared:null}(o,t);if(e)return e}const e=(i=r,`prepared:${h.map(t=>t.id||t.properties?.NAME||"").join(",").slice(0,100)}:${E(i)}`),n=(a=e,Ht.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){Ht.preparedFeatures.set(t,e)}(e,s),o&&"object"==typeof o&&!Array.isArray(o)&&function(t,e,r){Bt.preparedFeaturesCache.set(t,{prepared:e,pathFunction:r,timestamp:Date.now()})}(o,s,t),s},[h,r,o]),y=W(()=>{if(!m)return{outline:"",borders:""};const t=b(o,`mesh:${E(r)}`),e=(n=t,Ht.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){Ht.meshData.set(t,e)}(t,a),a},[m,r,o]);return W(()=>({geographies:g,outline:y.outline,borders:y.borders,isLoading:i,error:s,refetch:f}),[g,y,i,s,f])}function v(t,e){return G("g",{className:"rsm-error-boundary",role:"alert",children:[V("text",{className:"rsm-error-text",x:"50%",y:"42%",textAnchor:"middle",dominantBaseline:"middle",fill:"currentColor",children:`Failed to load geography data: ${t.message}`}),V("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 A({children:t,fallback:e=v,onError:r}){const[o,n]=X(0),i=J(t=>{r&&r(t),"production"!==process.env.NODE_ENV},[r]),a=J(()=>{n(t=>t+1)},[]),s=J(t=>e(t,a),[e,a]);return V(Qt,{fallback:s,onError:i,children:t},o)}function T({geography:t,children:e,parseGeographies:r,className:o="",errorBoundary:n=!1,onGeographyError:i,fallback:a,ref:s,...c}){const{path:l,projection:u}=_t(),f=O({geography:t,...r&&{parseGeographies:r}}),{geographies:p,outline:h,borders:d,isLoading:m,error:g,refetch:y}=f;B(()=>{g&&i&&i(g)},[g,i]);const w=J(()=>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 V("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:te});if(g)return V("g",a&&"function"==typeof a?{ref:s,className:`rsm-geographies ${o}`,...c,children:a(g,y??(()=>{}))}:{ref:s,className:`rsm-geographies ${o}`,...c,children:V("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),V("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:V(A,{...t,children:R})})}return V("g",{ref:s,className:`rsm-geographies ${o}`,...c,children:R})}function I(t){if(!t?.geometry)return null;const e=it(t);return!e||!isFinite(e[0])||!isFinite(e[1])||Math.abs(e[0])>180||Math.abs(e[1])>90?null:yt(e[0],e[1])}function $(t){if(!t?.geometry)return null;const e=nt(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:[yt(r[0],r[1]),yt(o[0],o[1])]}function M(t){if(!t?.geometry)return null;const{geometry:e}=t;switch(e.type){case"Point":if(e.coordinates&&Array.isArray(e.coordinates)&&e.coordinates.length>=2&&"number"==typeof e.coordinates[0]&&"number"==typeof e.coordinates[1]){const[t,r]=e.coordinates;return yt(t,r)}break;case"LineString":if(e.coordinates&&Array.isArray(e.coordinates)&&e.coordinates.length>0&&Array.isArray(e.coordinates[0])&&e.coordinates[0].length>=2&&"number"==typeof e.coordinates[0][0]&&"number"==typeof e.coordinates[0][1]){const[t,r]=e.coordinates[0];return yt(t,r)}break;case"Polygon":if(e.coordinates&&Array.isArray(e.coordinates)&&e.coordinates.length>0&&Array.isArray(e.coordinates[0])&&e.coordinates[0].length>0&&Array.isArray(e.coordinates[0][0])&&e.coordinates[0][0].length>=2&&"number"==typeof e.coordinates[0][0][0]&&"number"==typeof e.coordinates[0][0][1]){const[t,r]=e.coordinates[0][0];return yt(t,r)}break;case"MultiPoint":if(e.coordinates&&Array.isArray(e.coordinates)&&e.coordinates.length>0&&Array.isArray(e.coordinates[0])&&e.coordinates[0].length>=2&&"number"==typeof e.coordinates[0][0]&&"number"==typeof e.coordinates[0][1]){const[t,r]=e.coordinates[0];return yt(t,r)}break;case"MultiLineString":if(e.coordinates&&Array.isArray(e.coordinates)&&e.coordinates.length>0&&Array.isArray(e.coordinates[0])&&e.coordinates[0].length>0&&Array.isArray(e.coordinates[0][0])&&e.coordinates[0][0].length>=2&&"number"==typeof e.coordinates[0][0][0]&&"number"==typeof e.coordinates[0][0][1]){const[t,r]=e.coordinates[0][0];return yt(t,r)}break;case"MultiPolygon":if(e.coordinates&&Array.isArray(e.coordinates)&&e.coordinates.length>0&&Array.isArray(e.coordinates[0])&&e.coordinates[0].length>0&&Array.isArray(e.coordinates[0][0])&&e.coordinates[0][0].length>0&&Array.isArray(e.coordinates[0][0][0])&&e.coordinates[0][0][0].length>=2&&"number"==typeof e.coordinates[0][0][0][0]&&"number"==typeof e.coordinates[0][0][0][1]){const[t,r]=e.coordinates[0][0][0];return yt(t,r)}break;case"GeometryCollection":if(e.geometries&&Array.isArray(e.geometries)&&e.geometries.length>0&&e.geometries[0])return M({geometry:e.geometries[0]});break;default:return null}return null}function x(t){return I(t)||M(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 D({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]=X(!1),[d,m]=X(!1),[g,y]=X(!1),w=W(()=>({geography:t,centroid:I(t),bounds:$(t),coordinates:x(t)}),[t]),R=J(t=>{e&&e(t,w)},[e,w]),E=J(t=>{m(!0),r&&r(t,w)},[r,w]),b=J(t=>{m(!1),p&&h(!1),o&&o(t,w)},[o,w,p]),O=J(t=>{y(!0),a&&a(t,w)},[a,w]),v=J(t=>{y(!1),p&&h(!1),s&&s(t,w)},[s,w,p]),A=J(t=>{h(!0),n&&n(t,w)},[n,w]),T=J(t=>{h(!1),i&&i(t,w)},[i,w]),M=W(()=>p?"pressed":g?"focused":d?"hover":"default",[p,g,d]),S=W(()=>t.svgPath,[t]),D=W(()=>c[M],[c,M]);return V("path",{ref:u,tabIndex:0,className:`rsm-geography ${l}`,d:S,onClick:R,onMouseEnter:E,onMouseLeave:b,onFocus:O,onBlur:v,onMouseDown:A,onMouseUp:T,style:D,...f})}function j({fill:t="transparent",stroke:e="currentcolor",step:r=bt(10,10),className:o="",ref:n,...i}){const{path:a}=_t(),s=at().step(r)();return V("path",{ref:n,d:a(s)||"",fill:t,stroke:e,className:`rsm-graticule ${o}`,...i})}function L({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=Q(void 0),[d,m]=i,[g,y]=a,[w,R]=g,[E,b]=y,O=J(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:ue(l[0],l[1]),zoom:i.k},e.sourceEvent||e)},[c,f,r,o,n,p]);return B(()=>{if(!e.current)return;const i=dt(e.current),a=pt().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:ue(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:ue(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 C({center:t,filterZoomEvent:e,onMoveStart:r,onMoveEnd:o,onMove:n,translateExtent:i=Rt(yt(-1/0,-1/0),yt(1/0,1/0)),scaleExtent:a=wt(1,8),zoom:s=1}){const{width:c,height:l,projection:u}=_t(),f=et(t,yt(0,0)),p=et(s,1),h=Q(null),d=Q(!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]=tt(),[i,a]=X(0),[s,c]=X(0),[l,u]=X(t),[f,p]=X(t),h=et(f,t),d=h!==f,m=W(()=>{const t=f.dragging?f:h;return`translate(${t.x} ${t.y}) scale(${t.k})`},[h,f]),g=J(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]),y=J(t=>{p(t)},[p]);return{position:l,smoothPosition:h,optimisticPosition:f,setPosition:g,setOptimisticPosition:y,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}=L(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=Q({x:0,y:0,k:1}),f=J((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=dt(t.current);s.current=!0,l(()=>{e.current&&g.call(e.current.transform,ht.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 B(()=>{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 N(t){const{center:e=yt(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}=_t();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?Rt(yt(-1/0,-1/0),yt(1/0,1/0)):void 0);else{const e=t;E=e.minZoom??1,b=e.maxZoom??8,R=e.translateExtent}const O=d??wt(E,b),{mapRef:v,transformString:A,position:T}=C({center:e,...o&&{filterZoomEvent:o},...n&&{onMoveStart:n},...i&&{onMove:i},...a&&{onMoveEnd:a},scaleExtent:O,...R&&{translateExtent:R},zoom:r});return V(ce,{value:{x:T.x,y:T.y,k:T.k,transformString:A},children:G("g",{ref:v,children:[V("rect",{width:y,height:w,fill:"transparent"}),V("g",{ref:l,transform:A,className:`rsm-zoomable-group ${s}`,...g,children:c})]})})}function k({id:t="rsm-sphere",fill:e="transparent",stroke:r="currentcolor",strokeWidth:o=.5,className:n="",ref:i,...a}){const{path:s}=_t(),c=W(()=>s({type:"Sphere"}),[s]);return G(rt,{children:[V("defs",{children:V("clipPath",{id:t,children:V("path",{d:c||""})})}),V("path",{ref:i,d:c||"",fill:e,stroke:r,strokeWidth:o,style:{pointerEvents:"none"},className:`rsm-sphere ${n}`,...a})]})}function P({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}=_t(),[h,d]=X(!1),[m,g]=X(!1),[y,w]=X(!1),R=J(t=>{g(!0),r&&r(t)},[r]),E=J(t=>{g(!1),h&&d(!1),o&&o(t)},[o,h]),b=J(t=>{w(!0),a&&a(t)},[a]),O=J(t=>{w(!1),h&&d(!1),s&&s(t)},[s,h]),v=J(t=>{d(!0),n&&n(t)},[n]),A=J(t=>{d(!1),i&&i(t)},[i]),T=W(()=>p(t),[p,t]),I=W(()=>h?"pressed":y?"focused":m?"hover":"default",[h,y,m]),$=W(()=>c?.[I],[c,I]),M=W(()=>{if(!T)return"";const[t,e]=T;return`translate(${t}, ${e})`},[T]);return T?V("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 _({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}=_t();return V("path",{ref:s,d:l({type:"LineString",coordinates:r||[t,e]})||"",className:`rsm-line ${a}`,stroke:o,strokeWidth:n,fill:i,...c})}function U({subject:t,children:e,connectorProps:r,dx:o=30,dy:n=30,curve:i=0,className:a="",ref:s,...c}){const{projection:l}=_t(),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 G("g",{ref:s,transform:`translate(${f+o}, ${p+n})`,className:`rsm-annotation ${a}`,...c,children:[V("path",{d:h,fill:"transparent",stroke:"#000",...r}),e]})}import{jsx as V,jsxs as G,Fragment as F}from"react/jsx-runtime";import Y,{cache as z,createContext as Z,useMemo as W,useContext as H,useEffect as B,useCallback as J,memo as q,useState as X,Component as K,useRef as Q,useTransition as tt,useDeferredValue as et,Fragment as rt}from"react";import*as ot from"d3-geo";import{geoBounds as nt,geoCentroid as it,geoGraticule as at}from"d3-geo";import{prefetchDNS as st,preconnect as ct,preload as lt}from"react-dom";import{feature as ut,mesh as ft}from"topojson-client";import{zoom as pt,zoomIdentity as ht}from"d3-zoom";import{select as dt}from"d3-selection";const mt=t=>t,gt=t=>t,yt=(t,e)=>[t,e],wt=(t,e)=>[t,e],Rt=(t,e)=>[t,e],Et=(t,e)=>[t,e],bt=(t,e)=>[t,e],Ot=(t,e)=>({minZoom:t,maxZoom:e,scaleExtent:wt(t,e),enableZoom:!0}),vt=t=>({translateExtent:Rt(t[0],t[1]),enablePan:!0}),At=(t,e,r)=>({...Ot(t,e),...vt(r)}),Tt={strictMode:!0,allowUnsafeContent:!1,maxStringLength:1e4,maxArrayLength:1e3,maxObjectDepth:10};let It=function(){const t={...Tt};return"undefined"!=typeof process&&"production"===process.env.NODE_ENV&&t.allowUnsafeContent&&(t.allowUnsafeContent=!1),Object.freeze(t)}();const $t={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 Mt=Object.freeze({...$t,ALLOWED_CONTENT_TYPES:Object.freeze([...$t.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...$t.ALLOWED_PROTOCOLS])});const xt={"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}},St={enforceForKnownSources:!0,enforceForAllSources:!1,allowUnknownSources:!0,customSRIMap:{}};let Dt=Object.freeze({...St,customSRIMap:Object.freeze({...St.customSRIMap})});const jt=z(async t=>{const r=Mt,o=Dt;p(t,r),await h(t,r);const n=function(t,r=Dt){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(xt[o]&&r.enforceForKnownSources)return xt[o];if(xt[t]&&r.enforceForKnownSources)return xt[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=Mt){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=Mt){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=Mt.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}`)}(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:Lt,...Ct}=ot,Nt=Z(void 0),kt=Object.freeze({}),Pt=({width:t,height:e,projection:r,projectionConfig:o=kt,children:n})=>{const i=W(()=>(({projectionConfig:t=kt,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 Ct))throw m("PROJECTION_ERROR",`Unknown projection: ${n}`,0,{availableProjections:Object.keys(Ct)});let c=Ct[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=W(()=>({width:t,height:e,projection:i,path:Lt().projection(i)}),[t,e,i]);return V(Nt,{value:s,children:n})},_t=()=>{const t=H(Nt);if(void 0===t)throw m("CONTEXT_ERROR","useMapContext must be used within a MapProvider");return t};class Ut{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 Ut.instance||(Ut.instance=new Ut),Ut.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 Vt=(t,e,r)=>{if("undefined"!=typeof process&&"production"!==process.env.NODE_ENV)try{g(),void 0}catch{void 0,r}},Gt=Ut.getInstance();"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(globalThis.__MAP_DEBUGGER__=Gt);const Ft=Object.freeze({});y.displayName="ComposableMap";var Yt=q(y);const zt={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 Zt=q(R);class Wt{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 Ht={features:new Wt(50),preparedFeatures:new Wt(30),meshData:new Wt(40)},Bt={geographyDataCache:new WeakMap,preparedFeaturesCache:new WeakMap},Jt=3e5,qt=new WeakMap;let Xt=0;const Kt=new Set;class Qt extends K{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 te=V("text",{className:"rsm-loading-text",x:"50%",y:"50%",textAnchor:"middle",children:"Loading..."}),ee=new Set(["geography","children","parseGeographies","className","errorBoundary","onGeographyError","fallback","ref"]);T.displayName="Geographies";var re=q(T,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(!ee.has(t)&&r[t]!==o[t])return!1;return!0});const oe=new Set(["geography","onClick","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className","ref"]);D.displayName="Geography";var ne=q(D,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(!oe.has(t)&&r[t]!==o[t])return!1;return!0});j.displayName="Graticule";var ie=q(j);const ae=Z(void 0),se={x:0,y:0,k:1,transformString:"translate(0 0) scale(1)"},ce=({value:t=se,children:e})=>V(ae,{value:t,children:e}),le=()=>{const t=H(ae);if(void 0===t)throw new Error("useZoomPanContext must be used within a ZoomPanProvider");return t},ue=(t,e)=>[t,e];N.displayName="ZoomableGroup",k.displayName="Sphere";var fe=q(k);P.displayName="Marker";var pe=q(P);_.displayName="Line",U.displayName="Annotation";export{U as Annotation,Yt as ComposableMap,re as Geographies,ne as Geography,A as GeographyErrorBoundary,ie as Graticule,_ as Line,Nt as MapContext,Pt as MapProvider,Zt as MapWithMetadata,pe as Marker,fe as Sphere,ae as ZoomPanContext,ce as ZoomPanProvider,N as ZoomableGroup,yt as createCoordinates,bt as createGraticuleStep,gt as createLatitude,mt as createLongitude,vt as createPanConfig,Et as createParallels,wt as createScaleExtent,Rt as createTranslateExtent,Ot as createZoomConfig,At as createZoomPanConfig,x as getBestGeographyCoordinates,$ as getGeographyBounds,I as getGeographyCentroid,M as getGeographyCoordinates,S as isValidCoordinates,O as useGeographies,_t as useMapContext,C as useZoomPan,le 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 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}; | ||
| //# 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","key","value","Object","entries","sanitizedKey","validateProjectionConfig","config","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","generateCacheKey","additionalKey","baseKey","useGeographies","parseGeographies","path","useMapContext","loadedData","setLoadedData","useState","isLoading","setIsLoading","setError","retryCount","setRetryCount","refetch","c","ignore","devTools","immediate","preloadedUrls","has","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","f","id","properties","NAME","preparedFeatures","svgPath","filter","prepareFeatures","cachePreparedFeatures","cachePreparedFeaturesWeakMap","preparedMeshData","meshData","result","outlinePath","bordersPath","prepareMesh","cacheMeshData","DefaultErrorFallback","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","Math","abs","getGeographyBounds","bounds","geoBounds","southwest","northeast","getGeographyCoordinates","coordinates","geometries","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","enhancedSetOptimisticPosition","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","hash","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","Set","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","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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"} |
+7
-0
@@ -120,2 +120,9 @@ import { Feature, Geometry, FeatureCollection, MultiLineString, LineString } from 'geojson'; | ||
| */ | ||
| /** | ||
| * Updates the shared module-level geography security configuration. | ||
| * | ||
| * This setting is global to the current module instance. In SSR or other | ||
| * long-lived shared runtimes, changing it affects subsequent consumers that | ||
| * import the same package instance. | ||
| */ | ||
| declare function configureGeographySecurity(config: Partial<GeographySecurityConfig>): void; | ||
@@ -122,0 +129,0 @@ /** |
+1
-1
@@ -1,2 +0,2 @@ | ||
| 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=ht){const r={...lt,...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=[...lt.ALLOWED_PROTOCOLS]),Object.freeze({...r,ALLOWED_CONTENT_TYPES:Object.freeze([...r.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...r.ALLOWED_PROTOCOLS])})}function e(t){ht=r(t,ht)}function c(t=!0){if(o())return void 0,void 0;ht=r({ALLOWED_PROTOCOLS:Rt.ALLOWED_PROTOCOLS,STRICT_HTTPS_ONLY:Rt.STRICT_HTTPS_ONLY,ALLOW_HTTP_LOCALHOST:t},ht)}function i(t){return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function s(t){if(!t||"localhost"===t)return!1;const n=i(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 s(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 s(`${t>>8&255}.${255&t}.${n>>8&255}.${255&n}`)}return!1}function a(){return"undefined"!=typeof process&&"node"===process.release?.name&&"undefined"==typeof window}async function f(t){if(!a())return[];const o=i(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 u(t,r=ht){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>ut.maxStringLength)throw n("VALIDATION_ERROR",`String too long: ${o.length} characters (max: ${ut.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=i(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 a=i(c.hostname);if(("localhost"===a||"127.0.0.1"===a||"::1"===a)&&o())throw n("SECURITY_ERROR","Localhost access is not allowed in production",t);if(s(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 l(t,o=ht,r=f){if(u(t,o),r===f&&!a())return;const{hostname:e}=new URL(t),c=i(e);if(c&&"localhost"!==c&&!s(e)&&(await r(c)).some(t=>s(t)))throw n("SECURITY_ERROR",`Hostname ${c} resolves to a private IP address, which is not allowed`,t)}function R(t,o=ht){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 h(t,o=ht){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=ht.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 p(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}`)}function d(){return"undefined"!=typeof process&&"production"===process.env.NODE_ENV}function E(t,n=dt){const o={...pt,...n,...t,customSRIMap:{...pt.customSRIMap,...n.customSRIMap,...t.customSRIMap}};return d()&&(o.enforceForKnownSources=!0),Object.freeze({...o,customSRIMap:Object.freeze({...o.customSRIMap})})}function T(t){dt=E(t,dt)}function y(){dt=E({...dt,enforceForKnownSources:!0,enforceForAllSources:!0,allowUnknownSources:!1})}function w(){if(d())return void 0,void 0;dt=E({...dt,enforceForKnownSources:!1,enforceForAllSources:!1,allowUnknownSources:!0})}async function A(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 g(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 A(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 I(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 S(t,o=dt){const r=I(t);if(o.customSRIMap[r])return o.customSRIMap[r];if(o.customSRIMap[t])return o.customSRIMap[t];if(Ot[r]&&o.enforceForKnownSources)return Ot[r];if(Ot[t]&&o.enforceForKnownSources)return Ot[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 _(t,n){const o=I(t);dt=E({...dt,customSRIMap:{...dt.customSRIMap,[o]:n,...o!==t?{[t]:n}:{}}})}async function L(t,o="sha384"){try{const n=await fetch(t);if(!n.ok)throw new Error(`Failed to fetch ${t}: ${n.statusText}`);const r=await n.arrayBuffer(),e={sha256:"SHA-256",sha384:"SHA-384",sha512:"SHA-512"};return`${o}-${await A(r,e[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)))}}async function b(t,n="sha384"){const o={};for(const r of t)try{const t=await L(r,n);o[r]={algorithm:n,hash:t,enforceIntegrity:!0}}catch(t){void 0}return o}async function C(t){"undefined"!=typeof process&&"production"!==process?.env?.NODE_ENV,0;try{return await Et(t)}catch{return}}function P(t){Promise.resolve().then(function(){return yt}).then(({preloadGeography:n})=>{n(t,!0)}).catch(()=>{}),Et(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=rt(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:et(t,r,(t,n)=>t===n),borders:et(t,r,(t,n)=>t!==n)}}catch{return null}}(t):null}function $(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,n){return t&&0!==t.length?t.map(t=>{const o=n(t);return o?{...t,svgPath:o}:null}).filter(t=>null!==t):[]}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 j(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 G(t){if("object"!=typeof t||null===t)return!1;const n=t;return"FeatureCollection"===n.type&&Array.isArray(n.features)}function H(t){if("object"!=typeof t||null===t)return!1;const n=t;return"Feature"===n.type&&"geometry"in n&&"properties"in n}function V(t){return"object"==typeof t&&null!==t&&("type"in t&&["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"].includes(t.type))}function x(t){return"number"==typeof t&&t>=-180&&t<=180}function F(t){return"number"==typeof t&&t>=-90&&t<=90}function k(t){return Array.isArray(t)&&2===t.length&&x(t[0])&&F(t[1])}function M(t){return"function"==typeof t&&"invert"in t&&"function"==typeof t.invert}function W(t){return"string"==typeof t&&t.startsWith("geo")&&t.length>3}function X(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 B(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 J(t){return j(t)||G(t)}function q(t,n){return"number"==typeof t&&"number"==typeof n&&t>0&&n>0&&Number.isFinite(t)&&Number.isFinite(n)}function Z(t){return n=>t(n)}function K(t,n,o,r){const e=new Error(n);return e.type=t,o&&(e.geography=o),r&&(e.details=r),e}function z(t,n,o){return K("VALIDATION_ERROR",t,n,o)}function Q(t,n,o){return K("SECURITY_ERROR",t,n,o)}function tt(t,n,o){return K("PROJECTION_ERROR",t,n,o)}function nt(t,n,o){return K("CONFIGURATION_ERROR",t,n,o)}function ot(t,n,o){return K("CONTEXT_ERROR",t,n,o)}import{feature as rt,mesh as et}from"topojson-client";import{cache as ct}from"react";import{prefetchDNS as it,preconnect as st,preload as at}from"react-dom";const ft={strictMode:!0,allowUnsafeContent:!1,maxStringLength:1e4,maxArrayLength:1e3,maxObjectDepth:10};let ut=function(){const t={...ft};return"undefined"!=typeof process&&"production"===process.env.NODE_ENV&&t.allowUnsafeContent&&(t.allowUnsafeContent=!1),Object.freeze(t)}();const 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},Rt={...lt,ALLOWED_PROTOCOLS:["https:","http:"],ALLOW_HTTP_LOCALHOST:!0,STRICT_HTTPS_ONLY:!1};let ht=Object.freeze({...lt,ALLOWED_CONTENT_TYPES:Object.freeze([...lt.ALLOWED_CONTENT_TYPES]),ALLOWED_PROTOCOLS:Object.freeze([...lt.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}},pt={enforceForKnownSources:!0,enforceForAllSources:!1,allowUnknownSources:!0,customSRIMap:{}};let dt=Object.freeze({...pt,customSRIMap:Object.freeze({...pt.customSRIMap})});const Et=ct(async t=>{const o=ht,r=dt;u(t,o),await l(t,o);const e=S(t,r),{controller:c,cleanup:i}=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;u(i,r),await l(i,r),e=i}throw n("SECURITY_ERROR","Too many redirects (exceeded 5 hops)",t)}(t,(s=c.signal,a=o,{signal:s,headers:{Accept:a.ALLOWED_CONTENT_TYPES.join(", "),"Cache-Control":"public, max-age=3600"},mode:"cors",credentials:"omit",redirect:"manual"}),o);if(i(),!r.ok)throw n("GEOGRAPHY_LOAD_ERROR",`HTTP ${r.status}: ${r.statusText}`,t);R(r,o),await h(r,o);const f=await O(r,o.MAX_RESPONSE_SIZE);return e&&await m(f,t,e),await async function(t,o){try{const n=(new TextDecoder).decode(t),o=JSON.parse(n);return p(o),o}catch(t){if(t instanceof SyntaxError)throw n("GEOGRAPHY_PARSE_ERROR","Invalid JSON format in geography data",o,t);throw t}}(f,t)}catch(r){throw i(),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 s,a}),Tt=new Set;var yt=Object.freeze({__proto__:null,preloadGeography:function(t,n=!1){if("string"==typeof t&&t&&!Tt.has(t))try{u(t);const o=new URL(t);it(o.origin),st(o.origin),Tt.add(t),(n||"undefined"!=typeof process&&"production"===process.env.NODE_ENV)&&at(t,{as:"fetch",crossOrigin:"anonymous"})}catch(t){"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&(t instanceof Error?t.message:String(t))}}});export{lt as DEFAULT_GEOGRAPHY_FETCH_CONFIG,pt as DEFAULT_SRI_CONFIG,Rt as DEVELOPMENT_GEOGRAPHY_FETCH_CONFIG,Ot as KNOWN_GEOGRAPHY_SRI,_ as addCustomSRI,e as configureGeographySecurity,T as configureSRI,nt as createConfigurationError,v as createConnectorPath,ot as createContextError,K as createGeographyError,n as createGeographyFetchError,tt as createProjectionError,Q as createSecurityError,Z as createTypeGuard,z as createValidationError,w as disableSRI,c as enableDevelopmentMode,y as enableStrictSRI,C as fetchGeographies,Et as fetchGeographiesCache,b as generateSRIForUrls,L as generateSRIHash,t as getCoords,D as getFeatures,N as getMesh,S as getSRIForUrl,H as isFeature,G as isFeatureCollection,M as isGeoProjection,X as isGeographyError,W as isProjectionName,U as isString,j as isTopology,k as isValidCoordinates,J as isValidGeographyData,B as isValidGeographyUrl,V as isValidGeometry,F as isValidLatitude,x as isValidLongitude,q as isValidMapDimensions,P as preloadGeography,Y as prepareFeatures,$ as prepareMesh,O as readResponseWithSizeLimit,R as validateContentType,p as validateGeographyData,u as validateGeographyUrl,h as validateResponseSize,g as validateSRI}; | ||
| 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}; | ||
| //# 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","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","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","fetch","ok","statusText","algorithmMap","generateSRIForUrls","urls","sriMap","enforceIntegrity","fetchGeographies","fetchGeographiesCache","preloadGeography","Promise","resolve","then","preloading","preloadUtil","isString","geo","getFeatures","geographies","parseGeographies","Array","isArray","topology","objectKeys","keys","objects","firstObjectKey","geometryObject","featureCollection","feature","features","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","TIMEOUT_MS","cache","securityConfig","sriEnforcementConfig","sriConfig","controller","cleanup","timeoutMs","AbortController","timeoutId","setTimeout","abort","clearTimeout","createTimeoutController","options","currentUrl","hop","status","location","redirectUrl","fetchWithRedirectValidation","signal","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","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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"} |
+12
-12
| { | ||
| "name": "@vnedyalk0v/react19-simple-maps", | ||
| "version": "2.0.6", | ||
| "version": "2.0.7", | ||
| "description": "An svg map chart component built exclusively for React 19+ - Modern TypeScript-first library with cutting-edge React patterns", | ||
@@ -107,11 +107,11 @@ "type": "module", | ||
| "@types/d3-zoom": "^3.0.8", | ||
| "@types/node": "^24.3.0", | ||
| "@types/node": "^25.5.2", | ||
| "@types/react": "^19.1.12", | ||
| "@types/react-dom": "^19.1.9", | ||
| "@types/topojson-client": "^3.1.5", | ||
| "@typescript-eslint/eslint-plugin": "^8.41.0", | ||
| "@typescript-eslint/parser": "^8.41.0", | ||
| "@vitest/coverage-v8": "^4.0.15", | ||
| "@vitest/ui": "^4.0.15", | ||
| "eslint": "^9.34.0", | ||
| "@typescript-eslint/eslint-plugin": "^8.58.1", | ||
| "@typescript-eslint/parser": "^8.58.1", | ||
| "@vitest/coverage-v8": "^4.1.4", | ||
| "@vitest/ui": "^4.1.4", | ||
| "eslint": "^9.39.4", | ||
| "eslint-config-prettier": "^10.1.8", | ||
@@ -122,6 +122,6 @@ "eslint-plugin-prettier": "^5.5.4", | ||
| "glob": "^13.0.0", | ||
| "jsdom": "^29.0.0", | ||
| "jsdom": "^29.0.2", | ||
| "prettier": "^3.6.2", | ||
| "react": "^19.1.1", | ||
| "react-dom": "^19.1.1", | ||
| "react": "^19.2.5", | ||
| "react-dom": "^19.2.5", | ||
| "rollup": "^4.50.0", | ||
@@ -131,4 +131,4 @@ "rollup-plugin-analyzer": "^4.0.0", | ||
| "tslib": "^2.8.1", | ||
| "typescript": "^5.9.2", | ||
| "vitest": "^4.0.15" | ||
| "typescript": "^5.9.3", | ||
| "vitest": "^4.1.4" | ||
| }, | ||
@@ -135,0 +135,0 @@ "peerDependencies": { |
+24
-0
@@ -14,2 +14,9 @@ # @vnedyalk0v/react19-simple-maps | ||
| ## Why this package? | ||
| - Built specifically for **React 19+** instead of preserving compatibility with older React release lines. | ||
| - Ships as a **modern ESM-only library** with explicit exports, tree-shakeable output, and TypeScript definitions. | ||
| - Provides a **TypeScript-first API** with branded coordinate helpers that reduce common map-coordinate mistakes. | ||
| - Includes **safer URL-based geography loading** with validation, HTTPS-first defaults, response-size checks, and optional SRI helpers. | ||
| ## Key Features | ||
@@ -29,2 +36,4 @@ | ||
| - [Examples](./examples/) | ||
| - [Support Policy](./docs/support.md) | ||
| - [CI/CD Architecture](./docs/ci-cd.md) | ||
| - [Changelog](./CHANGELOG.md) | ||
@@ -58,2 +67,4 @@ - [Issues](https://github.com/vnedyalk0v/react19-simple-maps/issues) | ||
| For support expectations, compatibility boundaries, and release behavior, see the [Support Policy](./docs/support.md). | ||
| ## Utilities Subpath | ||
@@ -70,2 +81,13 @@ | ||
| The `./utils` entry includes both recommended helpers and more advanced low-level utilities. Prefer the documented helpers below unless you have a specific integration need. | ||
| ### Recommended `./utils` helpers | ||
| For most applications, start with these helpers: | ||
| - Geography loading and preparation: `fetchGeographiesCache`, `preloadGeography`, `getFeatures`, `getMesh`, `prepareFeatures`, `prepareMesh`, `createConnectorPath` | ||
| - Validation and security: `validateGeographyUrl`, `validateGeographyData`, `configureGeographySecurity`, `enableDevelopmentMode` | ||
| - Integrity helpers: `configureSRI`, `enableStrictSRI`, `disableSRI`, `addCustomSRI`, `getSRIForUrl`, `validateSRI` | ||
| - Data guards: `isTopology`, `isFeatureCollection`, `isFeature`, `isValidGeographyUrl`, `isValidGeographyData` | ||
| ## Migration Notes (from react-simple-maps) | ||
@@ -225,2 +247,4 @@ | ||
| Prefer `fetchGeographiesCache` for direct utility-based loading. `fetchGeographies` remains available for compatibility but is deprecated. | ||
| ```tsx | ||
@@ -227,0 +251,0 @@ import { |
198485
2.31%1003
0.6%295
8.86%12
-20%