{"_id":"@dacostafilipe/react-geoportail","_rev":"9-001dc65413a9aa93b35d64bdddcba698","name":"@dacostafilipe/react-geoportail","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.1":{"name":"@dacostafilipe/react-geoportail","version":"0.1.1","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.1","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"dd1014019f840a098c92d83de7025a7e7d97c9c0","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.1.tgz","fileCount":2,"integrity":"sha512-zw0sL931rVaE4ZY4uZAZPGN23+rDM+SJbVj620W2gNXkOzQx2xAsB+WByyj9Z0ZOAsfby9cyp9FMxBrZlRaqzw==","signatures":[{"sig":"MEYCIQD6oqpApFDlTIbTYVhsLZwhKYBMLgPX3Y6yUAqiUIVOAAIhALd9BV0qzIDw+Kntan7d1q0KdVJI7hmSImHxdvRAi1G/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9443},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"079d4d2cad483b47ade16022fff9ce0abf536183","scripts":{"dev":"vite","build":"tsc -p tsconfig.build.json && vite build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.1_1775642408088_0.12953490648875166","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dacostafilipe/react-geoportail","version":"0.1.2","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.2","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"7be5fd9e0ad20ae55410b63d403fd58664d629b8","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.2.tgz","fileCount":15,"integrity":"sha512-23BhURU48xXLU9+tO1U/JSD2PUY9B3VnV65InamVzneKMmc4wb7nczJ2wclZiUxEG5duSDnJd1lepj8xeanLvw==","signatures":[{"sig":"MEQCIHEeBZp6NaJv4HNvv+NyFqZ7V2JSIczCZ4w14DNmk85eAiAYZ3DTUVRGyOI1SjcBS8b5PZg4bS0NWnKvhc/AJ7oc+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117200},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"92b69008bde27f7029ca7517c610bebe0341970b","scripts":{"dev":"vite","build":"tsc -p tsconfig.build.json && vite build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.2_1775642931976_0.998178254836801","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dacostafilipe/react-geoportail","version":"0.1.3","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.3","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"f3dbacbff99448df19ca36d0410cdf0d9a2f3a59","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.3.tgz","fileCount":15,"integrity":"sha512-ozCNBwqREUr6tb6G998QUxD5hUzsGhzT/hxrcZdoD6yEoFLSW7CO/Yu0zl1wNfk4WhK5TzupOpfBzwASvNJnZg==","signatures":[{"sig":"MEQCIA9wdg09V5vcPXJcMsUFjZvNdVOxGfGxoHnSuNkoYmg+AiBj4wccKHUfRTJsi/DsOoY8UeXymCRn6/MxW3fY1fFLTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118326},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"0b70d1076b259ea3a02f958ad314d0566c2fbf05","scripts":{"dev":"vite","build":"tsc -p tsconfig.build.json && vite build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.3_1775643273177_0.09322734912955633","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@dacostafilipe/react-geoportail","version":"0.1.4","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.4","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"ebf5add3f2114cfdda8cb2678028e45721660080","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.4.tgz","fileCount":15,"integrity":"sha512-YdwW81Fn8uQOofDBidpyYAzii+W4SJWgiipfphR6kRt9Kd+5N1UB5f5EEg4N2BYLKSZRb2wUp5zf/EAyh4RJ0A==","signatures":[{"sig":"MEUCIQD6macRGuzZQtl22H10qb88AxUk0bUKri4Uw8sxsB0pOgIgPA6iyLdIMmRsSjBXNamCupdRsQEca2UrvEcaXHw+2Mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118326},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"6fa2f3bd2323d83318c47335cde7580bf63be305","scripts":{"dev":"vite","build":"tsc -p tsconfig.build.json && vite build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.4_1777553649483_0.6042974652500661","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dacostafilipe/react-geoportail","version":"0.1.5","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.5","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"36019703e1d2163d8e053ae949fb4f1d70d3ef13","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.5.tgz","fileCount":16,"integrity":"sha512-s3nGDeUOXoWkUd6Eot9Qu6RBGDPXwy/jlYk6LWsY7ZTkJGwA52wNfP7rfl0DheoW4+5JrC4om5WKAAdPGSNlMg==","signatures":[{"sig":"MEQCIGiNTdoVCXQi2FqyWBysGMgSubfMkSYHzmwVAERkaBkNAiAtwiC4SgsDO/pQKMO5kHwGX8vIohrvidkHO2P169n7+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120553},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"29b3aa40e19ddac73eec6e0b654dbc6784659d27","scripts":{"dev":"vite","build":"tsc -p tsconfig.build.json && vite build","prepack":"npm run build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.5_1778683710009_0.07309684279167028","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@dacostafilipe/react-geoportail","version":"0.1.6","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.6","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"b5e330440a31bde2bfda07cfd9a4f3fda8b1d552","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.6.tgz","fileCount":16,"integrity":"sha512-9FdngkQ9dwZgJqDQA3zSTOjXPYvrFY3REBcGgRXULW0YZqRR3BBscKf7uCz008IRpxJ+XctbNpc5t3kYevtXlw==","signatures":[{"sig":"MEUCIQCqvEMTAwwS+d5vKREzh1cgFd172EVGTgu1EiYIIHLyHwIgLKlnM0Q1XLJ5xPyRXGT1wocRHsdEBqt2YkjD7EOy0x4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136542},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"a4daaf7c0b21802423bc2468920aede658c611b9","scripts":{"dev":"vite","build":"tsc -p tsconfig.build.json && vite build","prepack":"npm run build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.6_1778685153610_0.5757140158959839","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@dacostafilipe/react-geoportail","version":"0.1.7","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.7","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"d4a10667b840757bde3613ea493fc0b28664e12e","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.7.tgz","fileCount":17,"integrity":"sha512-7JaMTwPN+n1tm4GJGKw8m6SvXXZ2BH9iLJuQeeAs1gEfepc16RHX4vIdvrP9B7lwWolizmkvU8GKG8LDxczP6A==","signatures":[{"sig":"MEUCIDK4aphbfL0OggxGooWosJAU11DKvPPRJQ6oLsDRfxULAiEAttz/lJIc8Q1IZmMlfjw12A9DeoSQMrFwKz8ka2gKkxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140525},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"88b18f0e7585702c81ea7c08265099b82fccae35","scripts":{"dev":"vite","test":"vitest run","build":"tsc -p tsconfig.build.json && vite build","prepack":"npm run build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","vitest":"^3.2.4","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.7_1778685996900_0.6320277376553656","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@dacostafilipe/react-geoportail","version":"0.1.8","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"author":{"name":"Filipe DA COSTA"},"license":"MIT","_id":"@dacostafilipe/react-geoportail@0.1.8","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"dist":{"shasum":"bbb281a91d41636a8b91be21f666cb7ed460ea4d","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.1.8.tgz","fileCount":17,"integrity":"sha512-/KuNtypxgsPAeIsd7cptwOTLRNi6pcs+tnH/0/26H8ejZNr7UPLqA3+R6aaVZnV7Cn+yNVYOD5o0LEpYiDgt9w==","signatures":[{"sig":"MEQCIBoNT7ejPlqTToX0vebeEwjiRGFE+Hx9sZQoDwrF2msMAiBpeqdNX+yIJAtPkAnq1DPOBx0gEWRb+Ow5qXuGg+ieDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152181},"main":"./dist/react-geoportail.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-geoportail.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs"}},"gitHead":"7515c8f39340ba69dd530fb84d028df59c526c1a","scripts":{"dev":"vite","test":"vitest run","build":"tsc -p tsconfig.build.json && vite build","prepack":"npm run build","preview":"vite preview","type-check":"tsc --noEmit"},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"repository":{"url":"git+https://github.com/dacostafilipe/react-geoportail.git","type":"git"},"_npmVersion":"10.9.3","description":"React SDK for the Geoportail Luxembourg v3 API","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","vitest":"^3.2.4","typescript":"^5.3.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.6.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-geoportail_0.1.8_1778688106444_0.0007357993816343722","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dacostafilipe/react-geoportail","version":"0.2.0","description":"React SDK for the Geoportail Luxembourg v4 API","type":"module","main":"./dist/react-geoportail.umd.cjs","module":"./dist/react-geoportail.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/react-geoportail.js","require":"./dist/react-geoportail.umd.cjs","types":"./dist/index.d.ts"}},"scripts":{"dev":"vite","build":"tsc -p tsconfig.build.json && vite build","prepack":"npm run build","preview":"vite preview","type-check":"tsc --noEmit","test":"vitest run"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"devDependencies":{"@types/react":"^18.2.0","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0","typescript":"^5.3.0","vite":"^5.0.0","vite-plugin-dts":"^3.6.0","vitest":"^3.2.4"},"keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dacostafilipe/react-geoportail.git"},"author":{"name":"Filipe DA COSTA"},"bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"homepage":"https://github.com/dacostafilipe/react-geoportail#readme","_id":"@dacostafilipe/react-geoportail@0.2.0","gitHead":"3c43032557453e4ccbe685255f1fa28b6069f3ec","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-dglFhxzPckkezmxSIqIIcWimdFDQN09dqSqenCRu9kbe+JJavRS8DX5ppapIataEW0QDklC53TKczB8kPuzITA==","shasum":"c4f82507d9c0ba00ab540fa2596dd454a5ce09f3","tarball":"https://registry.npmjs.org/@dacostafilipe/react-geoportail/-/react-geoportail-0.2.0.tgz","fileCount":17,"unpackedSize":161510,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGXOwEwlZ+/3AXk666acFpth7ZpmbKMCipQlUqSkS9PpAiEAzFUewSyrapZ++QOu3NRhYzAC4hsplc4o9BBtwEKxgzI="}]},"_npmUser":{"name":"dacostafilipe","email":"filipe@dacosta.lu"},"directories":{},"maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-geoportail_0.2.0_1789051972830_0.005188496973624002"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-08T10:00:07.969Z","modified":"2026-09-10T14:52:53.544Z","0.1.1":"2026-04-08T10:00:08.221Z","0.1.2":"2026-04-08T10:08:52.174Z","0.1.3":"2026-04-08T10:14:33.305Z","0.1.4":"2026-04-30T12:54:09.679Z","0.1.5":"2026-05-13T14:48:30.252Z","0.1.6":"2026-05-13T15:12:33.775Z","0.1.7":"2026-05-13T15:26:37.053Z","0.1.8":"2026-05-13T16:01:46.648Z","0.2.0":"2026-09-10T14:52:52.962Z"},"bugs":{"url":"https://github.com/dacostafilipe/react-geoportail/issues"},"author":{"name":"Filipe DA COSTA"},"license":"MIT","homepage":"https://github.com/dacostafilipe/react-geoportail#readme","keywords":["geoportail","luxembourg","map","react","openlayers","geocode"],"repository":{"type":"git","url":"git+https://github.com/dacostafilipe/react-geoportail.git"},"description":"React SDK for the Geoportail Luxembourg v4 API","maintainers":[{"name":"dacostafilipe","email":"filipe@dacosta.lu"}],"readme":"# react-geoportail\n\n> **Disclaimer:** This is an **unofficial, community-built** React package. It is not affiliated with, endorsed by, or supported by the [Geoportail Luxembourg](https://www.geoportail.lu) team or the Administration du Cadastre et de la Topographie (ACT). For the official API, see [apiv4.geoportail.lu](https://apiv4.geoportail.lu/proj/1.0/build/apidoc/).\n\nAn unofficial React SDK for the [Geoportail Luxembourg v4 API](https://apiv4.geoportail.lu/proj/1.0/build/apidoc/). Provides a map component and hooks for geocoding, all typed with TypeScript.\n\n## Features\n\n- **`<GeoportailMap>`** — render a Geoportail map with optional pin/marker support\n- **`useReverseGeocode`** — look up a Luxembourg address from lat/lon coordinates\n- **`useGeocode`** — search for coordinates from an address string\n- Coordinate conversion utilities (EPSG:2169 ↔ WGS84) included\n- Zero runtime npm dependencies — loads the required hosted Geoportail assets directly\n\n## Requirements\n\n- React 17 or later\n- A modern browser (the Geoportail API requires it)\n- For **production deployments**: register your domain with ACT at `support.geoportail@act.etat.lu`. The API works without restriction on `localhost`.\n\n## Installation\n\n```bash\nnpm install @dacostafilipe/react-geoportail\n```\n\nNo manual `<script>` or `<link>` tags are needed. The package loads the required Geoportail assets directly at runtime:\n\n- `https://apiv4.geoportail.lu/static-ngeo/build/apiv4.css`\n- `https://apiv4.geoportail.lu/static-ngeo/build/ol.js`\n- `https://apiv4.geoportail.lu/static-ngeo/build/proj4.js`\n- `https://apiv4.geoportail.lu/static-ngeo/build/auto-complete.min.js`\n- `https://apiv4.geoportail.lu/static-ngeo/build/apiv4.js`\n\nThese are the same assets the official `apiv4loader.js` pulls in — that loader\nuses `document.write`, so it cannot be injected at runtime and the package\nloads the assets itself instead (including the LUREF/EPSG:2169 projection\nregistration the loader performs).\n\n## Quick start\n\n```tsx\nimport { GeoportailMap } from '@dacostafilipe/react-geoportail';\n\nexport default function App() {\n  return (\n    <GeoportailMap\n      center={{ lat: 49.6116, lon: 6.1319 }}\n      zoom={13}\n      style={{ height: 500 }}\n    />\n  );\n}\n```\n\n---\n\n## Components\n\n### `<GeoportailMap>`\n\nRenders a Geoportail map inside a `div`. The map fills its container — set a `height` via `style` or `className`.\n\n```tsx\n<GeoportailMap\n  center={{ lat: 49.6116, lon: 6.1319 }}\n  zoom={13}\n  bgLayer=\"basemap_2015_global\"\n  markerMode=\"click\"\n  onMarkerPlace={(coords) => console.log(coords.lat, coords.lon)}\n  style={{ height: 480 }}\n/>\n```\n\n#### Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `center` | `LatLon` | Luxembourg City | Initial map center |\n| `zoom` | `number` | `12` | Initial zoom level (1–20) |\n| `bgLayer` | `string` | `'basemap_2015_global'` | Background layer identifier |\n| `markerMode` | `'none' \\| 'fixed' \\| 'click'` | `'none'` | Controls pin behaviour (see below) |\n| `markerPosition` | `LatLon` | — | Pin position for `'fixed'` mode, or initial pin for `'click'` mode |\n| `onMarkerPlace` | `(coords: LatLon) => void` | — | Called when the user places a pin (`markerMode='click'`) |\n| `layers` | `number[]` | — | Additional Geoportail layer IDs to overlay |\n| `className` | `string` | — | CSS class for the container `div` |\n| `style` | `React.CSSProperties` | — | Inline styles for the container `div` |\n\n#### Marker modes\n\n| Mode | Behaviour |\n|------|-----------|\n| `'none'` | No marker shown |\n| `'fixed'` | A static pin is shown at `markerPosition` |\n| `'click'` | User clicks the map to place/move the pin; fires `onMarkerPlace` with the clicked WGS84 coordinates |\n\n#### Imperative ref\n\nPass a `ref` typed as `GeoportailMapHandle` to control the map programmatically:\n\n```tsx\nimport { useRef } from 'react';\nimport { GeoportailMap, GeoportailMapHandle } from '@dacostafilipe/react-geoportail';\n\nconst mapRef = useRef<GeoportailMapHandle>(null);\n\n<GeoportailMap ref={mapRef} ... />\n\n// Move the map\nmapRef.current?.setCenter({ lat: 49.5, lon: 6.1 });\nmapRef.current?.setZoom(15);\n\n// Access the raw lux.Map instance\nconst luxMap = mapRef.current?.getLuxMap();\n```\n\n---\n\n## Hooks\n\n### `useReverseGeocode`\n\nConvert a WGS84 lat/lon position to a Luxembourg address. Uses the Geoportail REST reverse geocode endpoint — no API key required.\n\n```tsx\nimport { useReverseGeocode } from '@dacostafilipe/react-geoportail';\n\nfunction LocationInfo({ lat, lon }: { lat: number; lon: number }) {\n  const { state, lookup } = useReverseGeocode();\n\n  useEffect(() => {\n    lookup({ lat, lon });\n  }, [lat, lon]);\n\n  if (state.status === 'loading') return <p>Looking up address…</p>;\n  if (state.status === 'error')   return <p>Error: {state.error.message}</p>;\n  if (state.status === 'success') return <p>{state.address.label}</p>;\n  return null;\n}\n```\n\n#### Return value\n\n```ts\nconst { state, lookup, reset } = useReverseGeocode();\n```\n\n| | Type | Description |\n|-|------|-------------|\n| `state.status` | `'idle' \\| 'loading' \\| 'success' \\| 'error'` | Current state |\n| `state.address` | `Address \\| null` | Result when `status === 'success'` |\n| `state.error` | `Error \\| null` | Error when `status === 'error'` |\n| `lookup(pos)` | `(pos: LatLon) => void` | Trigger a lookup; cancels any in-flight request |\n| `reset()` | `() => void` | Return to `'idle'` and cancel any in-flight request |\n\n#### `Address` shape\n\n```ts\ninterface Address {\n  label: string;    // Full formatted address\n  distance: number; // Distance from queried point (metres)\n  easting: number;  // EPSG:2169 easting\n  northing: number; // EPSG:2169 northing\n}\n```\n\n---\n\n### `useGeocode`\n\nSearch for a Luxembourg address and get back coordinates. Supports a free-text query string or structured fields.\n\n```tsx\nimport { useGeocode } from '@dacostafilipe/react-geoportail';\n\nfunction AddressSearch() {\n  const { state, search } = useGeocode();\n\n  return (\n    <>\n      <button onClick={() => search({ queryString: 'Place d\\'Armes, Luxembourg' })}>\n        Search\n      </button>\n\n      {state.status === 'success' && state.results.map((r, i) => (\n        <p key={i}>\n          {r.street} {r.num}, {r.zip} {r.locality}\n          — {r.latLon.lat.toFixed(5)}, {r.latLon.lon.toFixed(5)}\n        </p>\n      ))}\n    </>\n  );\n}\n```\n\n#### Return value\n\n```ts\nconst { state, search, reset } = useGeocode();\n```\n\n| | Type | Description |\n|-|------|-------------|\n| `state.status` | `'idle' \\| 'loading' \\| 'success' \\| 'error'` | Current state |\n| `state.results` | `GeocodeResultItem[] \\| null` | Results when `status === 'success'` |\n| `state.error` | `Error \\| null` | Error when `status === 'error'` |\n| `search(query)` | `(query: GeocodeQuery) => void` | Trigger a search; cancels any in-flight request |\n| `reset()` | `() => void` | Return to `'idle'` |\n\n#### `GeocodeQuery` options\n\n```ts\n// Free-text (recommended for most cases)\nsearch({ queryString: '1 rue du Fort Thüngen, Luxembourg' });\n\n// Structured fields\nsearch({ num: '1', street: 'rue du Fort Thüngen', zip: '1499', locality: 'Luxembourg' });\n```\n\n#### `GeocodeResultItem` shape\n\n```ts\ninterface GeocodeResultItem {\n  latLon: LatLon;   // WGS84 { lat, lon }, as returned by the API\n  easting: number;  // EPSG:2169\n  northing: number; // EPSG:2169\n  accuracy: number;\n  street?: string;\n  num?: string;\n  zip?: string;\n  locality?: string;\n}\n```\n\n---\n\n## Coordinate utilities\n\nThe SDK exposes the internal coordinate conversion functions if you need them directly.\n\n```ts\nimport { latLonToLuref, lurefToLatLon } from '@dacostafilipe/react-geoportail';\n\n// WGS84 → EPSG:2169 (Luxembourg TM)\nconst { easting, northing } = latLonToLuref(49.6116, 6.1319);\n\n// EPSG:2169 → WGS84\nconst { lat, lon } = lurefToLatLon(76651, 75358);\n```\n\nAccuracy is within ~1 m across Luxembourg's territory, using a Molodensky transformation (WGS84 → ED50) followed by a Transverse Mercator projection with the official LUREF parameters.\n\n---\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Start the demo app (Vite dev server)\nnpm run dev\n\n# Type-check\nnpm run type-check\n\n# Build the library (outputs to dist/)\nnpm run build\n```\n\nThe demo app (`src/demo/main.tsx`) shows all three features together: map with click-to-pin, reverse geocoding on pin placement, and an address search bar.\n\n---\n\n## API reference\n\n- [Geoportail Luxembourg API v4 JSDoc](https://apiv4.geoportail.lu/proj/1.0/build/apidoc/)\n- [REST API wiki](https://wiki.geoportail.lu/doku.php?id=en:api:rest)\n- [Official API examples](https://apiv4.geoportail.lu/proj/1.0/build/apidoc/examples/)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}