{"_id":"maplibre-gl-overture-maps","_rev":"7-5a15b4b88582d7e57ad1391ce690ac35","name":"maplibre-gl-overture-maps","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"maplibre-gl-overture-maps","version":"0.1.0","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"author":{"name":"Qiusheng Wu"},"license":"MIT","_id":"maplibre-gl-overture-maps@0.1.0","maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"dist":{"shasum":"17551f49ae266ba1521a203e06b85ce38128b857","tarball":"https://registry.npmjs.org/maplibre-gl-overture-maps/-/maplibre-gl-overture-maps-0.1.0.tgz","fileCount":20,"integrity":"sha512-bRXBORkJtyXeql8T1Lq2SEfEo4bJgBBaqxhxdWbdyUCoZ+lGttOpQOzCozNtAFRKB/vQTV7yM1SWA7cm9+f0eA==","signatures":[{"sig":"MEYCIQD7xwvO8FEOilhbVleQOTwb1c5swJF7UCV4B7WEMAefdAIhAOwVfj6o92gPEmxGvRBVqj4I++EzAvPS0nuyo+gefGH8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":812274},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/types/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/types/react.d.ts","default":"./dist/react.mjs"},"require":{"types":"./dist/types/react.d.cts","default":"./dist/react.cjs"}},"./style.css":"./dist/maplibre-gl-overture-maps.css"},"gitHead":"392266a3d3b8b6a8dd5a85d6ccce49232ec023e6","scripts":{"dev":"vite","lint":"eslint . --report-unused-disable-directives --max-warnings 0","test":"vitest --run","build":"npm run build:lib && npm run build:geolibre","format":"prettier --write \"src/**/*.{ts,tsx,css}\"","preview":"vite preview","test:ui":"vitest --ui","build:lib":"tsc -p tsconfig.json && vite build","test:coverage":"vitest --coverage","build:examples":"vite build --config vite.examples.config.ts","build:geolibre":"vite build --config vite.geolibre.config.ts","prepublishOnly":"npm run build:lib","serve:geolibre":"node scripts/serve-geolibre-plugin.mjs","package:geolibre":"npm run build:geolibre && node scripts/package-geolibre-plugin.mjs"},"_npmUser":{"name":"giswqs","email":"giswqs@gmail.com"},"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"_npmVersion":"11.14.1","description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","directories":{},"sideEffects":["*.css"],"_nodeVersion":"26.2.0","dependencies":{"pmtiles":"^4.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","jsdom":"^29.1.1","react":"^19.2.7","eslint":"^10.4.1","vitest":"^4.1.8","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^19.2.7","@eslint/js":"^10.0.1","@vitest/ui":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","maplibre-gl":"^5.24.0","@types/react":"^19.2.17","vite-plugin-dts":"^5.0.2","@types/react-dom":"^19.2.3","typescript-eslint":"^8.60.1","@vitejs/plugin-react":"^6.0.2","@testing-library/react":"^16.3.2","@microsoft/api-extractor":"^7.58.7","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","maplibre-gl":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/maplibre-gl-overture-maps_0.1.0_1780874728913_0.9992671724234934","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"maplibre-gl-overture-maps","version":"0.2.0","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"author":{"name":"Qiusheng Wu"},"license":"MIT","_id":"maplibre-gl-overture-maps@0.2.0","maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"dist":{"shasum":"46cf47ec7b1f7a5e0e14a0123a2c530eeed0a2da","tarball":"https://registry.npmjs.org/maplibre-gl-overture-maps/-/maplibre-gl-overture-maps-0.2.0.tgz","fileCount":20,"integrity":"sha512-RDIz++bONBnF0li+4/OSKUiOxLTxLNkDTxcalyrTz07V7Sv+85IZ1I68+Vn8guCu0EycWY95I3L7GIS59WwWAg==","signatures":[{"sig":"MEQCIEV22j/nfCUyc8gZS5p5+xPkupQHsuBCOd9Z8v/m8lnTAiAmlpc6MGW84Sx65OGcQCImKPOtR2bD7JA51mKPgWUVDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/maplibre-gl-overture-maps@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":814934},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/types/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/types/react.d.ts","default":"./dist/react.mjs"},"require":{"types":"./dist/types/react.d.cts","default":"./dist/react.cjs"}},"./style.css":"./dist/maplibre-gl-overture-maps.css"},"gitHead":"6967bb28a0e3728c30c33af48e977c0e4a64b93f","scripts":{"dev":"vite","lint":"eslint . --report-unused-disable-directives --max-warnings 0","test":"vitest --run","build":"npm run build:lib && npm run build:geolibre","format":"prettier --write \"src/**/*.{ts,tsx,css}\"","preview":"vite preview","test:ui":"vitest --ui","build:lib":"tsc -p tsconfig.json && vite build","test:coverage":"vitest --coverage","build:examples":"vite build --config vite.examples.config.ts","build:geolibre":"vite build --config vite.geolibre.config.ts","prepublishOnly":"npm run build:lib","serve:geolibre":"node scripts/serve-geolibre-plugin.mjs","package:geolibre":"npm run build:geolibre && node scripts/package-geolibre-plugin.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4c12afb-a597-4129-ab69-548310425db4"}},"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"_npmVersion":"11.16.0","description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.16.0","dependencies":{"pmtiles":"^4.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","jsdom":"^29.1.1","react":"^19.2.7","eslint":"^10.4.1","vitest":"^4.1.8","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^19.2.7","@eslint/js":"^10.0.1","@vitest/ui":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","maplibre-gl":"^5.24.0","@types/react":"^19.2.17","vite-plugin-dts":"^5.0.2","@types/react-dom":"^19.2.3","typescript-eslint":"^8.60.1","@vitejs/plugin-react":"^6.0.2","@testing-library/react":"^16.3.2","@microsoft/api-extractor":"^7.58.7","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","maplibre-gl":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/maplibre-gl-overture-maps_0.2.0_1780876689291_0.7577638661105093","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"maplibre-gl-overture-maps","version":"0.3.0","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"author":{"name":"Qiusheng Wu"},"license":"MIT","_id":"maplibre-gl-overture-maps@0.3.0","maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"dist":{"shasum":"ae00b1dbf20552efaf6838f875207ef9efbe3700","tarball":"https://registry.npmjs.org/maplibre-gl-overture-maps/-/maplibre-gl-overture-maps-0.3.0.tgz","fileCount":20,"integrity":"sha512-kjdJBt4JFrNz9n67lY3bYvTC7swZhtnjkKq2yN76EVf4PQw909QCzFaLeLTkqow2HBZ3gA5Z5Z7ueHZtTEcT7w==","signatures":[{"sig":"MEUCIQCQtRaaHrmoLkQg/V1+smnZtcTpC3CSD4EfosiVSV+yeQIgKq1h1O7dRJh402YLCi0TSEKtl5lSKdNpat4PAzCXCwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/maplibre-gl-overture-maps@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":819604},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/types/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/types/react.d.ts","default":"./dist/react.mjs"},"require":{"types":"./dist/types/react.d.cts","default":"./dist/react.cjs"}},"./style.css":"./dist/maplibre-gl-overture-maps.css"},"gitHead":"3ea9b6ad52a02c4111a8c3cae83083a4874a138d","scripts":{"dev":"vite","lint":"eslint . --report-unused-disable-directives --max-warnings 0","test":"vitest --run","build":"npm run build:lib && npm run build:geolibre","format":"prettier --write \"src/**/*.{ts,tsx,css}\"","preview":"vite preview","test:ui":"vitest --ui","build:lib":"tsc -p tsconfig.json && vite build","test:coverage":"vitest --coverage","build:examples":"vite build --config vite.examples.config.ts","build:geolibre":"vite build --config vite.geolibre.config.ts","prepublishOnly":"npm run build:lib","serve:geolibre":"node scripts/serve-geolibre-plugin.mjs","package:geolibre":"npm run build:geolibre && node scripts/package-geolibre-plugin.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4c12afb-a597-4129-ab69-548310425db4"}},"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"_npmVersion":"11.16.0","description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.16.0","dependencies":{"pmtiles":"^4.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","jsdom":"^29.1.1","react":"^19.2.7","eslint":"^10.4.1","vitest":"^4.1.8","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^19.2.7","@eslint/js":"^10.0.1","@vitest/ui":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","maplibre-gl":"^5.24.0","@types/react":"^19.2.17","vite-plugin-dts":"^5.0.2","@types/react-dom":"^19.2.3","typescript-eslint":"^8.60.1","@vitejs/plugin-react":"^6.0.2","@testing-library/react":"^16.3.2","@microsoft/api-extractor":"^7.58.7","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","maplibre-gl":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/maplibre-gl-overture-maps_0.3.0_1780881824574_0.980930689885261","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"maplibre-gl-overture-maps","version":"0.3.1","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"author":{"name":"Qiusheng Wu"},"license":"MIT","_id":"maplibre-gl-overture-maps@0.3.1","maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"dist":{"shasum":"64e54e8afcc3b84b161760707ab63b9c6f9c1568","tarball":"https://registry.npmjs.org/maplibre-gl-overture-maps/-/maplibre-gl-overture-maps-0.3.1.tgz","fileCount":20,"integrity":"sha512-JL7a7WE4BXhO367JXqmZyrcVAzEB1Xbh4AVLgqAD6iz1sZJ28yGihN9pBwhp8XUxeekX7rS6OX1lmk4eklEaWA==","signatures":[{"sig":"MEUCIQCPxn7M5MvPx6A5O4vgspPYaqqgI9ZP4y22P3WeY+OBCwIgbNS3uM5kRHY6hzN1qDqDsREOu3YVZnaF2+zcnDytrF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/maplibre-gl-overture-maps@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":829332},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/types/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/types/react.d.ts","default":"./dist/react.mjs"},"require":{"types":"./dist/types/react.d.cts","default":"./dist/react.cjs"}},"./style.css":"./dist/maplibre-gl-overture-maps.css"},"gitHead":"9554883b0f4ec8eec64332a7683ed718dd10b736","scripts":{"dev":"vite","lint":"eslint . --report-unused-disable-directives --max-warnings 0","test":"vitest --run","build":"npm run build:lib && npm run build:geolibre","format":"prettier --write \"src/**/*.{ts,tsx,css}\"","preview":"vite preview","test:ui":"vitest --ui","build:lib":"tsc -p tsconfig.json && vite build","test:coverage":"vitest --coverage","build:examples":"vite build --config vite.examples.config.ts","build:geolibre":"vite build --config vite.geolibre.config.ts","prepublishOnly":"npm run build:lib","serve:geolibre":"node scripts/serve-geolibre-plugin.mjs","package:geolibre":"npm run build:geolibre && node scripts/package-geolibre-plugin.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4c12afb-a597-4129-ab69-548310425db4"}},"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"_npmVersion":"11.17.0","description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.16.0","dependencies":{"pmtiles":"^4.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","jsdom":"^29.1.1","react":"^19.2.7","eslint":"^10.4.1","vitest":"^4.1.8","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^19.2.7","@eslint/js":"^10.0.1","@vitest/ui":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","maplibre-gl":"^5.24.0","@types/react":"^19.2.17","vite-plugin-dts":"^5.0.2","@types/react-dom":"^19.2.3","typescript-eslint":"^8.60.1","@vitejs/plugin-react":"^6.0.2","@testing-library/react":"^16.3.2","@microsoft/api-extractor":"^7.58.7","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","maplibre-gl":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/maplibre-gl-overture-maps_0.3.1_1781990007046_0.968529990911426","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"maplibre-gl-overture-maps","version":"0.3.2","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"author":{"name":"Qiusheng Wu"},"license":"MIT","_id":"maplibre-gl-overture-maps@0.3.2","maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"dist":{"shasum":"a64559fc73c32646a5cd13cf63f5c7021d1865ca","tarball":"https://registry.npmjs.org/maplibre-gl-overture-maps/-/maplibre-gl-overture-maps-0.3.2.tgz","fileCount":20,"integrity":"sha512-o4Qx/SEn01Q5kv7bkOQ+DcqhueAKHt94V7BlaXg/SmcnffwOv0l7bJouSg+KnHTjCisbprB84KSKmXie6Ca4tg==","signatures":[{"sig":"MEUCIDO7d4LFNlAkJjge/fkNivQoaB2zJWYnPEc2i9Maaum+AiEA0EvgajBX3hRidbQ0qL0Wb1aTiGl9bW2FhoT43DbJ4Ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/maplibre-gl-overture-maps@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":830400},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/types/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/types/react.d.ts","default":"./dist/react.mjs"},"require":{"types":"./dist/types/react.d.cts","default":"./dist/react.cjs"}},"./style.css":"./dist/maplibre-gl-overture-maps.css"},"gitHead":"0e5f6da5d44c069987824a2344dafbb64ab70377","scripts":{"dev":"vite","lint":"eslint . --report-unused-disable-directives --max-warnings 0","test":"vitest --run","build":"npm run build:lib && npm run build:geolibre","format":"prettier --write \"src/**/*.{ts,tsx,css}\"","preview":"vite preview","test:ui":"vitest --ui","build:lib":"tsc -p tsconfig.json && vite build","test:coverage":"vitest --coverage","build:examples":"vite build --config vite.examples.config.ts","build:geolibre":"vite build --config vite.geolibre.config.ts","prepublishOnly":"npm run build:lib","serve:geolibre":"node scripts/serve-geolibre-plugin.mjs","package:geolibre":"npm run build:geolibre && node scripts/package-geolibre-plugin.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4c12afb-a597-4129-ab69-548310425db4"}},"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"_npmVersion":"12.0.1","description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.18.0","dependencies":{"pmtiles":"^4.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","jsdom":"^29.1.1","react":"^19.2.7","eslint":"^10.4.1","vitest":"^4.1.8","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^19.2.7","@eslint/js":"^10.0.1","@vitest/ui":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","maplibre-gl":"^5.24.0","@types/react":"^19.2.17","vite-plugin-dts":"^5.0.2","@types/react-dom":"^19.2.3","typescript-eslint":"^8.60.1","@vitejs/plugin-react":"^6.0.2","@testing-library/react":"^16.3.2","@microsoft/api-extractor":"^7.58.7","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","maplibre-gl":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/maplibre-gl-overture-maps_0.3.2_1785217685742_0.4829678104186075","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"maplibre-gl-overture-maps","version":"0.4.0","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"author":{"name":"Qiusheng Wu"},"license":"MIT","_id":"maplibre-gl-overture-maps@0.4.0","maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"dist":{"shasum":"6e85b927157db23463fd0a91c442ffc64590df9d","tarball":"https://registry.npmjs.org/maplibre-gl-overture-maps/-/maplibre-gl-overture-maps-0.4.0.tgz","fileCount":20,"integrity":"sha512-OXagJR+kgD+SDugf3nfGngJ9VFBlflk4gq13rqtk/2d8IO2OqQODnrZ2EIn3r6XZGI9HHC9Qx+LTXUhX2pEtvw==","signatures":[{"sig":"MEUCIQCP6jXJk30KdU2y8EWswalcUAkoklW6qOtblmqET47MugIgIUVtv+pxIoi7NMhjj6Au8NuHKsNF0JhaT4eNKvNN0JU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG8rqltuOD/eoHn6kTHbdKJCnMpOGdhhUl8326mH97oxAiA5mbI96994lZOJ/I7PfhipImoqrsBjkryxelaQTwA7Rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/maplibre-gl-overture-maps@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":849625},"main":"./dist/index.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/types/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/types/react.d.ts","default":"./dist/react.mjs"},"require":{"types":"./dist/types/react.d.cts","default":"./dist/react.cjs"}},"./style.css":"./dist/maplibre-gl-overture-maps.css"},"gitHead":"5ac4a3bc85aaad8b4f8ba72ce3f93e203f875526","scripts":{"dev":"vite","lint":"eslint . --report-unused-disable-directives --max-warnings 0","test":"vitest --run","build":"npm run build:lib && npm run build:geolibre","format":"prettier --write \"src/**/*.{ts,tsx,css}\"","preview":"vite preview","test:ui":"vitest --ui","build:lib":"tsc -p tsconfig.json && vite build","test:coverage":"vitest --coverage","build:examples":"vite build --config vite.examples.config.ts","build:geolibre":"vite build --config vite.geolibre.config.ts","prepublishOnly":"npm run build:lib","serve:geolibre":"node scripts/serve-geolibre-plugin.mjs","package:geolibre":"npm run build:geolibre && node scripts/package-geolibre-plugin.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4c12afb-a597-4129-ab69-548310425db4"}},"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"_npmVersion":"12.0.2","description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.20.0","dependencies":{"pmtiles":"^4.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","jsdom":"^29.1.1","react":"^19.2.7","eslint":"^10.4.1","vitest":"^4.1.8","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^19.2.7","@eslint/js":"^10.0.1","@vitest/ui":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","maplibre-gl":"^5.24.0","@types/react":"^19.2.17","vite-plugin-dts":"^5.0.2","@types/react-dom":"^19.2.3","typescript-eslint":"^8.60.1","@vitejs/plugin-react":"^6.0.2","@testing-library/react":"^16.3.2","@microsoft/api-extractor":"^7.58.7","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","maplibre-gl":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/maplibre-gl-overture-maps_0.4.0_1789529738679_0.035650755857053795","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"maplibre-gl-overture-maps@0.4.1","bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"dist":{"shasum":"e05e92a2002e368bc865324404bec38c2bc173cf","tarball":"https://registry.npmjs.org/maplibre-gl-overture-maps/-/maplibre-gl-overture-maps-0.4.1.tgz","fileCount":20,"integrity":"sha512-oeTs9oYE4tuK9nsa4abmRUPFmehEuIpyEhQ3pomP4M0Z0mbsM6RMkHZsIHrSHu1ggwQ1kEkgdS/mhjtjaQaa6w==","signatures":[{"sig":"MEUCIQCYh3B+OHswvVzWPS5MvIdptb55xe3goRCNOo42PDjyJAIgKAuPqI5/CkA1FEIuapeddhwnE1pCf/NvNPHEC3fdqlo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDk5YG/fA/AhHtLmdPKadI6uTgh7PAOAVP65fPNioFsBwIgTSExQFO0bXyXQj3d/d2WpkVkoPLt35AGZ0FmjhmaJZE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/maplibre-gl-overture-maps@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":884179},"main":"./dist/index.cjs","name":"maplibre-gl-overture-maps","type":"module","types":"./dist/types/index.d.ts","author":{"name":"Qiusheng Wu"},"module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/types/index.d.cts","default":"./dist/index.cjs"}},"./react":{"import":{"types":"./dist/types/react.d.ts","default":"./dist/react.mjs"},"require":{"types":"./dist/types/react.d.cts","default":"./dist/react.cjs"}},"./style.css":"./dist/maplibre-gl-overture-maps.css"},"gitHead":"484d60c43dcb84f6a32848f3746808d7ed6b77be","license":"MIT","scripts":{"dev":"vite","lint":"eslint . --report-unused-disable-directives --max-warnings 0","test":"vitest --run","build":"npm run build:lib && npm run build:geolibre","format":"prettier --write \"src/**/*.{ts,tsx,css}\"","preview":"vite preview","test:ui":"vitest --ui","build:lib":"tsc -p tsconfig.json && vite build","test:coverage":"vitest --coverage","build:examples":"vite build --config vite.examples.config.ts","build:geolibre":"vite build --config vite.geolibre.config.ts","prepublishOnly":"npm run build:lib","serve:geolibre":"node scripts/serve-geolibre-plugin.mjs","package:geolibre":"npm run build:geolibre && node scripts/package-geolibre-plugin.mjs"},"version":"0.4.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a4c12afb-a597-4129-ab69-548310425db4"}},"homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"_npmVersion":"12.0.2","description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","directories":{},"maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"sideEffects":["*.css"],"_nodeVersion":"24.20.0","dependencies":{"pmtiles":"^4.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","jsdom":"^29.1.1","react":"^19.2.7","eslint":"^10.4.1","vitest":"^4.1.8","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^19.2.7","@eslint/js":"^10.0.1","@vitest/ui":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","maplibre-gl":"^5.24.0","@types/react":"^19.2.17","vite-plugin-dts":"^5.0.2","@types/react-dom":"^19.2.3","typescript-eslint":"^8.60.1","@vitejs/plugin-react":"^6.0.2","@testing-library/react":"^16.3.2","@microsoft/api-extractor":"^7.58.7","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","maplibre-gl":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/maplibre-gl-overture-maps_0.4.1_1790075503505_0.28295268954675357"}}},"time":{"created":"2026-06-07T23:25:28.791Z","modified":"2026-09-22T11:11:43.978Z","0.1.0":"2026-06-07T23:25:29.117Z","0.2.0":"2026-06-07T23:58:09.467Z","0.3.0":"2026-06-08T01:23:44.745Z","0.3.1":"2026-06-20T21:13:27.197Z","0.3.2":"2026-07-28T05:48:05.880Z","0.4.0":"2026-09-16T03:35:38.778Z","0.4.1":"2026-09-22T11:11:43.614Z"},"bugs":{"url":"https://github.com/opengeos/maplibre-gl-overture-maps/issues"},"author":{"name":"Qiusheng Wu"},"license":"MIT","homepage":"https://github.com/opengeos/maplibre-gl-overture-maps#readme","keywords":["geolibre","maplibre","maplibre-gl","map","plugin","control","react","typescript","overture","overture-maps","pmtiles","vector-tiles"],"repository":{"url":"git+https://github.com/opengeos/maplibre-gl-overture-maps.git","type":"git"},"description":"A MapLibre GL JS plugin for visualizing Overture Maps PMTiles themes","maintainers":[{"name":"giswqs","email":"giswqs@gmail.com"}],"readme":"# MapLibre GL Overture Maps\n\nA [MapLibre GL JS](https://maplibre.org/) plugin for visualizing [Overture Maps](https://overturemaps.org/) PMTiles themes. It adds a collapsible map control with a release selector and per-theme visibility and opacity controls, rendering an \"x-ray\" style overlay similar to [explore.overturemaps.org](https://explore.overturemaps.org/). A React wrapper and a GeoLibre Desktop plugin bundle are included.\n\n[![npm version](https://img.shields.io/npm/v/maplibre-gl-overture-maps.svg)](https://www.npmjs.com/package/maplibre-gl-overture-maps)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/p/github/opengeos/maplibre-gl-overture-maps)\n[![Open in StackBlitz](https://img.shields.io/badge/Open%20in-StackBlitz-blue?logo=stackblitz)](https://stackblitz.com/github/opengeos/maplibre-gl-overture-maps)\n\n## Features\n\n- **All six Overture themes** - Addresses, base, buildings, divisions, places, and transportation, each loaded from the official Overture PMTiles distribution\n- **Dynamic releases** - Discovers the releases the [Overture PMTiles distribution](https://overturemaps-extras-us-west-2.s3.us-west-2.amazonaws.com/tiles/) actually carries at runtime, with a dropdown to switch releases and an option to pin one\n- **Per-layer styling** - Expand a theme to toggle each source layer individually; a style button opens an inline editor for the layer's color, size (point radius / line width), and opacity\n- **GeoJSON export** - A download button on each layer exports the features rendered in the current map view to a GeoJSON file. Gated by a minimum zoom (`exportMinZoom`) so exports stay limited to a small area\n- **Feature inspection** - Click any rendered Overture feature to see its properties in a popup; toggle the picker on or off from the panel\n- **Resizable panel** - Drag the panel edge to resize its width; the handle adapts to whichever corner the control sits in\n- **Dark and light mode** - The control UI follows `prefers-color-scheme` by default and can be forced light or dark\n- **Small-screen friendly** - The panel stays within the viewport and scrolls vertically when space is tight\n- **TypeScript Support** - Full TypeScript support with exported type definitions\n- **React Integration** - React wrapper component and custom hook\n- **GeoLibre Bundle Output** - Builds a zip with root `plugin.json`, bundled ESM, and CSS for GeoLibre Desktop\n- **Modern Build Setup** - Vite-based library and GeoLibre bundle builds\n- **Testing** - Vitest setup with React Testing Library\n- **CI/CD Ready** - GitHub Actions for npm publishing, GitHub Pages, and Docker\n\n## Installation\n\n```bash\nnpm install maplibre-gl-overture-maps\n```\n\n`maplibre-gl` (>=3.0.0) is a peer dependency. The [pmtiles](https://github.com/protomaps/PMTiles) package is bundled as a regular dependency, and the control registers the `pmtiles://` protocol with MapLibre automatically when added to a map.\n\n## Quick Start\n\n### Vanilla JavaScript/TypeScript\n\n```typescript\nimport maplibregl from \"maplibre-gl\";\nimport { OvertureMapsControl } from \"maplibre-gl-overture-maps\";\nimport \"maplibre-gl-overture-maps/style.css\";\n\nconst map = new maplibregl.Map({\n  container: \"map\",\n  style: \"https://tiles.openfreemap.org/styles/positron\",\n  center: [-74.006, 40.7128],\n  zoom: 14,\n});\n\nmap.on(\"load\", () => {\n  const control = new OvertureMapsControl({\n    collapsed: false,\n    visibleThemes: [\"buildings\", \"transportation\", \"places\"],\n  });\n\n  map.addControl(control, \"top-right\");\n});\n```\n\n### React\n\n```tsx\nimport { useEffect, useRef, useState } from \"react\";\nimport maplibregl, { Map } from \"maplibre-gl\";\nimport {\n  OvertureMapsControlReact,\n  useOvertureMapsState,\n} from \"maplibre-gl-overture-maps/react\";\nimport \"maplibre-gl-overture-maps/style.css\";\n\nfunction App() {\n  const mapContainer = useRef<HTMLDivElement>(null);\n  const [map, setMap] = useState<Map | null>(null);\n  const { state, toggle } = useOvertureMapsState();\n\n  useEffect(() => {\n    if (!mapContainer.current) return;\n\n    const mapInstance = new maplibregl.Map({\n      container: mapContainer.current,\n      style: \"https://tiles.openfreemap.org/styles/positron\",\n      center: [-74.006, 40.7128],\n      zoom: 14,\n    });\n\n    mapInstance.on(\"load\", () => setMap(mapInstance));\n\n    return () => mapInstance.remove();\n  }, []);\n\n  return (\n    <div style={{ width: \"100%\", height: \"100vh\" }}>\n      <div ref={mapContainer} style={{ width: \"100%\", height: \"100%\" }} />\n      {map && (\n        <OvertureMapsControlReact\n          map={map}\n          collapsed={state.collapsed}\n          onStateChange={(newState) => console.log(newState)}\n        />\n      )}\n    </div>\n  );\n}\n```\n\n## Overture Themes\n\nEach theme is a separate PMTiles archive from the official distribution at `https://overturemaps-extras-us-west-2.s3.us-west-2.amazonaws.com/tiles/<RELEASE>/<THEME>.pmtiles`.\n\n| Theme            | Source layers                                                          | Default color | Notes                  |\n| ---------------- | ---------------------------------------------------------------------- | ------------- | ---------------------- |\n| `addresses`      | `address`                                                               | `#e6194b`     | Points appear at z14+  |\n| `base`           | `land`, `land_cover`, `land_use`, `water`, `bathymetry`, `infrastructure` | `#3cb44b`     |                        |\n| `buildings`      | `building`, `building_part`                                             | `#f58231`     |                        |\n| `divisions`      | `division_area`, `division_boundary`, `division`                        | `#911eb4`     |                        |\n| `places`         | `place`                                                                  | `#4363d8`     | Points appear at z14+  |\n| `transportation` | `segment`, `connector`                                                   | `#f032e6`     |                        |\n\n## API\n\n### OvertureMapsControl\n\nThe main control class implementing MapLibre's `IControl` interface.\n\n#### Constructor Options\n\n| Option          | Type                          | Default                                       | Description                                                               |\n| --------------- | ----------------------------- | --------------------------------------------- | ------------------------------------------------------------------------- |\n| `collapsed`     | `boolean`                     | `true`                                        | Whether the panel starts collapsed (showing only the 29x29 toggle button) |\n| `position`      | `string`                      | `'top-right'`                                 | Control position on the map                                               |\n| `title`         | `string`                      | `'Overture Maps'`                             | Title displayed in the header                                             |\n| `panelWidth`    | `number`                      | `300`                                         | Width of the dropdown panel in pixels                                     |\n| `className`     | `string`                      | `''`                                          | Custom CSS class name                                                     |\n| `theme`         | `'light' \\| 'dark' \\| 'auto'` | `'auto'`                                      | UI color scheme; `'auto'` follows `prefers-color-scheme`                  |\n| `release`       | `string`                      | latest                                        | Pin a specific Overture release (e.g. `'2026-08-19.0'`)                   |\n| `releasesUrl`   | `string`                      | _unset_                                       | releases.json endpoint to read instead of listing the distribution        |\n| `tilesBaseUrl`  | `string`                      | Official Overture S3 tiles URL                | Base URL of the PMTiles distribution                                      |\n| `inspect`       | `boolean`                     | `true`                                        | Click a rendered feature to open a properties popup                       |\n| `exportMinZoom` | `number`                      | `12`                                          | Minimum zoom required to export a layer to GeoJSON (keeps exports limited to a small area)  |\n| `visibleThemes` | `OvertureTheme[]`             | `['buildings', 'transportation', 'places']`   | Themes that start visible                                                 |\n| `themeColors`   | `Partial<Record<OvertureTheme, string>>` | x-ray palette                       | Per-theme color overrides                                                 |\n| `themeOpacity`  | `Partial<Record<OvertureTheme, number>>` | `0.8`                               | Per-theme initial opacity (0..1)                                          |\n| `onExport`      | `(filename, data) => void`    | browser download                              | Custom handler for the GeoJSON export (e.g. a native save dialog)         |\n| `nativePmtiles` | `boolean`                     | `false`                                       | Emit plain `https://` archive URLs and skip `addProtocol`, for an engine that reads `.pmtiles` natively (Mapbox GL JS 3.30+) |\n| `createPopup`   | `(options) => OverturePopup`  | MapLibre `Popup`                              | Factory for the inspection popup, e.g. mapbox-gl's `Popup` on a Mapbox map |\n\n#### Methods\n\n- `toggle()` / `expand()` / `collapse()` - Control the panel\n- `getState()` / `setState(state)` - Read or update the state\n- `setRelease(release)` - Switch the active Overture release\n- `setThemeVisible(theme, visible)` - Show or hide every layer of a theme\n- `setThemeOpacity(theme, opacity)` - Set the opacity of every layer of a theme (0..1)\n- `setThemeExpanded(theme, expanded)` - Expand or collapse a theme's layer list\n- `setLayerVisible(theme, sourceLayer, visible)` - Show or hide a single source layer\n- `setLayerOpacity(theme, sourceLayer, opacity)` - Set a single layer's opacity (0..1)\n- `setLayerColor(theme, sourceLayer, color)` - Set a single layer's color\n- `setLayerSize(theme, sourceLayer, size)` - Set a single layer's size (point radius / line width)\n- `setInspect(enabled)` - Enable or disable the feature inspection picker\n- `exportLayer(theme, sourceLayer)` - Download the layer's in-view features as GeoJSON (gated by `exportMinZoom`); returns the FeatureCollection or null\n- `getRenderedLayerGeoJSON(theme, sourceLayer)` - Get the layer's in-view features as a GeoJSON FeatureCollection without downloading\n- `refreshReleases()` - Re-fetch the release list\n- `on(event, handler)` / `off(event, handler)` - Manage event handlers\n- `getMap()` / `getContainer()` - Access the map and container\n\n#### Events\n\n- `collapse` / `expand` - Panel visibility changes\n- `statechange` - Any state change\n- `releasechange` - The active release changed\n- `themechange` - A theme's visibility or opacity changed\n- `error` - The release list could not be loaded (a fallback release is used)\n\n### OvertureMapsControlReact\n\nReact wrapper component for `OvertureMapsControl`.\n\n#### Props\n\nAll `OvertureMapsControl` options plus:\n\n| Prop            | Type       | Description                         |\n| --------------- | ---------- | ----------------------------------- |\n| `map`           | `Map`      | MapLibre GL map instance (required) |\n| `onStateChange` | `function` | Callback fired when state changes   |\n\n### useOvertureMapsState\n\nCustom React hook for managing control state.\n\n```typescript\nconst {\n  state, // Current state\n  setState, // Update entire state\n  setCollapsed, // Set collapsed state\n  setPanelWidth, // Set panel width\n  setRelease, // Set the active release\n  setThemeVisible, // Set a theme's visibility\n  setThemeOpacity, // Set a theme's opacity\n  reset, // Reset to initial state\n  toggle, // Toggle collapsed state\n} = useOvertureMapsState(initialState);\n```\n\n### Exported Types\n\nExported from both entry points: `OvertureMapsControlOptions`, `OvertureMapsState`, `OvertureThemeState`, `OvertureLayerState`, `OvertureMapsEvent`, `OvertureMapsEventHandler`, `OvertureTheme`, `OvertureGeometry`, `OvertureLayerDef`, `ThemeDefinition`, `ControlColorScheme`, `OverturePopup`, and `OverturePopupOptions`.\n\nMain entry only (`.`): `ReleasesResponse`. React entry only (`/react`): `OvertureMapsControlReactProps`.\n\nHelpers are also exported: `THEMES`, `THEME_IDS`, `buildLayerSpecs`, `layerIdsForTheme`, `sourceIdForTheme`, `tileUrlForTheme`, `fetchReleases`, `ensurePmtilesProtocol`, and more.\n\n## Dark and Light Mode\n\nThe control UI uses CSS custom properties and follows the browser's `prefers-color-scheme` by default. Set the `theme` option to `'light'` or `'dark'` to force a scheme:\n\n```typescript\nconst control = new OvertureMapsControl({ theme: \"dark\" });\n```\n\n## Build a GeoLibre plugin zip\n\nGeoLibre Desktop loads external plugins from an app data `plugins/` directory. The zip must contain `plugin.json` at the root, plus a bundled ESM entry and optional CSS file.\n\n```bash\nnpm install\nnpm run package:geolibre\n```\n\nThis creates:\n\n```text\ngeolibre-plugin/maplibre-gl-overture-maps-0.1.0.zip\n```\n\nThe generated zip contains:\n\n```text\nplugin.json\ndist/index.js\ndist/style.css\n```\n\nCopy the zip into GeoLibre Desktop's app data `plugins/` directory and restart GeoLibre. On Linux with the default app identifier, that directory is usually:\n\n```text\n~/.local/share/org.geolibre.desktop/plugins/\n```\n\nFor the GeoLibre web app, serve the unpacked plugin with CORS enabled:\n\n```bash\nnpm run package:geolibre\nnpm run serve:geolibre -- 8000\n```\n\nThen add this manifest URL in GeoLibre Settings > Plugins:\n\n```text\nhttp://localhost:8000/plugin.json\n```\n\nUsing `python -m http.server` for this cross-origin web app case is not enough\nbecause it does not send `Access-Control-Allow-Origin`.\n\n## Development\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/opengeos/maplibre-gl-overture-maps.git\ncd maplibre-gl-overture-maps\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n```\n\n### Scripts\n\n| Script                     | Description                              |\n| -------------------------- | ---------------------------------------- |\n| `npm run dev`              | Start development server                 |\n| `npm run build`            | Build the library and GeoLibre bundle    |\n| `npm run build:lib`        | Build the standalone MapLibre library    |\n| `npm run build:geolibre`   | Build the GeoLibre ESM and CSS bundle    |\n| `npm run package:geolibre` | Build and zip the GeoLibre plugin bundle |\n| `npm run build:examples`   | Build examples for deployment            |\n| `npm run test`             | Run tests                                |\n| `npm run test:ui`          | Run tests with UI                        |\n| `npm run test:coverage`    | Run tests with coverage                  |\n| `npm run lint`             | Lint the code                            |\n| `npm run format`           | Format the code                          |\n\n### Project Structure\n\n```text\nmaplibre-gl-overture-maps/\n├── geolibre-plugin/\n│   └── plugin.json          # GeoLibre external plugin manifest\n├── scripts/\n│   └── package-geolibre-plugin.mjs\n├── src/\n│   ├── index.ts              # Main entry point\n│   ├── geolibre.ts           # GeoLibre plugin wrapper entry point\n│   ├── react.ts              # React entry point\n│   ├── index.css             # Root styles\n│   └── lib/\n│       ├── core/             # Control, themes, releases, types\n│       ├── hooks/            # React hooks\n│       ├── utils/            # Utility functions\n│       └── styles/           # Component styles\n├── tests/                    # Test files\n├── examples/                 # Example applications\n│   ├── basic/               # Vanilla TypeScript example\n│   └── react/               # React example\n└── .github/workflows/        # CI/CD workflows\n```\n\n## Docker\n\nThe examples can be run using Docker. The image is automatically built and published to GitHub Container Registry.\n\n### Pull and Run\n\n```bash\n# Pull the latest image\ndocker pull ghcr.io/opengeos/maplibre-gl-overture-maps:latest\n\n# Run the container\ndocker run -p 8080:80 ghcr.io/opengeos/maplibre-gl-overture-maps:latest\n```\n\nThen open http://localhost:8080/maplibre-gl-overture-maps/ in your browser to view the examples.\n\n### Build Locally\n\n```bash\n# Build the image\ndocker build -t maplibre-gl-overture-maps .\n\n# Run the container\ndocker run -p 8080:80 maplibre-gl-overture-maps\n```\n\n### Available Tags\n\n| Tag      | Description                      |\n| -------- | -------------------------------- |\n| `latest` | Latest release                   |\n| `x.y.z`  | Specific version (e.g., `1.0.0`) |\n| `x.y`    | Minor version (e.g., `1.0`)      |\n\n## Notes\n\n- Overture tiles are designed for x-ray inspection, not as a production basemap. See the [Overture tiles docs](https://docs.overturemaps.org/examples/overture-tiles/).\n- The `addresses` and `places` themes only contain features at zoom 14 and above.\n- If the release list cannot be fetched (e.g. offline), the control falls back to a known release and emits an `error` event; pin a release with the `release` option to skip the fetch dependency.\n- The control only uses the Style Spec surface MapLibre and Mapbox GL JS share, so it can be mounted on a mapbox-gl map (3.30+, which reads `.pmtiles` archives natively) with `nativePmtiles: true` and `createPopup: (options) => new mapboxgl.Popup(options)`. The control is typed against MapLibre's `IControl`; the runtime contract is the same, so cast it (`map.addControl(control as unknown as mapboxgl.IControl)`) or wrap it in a small adapter as a host that supports both engines would. Its container carries both engines' control classes and it reads its corner from either engine's corner container.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}